- •Загальні положення
- •1.1 Мета роботи
- •1.2 Методичні вказівки до організації самостійної роботи студентів
- •1.2.2 Структура програми
- •If (а) оператор 1 ;
- •1.3 Контрольні запитання
- •1.4 Варіанти індивідуальних завдань
- •2 Розв’язання задач з використанням масивів
- •2.1 Мета роботи
- •2.2 Методичні вказівки до організації самостійної роботи студентів
- •Приклад 2.1 Знайти у масиві mas найменший елемент та його індекс.
- •Приклад 2.2Відсортувати масив mas дійсних чисел розміром 10 елементів за зменшенням.
- •2.3 Контрольні запитання а завдання
- •3.4 Варіанти індивідуальних завдань
- •3Робота з рядками
- •3.1 Мета роботи
- •3.2 Методичні вказівки до організації самостійної роботи студентів
- •3.3 Контрольні запитання та завдання
- •4Робота зі структурами
- •4.1 Мета роботи
- •4.2 Методичні вказівки до організації самостійної роботи студентів
- •4.3 Контрольні запитання та завдання
- •4.4 Варіанти індивідуальних завдань
- •5Використання функцій при розробці програм
- •5.1 Мета роботи
- •5.2 Методичні вказівки по організації самостійної роботи студентів
- •5.3 Контрольні запитання та завдання
- •5.4 Варіанти індивідуальних завдань
- •6 Пространства имен (поименованные области)
- •6.1 Мета роботи
- •6.2 Вказівки щодо організації самостійної роботи студентів
- •6.3 Порядок виконання роботи
- •2.7 Контрольний приклад
- •7 Пошук і сортування
- •7.1 Мета роботи
- •7.2 Методичні вказівки до організації самостійної роботи студентів
- •7.2.1 Лінійний пошук
- •7.2.2 Пошук розподілом навпіл (двійковий пошук)
- •7.2.3 Сортування вставками
- •7.2.4 Метод пухирця
- •7.2.5 Сортування перерахуванням
- •7.2.6 Швидке сортування
- •7.2.7 Сортування злиттям
- •7.3 Контрольні запитання
- •Перелік посилань
2.7 Контрольний приклад
Описать структуру с именем STUDENT, содержащую следующие поля:
- фамилия и инициалы;
- средний бал успеваемости;
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры;
- вывод полного списка на экран;
- поиск студента с наихудшей успеваемостью.
Пример решения:
Текст файла main.cpp
#include"student.h"
using namespace grup;
int main()
{
int n;
cout<<"Vvedite kolichestvo studentov=";
char kolTMP[10]; //
cin.getline(kolTMP,10); //Делаем защиту от
n=atoi(kolTMP); //ошибочного ввода
if(!n) return 1;
Stud *PMM=new Stud[n];
input(PMM,n);
output(PMM,n);
Stud *StudMin=serchMin(PMM,n);
cout<<"Student s minim balom:"<<endl;
cout<<StudMin->FIO<<'\t'<<StudMin->bal<<endl;
cin.get();
delete []PMM;
return 0;
}
Текст файла student.h
#include<iostream>
using namespace std;
namespace grup
{
struct Stud
{
char FIO[80];
float bal;
};
void input(Stud *IB,int n);
//Функция для ввода с клавиатуры
void output(Stud *IB,int n);
//Функция для вывода на экран
Stud *serchMin(Stud *IB,int n);
//Функция для нахождения студента с минимальным бaлом
}// конец namespace grup
void grup::input(Stud *IB,int n)
//Функция для ввода с клавиатуры
{
for(int i=0;i<n;i++)
{
cout<<"Vvedite imja Studenta "<<endl;
cin.getline(IB[i].FIO,80);
char strTMP[10];
cout<<"Vvedite bal Studenta "<<endl;
cin.getline(strTMP,80);
IB[i].bal=atoi(strTMP);
}
};
void grup::output(Stud *IB,int n)
//Функция для вывода на экран
{
for(int i=0;i<n;i++)
{
cout<<IB[i].FIO<<'\t'<<IB[i].bal<<endl;
}
};
grup::Stud *grup::serchMin(Stud *IB,int n)
//Функция для нахождения студента с минимальным бaлом
{
Stud *Min;
Min=&IB[0];
for(int i=1;i<n;i++)
if(Min->bal>IB[i].bal)
Min=&IB[i];
return Min;
};
7 Пошук і сортування
7.1 Мета роботи
Отримати практичні навички програмування на С++ задач, де використовується пошук і сортування інформації.
7.2 Методичні вказівки до організації самостійної роботи студентів
Одна з дій, що найбільш часто зустрічається в програмуванні — пошук. Існує кілька основних способів пошуку і для них створено багато різних алгоритмів. При виконанні роботи варто виходити з допущення, що група даних, у якій необхідно відшукати заданий елемент, фіксована.
Сортування — це задача розташування довільних об'єктів у порядку (не-) зменшення чи (не-)зростання деякої ознаки. Існує велика кількість методів сортування, що відрізняються друг від друга як тимчасовою складністю, так і універсальністю.
7.2.1 Лінійний пошук
Якщо немає ніякої додаткової інформації про розшукувані дані, то очевидний підхід — простий послідовний перегляд масиву зі збільшенням крок за кроком тієї його частини, де бажаного елемента не виявлено.Умови закінчення пошуку: елемент знайдено чи весь масив переглянуто і збігу не виявлено.
7.2.2 Пошук розподілом навпіл (двійковий пошук)
Пошук може бути більш ефективним, якщо дані будуть упорядковані. Основна ідея – вибрати випадково деякий елемент аm і порівняти його з аргументом пошуку х. Якщо він дорівнює х, то пошук закінчується, якщо він менше х, то всі елементи з індексами, меншими чи рівними m, можна виключити з подальшого пошуку; якщо ж він більше х, то виключаються індекси, більші чи рівні m.