Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti malumotlar tuzilmasi va algoritmlash Bajardi: Qobilov Ilhomjon


Download 186.11 Kb.
Sana29.07.2023
Hajmi186.11 Kb.
#1663552
Bog'liq
I algaritmlash


MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI



malumotlar tuzilmasi va algoritmlash


Bajardi: Qobilov Ilhomjon
Задания для самостоятельного решения
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы.
2. Abiturient: Фамилия, Имя, Отчество, Адрес, Оценки. Создать массив объектов. Вывести:
а) список абитуриентов, имеющих неудовлетворительные оценки; б) список абитуриентов, сумма баллов у которых не меньше заданной;
в) выбрать N абитуриентов, имеющих самую высокую сумму баллов, и список абитуриентов, имеющих полупроходной балл.

#include


#include
#include
#include // saralash uchun qoshilgan kutubxona

class Abiturient {


public:
Abiturient(const std::string& last_name, const std::string& first_name, const std::string& patronymic,
const std::string& address, const std::vector& marks)
: last_name(last_name), first_name(first_name), patronymic(patronymic), address(address), marks(marks) {}

int getSumOfMarks() const {


int sum = 0;
for (int mark : marks) {
sum += mark;
}
return sum;
}

bool hasUnsatisfactoryMarks() const {


for (int mark : marks) {
if (mark < 3) {
return true;
}
}
return false;
}

bool hasPassingScore(int passingScore) const {


return getSumOfMarks() >= passingScore;
}

const std::string& getLastName() const {


return last_name;
}

const std::string& getFirstName() const {


return first_name;
}

const std::string& getPatronymic() const {


return patronymic;
}

private:
std::string last_name;


std::string first_name;
std::string patronymic;
std::string address;
std::vector marks;
};

int main() {


// abituriyentlar malumotlari
std::vector abiturients = {
Abiturient("qodirov", "asliddin", "...vich", "yashnobod 5", {4, 5, 3, 4, 4}),
Abiturient("sotvoldiyeva", "sabrina", ".....yevna", "fargona 5", {3, 4, 3, 3, 4}),
Abiturient("homidov", "hamid", "....vich", "ул. Лермонтова, 10", {5, 5, 4, 5, 4}),
Abiturient("sharopov", "ogabek", "...vich", "turon 3", {4, 4, 4, 5, 3}),
Abiturient("sultonova", "muhlisa", ".... qizi", "beshqazoq 7", {5, 3, 5, 4, 4}),
};

// a) Qoniqarsiz baholarga ega abiturientlarni ro'yxatga olish (3 dan kam ball)


std::vector abiturientsWithUnsatisfactoryMarks;
for (const auto& abiturient : abiturients) {
if (abiturient.hasUnsatisfactoryMarks()) {
abiturientsWithUnsatisfactoryMarks.push_back(abiturient);
}
}

// б)qoniqarsiz bal toplagan abituriyentlar(otish bali - 20)


int specifiedScore = 20;
std::vector abiturientsWithPassingScore;
for (const auto& abiturient : abiturients) {
if (abiturient.hasPassingScore(specifiedScore)) {
abiturientsWithPassingScore.push_back(abiturient);
}
}

// в) eng past bal toplagan abituriyentlar (assumed N = 2)


int N = 2;
std::sort(abiturients.begin(), abiturients.end(), [](const Abiturient& a, const Abiturient& b) {
return a.getSumOfMarks() > b.getSumOfMarks();
});

std::vector topNAbiutrients(abiturients.begin(), abiturients.begin() + N);

// qora ekranda chiqadigan natijalar
std::cout << "Qoniqarsiz baho olgan abituriyentlar ro'yxati:\n";
for (const auto& abiturient : abiturientsWithUnsatisfactoryMarks) {
std::cout << abiturient.getLastName() << " " << abiturient.getFirstName() << " " << abiturient.getPatronymic() << "\n";
}

std::cout << "\nEng kamida ball to'plagan abituriyentlar ro'yxati " << specifiedScore << ":\n";


for (const auto& abiturient : abiturientsWithPassingScore) {
std::cout << abiturient.getLastName() << " " << abiturient.getFirstName() << " " << abiturient.getPatronymic() << "\n";
}

std::cout << "\ntanlangan " << N << " eng yuqori ball olgan abituriyentlar:\n";


for (const auto& abiturient : topNAbiutrients) {
std::cout << abiturient.getLastName() << " " << abiturient.getFirstName() << " " << abiturient.getPatronymic() << "\n";
}

return 0;


}

Задание 2
МЕТОДЫ СОРТИРОВКИ
Цель работы: ознакомиться с методами сортировки данных, наиболее часто применяемыми на практике.

  1. Дана последовательность, расположить ее четные (по значению) элементы по убыванию.

#include


#include
#include

int main() {


std::vector sequence = {5, 2, 8, 3, 10, 7, 6, 4, 9,13,24,123};

// juft elementlarini saralash


std::vector evenElements;
for (int num : sequence) {
if (num % 2 == 0) {
evenElements.push_back(num);
}
}

// elementlarni kamayish tartibida saralash


std::sort(evenElements.begin(), evenElements.end(), std::greater());
std::cout << "2ga bolinadigan, va kamayish tartibidagi elementlar: " ;
for (int num : evenElements) {
std::cout << num << " ";
}
std::cout << std::endl;

return 0;


}

Download 186.11 Kb.

Do'stlaringiz bilan baham:




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