You are on page 1of 4

Міністерство освіти і науки України

Національний технічний університет


«Дніпровська політехніка»

ЗВІТ
Про виконання лабораторної роботи
з дисципліни «Алгоритмізація та структури даних»
Лабораторна робота №5
«Основи роботи одновимірними та двовимірними масивами в C++»
Варіант 22

Роботу виконав:
студент гр. 121-21-1
Мельніков Дмитро Владиславович

НТУ «ДП» – 2021


Умова (Завдання 1)
Дано масив розміру N. Знайти номер його першого локального мінімуму
(локальний мінімум – це елемент, який менше будь-якого зі своїх сусідів), а
також номер його останнього локального максимуму (локальний максимум – це
елемент, який більше будь-якого зі своїх сусідів).

Код (Завдання 1)

1. #include <iostream>
2. #include <time.h>
3. using namespace std;
4.
5. int main()
6. {
7. setlocale(LC_ALL, "ru");
8. const int N=8;
9. srand(time(NULL));
10. int a[N], max, min, num1, num2;
11. cout << "Массив чисел:" << endl;
12.
13. for (int i = 0; i < N; i++)//Заполнение массива случайными числами от 1 до 30
14. {
15. a[i]= rand () % 30 + 1;
16. cout << a[i] << "\t";
17. }
18. cout << endl<<endl;
19.
20. max = a[0];
21.
22. for (int i = 0; i < N; i++)
23. {
24. if (a[i]>a[i-1] && a[i]>a[i+1])//Локальный максимум
25. {
26. max = a[i];
27. num1 = i;
28. }
29. }
30. min = a[0];
31. for (int i = 0; i < N; i++)
32. {
33. if (a[i] < a[i - 1] && a[i] < a[i + 1])//Локальный минимум
34. {
35. min = a[i];
36. num2 = i;
37. break;//При первом локальном минимуме выходить из цикла if
38. }
39. }
40.
41. cout << "Первый локальный минимум находится под номером " << num2 << endl<<endl << "Последний
локальный максимум находится под номером " << num1 << endl<<endl;
42. system("pause");
43. return 0;
44. }

Результати (Завдання 1)
Умова (Завдання 2)
Знайти середнє геометричне позитивних елементів кожного рядка матриці
Y(5x6), а також для кожного рядка визначити кiлькiсть нульових елементiв.

Код (Завдання 2)

1. #include <iostream>
2. #include <time.h>
3. #include <cmath>
4. using namespace std;
5. int main()
6. {
7. setlocale(LC_ALL, "ru");
8. const int M = 5;
9. const int N = 6;
10. int a[M][N], k=0;
11. double s, n = 0, mult = 1;
12. srand(time(NULL));
13. cout << "Массив чисел : " << endl;
14. for (int i = 0; i <M; i++)
15. {
16. for (int j = 0; j < N; j++)//Заполнение массива случайными числами от -10 до 10
17. {
18. a[i][j]= rand() % 20 ;
19. a[i][j] -= 10;
20. cout << a[i][j]<<"\t";
21.
22. }
23. cout << endl;
24. }
25.
26. for (int i = 0; i<M; i++)
27. {
28. for (int j = 0; j < N; j++)
29. {
30. if (a[i][j]>0)
31. {
32. n++;//Степень корня
33. }
34. if (a[i][j]>0)
35. {
36. mult=mult*a[i][j];//Произведение положительных чисел
37. }
38. }
39.
40. s = pow(mult, (1 / n));//Среднее геометрическое
41. cout << "s= " << s << endl;
42. }
43. for (int i = 0; i < M; i++)
44. {
45.
46.
47. for (int j = 0; j < N; j++)
48. {
49. if (a[i][j] == 0)
50. {
51. k++;//Кол-во нулей в строке
52. }
53. }
54. cout << "В рядке " << i << " " << k << " нулей\n";
55. k = 0;//Обнуление счетчика нулей на след. строку
56. }

Результати (Завдання 2)

Висновки

Під час лабораторної роботи було освоєно роботу з одномірними та


двомірними масивами в C++.

You might also like