close
تبلیغات در اینترنت
آموزش پاسکال بخش پنجم : آموزش کارکردن با آرایه ها در Pascal
مرورگرهای پیشنهادی :
موضوعات
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی فناوری اطلاعات
  • مهندسی کامپیوتر
  • مهندسی مکانیک
  • مهندسی عمران
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پایان نامه و مقاله علوم انسانی
  • حقوق
  • اقتصاد
  • مدیریت
  • جغرافیا
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • احکام و معارف اسلامی
  • روانشناسی و علوم تربیتی
  • گرافیک
  • هنر
  • بیمه
  • تاریخ
  • موسیقی
  • صنایع دستی
  • پایان نامه و مقاله پزشکی
  • علوم آزمایشگاهی
  • بهداشت عمومی
  • طب هسته ای
  • چشم پزشکی
  • جنین شناسی
  • روان پزشکی
  • دندانپزشکی
  • پیراپزشکی
  • دامپزشکی
  • طب سنتی
  • داروسازی
  • پرستاری
  • پزشکی
  • مامایی
  • آناتومی
  • ژنتیک
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • فیزیک
  • پاورپوینت و اسلاید فنی مهندسی
  • پاورپوینت معماری
  • پاورپوینت کامپیوتر و IT
  • نمونه سوالات استخدامی
  • نمونه سوالات استخدامی بانک
  • نمونه سوالات استخدامی آموزش و پرورش
  • نمونه سوالات استخدامی شهرداری
  • نمونه سوالات استخدامی تامین اجتماعی
  • نمونه سوالات استخدامی دستگاه اجرایی
  • نمونه سوالات استخدامی فنی و حرفه ای
  • نمونه سوالات استخدامی وزارت خانه ها
  • نمونه سوالات استخدامی نظامی
  • سایر نمونه سوالات استخدامی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات مهندسی عمران
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات مهندسی کامپیوتر و IT
  • جزوات رشته زمین شناسی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • جزوات حقوق
  • گزارش کارآموزی فنی مهندسی
  • مهندسی کامپیوتر (سخت افزار - نرم افزار)
  • مهندسی مکانیک
  • مهندسی برق
  • مهندسی شیمی
  • مهندسی فناوری اطلاعات
  • صنایع غذایی
  • حسابداری
  • مدیریت
  • مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • بررسی رابطه تيپ های شخصيتی دبيران دبيرستانهای دخترانه با میزان موفقیت (پنجشنبه 13 اردیبهشت 1397)
  • بررسی پيش تجربی سياهه مشاوره ای لوئيس سوال هاي شماره 3 تا 45 (از مقياس اطمينان اجتماعی) (پنجشنبه 13 اردیبهشت 1397)
  • بررسی مقدماتی شخصيتی كرنل براي سوال 36 و 37 بر روي دانشجويان دانشگاه آزاد اسلامي (پنجشنبه 13 اردیبهشت 1397)
  • مقايسه مشكلات زبان عادی ويژه (چهارشنبه 12 اردیبهشت 1397)
  • مقایسه ویژگی های شخصیتی شخصیت ضد اجتماعی و انحرافات اجتماعی در بین دانشجویان دختر و پسر (جمعه 07 اردیبهشت 1397)
  • بررسی رابطة تك فرزندی با اختلالات رفتاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی توصيفی موسيقی و موسيقی درمانی بر روی انسان ها (چهارشنبه 05 اردیبهشت 1397)
  • بررسی تأثير ناكامی در ميزان پرخاشگری بين دانش آموزان دختر و پسر مقطع ابتدايی (چهارشنبه 05 اردیبهشت 1397)
  • بررسی ميزان تأثير اردوهای تربيتی ـ آموزشی بر رشد شخصيت دانش آموزان (چهارشنبه 05 اردیبهشت 1397)
  • نياز سنجی كاركنان اطلاعات (چهارشنبه 05 اردیبهشت 1397)
  • مقايسه هوش هيجانی و جرأت ورزی در دانش‌آموزان دختر و پسر نابينا و عادی (چهارشنبه 05 اردیبهشت 1397)
  • مقایسه میزان هیجان خواهی دانشجویان متأهل و مجرد (چهارشنبه 05 اردیبهشت 1397)
  • مددکاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی علل گرايش جوانان و نوجوانان به قرص های روان گردان (چهارشنبه 05 اردیبهشت 1397)
  • شناسايی نيازهای آموزشی و ترويجی توتون کاران (چهارشنبه 05 اردیبهشت 1397)
  • آرایه:

    آرایه یک نوع ساختمان داده است که تعدادی داده هم نوع در آن ذخیره می شوند. با استفاده از آرایه می توانیم برای مجموعه ای از داده ها ، نام یک متغیر ( مثلا 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 declarati}

    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 ) ;

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

    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 ) ;
    {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 and average’ ) ;
    WriteLn ( ‘I’ :4 , ‘X ’ :8 , ‘Difference’ : 14 ) ;
    For I := 1 to MaxItems do
    WritLn ( I :4, X :8:1, X _ 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 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

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

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

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

    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 = B) do
    {invariant :
    1 <=
    I <= MaxSize and
    A = B for all prior values of I
    }
    I := I + 1 ; { Advance to next pair }
    SamArray := (A ) = B ) { Define result }
    End ; { SameArray }

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

    Procedure SelectSort (var Scores {input / output} : ScoreArray ;
    ClassLength { input }: Intege ) ;
    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 .

    کاراکتر های یک رشته درست مثل هر متغیر از نوع 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 }

     

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

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

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

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

    دستیابی تصادفی

    دستیابی ترتیبی

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

    دستیابی تصادفی

    دستیابی سطر یه سطر

    دستیابی ستون به ستون

     

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

    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:
    برنامه ای بنویسید که نمره ریاضی تعدادی از دانشجو را در آرایه ای ذخیره کند.سپس بیشترین و کمترین نمره و محل آن را در آرایه چاپ کند؟

    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 ) ;
    Max:= a[0] ; min:= a[0] ;
    Locmax:=1 ; locmin:=1 ;
    For i:=2 to n do
    Begin
    If ( a >max ) then
    Begin
    Max:=a ; locmax:=I ;
    End ;
    If a
    Begin
    Min:=a ; 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 ) ;
    For j:=1 to n-1 do
    For i:=1 to n-j do
    If a >a[i+1] then
    Begin
    Temp:=a ;
    A :=a[i+1] ;
    A[i+1]:=temp ;
    End ;
    Writeln ( 'sorted numbers:’ ) ;
    For i:= 1 to n do
    Writeln ( 'a[',I,']=',a ) ;
    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 ) ;
    For j:=1 to n-1 do
    Begin
    Min:=x ; index:=I ;
    For j:=i+1 to n do
    If x[j]
    Begin
    Min:=x[j] ;
    Index:=j ;
    End ;
    X[index]:=x ;
    X :=min ;
    End ;
    Writeln ( 'sorted numbers:’ ) ;
    For i:= 1 to n do
    Writeln ( 'a[',I,']=',a ) ;
    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عمل مقایسه می توانیم کلید را پیدا کنیم.



    کسب درآمد با فروش فایل های سایت ما

    درباره :
    برچسب ها :آموزش پاسکال بخش پنجم : آموزش کارکردن با آرایه ها در Pascal ,
    بازدید : 1607 تاریخ : نویسنده : بهرام محمدپور | نظرات ()
    ارسال نظر برای این مطلب

    نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
    آمار سایت
  • آمار مطالب
  • کل مطالب : 4311
  • کل نظرات : 17
  • آمار کاربران
  • افراد آنلاین : 4
  • آمار بازدید
  • بازدید امروز : 12,289
  • باردید دیروز : 23,407
  • گوگل امروز : 28
  • گوگل دیروز : 46
  • بازدید هفته : 12,289
  • بازدید ماه : 151,099
  • بازدید سال : 839,019
  • بازدید کلی : 6,692,745
  • نظرسنجی
    چه مطالبی در سایت قرار دهیم؟





    کدهای اختصاصی