تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86

Slides:



Advertisements
Similar presentations
Awe sim.
Advertisements

زبان برنامه نویسی پرولوگ
مهدی آذرنوش مبحث ششم : آرایه ها و رشته ها حسابگری الگوریتمی.
معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
الگوریتم ژنتیکی. تعریف  الگوریتم ژنتیکی، رویه ای تکراری است که راه حل های انتخابیش را بصورت رشته ای از ژنها که کروموزوم نامیده می شوند، بازنمایی می کند.
Decision Tree.
مثال های کاربردی (1) محاسبه سطوح دايره ای شکل –آبياری بارانی –سم پاشها تعريف مسئله: تهيه برنامه ای که بر اساس يک شعاع مفروض ورودی سطح دايره متناظر را محاسبه.
1 برنامه سازی با C# برنامه منو Instructor : Saeed Shiry.
مراحل مختلف اجرای يک برنامه
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
PHP Hypertext per processor کار می کند؟ PHP چگونه
Microsoft Office Objectives Introducing Version history Look at the Excel window Data types Formulas Ribbon Functions Case study.
1 Network Address Translation (NAT). 2 Private Network شبکه خصوصی شبکه ای است که بطور مستقیم به اینترنت متصل نیست در یک شبکه خصوصی آدرس های IP به دلخواه.
1 بنام خدا زبان برنامه نویسی C (21814( Lecture 14 Structures.
به نام خدا برنامه سازی سمت سرور (php)
موضوع: دبير مربوطه: آموزشگاه : اجرا : عبارتهای جبری خانم مقصودی
تمام اسب ها همرنگ هستند! Basis: h = 1 We have only one horse. Clearly all horses in the set are the same color. Inductive hypothesis: In any set of up.
مظفر بگ محمدی دانشگاه ایلام Generics. کدهای عمومی 2 یکی از اهداف OOP ایجاد قابلیت نوشتن برنامه های عمومی با قابلیت استفاده ی مجدد است. کدهای چندریخت تا.
Stepper Motor Configuration
Data Types Modifiers Base data type Size Sign signed int 2 B unsigned float 4 B short double 8 B long char 1 B.
Arrangements of Lines C omputational Geometry By Samaneh shafi naderi
آشنايي با سيستم اعداد.
به نام خدا.
[c.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
هیدروگراف(Hydrograph) تهیه : دکتر محمد مهدی احمدی
انواع دستور در برنامه نويسی
دانشکده مهندسی کامپیوتر
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
آرايه ها.
ساختمان داده ها جداول درهم سازی
Address: Times New Roman, size 34
آزمایشگاه پایگاه داده ها قیود در جداول یک پایگاه داده در SQL Server
Odd-even merge sort مرتب سازی.
واحد های مختلف برنامه عباسپور
چگونه بفهمیم آیا ژورنالی ISI است؟ ایمپکت فاکتور دارد یا خیر؟
آموزش مقدمات MATLAB سیگنال ها و سیستم ها دانشگاه صنعتی شریف پائیز 86
مدیریت مالی و اقتصاد مدیریت موضوع : نقطه سر به سر زمستان 93
فصل دوم جبر بول.
حافظه ی نهان دانشگاه ایلام.
SSO Single Sign-on Systems
1.
فصل دوم – آشنایی با زبان .NET Visual C#
آشنایی با پایگاه داده mysql
Tree Sort.
کوئیز از جلسه قبل) کارخانه ای در حال خرید قطعه‌ای برای یکی از ماشین‌آلات خود می باشد اگر نرخ بهره 10% برای محاسبات فرض شود، دو مدل از قطعه ماشین در دسترس.
مدارهای منطقی فصل سوم - خصوصیات توابع سويیچی
ساختمان داده‌ها پیمایش درخت دودویی
سميرا قانوني زهرا معدني
هیدرولیک جریان در کانالهای باز
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
بنام خدا زبان برنامه نویسی C (21814( Lecture 3 Chapter 4
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Bucket sort اكرم منوچهري زهرا منوچهري
Ali Karimpour Associate Professor Ferdowsi University of Mashhad
دانشگاه آزاد اسلامی واحد جزیره هرمز
راهنمای استفاده از ابزار Mailings در Ms Word
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
جستجوی منابع الکترونیک
به نام خدا Koha برنامه.
فصل ششم مدارهای ترتیبی.
ساختمان داده‌ها درختان و درختان دودویی
به نام یکتای دانا فصل اول: متدها و قواعد.
عنوان مقاله نویسنده اول1، نویسنده دوم2، نویسنده سوم3، نویسنده چهارم4
برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 7
kbkjlj/m/lkiubljj'pl;
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
Presentation transcript:

تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86 ساختمان داده 1: آرایه تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86

مروری بر مطالب برای ذخیره کردن یک متغیر از نوع های ساده تنها از یک سلول حافظه استفاده می شود. نوع های ساده : Integer,real,char,boolean برای ذخیره کردن داده های وابسته باید از متغیرهای مجزا با نام های مختلف استفاده کرد. مختصات یک نقطه : x,y مختصات 100 نقطه : x1,y1,x2,y2,x3,…,x100,y100 ؟ استفاده از ساختمان داده مرکب

آرایه ساختمان داده ای است که تعدادی دادة هم نوع در آن ذخیره می شود. مجموعه ای از داده ها تحت يک نام مشترک استفاده می شوند. می توان به تک تک اعضا دسترسی پیدا کرد و همانند متغیرهای ساده مورد پردازش قرار داد. برای دسترسی به هر يک از اعضای آرايه، از يک انديس استفاده می شود. انديس بايد از نوع داده های قابل شمارش باشد

چگونگی تعريف يک آرايه Var نام آرايه : Array [ محدوده ] of نوع داده ;

چگونگی تعريف يک آرايه (ادامه) Var a : Array [ 1 .. 100 ] of Integer ; b : Array [ -10 .. 20 ] of Real; x : Array [ 0 .. 10 ] of Boolean; y : Array [ ‘a’ .. ‘z’ ] of Real;

چگونگی تعريف يک آرايه (ادامه) نوع اندیس می تواند از انواع char، Boolean، نوع دادة شمارشی و یا بازه ای از اعداد انتخاب شود. از نوع های real و Integer نمی توان به عنوان اندیس استفاده کرد. اما از بازه ای از اعداد صحیح می توان به عنوان اندیس استفاده نمود. برای هر یک از اندیس های آرایه، یک عنصر می توان در نظر گرفت. نوع داده همه عناصر یکسان است و در محل های پشت سر هم در حافظه اصلی ذخیره می شوند.

دسترسی به اعضا نام آرایه [اندیس] : a[100] b[-9] x[‘x’] اندیس باید با نوعی که در قسمت تعیین نوع آرایه برای اندیس تعیین شده سازگار باشد و در محدوده صدق کند.

دسترسی به اعضا ( ادامه) Var x : Array [1..5] of real; sum : real; Begin writeln(x[1]); x[4] := 25.6; sun := x[2] +x[3]; x[2] := x[1+2]+x[1]/x[5]; End. X[1] X[2] X[3] X[4] X[5] 54.4 1.3 28.6 12.5 2.0

خطاهای دسترسی Index expression out of bound هنگامی رخ می دهد که اندیس دسترسی خارج از محدوده باشد Index type is not compatible with declaration در صورتی که نوع داده عبارت، با اندیس همخوانی نداشته باشد

دسترسی ترتیبی می توان با تعریف و افزایش متغیری از نوع داده محدوده به اعضای آرایه به ترتیب دسترسی پیدا کرد. For i:=1 to n do readln(x[i])

بررسی مساوی بودن دو آرایه Var n : Integer; x, y : array [ 1 .. 40 ] of Char; Is_equal : Boolean; Begin … ... Is_equal := True; For n := 1 To 40 Do If x[n] <> y[n] Then begin Is_equal := False; break; end; If Is_equal Then Writeln ( ‘Equal‘) Else Writeln ( ‘Not Equal‘); End.

مثال : رشته ای را دریافت کند و تعداد حروف تکراری آن را مشخص نماید (حروف کوچک و بزرگ فرقی با هم نداشته باشند) Var s: string; Num_chars : Array[‘A’..’Z’] of Integer; … Begin readln(s); for i:=1 to length(s) do Inc(Num_chars[upcase(s[i])]); … End

مثال: لیستی از مختصات نقاط را دریافت کند و با دریافت ‘R’ آن ها را حول زاویه ای که از ورودی دریافت می کند دوران دهد، ‘T’ آن ها را تحت برداری که از ورودی دریافت می کند انتقال می دهد و در نهایت با دریافت ‘X’ مختصات نهایی را چاپ می کند. Repeat readln(ch); Until upcase(ch)=‘D’ or upcase(ch)=‘R’ or upcase(ch)=‘X’; Case ch of ‘D’,’d’ : ‘R’,’r’ End;

مثال : یک ماشین حساب 30 رقمی که قادر به انجام فقط جمع و تفریق است را شبیه سازی نمایید دو عدد حداکثر 30 رقمی را دریافت و ذخیره کند دو عدد ذخیره شده را با یکدیگر جمع نماید دو عدد ذخیره شده را از هم کم کند

مثال : یک عدد حداکثر 30 رقمی از ورودی دریافت کند و آن را ذخیره نماید var s: string; num : array[1..30] of byte; i: Integer; begin readln(s); if length(s)>30 then exit; for i:=length(s) downto 1 do num1[length(s)-i+1] := ord(s[i])-ord('0'); for i:=1 to length(s) do write(num[i]); readln; end.

مثال : جمع دو عدد 30 رقمی … carry := 0; for i:=1 to 30 do begin res[i] := (num1[i]+num2[i]+carry) mod 10; carry := (num1[i]+num2[i]+carry) div 10; end; for i:=max+1 downto 1 do write(res[i]);

مثال : تفریق دو عدد 30 رقمی با فرض بزرگتر بودن عدد اول .... carry := 0; for i:=1 to 30 do begin if (num1[i]-num2[i]-carry)<0 then res[i]:=(num1[i]+9-num2[i]); carry:= 1; end else res[i] := num1[i]-num2[i]-carry; end; for i:=max downto 1 do write(res[i]); ...

مثال : شمارنده n رقمی در مبنای 2 Var A : Array [1..6] of Integer; Flag : boolean; Begin … Inc(A[0]); if (A[0]>1) then for i:=0 to 5 do if A[i]=0 then begin A[i] = 0; Inc(A[i+1]) …

مثال : زیرمجموعه های ممکن یک مجموعه از کاراکتر را چاپ نماید Const max = 100; Var chars : array [1..max] of char; counter : array[1..max] of Integer; … Begin …. for i:=0 to length-1 do if counter[i]=1 then write(chars[i]);

آرایه های ثابت Const نام آرايه : Array [ محدوده ] of نوع داده = ( مقدار اول , مقدار دوم , … , مقدار آخر ) ; مثال : Const a : Array [ 1 .. 4 ] of Integer = ( 2 , -5 , 17 , 0 ); b : Array [ 0 .. 2 ] of Char = ( ‘a’ , ‘2’ , ‘?’ ); c : Array [ 0 .. 2 ] of Char = ‘a2?’ ;

چاپ نام بر اساس شماره رديف Const Name : Array [ 1 .. 5 ] of String = ( ‘Majedi’ , ‘Rahnama’ , ‘Ganji’ , ‘Miran’ , ‘Nazari’ ); Var n : Intger; Begin Readln ( n ); Writeln ( Name [ n ] ); End.

تعريف يک نوع داده Type نام دلخواه = نوع داده جديد ; Var نام متغير : همان نام دلخواه ; Type Days = 1 .. 31 ; Letters = ‘A’ .. ‘Z’ , ‘a’ .. ‘z’ ; Var a, b : Days; c : Letters;

چند تابع بر روی string Upcase(s) Str (Integer or real, String) حروف کوچک در رشته ورودی را به حروف بزرگ تبدیل می کند. Str (Integer or real, String) یک نوع داده صحیح را به نوع داده رشته معادلش تبدیل می کند. Str(108765,s); بعد از اجرا مقدار s برابر ‘108765’ است. Val(String, Integer or real) یک نوع داده رشته را به نوع داده صحیح با حقیقی معادلش تبدیل می کند