close
دانلود فیلم
آرایه
کتاب آموزش طراحی سایت با PHP ، نوشته عرفان نیا

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

عنوان کتاب : آموزش طراحی سایت با PHP

نویسنده : عرفان نیا

تعداد صفحات : ۸۶

ساختار فایل : PDF

حجم فایل : ۴۲۱.۹ کیلوبایت

ادامه مطلب...

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

 

عنوان جزوه : ساختمان داده ها

نویسنده : مهندس محمدی

زبان : پارسی

کیفیت جزوه : تایپ شده

تعداد صفحات : ۷۰

ساختار فایل : PDF

حجم فایل : ۱.۳ مگابایت

مطالب بررسی شده در این جزوه :

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

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

 

دانلود نمونه سوالات درس ساختمان داده در ادامه

ادامه مطلب...

آرایه

يک آرايه (array) مجموعه ای از محل های پشت سرهم حافظه است که همگی دارای يک نام می باشند . یک آرایه نوعی متغیر است که بجای ذخیره یک مقدار یکسری از مقادیر هم نوع را ذخیره می کند. هر محل ذخيره سازی در آرا‍يه را يک عنصر آرايه می نامند.

شکل کلی تعريف آرايه به صورت زير است:

DataType array_name[size];

Size تعداد عناصر آرایه است که در کروشه ذکر می شود. DataType نوع عناصر آرايه است که از هر نوع داده ای می تواند باشد.

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

اسم آرايه اشاره گری به اولين عنصر آن است. به عناصر می توان به طور منفرد با اضافه کردن اندیس به اسم آرايه مراجعه کرد. انديس (index) باعث متمايز شدن عناصر آرايه از يکديگر می شود و تعيين می کند عنصر آرايه چندمين محل ذخيره سازی در آرايه است. در ++C انديس آرایه يک عدد صحيح است که از صفر شروع می شود.


مثال. آرايه A که به صورت زير تعريف شده است يک آرايه يک بعدی با 5 عنصر از نوع صحيح است. عناصر آن شامل A[3] , A[2] , A[1] , A[0] و A[4] است.

int A[5];


هنگام دسترسی به عناصر آرايه بعد از اسم آرايه بايد درون کروشه شماره انديس عنصر مورد نظر ذکر شود. عناصر آرايه را می توان توسط دستور انتساب مقداردهی کرد يا مقدار آن را از ورودی درياقت کرد.

A[0] = 10;

cout << "Enter a number:";
cin >> A[1];

با توجه به اينکه تعداد عناصر آرايه معين است برای کارکردن روی کليه عناصر آرايه حلقه های for روش مناسبی هستند.


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

#include
int main() {
   int A[10];
   for (int k = 0; k < 10; k++) {
      cout << "Enter an integer: ";
      cin >> A[k];
      }
   for (int k = 0; k < 10; k++)
      cout << A[k] << endl;
   return 0;
}


بخاطر داشته باشيد انديس عناصر آرايه با n عنصر از 0 تا n-1 است. اگر به عنصری خارج از اين محدوده دسترسی پیدا کنید کامپایلر خطائی نمی گيرد ولی این می تواند به مشکلات جدی منجر بشود چون ممکن است روی داده برنامه های دیگر درون حافظه تاثير بگذارد.

اگر اندیس آرایه اعشاری باشد کامپايلر آن را به يک عدد صحيح گرد می کند.


مثال. در برنامه زير سعی شده به عنصری خارج از اندازه آرايه دسترسی شود. دستور myarray[10] باعث می شود مقدار 99 در محلی ذخيره شود که 6 خانه بعد از آرایه myarray است این حافظه ممکن است شامل داده لازم برای برنامه دیگر باشد.

#include
int main() {
   int myarray[5];
   myarray[10] = 99;
   cout << myarray[10] << endl;
   return 0;
}


آرایه های یک بعدی

آرايه يک بعدی (1-dimensional array) برای نگهداری ليستی از مقادير استفاده می شود. هر عنصر آرايه يک بعدی از طريق يک انديس مشخص می شود.


مثال. آرايه زير 20 مکان پشت سرهم حافظه را برای مقادير ممیز شناور اختصاص می دهد. اولین مکان با tempreture[0] بعدی با tempreture[1] و.... . آخرین عنصر tempreture[19] است.

float tempreture[20];


آرایه های چند بعدی

می توان بعدهای بیشتری به آرایه داد. در يک آرايه چند بعدی (multidimensional) به بيش از يک عدد برای دسترسی به هر عنصر آرايه نياز است. يک آرايه دو بعدی به 2 انديس و يک آرايه سه بعدی به 3 انديس نياز دارد. محدوديتی برای تعداد ابعاد آرايه در ++C وجود ندارد اما بندرت آرایه بیشتر از دو يا سه بعد دیده شده است.


مثال. آرايه زير دارای دو بعد است که اندازه هر بعد آن 4 است. بنابراين آرايه 16=4×4 عدد صحيح را نگه می دارد. به هر عدد از طریق دو اندیس دسترسی می شود. مثلا عنصر اول myarray[0][0] است.

int myarray[4][4];

آرايه های دو بعدی دارای ساختار جدولی هستند و به صورت مجموعه ای از سطرها و ستون ها ديده می شوند. جدول زیر موقعیت عناصر مثال قبل که دارای 4 سطر و 4 ستون است را نشان می دهد.

0,00,10,20,3
1,01,11,21,3
2,02,12,22,3
3,03,13,23,3

عناصر آرايه صرفنظر از تعداد بعدهای آن سطر به سطر در خانه های پشت سرهم حافظه ذخيره می شوند. برای مطالعه بيشتر درباره روش سطری می توان‍يد به بخش نمايش آرايه در درس ساختمان داده مراجعه نماييد.


 

جستجوی دودوئی

الگوریتم جستجوی دودوئی (binary search algorithm) روشی برای جستجوی یک مقدار درون یک لیست مرتب است. عنصر وسط لیست انتخاب شده و با آرگومان جستجو مقایسه می شود تا تعیین شود از آن بزگتر، کوچکتر یا مساوی است. اگر آرگومان از عنصر انتخاب شده بزرگتر باشد جستجو در نیمه پایینی و اگر کوچکتر باشد در نیمه بالائی لیست ادامه پیدا می کند.

کد بازگشتی جستجوی دودوئی به صورت زیر است:

int BinarySearch(int A, int value, int low, int high) {
  if (high < low)
    return -1    // not found
  mid = (low + high) / 2
  if (A[mid] > value)
    return BinarySearch(A, value, low, mid-1)
  else if (A[mid] < value)
    return BinarySearch(A, value, mid+1, high)
  else
    return mid    // found
}

زمان جستجو O(log n) است که زمان بهتری نسبت به جستجوی خطی است. اگر آرگومان جستجو برابر با عنصر وسط لیست باشد با یک مقایسه پیدا می شود که بهترين حالت است. در بدترین حالت به ⌊log2 n ⌋ + 1 مقايسه نياز است.

جستجوی دودوئی مثالی از یک الگوریتم تقسیم و غلبه است.

به کانال تلگرام سایت ما بپیوندید