Laboratoriya topshirig‘i. Berilgan masalani yechish uchun algoritm va mos dasturni ishlab chiqing. Algoritmni blok-sxema shaklida ifodalang va zarur bo‘lsa algoritmik dekompozitsiyani amalga oshiring. Zarur hollarda qism masalalarni yechish uchun qism dasturlardan foydalaning.
Dastur namunasi. Biz quyida namuna sifatida massivlarni qayta ishlash (tahlil qilish) bilan bog‘liq masalani qaraymiz. Masalani yechish algoritmini (psevdokod shaklida) ishlab chiqamiz va uni C++ tilidagi dasturga o‘tkazamiz.
Labotoriya topshirig‘i sharti. O‘rin almashtirishlardan iborat bo‘lgan N (N<=100) o‘lchamli A butun sonli massiv berilgan. Ushbu o‘rin almashtirishlardagi inversiyalari soni, ya’ni shartni qanoatlantiruvchi barcha juftliklar soni topilsin.
Masalani yechish algoritmi. Masalani yechish algoritmi massivning har bir A[i] elementini undan keyin joylashgan barcha A[j] elementlar bilan solishtirib, A[i]>A[j] shartni qanoatlantiradigan juftliklar sonini aniqlashga asoslangan. Bu g‘oyani quyidagi psevdokod orqali ifodalash mumkin:
juda sodda bo‘lgani uchun, uning C++ dagi dasturi matnini keltiramiz:
#include using namespace std;
ifstream cin("input.txt");
ofstream cout("output.txt");
{
const int NMax=1000;
int A[NMax];
int N;
int Count=0;
cin >> N;
for (int i=0; i cin >> A[i];
for (int i=0; i for(int j=i+1; j if (A[i]>A[j])
Count++;
cout << Count;
return 0;
}
Nazorat savollari Standart malumotlar tuzilmalari qanday tuzilmalar?
Standart ma’lumotlar tuzilmalariga qanday tuzilmalar kiradi?
Topshiriqlar Laboratoriya ishini bajarish tartibi. Laboratoriya ishini bajarishda quyidagi tartibga amal qiling:
Guruh jurnalidagi nomerga ko‘ra o‘z variantingizni aniqlang
Masalani yechish uchun algoritm va dastur quring.
Kichik hajmdagi ma’lumotlar uchun dasturning to‘g‘ri ishlayotganligiga ishonch hosil qiling.