
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Приклад 3 виконання завдання №3
Задача “Студент” (прізвище, вік).
Лістинг програми
#include "stdafx.h"
#include <iostream.h>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
struct structura{ //ініціалізація структури згідно варіанту
char name[20];
int age;
}str,str1;
template <class T>
class S //клас для роботи з структурою
{
private:
vector<T>st; //динаміний масив для роботи з структурою
public:
S(int n); //конструктор
print(void); //функція для виводу масиву
insert(void); //функція для вставки структури в масив
sort(void); //функція для сортування масиву структур
float sum(void); //функція для знаходження суми по полю структури age
erase(int n); //функція для видалення структури з масиву
};
template <class T> //шаблон класу
S<T>::S(int n) //описання конструктора
{
for(int i=0; i<n; i++)
{
cout << "Enter name["<<i<<"]=";
cin >>str.name;
cout << "Enter age["<<i<<"] =";
cin >>str.age;
st.push_back(str);
}
};
template <class T>
S<T>::print() //описання функції для виводу масиву
{
for(int i=0; i<st.size(); i++)
{
cout <<"\nname["<<i<<"]="<<st[i].name;
cout <<"\nage["<<i<<"] ="<<st[i].age;
}
};
template <class T>
S<T>::insert() //описання функції для вставки структури в масив
{
cout<<"\n\nInsert\n";
cout << "Enter name=";
cin >>str.name;
cout << "Enter age=";
cin >>str.age;
st.push_back(str);
};
template <class T>
S<T>::sort() //описання функції для сортування масиву структур
{
for(int i=0;i<st.size()-1;i++)
for(int j=i+1;j<st.size();j++)
{
if(st[i].age<st[j].age)
{
str1=st[i];
st[i]=st[j];
st[j]=str1;
}
}
}
template <class T>
S<T>::erase(int n)//описання функції для видалення структури з масиву
{
if (n>=0 && n<=st.size())
{
st.erase(st.begin()+n,st.begin()+n+1);
}
else cout << "\nIncorrect position\n";
};
template <class T>
float S<T>::sum() // описання функції для знаходження суми по полю структури age
{
float s=0;
for(int i=0; i<st.size(); i++)
s=s+st[i].age;
return s;
};
int main(int argc, char* argv[]) //головна програма
{
int N=0,k;
cout << "\nEnter number of element =";
cin >> N;
S<structura> x(N); //ініціалізація динамічного масиву
x.print(); //виклик функції print()
x.insert(); //виклик функції insert()
x.print(); //виклик функції print()
cout<<"\nSortuvanie\n";
x.sort(); //виклик функції sort()
x.print(); //виклик функції print()
cout<<"\nsum="<<x.sum();
cout<<"\n\nEnter position when erase\n";
cin>>k;
x.erase(k); //виклик функції erase(k)
x.print(); //виклик функції print()
return 0;
}
Тестування:
Enter number of element =5
Enter name[0]=Popov
Enter age[0] =45
Enter name[1]=Sidorov
Enter age[1] =32
Enter name[2]=Bobrov
Enter age[2] =22
Enter name[3]=Novikov
Enter age[3] =51
Enter name[4]=Filatov
Enter age[4] =33
Insert
Enter name=Kotov
Enter age=24
name[0]=Popov
age[0] =45
name[1]=Sidorov
age[1] =32
name[2]=Bobrov
age[2] =22
name[3]=Novikov
age[3] =51
name[4]=Filatov
age[4] =33
name[5]=Kotov
age[5] =24
Sortuvanie
name[0]=Novikov
age[0] =51
name[1]=Popov
age[1] =45
name[2]=Filatov
age[2] =33
name[3]=Sidorov
age[3] =32
name[4]=Kotov
age[4] =24
name[5]=Bobrov
age[5] =22
sum=207
Enter position when erase
4
name[0]=Novikov
age[0] =51
name[1]=Popov
age[1] =45
name[2]=Filatov
age[2] =33
name[3]=Sidorov
age[3] =32
name[4]=Bobrov
age[4] =22