Масиви та вказівники

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
О
Факультет:
СІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2021
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла (без зображень, графіків і формул):

Національний технічний університет України «КПІ імені Ігоря Сікорського» Кафедра автоматизації проектування енергетичних процесів і систем ЗВІТ з лабораторної роботи № 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; for (int i = 0; i < lengthArr2Dim1; i++) { for (int j = 0; j < lengthArr2Dim2; j++) { arr2[i][j] = min + rand() % (max + 1 - min); printf("Element [%d][%d]: %d\n", i, j, arr2[i][j]); } } printf("Filling is finished\n"); } /////////////////////////////////////////////// printf("****************************\n"); printf("Task1: remove all even elements from the array\n"); int lengthNewArr1 = 0; for (int i = 0; i < lengthArr1; i++) { if (arr1[i] % 2 != 0) lengthNewArr1++; } int newarr1[lengthNewArr1]; int counter = 0; printf("Task1 result:\n"); for (int i = 0; i < lengthArr1; i++) { if (arr1[i] % 2 != 0) { newarr1[counter] = arr1[i]; printf("Element %d: %d\n", counter, newarr1[counter]); counter++; } } //////////////////////////////////////////////// printf("****************************\n"); printf("Task2: add K amount of columns to the array\nEnter K: "); int k; scanf("%d", &k); int newarr2[lengthArr2Dim1][lengthArr2Dim2 + k]; for (int i = 0; i < lengthArr2Dim1; i++) { for (int j = lengthArr2Dim2; j < lengthArr2Dim2 + k; j++) { printf("Element [%d][%d]: ", i, j); scanf("%d", &newarr2[i][j]); } } printf("Filling is finished\n"); printf("Task2 result:\n"); for (int i = 0; i < lengthArr2Dim1; i++) { for (int j = 0; j < lengthArr2Dim2 + k; j++) { if (j < lengthArr2Dim2) newarr2[i][j] = arr2[i][j]; printf("Element [%d][%d]: %d\n", i, j, newarr2[i][j]); } } return 0; } Посилання на програму в repl.it: https://replit.com/join/vlrvpsevqg-dolphiedude Приклад результату кода: Висновок: Я ознайомився із масивами. Дослідив особливості їхнього застосування. Це мені дозволило написати програму, що заповнює значеннями масиви та працює із цими значеннями. Тобто реалізував ініціалізацію одновимірного та двовимірного масиву, маніпуляції із ними. Редагував масив щоб прибрати усі парні елементі. Чи додавав K кількість стовпчиків в двовимірний масив
Антиботан аватар за замовчуванням

05.06.2023 01:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!