
- •Лабораторна робота №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
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Лістинг програми
#include<stdio.h>
#include<conio.h>
#include<math.h>
float KorKub(float val);
float()*Create_1D_Mas(float*m,int n);
void Vvod_1D_Mas(float*m,int n);
void Kor_Kub_1D_Mas(float*m,int n);
void Print_1D_Mas(float*m,int n);
void Clear_1D_Mas(float*m);
float()*Create_1D_Mas(float*m,int n)
{
m=new float[n];
return m;
}
void Vvod_1D_Mas(float*m,int n)
{
for(int i=0;i<n;i++)
scanf("%f",&m[i]);
}
float KorKub(float val)
{
float m=1.0/3.0;
return pow(val,m);
}
void Kor_Kub_1D_Mas(float*m,int n)
{
for(int j=0;j<n;j++)
m[j]=KorKub(m[j]);
}
void Print_1D_Mas(float*m,int n)
{
for(int j=0;j<n;j++)
printf("%6.2f ",m[j]);
printf("\n");
}
void Clear_1D_Mas(float*m)
{
if(m==NULL)
{
printf("masiv ne stvoreno");
}
if(m)
{
delete[m];
m=NULL;
}
}
int main()
{
clrscr();
float*arr;
int n=5;
Create_1D_Mas(arr,n);
printf("Введіть елементи масиву\n");
Vvod_1D_Mas(arr,n);
Kor_Kub_1D_Mas(arr,n);
printf("Вихідний масив::\n");
Print_1D_Mas(arr,n);
Clear_1D_Mas(arr);
getch();
return 0;
}
Тестування:
Для перевірки правильності роботи програми введемо в неї дані, при введені яких результат заздалегідь відомий.
Наприклад сформуємо масив з 5 елементів такого виду:
8 225 27 64 1
З введених даних наочно видно, що після перетворення даних елементів на їх кубічні корені масив буде мати вигляд:
2 15 3 4 1
Тепер введемо ці ж дані в програму і перевіримо результат.
Введіть елементи масиву
8
225
27
64
1
Вихідний масив:
2 15 3 4 1
Контрольні запитання
Що таке динамічний масив?
Що таке динамічна пам’ять?
Що таке покажчик?
Принцип розподілу одновимірних динамічних масивів у пам’яті.
Принцип розподілу двовимірних динамічних масивів у пам’яті.
Особливості використання бібліотеки alloc.h.
Особливості описання одновимірних і двовимірних динамічних масивів.
Особливості обробки динамічних масивів з використанням покажчика.
Організація вводу/виводу динамічного масиву.
Передача динамічного масиву як вхідного параметру функції.
Динамічні масиви як вихідні параметри функції.
Особливості розробки функцій, параметрами яких є динамічні масиви.
Розробити функцію, яка повертає в головну програму суму елементів заданого масиву.
Розробити функцію, яка повертає в головну програму середнє арифметичне значення елементів заданого масиву.
Розробити функцію, яка повертає в головну програму значення дисперсії елементів заданого масиву.
Розробити функцію, яка повертає в головну програму суму від’ємних елементів заданого масиву.
Розробити функцію, яка повертає в головну програму суму додатних елементів заданого масиву.
Лабораторна робота №2
Тема: Основні принципи роботи з текстовими та двійковими файлами методами структурного програмування.
Мета: Набути навики роботи з текстовими та двійковими файлами за допомогою методів структурного програмування.
Порядок виконання роботи
Ознайомитися з теоретичними відомостями.
Розробити набір функцій для роботи з текстовими файлами, який обов’язково повинен включати наступні функції:
створення текстового файлу;
виведення змісту текстового файлу;
дозапису рядків в текстовий файл;
та функцію, відповідно до завдання 1 і головну програму, яка їх використовує (викликає) для обробки текстового файлу. Для кожної розробленої функції визначити та обґрунтувати список вхідних і вихідних параметрів та їх типів.
Розробити набір функцій для роботи з бінарними файлами, який обов’язково повинен включати наступні функції:
створення бінарного файлу;
виведення змісту бінарного файлу;
дозапису рядків в бінарний файл;
та функцію, відповідно до завдання 2 і головну програму, яка їх використовує (викликає) для обробки бінарного файлу. Для кожної розробленої функції визначити та обґрунтувати список вхідних і вихідних параметрів та їх типів.
Розробити 2-3 теста для перевірки правильності роботи розроблених комплексів програм.
Оформити звіт, зробити висновки.