یک برنامه با ++c

.:: Ali ::.

Member
سلام به دوستان .

والا یه برنامه رو می خوام بنویسم ، از هر راهی که می رم به جواب نمی رسم ، فکر می کنم باس از چند تابع ورودی و خروجی و مقاسیه ای استفاده کنم به همراه آرایه ی 2 بعدی ، ممکنه کسی تو پیاده سازی آلگوریتمش کمکم کنه ؟

برنامه ای بنویسید که چندین نمره از تعدادی دانش آموز (تعداد نمره و دانش آموز رو همون اول از ورودی بگیره) به علاوه نام و شماره دانشجوئی رو بگیره ، معدل هر دانش آموز به همراه اطلاعات مربوطه (نام و شماره دانشجوئی) و همچنین بیشترین و کمترین معدل رو به همراه اطلاعات دانش آموز مربوطه چاپ کنه .

این برنامه با ++c نوشته می شه ، اگه کسی مورد مشابه اینو دیده و آدرس بده ، می تونم اینو در بیارم ، پیشاپیش ممنون .
 

d@nyal

Member
chera kar nemikone ?
اگه مشکل داره بگیید بر طرفش کنیم . مشکل شما که با برداشتن یهه برنامه ی مشابه بر طرف نخواهد شد که ؟
مگه نه ؟!
 

.:: Ali ::.

Member
اعصابمو خرد کرده !

ممنون از پاسخت .

والا اعصابم به هم ریخته ، هی می نویسم ، از اول پاک می کنم ، یا جواب می ده یا ایرادای الکی می گیره .

همه رو پاک کردم ... اما یه سری دست و پا شکستشو ضمیمه کردم .

با ++ Dev C یه جور Error می ده ، با ویژوال ++C یه جور دیگه ، با توربو ++C اصلا" نمی شه کار کرد .


چرا کد نظیرش کمکم می کنه ، از فانکشن های مشابه می تونم الگو بگیرم ، یا لا اقل آلگوریتم کار دستم میاد .

اگه تو نوشتن و تکمیل این برنامه کمکم کنی ، بی نهایت ممنون می شم . یا ادیتور و کامپایلری معرف کنی که راحت بتونم باهاش کار کنم ، حتی مثال های خود ++ Dev C رو خودش ارور میده !!! 3 روزه اسیر ادیتور و آلگوریتمم ، از طرفی دوست ندارم کسی لقمه کنه تو دهنم .

می دونم باس 2 فانکشن ورودی و خروجی ، یکی هم برای min o max ساخت و همچنین از آرایه ها استفاده کرد ، اما نمی دونم چطور . گیج گیجم !!!

بازم ممنون .
 

پیوست ها

  • students.txt
    1.8 کیلوبایت · بازدیدها: 10
آخرین ویرایش:

emad_67

Member
شما اومدی تو برنامت دوتا main گذاشتی حوب معلومه ارور میده ضمنا اون خط -------------------- رو هم پاک کن اگه می خوای خط بکشی باید این جوری بنویسی
/*------------------------------------------*/
 

.:: Ali ::.

Member
شما اومدی تو برنامت دوتا main گذاشتی حوب معلومه ارور میده ضمنا اون خط -------------------- رو هم پاک کن اگه می خوای خط بکشی باید این جوری بنویسی
/*------------------------------------------*/

ممنون مهندس ؛ اما اون خط جدا کنندست ، بالای اون یه برنامه هست ؛ پائینشم یکی دیگه به یه روش دیگه . بعد کامنتو اینا رو می شناسم عزیز دل برادر .
 

d@nyal

Member
آقا من برنامه تو نگاه کردم .
چندا تا مورد به نظرم رسید ، اینا می گم ببین چطوره:
1- یه جا زده بودی :
کد:
"/n"
احتماالا منظورت اینه :
کد:
"\n"
(همو نقطه سر خط خودمون ! ) البته این قبلی منطقی بود و ربطی به اشکالات فنی نداشت .
2- من شخصا عادت دارم از همون استاندارد قدیمی و بدون namespace استفاده کنم .
یعنی اینکه :
-- using namespace std; رو حذف می کنم .
-- و در عوض .h ها رو می ذارم . (منظورم همون iostream هستش در هر دو برنامه . البته دی دوم که .h رو نذاشتی کامپایلر نمی تونه سرفایل رو باز کنه.)
من همین الان این تغییر ها رو انجام دادم ، و برنامه ات توی turboCpp win کار کرد .(هردوتاشون) (البته چون من دقیقا برنامت رو نمی دونم چیه، فقط می دیدم که چند تا نمره می گیره و در نهایت چندتا چیز میده . )


پی نوشت:
1- اصولا من دررابطه با هر برنامه یه احساسی دارم . همین الان احساسم سلام رسوندن و گفتن ، با دومیه بیشتر حال فرمودند. البته نظرات ایشون زیاد مهم نیست !!!
 
آخرین ویرایش:

d@nyal

Member
آهان !
یه چیز دیگه یادم افتاد !
والا اعصابم به هم ریخته ، هی می نویسم ، از اول پاک می کنم ، یا جواب می ده یا ایرادای الکی می گیره .
همه رو پاک کردم ... اما یه سری دست و پا شکستشو ضمیمه کردم .
با ++ Dev C یه جور Error می ده ، با ویژوال ++C یه جور دیگه ، با توربو ++C اصلا" نمی شه کار کرد .
اگه می بینی که کامپایلرت مشکل خیلی حادی داره ، شاید کتابخانه شون به هم ریخته(البته احتمالش خیلی خیلی .... کمه ! )
گفتم شاید... !
 
آخرین ویرایش:

.:: Ali ::.

Member
اون /n مهم نیست چون استرینگ حساب می شه ... در مورد کار کردن هم بالاخره با جون کندن و کلی تغییر کامپایلر اشکال نمی گیره ، اما برنامه اونی که می خوام نمی شه ... راستش آرایه ها رو زیاد با ++C کار نکردم .

در مورد برنامه هم که کاملا" توضیح دادم ماجرا از چه قراره ، می شه در مورد آلگوریتم دقیق و استفاده از آرایه ها کسی کمکم کنه ، یا بگه کجای کد رو باس تغییر بدم یا اشکالم کجاست و برنامه رو ویرایش کنه ؟

باز هم ممنون .
 

d@nyal

Member
اون /n مهم نیست چون استرینگ حساب می شه ...
درسته ! منم که گفتم که مهم نیست :
البته این قبلی منطقی بود و ربطی به اشکالات فنی نداشت .
در مورد آرایه ها می تونی از اینجا استفاده کنی :
http://forum.majidonline.com/showthread.php?t=53712
(قسمت 6)
خب دیگه الان که به سلامتی برنامت اجرا میشه.
فقط مونده که اشکال های semantic (منطقی) رو بر طرف کنی .
می تونی برنامه رو مرحله به مرحله اجرا بکنی و ببینی کجاش اشکال داره .(اینا رو نکنی که برنامه نویس نمی شی! :دی )
 

d@nyal

Member
الان یه نگاه به برنامت نگاه کردم چندتا چیزو متوجه شدم :
1- همونطور که خودت هم سعی کردی در برنامه ات استفاده کنی ، ساختار(استراکچر ها ) چیز های مفیدی در حوزه ی برنامه ی تو هستن . اما در استفاده از اینها یه خورده ضعف داری .
قبلا داشتیم که با نوید آموزش های cpp رو برای انجمن تدوین می کردیم ، کار ما بدلیل کلی بدبختی ناقص موند و و آموزش ها تا شماره ی 7 منتشر شدند . یکی از اون سری های جامونده استراکچر هستش که بصورت ناقص مونده . (قرار بود قسمت 8 بشه!) چند تا مثال از این قسمت می ذارم که تا این که با این ساختار ها بیشتر آشنا بشی .
 

.:: Ali ::.

Member
ممنون .

آموزشها رو دارم دانلود می کنم ، اما به نظرت خیلی طول نمی کشه تا بخونمشون ؟!! D:

اینی که گفتی می ذاری بیشتر آشنا شم و نیافتم ، بعد ... من PHP کار می کنم ، به نظر میاد که باید تو اون فانکشن read نمره و تعداد درس رو تو یه آرایه مثل []student بریزم ... اما کار با آرایه و استخراج کردن و درست نمی دونم .

3 روزه وارد دنیای ++C شدم D: فقط یه کتابو گذرا خوندم ... این پروژه رو هم یکی از من خواسته و چون نمی خواستم کم بیارم وارد ++C .

حالا شما که متبحری اینقده می تونی بیشتر کمکم کنی ؟ D: ما چاکریم !
 

d@nyal

Member
ببین من اگه وقتشو داشتم چاکرت بودم .
حالا که تو هم خیلی وقت نداری ، این برنامه رو بیبن :
- برنامه ای بنویسید که 5 نقطه را از ورودی رفته و دور ترین و نزدیک ترین نقطه را ار مرکز مختصات چاپ کند .
این برنامه راه حلش خیلی خیلی شبیه مسئله ی تو هستش . (اگه اینو فهمیدی ، مسئلت هم حله ! )
کد:
#include <iostream.h>
struct Point
  {
  double x;
  double y;
  };

int main()
  {
  Point p[5];
  double max,min;
  int maxX=0,minX=0;
  cout<<"Enter 5 points as (X,Y):";
  cin>>p[0].x>>p[0].y;
  min=max=sqrt(p[0].x*p[0].x+p[0].y*p[0].y);
	 for(int i=0;i<4; i++)
	 {
	 cin>>p[i].x>>p[i].y;
		if(sqrt(p[i].x*p[i].x+p[i].y*p[i].y)>max)
		{
		max=sqrt(p[i].x*p[i].x+p[i].y*p[i].y);
		maxX=i;
		}
		if(sqrt(p[i].x*p[i].x+p[i].y*p[i].y)<min)
		{
		min=sqrt(p[i].x*p[i].x+p[i].y*p[i].y);
		minX=i;
		}
	 }

  cout<<"The farthest point is ("<<p[maxX].x<<","<<p[maxX].y<<")"<<endl;
  cout<<"The nearest point is ("<<p[minX].x<<","<<p[minX].y<<")"<<endl;
  return 0;
  }

فقط یه سری تغییرات باید بدی :
یه استراکچر باید درست کنی که شامل اسم ، یه متغیر عددی برای میانگین ، یه آرایه برای تعدادی نمره ، و یه متغیر عددی برای شماره دانشجویی :
کد:
struct student
{
  char name;
  double num[3];
  double DanNo;
  double avg;
};
بعد توی برنامه ی اصلیت بیای از این متغیر ها استفاده کنی .
چون بیشتر از یکی دانشجو با این مشخصات داریم ، یک آرایه از این استراکچر تعریف می کنم(فکر کنم این مورد رو هم توی برنامه ات اشکال داشتی) :
کد:
student stu[40];
حالا یکی یکی میای مقادیر رو می گیری و میانگین و max, min رو محاسبه می کنی و در نهایت چاپشون می کنی.


من دیگه رفتم .
یا علی ! موفق باشی ...
 

.:: Ali ::.

Member
ممنون که تا اینجا همراهیم کردی ، این یه تشکر ویژه هستش که با دکمه ی تشکر مقدور نمی باشد !!!
 

جدیدترین ارسال ها

بالا