Національний технічний університет України
«КПІ імені Ігоря Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи № 4
з дисципліни «Алгоритмізація та Програмування»
Тема «Масиви та вказівники»
Варіант: 18
Завдання на лабораторну роботу
1. Створити одновимірний та двовимірний масиви.2. Виконати початкову ініціалізацію всіх елементів масиву.3. Виконати маніпуляції з елементами масивів.У якості індивідуального завдання необхідно написати програму, в якій, на першому етапі, користувачем задається вимірність та розмірність масиву та спосіб ініціалізації (з клавіатури/консолі або випадковими числами) елементів масиву. На другому етапі необхідно скористатися варіантом індивідуального завдання з Додатку В-4.
Мій варіант 18:
Теоретичні відомості:
Масив це структура даних, представлена у вигляді групи осередків одного типу, об'єднаних під одним єдиним ім'ям. Масиви використовуються для обробки великої кількості однотипних даних. Ім'я масиву є покажчиком, що таке покажчики розповім трохи пізніше. Окрема осередок даних масиву називається елементом масиву. Елементами масиву можуть бути дані будь-якого типу. Масиви можуть мати як одне, так і більше одного вимірювань. Залежно від кількості вимірювань масиви діляться на одномірні масиви, двовимірні масиви, тривимірні масиви і так далі до n-мірного масиву. Найчастіше в програмуванні використовуються одномірні і двовимірні масиви
Код програми:
//Череватий Андрій Олександрович 12.11.2021 Лабораторна робота №4 Алгоритмізація та програмування 18 варіант
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int answer, lengthArr1, lengthArr2Dim1, lengthArr2Dim2;
printf("Length of the first array: ");
scanf("%d", &lengthArr1);
int arr1[lengthArr1];
printf("Choose the way\n1 - keyboard input;\n2 - cmd parametrs;\nanything else - random numbers\n");
printf("****************************\n>");
scanf("%d", &answer);
if (answer == 1) {
for(int i = 0; i < lengthArr1; i++) {
printf("Element %d: ", i);
scanf("%d", &arr1[i]);
}
printf("Filling is finished\n");
}
else if (answer == 2) {
printf("CMD parametrs should look like this \"1 2 3 4 5 6\".\nThe result will be: arr1[0] = 1, arr2[0][1] = 4, arr2[1][0] = 5\n");
if (argc - 1 < lengthArr1) {
answer = 0;
}
else {
for (int i = 0; i < lengthArr1; i++) {
arr1[i] = atoi(argv[i + 1]);
printf("Element %d: %d\n", i, arr1[i]);
}
printf("Filling is finished\n");
}
}
if (answer != 1 && answer != 2) {
int min, max;
printf("Set the limits: ");
scanf("%d-%d", &min, &max);
if (max < min) max = max + min + 1;
for (int i; i < lengthArr1; i++) {
arr1[i] = min + rand() % (max + 1 - min);
printf("Element %d: %d\n", i, arr1[i]);
}
printf("Filling is finished\n");
}
printf("****************************\n>");
///////////////////////////////////////////////
printf("Sizes of the second array(AxB): ");
scanf("%dx%d", &lengthArr2Dim1, &lengthArr2Dim2);
int arr2[lengthArr2Dim1][lengthArr2Dim2];
printf("Choose the way\n1 - keyboard input;\n2 - cmd parametrs;\nanything else - random numbers\n");
printf("****************************\n>");
scanf("%d", &answer);
if (answer == 1) {
for (int i = 0; i < lengthArr2Dim1; i++) {
for (int j = 0; j < lengthArr2Dim2; j++) {
printf("Element [%d][%d]: ", i, j);
scanf("%d", &arr2[i][j]);
}
}
printf("Filling is finished\n");
}
else if (answer == 2) {
printf("CMD parametrs should look like this \"1 2 3 4 5 6\".\nThe result will be: arr1[0] = 1, arr2[0][1] = 4, arr2[1][0] = 5\n");
if (argc - 1 - lengthArr1 < lengthArr2Dim1 * lengthArr2Dim2) {
answer = 0;
}
else {
for (int i = 0; i < lengthArr2Dim1; i++) {
for (int j = 0; j < lengthArr2Dim2; j++) {
arr2[i][j] = atoi(argv[i * lengthArr2Dim1 + j + lengthArr1 + 1]);
printf("Element [%d][%d]: %d\n", i, j, arr2[i][j]);
}
}
printf("Filling is finished\n");
}
}
if (answer != 1 && answer != 2) {
int min, max;
printf("Set the limits: ");
scanf("%d-%d", &min, &max);
if (max < min) max = max + min + 1;
fo...