Natija oynasi.
Dek elementlaridan juftlarini hisoblash dasturi.
Dastur kodi.
#include
#include
using namespace std;
int a[10], n, R = 0;
voidkiritish(int s){
a[R++] = s;}
voidkiritish_ong(){
for(int i(0); i < R / 2; i++)
swap(a[i], a[R - i - 1]); }
intchiqarish(){
int t = a[0];
for(int i = 0; i < R - 1; i++){
a[i] = a[i + 1]; }
R--;
return t;}
boolisFull(){
if(R >= 10) return true;
else return false;}
boolisEmpty(){
if(R == 0) return true;
else return false;}
void print(){
int i = 0, k;
while(i < R){
k = chiqarish();
i++;
cout<< k << " ";
kiritish(k);}}
int main(){
int n, s, d;
cout<< "n = "; cin>> n;
cout<< "1. chapdan - 2. o'ngdan\n";
cin>> d;
for(int i(0); i < n; i++){
if(!isFull()){
cin>> s;
kiritish(s);}
else {
cout<< "\ndekto'ldi\n";
n = i; break; }}
if(d == 2) kiritish_ong();
cout<< "dekelementlari:\n";
print();
int sum = 0;
for(int i(0); i < n; i++){
s = chiqarish();
if(s % 2 == 0)
sum += s; }
cout<< "\nJuftelementlariyig'indisi = " << sum <getch();
return 0;}
Dastur natijasi:
Topshiriq. Dekni bir o'lchamli massiv shaklida hosil qiling va unda 6ta amal bajarishga doir dastur tuzing.
Dastur kodi:
#include
#include
#include
using namespace std;
int main(){
deque myDeque(100),dek(100);
int n,max,min,k=1;
int s=0,yig=0,j=1;
double orta=0;
cout << "n = "; cin >> n;
for(int i=1; i<=n; i++) cin >> myDeque[i];
max = myDeque[1];
min = myDeque[1];
for(int i=1; i<=n; i++) if(maxfor(int i=1; i<=n; i++) if(min>myDeque[i]) min=myDeque[i];
for(int i=1; i<=n; i++) if(i%2==0) k*=myDeque[i];
for(int i=1; i<=n; i++) if(i%2!=0) s+=myDeque[i];
for(int i=1; i<=n; i++) yig+=myDeque[i];
orta = yig/2;
for(int i=1; i<=n+n/2; i++) { if(i%3!=0 || i==0) { dek[i] = myDeque[j]; j++; }
else if(i%3==0 && i!=0) dek[i]=myDeque[j-1]+myDeque[j-2]; }
cout << "Massiv Max : " << max << endl;
cout << "Massiv Min : " << min << endl;
cout << "Mas. Toq indekslar ko'paytmasi : " << k << endl;
cout << "Mas. juft indeksli yig'indisi : " << s << endl;
cout << "Massiv yig'indisi : " << yig << endl;
cout << "Massiv o'rta qiymati : " << orta << endl;
cout << "Massiv 2 ta indeks yigindisi joylashuvi : \n";
for(int i=1; i<=n+n/2; i++){
cout << dek[i] << " "; }
cout << endl;
return 0;}
Dastur natijasi:
E:\TATU\5-SEMESTR\MTvaA\mustish.exe
Xulosa
Yarimstatik ma’lumotlar tuzilmasi o‘zgaruvchan uzunlikka ega va uni o‘zgartiruvchi oddiy funksiyalariga ega bo’lgan tuzilmalar tushuniladi. Tuzilmaning uzunligini o‘zgartirish ma’lum bir chegarada, ya’ni qandaydir bir maksimal qiymatdan oshmagan holda amalga oshirilishi mumkin.
Yarimstatik tuzilmalarga sanab o’tilgan navbat, stek, dek va satrlar ni ko’rib chiqdik.
Navbat bu yarimstatik MT bo’lib, unda elementlar bir xil toifada va ketme-ketlikda joylashadi. Navbat tuzilmasining o’ziga xos xususiyati shundaki, unga elementlar bir tomondan kiritilib, boshqa tomondan chiqarib olinadi.
Stek bu LIFO, yani Last Input First Output ko’rinishidagi tuzilma bo’lib, u bir xil toifadagi elementlar ketma-ketligi hisoblanadi.Stek bir tomoni yopiq tuzilma bo’lib, shu sababli elementlar bitta tomondan kiritilib, chiqariladi.
Dek har ikkala tomondan ochiq tuzilma bo’lib, bir xil toifadagi elementlar ikkala tomondan kiritilishi va chiqarilishi mumkin.
Yarimstatik ma’lumotlar tuzilmasiga doir misollar namunasini ko’rib dasturda ishlab ko’rdik va topshiriqni namunalarga asoslanib bajardik.
Adabiyotlar
Xudoyberdiyev M.X., Akbaraliyev B.B. “Ma‟lumotlat tuzilmasi va algoritmlar” fanidan amaliy mashg„ulotlar uchun topshiriqlar (uslubiy ko„rsatmalari bilan). Toshklent, 2013 y.
Akbaraliev B.B. “Ma'lumotlar tuzilmasi va algoritmlar” o’quv qo’llanma. Toshkent, 2008 y.
http://fayllar.org/ozbekiston-respublikasi-aloqa-axborotlashtirish-va-telekommuni.html?page=1
Do'stlaringiz bilan baham: |