تور لحظه آخری
امروز : پنجشنبه ، 4 بهمن 1403    احادیث و روایات:  امام حسین (ع):عاجزترین مردم کسی است که نتواند دعا کند.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

armanekasbokar

armanetejarat

Future Innovate Tech

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

خرید از چین

خرید از چین

خرید سرور اچ پی ماهان شبکه

کاشت ابرو طبیعی و‌ سریع

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

دوره آموزش باریستا

مهاجرت به آلمان

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

کلینیک زخم تهران

کاشت ابرو طبیعی

پارتیشن شیشه ای اداری

رزرو هتل خارجی

تولید کننده تخت زیبایی

مشاوره تخصصی تولید محتوا

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

تور بالی نوروز 1404

سوالات لو رفته آیین نامه اصلی

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تجهیزات و دستگاه های کلینیک زیبایی

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

خرید یوسی

ساندویچ پانل

ویزای ایتالیا

مهاجرت به استرالیا

میز کنفرانس

تعمیرگاه هیوندای

تعمیرگاه هیوندای

تعمیرگاه هیوندای

اوزمپیک چیست

قیمت ورق سیاه

چاپ جزوه ارزان قیمت

 






آمار وبسایت

 تعداد کل بازدیدها : 1856204622




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

اطلاعات دانشچو -


واضح آرشیو وب فارسی:سایت ریسک: اطلاعات دانشچو v.b.f1 11 دي 1389, 16:11دوستان عزیز یه برنامه میخوام که اطلاعات دانشجویی رو دریافت کنه مثلا تعداد دانشجو بعدش میانگین نمرات محاسبه و چاپ کنه فکر کنم اینجا باید از سوئچ استفاده کنم به فرض اگه نمرات 18 19 20 باشه این پیغامو بده verygood اگه 17 16 15 باشه good و در غیر این صورت week اطلاعات دانشجویی هم اینجوری باشه شماره دانشجویی شرط اتمام برنامه هم صفر 0 باشه 3 نمره دانشجو فکر کنم چهارتا متغییر میخواد d f g s a = میانگین b= شماره دانشجویی g= نمره دانشجو S= مجموع اگه ممکنه نمونه ای راهنمایی یا اصلا از چه چیزایی باید استفاده کنم saalek110 11 دي 1389, 18:48برنامه شما دو قسمت دارد: قسمت ورودی گرفتن.(توابع ورودی گرفتن را استفاده کنید) قسمت محاسبات و نمایش. آرایه باید تعریف کنید تا داده های دانشجوها را در آن ها بریزید و بعد روی عناصر این آرایه محاسبات انجام دهید.(با تغییر اندیس آرایه می توانید کل اعضای آرایه را خوانده و با دیگر اعضا مقایسه کنید یا اعداد خانه های آرایه را تغییر دهید.) می توانید از استراکت هم استفاده کنید تا اطلاعات ناهمجنس دانشجو (رشته - عدد و ..) در آن نظم پیدا کند. بقیه اش سلیقه ای است. مثلا می توانید منویی اضافه کنید تا وارد قسمتهای مختلف مثل ورودی و محاسبه و نمایش شوید. سوئیچ هم برای کاری که گفتید مناسب است. با نگاه به یک آموزش می توانید با کمی فکر بسازید. ولی می توانید در سایتهای سورس این گونه برنامه را بیابید و از آنها ایده بگیرید. در فرومهایی مثل اینجا این سئوال بارها مطرح شده و سورس در جواب گذاشته شده. اگر خوب سرچ کنید در فرومهای فارسی این تاپیکها را هم می توانید پیدا کنید. در هر قسمتی سئوال داشتید همین جا مطرح کنید تا من یا دوستان دیگر جواب دهیم. the_king 11 دي 1389, 21:08دوستان عزیز یه برنامه میخوام که اطلاعات دانشجویی رو دریافت کنه مثلا تعداد دانشجو بعدش میانگین نمرات محاسبه و چاپ کنه فکر کنم اینجا باید از سوئچ استفاده کنم به فرض اگه نمرات 18 19 20 باشه این پیغامو بده verygood اگه 17 16 15 باشه good و در غیر این صورت week اطلاعات دانشجویی هم اینجوری باشه شماره دانشجویی شرط اتمام برنامه هم صفر 0 باشه 3 نمره دانشجو فکر کنم چهارتا متغییر میخواد d f g s a = میانگین b= شماره دانشجویی g= نمره دانشجو S= مجموع اگه ممکنه نمونه ای راهنمایی یا اصلا از چه چیزایی باید استفاده کنم اگه فرضا بخواهید مشخصات 5 دانشجو رو دریافت کنید میشه دو نوع پیاده سازی متفاوت داشته باشید : پیاده سازی بدون آرایه : می توانید برای همه دانشجو ها از همان چند متغیر a و b و g و s استفاده کنید اما ناچار هستید که بعد از دریافت مشخصات هر دانشجو بلافاصله میانگین و پیغام مورد نظر رو برای اون دانشجو نشون بدید چون اگه سراغ دانشجوی بعدی بروید دیگه مشخصات دانشجو قبلی در متغیر های شما جایگزین میشه و دیگه بهشون دسترسی ندارید. پیاده سازی با آرایه : می توانید هر کدام از متغیر های a و b و g و s رو بصورت یک آرایه تک بعدی تعریف کنید تا مشخصات هر دانشجو یک خونه از این آرایه ها را اشغال کنند، اندیس 0 برای دانشجوی اول، اندیس 1 برای دانشجوی دوم و ... اینطوری می توانید ابتدا مشخصات همه دانشجو ها رو دریافت کنید و سپس میانگین و نمراتشان را نمایش دهید. اگر می خواهید تعداد دانشجو ها را همان ابتدا از کاربر بپرسید که نیازی به شرط اتمام برنامه نیست، اما اگر تعداد دانشجو ها با مقدار 0 مشخص می شود بهتر است از یک حلقه for مثلا با متغیر i استفاده کنید : int i; int b[100]; for (i = 0;i < 100;i++) { printf("Please enter student ID :"); scanf("%d", &b[i]) if (b[i]==0) break; . . . } حلقه بالا حلقه ای خواهد بود که مشخصات دانشجو ها را دریافت کرده و میانگین نمرات را محاسبه می کند. برای نمایش نمره و پیغام ها بهتر است در ادامه این کد از یک حلقه دیگر استفاده کنید، n متغیری است که تعداد دانشجو ها را مشخص می کند : int n = i; for (i = 0;i < n;i++) { . . . } v.b.f1 12 دي 1389, 10:41میبخشین دوستان میشه else if در برنامه استفاده کنم یا اصلا اگه میشه چطوریه saalek110 12 دي 1389, 12:32if یعنی اگر و else یعنی در غیر این صورت. مثلا اگر متغیر a برابر 4 بود فلان کار را بکن در غیر این صورت فلان کار را بکن. بله شما هر جایی و در هر برنامه ای می توانید از if و else استفاده کنید. بنا به ضرورتی که حس می کنید. ----------- ولی بحث دیگر اینه که متغیرها چطوری تعریف بشوند. اگر آرایه تعریف می کنید چطوری کار کنید. --------- با این if و else مثل بقیه ابزارها می توانید روی این متغیرها کار کنید. شرط (if ) یک ابزار است . حلقه یک ابزار است و چیزهای دیگر. ---------- کلا شما برای نوشتن برنامه خود از مجموعه ای از ابزارها مثل متغیر - شرط و حلقه استفاده می کنید و جوری اینها را ترکیب می کنید که به منظور خود برسید. معماری برنامه پست قبل از دوستمان را نگاه کنید. در یکی از برنامه ها هم متغیر دارد هم حلقه و هم شرط. اینها (متغیر-شرط-حلقه) از ابزارهای رایج برنامه نویس است. v.b.f1 13 دي 1389, 07:40:-?:-?:-?:-?:-?:-?:-?:-?:-?:-?:-?:-?:-?:-?:-?:-? نششششششششششششد اگه ممکنه خودتون بزارید و خط به خط توضیح بدیدن البته شرمندتونم این مخه زنگ زده طعتیله سنی ازش گذشته منتظررررررررررررم باتشکر از دوستانی که همیشه مایه دردسرم براشون the_king 13 دي 1389, 19:12#include <stdio.h> #include <conio.h> int main() { int studentID[100], i, j, n; float studentAvg[100], score, sum; for (i = 0; i < 100; i++) { printf(" Please enter student ID (0 for finish) :"); scanf("%d", &studentID[i]); if (studentID[i] == 0) break; sum = 0; for (j = 1; j <= 3; j++) { printf(" Please enter score #%d :", j); scanf("%f", &score); sum += score; } studentAvg[i] = sum / 3; } n = i; for (i = 0; i < n; i++) { printf(" Student ID = %-10d Average = %-10g Rating = ", studentID[i], studentAvg[i]); switch ((int)studentAvg[i]) { case 18: case 19: case 20: printf("Very good"); break; case 15: case 16: case 17: printf("Good"); break; default: printf("Weak"); } } printf(" Press any key to continue. "); getch(); return 0; } در تعریف متغیر ها studentID آرایه ای است که شماره های دانشجویی را نگهداری می کند، البته دقت کنید که int برای اعداد خیلی بزرگ و طولانی که در شماره های دانشجویی مرسوم است مناسب نیست. نوع داده ای long int برای اعداد خیلی بزرگ مناسب تر است. متغیر i برای حلقه دریافت مشخصات هر دانشجو، اندیس دانشجو در آرایه را مشخص می کند، مثلا دانشجوی شماره 0 و 1 و 2 و ... متغیر j برای حلقه ای است که 3 نمره دانشجو را دریافت می کند، چون دریافت نمره ها مشابه هم اند برای دریافت سه نمره از یک حلقه استفاده شده است. متغیر n تعداد دانشجو هایی است که مشخصاتشان را دریافت می کنیم. int studentID[100], i, j, n; آرایه studentAvg میانگین نمرات دانشجو ها را ذخیره می کند، از نوع float است چون نمرات و میانگین آنها اعداد اعشاری هستند با نوع داده int فقط می توانستیم اعداد صحیح بدون اعشار را ذخیره کنیم. متغیر score یک نمره دانشجو را دریافت می کند، یک متغیر کافی است، چون بعد از جمع زدن نمرات دیگر نیازی به اطلاعات نمره ها نداریم. در متغیر sum نمرات یک دانشجو را جمع خواهیم کرد تا بتوانیم میانگین شان را حساب کنیم. float studentAvg[100], score, sum; حلقه اول مشخصات حداکثر 100 دانشجو را دریافت می کند : for (i = 0; i < 100; i++) { شماره دانشجویی هر دانشجو در اندیس i آرایه studentID ذخیره می شود : printf(" Please enter student ID (0 for finish) :"); scanf("%d", &studentID[i]); اگر شماره دانشجویی وارد شده 0 باشد، از حلقه دریافت مشخصات خارج می شویم : if (studentID[i] == 0) break; پیش از آنکه نمرات یک دانشجو را دریافت کنیم مقدار متغیر sum را صفر می کنیم تا پیش از جمع کردن نمرات مقداری در آن نباشد. برای دریافت کردن سه نمره از یک حلقه که سه بار اجرا می شود استفاده می کنیم : sum = 0; for (j = 1; j <= 3; j++) { داخل حلقه یک نمره را دریافت می کنیم، از متغیر j که شماره نمره است استفاده شده تا پیغام ها متناسب با شماره نمره باشد، یعنی با هر بار اجرا کردن حلقه در پیغام ها شماره متفاوتی نمایش داده شوند : Please enter score #1 : Please enter score #2 : Please enter score #3 : نمره در متغیر score ذخیره می شود : printf(" Please enter score #%d :", j); scanf("%f", &score); نمره دریافت شده را در متغیر sum با سایر نمرات جمع می کنیم : sum += score; } زمانی که 3 نمره دریافت شدند، میانگین شان را در آرایه studentAvg برای دانشجوی اندیس i ثبت می کنیم : studentAvg[i] = sum / 3; } تا پیش از اجرا کردن حلقه اول، مشخص نبود که کاربر مشخصات چند دانشجو را ثبت می کند، اما بعد پایان یافتن آن تعداد دانشجو ها توسط متغیر i مشخص شده که برای استفاده در متغیر n ذخیره می کنیم (خود متغیر i را برای حلقه بعدی لازم داریم) : n = i; حلقه بعدی را برای نمایش میانگین نمرات n دانشجو ایجاد می کنیم : for (i = 0; i < n; i++) { در یک سطر شماره دانشجویی و میانگین نمرات دانشجوی اندیس i را نمایش می دهیم. قالب های d% یا g% برای نمایش یک مقدار مناسب اند، اما طول مقادیر ثابت نیست، مثلا میانگین نمره یک دانشجوی 9 است (یک رقمی) و میانگین نمره یک دانشجوی دیگر 18.25 (پنج رقمی) متغیر بودن طول مقادیر موجب می شود که مقادیر در سطر های متفاوت دقیقا زیر هم و مرتب قرار نگیرند. با اضافه کردن عبارت 10- در قالب های d% و g% از کامپایلر می خواهیم که با اضافه کردن کاراکتر فاصله طول همه مقادیر بصورت ثابت 10 کاراکتر باشند. printf(" Student ID = %-10d Average = %-10g Rating = ", studentID[i], studentAvg[i]); میانگین نمرات اعداد اعشاری اند (مثلا 14.5) و مجموعه مقادیر قابل قبول به اعداد صحیح 0 الی 20 محدود نیست. به همین دلیل با switch نمی توانیم همه اعداد اعشاری ممکن را مشخص کنیم. به همین جهت با اضافه کردن عبارت (int) از کامپایلر می خواهیم که مقدار اعشاری ما را موقتا (داده داخل متغیر اعشاری تغییری نخواهد کرد) با حذف اعشار به یک عدد صحیح تبدیل کند تا به مجموعه اعداد صحیح محدود شود : switch ((int)studentAvg[i]) { برای اعداد صحیح 18 و 19 و 20 و هر میانگین دیگری که با حذف اعشارشان همین مقادیر باشند پیغام Very good را نمایش می دهیم : case 18: case 19: case 20: printf("Very good"); break; برای اعداد صحیح 15 و 16 و 17 و هر میانگین دیگری که با حذف اعشارشان همین مقادیر باشند پیغام Good را نمایش می دهیم : case 15: case 16: case 17: printf("Good"); break; و برای هر مقدار میانگین دیگری بجز مقادیر قبلی پیغام Weak را نمایش می دهیم : default: printf("Weak"); } پیش از خاتمه دادن به اجرا برنامه با یک پیغام مناسب منتظر فشار دادن یک کلید از سوی کاربر می شویم : printf(" Press any key to continue. "); getch(); return 0; } v.b.f1 05 بهمن 1389, 08:20سلام دوست عزیز اگه بخوام اطلاعات دریافتی رو بیشتر از 100 یعنی نامحدود کنم چیکار باید بکنم من به این شکل تغییرش دادم اما ایراد میگیره یعنی int studentID[m], i, j, n; float studentAvg[m], score, sum; for (i = 0; i < m; i++) استاد اگه ممکنه بگید مشکل از کجاست the_king 05 بهمن 1389, 10:02سلام دوست عزیز اگه بخوام اطلاعات دریافتی رو بیشتر از 100 یعنی نامحدود کنم چیکار باید بکنم من به این شکل تغییرش دادم اما ایراد میگیره یعنی int studentID[m], i, j, n; float studentAvg[m], score, sum; for (i = 0; i < m; i++) استاد اگه ممکنه بگید مشکل از کجاست نمی توانید یک آرایه با طول نامشخص را آنگونه تعریف کنید، m بایستی یک عدد ثابت باشد، نمی تواند یک متغیر باشد. آرایه هایی که طولشان قبل از اجرای برنامه بصورت ثابت مشخص نیست بایستی با تخصیص حافظه بصورت پویا (Dynamic) تعریف شوند، در c برای اینکار از تابع ()malloc استفاده میشه، فقط فراموش نکنید که قبل از اتمام برنامه حافظه تخصیص داده شده را با ()free آزاد کنید. برای استفاده از دو تابع ()malloc و ()free بایستی stdlib.h را در برنامه include کنید. البته در ++C برای ایجاد کردن آرایه پویا نیازی به تابع نیست چون در خود زبان برای این منظور قابلیت های لازم ارائه شده، بجای ()malloc از new و بجای ()free از delete استفاده میشه. البته فرقی از لحاظ سادگی دشواری ندارند. مثلا : #include <iostream.h> #include <stdlib.h> int main() { int m, *studentID; scanf("%d", &m); studentID = (int*) malloc(m * sizeof(int)); . . . free(studentID); return 0; } توجه کنید که آرایه studentID فقط بصورت یک اشاره گر تعریف شده و برای اینکه طول حافظه تخصیص داده شده بر حسب بایت میشه از ()sizeof استفاده شده تا طول نوع داده int بدست بیاید. همچین دقت کنید که در انتهای برنامه با ()free حافظه تخصیص داده شده را آزاد می کنیم. اگر بخواهید یک آرایه پویا از نوع float تعریف کنید : float *studentAvg; studentAvg = (float*) malloc(m * sizeof(float)); . . . free(studentAvg); v.b.f1 05 بهمن 1389, 10:44علی جان اگه نخوام از آرایه استفاده کنم کجا ها رو باید تغییر بدم اخه من یکم یادگرفتم هنوز به این چیزا نرسیدم که سر در بیارم راستی علی یادم رفت بگم اصلا لازم نیست یه جا پیغام وضعیت دانشجو رو بده یعنی همون دانشجوی اول که شماره دانشجوییش و سه نمراتشو دریافت کرد بگه وضعیتش چطوره بعد دانشجوی دوم مشکلیم نیست اطلاعات دانشجوی قبلی حذف شه ولی میخوام نامحدوودددد باشه تا زمانی که از صفر استفاده کنم برای خروج the_king 05 بهمن 1389, 12:47علی جان اگه نخوام از آرایه استفاده کنم کجا ها رو باید تغییر بدم اخه من یکم یادگرفتم هنوز به این چیزا نرسیدم که سر در بیارم راستی علی یادم رفت بگم اصلا لازم نیست یه جا پیغام وضعیت دانشجو رو بده یعنی همون دانشجوی اول که شماره دانشجوییش و سه نمراتشو دریافت کرد بگه وضعیتش چطوره بعد دانشجوی دوم مشکلیم نیست اطلاعات دانشجوی قبلی حذف شه ولی میخوام نامحدوودددد باشه تا زمانی که از صفر استفاده کنم برای خروج اندیس های [] و [i] رو از متغیر ها حذف کنید، محتویات حلقه دوم رو به حلقه اول منتقل کنید. چون حلقه دوم که با متغیر n کار می کرد حذف میشه، نیازی به متغیر n نداریم. #include <stdio.h> #include <conio.h> int main() { int studentID, i, j; float studentAvg, score, sum; for (i = 0; ; i++) { printf(" Please enter student ID (0 for finish) :"); scanf("%d", &studentID); if (studentID == 0) break; sum = 0; for (j = 1; j <= 3; j++) { printf(" Please enter score #%d :", j); scanf("%f", &score); sum += score; } studentAvg = sum / 3; printf(" Student ID = %-10d Average = %-10g Rating = ", studentID, studentAvg); switch ((int)studentAvg) { case 18: case 19: case 20: printf("Very good "); break; case 15: case 16: case 17: printf("Good "); break; default: printf("Weak "); } } printf(" Press any key to continue. "); getch(); return 0; } سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 547]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن