
- •Лабораторна робота №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>
typedef float** F2D;
F2D Create_2D_Mas(F2D m,int str,int stp);
void Vvod_2D_Mas(F2D m,int str,int stp);
void Obrobka_2D_Mas(F2D m,int str,int stp);
void Print_2D_Mas(F2D m,int str,int stp);
void Clear_2D_Mas(F2D m,int str,int stp);
F2D Create_2D_Mas(F2D m,int str,int stp)
{
float *m1;
m1=new float[str*stp];
m=new float*[str];
for(int i=0; i<str;i++)
m[i]=&m1[stp*i];
return m;
}
void Vvod_2D_Mas(F2D m,int str,int stp)
{
for(int i=0;i<str;i++)
for(int j=0;j<stp;j++)
{
scanf("%f",&m[i][j]);
}
}
void Obrobka_2D_Mas(F2D m,int str,int stp)
{
float sum;
int i, j, kol;
printf("Masiv\n");
Print_2D_Mas( m, str, stp);
for(j=0; j<stp; j++)
{
sum=0.0;
kol=0;
for(i=0;i<str;i++)
if(m[j][i]<0)
{
sum+=m[j][i];
kol++;
}
printf("Negatuvnuh V %d stroke=%d ih suma=%.2f\n",j+1, kol,sum); // виведення результатів
}
}
void Print_2D_Mas(F2D m,int str,int stp)
{
for(int i=0;i<str;i++)
for(int j=0;j<stp;j++)
{
printf("%6.2f ",m[i][j]);
if(j==stp-1) printf("\n");
}
}
int main()
{
clrscr();
F2D arr = NULL; // масив не створено
int str=2, stp=2;
Create_2D_Mas(arr,str,stp);
Vvod_2D_Mas(arr,str,stp);
Obrobka_2D_Mas(arr,str,stp);
Print_2D_Mas(arr,str,stp);
getch();
return 0;}
Тестування:
Для перевірки правильності роботи програми введемо в неї дані, при введені яких результат заздалегідь відомий.
Наприклад сформуємо масив 3х3 з 9 елементів такого виду:
1 2 3
-1 -2 -3
1 -2 3
З введених даних наочно видно, що негативних елементів в 1 стрічці 0, їх сума 0, негативних елементів в другій стрічці 3, їх сума -6, негативних елементів в 3 стрічці 1, їх сума -2
Тепер введемо ці ж дані в програму і перевіримо результат.
1
2
3
-1
-2
-3
1
-2
3
Masiv
1 2 3
-1 -2 -3
1 -2 3
Negatuvnuh V 1 stroke = 0 ih suma=0
Negatuvnuh V 2 stroke = 3 ih suma=-6
Negatuvnuh V 3 stroke = 1 ih suma=-2
Приклад виконання завдання 3
Варіант 6. Розробити функцію визначення кубічного кореня з заданого члена і програму, що використовує цю функцію для перетворення кожного елемента даного одновимірного динамічного масиву.
Дана програма буде складатися з основної функції int main(), та п’яти функцій для виконання поставленої задачі:
float()*Create_1D_Mas(float*m,int n) - функція призначена для створення масиву;
void Vvod_1D_Mas(float*m,int n) - функція призначена для введення масиву
float KorKub(float val) - функція призначена для знаходження кубічного кореня з числа;
void Kor_Kub_1D_Mas(float*m,int n) - функція призначена для перетворення кожного елемента даного одновимірного динамічного масиву в його кубічний корінь;
void Print_1D_Mas(float*m,int n) - функція призначена для виведення масиву;
void Clear_1D_Mas(float*m) - функція призначена для очистки масиву;
Програма буде мати наступний вигляд: