کاربری
کاربر گرامی به خوش آمدید . اگر این نخستین بازدید شما از سایت است , لطفا ثبت نام کنید:

   

جهت تبلیغات در پرشین فروم کلیک کنید

نمایش نتایج: از شماره 1 تا 9 , از مجموع 9

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

  1. #1

    Arrow آموزش پاسکال

    زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (structed) است .

    ساختار كلي برنامه چيست؟

    1-تعريف
    2-به وسيله procedure و functionقسمتهاي تكراري را از بين ببريم
    3-بدنه
    فرم كلي پاسكال:

    اسم Program
    ;
    تعريف ثابت const
    ;
    تعريف نوع type
    ;
    تعريف متغيرها var
    )
    پارامترها ) نام procedure

    begin
    ____
    ____
    ____
    end ;
    ; ( پارامترها ) نام نوع تابع function
    begin
    ____
    ____
    ____
    end ;
    begin
    ____
    ____
    ____
    end .
    متغير : محلي است كه داراي يك اسم مي باشد و مي توان مقداري را در آن ذخيره كرد

    انواع متغيرها در پاسكال:
    Integer :انواع عددي صحيح شامل اعداد بدون نقطه مميز است
    نوع مقاديري كه مي پذيرند طول(بايت)
    byte 0 تا 255 1
    Shortint 128- تا 127 1
    integer 32768- تا 32767 2
    Word 0 تا 65535 2
    Longint 2147483648- تا 2147483647 4



    اعداد اعشاري:
    انواع عددي اعشاري شامل اعدادي با نقطه مميز است

    نوع مقاديري كه ميپذيرند ارقام با معني طول(بايت)

    single 1.5e-45 تا3.4e38 7 تا 8 4
    real 2.9e-39 تا 1.7e38 11 تا 12 6
    Double 5.0e-324تا 1.7e308 15 تا 16 8
    extended 1.9e-4951تا 1.1e493 19 تا 20 10

    انواع داده هاي اعشاري

    -Char :
    نوع داده كاراكتري كه با كلمه char مشخص مي شود ميتواند يك كاراكتر را در خود نگهداري كند بنابراين كاراكترها در يك بايت از حافظه كامپيوتر ذخيره مي شوند

    String - :
    اين نوع داده ها براي ذخيره رشته ها مثل اسامي افراد به كار مي رود و با كلمه كليدي string مشخص ي گردد
    براي هر رشته بايد طول معلوم كنيم اگر طولي تعريف نشود به طور پيش فرض 80 در نظر گرفته ميشود(مقدار طول حداكثر 255 است)
    - Boolean :
    نوع ديگري از داده ها در پاسكال وجود دارند كه داده هاي بولي خوانده مي شوند مقادير بولي داراي دو ارزش درستي يا نادرستي اند كه در پاسكال با صفر و يك نمايش داده مي شوند صفر به معني نادرستي و يك به معني درستي به كار ميرود اين نوع داده ها با كلمه Boolean تعريف ميشوند.
    دستورات ورودي در پاسكال:
    دستور Readlnبراي خواندن اطلاعات از ورودي به كار ميرود.
    فرمت آن به صورت مقابل است:
    (اسامي متغيرها)read/ln
    اسامي متغيرها بايد با كاما از يكديگر جدا شوند..
    براي چاپ اطلاعات در خروجي از دستور write/ln استفاده ميكنيم.
    فرمت آن به صورت مقابل است:
    ' يك پيام '
    ( متغير ) write/ln
    عبارت محاسباتي
    انتساب متغيرها:
    مقدار ثابت
    ( متغير )=: متغير
    عبارت محاسباتي

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

    Program add;
    Var
    a,b:integer;
    begin
    writeln('enter 2 num');
    readln(a,b);
    c:=a+b;
    writeln('result is =',c);
    end.


    تكليف : چرا برنامه بايد ادب داشته باشد ؟
    مثال : برنامه اي بنويسيد كه حقوق پايه وتعداد فرزندان يك كارگر را از ورودي دريافت و مبلغ حقوق وي را بر اساس فرمول زير حساب كنيد.
    10*تعداد فرزندان + حقوق پايه =حقوق كل

    Program test;
    Var
    Salary:longint;
    Child:byte;
    kole:integer
    Begin
    Writeln('enter salary and number of child);
    Readln(salary,child);
    Kole := salary + child *10
    Writeln('kole is ',kole);
    END.

    اولويت عملگرها:

    / *
    - +
    شرط:
    then شرط if
    Begin
    ____
    ____
    ____
    end
    else
    begin
    ____
    ____
    ____
    end;

    نكته : دستورالعمل قبل از IF سمي كالن نمي گيرد
    عناصر شرط:
    < > <= >= = <>
    اپراتورها :

    AND OR NOT XOR
    NOT A
    1 0
    0 1

    XOR OR AND B A
    0 1 1 1 1
    1 1 0 0 1
    1 1 0 1 0
    0 0 0 0 0


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

    Program test;
    Var
    a,b:integer;
    if a>b then
    begin
    writeln(a);
    end
    else
    writeln(b);
    end.


    مثال : برنامه اي بنويسيد كه با دريافت سه عدد به عنوان ضرايب y=ax2+bx+c معادله درجه دو را حل كند(اين برنامه را با يك If بنويسيد).

    Var
    A,b,c:integer;
    D,x1,x2:real;
    Begin
    Writeln('enter a,b,c');
    Readln(a,b,c);
    D:=b*b-4*a*c;
    If (d >=0 ) then
    Begin
    X1:=(-b+sqrt(d))/2*a);
    X1:=(-b-sqrt(d))/2*a);


    مثال : برنامه اي بنويسيد كه تعداد فرزندان وحقوق پايه و رتبه يك كارگر را از ورودي دريافت و حقوق كل وي را بر اساس فرمول زير حساب كند.
    كسريها - مزايا +بيمه = حقوق كل
    5*رتبه +1000* تعداد فرزند = مزايا
    ماليات + بيمه = كسريها

    بيشتر كمتر يا مساوي 2 تعداد فرزند
    تعداد فرزندان 1000 بيمه
    هر چيزي ديگر 20 تا 0 رتبه
    حقوق پايه حقوق پايه*100/10 ماليات


    begin
    writeln('enter salary and grade and number of child');
    readln(salary ,num,grade);
    if num<=2 then
    bimeh:=100
    else
    bimeh :=num*500;
    if (grade>=0) and (grade<=20)then
    net := 10/100*salary
    else
    if grade >20 then
    begin
    net:=20/100*salary;
    mazaya:=num*1000+grade*50;
    kasry:=bimeh+net;
    kol :=salary + mazaya-kasry;
    end;
    writeln(kol);
    end.


    تكليف : در يك تركيب شيميايي 4 عنصر شركت دارند مقدار مجاز براي تهيه ماده اي به نام asxd به اين صورت است.
    A 0 ~ 50
    S 0.5 ~ 0.83
    X 81 ~ 92 or 824 ~ 901
    D -100 ~ 100
    با دريافت مقادير a,s,x,d از ورودي به ما بگويد كه آيا مي توان اين ماده را توليد كرد يا نه ؟

    Begin
    Num:=0;
    Writeln('please enter a s x d');
    Readln(a,s,x,d);
    If (a>0) and(a<50) then
    Num:=num+1;
    If (s>0.5)and (s<0.83) then
    Num:=num+1;
    If ((x>81)and(x<92))or ((x>824)and(x<901))then
    Num:=num+1;
    If (d>-100) and (d<100) then
    Num:=num+1;
    If num=4 then
    Writeln('yes can')
    Else
    Writeln('you can not');
    End.

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

    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

    این مطالب گرفته شده از سایت مای کامپیوتر نیز میباشد و توسط مدیر بخش در این سایت گزاشته شده است
    Borna Service

  2. 7 کاربر برای این پست سودمند از fck_hamed عزیز تشکر کرده اند:


  3. Left Ad Image/Code 1 needs to be placed here, no larger than 260 pixels in height.
    Right Ad Image/Code 2 needs to be placed here, no larger than 260 pixels in height.
  4. #2

    Arrow آموزش پاسکال قسمت دوم

    مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و چنانچه عدد اول در بازه 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 : در مواردي به كار ميرود كه مقدار اوليه از مقدار نهايي بيشتر باشد

    مثال : برنامه اي بنويسيد كه توان دوم اعداد 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.

    <DIV class=txt align=justify><FONT size=2>مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و اعداد ما بين اين دو عدد را چاپ كند (a
    Borna Service

  5. 7 کاربر برای این پست سودمند از fck_hamed عزیز تشکر کرده اند:


  6. #3

    Arrow آموزش پاسکال قسمت سوم

    مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و طبق جدول زير نسبت به مقدار آن واكنش نشان دهد

    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.

    آرايه ها :
    آرايه ها به عناصري اتلاق ميشود كه با يك نام تعدادي محل از حافظه را كنترل كند براي تشخيص محلها از انديس استفاده ميشود
    انواع آرايه ها :
    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 دانش آموز تنبل ترين فرد كلاس را مشخص كند.

    <DIV class=clsCode dir=ltr align=justify><FONT size=2>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]
    Borna Service

  7. 6 کاربر برای این پست سودمند از fck_hamed عزیز تشکر کرده اند:


  8. #4

    Arrow آموزش پاسکال قسمت چهارم

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


    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(c)

    مثال : برنامه اي بنويسيد كه تعداد اسامي 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- تعداد حروف صدا دار

    ذخيره اطلاعات :
    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.

    تكليف :برنامه اي بنويسيد كه در ضمن عمل merge دو فايل مرتب شده را با يكديگر تركيب و يك فايل مرتب شده به دست آوريم
    Borna Service

  9. 8 کاربر برای این پست سودمند از fck_hamed عزیز تشکر کرده اند:


  10. #5
    کاربر فعال سایت
    تاریخ عضویت
    Sep 2006
    محل سکونت
    كرج-عظيميه
    نوشته ها
    3,381
    Thanked: 8378

    پیش فرض


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

    Link URL:
    لینک و متن درون کدها فقط برای کسانی که ثبت نام کرده اند قابل مشاهده است لطفا وارد شوید OR ثبت نام کنید.
    Link URL:
    لینک و متن درون کدها فقط برای کسانی که ثبت نام کرده اند قابل مشاهده است لطفا وارد شوید OR ثبت نام کنید.

    کد:
    لینک و متن درون کدها فقط برای کسانی که ثبت نام کرده اند قابل مشاهده است لطفا وارد شوید OR ثبت نام کنید.

    Link URL:
    لینک و متن درون کدها فقط برای کسانی که ثبت نام کرده اند قابل مشاهده است لطفا وارد شوید OR ثبت نام کنید.
    Link URL:
    لینک و متن درون کدها فقط برای کسانی که ثبت نام کرده اند قابل مشاهده است لطفا وارد شوید OR ثبت نام کنید.

  11. 3 کاربر برای این پست سودمند از arash663 عزیز تشکر کرده اند:


  12. #6

    پیش فرض کمک در مورد پروژه پاسکال !

    کمک در مورد پروژه پاسکال !






    لطفا کمک کنین

  13. یک کاربر برای این پست سودمند از vahalove عزیز تشکر کرده اند:


  14. #7

    Question فوتبال پاسکال

    سلام
    ما تو مدرسمون پاسکال آموزش میدن و من خیلی چیزاشو بلدم.ولی تو مدرسه یه کلاس فوتبال به زبون پاسکال رفتم و تیم خیلی خوبی هم نوشته بودیم ولی دروازه بانم خیلی داغون بود و هر شعاعی رو بهش میدادم که دنبال توپ بره نمیرفت و وقتی توپ رو خط دروازه بود تازه می فهمید توپ اومده.می خواستم ببینم شما بلدید که دروازه بانو چجوری درست کنم؟

  15. #8

    پیش فرض

    کمی جزییات را بیشتر توضیح دهید. یک دروازه بان از یک رکورد تشکیل شده یا یک کلاس؟ عناصر آن رکورد یا کلاس چه شکلی هستند؟

  16. #9

    پیش فرض

    vahalove:
    ساده ترین راه این است که 13 حلقه تکرار پشت سرهم بنویسید.

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

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

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

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

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

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

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

دوستان ما
لینک های مفید
ابزار ها
session بارگذاری مجدد کد امنیتی مندرج در تصویر را وارد کنید: