1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

برنامه نویسی با اسمبلي و پاسكال

شروع موضوع توسط minaaa ‏20/11/11 در انجمن Pascal

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [h=1][/h]
    [h=2]آموزش پاسکال درس ۲[/h]
    # دستور: writeln
    ​
    همان دستورwrite می باشد با این تفاوت که بعد از عمل نوشتن نوشته به خط بعد می رود . ​
    ;Program ibpersianblogcom​
    ;Uses WinCRT​
    Begin​
    ;('writeln('IB hopes to teach you pascal​
    .End​
    استفاده از متغیر : ​
    داده ها اطلاعاتی هستند که از کاربر گرفته می شوند . مثلا اگر کامپیوتر باید عمل جمع را انجام دهد نیاز به اعدادی دارد تا آن ها را جمع کند که این اعداد همان داده هستند .​
    برای این که بتوان از کاربر داده گرفت ما نیاز به متغیری داریم که این داده در آن قرار گیرد . برای استفاده از متغیر ها ابتدا باید آن ها را تعریف کرد . برای تعریف متغیر باید مانند قسمت هایی که به رنگ بنفس هستند عمل کرد .​
    من در اینجا یک متغیر از نوع string (متنی) تعریف کرده ام .​
    پس از تعریف متغیر باید داده را در آن قرار داد که برای این کار از علامت انتصاب یعنی := مانند قسمت قهوه ای استفاده می کنیم . ​
    ​
    ;Program ibpersianblogcom​
    ;Uses WinCRT​
    var​
    ;a:string​
    ;b:string​
    Begin​
    'a:='hello​
    ;a:=b​
    ;(write (a​
    ;(write (b​
    End.​
    متغیر متغیر ها انواع مختلفی دارند که هر نوع آن ها استفاده مخصوص به خود را دارند . مثلا متغیر strin برای متن وintegerبرای اعداد می باشد .​
    در درس های بعد به طور مفصل متغیر ها را مورد بررسی قرار می دهیم .​
    # دستورread ​
    این دستور برای گرفتن داده از کاربر مورد استفاده قرار می گیرد .​
    مثال :​
    این برنامه یرای مثال ابتدا 2 عدد از کاربر می گیرد و آن ها را جمع می کند ، سپس نتیجه را نمایش می دهد .​
    همچنین دستورreadln داده ها را از کاربر در خط بعد می گیرد .​
    ;Program ibpersianblogcom​
    ;Uses WinCRT​
    var​
    ;a:integer​
    ;b:integer​
    Begin​
    ;('write('enter two numbers to add​
    ;(readln(a,b​
    ;a:=a+b​
    ;(write ('a=',a​
    .End​
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=1][/h]
    [h=2]آموزش پاسکال درس ۳[/h] امروز می خواهم یک دستور مهم و پر کاربرد را به شما آموزش بدهم :
    # دستور if ​
    این دستور را اگر بخواهیم با معنای فارسی آن که در ( ) نوشته ام بنویسیم اینطور می شود :​
    (سپس)then شرط (اگر)if​
    ​
    (شروع)begin​
    ​
    ;دستورات​
    ​
    ;(پایان)end​
    ​
    که یعنی اگر شرط ما درست بود دستورات را انجام بده .​
    مثال :​
    در مثال زیر یک عدد از کاربر می گیریم و اگر آن عدد از 100 بزرگتر بود yes و اگر مساوی 100 بود yesno و اگر کوچکتر از 100 بود no را در جواب نمایش میدهد .​
    ;Program ibpersianblogcom​
    ​
    ;Uses WinCRT​
    ​
    var​
    ​
    ;a:integer​
    ​
    Begin​
    ​
    ;clr scr​
    ​
    ;('write('enter greade of our weblog more than 100 or 100 or less than 100​
    ​
    ;(readln(a​
    ​
    if a>100 then​
    ​
    begin​
    ​
    ;('writeln ('yes​
    ​
    ;end​
    ​
    if a=100 then​
    ​
    begin​
    ​
    ;('writeln ('yesno​
    ​
    ;end​
    ​
    if a<100 then​
    ​
    begin​
    ​
    ;('writeln ('no​
    ​
    ;end​
    ​
    .End​
    ​
    همانطور که در مثال بالا دیدید در بیان شرط از علامت های <>= استفاده کرده ایم . در زیر اینگونه علامت ها را به طور کامل توضیح می دهیم .​
    تساوی =​
    نامساوی<>​
    کوچکتر>​
    بزرگتر<​
    کوچکتر یا مساوی >=​
    بزرگتر یا مساوی <=​
    نکته !​
    اگر ما از دستور if در یک خط استفاده کنیم نیاز به brgin و end نیست مانند این مثال :​
    ('if a=100 then writeln('yesno​
    ​
    توجه !​
    از {} برای نوشتن توضیحات در وسط کد استفاده می شود . از این پس هر متنی را که در میان {} در کدها نوشتیم فقط برای توضیح بیشتر است .​
    ​
    # دستور if به همراه else ​
    این دستور دقیقا" مثل if است ولی فقط قسمتی به نام else دارد که توضیح می دهم :​
    (سپس)then شرط (اگر)if​
    ​
    (شروع)begin​
    ​
    ;دستورات​
    ​
    |(پایان)end​
    ​
    (در غیر اینصورت)else​
    ​
    (شروع)begin​
    ​
    ;دستورات​
    ​
    ;(پایان)end​
    ​
    ;End​
    ​
    که یعنی اگر شرط ما درست بود دستورات قسمت اول را انجام بده و در غیر اینصورت اگر شرط درست نبود دستورات قسمت دوم را انجام بده .​
    نکته !​
    قبل از else , در خط بالایش نباید ; قرار بگیرد که من با | نشان داده ام .
     
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=2]آموزش پاسکال درس ۴[/h] # دستورfor
    این دستور برای تکرار دستورات به کار می رود . به این ترتیب که تعداد دفعات تکرار دستور را با دو مقدار (اولیه و نهایی) مشخص می کنیم .​
    برای استفاده از این دستور ما باید از قبل متغیر تعریف کنیم .​
    ساختار این دستور به صورت زیر می باشد . ​
    ;Program ibpersianblogcom​
    ;Uses WinCRT​
    var​
    ;integer:اسم شمارنده ​
    Begin​
    do مقدار نهایی to مقدار اولیه := اسم شمارنده for ​
    begin​
    دستورات​
    ;end​
    .End​
    مثلا" :​
    ;Program ibpersianblogcom​
    ;Uses WinCRT​
    var​
    ;i:integer​
    Begin​
    for i:=1 to 200 do​
    begin​
    ;('writeln('visit our site => http://ib.co.sr​
    ;end​
    .End​
    که در این دستور ما ابتدا متغیر i را از نوع integer تعریف کردیم . سپس با استفاده از دستور for از کامپیوتر خواستیم تا 200 بار دستور writeln را انجام دهد که نتیجه آن 200 بار نوشته شدن متن 'visit our site => co.sr - de beste bron van informatie over co. Deze website is te koop!' است .​
    مثال :​
    برنامه ای بنویسید که 5 عدد را بگیرد و معدل را بدهد .​
    نکته : متغیر real برای اعداد اعشاری استغاده می شود .​
    ;Program ibpersianblogcom​
    ;Uses WinCRT​
    var​
    ;i:integer​
    ;num:real​
    ;average:real​
    Begin​
    for i:=1 to 5 do​
    begin​
    ;('writeln('please type your number​
    ;(read(num​
    avarage:=avarage+num​
    ;end​
    ;(writeln (avarage/5​
    .End​
    توجه : در اینجا در دستور writeln ما avarage/5 را بین دو علامت ' ' نگذاشتیم چون :​
    فقط وقتی از ' ' استفاده می کنیم که بخواهیم دقیقا" متن نوشته شده توسط ما چاپ شود یعنی در این مثال اگر 'avarage/5' را می نوشتیم خود avarage/5 چاپ می شد ولی اکنون که از ' ' استفاده نکرده ایم نتیجه ی تقسیم مقدار avarage به عدد 5 نمایش داده خواعد شد .​
     
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=2]آموزش پاسکال درس ۵[/h] # دستور while
    این دستور برای تکرار دستورات به کار می رود . به این ترتیب که تا زمانی كه شرط صادق است دستورات بين begin و end تكرار می شود .
    فرق دستور while با for در اين است كه در for تعداد تكرار مشخص است ولی در while اين شرط است كه مشخص ميكند يك دستور چند بار تكرار می شود .
    ساختار این دستور به صورت زیر می باشد .
    do شرط while
    begin
    دستورات
    ;end
    ​
    مثال :
    در اين مثال كه از دستور while كمك گرفتيم كامپيوتر مرتبا' يك حرف را از كاربر می گيرد و اگر آن حرف برابر q بود متوقف می شود .​

    ;program ibpersianblogcom
    ;uses wincrt
    var
    ;c : char

    begin
    ;clrscr
    ;(readln(c

    while c<>'Q' do
    begin
    ;(readln(c
    ;end

    .end​
    * برای مرور درس های گذشته و نيزآشنايی با الگوريتم ها تصميم گرفتم تا كار را با چند مثال برنامه نويسی ادامه دهم :
    مثال ۱ :
    برنا مه ای بنويسيد كه يك عدد بگيرد و فاكتوريل آن را حساب كند و در آخر نتيجه را نمايش دهد .
    ;program faktoriel
    ;uses wincrt
    var
    ;fact,n,i : longint

    begin
    ;'(writeln('enter an integer number
    ;(readln(n
    fact:=1

    for i:=1 to n do
    fact:=fact*i
    ;end

    ;(writeln('factorial=',fact
    .end
    ​
    + ما در اينجا از متغيير longint استفاده كرديم كه همان integer است ولی ظرفيت بيشتری دارد .
    + الگوريتم هم كه بسيار ساده است ‏ابتدا عدد را از كاربر می گيرد بعد ۱ يا همان fact را به تعداد دفعات بزرگی عدد در آن عدد ضرب می كند كه حاصل با راه حل رياضی نيز هماهنگی دارد .
     
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=2]آموزش پاسکال درس ۶[/h] مثال :
    برنامه ای بنويسيد که N را از ورودی بگيرد و نتيجه اين سری را محاسبه كند .
    1+2+3+4+....+N
    ;program seri​
    ;Uses WinCrt​
    var​
    ;i,m,n : integer​
    begin​
    ;('writeln('Enter one number​
    ;(readln(n​
    ;m:=0​
    for i:=1 to n do​
    begin​
    ;m:=m+i​
    ;end​
    ;(writeln('Enter one number:',m​
    .End​
    ​
    مثال:
    برنامه ای بنويسيد كه اسامی ۱۰ نفر را بگيرد و آن كدام كه حرف اولش (با توجه به ترتيب حروف الفبای انگليسی) بزرگتر است را چاپ كند .
    ​
    ;program biger name​
    ;uses wincrt​
    var​
    ;n,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10:string​
    begin​
    ;('writeln('Enter Name​
    ;(readln(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10​
    if s1<n then​
    begin​
    ;n:=s1​
    ;end​
    if s2<n then​
    begin​
    ;n:=s2​
    ;end​
    به اين ترتيب تا s10 می نويسيم​
    ;(writeln('n=',n​
    .end​
    در درس بعد از مثالی با شرح زير را برای شما می نويسم ولی شما سعی كنيد تا خودتان آن را بنويسيد . نتيجه را به من ايميل بزنيد تا ايرادهاي آن را به شما بگويم .​
     
  6. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=1][/h]
    [h=2]آموزش پاسکال درس ۷[/h]
    مثال :
    برنامه ای بنويسيد که مرتبا حروف را از کاربر بگيرد و اگر کاراکتر مورد نظر Q بود از برنامه خارج شود .
    ;program myprog
    ;uses wincrt
    var
    ;c:char

    begin
    ;clrscr

    ;(readln(c

    while c<>'a' do
    begin
    ;(readln(c
    ;end
    ​
    ;end​
    توضيح مثال بالا :

    دو خط اول كه برای نوشتن هر برنامه در پاسكال استفاده می شه .

    var را وقتی استفاده می كنيم كه بعدش بخواهيم متغير تعريف كنيم .

    ;c:char
    يعنی اين كه يك متغير از نوع char (كه می تواند حاوی يك حرف باشد) تعريف كرديم .

    begin يعنی اينكه می خواهيم برنامه نويسی را شروع كنيم .

    ;clrscr
    يعنی اينكه اگر در صفحه نوشته ای از قبل باقی مانده است اون را پاك كند .

    ;(readln(c
    يعنی اينكه از كاربر c را بپرس يعنی اينكه كاربر می تونه هر چيزی رو كه می خواهد در c قرار بگيره تايپ كنه

    while c<>'a' do
    begin
    ;(readln(c
    ;end
    در اينجا از دستور WHILE استفاده كردم و گفتم تا وقتی كه شرط درست نيست دستور بين begin و end را تكرار كن .در اينجا 'c<>'a همون شرط ما هستش و يعنی اينكه تا وقتی كه C نا مساوی a هستش دستورات بين begin و end را تكرار كن .
    ;(readln(c رو هم كه قبلا توضيح دادم .

    end هم كه يعنی تمام .

    ​
    متغير char
    اين متغير مكانی از حافظه است كه يك حرف را می توان درون آن جا داد .
     
  7. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=2]آموزش پاسکال درس ۸[/h]

    به زودی لینک همه درس های آموزش پاسکال را یکجا برای شما قرار می دهم .ه​
    : halt دستور
    این دستور جهت اتمام برنامه در هر زمانی مورد استفاده قرار می گیرد . ه
    ​
    : char متغییر
    این نوع متغییر مکانی از حافظه است که یک حرف یا کاراکتر می توان درون آن جای داد . ه
    ​
    : مثال
    با استفاده از دستورfor برنامه ای بنویسید که مرتبا حروف از کاربر بگیرد و اگر کاراکتر مورد نظر Q بود برنامه خاتمه پیدا کند .
    ​
    ;program ib
    ;Uses WinCrt
    ​
    var
    ;i:integer
    ;c:char
    ​
    begin
    ;('writeln ('Enter character
    ​
    for i:=1 to 28 do
    begin
    ;(readln (c
    if c='Q' then
    ;halt
    ;end
    ;end
    ​
    .end​
    توضیح مثال بالا
    دو خط اول كه برای نوشتن هر برنامه در پاسكال استفاده می شه.

    var را وقتی استفاده می كنيم كه بعدش بخواهيم متغير تعريف كنيم.
    ​
    ;i:integer يعنی اين كه يك متغير از نوع inteegr تعريف كرديم (كه می تواند حاوی عدد باشد)​
    ;i:char يعنی اين كه يك متغير از نوع charactr تعريف كرديم (كه می تواند حاوی حرف باشد)​
    begin یعنی برنامه نویسی شروع شد. ​
    ;('writeln ('Enter character یعنی متنenter character را به کاربر نشان بده . ​
    for i:=1 to 28 do
    begin
    ;end
    یعنی دستورات بین begin و end را 28 بار تکرار کن .
    ​
    ;(readln (c یعنی c را از کاربر بخواه
    ​
    if c='Q' then
    ;halt
    ;end

    یعنی اگر C برابر کاراکتر Q بود برنامه را تمام کن .​
    end یعنی برنامه را تمام کن.
    ​
     
  8. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=2]آموزش پاسکال درس ۹[/h] سلام
    مثال : برنامه ای بنويسيد که سانتی متر را بگيرد و بر حسب اينچ چاپ کند .
    inch <= cm
    اطلا عات مورد نياز :
    1inch = 1cm * 2.54
    توجه : کاميوتر در حالت يش فرض، اعداد اعشاری را به صورت علمی نمايش می دهد . يعنی ۱۵ = ۱.۵ * ۱۰
    ;Program ibprogram
    ;Uses WinCrt
    ​
    var
    ;n:real
    ​
    ;begin
    ;(':writeln('enter one real number
    ;(readln(n
    ​
    ;n:=n*2.54​
    ;(writeln('n=' , n
    .end
    ​
    ​
    توضیح مثال بالا
    دو خط اول كه برای نوشتن هر برنامه در پاسكال استفاده می شه.

    var را وقتی استفاده می كنيم كه بعدش بخواهيم متغير تعريف كنيم.
    ​
    ;n:real يعنی اين كه يك متغير از نوع real تعريف كرديم (كه می تواند حاوی اعداد حقيقی باشد)​
    begin یعنی برنامه نویسی شروع شد. ​
    ;('writeln ('Enter one real number یعنی متن enter one real number را به کاربر نشان بده .
    ​
    ;(readln (n یعنی n يا همان عدد حقيقی را از کاربر بخواه
    ​
    ;n:=n*2.54 يعنی به جای مقدار n مقدار n*2.54 را قرار بده .​
    ;(writeln('n=' , n يعنی < مقدار n = n > را به کاربر نشان بده.
    end یعنی برنامه را تمام کن.​
     
  9. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=1][/h]
    [h=2]آموزش پاسکال درس ۱۰[/h] متغير string
    اين متغير مكانی از حافظه است كه نوشته ها و متن (به تعداد 256 character) را می توان درون آن قرار داد . فرق آن با متغیر char در این است که متغیر char می تواند یک حرف را در خود جا دهد در حالی که string می تواند کلمه و یا حتی کلمات (متن) که تعداد حروف آن بیش تر از 256 character نباشد را در آن جا داد .
    توجه : رشته = string = متن یا نوشته
    ​
    بدست آوردن طول رشته (string)
    دستور
    length : از این دستور برای محاسبه تعداد حروف یک رشته استفاده می شود .​
    مثال : برنامه ای بنویسید که یک رشته ( متن) را از کاربر بگیرد و طول رشته (تعداد حروف آن) را چاپ کند .​
    ;program ibprogrammer
    ;Uses WinCrt​
    var
    ;s:string
    ​
    ;begin​
    ;(readln(s
    ;( (writeln( s , ' = ' , length(s
    ​
    .end​
    توضیح مثال بالا
    دو خط اول كه برای نوشتن هر برنامه در پاسكال استفاده می شه.

    var را وقتی استفاده می كنيم كه بعدش بخواهيم متغير تعريف كنيم.
    ​
    ;s:string يعنی اين كه يك متغير از نوع string تعريف كرديم (كه می تواند حاوی متن باشد)​
    begin یعنی برنامه نویسی شروع شد. ​
    ;(readln(s یعنی از کاربر بخواه تا متنی که باید درون s قرار بگیرد را تایپ کند .​
    ;( (writeln( s , ' = ' , length(s
    یعنی طول رشته (تعداد حروف متن) را به کاربر به صورت زیر نشان بده ( اگر s = متن تایپ شده توسط کاربر=welcome to ib )
    welcome to ib = 11​
    end یعنی برنامه را تمام کن.​
     
  10. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : برنامه نویسی با اسمبلي و پاسكال

    [h=1][/h]
    [h=2]آموزش پاسكال درس ۱۱[/h] مثال : برنامه ای بنویسید که یک رشته ( متن) را از کاربر بگیرد و آخرين حرف رشته را ستاره بگذارد.
    ;Program myprog
    ;Uses WinCRT
    var
    ;i:integer
    ;s:string
    begin
    ;('writeln('enter string
    ;(readln(s
    ;(i:=lenght(s
    ;'*'=:[s[i
    ;(writeln(s
    .end

    ​
    دستور تبديل int به str
    این دستور محتوي يك عد صحيح را به رشته تبديل مي كند​
    ;(عدد,رشته)str​
    دستور mod
    براي تعين زوج يا فرد بودن يك عد مورد استفاده قرار مي گيرد و اگر باقي مانده آن عد تقسيم بر دو صفر بود زوج و در غير اينصورت فرد است​
    mod 2=0 عدد​
    مثال : برنامه ای بنویسید که عدد از كاربر بگيرد و بگويد كه عدد متقارن است و اگر نبود بگويد كه عدد متقارن نيست​
    ;Program myprog
    ;Uses WinCRT
    var
    ;i,len:integer
    ;s:string
    begin
    ;('writeln('enter number
    ;(readln(i
    ;(str(i,s
    (len:=lenght(s
    if len mod 2=0 then
    begin
    ;('عد متقارن نيست')write
    ;halt
    end;
    for i:=1 to len/2 do
    begin
    if s<>s[len-i+1] then
    begin
    ;('عد متقارن نيست')writeln
    halt
    end
    ;('عد متقارن هست')writeln
    .End
     
    یک شخص از این تشکر کرد.