Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування 1: Базові концепції програмування
ЗВІТ
до лабораторної роботи № 4
«Масиви та вказівники»
Варіант 21
Дата «12» листопада 2021
Мета: Ознайомитись з масивами й вказівниками та методами їхньої ініціалізації.
Результат: Код має виводити одновимірний та двовимірний масиви із виконаними маніпуляціями над ними згідно варіанту індивідуального завдання.
Завдання:1. Створити одновимірний та двовимірний масиви.2. Виконати початкову ініціалізацію всіх елементів масиву.3. Виконати маніпуляції з елементами масивів.У якості індивідуального завдання необхідно написати програму, в якій, на першому етапі, користувачем задається вимірність та розмірність масиву та спосіб ініціалізації (з клавіатури/консолі або випадковими числами) елементів масиву. На другому етапі необхідно скористатися варіантом індивідуального завдання з Додатку В-4.РЕЗУЛЬТАТ РОБОТИ ПОТРІБНО:1. Роздрукувати (вивести на екран) значення всіх елементів масиву.2. Відкритий для редагування програмний код розмістити на сайті https://replit.com/ (посилання через кнопку «+ Share»).3. Звіт до комп’ютерного практикуму № 4 додати в свій Клас на ресурсі https://classroom.google.com/.
/
Теоретичні відомості
Масив - це структура даних, подана у вигляді групи осередків одного типу, об'єднаних під одним єдиним ім'ям. Масиви використовують для обробки великої кількості однотипних даних. Ім'я масиву є покажчиком, комірка даних масиву називається елементом масиву. Елементами масиву можуть бути дані будь-якого типу.
Одновимірний масив - масив, з одним параметром, що характеризує кількість елементів одновимірного масиву. Фактично одновимірний масив - це масив, у якого може бути лише один рядок, і n-е кількість стовпців. Стовпці в одновимірному масиві – це елементи масиву.
Рисунок 1 – одновимірний масив
Індекс комірки – це ціле невід'ємне число, яким можна звертатися до кожної осередку масиву і виконувати будь-які дії над ним.
У двовимірному масиві, крім кількості елементів масиву, є такі характеристики як кількість рядків і кількість стовпців масиву. Тобто, візуально, двовимірний масив — це звичайна таблиця з рядками та стовпцями.
/ Рисунок 2 – двовимірний масив
Показник - це змінна, яка містить адресу змінної. Так як покажчик - це адреса деякого об'єкта, то через нього можна звертатися до даного об'єкта.
Блок-схема
/
Результати
Значення задаються випадковими числами
/
Значення задаються з клавіатури
/
Код програми
// LR4 12.11.2021
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void){
printf("Оберіть спосіб \n1 - присвоєння значень з клавіатури;\n2 - випадковими числами;\n");
int length = 10;
int n = 5;
int arr1[length];
int arr2[n][n];
int answer;
scanf("%d", &answer);
if (answer == 1) { // Присвоєння значень з клавіатури
printf("Уведіть усі елементи одновимірного масиву");
for(int i = 0; i < length; i++) {
scanf("%d", &arr1[i]);
}
printf("\n");
for(int i = 0; i < length; i++) {
printf("%d ", arr1[i]);
}
printf("\n");
printf("Уведіть усі елементи двовимірного масиву");
for(int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr2[i][j]);
}
}
printf("\n");
for(int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", arr2[i][j]);
}
printf("\n");
}
} else if (answer == 2) { // Присвоєння значень випадковими числами
for(int i = 0; i < length; i++) {
arr1[i] = rand() % 201 - 100;
}
for(int i = 0; i < length; i++) {
printf("%d ", arr1[i]);
}
printf("\n\n");
for(int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr2[i][j] = rand() % 201 - 100;
}
}
for(int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", arr2[i][j]);
}
printf("\n");
}
}
//task1
int k = 0;
for(int i = 0; i < length; i++) {
if(i % 2 != 0) {
k++;
}
}
int newArr1[k];
int count = 0;
for(int i = 0; i < length; i++) {
if(i % 2 != 0) {
newArr1[count] = arr1[i];
count++;
}
}
printf("\n");
for (int i = 0; i < k; i++) {
printf("%d ", newArr1[i]);
}
//task2
int kk = 0;
int co2 = 0;
printf("\nВведіть K\n");
scanf("%d", &kk);
int p = n+kk;
int newArr2[n][p];
for(int i = 0; i < n; i++) {
for (int j = 0; j < p; j++) {
if (j<kk) {
newArr2[i][j] = 0;
} else {
newArr2[i][j] = arr2[i][co2];
co2++;
}
}
co2 = 0;
}
for(int i = 0; i < n; i++) {
for (int j = 0; j < p; j++) {
printf("%d ", newArr2[i][j]);
}
printf("\n");
}
}
Посилання
https://replit.com/join/jbfigxrxib-nastyachubukova
Висновок: В результаті виконання лабораторної роботи відбулося ознайомлення з масивами й вказівниками та методами їхньої ініціалізації, було досліджено особливості застосування даних таких типів. Було розроблено програму, яка виводить одновимірний масив з видаленим елементом та двовимірний масив, з додаванням елементів. Також було закріплено навички використання умовного оператора if…else та циклів for().