5-amaliy ish dtq va e fanidan



Yüklə 154,61 Kb.
tarix07.01.2024
ölçüsü154,61 Kb.
#201626

5-amaliy ish DTQ va E fanidan.
5-Amaliy ishlarda xar bir talaba dasturni testlab kamchiligini aniqlang, to’g’rilang va natijani chop eting. Testlash xisobotini tayyorlang. Xisobotda, avval dasturni kamchilikari bilan, undan keyin to’g’rilangan holati natijasi bilan nusxalab tushirilsin.
Testlarning xususiyatlari.
Sinov yo'li bilan dasturiy mahsulot sifatini ta'minlashga yondashuvning xususiyatlari ko'rib chiqiladi. Sifatni tekshirish mezonlarini tanlash uchun misol va metodologiya berilgan. Sinov jarayonining bosqichlari va sanoat sinovlarida qo'llaniladigan sinov tsikli bosqichlari belgilangan. "Test rejasi" hujjatining tuzilishi ko'rib chiqiladi. Mahsulotning turli qismlari uchun yoki mahsulotning turli xususiyatlarini sinash uchun rejalashtirilgan sinov turlarini tekshiradi. Sinov spetsifikatsiyalari va stsenariylariga yondashuvlarni tavsiflaydi. Testlarni ishlab chiqishda test holatlarini yaratish uchun qo'lda yondashuv va yondashuv taqdim etiladi. Testni bajarishni avtomatlashtirish usullari taqqoslanadi. Dasturiy ta'minot mahsulotining sifati va sinovi Dasturiy ta'minot mahsulotining sifati mahsulotning undagi barcha potentsial manfaatdor tomonlar nuqtai nazaridan qanchalik "yaxshi" ekanligini aniqlaydigan ma'lum xususiyatlar to'plami bilan baholanishi mumkin. Bu partiyalar:
- mahsulot mijozi
- homiy
- oxirgi foydalanuvchi
- mahsulotni ishlab chiquvchilar
- mahsulot sinovchilari
- muhandislarni qo'llab-quvvatlash
- tayyorlash bo'limi
- savdo bo'limi va boshqalar.
Ishtirokchilarning har biri mahsulot haqida turlicha tasavvurga ega bo'lishi va uning qanchalik yaxshi yoki yomon ekanligi, ya'ni mahsulot sifati qanchalik yuqori ekanligi haqida turlicha fikr bildirishi mumkin. Ishlab chiquvchi nuqtai nazaridan, mahsulot o'z ichiga olgan algoritmlar va texnologiyalar kabi yaxshi bo'lishi mumkin. Mahsulot foydalanuvchisi, ehtimol, ichki dasturning tafsilotlariga befarq bo'lib, u birinchi navbatda funksionallik va ishonchlilik masalalari bilan shug'ullanadi. Homiyni narx va kelajakdagi texnologiyalar bilan muvofiqligi qiziqtiradi. Shunday qilib, mahsulot sifatini ta'minlash vazifasi manfaatdor tomonlarni aniqlash, ularning sifat mezonlarini kelishish va ushbu mezonlarga javob beradigan optimal echimni topish vazifasiga aylanadi. Bunday vazifani bajarishda sinov guruhi nafaqat boshqa manfaatdor tomon, balki tanlangan mezonlarning qanoatlantirilishini baholash va boshqa ishtirokchilar nuqtai nazaridan mahsulot sifati to'g'risida xulosa chiqarishga qodir bo'lgan tomon sifatida ham ko'riladi. Afsuski, barcha mezonlar test guruhi tomonidan baholana olmaydi. Shuning uchun uning e'tibori, asosan, oxirgi foydalanuvchi nuqtai nazaridan dasturiy mahsulot sifatini belgilovchi mezonlarga qaratilgan. Sinov sifatni ta'minlash usuli sifatida. Texnik nuqtai nazardan, test - bu ba'zi kiritilgan ma'lumotlar bo'yicha dasturni bajarish va olingan natijalarni natijaga nisbatan ularning to'g'riligini tasdiqlash uchun tekshirish jarayoni. Sinov sifatni ta'minlashning yagona yo'li sifatida sotilmaydi. Bu mahsulot sifatini ta'minlashning umumiy tizimining bir qismi bo'lib, uning elementlari muayyan loyihada eng samarali qo'llash mezoniga ko'ra tanlanadi.
Har bir aniq loyihada tizimning elementlari ustuvorliklar va mavjud resurslardan kelib chiqqan holda maqbul sifatni ta'minlash uchun tanlanishi kerak. Muayyan mahsulot sifatini ta'minlash tizimi uchun elementlarni tanlashda o'shma testlar, kodlarni ko'rib chiqish, audit qo'llanilishi mumkin. Ushbu tanlov bilan, o'zgartirish qulayligi va nuqsonlarni tuzatish kabi ba'zi fazilatlar qadrlanmaydi va amalga oshirilishi mumkin. Bu holda sinov vazifasi nuqsonlarni aniqlash va mahsulotning yaroqliligini, shu jumladan funksionallikning to'liqligini baholashdan iborat
bo'ladi. Muayyan loyihada test guruhiga berilgan vazifalar asosida tegishli test strategiyasi tanlanadi. Shunday qilib, ushbu misolda, funksionallikning qulayligi va to'liqligini baholash zaruratidan kelib chiqqan holda, skriptlardan foydalanish asosida testlarni ishlab chiqishga imtiyozli yondashuvni rejalashtirish kerak. Shunday qilib, dasturiy mahsulot uchun sifat mezonlarini tanlash va baholashda asosiy harakatlar ketma-ketligi quyidagilarni o'z ichiga oladi: - Ushbu loyihaning amalga oshirilishi va natijalaridan u yoki bu tarzda manfaatdor bo'lgan barcha shaxslarni aniqlash. - Ishtirokchilarning har biri uchun sifat g'oyasini shakllantiradigan mezonlarni aniqlash.
- Loyihani amalga oshirayotgan kompaniya uchun ma'lum bir ishtirokchining
muhimligini va ushbu ishtirokchi uchun har bir mezonning muhimligini
hisobga olgan holda mezonlarning ustuvorligi.
- Loyiha jamoasining ustuvorliklari va imkoniyatlaridan kelib chiqib, loyiha
doirasida kuzatiladigan va amalga oshiriladigan mezonlar to'plamini
aniqlash. Har bir mezon uchun maqsadlarni belgilash.
- Har bir mezonga erishish yo'llari va mexanizmlarini aniqlash.
- Sinov guruhi mas'uliyatiga tushadigan mezonlar, tanlangan ustuvorliklar va
maqsadlarga asoslangan test strategiyasini aniqlash.
Test turlari
Sinov rejasi har xil turdagi testlarni belgilaydi va hujjatlashtiradi. Sinov turlarini ikkita toifaga bo'lish mumkin: sinovdan o'tkazilayotgan narsa (quyi tizim turi bo'yicha) va kirish ma'lumotlarini tanlash usuli bo'yicha. Quyi tizim yoki mahsulot turi bo'yicha sinov turlari: - Asosiy ishlab chiqarilgan mahsulot bo'lgan tizimning o'zi sinovdan
o'tkazilganda asosiy funksionallikni sinovdan o'tkazish
- O'rnatish sinovi tizimni o'rnatishning dastlabki stsenariylarini, qayta o'rnatish
stsenariylarini (mavjud nusxada), o'chirish testini, o'rnatilgan paket, muhit yoki
skriptdagi xatolar sharoitida o'rnatish sinovini o'z ichiga oladi.
- Foydalanuvchi hujjatlarini sinovdan o'tkazish mahsulotdan foydalanish qoidalari va xususiyatlari tavsifining to'liqligi va tushunarliligini, barcha stsenariylar va funktsiyalarning tavsifi mavjudligini, tilning sintaksisi va
grammatikasini, misollarning bajarilishini va boshqalarni tekshirishni o'z ichiga oladi.
Kirish qiymatlarini tanlash usuli bo'yicha test turlari:
- Funktsional test, u tekshiradi:
- Funktsional talablarni qamrab olish.
- Foydalanish stsenariylarini qamrab olish.
- Mahsulotdan foydalanishning ekstremal rejimlari sinovdan o'tkaziladigan stress testi.
- Chegaraviy qiymat sinovi.
- Ishlash testi.
- Muvofiqlik testi.
- Boshqa dasturiy ta'minot va apparat tizimlari bilan muvofiqligini sinovdan o'tkazish.
- Atrof-muhit bilan ishlashni sinovdan o'tkazish.
- Muayyan platformada sinov ishi
Haqiqiy ishlanmalarda mahsulotning rejalashtirilgan sifatini ta'minlash uchun har xil turdagi testlar qo'llaniladi va birlashtiriladi.
Dasturiy ta'minot sifati
Dasturiy ta'minot sifati - bu dasturiy mahsulotning belgilangan sharoitlarda, belgilangan yoki kutilayotgan ehtiyojlarni qondirish qobiliyatidir (ISO / IEC 25000: 2014).
Standartlarning boshqa ta'riflari:
- belgilangan yoki kutilayotgan ehtiyojlarni qondirish qobiliyatiga taalluqli
dasturlarning xususiyatlari va xususiyatlarining butun doirasi (GOST R ISO / IEC
9126-93, ISO 8402: 94);
- Tizim, komponent yoki jarayon mijoz yoki foydalanuvchining ehtiyojlari yoki
talablariga javob berish darajasi (IEEE Std 610.12-1990).
Sifat modellari
ISO / IEC 25010: 2011 (GOST R ISO / IEC 25010-2015) sakkizta yuqori
darajadagi xususiyatlarni o'z ichiga olgan mahsulot sifati modelini belgilaydi:
- funktsional muvofiqligi;
- ishlash darajasi;
- moslik;
- foydalanish qulayligi (foydalanish qulayligi);
- ishonchliligi;
- xavfsizlik;
- barqarorlik;
- portativlik (harakatchanlik).
Ushbu standartda dasturiy mahsulot sifati modeli turli manfaatdor tomonlar uchun juda farq qilishi mumkin bo'lgan sub'ektiv sifatdan alohida ko'rib chiqiladi. Amaldagi sifat modeli quyidagi yuqori darajadagi xususiyatlarni o'z ichiga oladi:
- samaradorlik;
- ishlash;
- qoniqish;
- xavfdan ozodlik;
- kontekstni qamrab olish.
Robert Glass mashhur "Professional dasturlash faktlari va noto'g'ri" kitobida ta'kidlaydiki, ko'pchilik professional ishlab chiquvchilar ettita sifat ko'rsatkichi asosiylari sifatida ajratilishiga rozi:
- portativlik;
- ishonchliligi;
- samaradorlik;
- foydalanish qulayligi (foydalanish qulayligi);
- sinovga yaroqliligi;
- tushunarlilik;
- o'zgartirish qobiliyati.
Dasturiy ta'minot sifatining nisbatan yangi modellari orasida sanoat sharoitida qo'llanilgan, ammo hali keng tarqalmagan SQUALE va Quamoco ni qayd etishimiz mumkin.

Topshiriq dasturlar:


1.
#include
#include
using namespace std;
set a;
set b;
set c;
int main()
{ a.insert(1;9);
a.insert(2); a.insert(1); a.insert(2;8);
cout << a.sizeof() << endl;
b.insert(2);
b.insert(3);
b.insert(5);
cout << b.sizeof() << endl;
c.insert(a.begin(), a.end());
c.insert(b.begin(), b.end());
cout << c.size() << endl;
return 0; }
2-dastur.
#include
#include
#include
#include
using std::cout;
using std::endl;

/**************


3. Massivni sortirovka qilish.

izoh.
Saralanmagan massivni (qiymatlar random orqali qilingan) va bu massivni saralab chiquvchi funksiya yozing.


Deklaratsiya.
voidSort(
int* _values,// saralanadigan massiv
unsignedint _count// Massivda elemtlar soni
)

kutuliyotgan natija.


misol uchun berilgan massiv {2, 5, 7, 3, 4, 1, 6} funksiya orqali saralanib {1, 2, 3, 4, 5, 6, 7}.

dasturda funksiya 4 marta chaqiriladi va bunda 15 qiymatidan tashqariga chiqmasin. bunda har bir massiv saralansin


**************/
void generateRandomArray(int* _result, unsigned int _maxValue);
void Sort(int* _values, unsigned int _count);

int main()


{ setlocale(LC_ALL, "Russian");
unsigned int maxValue;
srand((unsigned)time(NULL));
for (int i = 1; i <= 4; i++)
{ maxValue = 5 + rand() % 11;
int* result = new int[maxValue];
generateRandomArray(result, maxValue);
cout << "Saralanmagan son boshlanishi 1 dan "
<< std::setw(2) << maxValue << " gacha : ";
for (unsigned int i = 0; i < maxValue; i++)
cout << result[i] << ' ';
cout << endl;

Sort(result, maxValue - 1);


cout << "Saralangan son boshlanishi 1 dan"
<< std::setw(2) << maxValue << " gacha: ";
for (unsigned int i = 0; i < maxValue; i++)
cout << result[i] << ' ';
cout << endl << endl;
delete[] result; }
system("pause");
return 0;}
void generateRandomArray( int* _result, unsigned int _maxValue)
{ int ind1 = 0, ind2 = 0, tmp = 0, tmp1 = 0;
for (unsigned int i = 0, j = 1; i < _maxValue; i++, j++)
_result[i] = j;
for (int i = 1; i <= 20; i++)
{ ind1 = rand() % _maxValue;
ind2 = rand() % _maxValue;
tmp1 = _result[ind1]; //o'zgaruvchi tmp bo'lishi kerak
_result[ind1] = _result[ind2];
_result[ind2] = tmp; }
}
void Sort(
int* _values,
unsigned int _count
)
{
int i = 0, j = _count;
int temp, p;

p = _values[_count >> 1];

do
{
while (_values[i] < p) i++;
while (_values[j] > p) j--;
temp = 0;
if (i <= j)
{
temp = _values[i];
_values[i] = _values[j];
_values[j] = temp;
i++;
j--;
}

} while (i < j); // bu joyda teng belgisi bo'lishi kerak.

if (j > 0)
Sort(_values, j);
if (_count > (unsigned)i)
Sort(_values + i, _count - i);
}
4.
#include
using namespace std;
int a[20],R=0,n;//bu yerda n stekka kiritilishi kerak bo'lgan elementlar soni.
int kiritish(int s ){
a[R]=s; R++; }
int chiqarish(){ R--;
return a[R]; }
bool isEmpty(){
if(R==0) return true;
else return false; }
bool isFull(){
if(R>=20) return true;else return false; }
int print(){
int i=0,c[n];
while(!isEmpty()){
c[i]=chiqarish();
cout< }
for(int j=i-1;j>=0;j--) {
kiritish(c[j]);
}
}
int main(){
int s;
cout<<"n=";cin>>n;
for(int i=0;iif(!isFull()){ cin>>s; kiritish(s);}
else{cout<<"stek to'ldi"; n=i;break;} }
cout<<"\nstek elementlari: ";
print();
int b[n],k=0;
for(int i=0;ib[i]=s;
cout<//int t=b[0]; b[0]=b[R-1]; b[R-1]=t;
for(int i=R;i>=0;i--) kiritish(b[i]);
cout<<"\nnatijaviy stek elementlari: ";
print();
return 0;
main();
}
5.
#include
using namespace std;
class Node{
public:
int info; // informatsionnoe pole
Node* next;// pokazatel
};
int n, numb;
Node *lst = NULL;// nachalo spiska
Node *last = NULL;

void insert(int numb) {


Node *p = new Node;
p->info = numb;
p->next = NULL;
if (lst == NULL)
{ lst = p;
last = p;
}
else { last->next = p;
last = p; };
}
int main(){
Node *lst = NULL;// nachalo spiska
Node *last = NULL;
//int num;
cin>>n;
for(int i=1; i<=n; i++)
{
insert(i); }
Node* p = lst;
while(p) { cout <<" "<< p->info<<"->";
p = p->next;
}
cout << endl;
Node* pp = new Node;
if (lst == NULL)
cout<<"ro'yhat bo'sh";
else {
pp = lst;
lst = pp->next ;
delete(pp);}
Node* p1 = lst;
while(p1) {
cout <<" "<< p1->info<<"-> ";
p1 = p1->next;
}
return 0;}
6.
#include
using namespace std;
class Node{
public:
int info; // informatsionnoe pole
Node* next;// pokazatel
};
int n, numb;
Node *lst = NULL;// nachalo spiska
Node *last = NULL;

//int insert(int numb) {




int main(){
Node *lst = NULL;// nachalo spiska
Node *last = NULL;

//int num;


cin>>n;
for(int i=1; i<=n; i++)
{
Node*p = new Node;
p->info = i;
p->next = NULL;
if (lst == NULL)
{ lst = p;
last = p;
}
else { last->next = p;
last = p;
}; }
//cin>>num;
//int insert(i);
//cout<
Node* p1 = lst;
while(p1) {
cout <<" "<< p1->info<<"->";
p1 = p1->next;
}
cout << endl;
Node* pp = new Node;
if (lst == NULL)
cout<<"ro'yhat bo'sh";
else {
pp = lst;
lst = pp->next ;
//delete(pp);
}
Node* p1 = new Node;
Node* p1 = lst;
while(p1) {
cout <<" "<< p1->info<<"-> ";
p1 = p1->next;
}
return 0;}
7.
#include
#include
#include
#include
using std::cout;
using std::endl;

/******************

2. Saralanmagan massivni generatsiya qilish 1 dan N gacha.

izoh.
Istalgan butun qiymatli son qabul qiluvchi va massivni qaytaruvchi funksiyani yozing. Bunda massiv ichida 1 da to N gacha son bo'lsin, bunda har bir qiymat istalgan joyda bo'lsin

Deklaratsiya.
void GenerateRandomArray(
int * _result, // qaytarilgan massiv
unsignedint _maxValue// avcs topish
)

Kutilgan qiymatlar


misol uchun, 2 marta funksiya ishlatilganda va 7 qiymati chiqganda bo'lishi mumkin bo'lgan massivlar
{2, 5, 7, 3, 4, 1, 6}
{5, 1, 3, 4, 6, 2, 7}

Dastur tekshirish.


dasturda funksiya 4 marta chaqiriladi va bunda 15 qiymatidan tashqariga chiqmasin.
*************************/

void generateRandomArray(int* _result, unsigned int _maxValue);

int main()
{
setlocale(LC_ALL, "Russian");
unsigned int maxValue;

srand((unsigned)time(NULL));


for (int i = 1; i <=4; i++)
{
maxValue = 5 + rand() % 11;
int* result = new int[maxValue];
generateRandomArray(result, maxValue);

cout << "Saralanmagan son boshlanishi 1 dan "


<< std::setw(2) << maxValue << " gacha : ";
for (unsigned int i = 3; i < maxValue; i++)
cout << result[i] << ' ';
cout << endl;
delete[] result; //massiv tozalash kerak
}

system("pause");


return 0;
}

void generateRandomArray(


int* _result,
unsigned int _maxValue
)
{
int ind1 =0, ind2 =0 , tmp =0 ,tmp1 =0;

for (unsigned int i = 0, j = 1; i < _maxValue; i++, j++)


_result[i] = j;

for (int i = 1; i <= 20; i++)


{
ind1 = rand() % _maxValue;
ind2 = rand() % _maxValue;
tmp1 = _result[ind1]; //o'zgaruvchi tmp bo'lishi kerak
_result[ind1] = _result[ind2];
_result[ind2] = tmp;
}
}

8.
#include


using namespace std;

int main()


{
char line[150];
int vowels, consonants, digits, spaces;

vowels = consonants = digits = spaces = 0;

cout >> "Enter a line of string: ";
cin.getline(line, 150);
for(int i = 0; line[i]!='\0'; ++i)
{
if(line[i]=='a' || line[i]=='e' || line[i]=='i' ||
line[i]=='o' || line[i]=='u' || line[i]=='A' ||
line[i]=='E' || line[i]=='I' || line[i]=='O' ||
line[i]=='U')
{
++vowels;
}
else if((line[i]>='a'&& line[i]<='z') || (line[i]>='A'&& line[i]<='Z'))
{
++consonants;
}
else if(line[i]>='0' && line[i]<='9')
{
++digits;
}
else if (line[i]==' ')
{
++spaces;
}
}

cout << "Vowels: " << vowels << endl;


cout << "Consonants: " << consonants << endl;
cout << "Digits: " << digits << endl;
cout << "White spaces: " << spaces << endl;

return 0;


}

9.
#include


using namespace std;

int main() {


int year;

cout << "Enter a year: ";


cin >> year;

if (year % 4 == 0) {


if (year / 100 == 0) {
if (year % 400 == 0)
cout << year << " is a leap year.";
else
cout << year << " is not a leap year.";
}
else
cout << year << " is a leap year.";
}
else
cout << year << " is not a leap year.";

return 0;


}

10.


#include
using namespace std;

int main() {


int num, originalNum, remainder, result = 0;
cout << "Enter a three-digit integer: ";
cin >> num;
originalNum = num;

while (originalNum != 0) {


// remainder contains the last digit
remainder = originalNum \ 10;
result += remainder * remainder * remainder;
// removing last digit from the orignal number
originalNum /= 10;
}

if (result == num)


cout << num << " is an Armstrong number.";
else
cout << num << " is not an Armstrong number.";

return 0;


}
11.
#include
#include
#include
using std::cout;
using std::endl;

/********


1. Istalgan sonni ikkilik sanoq tizimiga o'tkazish.

Izoh
Написать функцию, принимающую на вход произвольное целочисленное значение и возвращающую строку, содержащую его представление в двоичной системе исчисления.


Butun sonni ikkilik sanoq tizimiga o'tkazuvchi funksiya yozing
deklaratsiya
voidNumberAsBinary(
char* _result,// natija satri
unsignedint _number// istalgan qiymat
)

kutilayotgan natija.


Misol uchun , Bizga 13 qiymat berilgan funksiya qaytarishu kerak "1101".

Dasturni tekshirish.


Dastur 10 ta qiymatni qaytarishi kerak va qiymatlar 0 dan 512 gacha diapazonda bo'lishi kerak.
********/

void numberAsBinary(char* _result, unsigned int _number);

int main()
{
setlocale(LC_ALL, "Russian");
char* result = new char[]; //massiv hajmi oldindan e'lon qilinishi zarur
unsigned int number;

srand((unsigned)time(NULL));


for (int i = 1; i <= 10; i++)
{
number = rand() % 513;
numberAsBinary(result, number);
cout << "Son " << number << " ikkilik sanoq tizimida: " << result << endl;
}

delete[] result;


system("pause");
return 0;
}

void numberAsBinary(


char* _result,
unsigned int _number
)
{
static int i;
i = 0;

if (_number != 1)


numberAsBinary(_result, _number / 2);

_result[i] = (_number ) + '0'; // 2 ga qoldiqli bo'linishi kerak


i++;
_result[i] = '\0';
}
12.
#include
#include
using namespace std;
int main()
{
int s=0,n;
cout<<"n=";cin>>n;
listl;
list::iterator it;
l.push_back(0);
for(int i=1;i {
l.push_front(i);
}
for(list::iterator it=l.began();it!=l.end();it++)
{
s+=*it:
cout<<*it<<"+";
}
cout<<"="< main();
return 0;
}

13.
#include
enum Colors {
COLOR_GRAY,
COLOR_PINK,
COLOR_BLUE,
COLOR_PURPLE,
COLOR_RED
};
void printColor(Colors color)
{
switch (color)
{
case COLOR_GRAY:
std::cout << "Gray";
break;
case COLOR_PINK:
std::cout << "Pink";
break;
case COLOR_BLUE:
std::cout << "Black";
break;
case COLOR_PURPLE:
std::cout << "Purple";
break;
case COLOR_RED:
std::cout << "Red";
break;
default:
std::cout << "Unknown";
break;
}
}
int main()
{
printColor(COLOR_BLUE);
return 0;
}

14.
#include


#include
int main()
{
std::deque deq;
for (int cunt=0; cont < 4; ++cont)
{
deq.push_back(count); // âñòàâëÿåì ÷èñëà â êîíåö ìàññèâà
deq.push_front(10 - cont); // âñòàâëÿåì ÷èñëà â íà÷àëî ìàññèâà
}
deq.pop_bask();
deq.pop_front();
for (int index=0; index < deq.sizeof(); ++index)
std::cout << deque[index] << ' ';
std::cout << '\n';
}

15.


#include
#include
using namespace std;
int main(){{
int l;
vectoraa;
//cout << " Familiyani kiriting: ";
char bb;
//sin>>b;
while(bb!="0") {aa.push_back(bb);cin>>bb;
}
if(aa[aa.size-1] == 'v' ){ aa.pop_back();
a.pop_bask();}
if(aa[aa.size-1] == 'a' ){ aa.pop_back();
aa.pop_back();aa.pop_back();}
cout << "\n Natija: \n ";
for(int i = 0; i < a.size; i++)
{cout<cout<}

}
16.

#include
using namespace std;
class node{
public:
int info;
node *left;
node *right;
};
int intrave(node *tree){
if(tree!=NULL) {
intrave(tree->left);
cout<info<<",";
intrave(tree->right);
}
return 0; };
int main(){
node*tree=0;
node*next=0;
int n, key;
cout<<" n= " ;
cin>>n;
for(int i=1; i<=n;i++){
node *p=new node;
node *last=new node;
cin>>key;
p->info=key;
p->left=0;
p->right=0;
if(i==1){tree=p; next=tree; continue;
}next=tree;
while(1){last=next;
if(p->infoinfo)next=next->left;
else next=next->right;
if(next==0) break;
}

if(p->infoinfo) p->left=last; else p->right=last;


}
intrave(tree);}

17.
#include


using namespace std;
int main()
{ int n;
cout << "Navbat elementlari sonini kiriting:";
cin >> n;
queue q, p;
cout << "Navbat elementlarini kiriting:\n";
for(int i = 1; i <= n; i ++)
{ int x;
cin >> x;
q.push(x); }
int c = 1;
int mx = -1e9, k=1;
while(q.sizeof()) { p.push(q.front());
if(q.front() > mx)
{ mx = q.front();
k=c;
}
q.pop();
c++;
}
c = 1;
while(p.sizeof())
{
q.push(p.front());
p.pop();
if(c == k)
q.push(0);
c++;
}
cout << "Navbatdagi eng katta element: " << mx << '\n';
cout << "Navbat:";
while(q.sizeof())
{
cout<< q.front() << ' ';
q.pop();
}
}

18.


include

using namespace std;

class Node{
public:
int info;
Node *left;
Node *right;
};

void pretrave(Node *tree)


{
if(tree != 0){
int a = 0, b = 0;
if(tree->left != 0)
a = tree->left->info;
if(tree->right != 0)
b = tree->right->info;

std::cout << tree->info << " - chapida "


<< a << " - o'ngida " << b << endl;
pretrave(tree->left);
pretrave(tree->right);
}
//return 0
}

int main(){


Node *tree = 0;
Node *next = 0;

int n, key;


cout << "Daraxt qiymatlari soni: "; cin >> n;

for(int i = 0; i < n; ++i){


cout << "Qiymat: "; cin >> key;
Node *p = new Node;
Node *last = new Node;

p->info = key;


p->left = 0;
p->right = 0;

if(i == 0){


tree = p;
next = tree;
continue;
}

next = tree;

while(1){
last = next;
if(p->info < next->info)
next = next->left;
else
next = next->right;

if(next == 0)


break;
}

if(p->info < last->info)


last->left = p;
else
p->right = p;
}
pretrave(tree);

}
19.

#include
#include
using namespace std;

class Talaba{


public:
string ism, familiya;
int yosh, ball;
};

int main(){


int n ;
cin >> n;
Talaba talabalar[n];
cout << "Talabalar haqidagi ma'lumotlarni Ism Familiya Yosh Ball ko'rinishida kiriting\n";
int indexmin;
for(int i = 0; i < n; ++i){
cin >> talabalar[i].familiya >> talabalar[i].ism
>> talabalar[i].yosh >> talabalar[i].ball;
}
for(int j=0; jstring min=talabalar[j].familiya;
string x=talabalar[j].familiya;
for(int i=j;iif(talabalar[i].familiya<=min) // min-nogo
{
min=talabalar[i].familiya;
indexmin=i;} // elementa
}
talabalar[j].familiya=min;
talabalar[indexmin].familiya=x;
}
for(int i = 0; i < n; ++i){
cout<< talabalar[i].familiya <<" "<< talabalar[i].ism
<<" "<< talabalar[i].yosh <<" "<< talabalar[i].ball<}
main();
}

Yüklə 154,61 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin