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

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

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

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

  1. #21
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    دستور فراخوانی :
    ComputerSumAve( x , y , total , Mean )
    قواعد تناظر لیست پارامتر ها:

    • تناظر میان پارامتر های واقعی و صوری از روی موقعیت آنها در لیست پارامتر ها تعیین می شود.این لیستها باید هم اندازه باشند ولی اسامی پارامتر ها ی واقعی و صوری متناظر می توانند با هم متفاوت باشند.
    • در مورد پارامتر های متغیر ، نوع پارامتر های واقعی و صوری باید با یک دیگر یکسان باشند.در مورد پارامترهای مقدار ، نوع داده پارامتر واقعی باید با نوع پارامتر صوری متناظرش سازگار باشد.
    • در مورد پارامتر های متغیر ، پارامتر های واقعی باید یک متغیر باشد ولی برای پارامتر های مقدار یک پارامتر واقعی می تواند ، متغیر ، ثابت یا یک عبارت باشد.

    زیر برنامه ها:

    1.پروسی جر((Procedure:

    یک نوع از زیر برنامه ها در پاسکال پروسی جر است که بصورت پردازه، رویه ، روال و غیره نیز ترجمه شده است.
    فرم کلی پرو سی جر بصورت زیر است:
    ;(پارامتر های پروسی جر)نام پروسی جرP rocedure
    [ type
    Const
    Var
    Label ]
    Begin

    دستورات پروسی جر

    End;

    با یک مثال نحوه صدا زدن رویه ها را شرح می دهیم.
    مثال:برنامه ای با پروسی جر بنویسد که طول و عرض مستطیلی را گرفته و محیط آن را حساب کند؟
    Program environment;
    Uses wincrt ;
    Procedure rectangle ( a,b:integer;var k:integer ) ;
    Begin
    K:=2*( a+b ) ;
    End;
    Var
    X,y,p:integer ;
    Begin
    Readln( x,y ) ;
    Rectangle( x,y,p ) ;
    Writeln( p ) ;
    End.

    تعریف رویه با کلمه کلیدی procedure آغاز می شود بعد از آن یک نام اختیاری که این نام از قواعد نامگذاری متغییرها پیروی می کند آورده می شود. پارامتر های رویه در درون پرانتز ها نوشته می شوند. در رویه بین آرگومان ها سمی کالن(; ) قرار می گیرد ولی هنگام صدا زدن بین آرگو مان ها کاما (, )قرار می گیرد.
    رویه میتواند هیچ، یک یا چند خروجی داشته باشد.
    نکته:هنگام صدا زدن رویه نمی توان از عبارات محاسباتی، عبارات مقایسه ای، دستور write و یا مقدار دهی به کار برد.
    P:=rectangle( x,y,p ) ;
    Write( rectangle(x,y,p ) ) ;
    .......If rectangle( x,y,p ) >20 then
    P:= rectangle(x,y,p )* 2+6 ;
    همه عبارات بالا دارای خطای کامپایلری است.

    اعلان forward:
    در حالت معمولی قبل از صدا زدن یک زیر برنام،آن روال باید در قسمت بالاتر تعریف شود.اگر در یک برنامه یک زیر برنامه قبل از تعریف شدنش صدا زده شود می بایست از کلمه کلیدی forwad استفاده شود تا خطا گرفته نشود.
    Procedure add1( i:integer );forward ;
    Procedure add2( m:integer ) ;
    Begin
    Add1( m ) ;
    End ;
    Procedure add1 ;
    Begin
    Writeln( i+10 ) ;
    End ;
    Begin
    Add2( 7 ) ;
    End.

    2.تابع((Function :

    توابع مانند رویه ها ، پیمانه های مستقلی هستند . با این تفاوت که رویه ها می توانند هر تعداد خروجی داشته باشند در حالی که توابع فقط یک خروجی دارد. با نوشتن اسم تابع در یک عبارت می توان یک تابع از پیش تعریف شده را فراخوانی کرد.
    توابع استاندارد:
    نوع داده خروجی آرگومان تابع
    با نوع آرگومان یکسان است real یا integer Abs (x)
    Real real یا integer Arctan(x)
    Real real یا integer Cos(x)
    Real real یا integer Exp(x)
    Real real یا integer Ln(x)
    integer real Round(x)
    با نوع آرگومان یکسان است real یا integer Sin(x)
    Real real یا integer Sqr(x)
    Real real یا integer Sqrt(x)
    integer real Trunc(x)
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  2. #22
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    توابع تعریف شده توسط کاربر:

    برای تعریف توابع خاص خودمان ، تعریف تابع را بنویسید و آن را در قسمت تعریف برنامه فراخوان قرار دهید. تابع، خروجی خود را توسط پارامترهایش ارائه نمی کند.

    1) عنوان تابع با کلمه رزرو شده Function بجای Procedure شروع می شود:
    ;نوع خروجیپارامتر های ورودی)نام تابعFunction
    2) تمام پارامترهای تابع باید از نوع پارامتر مقدار باشند.

    3) نوع داده نتیجه تابع در انتهای عنوان تابع و بعد از لیست پارامترهای صوری قرار می گیرد.

    4) در بدنه تابع، خروجی تابع با نسبت دادن مقدار به نام تابع مشخص می شود.
    آخرین داده ای که به نام تابع نسبت داده می شود به عنوان نتیجه تابع
    بر می گردد.
    نحوه نوشتن تابع:

    ;نوع خروجی تابع: (پارامتر های تابع)نام تابع function
    [ type
    Const
    Var
    Label ]
    Begin

    دستورات تابع

    End ;

    فراخوانی تابع:
    ;(Z : = Exponent ( X , Y

    توابع بازگشتی:

    توابع بازگشتی دارای دو ویژگی اصلی می باشند:
    1.خودش را صدا می زند.
    2.یک شر برای اتمام فراخوانی ها وجود دارد.

    نکته: در پاسکال هم توابع و هم رویه ها را می توان بصورت بازگشتی تعریف نمود.

    مثال:برنامه ای بنویسد که یک عدد را از ورودی دریافت کرده و به کمک تابع بازگشتی و غیر بازگشتی فاکتوریل آن را حساب کند؟
    Program factorial ;
    Uses wincrt ;
    Var x:integer ;
    Function fact1 ( n:integer ):integer ;
    Var I,f:integer ;
    Begin
    F:=1 ;
    For i:=1 to n do
    F:=f*I ;
    Fact1:=f ;
    End;
    Function fact2( n:integer ):integer ;
    Begin
    If n<=1 then
    Fact2:=1
    Else
    =n*fact2( n-1) ;:Fact2
    End;
    Begin
    Readln( x ) ;
    Writeln( fact1(x) ) ;
    Writeln( fact2(x) ) ;
    End .

    مثال:تابع بازگشتی بنویسد که a*b را محاسبه کند؟
    a+a*(b-1) if b>1
    a if b=1
    Function multiply( a,b:integer ):integer ;
    Begin
    If b=1 then
    Multiply:=a
    Else
    Multiply:=a+multiply( a,(b-1) ) ;
    End ;

    مثال:در برنامه زیر خروجی f(3,6) چند است؟
    Function f( m,n:integer ):integer ;
    Begin
    If (m=1) or(n=0) or(m=n) then
    F:=1
    Else
    F:=f(m-1,n)+f( m-1,n-1 )
    End;
    خروجی این تابع برابر 4 است.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  3. #23
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    این هم یک مثال جالب:
    برنامه ای بنویسید که رشته ای را به یک تابع فرستاده و معکوس رشته را توسط نام تابع برگرداند.همچنین به کمک پرامتر مرجع حروف کوچک رشته ورودی را تبدیل به حروف بزرگ کرده و رشته معادل را برگرداند؟
    Program reverse ;
    Uses wincrt ;
    Var s,p,t:string ;
    Function fstr( s:string;var p:string ):string ;
    Var I,len:byte; c:char; t:string ;
    Begin
    Len:=ord( s[0] ) ;
    For i:=1 to len do
    Begin
    If (s[i]>='a')and(s[i]<='z') then
    P[i]:=char(ord( s[i])-32 ) )
    Else
    P[i]:=s[i] ;
    T[i]:=s[len-i+1] ;
    End;{if}
    T[0]:=s[0] ;
    P[0]:=s[0] ;
    Fstr:=t ;
    End ;
    Begin
    Readln(s) ;
    T:=fstr( s,p ) ;
    Writeln( s,' ',p,' ',t ) ;
    End.
    زیر برنامه های استاندارد رشته ای:

    1.تابع concat:

    این تابع برای الحاق رشته ها استفاده می شود.
    خروجی Concat( 'ali','reza' ) ; ---àalireza

    2.پردازه str:

    با این پردازه می توان عددی(صحیح یا اعشاری )را به رشته معادل تبدیل کرد. Str( n:integer;var s:string ) ;
    Str( n:real;var s:string ) ;
    مثال:
    Begin
    R:=13 ;
    Str(r,a) ;
    A:=a+'ali' ;
    خروجی Writeln(a ) ; -à 13ali
    End.
    3.پردازه val:

    با این پردازه برعکس str ارزش عددی یک رشته حاوی ارقام بدست می آید.
    Val( s:string;var x:integer ) ;
    Val( s:string;var x:real ) ;
    4.تابع pos:

    با این تابع می توان دریافت یک حرف یا یک رشته در چه مکانی از رشته دیگر است.
    Poc( sub,s:string ):byte ;

    3 <---- Writeln( pos('jid','majid') ) ;
    5.تابع copy:

    برای بدست آوردن قسمتی از یک رشته از تابع copy استفاده می شود.

    Copy( s:string;start,len:integer ):string ;

    Writeln( copy('alireza';4,3) ) ; ---à rez
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  4. #24
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    6.تابع upcase:

    این تابع یک کاراکتر را از ورودی گرفته و آن را تبدیل به حرف بزرگ می کند.
    Upcase (c:char ):char ;

    Writeln( upcase('a') ) ;---àA
    7.پردازه insert:

    این پردازه برای درج رشته ای در داخل رشته دیگر استفاده می شود:
    Insert( s1:string;s2:string;index:integer ) ;

    S:='hello reza' ;
    Insert( 'ali',s,7 ) ;
    Writeln( s ) ;
    خروجی hello alireza:

    Index شماره مکان درج در رشته s2 را مشخص می کند.

    8.پردازه delete:

    با این پردازه می توان بخشی از یک رشته را حذف کرد.
    Delete( var s:string;start,len:integer ) ;
    پارامتر len تعداد کاراکتر حذف شده از رشته s و پارامتر start موقعیت حذف را تعیین می کند.
    S:='alireza' ;
    Delete( s,4,3 ) ; ----àalia


    حال یک سری نکات مهم را بیان می کنیم:
    نکته 1:هنگام تعریف توابع بین پارامترهای (; ) قرار می گیرد ولی هنگام صدا زدن تابع بین آرگومان ها (, ) قرار می گیرد.

    2.تابع ممکن است ورودی نداشته باشد بنابراین از گذاشتن پرانتز باید خودداری کرد. Function example:integer ;

    3.نوع برگشتی تابع می تواند از نوع های ساده( real,integer,char ... ) ،رشته و شمارشی باشد. ولی از نوع آرایه،مجموعه وفایل نمی توانند باشد.

    4.درون عبارات محاسباتی،دستور write و مقایسه ای می توان آن را صدا زد.

    5.رویه ممکن است ورودی و خروجی نداشته باشد در این صورت از پرانتز نباید استفاده کرد.procedure example ;
    6.دستورات readln و writeln در واقع رویه های از پیش تعریف شده اند.

    7. دستورات INC و DEC در واقع رویه های از پیش تعریف شده،با فرم کلی زیر می باشند:
    Procedure inc( var x[;n:logint] ) ;
    Procedure dec( var x[;n:logint] ) ;

    8. دستورات halt و exit در واقع رویه های از پیش تعریف شده،با فرم کلی زیر می باشند:
    :word) ] ; کد خروجیProcedure halt[ (
    Procedure exit ;
    9.تعداد آرگو مان های فرستاده شده به تابع یا رویه باید برابر باشد، همچنین نوع آرگو مان های متناظر نیز باید یکسان باشد.

    10.نام پارامترها کاملا اختیاری است و می تواند همنام آرگو مان ها باشد.

    11.درون یک زیر برنامه نمی توان متغیری محلی همنام با پارامتر ها تعریف کرد.در این حالت خطای کامپایلری رخ می دهد.

    12.ترکیب const و var غیر مجاز بوده و خطا دارد.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  5. #25
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    حوزه عمل شناسه ها:

    در یک برنامه پاسکال ، هر شناسه ، دامنه ای دارد که حوزه عمل آن شناسه نامیده می شود.منظور از دامنه شناسه ، بخشی از برنامه است که شناسه در آن تعریف می شود.یک شناسه تنها توسط دستوری که در حوزه عملش قرار دارد می تواند مورد مراجعه و بازیابی قرار گیرد. شناسه ممکن است محلی یا سراسری باشد.


    قانون شماره 1 حوزه عمل : حوزه های محلی یا سراسری

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

    آرایه:

    آرایه یک نوع ساختمان داده است که تعدادی داده هم نوع در آن ذخیره می شوند. با استفاده از آرایه می توانیم برای مجموعه ای از داده ها ، نام یک متغیر ( مثلا Scores ) را بکار بریم. علاوه بر این می توانیم به تک تک عناصر موجود در آرایه مراجعه کنیم.
    در پاسکال یک آرایه در محل های پشت سر هم از حافظه اصلی ذخیره می شود. هر عنصر آرایه در یک سلول از حافظه قرار می گیرد. بعضی از اعمال نظیر ارسال کردن آرایه به عنوان پارامتر به یک رویه را می توان انجام داد. همچنین می توان داده های ذخیره شده در آرایه را بازیابی کرده و مثل متغیر های ساده ، آنها را مورد پردازش قرار داد.

    تعریف نوع آرایه ها:

    شکل استفاده:


    Type
    Array type = array [ subscript type] of element type ;


    مثال:


    Type
    SmallArray = array [1. . 5] of char ;

    85 67 33 95 88



    اندیس های آرایه:
    برای پردازش داده های ذخیره شده در یک آرایه، باید بتوانیم عناصر آن را بازیابی کنیم. برای انجام چنین کاری باید نام آرایه را همراه با یک اندیس ( که گاهی اوقات شاخص نامیده می شود) به کار بریم. اندیس آرایه که میان یک جفت کروشه قرار می گیرد، عنصر خاصی از آرایه را برای پردازش انتخاب می کند.

    مثال:

    اگر متغیر X از نوع RealArray باشد :
    Type
    RealArray = array [1 . . 8] of Real ; { array type declaration }

    Var
    X : RealArray ; { Allocate storage for array X . }


    برای مراجعه به اولین عضو آرایه ، از X[1] (بصورت X اندیس 1 خوانده شود)، برای مراجعه به دومین عنصر از از X[2] و برای مراجعه به هشتمین عنصر از X[8] استفاده می کنیم.

    خواندن و نمایش دادن یک آرایه:

    داده ها باید بصورت عنصر در داخل آرایه قرار گیرند و در موقع نمایش دادن نیز باید آنها را بصورت عنصر به عنصر چاپ کرد. با توجه به تعاریف :
    Const
    Maxitems = 8 ;
    Type
    IndexRange = 1 . . MaxItems ;
    RealArray = array [ IndexRange ] of Real ;
    Var
    X : RealArray ; { array of data }
    I : IndexRange ; { loop-control variable }


    For I : = 1 to MaxItems do
    Read ( X[I] ) ;
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  6. #26
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    مثال:برنامه جدولی از تفاضل ها

    Program table;
    Uses wincrt;
    Const
    MaxItems = 8 ; { number of data items }
    Type
    IndexRange = 1 . . MaxItems ;
    RwalArray = array [IndexRange] of Real ;
    Var
    X : RealArray ; { array of data }
    I : IndexRange ; { loop-control variable }
    Average , { average value of data }
    Sum : Real ; { sum of the data }
    Begin { ShowDiff }
    { Enter the data . }
    Write ( ‘Enter’ , MaxItems : 1, ‘ numbers> ‘ ) ;
    For I : =1 to MaxItems do
    Read ( X[I] ) ;
    { Compute the average value . }
    Sum : = 0.0 ;
    For I := 1 to MaxItems do
    Sum := Sum + X[1]; { Add each element to sum. }
    Average := Sum / MaxItems ; { Get average value . }
    Writeln ( ‘The average value is ‘ , Average : 3 : 1 ) ; Writeln ;
    { Display the difference between each item and the average . }
    WriteLn ( ‘ Table of difference between X[I] and average’ ) ;
    WriteLn ( ‘I’ :4 , ‘X[I]’ :8 , ‘Difference’ : 14 ) ;
    For I := 1 to MaxItems do
    WritLn ( I :4, X[I] :8:1, X[I] _ Average :14:1 )
    End . { ShowDiff }

    اجرای برنامه جدولی از تفاضل ها:
    Enter 8 numbers > 16.0 12.0 6.0 8.0 2.5 12.0 14.0 -54.5
    The average value is 2.0
    Table
    I X[I] Difference
    1 16.0 14.0
    2 12.0 10.0
    3 6.0 4.0
    4 8.0 6.0
    5 2.5 0.5
    6 12.0 10.0
    7 14.0 12.0
    8 -54.5 -56.5

    پارامترهای آرایه مقدار یا متغیر:

    وقتی آرایه ای بصورت یک پارامتر متغیر به رویه ارسال می شود، پاسگال آدرس اولین عنصر آرایه واقعی را به ناحیه داده های رویه ارسال می کند. از آنجا که عناصر آرایه در سلول های مجاور هم از حافظه ذخیره می شوند، می توان به کل داده های آرایه دستیابی داشت.
    رویه مستقیما با آرایه واقعی کار می کند.وقتی آرایه ای بصورت یک پارامتر مقدار به رویه ارسال می شود، هنگام فراخوانی رویه، یک نسخه محلی از آرایه ایجاد می شود. بنابراین آرایه محلی طوری مقدار می گیرد که حاوی همان مقادیری باشد که در ارایه واقعی وجود دارند. رویه با آرایه محلی کار می کند و تغییراتی که در محتویات آرایه محلی اعمال می شود، روی آرایه واقعی تاثیر نمی گذارد.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  7. #27
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    مقایسه دو آرایه:

    Function SameArray (A , B : TestArray ) : Boolean ;
    Var
    I : Integer ; { array subscript }
    Begin
    I := 1 ; { Start with first pair . }
    { Test corresponding elements of arrays A and B . }
    while (I < MaxSize) and (A[I] = B[I]) do
    { invariant :
    1 <= I <= MaxSize and
    A[I] = B[I] for all prior values of I
    }
    I := I + 1 ; { Advance to next pair . }
    SamArray := (A[I]) = B[I]) { Define result . }
    End ; { SameArray }

    رویه برای مرتب کردن عناصر آرایه:
    Procedure SelectSort (var Scores {input / output} : ScoreArray ;
    ClassLength { input } : Integer) ;
    Ver
    Fill , { index of element to contaion next smallest score }
    IndexofMin: Integer ;
    Begin {SelectSort}
    For fill := 1 to ClassLength-1 do
    Begin
    IndexOfMin := FindMin( Scores, Fill, ClassLength ) ;
    { Exchange elements at Fill and IndexofMin . }
    if IndexOfMin <> Fill then
    Switch ( Scores[IndexOfMin], Scores[Fill] )
    End { for Fill }
    End ; { SelectSort }

    آرایه فشرده:
    استفاده از یک آرایه فشرده شده برای یک رشته به پاسکال این امکان را می دهد که در هر سلول حافظه کامپیوتر بیش از یک کاراکتر ذخیره شود. علاوه بر این استفاده از آرایه های فشرده شده باعث می شود که اعمال روی آرایه های فشرده شده برای پردازش رشته به سادگی انجام شود.

    تعریف آرایه های فشرده:
    شکل استفاده :
    type string type = packed array [1 . . size] of char ;


    مثال:

    type string10 = packed array [1 . . 10] of char ;

    تذکر :
    نوع اندیس برای string type باید از1 شروع شود.

    تذکر:
    هنگام نمایش یک متغیر رشته ای ، می توان از یک قالب مشخص استفاده کرد.
    دستورات :
    Write ( ‘Hello’ , FirstName :4 ) ;
    writeLn ( ‘ ! Good to see you .’ )
    Hello A.C. ! Good to see you .
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  8. #28
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    کاراکتر های یک رشته درست مثل هر متغیر از نوع char می توانند مورد استفاده قرار گیرند.

    مثال 1 :
    در صورتی که FirstName حاوی رشته ‘A.C. Jones’ باشد،
    دستورات
    FirstName [1] := ‘D’ ;
    FirstName [6] := ‘B ;’

    محتویاتFirstName را به ‘D.C. Bones’ تغییر می دهند.

    تذکر:
    یک عنصر رشته ای برای یک پارامتر متغیر از نوع Char نمی تواند ارسال شود. ولی یک کاراکتر مستقیما می تواند به عنوان عنصری ازیک متغیر رشته ای خوانده شود.

    دستور :
    Read ( FirstName [1] )

    اولین کاراکتر موجود در رشته FirstName را با کاراکتر داده خوانده شده جایگزین می کند.

    مثال :
    برنامه نوشتن نامه فرم :

    Const
    StringLength = 40
    Type
    StringType = packed array [1 . . StringLength] of Char ;
    Var
    BodyFile , { input – body of letter }
    Letter : Text ; { output – completed letter file }
    begin { FormLetter }
    Reset ( BodyFile ) ;
    Rewrite ( Letter ) ;
    WriteLn (Output , ‘writing job application letter .’ ) ;
    Preamble ( Letter ) ;
    WriteBody ( BodyFile, Letter ) ;
    WriteLn ( Output, ‘Letter copied to output file .’ )
    End . { FormLetter }

    آرایه های دو بعدی:
    آرایه های دو بعدی متداول ترین آرایه های چند بعدی هستند که معمولا اطلاعات را به شکل جدول ذخیره می کنند. مثلا نقشه صندلی های یک کلاس، آرایه دو بعدی است که در هر محل ان ردیف و شماره صندلی یک دانشجو قرار می گیرد.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  9. #29
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    آرایه های چند بعدی:
    شکل استفاده :

    Type
    Multidim = array [ subscript1 , subscript2 , . . . , subscriptn ]
    Of element type ;
    Type
    Multidim = array [subscrip1] of array [ subscript2 ] . . .
    Of array [subscript n] of element type ;

    پردازش آرایه ها:

    دو روش برای دستیابی به عناصر یک آرایه یک بعدی داریم:

    1.دستیابی تصادفی
    2.دستیابی ترتیبی

    برای هر یک از آرایه دو بعدی یا یک جدول، سه روش دستیابی داریم:

    1.دستیابی تصادفی
    2.دستیابی سطر یه سطر
    3.دستیابی ستون به ستون

    روش دستیابی سطر به سطر یک آرایه:

    For row_subscript . . . do . } { Specify the row

    For column_subscript . } . . . do { Access each column of row

    Process Table { row_subscript , column_subscript }

    روش دستیابی ستون به ستون یک آرایه:

    For column_subscript . . . do [Specify the column]

    .] For row_subscript . . . Do [Access each row of column

    Process Table [ row_subscript , column_subscrip]

    مقدار اولیه دادن به یک آرایه:
    رویه، Initialize به هر عضو از پارامتر آرایه خود یعنی Sales مقدار اولیه Invalue را می دهد. این رویه به عناصر آرایه به روش سطر به سطر دستیابی می کند.

    Procedure Initialize (var Sales { output } : SalesArray ;
    InValue { input } : Real ; )
    var
    NextPerson : Pepole ; { Row subscript }
    NextQuarter : Quarter ; { Column subscript }
    Begin { Initialize }
    For NextPerson : = 1 to NumberSalesPeopel do
    For NextQuarter := Fall to Summer do
    Sales[NextPerson, NextQuarter] := InValue
    End ; { Initialize }
    آرایه سه بعدی:

    پاسکال تعداد ابعاد ممکن برای یک آرایه را محدود نمی کند، ولی بیشتر آرایه های با ابعاد دو و سه متداولتر هستند.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  10. #30
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

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

    حال چند مثال جالب را حل می کنیم:

    مثال1:
    برنامه ای بنویسید که نمره ریاضی تعدادی از دانشجو را در آرایه ای ذخیره کند.سپس بیشترین و کمترین نمره و محل آن را در آرایه چاپ کند؟

    Progam min_max ;
    Uses wincrt ;
    Var a:array [1..100] of real ;
    Max,min:real ;
    I, locmax,locmin,n:integer ;
    Begin
    Write ( 'please enter number of students:' ) ;
    Readln ( n ) ;
    For i:= 1 to n do
    Readln ( a[i] ) ;
    Max:= a[0] ; min:= a[0] ;
    Locmax:=1 ; locmin:=1 ;
    For i:=2 to n do
    Begin
    If ( a[i]>max ) then
    Begin
    Max:=a[i] ; locmax:=I ;
    End ;
    If a[i]
    Begin
    Min:=a[i] ; locmin:=I ;
    End ;
    End ;
    Writeln ( 'max=',max,'position=' , locmax ) ;
    Writeln ( 'min=',min,'position=' , locmin ) ;
    End .

    مثال2: هشت عدد را خوانده و در آرایه ای ذخیره کنید.سپس به روش حبابی آن را به صورت صعودی مرتب کرده و چاپ کنید؟
    Program bubble_sort ;
    Uses wincrt ;
    Const n:=8 ;
    Var
    A:array [1..n] of integer ;
    I,j,temp:integer ;
    Begin
    Write ( 'please enter 8 integer numbers:' ) ;
    For i:=1 to n do
    Readln ( a[i] ) ;
    For j:=1 to n-1 do
    For i:=1 to n-j do
    If a[i]>a[i+1] then
    Begin
    Temp:=a[i] ;
    A[i]:=a[i+1] ;
    A[i+1]:=temp ;
    End ;
    Writeln ( 'sorted numbers:' ) ;
    For i:= 1 to n do
    Writeln ( 'a[',I,']=',a[i] ) ;
    End .
    مثال3: هشت عدد را خوانده و در آرایه ای ذخیره کنید.سپس به روش انتخابی آن را به صورت صعودی مرتب کرده و چاپ کنید؟
    Program selection_sort ;
    Uses wincrt ;
    Const n:=8 ;
    Var
    x:array [1..n] of integer ;
    I,j,min,index :integer ;
    Begin
    Write ( 'please enter 8 integer numbers:' ) ;
    For i:=1 to n do
    Readln ( a[i] ) ;
    For j:=1 to n-1 do
    Begin
    Min:=x[i] ; index:=I ;
    For j:=i+1 to n do
    If x[j]
    Begin
    Min:=x[j] ;
    Index:=j ;
    End ;
    X[index]:=x[i] ;
    X[i]:=min ;
    End;
    Writeln ( 'sorted numbers:' ) ;
    For i:= 1 to n do
    Writeln ( 'a[',I,']=',a[i] ) ;
    End .

    مثال 4 :فرض کنید آرایه x با n خانه از قبل مرتب باشد. متغیر k حاوی کلیدی است که می خواهیم دنبال آن بگردیم. متغیر های low,high,mid از نوع صحیح می باشند. تکه برنامه زیر آرایه x را جهت یافتن k جستجو می کند . (جستجوی دودویی)
    Low:=1 ; high:=n ;
    While low<=high do
    Begin
    Mid:=( low+high ) div 2 ;
    If k
    High:=mid-1
    Else
    If k>x[mid] then
    Low:=mid+1
    Else
    Begin
    Write( 'the number',k,'exist in array ' ) ;
    Halt ;
    End ;
    End ;
    Write( 'the number',k,'not exist in array ' ) ;

    نکته:در روش ججستجوی دودویی ، در بدترین حالت با [ logn ]+1عمل مقایسه می توانیم کلید را پیدا کنیم.
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

صفحه 3 از 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

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

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

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