PDA

نسخه کامل مشاهده نسخه کامل : راهنمايي در مورد توابع



rell
04-07-2008, 11:52
سلام دوستان. كسي ميتونه در مورد نوشتن اين برنامه كمكم كنه؟
برنامه اي كه با استفاده از توابع اعمال زير را انجام دهد:
1.دو عدد صحيح حداكثر 50 رقمي را از ورودي بخواند.
2.توسط يك تابع اين دو عدد را با هم جمع نموده و توسط تابع ديگري اين دو عدد و حاصل جمع آنها را در خروجي بنويسد.
3.تابعي بنويسيد كه اين دو عدد رااز تابع main دريافت نموده و حاصل جمع آنها را بدست آورده و در تابع main در خروجي بنويسد.
4.تابعي بنويسيد كه اين دو عدد را از تابع main دريافت نموده و عدد بزرگتر را بدست آورده و در تابع main در خروجي بنويسد.
5.تابعي بنويسيد كه اين دو عدد را از تابع main دريافت نموده و عدد كوچكتر را از عدد بزرگتر كم نموده و نتيجه را در تابع main در خروجي بنويسد.
(چون اعداد بزرگ هستند از آرايه ها بايد براي نگهداري اعداد استفاده كرد.):46:

Mehrdad-bx
04-07-2008, 15:07
اگه رسیدم تا امشب وگرنه تا فردا برات مینویسم و توضیح میدم. :46:

s_0o0
04-07-2008, 20:01
سلام :

از کتاب برنامه نویسی به زبان c از جعفرنژاد قمی می تونید کمک بگیرید .

( البته اگر به خواهید برنامه را به زبان c بنویسید . )

Mehrdad-bx
04-07-2008, 20:56
بله، زبان سی هستش، چون اینجا انجمن سیه.(سی است)

rell
04-07-2008, 21:36
سلام :

از کتاب برنامه نویسی به زبان c از جعفرنژاد قمی می تونید کمک بگیرید .

( البته اگر به خواهید برنامه را به زبان c بنویسید . )


دوست عزيز من الان كتاب از كجا گير بيارم.اگه لطف كني توضيح بدي ممنون ميشم.

s_0o0
05-07-2008, 01:15
4.تابعي بنويسيد كه اين دو عدد را از تابع main دريافت نموده و عدد بزرگتر را بدست آورده و در تابع main در خروجي بنويسد.


#include <stdio.h> 1
#include <conio.h> 2
Void find max ( double, double); 3
Int main () 4
{
Double x,y; 5
Clrscr(); 6
Printf("Enter two number:"); 7
Scanf("%d%d",&x,&y); 8
Findmax(x,y); 9
Getch(); 10
Return 0; 11
}
//*****************
Void findmax (double a, double b) 1
{
Double max; 2
Max = ( a > b) ? a : b; 3
Printf("maximum =%d", max); 4
}

اميدوارم درست نوشته باشم و به دردتون بخوره .

Mehrdad-bx
05-07-2008, 12:25
تا کی وقت داری عزیز؟ تا بعد از ظهر میزارم(نهایت شب، دیر تر نمیشه ولی شاید یکیشو ننویسم)

فاطـمه
05-07-2008, 12:59
قسمت1

void main()
{ int i,j;i=0;j=0;
while(a[i]>0)
{
cout<<"Enter a["<<i+1<<"]:";
cin>>a[i];
i++;
}
while(b[j]>0)
{
cout<<"Enter b["<<j+1<<"]:";
cin>>b[j];
j++;
}
}

فاطـمه
05-07-2008, 13:09
جمع به وسیله تابع sum

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطـمه
05-07-2008, 13:33
برنامه عدد بزرگتر

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Mehrdad-bx
05-07-2008, 13:43
فاطمه جان لطفا تو یه پست اگه میشه بفرست شلوغ نشه اینجا(من دو سه تاشو نوشتم، الان میرم بیرون اومدم کامله)
درضمن، فاطمه جان ، یه برنامتو خوندم غلط بود! روش فکر کن، امتحان کردی؟ برنامه 9 رو میگم،لطفا اول تست کن بعد بزار.

فاطـمه
05-07-2008, 14:36
فاطمه جان لطفا تو یه پست اگه میشه بفرست شلوغ نشه اینجا(من دو سه تاشو نوشتم، الان میرم بیرون اومدم کامله)
درضمن، فاطمه جان ، یه برنامتو خوندم غلط بود! روش فکر کن، امتحان کردی؟ برنامه 9 رو میگم،لطفا اول تست کن بعد بزار.
درست می گین ولی نمی دونستم چه جوری کدا رو چپ چین کنم قاطی شده بود ، البته الان یاد گرفتم
در مورد برنامه شماره9 ، لطف کنید بگین کدوم قسمتش مشکل داره تا روش کار کنم:5:
(من C نداشتم که تستش کنم)

Mehrdad-bx
05-07-2008, 16:12
خودم ردیفش میکنم، طبق اون سوتی کوچولو، خیلی هارو غلط حل کردی(من اول حواسم به اون بود که کمی طول کشید، البته کار هم داشتم)
سوتیت رو هم میتونی خودت پیدا کنی؟ برای فعال شدن ذهن بچه ها خوبه ولی اگه خودت میخوای Pm بزن.(چشمک! تو ارسال سریع نداره شکلک!)

فاطـمه
05-07-2008, 16:31
خودم ردیفش میکنم، طبق اون سوتی کوچولو، خیلی هارو غلط حل کردی(من اول حواسم به اون بود که کمی طول کشید، البته کار هم داشتم)
سوتیت رو هم میتونی خودت پیدا کنی؟ برای فعال شدن ذهن بچه ها خوبه ولی اگه خودت میخوای Pm بزن.(چشمک! تو ارسال سریع نداره شکلک!)
دوست عزیز من عضوجدید محسوب می شم و pm ندارم ، این برنامه رو هم همین جور که سوال رو خوندم همینجا نوشتم ...
واسه همین امکان سوتی توش زیاده
بابا بگو عیبش چیه؟؟؟:5:

Mehrdad-bx
05-07-2008, 17:36
چشم، عیبش رو میگم خودتون برنامه کاملو بزارید(من دیگه نمینویسم، ولی بعضی تابع هاشو دارم کمک خواستید بگید میزارم)
کدی که شما نوشتی مال حالت خاصه، یعنی حالتی که طرف 50 رقمی عدد وارد کنه.

فاطـمه
05-07-2008, 17:49
چشم، عیبش رو میگم خودتون برنامه کاملو بزارید(من دیگه نمینویسم، ولی بعضی تابع هاشو دارم کمک خواستید بگید میزارم)
کدی که شما نوشتی مال حالت خاصه، یعنی حالتی که طرف 50 رقمی عدد وارد کنه.

دوست خوب اون حالت رو که حواسم بود،پیاده سازی اون قسمت سخت نیست فقط کافیه که مثلاً فرض کنیم اگر طرف عدد منفی وارد کرد عدد تموم شده بعد با استفاده از شمارنده می فهمیم چند رقم داشته
نه تو رو خدا خودتون بنویسین
من Cندارم

Mehrdad-bx
05-07-2008, 18:54
چشم، راستی، همین چیز های کوچیکه که باعث میشه به برنامه بگن غلط!

فاطـمه
06-07-2008, 06:36
چشم، راستی، همین چیز های کوچیکه که باعث میشه به برنامه بگن غلط!

درست می گین ، ولی من حالت الگوریتم وار نوشتم .:5:
چون راهنمایی خواستن نه خود برنامه رو
در ضمن فکر کنم دیگه به خودمون زحمت ندیم، چون خودش یک بارم به اینجا سر نزده :21:
اصلاً شاید مشکلش رفع شده :27:

Mehrdad-bx
06-07-2008, 14:03
فقط یه نکته، سوتی ای بزرگ!
برای چی هر رقم رو که میزنه اینتر بزنه و آخرش یه عدد منفی؟ خیلی بد نیست؟
string چطوره؟
ولی خوب آره، دیگه تمومه، چون صاحب تاپیک احتمالا قید اینجا و زده(اگه اومد ادامه میدیم)

فاطـمه
06-07-2008, 16:13
فقط یه نکته، سوتی ای بزرگ!
برای چی هر رقم رو که میزنه اینتر بزنه و آخرش یه عدد منفی؟ خیلی بد نیست؟
string چطوره؟
ولی خوب آره، دیگه تمومه، چون صاحب تاپیک احتمالا قید اینجا و زده(اگه اومد ادامه میدیم)
درست می گین حالا که فکر می کنم با String هم می شه پیاده سازی کردش
ولی شما صورت سوال رو یک بار دیگه بخون خودشون گفتن با آرایه ...
حالا کی سوتی داد؟؟؟

Mehrdad-bx
06-07-2008, 17:50
شما! فاطمه جان صورت سوال رو بخوان نه توضیح برای ...
ایشون گفتن عدد 50 رقمی! یعنی 50 رقم رو باهم جمع کنیم و... .
دیدی کی سوتی داد؟! راستی، اون رو داخل پرانتز نوشته که بعضی ها سوتی ندن با longint بنویسن! وگرنه کلیتش که یکیه و خروجی و ... فرق نداره.

فاطـمه
06-07-2008, 18:25
شما! فاطمه جان صورت سوال رو بخوان نه توضیح برای ...
ایشون گفتن عدد 50 رقمی! یعنی 50 رقم رو باهم جمع کنیم و... .
دیدی کی سوتی داد؟! راستی، اون رو داخل پرانتز نوشته که بعضی ها سوتی ندن با longint بنویسن! وگرنه کلیتش که یکیه و خروجی و ... فرق نداره.
ما یه پروژه تو ترم 1 کاردانی استادمون بهمون داد که دو عدد 100 رقمی رو در هم ضرب کنه ، اون موقع خیلی واسم سخت بود و درضمن گفته بود با آرایه بنویسین
من خیلی رو اون فکر کردم تا جواب داد ، اینه که حالا هر کس حرف عدد بزرگ رو میزنه من یاد آرایه می افتم
حالا این بنده خدا که خودش گفته با آرایه
بی خیال ...:20:

Mehrdad-bx
06-07-2008, 19:13
کاردانی!!!
بابا بیخیال! پارسال به ما 100 فاکتوریل میدادن! میگفتن هرجور میشه بنویسین!(البته اجباری نبود، هیچی اجباری نبود!)

جدی فکر کنم طرف بیخیال اینجا شده.

akiller
06-07-2008, 20:30
وقت نداشتم بهینه کنم سریع الگوریتم رو اوردم تو سی شاید تو بتونی بهترش کنی
اینم سورس تست شده:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
unsigned char LenA , LenB ,Ez;
char Counter,PosDef,PosRes=0;
char Dig1,Dig2,SumDig,Over=0;
char *a = new char[50];
char *b = new char[50];
char *tempA = new char[50];
char *tempB = new char[50];
char *Result = new char[60];
char *DigTemp = new char[1] ;
memset(DigTemp ,0,50);
memset(tempA ,0,50);
memset(tempB ,0,50);
memset(Result ,0,60);
printf("Enter Number1(Maximum lent = 50) : ");
scanf ("%50s",a);
printf("Enter Number2(Maximum lent = 50) : ");
scanf ("%50s",b);
LenA = strlen(a);
LenB = strlen(b);
if(LenA > LenB){
Ez = LenA - LenB;
PosDef= LenA - Ez;
for(Counter = LenA;Counter >= 0;Counter--){
tempA[Counter] = a[Counter];
if(PosDef >= 0){
tempB[Counter] = b[PosDef];
PosDef--;}
else
tempB[Counter] = '0';
}
}
else{
Ez = LenB - LenA;
PosDef= LenB - Ez;
for(Counter = LenB;Counter >= 0;Counter--){
tempB[Counter] = b[Counter];
if(PosDef >= 0){
tempA[Counter] = a[PosDef];
PosDef--;}
else
tempA[Counter] = '0';
}
}
for(Counter = strlen(tempA) - 1;Counter >= 0;Counter--){
DigTemp[0] = tempA[Counter];
Dig1 = atoi(DigTemp);
DigTemp[0] = tempB[Counter];
Dig2 = atoi(DigTemp);
SumDig = Dig2 + Dig1 + Over;
if(SumDig > 9){
SumDig = SumDig - 10;
Over = 1;
}else
Over = 0;
itoa(SumDig,DigTemp,10);
Result[PosRes]= DigTemp[0];
PosRes++;
}
if(Over)
Result[PosRes] = '1';
strrev(Result);
printf("Result = %s",Result);
getch();
}

Mehrdad-bx
06-07-2008, 20:58
باور کن فهمیدم!!
نمیشه تو تگ کد بزاری؟ تو قوانین(اعلان ها) هم اومده که اینکارو کنیم

فاطـمه
07-07-2008, 09:13
کاردانی!!!
بابا بیخیال! پارسال به ما 100 فاکتوریل میدادن! میگفتن هرجور میشه بنویسین!(البته اجباری نبود، هیچی اجباری نبود!)

جدی فکر کنم طرف بیخیال اینجا شده.
اتفاقاً اون برنامه رو هم تو همون ترم نوشتیم(صدفاکتوریل)

[quote=akiller;2617065]وقت نداشتم بهینه کنم سریع الگوریتم رو اوردم تو سی شاید تو بتونی بهترش کنی
اینم سورس تست شده:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

جریان چیه؟؟؟(با اجازه من گذاشتمش تو تگ کد،اون جوری اصلاً خونده نمیشد)

rell
11-07-2008, 17:31
اتفاقاً اون برنامه رو هم تو همون ترم نوشتیم(صدفاکتوریل)

[quote=akiller;2617065]وقت نداشتم بهینه کنم سریع الگوریتم رو اوردم تو سی شاید تو بتونی بهترش کنی
اینم سورس تست شده:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

جریان چیه؟؟؟(با اجازه من گذاشتمش تو تگ کد،اون جوری اصلاً خونده نمیشد)

سلام دوست عزیز. اگه میخواستیم از روش dynamic memory allocation برای تعریف آرایه ها استفاده کنیم و از توابع کتابخانهای نیز استفاده نکنیم چه تغییراتی باید بدهیم؟