Лабораторная работа №3 Абдурасулов Зохиржон Ташкент 2021



Download 363,88 Kb.
Sana13.01.2022
Hajmi363,88 Kb.
#354016
TuriЛабораторная работа
Bog'liq
Абдурасулов Зохиржон


МИНИСТЕРСТВО РАЗВИТИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ТЕЛЕКОММУНИКАЦИЙ

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРЕЗМИ

Кафедра: Телекоммуникационные технологии

Предмет: Структура данных и алгоритмы

Группа: 420-20

Лабораторная работа №3

Выполнил: Абдурасулов Зохиржон

Ташкент - 2021

Вариант №4



Задание 1: Дана структура. Считать данные структур с файлов. Сортировать данные методом прямого включения. Вывести на экран показатели эффективности (количество сравнений и замен).

// ТРАВЫ (название, род, цвет, высота)

#include

#include

using namespace std;

struct grass { char Name[32]; char Genus[32]; char Colour[32]; int Heigh; };

int main()

{

setlocale(LC_ALL, "russian");



grass S[4], temp;

int k_s = 0, k_z = 0;

for (int i = 0; i < 4; i++)

{

cout << "----------------------------------\n";



cout << "Название: ";

cin >> S[i].Name;

cout << "Род: ";

cin >> S[i].Genus;

cout << "Цвет: ";

cin >> S[i].Colour;

cout << "Высота: ";

cin >> S[i].Heigh;

}

cout << "\n\nДанные сортируются...\n";



for (int i = 0; i < 4; i++)

{

for (int j = 0; j < 4; j++)



{

k_s++;


if (S[i].Heigh < S[j].Heigh)

{

k_z++;



temp = S[i];

S[i] = S[j];

S[j] = temp;

}

}



}

cout << "\n\n\nДанные отсортированы!\n\n\n" << endl;

cout << "Количество сравнений: " << k_s << endl;

cout << "\nКоличество замен: " << k_z << endl;

cout << "\n\nДля вывода данных нажмите Enter!\n\n";

_getch();

for (int i = 0; i < 4; i++)

{

cout << "\n----------------------------------\n";



cout << "\nНазвание: " << S[i].Name;

cout << "\nРод: " << S[i].Genus;

cout << "\nЦвет: " << S[i].Colour;

cout << "\nВысота: " << S[i].Heigh;

}

return 0;



}

Результат:





Задание 2: Дана структура. Считать данные структур с файлов. Сортировать данные методом прямого выбора. Вывести на экран показатели эффективности (количество сравнений и замен).

#include

#include

#include

using namespace std;

struct MyStruct {

string imya;

string rod;

string svet;

int visota;

};

void sort(MyStruct *p, int n) {



int min = 0;

int minInt = 0;

for (int startIndex = 0; startIndex < n-1; ++startIndex)

{

int smallestIndex = startIndex;



for (int currentIndex = startIndex +1; currentIndex < n; ++currentIndex) {

if (p[currentIndex].visota < p[smallestIndex].visota) {

smallestIndex = currentIndex;

}

}



swap(p[startIndex], p[smallestIndex]);

}

};



int main() {

setlocale(LC_ALL, "russian");

MyStruct m[100];

int n = 0;

fstream fc;

fc.open("MyFile.txt", fstream::in | fstream::out | fstream::app);

if (!fc.is_open()) {

cout << "îøèáêà !";

}

else {


string s;

while (!fc.eof()) {

getline(fc, s);

m[n].imya = s;

getline(fc, s);

m[n].rod = s;

getline(fc, s);

m[n].svet = s;

getline(fc, s);

m[n].visota = stoi(s);

n++;

}

sort(m, n);



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

cout << i + 1 << ".\n";

cout << " imya: " << m[i].imya << "\n rod: " << m[i].rod << "\n svet: " << m[i].svet << "\n visota: " << m[i].visota << "\n------------------------------------\n";

}

}



fc.close();

return 0;

}



Задание 3: Дана структура. Считать данные структур с файлов. Сортировать данные методом прямого обмена (пузырьковая). Вывести на экран показатели эффективности (количество сравнений и замен).

Вариант: Студент (имя, группа, возраст, область)

#include

#include

#include

#include

#include

using namespace std;

struct MyStruct {

string imya;

string gruppa;

string vozrast;

string oblast;


};
void sort(MyStruct *p, int n) {

for(int i=0; i

for(int j=0; j

if(p[j].imya>p[j+1].imya)

swap(p[j], p[j+1]);

}

}



};

int main() {

setlocale(LC_ALL, "russian");

MyStruct m[100];

int n=0, l;

fstream fc;

fc.open("MyFile.txt", fstream::in | fstream::out | fstream::app);

if(!fc.is_open()) {

cout << "îøèáêà !";

}

else {



string s;

while(!fc.eof()) {

getline(fc, s);

m[n].imya = s;

getline(fc, s);

m[n].staj = s ;

getline(fc, s);

m[n].oblast = s;

getline(fc, s);

m[n].gruppa = s;

n++;

}

sort(m,n);



for(int i=0; i

cout << i+1 << ".\n";

cout << " Imya: " << m[i].imya << "\n vozrast: " << m[i].vozrast<< "\n oblast: " << m[i].oblast<< "\n gruppa: " << m[i].gruppa<< "\n------------------------------------\n";

}

}



fc.close();

return 0;



}


Download 363,88 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish