دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
صفحه 5 از 5 نخستنخست 12345
نمایش نتایج: از شماره 41 تا 46 , از مجموع 46

موضوع: آموزش پاسکال

  1. #41
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش پاسکال

    تكليف : برنامه اي بنويسيد كه با دريافت سه عدد و با فرض اينكه عدد دوم وتر ميباشد به ما بگوييد كه آيا اين سه عدد تشكيل يك مثلث قايم الزاويه مي دهد يا خير؟

    CASE:
    CASE ميتواند تعداداي شرط را بگيرد و انتخاب كند.
    مقاديري كه دستور CASE ميپذيرد ORDINAL است مقاديري كهORDINAL هستند داراي تركيب نيستند و همچنين قابل شمارش هم هستند مثل INTEGER,CHARACTER,BYTE,BOOLEAN,LONGINT,…
    پسREAL,STRING ORDINAL<---- نيستند
    CASE تنها دستوري است كه BEGIN ندارد ولي END دارد
    مقدارها ميتوانند شامل يك مقدار يا چند مقدار كه از يكديگر با كاما جدا شده اند باشند و يا يگ سري شمارشي باشند مثل:
    1:------
    1,10,28:------
    1..100,150..243:---------
    'A'..'Z':---------

    Of متغير Case
    Begin : مقدار1
    -------
    -------
    End;
    Begin : مقدار2
    -------
    -------
    End;
    Begin :Else
    -------
    -------
    End;
    End.
    مثال : برنامه اي بنويسيد كه يك عدد را از ورودي دريافت ( (0<=x<3وتلفظ آنها را چاپ كند.
    BEGIN
    READLN(X);
    CASE X OF
    0:WRITELN('ZERO');
    1:WRITELN('ONE');
    2:WRITELN('TWO')
    ELSE
    WRITELN('ERROR');
    END;
    END.

    مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ كند چنانچه 68 بود حاصلضرب دو عدد را چاپ كند و در غير اينصورت مقادير مجاز را چاپ كند.
    BEGIN
    WRITELN('ENTER TWO NUMBER');
    READLN(A,B);
    CASE A OF
    0..5 :WRITELN(B*B);
    68:WRITELN(A*B)
    ELSE
    WRITELN('ENTER 0..5 OR 68');
    END;
    END.
    - معادل برنامه بالا با دستور If :
    Begin
    Writeln('enter 2 number');
    Readln(a,b);
    If (a>=0)and(a<=5) then
    Writeln(b*b)
    Else
    If a=68 then
    Writeln(a*b)
    Else
    Writeln('enter 0..5 or68');
    End.
    تكليف : روشي براي تلفظ اعداد پيدا كنيد.

    حلقه تكرار :
    1- تعداد معين
    2- تعداد معين
    Do مقدار نهايي to { مقدار شروع=: متغير for
    downto
    begin
    ___
    ___
    ___
    end;
    توجه مهم : در برخي از حلقه ها دستورات داخل حلقه به متغير حلقه مرتبط مي باشند و در برخي موارد هيچگونه ارتباطي وجود ندارد.
    حلقه for براي تعداد تكرار معين به كار ميرود
    Downto : در مواردي به كار ميرود كه مقدار اوليه از مقدار نهايي بيشتر باشد
    uody

  2. #42
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش پاسکال

    مثال : برنامه اي بنويسيد كه توان دوم اعداد 100 تا 200 را چاپ كند.
    Begin
    For i:=100 to 200 do
    Begin
    Writeln(i*i);
    End;
    End.
    نكته : اجازه نداريد مقدار متغير حلقه را در داخل بدنه عوض كنيد .
    مثال : برنامه اي بنويسيد كه حاصلجمع اعداد 100..1 را چاپ كند.
    Begin
    Sum:=0;
    For i:=1 to 10 do
    Begin
    Sum:=sum+i
    End;
    Write(sum);
    End.


    مثال : برنامه اي بنويسيد كه حاصلجمع مضارب 5 بين 0 تا 100را به دست آورد.
    Begin
    Sum:=0;
    For I:=1 to 20 do
    Begin
    Sum:=sum+i*5;
    End;
    Writeln(sum);
    End.
    مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و اعداد ما بين اين دو عدد را چاپ كند (aBegin
    Writeln('enter a,b');
    Readln(a,b);
    For I:= a to b do
    Writeln(i);
    End.

    مثال : برنامه اي بنويسيد كه با يك حلقه for اعداد بين100..1 و738..353و 950..940 را چاپ كند
    Begin
    For i:=1 to 950 do
    Begin
    If ( i>=1) and (i<=100) then
    Writeln(i);
    If (i>353) and (i<=738) then
    Writeln(i);
    If (i>=940) and (i<=950) then
    Writeln(i);
    End;
    End.
    معادل برنامه بالا با استفاده از دستور case :
    Begin
    For i:=1 to 950 do
    Case I of
    1..100,353..738,940..950: writeln(i);
    end;
    end.
    باقيمانده mod
    مثال :
    X mod y
    مثال : برنامه اي بنويسيد كه مضارب 7 بين 1 تا 100 را چاپ كند
    Begin
    For i:= 1 to 100 do
    Begin
    If I mod 7 = 0 then
    Writeln(i);
    End;
    End.
    مثال : برنامه اي بنويسيد كه تعداد مضارب 5و7 را در بازه 231~846 چاپ كند.
    Begin
    K:=0;
    C:=0;
    For i:=846 downto 231 do
    Begin
    If I mod 5 = 0 then
    C:=c+1;
    If I mod 7 = 0 then
    K:=k+1;
    End;
    Writeln('5=',c,'7=',k);
    End;
    End.
    مثال : برنامه اي بنويسيد كه حقوق پايه وتعداد فرزندان 100 كارگر را از ورودي دريافت و مبلغ حقوق آنها را بر اساس فرمول زير حساب كند0
    1000*تعداد فرزند + حقوق پايه = حقوق كل
    Begin
    For i:=1 to 100 do
    Begin
    Writeln('enter salary and number of children');
    readln(salary,num);
    kol := salary + num * 1000;
    writeln(kol);
    end;
    end.

    مثال : برنامه اي بنويسيد كه 100 عدد را از ورودي دريافت و ميانگين و حاصلجمع آنها را به ما بدهد.
    Begin
    Sum:=0;
    For i:= 1 to 100 do
    Begin
    Writeln('enter num');
    Readln(num);
    Sum:=sum+num;
    End;
    Ave:=ave/100;
    Writeln(sum,ave);
    End.
    uody

  3. #43
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش پاسکال

    تعداد تكرار نامعين :
    Do شرط while
    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
    or 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.
    uody

  4. #44
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش پاسکال

    آرايه ها :
    آرايه ها به عناصري اتلاق ميشود كه با يك نام تعدادي محل از حافظه را كنترل كند براي تشخيص محلها از انديس استفاده ميشود
    انواع آرايه ها :
    1- آرايه هاي يك بعدي
    2- عناصر دو بعدي
    3- آرايه هاي سه بعدي

    تعريف آرايه ها :
    var
    نوع of ]انديس پايان..انديس شروع: array [ نام آرايه
    نوع متغير آرايه : متغير آرايه
    خواندن آرايه :
    مثال : برنامه اي بنويسيد كه نمرات 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;
    Endd
    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.



    آرايه هاي دو بعدي:
    وقتي از آرايه دوبعدي استفاده ميكنيم بايد از دو حقه for استفاده كنيم.
    مثال : برنامه اي بنويسيد كه نمرات 4 كلاس كه هر يك 20 دانش آموز دارد را از ورودي دريافت وتنبل ترين فرد را در اين 4 كلاس مشخص كند.


    Var
    A:array[1..20,1..4] of real;
    Begin
    For i:=1 to 4 do
    Begin
    For j:=1 to 20 do
    Readln(a[j, i]);
    End;
    Min:=a[1,1];
    For i:=1 to 4 do
    For j:=1 to 20 do
    If a[j,i]< min then
    Min:=a[j,i];
    Writeln(min);
    End.



    مثال : در يك آرايه 100*20دوهزار كاراكتر نگهداري ميشود برنامه اي بنويسيد كه تعداد تكرار حرف A را با a مقايسه كند و همچنين به ما بگويد آيا كاراكتر z در اين ماتريس وجود دارد ؟


    Var
    A:array[1..20,1..100] of character;
    Bool:Boolean;
    B,b1:integer;
    Begin
    For i:=1 to 100 do
    For j:=1 to 20 do
    If a[I,j]='A' then
    B:=b+1;
    If a[I,j]='a' then
    B1:=b1+1;
    If a[I,j]='z' then
    Bool:=true;
    End;
    If b>b1 then writeln('A>a');
    If bIf b=b1 then writeln('A=a');
    If true then writeln('''z''exist');
    End.



    تكليف : ميخواهيم نام و نمره تعدادي دانش آموز يك كلاس را از ورودي دريافت كنيم و مشخص كنيم كه تنبل ترين و زرنگ ترين فرد كلاس كيست.چند نفر نمره زير 10 گرفتند؟نام كساني كه نمره آنها در بازه 17 تا 15 مي باشد ب همراه نمره آنها چاپ شود آخرين نفر نامش end است حداكثر تعداد دانش آموزان 100 نفر است.


    Var

    a:array [1..100] of string ;
    b:array[1..100] of real;
    begin
    i:=1;
    read(a[ i]);
    while a[ i]<>'end' do begin
    readln(b[ i]);
    i:=i+1;
    readln(a[ i]);
    end;
    j:=i-1;
    min:=a[1];
    max:=a[1];
    for i:= 2 to j do
    begin
    if b[ i] >max then
    begin
    max:=b[ i];
    name:a[ i];
    end;
    end
    writeln(name);
    count:=0;
    for i:=1 to j do
    if b[i ]<=10 then
    count:=count+1;
    writeln(count);
    for i:=1 to j do
    if (b[ i]<17) and (b[ i]>15) then
    write(b[ i],a[ i]);
    end.



    تكليف : برنامه اي بنويسيد كه حاصل اين عبارت را حساب كند.


    i/i!=1/1!+2/2!+3/3!+4/4!+5/5!
    N!= 1*2*3*4*…*n
    Begin
    Sum:=0;
    For n:=1 to 5 do
    Begin
    For m:=1 to n do
    F:=f*m;
    Sum:=sum+n/f;
    End;
    Writeln(sum);
    End.



    تكليف : برنامه اي بنويسيد كه نمرات 80 دانش آموز را كه در چهار كلاس دسته بنده شده اند را از ورودي دريافت كند سپس به سوالات زير جواب دهد.
    1- معدل هر يك از كلاسها
    2- نمره تنبل ترين و زرنگترين شخص در هر كلاس به طور جداگانه


    Var
    A:array [1..4,1..20] of real;
    Begin
    For i:=1 to 4 do
    For j:=1 to 20 do
    Begin
    Writeln('please enter nomreh');
    Readln(a[I,j]);
    End;
    For i:=1 to 4 do
    Begin
    Sum:=0 ;
    For j:=1 to 20 do
    Begin
    Sum:=a[I,j]+sum;
    End;
    Writeln(sum/20,'average of this class');
    End;
    For i:=1 to 4 do
    Begin
    Max :=a[1,1];
    Min:=a[1,1];
    For j:=2 to 20 do
    Begin
    If a[I,j]>max then
    Max :=a[I,j];
    End;
    Writeln(I,min,max);
    End;
    End.
    uody

  5. #45
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش پاسکال

    - String :

    String آرايه اي از كاراكترهاست .اغلب لازم است كاراكترهايي در رشته موجود درج شوندو يا كاراكترهايي به جاي بخشي از رشته نوشته شوند , زيررشته اي در رشته جستجو گردد و يا دو رشته با هم الحاق شوند.
    رشته تهي : طول رشته ثابت نيست و با داداه هايي كه در آن ذخيره شده است مشخص مي گردد.كاراكترهايي كه در رشته قرار مي گيرد از حداكثر طولي كه براي آن تعيين ميشود بيشتر نخواهد بود. اگر name رشته كاراكتري باشد دستور زير name را به رشته تهي تبديل ميكند:
    Name:='';
    تبديل رشته به اعداد :
    در پاسكال زير برنامه هايي وجود دارند كه به آساني ميتوانند رشته ها را پردازش كنند. زيربرنامه val رشته عددي را گرفته به مقدار عددي تبديل ميكند.
    رشته عددي رشته اي است كه حاوي كاراترهاي '0' تا '9' و نقطه مميز باشد مثل '12.5' و'13.5' زيربرنامه val به صورت زير به كار ميرود.
    Val (st,number,error)
    St رشته اي است كه بايد به عدد تبديل شود و number متغيري است كه رشته تبديل شده به عدد در آن قرار ميگيرد. چنانچه در رشته st كاراكتر نا معتبري (كاراكترهاي غير از( '0' تا '9' و'.' ) , محل وجود آن كاراكتر در پارامتر error قرار ميگيرد. اگر error برابر با صفر باشد معنايش اينست كه كاراكتر نا معتبري وجود ندارد. اگر number از نوع صحيح باشد st به مقدار صحيح و اگر number از نوع اعشاري باشد st به مقدار اعشاري تبديل ميشود .
    مثال زير را در نظر بگيريد:


    Var st :string;
    Num,e:integer;
    St:='352';
    Val (st,num,e);



    مقدار 352 در متغير num ومقدار صفر در متغير e قرار ميگيرد اكنون دستورات زير را در نظر بگيريد :


    St:='35#'2;
    Val (st,num,e);



    با اجراي دستور val به دليل وجود كاراكتر' # ' كه كاراكتر نامعتبري در اعداد است عدد 2 در متغير e قرار ميگيرد و معنايش اينست كه كاراكتر شماره 2 ( شماره گذاري از صفر شروع ميشود) نامعتبر است و عمل تبديل صورت نميگيرد و مقدار num تعريف نشده است.
    تبديل عدد به رشته :
    براي تبديل مقدار عددي به رشته عددي از زيربرنامهstr استفادهميشود و به صورت زير به كار ميرود:
    Str (number : format,numstring)
    با اين دستور مقداري كه در number قرار دارد به رشته اي به طول format تبديل ميشود و در رشته numstring قرار ميگيرد . دستورات زير را در نظر بگيريد:


    Var x:integer;
    St:string;
    X=352;
    Str(x:5,st);



    با اجراي اين دستور مقدار 352 به رشته '352' تبديل شده در st قرار ميگيرد


    دستورات زير را در نظر بگيريد:


    Var y1,y2:real;
    St1,st2 : string;
    Y1:=352.768
    Y2:=476.395
    Str(y1:7:2,st1);
    Str(y2:3:1,st2);



    با اجراي دستور str اول مقدار 352.768 به رشته '352.768' تبديل ميشود و در st1 قرار ميگيرد و با اجراي دستورstr دوم مقدار 476.395 به رشته '476.395'تبديل ميشود و در st2 قرار ميگيرد.
    جدا كردن زيررشته اي از رشته:
    زيررشته بخشي از رشته است و براي جدا كردن زيررشته از رشته از تابع copy استفاده ميشودتابع copy به صورت زير به كار ميرود.


    Copy (source,index,size)
    S:='I am learning pascal ';
    S1:=copy(s,15,6);



    دستور copy باعث ميگردد تا با شروع از محل 15 تعداد 6 كاراكتر از رشته s استخراج شود و در s1 قرار گيرد. بنابراين محتويات رشته s1 برابر است با 'pascal'.
    الحاق رشته ها :
    منظور از الحاق رشته ها اتصال رشته ها به يكديگر است به عنوان مثال اگرs1:='ab' و s2:='cde' الحاق دو رشته (s1,s2) به صورت 'abcde' خواهد بود براي الحاق رشته ها از تابع concat استفاده ميشود:
    (اسامي رشته ها)concat
    دستورات زير را در نظر بگيريد:


    S1:='pascal';
    S2:='is a ;
    S3:='language';
    S4:=concat(s1,s2,s3);



    با اجراي اين دستور s3 به انتهاي s2 متصل ميشود و رشته نتيجه به انتهاي s1 متصل ميگردد و در نتيجه رشته s4 عبارت است از'pascal is a language': . اگر طول رشته حاصل بيش از 255 باشد بقيه كاراكترها حذف ميشوند.
    جستجوي رشته اي در رشته ديگر:
    براي اين كار از تابع pos استفاده ميشود كاربرذ اين تابع به صورت زير است:
    Pos(s1,s2)
    S1 رشته اي است كه بايد در s2 وجود داشته باشد محل اولين وقوع آن برگردانده ميشود و گر نه مقدار صفر برگردانده ميشود دستورات زير را در نظر بگيريد:


    S1:='learning'
    S2:='I am learning pascal';
    S3:='english'
    X:=pos(s1,s2)
    y:=pos(s3,s2)



    چون رشته s1 در s2 وجود دارد دستور pos اول مقدار 6 را در x قرار ميدهد و معنايش اين است كه رشته 'learning' در محل 6 رشته s2 وجود ندارد مقدار صفر در y قرار ميگيرد.
    محاسبه طول رشته :
    براي محاسبه طول رشته از تابع length به صورت زير استفاده ميشود:
    (رشته)length
    دستورات زير را در نظر بگيريد:


    S1:='xymn'
    X:=length(s1)



    چون طول رشته s1 برابر 4 است مقدار x برابر 4 خواهد بود.
    حذف و درج زيررشته:
    زير رشته اي را ميتوان از رشته اي حذف كرد و يا زيررشته اي را ميتوان در رشته اي درج كرد براي حذف زير رشته از زيربرنامه ها به صورت زير به كار ميروند:


    Delete(source,index,size)
    Insert(pattern,destination,index)



    در زيربرنامه delete زيررشته اي به طول size با شروع از محل index از رشته source حذف ميشود و در زيربرنامه insert زيررشته pattern با شروع از محل index در رشته destination درج ميشوددستورات زير را در نظر بگيريد:


    S1:=pas***cal
    Delete(s1,4,3)
    S2:='paal';
    S3:='sc';
    Insert(s3,s2,);



    دستور delete باعث ميشود تا با شروع از محل 4 رشته s1 حذف شده و رشته s1 به pascalتبديل شود دستور insert موجب ميشود تا رشته s3 در s2 درج شود و در نتيجه رشته s2 به 'pascal' تبديل شود.
    مثال : برنامه اي بنويسيد كه يك اسم را از ورودي دريافت و آنرا بر عكس چاپ كند


    Readln(name);
    For i:=length(name) downto 1 do
    Write (name[ i])



    مثال : برنامه اي بنويسيد كه كه يك نام را از ورودي دريافت و به ما بگويد كه آيا اين نام با حرف a شروع ميشود يا خير؟


    Readln(name);
    If name[1]='a' then
    Writeln('ok')
    Else
    Writeln('not ok');



    مثال : برنامه اي بنويسيد كه يك نام را از ورودي دريافت و حروف آنرا يك در ميان چاپ كند.


    Readln(name);
    For i:=1 to length(name) do
    If I mod 2 = 0 then
    Writeln(name[ i]);
    روش ديگر:''
    For i:=1 to int(length(name)/2) do
    Writeln(name[ i*2]);



    مثال : برنامه اي بنويسيد كه يك رشته را از ورودي دريافت و متقارن بودن آنرا چك كند.
    1 2 3 4 5 5 4 3 2 1


    var
    N:string;
    Begin
    Readln(n);
    For i:=1 to int(length(n)/2) do
    Begin
    If n[i ] <> n[length(n) -i+1] then
    K:=0;
    End;
    If k=1 then
    Writeln ('ok')
    Else
    Writeln('no');
    End.



    مثال : برنامه اي بنويسيد كه تعداد حروف a موجود در يك رشته ورودي را بشمارد.


    Var st:string;
    Begin
    Readln(st);
    C:=0;
    For i:=1 to length(st) do
    If st[ i]='a' then ?if st[ i] in ['a','A'] then
    C:=c+1;
    Writeln©



    مثال : برنامه اي بنويسيد كه تعداد اسامي alireza موجود در رشته را بشمارد.


    Begin
    Readln(st);
    C:=0;
    While pos('alireza',st) <> 0 do
    Begin
    C:=c+1;
    J:=pos('alireza',st);
    Delete(st,pos('ali',st),3);
    End;
    Write ( c );
    End.



    مثال : برنامه اي بنويسيد كه دو رشته را از ورودي دريافت و بعد از كاراكترمساوي كه در رشته اول وجود دارد رشته دوم را چاپ كند.


    Readln(st,st1);
    J:=pos('=',st);
    Writeln(copy ((st,1 j) , st1, copy (st,j+1,100));



    تكليف : برنامه اي بنويسيد كه با دريافت سه حرف و قرار دادن آنها در يك آرايه سه تايي كليه تركيبات ممكن را كه سه حرف تركيباتشان به هم نخورد چاپ كند.
    W a x
    A x w
    W a x
    مثال : برنامه اي بنويسيد كه يك رشته را از ورودي دريافت و كليه كلمات موجود در آن را بشمارد.


    Readln(st);
    S:=0;
    St:=st+' '
    While pos(' ',st) <> 0 do
    Begin
    S;=s+1;
    Delete(st,1,pos(' ',st));
    While st[1]=' 'do
    Delet (st,1,1);
    End;
    End.



    تكليف : برنامه اي بنويسيد كه 100 رسته را از ورودي دريافت و در يك آرايه به طول 100 از نوع string بريزيد و به سؤالات زير جواب دهد.
    1- تعداد كل كلمات
    1- تعداد كل حروف
    2- تعداد حروف صدا دار
    uody

  6. #46
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش پاسکال

    ذخيره اطلاعات :
    Log file : فايلي است كه تمام تغييرات مربوط به يك محيط را ثبت ميكند
    فايلها :
    1- متني text
    2- ركوردي typed
    3-بدون نوع
    4-untyped

    معرفي فايلهاي متني :
    Var

    Text : نام فايل

    نسبت دادن فايل :
    ; ('نام خارجي ,'نام فايل ) assign
    مثال :


    Assign(f,'c:\a1.dat.ddd');



    باز كردن جهت خواندن
    ;( نام فايل)reset
    باز كردن جهت نوشتن
    ; ( نام فايل)rewrite
    ) ___,نام فايل)readln
    ) ___,نام فايل)writeln
    ) نام فايل)close
    تا close انجام نشود data ذخيره نميشود .
    نكته بسيار مهم : در هر يك از مسائلي كه در مورد فايلها مطرح ميشود مي بايستي به نحوي از يكي از تكنيكهاي نگهداري اطلاعات در حافظه اصلي استفاده نمود اين تكنيكها ممكن است استفاده از متغيرها و آرايه ها و ماتريسها و ودرختهاو...استفاده نمود ولي تنها با دو عمل خواندن و نوشتن به روي فايل كار انجام ميشود
    Update : ميخوانيم ولي دوباره ميريزيم سر جاش
    Append : بهش يك چيزي اضافه ميكنيم
    نكته : عمل rewrite باعث ميگردد چنانچه فايل وجود نداشته باشد ايجاد و چنانچه وجود دارد اطلاعاتش به طور كامل پاك شود.
    مثال : برنامه اي بنويسيد كه100 اسم را از ورودي دريافت و آنها را در يك فايل به نام a1.dat))بنويسد.


    Var
    F:text;a:string;
    Begin
    Assign(f,'a1.dat');
    Rewrite(f);
    For i:=1 to 100 do
    Readln(a);
    Writeln(f,a);
    End;
    Close(f);
    End.



    مثال : برنامه اي بنويسيد كه فايل a1.dat را خوانده و به ما بگويد چند بار اسم ali تكرار شده است؟


    Var
    A:text;
    B:string;
    Begin
    Assign(a,'a1.dat');
    Reset(a);
    Sum:=0;
    For i:=1 to 00 do
    Begin
    Readln(a,b);
    If b='ali' then
    Sum:=sum+1;
    End;
    Close(a,b);
    End;



    مثال : برنامه اي بنويسيد كه تعدادي اسم را كه آخرين آنها end است از ورودي دريافت و در يك فايل به نام aa.dat بريزد آنگاه فايل را بسته و قسمتهاي زير را به طور جداگانه انجام دهد.
    1- تعداد حسنها بيستر است يا علي ها
    2- چند اسم وجود دارد كه با حرف z شروع ميشود.


    Var
    f:text;
    Name:string;
    Begin
    Assign(f,'aa.dat');
    Rewrite(f);
    Readln(name);
    While name<> 'end' do
    Begin
    Writeln(f,name);
    Readln(name);
    End;
    Close(f);
    H:=1;
    A:=1;
    Z:=1;
    Reset(f);
    While not eof (f) do
    Begin
    Readln(f,name);
    If name='ali' then
    A:=a+1;
    If name ='hassan' then
    H:=h+1;
    End;
    Close(a);
    If h>a then writeln('h>a');
    If h If h=a then writeln('h=a');
    End;
    Close(f);
    Reset(f);
    While not eof (f) do
    Begin
    Readln(f,name);
    If name[ i]='z' then
    Z;=z+1;
    End;
    Close(f);
    Writeln('sum of z is :'z);
    End.



    تكليف : برنامه اي بنويسيد كه تعدادي نام را از ورودي دريافت و در يك فايل بريزد سپس فايل تشكيل شده را باز كرده و از روي اين فايل دو فايل ديگر تشكيل دهيد كه در يكي از آنها اسامي كه بين a تا z قرار گرفته اند ريخته و در فايل دوم كليه اسامي كه از v تا z هستند را بريزد.


    Program test;
    Var
    Name : string;
    F,f1,f2:text;
    Begin
    Assign(f,'a.dat');
    Rewrite(f);
    Writeln('enter a name ');
    Readln(name);
    While length(name)>0 do
    Begin
    Writeln(f,name);
    Writeln('enter a name');
    Readln(name);
    End;
    Close(f);
    Reset(f);
    Assign(f1,'a1.dat');
    Assign(f2,'a2.dat');
    Rewrite(f1);
    Rewrite(f2);
    While not eof (f) do
    begin
    Readln(f,name);
    Case name[1] of
    'a'..'u':writeln(f1,name);
    'v'..'z':writeln(f2,name);
    end;
    end;
    close(f2);
    close(f1);
    close(f);
    end.



    تكليف : برنامه اي بنويسيد كه نام دو فايل را از ورودي دريافت و از اطلاعات داخل اين دو فايل فايل سومي تشكيل دهد كه حاصل تركيب دو فايل قبل باشد.


    var
    h,f,g:text;
    a:string;
    begin

    writeln('enter first filename') ;
    readln(a);
    assign(h,a);
    writeln('enter second filename') ;
    readln(a);
    assign(f,a);
    reset(h);
    reset(f);
    assign(g,'out.dat');
    rewrite(g);
    while not eof(h) do
    begin
    readln(h,a);
    writeln(g,a);
    end;
    while not eof(f) do
    begin
    readln(f,a);
    writeln(g,a);
    end;
    close(f);
    close(h);
    close(g);
    End.


    منبع:freedownload.ir
    uody

صفحه 5 از 5 نخستنخست 12345

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. معرفی: معرفی سایتهای علمی و كاربردی و مختلف
    توسط Admin در انجمن معرفی سایتها و وبلاگها
    پاسخ ها: 27
    آخرين نوشته: 15th April 2010, 10:00 PM
  2. مقاله: نقش آموزش در مديريت سازمانهاي بهداشتي -درماني
    توسط MR_Jentelman در انجمن مجموعه مدیریت اجرایی
    پاسخ ها: 0
    آخرين نوشته: 20th August 2009, 09:47 AM
  3. معرفی: بزرگترين دانشگاه های الکترونیکی جهان
    توسط engeneer_19 در انجمن تازه های برق
    پاسخ ها: 0
    آخرين نوشته: 8th August 2009, 10:23 PM
  4. فناوري اطلاعات در آموزش پزشكي
    توسط AvAstiN در انجمن فناوری
    پاسخ ها: 0
    آخرين نوشته: 5th December 2008, 09:42 AM
  5. مقاله: درباره آموزش مجازی: آموزشی از نوع دیگر
    توسط Admin در انجمن سایر مقالات بخش کامپیوتر
    پاسخ ها: 0
    آخرين نوشته: 29th October 2008, 06:57 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •