Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti 2-amaliy ish


Download 1.3 Mb.
Sana30.04.2023
Hajmi1.3 Mb.
#1415716


MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI


2-AMALIY ISH
Fan nomi: Dasturlash 2
Guruh: SWD006-2 (223-22)
Bajardi: Ibodova Shaxruza
Tekshirdi: Mirzayeva Gulmira

Toshkent 2023


1-topshiriq



#include


#include

using namespace std;

int main() {
set nums = {1.2, 3.4, 5.6, 7.8, 9.1};
set sum_set;
for (auto i = nums.begin(); i != nums.end(); i++) {
for (auto j = i; j != nums.end(); j++) {
if (i != j) {
float sum = *i + *j;
sum_set.insert(sum);
}
}
}
set diff_set;
for (auto i = nums.begin(); i != nums.end(); i++) {
for (auto j = i; j != nums.end(); j++) {
if (i != j) {
float diff = abs(*i - *j);
diff_set.insert(diff);
}
}
}

sum_set.erase(0.0f);


sum_set.erase(nums.size());
diff_set.erase(0.0f);
set sorted_set(sum_set);
sorted_set.insert(diff_set.begin(), diff_set.end());

cout << "Saralangan to'plam: ";


for (auto num : sorted_set) {
cout << num << " ";
}
cout << endl;

return 0;


}
Birinchidan, dastur *nums* deb nomlangan suzuvchi nuqtali raqamlar to'plamini yaratadi.
Keyinchalik, dastur "sum_set" deb nomlangan bo'sh to'plamni yaratadi, bu "sonlar" dan juft elementlarning yig'indilarini saqlash uchun ishlatiladi.
Keyin dastur raqamlardagi elementlarning har bir juftligini aylanib o'tadi va ularning yig'indisini “sum_set”ga qo'shadi.
Xuddi shunday, dastur 'diff_set' deb nomlangan bo'sh to'plamni yaratadi, bu 'raqamlar' dan juft elementlarning farqlarini saqlash uchun ishlatiladi.
Dastur har bir juft elementni raqamlar bilan aylanib o'tadi va ularning mutlaq farqini diff_set'ga qo'shadi.
Keyin dastur “sum_set” va “diff_set” dan har qanday takroriy qiymatlarni olib tashlaydi.
Nihoyat, dastur “sum_set” va “diff_set” birikmasidan iborat “sorted_set” nomli yangi to‘plamni yaratadi.“Sorted_set”dagi qiymatlar o‘sish tartibida tartiblangan.

Keyin dastur “Saralangan to’plam”-dagi qiymatlarni konsolga chop etadi.

2-topshiriq
Kompyuter viruslari haqida (nomi, zarar darajasi, tarqalish tezligi, turi, va
internet_id) to’plam berilgan. Kompyuter viruslarini nomi va tarqalish tezligi
bo’yicha qidiruvchi hamda topilgan natijani faylga saqlashni taklif qiladigan
dastur tuzing.


#include


#include
#include
#include

using namespace std;

struct Virus {
string name;
int damage;
float spread_rate;
string virus_type;
string internet_id;
};

int main() {


vector viruses = {
{"Worm32", 5, 0.8, "Worm", "ID001"},
{"Trojan51", 10, 0.5, "Trojan", "ID002"},
{"Ransomware13", 15, 0.3, "Ransomware", "ID003"},
{"Adware24", 2, 0.2, "Adware", "ID004"},
{"Spyware10", 8, 0.4, "Spyware", "ID005"}
};

string name_query;


cout << "Qidirish uchun virus nomini kiriting: ";
getline(cin, name_query);
float spread_rate_query;
cout << "Qidirish uchun tarqalish tezligini kiriting: ";
cin >> spread_rate_query;
vector matching_viruses;
for (auto virus : viruses) {
if (virus.name == name_query && virus.spread_rate == spread_rate_query) {
matching_viruses.push_back(virus);
}
}
char save_file_query;
cout << "Natijalar faylga saqlansinmi? (y/n): ";
cin >> save_file_query;

if (save_file_query == 'y' || save_file_query == 'Y') {


string filename;
cout << "Fayl nomini kiriting: ";
cin >> filename;

ofstream outfile(filename);

for (auto virus : matching_viruses) {
outfile << virus.name << "," << virus.damage << "," << virus.spread_rate << "," << virus.virus_type << "," << virus.internet_id << endl;
}
outfile.close();

cout << "Natijalar " << filename << endl;


}
else {

cout << "Mos keluvchi viruslar:" << endl;


for (auto virus : matching_viruses) {
cout << virus.name << "," << virus.damage << "," << virus.spread_rate << "," << virus.virus_type << "," << virus.internet_id << endl;
}
}
return 0;
}

Bu dastur avval "Virus" tuzilmalarining vektorini yaratadi, ularning har biri virus nomi, zarar darajasi, tarqalish tezligi, turi va internet identifikatorini o'z ichiga oladi. Keyin u foydalanuvchidan virus nomini va izlash uchun tarqalish tezligini kiritishni taklif qiladi.


Keyin dastur vektordagi har bir virusni aylanib chiqadi va uning nomi va tarqalish tezligi foydalanuvchi so‘roviga mos kelishini tekshiradi. Agar virus mos keladigan bo'lsa, u "moslashuvchi_viruslar" deb nomlangan yangi vektorga qo'shiladi.
Keyin dastur foydalanuvchiga natijalarni faylga saqlashni xohlashini so'raydi. Agar shunday bo'lsa, dastur foydalanuvchidan fayl nomini so'raydi va mos keladigan viruslarni ushbu faylga yozadi. Agar ular natijalarni faylga saqlashni istamasalar, dastur tugaydi

Download 1.3 Mb.

Do'stlaringiz bilan baham:




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