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

آموزش پاسکال بخش سوم

شروع موضوع توسط hector2141 ‏15/10/12 در انجمن Pascal

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    [​IMG]
    آموزش پاسکال بخش سوم
    در ادامه با دستورات حلقه سازی با تعداد تکرار نامعین آشنا می شویم :
    تعداد تكرار نامعين :
    While شرط Do
    Begin
    ___
    ___
    ___
    End;


    مثال : برنامه اي بنويسيد كه اعداد 100..1 را چاپ كند
    Begin
    I:=1;
    While i<=100 do
    Begin
    Write(i);
    I:=i+1;
    End;
    مثال : برنامه اي بنويسيد كه تعدادي اسم را از ورودي دريافت و به ما بگويد چند بار اسم ali تكرار شده است(آخرين اسم end است )
    Var
    S:integer;
    St:string;
    Begin
    Read(st);
    While st<> 'end' do
    Begin
    If st='ali' then
    S:=s+1;
    Read(st);
    End;
    write(s);
    End.
    مثال : برنامه اي بنويسيد كه تعدادي عدد كه آخرين آنها صفر است را از ورودي دريافت و حاصلجمع آنها را چاپ كند .
    Begin
    Readln(num);
    T:=1;
    While num<>0 do
    Begin
    Sum:=sum+num;
    Readln(num);
    T:=t+1;
    End;
    Writeln('s=',s,'average',s/t);
    End;
    تكليف : براي دانش آموزان يك كلاس برنامه اي بنويسيد كه نام آنها به همراه تعداد نمرات و سپس نمرات آنها را به فرم زير از ورودي دريافت كند.تعداد دانش آموزان كلاس نامعين است ولي آخرين نفر نامش end است .برنامه ميبايستي پس از دريافت هر يك از اطلاعات پيامي به شكل زير چاپ كند .
    Average: Sum: Ali Name:
    3
    18
    20
    13.5

    program test;
    var
    name:string[10];
    ave,sum,nomreh:real;
    num,i:integer;
    begin
    writeln('enter name ' );
    readln(name);
    while name <> 'end' do
    begin
    writeln('enter num:');
    readln(num);
    for i:=1 to num do
    begin
    writeln('enter nomreh: ');
    readln(nomreh);
    sum:=sum+nomreh;
    end;
    ave:=sum/num;
    writeln('name:',name,'sum:',sum,'ave:',ave);
    writeln('enter name ');
    readln(name);
    end;
    end.
    تكليف : ميخواهيم براي برنامه هاي خود يك منو تهيه كنيم اين منو شامل موارد زير است
    1) load
    2) save
    3) edit
    4) exit
    please select a number :
    program test;
    var
    num:integer;
    begin
    writeln(' 1) load');
    writeln(' 2) save');
    writeln(' 3) edit');
    writeln(' 4) exit');
    writeln(please select a number : ');
    readln(num);
    while num<>4 do
    begin
    case num of
    1:writeln('loading');
    2:writeln('saving');
    3:writeln('editing');
    end;
    end;
    end.
    مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و طبق جدول زير نسبت به مقدار آن واكنش نشان دهد
    3 2 1 a
    B+...+3+2+1 1..b b..1 واكنش
    Begin
    Writeln (' enter a,b :');
    Readln(a,b);
    Case a of
    1:begin
    for i:=1 to b do
    write(i);
    end;
    2:begin
    For I;=b downto 1 do
    write(i);
    end;
    3:begin
    sum:=0;
    for i:=1 to b do
    sum:=sum+I;
    write(sum);
    end;
    end.
    آرايه ها :
    آرايه ها به عناصري اتلاق ميشود كه با يك نام تعدادي محل از حافظه را كنترل كند براي تشخيص محلها از انديس استفاده ميشود
    انواع آرايه ها :
    1 - آرایه های یک بعدی
    2 - آرایه های دو بعدی
    3 - آرایه های سه بعدی
    نحوه تعريف آرايه ها :
    var
    نام آرایه : Array [اندیس ابتدای آرایه . . . اندیس انتهای آرایه] of نوع آرایه
    نوع متغير آرايه : متغير آرايه
    خواندن آرايه :
    مثال : برنامه اي بنويسيد كه نمرات 100 دانش آموز را از ورودي دريافت و در يك آرايه بريزد .
    Var
    A:array[1..100] of real;
    Begin
    For i:=1 to 100 do
    Readln(a[i ]);
    مثال : برنامه اي بنويسيد كه نمرات 100 دانش آموز را از ورودي دريافت و 50 تاي اول را چاپ كند سپس تعداد نمرات 20 را مشخص كند .
    Var
    A:array[1..100] of real;
    Begin
    For I;=1 to 100 do
    Writeln('enter no(',I,')');
    Readln(a[ i]);
    For i:=1 to 50 do
    Writeln(a [ i]);
    S:=0;
    For i:=1 to 100 do
    If i:=1 to 100 do
    If a[ i]=20 then
    S:=s+1;
    Writeln(s);
    End.
    پيدا كردن max,min
    عنصر اول =min
    حلقه براي گردش در آرايه
    Min < عنصر فعلي if
    عنصر فعلي min :=
    Write(min);
    مثال : برنامه اي بنويسيد كه با دريافت نمرات 100 دانش آموز بالاترين و پايين ترين نمره را در بين اين 100 نفر پيدا كند .
    Var
    A:array[1..100] of real;
    I:integer;
    Begin
    For i:=1 to 100 do
    Readln(a[ i ] );
    Min:=a[1];
    Max:=a[1];
    For i:=2 to 100 do
    Begin
    If a[1]< min then
    Min:=a[ i];
    If a[ i]>max then
    Max := a[i ];
    End;
    Writeln('max is :',max,'min is :',min);
    End.
    مثال : برنامه اي بنويسيد كه با دريافت 100 اسم به ما بگويد تعداد تكرار اسم ali چند بار است وآيا اسم hassan بيشتر ذكر شده يا اسم reza ؟
    Var
    A:array [1..100] of string;
    Begin
    For i:=1 to 100 do
    Readln(a[ i ]);
    Ali:=0;
    Reza:=0;
    Hassan:=0;
    For i:=1 to 100 do
    Begin
    If a[ i]='ali' then
    Ali:=ali+1;
    If a[ i]='reza' then
    Reza:=reza+1;
    If a[ i]='hassan' then
    Hassan:=hassan+1;
    End
    Writeln(ali is :',ali);
    If reza>hassan then
    Writeln('reza')
    Else
    Writeln('hassan');
    End.
    مثال : برنامه اي بنويسيد كه با دريافت نام و نمره 100 دانش آموز تنبل ترين فرد كلاس را مشخص كند .
    Var
    Name:array[1..100] of string;
    No:array[1..100] of real;
    Begin
    For i:=1 to 100 do
    Begin
    Readln(name[ i]);
    Readln(no[ i]);
    End;
    Min:=no[1];
    Namemin:=name[1];
    For i:=2 to 100 do begin
    If no[ i]
    Begin
    Min:=no[ i];
    Namemin:=name[ i];
    writeln(namemin);
    End.