-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
مقداري كه برميگردونه مفهومش چيه اصلا چرا بايد اينو برگردونه؟
این تابع وظیفه ی تعریف یک آرایه دو بعدی و سپس پر کردن اون توسط ورودی کاربر را بر عهده داره. بعد از این که کار تابع تمام شد شما باید به آرایه تعریف شده دسترسی داشته باشید. پس تابع اشاره گر به آرایه مورد نظر را بر می گردونه تا با استفاده از اون بتونید به آرایه دسترسی داشته باشید.
نقل قول:
چجوري ميتونم به صورت void بنويسم؟
برای این کار شما میتونید آرایه را در بیرون از تابع ایجاد کنید و اشاره گر آرایه را به همراه پارامتر های دیگه به تابع ارسال کنید. به این صورت:
void input_array(int *array, int r, int c)
{
int i , j;
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
printf("enter array[%d][%d]\n", i, j);
scanf("%d", array);
array++;
}
}
}
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
return array-r*c
اين چيزي كه برميگردونه چيه؟
در زبان ++C, C آرایه ها با استفاده از اشاره گری که به اولین خانه آرایه اشاره می کنه مورد دستیابی قرار می گیرند. array در ابتدای تابع به اولین خانه آرایه ایجاد شده اشاره میکنه اما در طول تابع مقدار این اشاره گر تغییر می کنه (برای دستیابی به خانه های بعدی آرایه) . برای return کردن آرایه، در واقع ما باید اشاره گر به اولین خانه ی آرایه ایجاد شده را return کنیم اما اشاره گر array در طول تابع تغییر کرده و در آخر تابع به آخرین خانه آرایه اشاره می کنه. پس با کم کردن مقدار r*c (تعداد خانه های آرایه) از اشاره گر array می تونیم آدرس اولین خونه ی آرایه را return کنیم.
امیدوارم تونسته باشم درست توضیح بدم.
-
نقل قول: تمرین های زبان برنامه نویسی c
اي ول مرسي
پس من نيازي به alloc كردن ندارم؟(پست قبلي رو منظورمه):چشمک:
اگر نه اشاره گر از كجا ميدونه به كجا اشاره ميكنه
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
نوشته شده توسط
clover
در زبان ++C, C آرایه ها با استفاده از اشاره گری که به اولین خانه اشاره می کنه مورد دستیابی قرار می گیرند. array در ابتدای تابع به اولین خانه آرایه اشاره میکنه اما در طول تابع مقدار این اشاره گر تغییر می کنه (برای دستیابی به خانه های بعدی آرایه) در موقع بازگردانده آرایه، ما باید یک اشاره گر به اولین خانه ی آرایه را return کنیم اما array در آخر تابع به آخرین خانه آرایه اشاره می کنه. پس با کم کردن مقدار r*c (تعداد خانه های آرایه) از اشاره گر array می تونیم آدرس اولین خونه ی آرایه را return کنیم.
امیدوارم تونسته باشم درست توضیح بدم.
اره خيلي ممنون فقط اگر اين رو هم توضيح بديد ممنون ميشم
توي ارايه ها هست كه ما به اين شكل returnميكنيم؟ يعني برميگردونيم به خونه ي اول؟
و اين كه يه تابعي مثل اين
double average(double a, double b)
{
return (a + b) / 2;
}
چرا اومده و مقدار ميانگين رو returnكزده؟
نميشه توي تابع يك چيزي مثل خود average تعريف كنيم و بعد اون رو return كنيم؟ اگر صفر returnكنيم چي؟
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
پس من نيازي به alloc كردن ندارم؟
منظورتون return کردن بود دیگه ؟ در این صورت بله.
اما اگر منظور استفاده از malloc برای تعریف پویای آرایه بود ، در هر صورت چه در بیرون و یا داخل تابع باید فضای مورد نیاز را یرای آرایه تخصیص بدید.
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
نوشته شده توسط
clover
منظورتون return کردن بود دیگه ؟ در این صورت بله.
اما اگر منظور استفاده از malloc برای تعریف پویای آرایه بود ، در هر صورت چه در بیرون و یا داخل تابع باید فضای مورد نیاز را یرای آرایه تخصیص بدید.
يعني همو كدي كه نوشتيد من بايد mallocرو بيرون از تابع زماني كه ميخوا ازش استفاده كنم ايجاد كنم؟
يا اينكه در تعريف پوياي ارايه نميشه voidكرد؟و بايد *intباشه؟
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
نميشه توي تابع يك چيزي مثل خود average تعريف كنيم و بعد اون رو return كنيم؟ اگر صفر returnكنيم چي؟
چرا، این کار را هم میشه انجام داد و اتفاقا خوانایی کد را بالا میبره، اما این کاملا بستگی به سبک برنامه نویسی شما داره و اختیاری هست.
صفر را return کنیم ؟ چرا باید این کار را انجام بدیم ؟ مگر قرار نیست تابع ما مقدار میانگین را حساب کنه و اونو return کنه ؟ من فکر می کنم شما درمفهوم توابع مشکل دارید. یک تابع قرار هست که عملیاتی را انجام بده، حالا اگر این عملیات نتیجه ای داشته باشه (یعنی یک عدد، رشته و یا هر مقداری که معرف نتیجه ی عملیات باشه) باید پس از اتمام عملیات (اتمام کار تابع) به این نتایج دسترسی داشته باشیم. یکی از راه های این کار، استفاده از دستور return هست.
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
يعني همو كدي كه نوشتيد من بايد mallocرو بيرون از تابع زماني كه ميخوا ازش استفاده كنم ايجاد كنم؟
بله.
مثالی برای نحوه ی استفاده :
void input_array(int *, int, int);
int main()
{
int *myArray = (int *)malloc(4 * 5 * sizeof(int));
input_array(myArray, 4, 5);
return 0;
}
void input_array(int* array, int r, int c)
{
int i, j;
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
printf("enter array[%d][%d]\n", i, j);
scanf("%d", array);
array++;
}
}
}
در این قطعه کد ما ابتدا فضای مورد نیاز برای آرایه را تخصیص میدیم و این فضا را به اشاره گر myArray انتساب میدیم.
int *myArray = (int *)malloc(4 * 5 * sizeof(int));
و بعد این اشاره گر را به همراه طول و عرض آرایه (ماتریس) به تابع ارسال می کنیم تا اونو با مقادیر ورودی پر کنه.
input_array(myArray, 4, 5);
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
نوشته شده توسط
clover
چرا، این کار را هم میشه انجام داد و اتفاقا خوانایی کد را بالا میبره، اما این کاملا بستگی به سبک برنامه نویسی شما داره و اختیاری هست.
صفر را return کنیم ؟ چرا باید این کار را انجام بدیم ؟ مگر قرار نیست تابع ما مقدار میانگین را حساب کنه و اونو return کنه ؟ من فکر می کنم شما درمفهوم توابع مشکل دارید. یک تابع قرار هست که عملیاتی را انجام بده، حالا اگر این عملیات نتیجه ای داشته باشه (یعنی یک عدد، رشته و یا هر مقداری که معرف نتیجه ی عملیات باشه) باید پس از اتمام عملیات (اتمام کار تابع) به این نتایج دسترسی داشته باشیم. یکی از راه های این کار، استفاده از دستور return هست.
كاملا درست فهميديد من با مفهوم توابع مشكل دارم
البته بيشتر قاطي كردم مسايلو
ولي الان فهميدم (خيلي ممنون از راهنمايي هاتون:چشمک:)
در واقع اون سوالي كه اول كار پرسيدم همين بود
(تابع مقداري رو return ميكنه كه قراره مورد استفاده قرار بگيره؟)
در كل خيلي ممنون از راهنمايي هاتون خيلي مفيد بود:چشمک:
-
نقل قول: تمرین های زبان برنامه نویسی c
مدتیه که این تاپیک از هدفی که برای اون ایجاد شده بود فاصله گرفته و شده محل رفع اشکال برنامه ها، گرچه به دلیل پاسخ هایی که دادم به خودم هم ایراد وارد هست (که البته چاره ای نبود و تقریبا با این اوضاع تفاوتی هم نمی کرد) اما بهتر بود از ابتدا ایجاد کننده تاپیک یا شخص دیگه ای وظیفه ی مدیریت تاپیک را به عهده می گرفت.
به هر حال به نظرم رسید باید این مورد را متذکر بشم.
-
نقل قول: تمرین های زبان برنامه نویسی c
بر منكرش لعنت كه شما گفتي
منم جملم سوالي نبود تو پرانتز گذاشتم خبري بود:لبخند:
-
نقل قول: تمرین های زبان برنامه نویسی c
بازم یه سری سورس کد میزارم حالشو ببرین
امیدوارم که خوشتون بیاد :لبخند:
دانلود
-
نقل قول: تمرین های زبان برنامه نویسی c
اینم برایه اینکه از عنوان تاپیک دفاع کنیم
چند تا تمرین برنامه نویسی که بیشتر برایه مبتدی ها و استفاده از آرایه هاست
بابا یه تشکر بذارین دیگه
هر چی داشتم خرجتون کردم:لبخند::لبخند::لبخند:
دانلود
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام دوستان عزیز من بالاخره دوباره بازگشتم :لبخند:
از فردا انشالله با تمرین های خوب خوب میام خدمتتون تا حالشو ببرید
راستی اینم یه دست گرمی
برنامه ی 118 رو بنویسید (این برنامه شماره و اسم و ادرس رو میگیره و به کاربر با امکان سرچ و نمایش تحویل داده میشه)
-
نقل قول: تمرین های زبان برنامه نویسی c
با سلام من یه مشکل دارم و اون هم اینه که اگه یه دستور مثلscanf("%f",&a)l داشته باشیم و بلا فاصله دستور
gets(str)l رو scanf انجام میشه ولی gets انجام نمیشه؟
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
نوشته شده توسط
joedolton
با سلام من یه مشکل دارم و اون هم اینه که اگه یه دستور مثلscanf("%f",&a)l داشته باشیم و بلا فاصله دستور
gets(str)l رو scanf انجام میشه ولی gets انجام نمیشه؟
این مشکل با cin و gets هم وجود داره، برای فهمیدن علت و رفع مشکل، این تاپیک ها را مطالعه کنید:
در ضمن به عنوان تاپیک توجه کنید، بهتر بود سوالتون را در تاپیک مرتبط یا جدید مطرح می کردید.
موفق باشید.
-
نقل قول: تمرین های زبان برنامه نویسی c
چه تاپیک خوبی :لبخند:
خب اگه دوستان موافقید ، بریم به سمت برنامه های شی گرا و طراحی کلاس ؟
سرفصلها :
1. کلاس
2. توابع friend
3. overloading
4. inherience
5. polymorphism
6. encapsulation
و ......
اگه موافقید شروع کنیم ؟
-
نقل قول: تمرین های زبان برنامه نویسی c
ای :متعجب:بابا اول اون برنامه 118 رو بنویسید ببینم چی یاد گرفتید بعد بریم به بالا تر ها ok :لبخند:
بعد از اون میریم سراغ کتابخونه منم تا چند روز دیگه کتاب خ.نم که اولین پروژه من بود می ذارم اینجا تاببینید
:لبخندساده:
فعلا بای
-
نقل قول: تمرین های زبان برنامه نویسی c
اوکی ، من امتحانام تموم شه حتما مینویسمش ؛
یه پروژه انبار هم دارم مینویسم ، کامل شد میذارم اینجا تا همه استفاده کنند (سعی کردم تمام اصول شی گرایی رو توش رعایت کنم و حتی الامکان ساده نوشتم ، فک کنم واسه آموزش چیز خوبی باشه :چشمک:)
موفق باشید :قلب:
-
نقل قول: تمرین های زبان برنامه نویسی c
خوبه منم موافقم
منم فکر میکنم که کتاب خونم برای آموزش خوب باشه ولی یه بخششو نمی ذارم اونم ماله فایلش وقتی که دیدین می تونید خودتون براش فایلو بنویسین تا یاد بگیرین :لبخند:
(لبته فقط لود کردن رو براتون برم دارم تا سخت نشه براتون.)
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام اینم از کتاب خونم که البته تصمیم گرفتم که همونی رو که کامل نیست و یه جاهایی رو باید تکمیل بشه رو قرار بدم البته سورسشم تصمیم گرفتم بزارم تا ببیندی من چطور نوشتم و تا خودتون هم بتونید با الگوریتمن هعای متفات برخی جا هاشو عوض کنین و البته بخش لود کر دنشو هنوز قرار ندادم
:
http://www.uplod.ir/download.php?file=617340
برید حتما دانلود کنید و الگوریتم خودتون هم مطرح کنید.
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام به دوستان عزیز . من یه تازه وارد در بین شما دوستانم اما اگه مشکلی در مورد ++c دارین میتونید به farsicode@yahoo. یا www.farsicode.com دیدن فرمایید
-
نقل قول: تمرین های زبان برنامه نویسی c
اين تاپيک خيلی مفيده.:تشویق:
اما متاسفانه زياد فعال نيست!!!:ناراحت:
الان بايد 118 رو بنويسيم؟
-
نقل قول: تمرین های زبان برنامه نویسی c
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام
این تاپی رو مطالعه کردم... از همش جالبتر بنظرم اون کته دوتا space قبل از %C که کار رابندازه... منم یه برنامه می ذارم ببینم کسی متوجه نکتش میشه... برنامه درواقع بسیار آسون و فهمیدنش راحته.
int main()
{
int a=3;
printf("%d ",a);
printf("%d ",a++);
printf("%d ",a++);
printf("%d ",a++);
printf("%d ",a++);
printf("%d ",a++);
printf("\n %d\n %d\n %d\n %d\n %d \n",a++,a++,a++,a++,a++);
getch();
return 0;
}
به خروجیتون و ترتیبش دقت کنین:لبخند:
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام من چطور ابتدا شروع کنم
-
نقل قول: تمرین های زبان برنامه نویسی c
برنامه ای بنویسید که دو عدد 30 رقمی را با هم جمع کند.
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام به همه
بچه ها ببخشيد اگه تكراريه و اگه مبتديه و اگه خسته كنندس ...
سه تا برنامه كوچيكه
به بزرگي خودتون ببخشيد حلشو ميخواستم
برنامه اي كه شعاع دايره را بخواند اختلاف مساحت آن را نسبت به مربع محصور كننده آن محاسبه و چاپ كند
2-برنامه اي كه عددي را بخواند و تعيين كند چند رقم دارد
3-برنامه اي كه دو عدد را بخواند و ميانگين حسابي و ميانگين هندسي آن را نمايش دهد.
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام
برنامه ای بنویسید که انواع اعداد صحیح، اعداد اعشاری و اعداد اعشاری به فرم نماد علمی را شناسایی کند. (هدف آشنایی با تحلیلگر لغوی یک کامپایلر است.)
-
نقل قول: تمرین های زبان برنامه نویسی c
همچنین:
فصل ششم صفحه 271 مسئله 19 از کتاب ساختمان داده لیپ شوتز:
حل مسئله برج هاي هانوي را تغيير دهيد به طوري که به جاي دو صدا زدن بازگشتي فقط يک صدا زدن بازگشتي داشته باشيم.
مي توان محورهاي (ميله هاي) A و B را قرينه يکديگر فرض کرد. به اين صورت که گام هاي ذيل را انجام دهيم.
N-1 ديسک از A به B انتقال يابد و بعد داشته باشيم A↑C
تعویض A با B
N-2 ديسک از A به B انتقال يابد و بعد داشته باشيم B↑C
تعویض A با B
N-3 ديسک از A به B انتقال يابد و بعد داشته باشيم A↑C
تعویض A با B
N-4 ديسک از A به B انتقال يابد و بعد داشته باشيم B↑C
تعویض A با B
و به همين ترتيب. بنابراين ما مي توانيم يک صدا زدن بازگشتي را تکرار کرده و در هر بار BEG و AUX را جابجا نماييم و رويه ذيل با توجه به توضيحات فوق حاصل مي شود.
TOWER(N,BEG,AUX,END)
1.If N=0 then: RETURN
2.Call tower(k-1.beg,end,aux.)
4.Write: BEG -> END.
5.BEG with AUX
Set TEMP:=BEG:=AUX.AUX:=TEMP.
[End of step 2 loop.]
6.Return
مشاهده مي کنيد به جاي
N=1
از
N=0
بعنوان ملاک بازگشت استفاده کرده ايم. هر کدام از آنها مي توانند براي بدست آوردن جواب مورد استفاده قرار گيرند.
-
نقل قول: تمرین های زبان برنامه نویسی c
سلام
یه سری سوالات کلیدی هست که برای درس پایانی ++c در دوره کاردانی استفاده میشه میخوام بدونم چه سوالاتی هستن.
-
نقل قول: تمرین های زبان برنامه نویسی c
#include <iostream>using namespace std;
main()
{
int x;
cout << "Type your Number : ";
cin >> x;
if(x%2==0)
{
cout << "zoj" <<endl;
}
else
cout <<"fard";
return 0;
}
برنامه تعیین اعداد زوج و فرد
-
نقل قول: تمرین های زبان برنامه نویسی c
نقل قول:
نوشته شده توسط
mehdijoooon
سلام به همه
بچه ها ببخشيد اگه تكراريه و اگه مبتديه و اگه خسته كنندس ...
سه تا برنامه كوچيكه
به بزرگي خودتون ببخشيد حلشو ميخواستم
برنامه اي كه شعاع دايره را بخواند اختلاف مساحت آن را نسبت به مربع محصور كننده آن محاسبه و چاپ كند
2-برنامه اي كه عددي را بخواند و تعيين كند چند رقم دارد
3-برنامه اي كه دو عدد را بخواند و ميانگين حسابي و ميانگين هندسي آن را نمايش دهد.
در مورد برنامه دومتون اینو نوشتم :
#include<stdio.h>#include<conio.h>
using namespace std;
int sum(int n)
{
int s=0;
while(n!=0)
{
s=s+n%10;
n=n/10;
}
printf("sumation is %d",s);
}
int main()
{
clrscr();
int n;
printf("enter a number:");
scanf("%d",&n);
sum(n);
getch();
return 0;
}