اموزش پاسکال
 
دانشگاه علمی کاربردی قروه رشته ای تی
 
 
چهار شنبه 30 بهمن 1389برچسب:, :: 19:37 ::  نويسنده : مخدومی

بسه تعالی

اموزش زبان برنامه نویسی پاسکال

زبان پاسکال یکی از زبانهای برنامه سازی است که ویژگی های اموزشی ان بسیار بالاست یعنی زبان خوبی برای اموزش برنامه نویسی منظم و دقیق است قابلیت خوانایی و درک برنامه های این زبان بالاست و میتوان برنامه هایی نوشت که احتمال  است .(stru cted خطای ان بسیار اندک باشدعلتش این است که زبان ساختار یافته (

ساختار کلی برنامه چیست؟

1-تعریف

 قسمتهای تکرای را از بین میبریم Procedure ,function2- به وسیله 

3- بدنه

فرم کلی پاسکال :

Program1- اسم

const2-تعریف ثابت

type3-تعریف نوع

var4-تعریف متغیر ها

procedure5-(پارامتر ها) نام

A:=15متغییر:محلی است که دارای یک اسم باشد و میتوان مقداری را در ان ذخیره کرد  مانند

انواع متغییر در پاسکال:

انواع اعداد صحیح شامل اعداد بدون نقطه و ممیز:INTEGER-1

 مشخص می شود میتواند یک کاراکتر را در خود نگهداری کند بنابر این CHAR نوع داده کارکتری که با کلمه :CHAR-2

کاراکتر ها در یک بایت از حافظه کامپیوتر ذخیره میشوند.

 برای تعریف اعداد اعشاری به کار میرود.:real-3

Readln) برای خواندن اطلاعات از ورودی به کار میرود و به صورت             ( اسامی متغییر ها: readlnدستور

   برای چاپ اطلاعات در خروجی به کار میرود : writelnدستور

  قرار بگیرد‘   ‘پیغام مورد نظر برای چاپ در خروجی حتما باید در داخل کوتیشن  Writeln(‘  insert the nomber’)

مثال: برنامه ای بنویسید که یک عدد را دریافت و در خروجی به ما بگوید که عدد منفی است یا مثبت.

      نام برنامه Program p1;

          جهت پاک کردن صفحه نمایش در خروجی به کار میرودUses crt;

                   جهت تعریف متغییر ها به کار میرودvar

      متغییری است از نوع اعداد صحیحA: integer;

              شروع برنامه begin

            جهت پاک کردن صفحه نمایش در خروجی به کار میرودClrscr;

     را) a      این دستور کار خواندن متغییر را در خروجی اجرا میکند(بخوان متغییر Readln(a);

بزرگتر از 0 بود انگاه ) a با این دستور برای برنامه شرط برقرار میکنیم به ایم معنی که (اگر If   a>0    then

       دستوری است برای چاپ کردن پیغام مورد نظر در خروجی Writeln(‘add vared shode  +ast’)

               دستوری است که اگر شرط ما درست نبوداز ان استفاده میکنیم به معنی( وگرنه) (در غیر این صورت)else

     دستوری برای چاپ کردن پیغام مورد نظرWriteln(‘add vared shode – ast’);

       این دستور در برنامه باعث میشود که در خروجی بعد از وارد کردن عدد جواب را برای ما نمایش دهد و در پایان هر برنامه لازم است Readln;

            پایان برنامه End.

 استفاده میکنیم;نکته1: در پایان هر خط ازسیمی کالن

  هیچگاه سیمی کالن نمی گیردelseنکته2: خط قبل از

   هر دو با هم برای پاک کردن صفحه نمایش استفاده میشودUses crt  ,  clrscr نکته3: کلمه   

  )استفاده میکنیم =) استفاده میکنیم اما اگر عددی را برار با متغییر قرار بدهیم از(:=نکته4: برای اینکه عدد را در داخل متغییر قرار بدهیم از (

صفحه1

 

 نام متغییر مورد استفاده در برنامه میباشد.a برای جلوگیری از شرط زیاد از این دستور استفاده میکنیم .:Case  a ofدستور

 را 7 بار بنویسیم If مثال: برای اینکه برنامه ای بنویسیم که وقتی عددی وارد میکنیم معادل ان روزهای هفته را چاپ نماید  باید دستور

  فقط یک بار دستو را caseمینویسیم اگر عدد 1 وارد شد انگاه چاپ کن  شنبه  و اگر عدد 2 وارد شد انگاه چاپ کن یکشنبه اما با استفاده از دستور

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

Case  a of

1: writeln(‘shanbe’);

2:writeln(‘yek shanbe’);

و....

 با استفاده از این دستور میتوانیم متنی را که میخاهیم چاپ کنیم  در هر کجای صفحه نمایش  در خروجی چاپ کنیم مثلا :Go to دستور

میخواهیم شکل ستاره را در وسط صفحه نمایش چاپ کند. برای این کار باید مختصات وسط صفحه نمایش را داشته باشم

 فرض کنید مختصات وسط  20 و 25 باشد Go to xy(20,25);

     چاپ میشود  تقریبا وسط صفحه نمایش.Y =25و   X =20با این برنامه شکل ستاره در مختصات Writeln(‘*’);

   را 20 بار بنویسیم تا در خروجی 20Writeln(‘*’)  وقتی که میخاهیم در یک برنامه ای 20 تا ستاره چاپ کنیم باید دستور : forدستور

 استفاده میکنیم فقط یک بار دستور چاپ ستاره را مینویسیم و حلقه باعث میشود تا For بار شکل ستاره را چاپ نماید اما وقتی از دستور

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

For i:=1  to  20   do

Writeln(‘*’);

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

حلقه های تو در تو :درحلقه های تو در تو یک حلقه بیرونی یا شمارنده دارم و یک یا چند حلقه درونی یا اجرا کننده    مثال:

For i:=1  to   10   do

For  j:= 1 to    10  do

Write(i*j)

با این برنامه میخواهیم جدول ضرب ر در خروجی چاپ نماییم

       و ... ضرب میشود و نتیجه ان به صورت عمودی زیر هم J(3) وJ(2)وJ(1)      10  بار با حلقه داخلی یعنی I(1)در حلقه بیرونی  

   تغییر میکند و دوباره  10 بار با حلقه داخلی ضرب میشود وI(2) به   I (1)چاپ میشود و وقتی حلقه داخلی تمام شد   حلقه  بیرونی از

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

  در داخل حلقه وقتی استفاده میشود که عدد اول ما کوچکتر از عدد دوم باشد  مثل 1  تا 10  اما بر عکس وقتی عدد اول ماTo نکته1:کلمه

  استفاده میکنیمdowntoبزرگتر از عدد دوم ما باشد  مثل 10   تا 1   از کلمه 

  بایدvar یک متغییر هستند که اعداد 1   تا 10 در ان قرار گرفته است پس باید حتما در تعریف متغییر بعد از (i,j)نکته 2: در این برنامه

  یعنی متغییر ها از نوع اعداد صحیح هستندI , j :integerتعریف شوند که از چه نوع اعداد هستند مثال 

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

     اضافه میکنیمEnd;یک Write(‘i*j’)و بعد از begin

  : با استفاده از این دستور میتوانیم در داخل حلقه شرط برقرار کنیم مثال: برنامه ای بنویسید که اعداد کوچکتر از 100 را چاپ کند. whileدستور

I :=1;

        کوچکتر و مساوی 100 باشد  به  چاپ اعداد ادامه بدهI       تا وقتی که  While  I <= 100  do

Write(i :1);

I:=i+1;

 در این برنامه حلقه 100 بار اجرا میشود و تا وقتی که اعداد کوچکتر از 100 باشد انها را چاپ میکند

  با استفاده از این دستور ما در داخل حلقه شرط قرار میدهیم اما به صورت بر عکس یعنی اگر شرط برقرار :Repeat     , untilدستور

نبود انگاه چاپ کن  مثال:  برنامه ای بنویسید که اگر عدد وارد شده بزرگتر از 100 نبود انگاه عدد مورد نظر را چاپ کند.

I:= 1;

Repeat

Write(1);

Until     i>100

دراین برنامه وقتی عددی را وارد میکنیم دستور شرط ان را برسی میکند و اگر عدد بزرگتر از 100 بود ان را چاپ نمیکند فقط اعداد کوچگتر از 100 را چاپ میکند.

 

 

 

برگرفته از کتاب پاسکال (الیوت ب.کافمن)          با ارزوی موفقیت:مخدومی                                                  صفحه2

ارایه ها

ارایه یک نوع ساختمان داده است که تعدادی داده هم نوع (مثل نمرات امتحانی یک کلاس)دران ذخیره میشود و با استفاده از ارایه میتوانیم برای مجموعه ای از داده ها نام یک متغییر را به کار میبریم علاوه بر این میتوانیم به تک تک عناصر موجود در ارایه مراجه    برای هر عنصر ان یک نام برگزیده میشودAکنبم و عمل نامگذاری در ارایه مانند نام گزاری به این شکل است  مثال: متغییر   

A  = a(1) , a(2) , a(3) , a(4), …

 

                                               a1         a2         a3         a4         a5          a6         a7         a8         a9        a10

15

17

13

18

12

10

20

16

9

11

A =

وقتی میخاهیم 100 عدد را در داخل متغییر ها قرار بدهیم باید 100 تا متغییر تعریف بکنیم  اما با کمک ارایه میتوانیم یک ارایه 100 عنصری تشکیل دهیم و فقط یک متغییر تعریف کنیم

a:array[1..10]   of    integerنحوه تعریف ارایه :

مثال : برنامه ای بنویسید که 10 عدد را دریافت کند و به صورت معکوس  چاپ کند( با استفاده از ارایه).

A:array [1..10]    of   integer;

I:integer;

                  در داخل این حلقه عنصر های ارایه را شماره گزاری میکندFor i:= 1   to   10   do

                              در این قسمت برنامه عدد ها را دریافت و در داخل عنصر های ارایه قرار  میدهدReadln(a[i]);

     در داخل این حلقه عنصر ها به صورت معکوس قرار میگیرد For i:= 10     downto    1   do

                              در این قسمت برنامه عنصر های معکوس شده در خروجی چاپ میشودWriteln(a[i]);

 

مرتب سازی در ارایه:

     انتخابیSelected sord-1

     حبابیBubel   sord-2

جستجو در ارایه:

1-جستجوی ترتیبی

2-جستجوی باینری

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

     گذر نیازمند است. اتفاقی که در هر گذر میافتد این است که بزرگترین عنصرn-1گذر و حداقل به N عنصری حداکثر به N یک ارایه

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

مثال: برنامه ای بنویسید که 10 عنصر را در ارایه ذخیره کند و سپس به روش مرتب سازی حبابی انها را مرتب و نمایش دهد.

a:array[1..10] of integer;

i,j,p:integer;

begin

clrscr;

for i:=1 to  10 do

readln(a[i]);

for i:=1 to 9 do

begin

for j:=i+1 to 9 do

if a[i]>a[j] then

begin

p:=a[i];

a[i]:=a[j];

a[j]:=p;

end;

writeln(a[i]);

end;

        صفحه 1

جستجو در ارایه:

ترتیبی یا خطی : در این نوع جستجو تک تک عدد مورد نظر را با عنصر ها مقایسه میکند.

جستجوی باینری(دودویی): در این نوع جستجو ارایه را به سه قسمت تقسیم میکند

 

                                                             

9

10

11

12

14

15

17

18

19

20

A

 

 low                                                      mid                                                           High

مثال : برنامه ای بنویسید که عدد 20 را در ارایه پیدا کند و نمایش دهد.

 برابرmidدر اینجا اول باید ارایه را مرتب کنیم بعد از مرتب سازی ارایه ان را به سه قسمت تقسیم میکنیم و بعد اگر عدد موردنظر با  بزرگتر بود این قسمت حذف lowمقایسه میشود.   اگر عدد 20 از Mid   , low   , highبود عدد چاپ میشود و اگر برابر نبود ان را با

    میماند و دو باره ان راMid -1حذف شد highمیماند و دوباره ان را تقسیم میکند و باز ان را مقایسه میکند و اگر Mid +1میشود و

تقسیم میکند و این کار تا وقتی که عدد مورد نظر پیدا شود ادامه می یابد

برنامه ای بنویسید 20 تا عدد  دریافت کند و سپس عدد مورد نظر را در داخل انها پیدا کند.

Readln(k);

Low:=1;

High:=20

While     low

 

Mid  =(low +high)/2;

If    k:=x[mid]    then

Write(‘the number fund’);

If     k> x[mid]  then

Low :=mid +1;

If   k

High:=mid-1;

End;

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

 

 

 


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:







درباره وبلاگ


با سلام خدمت دوستان عزیز مخدومی هستم از همدان.رشته فناوری اطلاعات د mehdi24.hamedan@yahoo.com 09355130078 دوستان و دانشجویان میتوانند جهت دریافت مقالات و صفحه وب های طراحی شده و اماده ،عضو سایت شده و از طریق ایمیل یا درخواست از طریق مسیج دریافت نمایند.اماده سازی وبسایت با همراه دامین و هاست با کمترین هزینه
آخرین مطالب
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان دانشگاه علمی کاربردی قروه رشته ای تی و آدرس itqorve.LoxBlog.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان



نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 1
بازدید دیروز : 13
بازدید هفته : 14
بازدید ماه : 215
بازدید کل : 6420
تعداد مطالب : 91
تعداد نظرات : 2
تعداد آنلاین : 1

گالری تصاویر سوسا وب تولز