PDA

View Full Version : سوال: ضرب دو آرايه در هم با زبان سي شارپ



han008had
پنج شنبه 21 فروردین 1393, 10:59 صبح
سلام دوستان
ميخوام يه برنامه به زبان سي شارپ بنويسم كه دو آرايه را در هم ضرب و درخروجي نمايش بده
لطفا كمكم كنيد يا حداقل يه راهنمايي كوچيك
متشكرم

Morteza-76
پنج شنبه 21 فروردین 1393, 13:06 عصر
این یه مثال برای شما

int[] a = new int[1];
int[] b = new int[1];
a[0] = 2;
b[0] = 2;
label1.Text = (a[0] * b[0]).ToString();
موفق باشید

us1234
پنج شنبه 21 فروردین 1393, 13:21 عصر
سلام دوستان
ميخوام يه برنامه به زبان سي شارپ بنويسم كه دو آرايه را در هم ضرب و درخروجي نمايش بده
لطفا كمكم كنيد يا حداقل يه راهنمايي كوچيك
متشكرم

منظورتون ضرب ماتریسه ؟
وگرنه ضرب عادی که چیزی نداره مثل کد دوستمون میتونید انجام بدید .

abolfazl_d_sh
پنج شنبه 21 فروردین 1393, 15:39 عصر
سلام
اگه منظورتون ضرب ماتریسی هست که این کد :
البته من اینو تو سی نوشتم که اصل کار فرقی نداره.

#include<stdio.h>
#include<conio.h>


int main()
{
int a[4][2];
int b[2][3];
int c[4][3];

for(int i=0;i<4;i++)
{
for(int j=0;j<2;j++)
{
printf("Enter number for array 1:\n");
scanf("%d",&a[i][j]);
}
}
printf("********************\n");

for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
printf("Enter number for array 2:\n");
scanf("%d",&b[i][j]);
}
}
printf("********************\nProduct of array 1 and array 2:\n");

for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
c[i][j]=((a[i][0])*(b[0][j]))+((a[i][1])*(b[1][j]));
}
}

for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
printf(" %d ",c[i][j]);
}
printf("\n");
}
}

ستون ماتریس اول باید با سطر ماتریس دوم برابر باشه
اصل کار این قسمت کد هست،بقیش گرفتن ماتریس ها و نمایشه

for(int i=0;i<4;i++) {
for(int j=0;j<3;j++)
{
c[i][j]=((a[i][0])*(b[0][j]))+((a[i][1])*(b[1][j]));
}
}
موفق باشید

han008had
پنج شنبه 21 فروردین 1393, 20:41 عصر
خیلی متشکرم از راهنماییتون
به زبان C و C++ بلدم اما تا حالا تو سی شارپ این طوری برنامه نویسی نکردم و خیلی ام بلد نیستم

behzadkhan
جمعه 22 فروردین 1393, 15:49 عصر
با سلام

ببین کمکت می کنه:
=============================================


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[,] arrayFirst = new int[100,100];
int[,] arraySecond = new int[100, 100];
int[,] arrayMultiply = new int[100, 100];


int rowF, columnF,
rowS, columnS;


Console.Write("Please Enter First Matrix Row = ");
rowF=Convert.ToInt16(Console.ReadLine());
Console.Write("Please Enter First Matrix Column = ");
columnF = Convert.ToInt16(Console.ReadLine());


do
{
Console.Write("Please Enter Second Matrix Row = ");
rowS = Convert.ToInt16(Console.ReadLine());
if (rowS != columnF)
{
Console.WriteLine("Error: First Column Matrix is not EQUAL Second Row Matrix.");
}
} while (rowS != columnF);
Console.Write("Please Enter Second Matrix Column = ");
columnS = Convert.ToInt16(Console.ReadLine());


Console.WriteLine("<-------------------Enter First Matrix Values---------------->");
for (int i = 0; i < rowF; i++)
{
for (int j = 0; j < columnF; j++)
{
Console.Write("Enter First Matrix[{0}, {1}] = ", i+1, j+1);
arrayFirst[i,j]=Convert.ToInt16(Console.ReadLine());
}
}
Console.WriteLine("<-------------------Enter Second Matrix Values---------------->");
for (int i = 0; i < rowS; i++)
{
for (int j = 0; j < columnS; j++)
{
Console.Write("Enter Second Matrix[{0}, {1}] = ", i + 1, j + 1);
arraySecond[i, j] = Convert.ToInt16(Console.ReadLine());
}
}


// First * Second Matrix
for (int i = 0; i < rowF; i++)
{
for (int j = 0; j < columnS; j++)
{
for (int k = 0; k < rowS; k++)
{
arrayMultiply[i, j] = arrayMultiply[i, j] + arrayFirst[i, k] * arraySecond[k, j];
}
}
}

Console.WriteLine("<----------------------------------------------------------------->");
Console.WriteLine("<-------------------Multiply First * Second Matrix---------------->");
Console.WriteLine("<----------------------------------------------------------------->");
for (int i = 0; i < rowF; i++)
{
Console.Write("|");
for (int j = 0; j < columnS; j++)
{
Console.Write(string.Format("{0} ", arrayMultiply[i, j]));
}
Console.Write("|" + Environment.NewLine + Environment.NewLine);
}
Console.ReadKey();
}
}
}






با تشکر