PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کمک در نوشتن یک الگوریتم ساده



alidodar1
06-06-2012, 08:54 PM
سلام دوستان
من هرچی تلاش میکنم نمیتونم صورت این الگوریتم رو برای زبان c بنویسم...
این یک تمرین بر پایه تمرینات clrs و الگوریتم هست
شما میتونید کد رو بنویسید:


((میخواهیم یک ماشین بستنی فروشی را تحت کنترل کامپیوتر بسازیم.
طرز کار : مشتری به ماشین بستنی فروشی مراجعه کرده و تعدد بستی های درخواتی را وارد میکند.
ماشین با توجه به قیمت واحد بستنی با پیغامی مناسب قیمت یک عدد بستنی و مجموع پولی که مشتری باید پرداخت کند ،را اعلام میکند.
مشتری مبلغ پرداختی را با سکه های ۵۰۰۰ ، ۲۰۰۰ ، ۲۵۰ ، ۵۰ و ۱ ریالی پرداخت میکند.
درصورتی که مشتری مبلغ کمتری نسبت به بستنی های درخواستی پرداخت کرده باشد ، ماشین بطور خودکار از میزان سفارش کم کرده و اینکار را با پیغام مناسب به اطلاع مشتری میرساند.
ولی درصورتی که مبلغ پرداختی مشتری بیشتر از مبلغ میزان سفارش باشد ، ماشین مابقی پول مشتری را با حداقل سکه به او باز میگرداند و این عملیات تا زمانی که میزان سفارش صفر یا منفی وارد شود ،ادامه میابد.
مبلغ ۰ به عنوان پایان ورود سکه میباشد.))

Borna66
06-07-2012, 11:45 PM
سلام دوستان
من هرچی تلاش میکنم نمیتونم صورت این الگوریتم رو برای زبان c بنویسم...
این یک تمرین بر پایه تمرینات clrs و الگوریتم هست
شما میتونید کد رو بنویسید:


((میخواهیم یک ماشین بستنی فروشی را تحت کنترل کامپیوتر بسازیم.
طرز کار : مشتری به ماشین بستنی فروشی مراجعه کرده و تعدد بستی های درخواتی را وارد میکند.
ماشین با توجه به قیمت واحد بستنی با پیغامی مناسب قیمت یک عدد بستنی و مجموع پولی که مشتری باید پرداخت کند ،را اعلام میکند.
مشتری مبلغ پرداختی را با سکه های ۵۰۰۰ ، ۲۰۰۰ ، ۲۵۰ ، ۵۰ و ۱ ریالی پرداخت میکند.
درصورتی که مشتری مبلغ کمتری نسبت به بستنی های درخواستی پرداخت کرده باشد ، ماشین بطور خودکار از میزان سفارش کم کرده و اینکار را با پیغام مناسب به اطلاع مشتری میرساند.
ولی درصورتی که مبلغ پرداختی مشتری بیشتر از مبلغ میزان سفارش باشد ، ماشین مابقی پول مشتری را با حداقل سکه به او باز میگرداند و این عملیات تا زمانی که میزان سفارش صفر یا منفی وارد شود ،ادامه میابد.
مبلغ ۰ به عنوان پایان ورود سکه میباشد.))

با سلام
متاسفانه دوست گرامی منابع لازم برای حل این الگوریتم موجود نیست و از کمکتون معزوریم
شرمندخ و موفق اشید

روزگار خوش

hamidh2s
11-22-2012, 07:19 PM
با سلام و خسته نباشید یک سوال داشتم می خواستم اینجا مطرح کنم که اگه جواب (http://pnu-club.com/)
را داشتید به من کمک کنید

-- یک آرایه n عنصری داریم می خواهیم آن را به صورت بازگشتی معکوس کنیم ، الگوریتم آن را بنویسید

Borna66
11-23-2012, 01:49 AM
با سلام و خسته نباشید یک سوال داشتم می خواستم اینجا مطرح کنم که اگه
جواب (http://pnu-club.com/)
را داشتید به من کمک کنید

-- یک آرایه n عنصری داریم می خواهیم آن را به صورت بازگشتی معکوس کنیم ، الگوریتم آن را بنویسید



با سلام امیدارم این راهنمایی مفید و کاربردی باشد براتون
سوال :
برنامه ای بنویسید که درایه های یک ماتریس N*N را دریافت سپس معکوس آن را در خروجی نمایش دهد.



توضیحات : دوستان برای محاسبه معکوس ماتریس باید از فرمولات ریاضی که در زیر قرار دارد استفاده کرد.


http://pnu-club.com/imported/2012/11/874.jpg


من در نوشتن این برنامه سعی کردم از دو تابع که یکی بخش دترمینان و دیگری بخش الحاقی رو محاسبه میکنه استفاده کنم که برای همه قابل درک باشه.



کد:





#include "stdafx.h"
#include<conio.h>
#include<iostream>
using namespace std;
#define n 3
int det(int a[n][n]);
int M (int a[n][n],int,int);

int _tmain(int argc, _TCHAR* argv[])
{
int i,j,a[n][n],x=1,m,d; float ma[n][n];

//******************* n*n دریافت مقادیر ماتریس *************************

cout<<"\n MAGHADIRE MATRISE ["<<n<<" , "<<n<<"] RA VARED KONID :\n\n";

for(i=0;i<n;i++){
for(j=0;j<n;j++){
cout<<"\t [ "<<i+1<<" , "<<j+1<<" ] = ";
cin>>a[i][j];
}
cout<<endl;
}
//**************************** محاسبات ************************************

d=det(a);

if (d==0){
cout<<"\n\n\tIN MATRIS MAKOS NADARAD.";
_getch();
return 0;
}

for(i=0;i<n;i++)
for(j=0;j<n;j++){
x=1;
if(((i+1)+(j+1))%2!=0)
x*=-1;
else
x*=1;
m=M(a,i+1,j+1);
x*=m;
ma[j][i]=(float)x/d;
}

//***********************نمایش نتیجه در خروجی ****************************

cout<<"\n\n\t RESULT :\n";
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(ma[i][j]>=0)
cout<<"\t "<<ma[i][j]<<"\t";
else
cout<<"\t"<<ma[i][j]<<"\t";
}
cout<<endl;
}


_getch();
return 0;
}


//**************************** تابع دترمینان ******************************
int det(int a[n][n]){
int i=0,j=0,m=0,sum=0,x=1;

for(i=0,j=0;i<n;i++){
x=1;
if (((i+1)+(j+1))%2!=0)
x*=-1;
else
x*=1;

x*=a[j][i];
x*=M(a,j+1,i+1);
sum+=x;
}
return sum;
}

//**************************** M تابع **************************************
int M (int a[n][n],int o,int p){

int m[n-1][n-1],i,j,x,y;

for(i=0,x=0;i<n;i++,x++){

if (i==o-1){
x-=1;
continue;
}
for(j=0,y=0;j<n;j++,y++){

if (j==p-1){
y-=1;
continue;
}
m[x][y]=a[i][j];
}
}

for(i=0,x=1;i<n-1;i++)
x=x*m[i][i];

for(i=n-2,j=0,y=1;j<n-1;i--,j++)
y=y*m[i][j];

x-=y;
return x;
}








توجه کنید که این برنامه برای یک ماتریس (n*n) که n=3 میباشد. شما میتوانید در قسمت اول برنامه n را تغییر دهید ( بخش قرمز رنگ در کد بالا).


روزگار خوش