PDA

View Full Version : سوال: راهنمایی در برنامه پاسکال



MOHSEN89
جمعه 12 شهریور 1389, 17:54 عصر
سلام به همه اساتید محترم می دونم شما همه حرفه ای هستید

ولی دوستان من از شما راهنمایی می خوام از مدیران هم اگر تاپیک اشتباه زده شده در اینجا ببخشید من تازه وارد هستم

دوستان من تازه کار با برنامه نویسی پاسکال رو شروع کردم :خجالت: میدونم مال زمان بوقه ولی برای شرع کار بد نیست

خلاصه من الان یه مشکلی دارم توی کارم اول اینکه من هرچی می نویسم ارور کامپایلر میده بعضی وقتا هم درست میشه 20 برنامه تحت ویندوز رو تست کردم ولی بازم درست نشد بگزیرم به حر حال شانسیه دیگه یه بارجواب میده یه بار نمیده :لبخند: اگر تحت ویندوز خوب سراغ دارید که روی 7 جواب بده کمک کنید:قلب:


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

ولی من دارم از procedure استفاده میکنم و گزینه های هم دارم مثل


[code]1:Add;
2:Edit;
3:Delete;
4:Search;
5:List;
6:Finish;[/CODE
]

من برای ادیت کردن و سرچ کردن و پاک کردن مشکل دارم بگید چه جوری باید این کارو انجام بدم

من از آرایه استفاده کردم

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

SAASTN
جمعه 12 شهریور 1389, 22:57 عصر
خلاصه من الان یه مشکلی دارم توی کارم اول اینکه من هرچی می نویسم ارور کامپایلر میده بعضی وقتا هم درست میشه 20 برنامه تحت ویندوز رو تست کردم ولی بازم درست نشد بگزیرم به حر حال شانسیه دیگه یه بارجواب میده یه بار نمیده
خوب حتما مشکل سینتکسی داره، نمیشه که رندوم خطا بده. متن خطا چی بوده؟

اگر تحت ویندوز خوب سراغ دارید که روی 7 جواب بده کمک کنید
خود دلفی بهترین IDEه، می تونید باهاش Console هم بنویسید (یعنی برنامه هایی که توی محیطی شبیه به DOS اجرا می شن).

من برای ادیت کردن و سرچ کردن و پاک کردن مشکل دارم بگید چه جوری باید این کارو انجام بدم
مشکلتون کجاست؟ سوال ها رو شفاف نمی پرسید!
برنامتون قراره برای یه نفر معدل بگیره یا برای چند نفر؟
اگه فقط برای یه نفره یه رکورد تعریف می کنید که فیلدهاش هم: اسم درس، تعداد واحد ها و نمره اون هست. یه آرایه از این رکورد هم تعریف می کنید و با Add دونه دونه پرش می کنید.
برای سرچ و حذف هم یه حلقه روی آرایه می ذارید اگه اسم درس بایکی از موارد آرایه برابر بود اون موقع عملیات لازم رو انجام بدید.
اگر هم برای چند دانشجو می خواید معدل بگیرید آرایه ها میشن سه تا، دروس، نفرات و نمرات.

من می خوام یک درس رو پاک کنم ادیت کنم و یا سرچ کنم ببینم چه اعمالی بر روی اون انجام شده
چه اعمالی می تونه روی هرکدوم انجام شده باشه؟ هر درس یا قبلا اضافه شده یا نشده دیگه! یعنی یا جستجو جواب داره یا جواب نداره.
اگه منظورتون اینه که می خواین کل سابقه هر درس رو نگه دارید، یعنی مثلا اگه ویرایش شد نمره قبل از ویرایش رو هم نگه دارید یا اگه حذف شد باز هم سابقش باقی بمونه، باید یه فیلد دیگه هم یه رکوردتون اضافه کنید که وضعیت رکورد رو مشخص کنه: نمره اصلی، ویرایش شده یا حذف شده. توجه کنید که توی این وضعیت ویرایش مثل یه حذف و اضافه دوباه است.


در نهایت اینکه سوالاتون رو توی تاپیکای جداگونه بپرسید و تمام دوستان تازه وارد حتما این تاپیک (http://barnamenevis.org/forum/showthread.php?t=43163) رو یه بار با دقت بخونن.
موفق باشید

MOHSEN89
جمعه 12 شهریور 1389, 23:12 عصر
با سلام مجدد ببخشید دوست عزیز

من سورس برنامه رو اینجا اپ کردم یه نگاه بهش بندازید

http://aks98.com/images/4c3p3s9pd8n1eka9ouqg.rar

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

من می خوام وقتی یکی از نمرات رو تعغیر یا پاک کنم یا سرچ باید از چه دستوراتی اسفاده کنم

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

SAASTN
شنبه 13 شهریور 1389, 03:07 صبح
من می خوام وقتی یکی از نمرات رو تعغیر یا پاک کنم یا سرچ باید از چه دستوراتی اسفاده کنم
دستورات خاصی که وجود نداره، همین دستوراتی که توی همین برنامه استفاده کردید. مهم منطق کار هست، شما وقتی می خوای یک مورد رو حذف کنی یا ویرایش کنی باید بتونی اون مورد رو با یه شناسه یا صفت مشخصه از بقیه موارد تشخیص بدی. اگه یخورده به همون پاسخ قبلی دقت میکردی جواب کاملا مشخص بود. در حال حاضر توی برنامه شما در مورد هر درس نمره و تعداد واحد اون درس گرفته می شه. پس بین دروس هیچ تمایزی وجود نداره، اما اگه یه آرایه دیگه اضافه کنی و نام دروس رو هم بگیری این تمایز ایجاد میشه. حالا می خوای نمره درس "ریاضی" رو حذف کنی، توی آرایه در نام ها میگردی و اگه یکی از دروس اسمش ریاضی بود حذفش می کنی.

من از ارایه ها استفاده کردم از رکورد هنوز نرسیدم بهش زوده برای من فعلا دارم با ارایه ها کار میکنم
یجوری میگی زوده انگار قراره شاخ غولو بشکنی، خوب همین الان بهش رسیدی:
برای تعریفش:
type
TLesson = record
Name: string;
Score: Double;
Units: Integer;
end;
var
Lessons: array [0..99] of TLesson

برای استفاده هم مثلا:
B[I] := Lessons[I].Score * Lessons[I].Units;


چندتا نکته که به سوال مربوط نمیشه ولی هرچه زودتر بهشون عمل کنی بهتره:
سعی کن کدتو منظم بنویسی.
تمام کلمات کلیدی مثل begin یا end یا var تماما با حروف کوچیک نوشته می شن.
بقیه عبارات مثل اسمای متغیر ها یا دستورات یا اسم انواع مثل Integer و ... حتما با حروف بزرگ شروع می شن وبقیه حروفشون کوچیکه. اگه ترکیب چند کلمه باشن اول هر کدوم از کلمات بزرگه مثله: WriteLn.
اسامی متغیراتو همیشه معنی دار انتخاب کن. وقتی یکی دیگه داره کدتو می خونه دوساعت باید کدو نگاه کنه تا بفهمه a و b و c چین.
بین هر begin-end دوتا فاصله می ریم جلو.
آرایه ها همیشه از 0 تا n-1 تعریف می شن و حلقه ها هم همینطور.