خرداد
۲۱
۱۳۹۱

مثال‌های ساده در پاسکال

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

از این حرفا که بگذریم من امروز چند تا تمرین خوب و کلاسیک که استاد برای این درس بهمون ارائه کرده بود رو برای دوستانی که تازه کاره برنامه نویسی رو شروع کردن با جواب قرار میدم تا هر کس خواست استفاده کنه. اگه به شما پاسکال ارائه نمیشه و سی یا زبان دیگه ای میخونید هم میتونید ازش سر در بیارید و کدش رو بفهمید.

تمرین۱

برنامه ای بنویسید که عدد طبیعی n را خوانده و با استفاده از کاراکتر * یک مثلث متساوی الساقین با n خط .

program number1 (input,output);
var
n,i:integer;
a,b:string;
begin
a:=’*’;
b:=’**’;
write(‘please enter a number:’);
read(n);
for i:= n downto 1 do
begin;
writeln(a:n);
n:=n+1;
a:=b+a;
end;
readln
end

خروجی:

Trace    n=7                 a           b       n         i            write     ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲

                                   *         **      ۷         ۷                                           *

                                 ***                 ۸         ۶                                        * * *

                               *****               ۹         ۵                                     * * * * *

                              ******              ۱۰        ۴                                  * * * * * * *

                           *********           ۱۱         ۳                               * * * * * * * * *

                         ***********         ۱۲         ۲                            * * * * * * * * * * *

                        *************        ۱۳        ۱                         * * * * * * * * * * * **


تمرین۲

برنامه ای بنویسید که عدد طبیعی n را خوانده و بر حسب مقدار n خروجی زیر را تولید کند.

۱

۱۲

۱۲۳

۱۲۳۴

۱۲۳

۱۲

۱

program number2 (input,output);
var
n,b:integer;
begin
write(‘please enter a number:’);
read(n);
for n:=1 to n do
begin;
b:=1;
while b<=n do
begin;
write(b);
b:=b+1
end;
writeln;
end;
for n:=n-1 downto 1 do
begin;
b:=1;
while b<=n do
begin
write(b);
b:=b+1;
end;
writeln
end
end.

                Trace n=4               n            b              write:   ۱

                        ۱      ۱  ۳  ۱  ۱              ۱۲

                        ۲      ۲  ۴  ۲  ۲            ۱۲۳

                        ۳      ۱  ۱  ۳              ۱۲۳۴

                        ۴      ۲  ۲  ۴                ۱۲۳

                        ۳      ۳  ۳  ۱                 ۱۲

                        ۲      ۱  ۴  ۲                   ۱

                        ۱                  ۲  ۵   ۳


تمرین ۳:

برنامه ای بنویسید که ماکسیمم و مینیمم اعداد در یک آرایه رو به دست آورد.

program no‏۳‏‎ (input,output);‎
const y=‎‏۱۰‏‎;‎
type ab=array[‎‏۱‏‎..y]of integer;‎
var b,i,max,min,c,d:longint;‎
‎    a:ab;‎
begin
i:=‎‏۱‏‎;‎
‎   read(a[i]);‎
‎   max:=a[i];‎
‎   min:=a[i];‎
‎   for i:=‎‏۲‏‎ to y do
‎   begin;‎
‎       read(a[i]);‎
‎           if a[i]>max then
‎             begin
‎               max:=a[i];‎
‎               c:=i;‎
‎             end
‎           else if a[i]‎             begin
‎               min:=a[i];‎
‎               d:=i
‎             end;‎
‎    end;‎
‎   write(‘max is:’,max,'(‘,c,’)’,’min ‎is:’:‎‏۱۰‏‎,min,'(‘,d,’)’)‎

‎end.


تمرین ۴:

برنامه ای بنویسید که تعداد اعداد زوج و فرد درون یک آرایه را شمرده و چاپ کند.

program no‏۱‏‎ (input,output); ‎

type a=array[‎‏۱‏‎..‎‏۱۰‏‎]of integer;‎

var d,c,m,n,i:integer;‎
‎    b:a;‎
begin
‎      write(‘Enter a posetive integer number:’);‎
‎      read(n);‎
‎      m:=‎‏۱‏‎;‎
‎      c:=‎‏۰‏‎;‎
‎      d:=‎‏۰‏‎;‎
‎   for i:=‎‏۱‏to n do
‎     begin
‎        write(‘Please enter integer number:’);‎
‎        read(b[i]);‎
‎        if ‎‏۰‏‎ = b[i] mod ‎‏۲‏‎ then
‎           c:=c+m
‎        else
‎           d:=d+m;‎
‎     end;‎
‎      writeln(‘fard:’:‎‏۵‏‎,d,’zoj:’:‎‏۱۰‏‎,c);‎
‎      readln
end.‎

Trace:  n   m   c   d   I   b[i]‎
‎           ‎‏۵‏‎   ‎‏۱‏‎   ‎‏۰‏‎   ‎‏۰‏‎  ‎‏۱‏‎-n    ‎‏۵‏
‎                ‎‏۱‏‎   ‎‏۱‏‎         ‎‏۴‏
‎                ‎‏۲‏‎   ‎‏۲‏‎         ‎‏۶‏
‎                     ‎‏۳‏‎         ‎‏۱‏‎ ‎
‎                               ‎‏  ۹‏


تمرین۵:

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

کمتر از ۶۰  F

از ۶۰ تا ۶۹ D

از ۷۰ تا ۷۹   C

از ۸۰ تا ۸۹ B

از ۸۹ تا ۹۰ A

program number‏۸‏‎ (input,output);‎
var a:real;‎
begin
‎ write(‘enter a grade: ‘);‎
‎ read(a);‎
‎  if a<‎‏۶۰‏‎ then
‎    writeln(‘grade is: E’)‎
‎  else if (a>=‎‏۶۰‏‎)and(a<‎‏۷۰‏‎) then‎
‎    writeln(‘grade is: D’)‎
‎  else if (a>=‎‏۷۰‏‎)and(a<‎‏۸۰‏‎) then‎
‎    writeln(‘grade is: C’)‎
‎  else if (a>=‎‏۸۰‏‎)and(a<‎‏۹۰‏‎) then‎
‎    writeln(‘grade is: B’)‎
‎  else if (a>=‎‏۹۰‏‎) then‎
‎    writeln(‘grade is: A’)‎
end.‎

Trace for n=61 (61>=60)and(61<70)  write ‘grade is D’

                n=90 (90>=90)  write ‘grade is A’

//

//

توضیح:این پست از پستهای وبلاگ سابق اینجانب به آدرس mohsen-rsd.blogfa.com بوده است.

اشتراک گذاری این مطلب:

نوشته‌های مرتبط

درباره نویسنده

برنامه‌نویس ++‏C/C‏ - برنامه‌نویس سیستم‌های گرافیکی با استفاده از کتابخانه ‏OpenGL - برنامه‌نویس #‏C و ..‏



فرستادن دیدگاه