Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування:Базові концепції програмування
ЗВІТ
до лабораторної роботи № 3
«Масиви та вказівники»
Варіант №12
Дата «21» листопада 2021
Завдання до лабараторної роботи:
1. Створити одновимірний та двовимірний масиви.
2. Виконати початкову ініціалізацію всіх елементів масиву.
3. Виконати маніпуляції з елементами масивів.
У якості індивідуального завдання необхідно написати програму, в якій, на першому етапі, користувачем задається вимірність та розмірність масиву та спосіб ініціалізації (з клавіатури/консолі або випадковими числами) елементів масиву. На другому етапі необхідно скористатися варіантом індивідуального завдання з Додатку В-4.
/
Теоретичні відомості
#include <stdlib.h>- бібліотека, який зберігає у собі функції для виділення пам’яті, контролю процесу виконання програми, перетворення типів даних та ін.
Для вибору завдання (1 або 2) і вибору способу введенння даних використовуємо умовний оператор if.
Загальний вигляд конструкції опису одновимірного масиву такий:
<тип> <ім'я масиву> [<розмір>]
Розмір - це кількість елементів масиву. Розмір масиву необхідно знати і задавати заздалегідь, оскільки компілятор має зарезервувати для нього необхідний обсяг пам'яті. Розміром може бути лише стала величина.
Ім'я масиву у програмі змінювати не можна - це стала величина, яка містить адресу першого елемента.
Звернутись до елементів масиву можна двома способами: допомогою імені масиву або використовуючи вказівники.
Якщо елемент масиву має не один, а декілька індексів, то такі масиви називаються багатовимірними.
Загальний вигляд конструкції опису багатовимірного (N-вимірного) масиву такий:
<тип> <ім'я масиву> [<р1>][<р2>]... [<pN>] ,
де р1, р2, ...,pN задають розміри для кожного виміру.
Кількість індексів визначає розмірність масиву: двовимірні масиви мають два індекси, тривимірні — три і т.д.
Блок-схема
/
Код програми:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int N,K;
int h,t;
int c=0;
printf("Завданння\n1.Видалити N+2 елементів, починаючи з K-2 для одновимірного масиву(розмірність 10).\n2.Видалити всі непарні рядки для двовимірного масиву(розмірність 5х5).\nЯкщо бажаєте виконати перше завдання,натисніть 1.\nЯкщо бажаєте виконати друге завдання, натисніть 2.\n");
scanf("%i",&h);
if (h==1)
{
int Lengtharr1 =10;
int array1[Lengtharr1];
int *arr1;
arr1=array1;
printf("Виберіть спосіб ввеення даних:\n1-випадкові дані;\n2-ввести дані з клавіатури(після кожного введеного числа необхідно натискати пробіл, після того, як ви ввели 10 чисел натисніть Enter);\n ");
scanf("%i",&t);
if(t==1){
for(int i=0;i<Lengtharr1;i++)
{
arr1[i]=rand()%41-5;
}
for(int i=0;i<Lengtharr1;i++)
{
printf("%3i",arr1[i]);
}
}
else if(t==2)
{
for(int i=0;i<Lengtharr1;i++)
{
scanf("%i",&arr1[i]);
}
for(int i=0;i<Lengtharr1;i++)
{
printf("%3i",arr1[i]);
}
}
else return 0;
printf("\nВведіть N:\n");
scanf("%i",&N);
printf("Введіть K:\n");
scanf("%i",&K);
for (int i=0;i<Lengtharr1;i++)
{
if(N+2>0&&N+2<10&&K-2>0&&K-2<10)
{
if(i<K-2)
{
printf("%3i",arr1[i]);
}
}
}
for(int i=0;i<Lengtharr1;i++)
{
if(N+2>0&&N+2<10&&K-2>0&&K-2<10)
{
if(i>=N+K)
{
printf("%3i",arr1[i]);
}
}
else return 0;
}
}
else if(h==2)
{
int arr2[5][5];
printf("Виберіть спосіб ввеення даних:\n1-випадкові дані;\n2-ввести дані з клавіатури(після кожного введеного числа необхідно натискати пробіл, після кожного п'ятого елементу масиву необхідно натискати Enter);\n ");
scanf("%i",&t);
if(t==1)
{
for(int i=0;i<5;i++)
{
printf("\n");
for(int g=0;g<5;g++)
{
arr2[i][g]=rand() % 38 + 10;
printf("%4i", arr2[i][g]);
}
}
}
else if(t==2)
{
for(int i=0;i<5;i++)
{
for(int g=0;g<5;g++)
{
scanf("%i", &arr2[i][g]);
}
}
}
printf("\nМасив без непарних рядків:");
for(int i=0;i<5;i++)
{
if(i!=c && i!=c+2 && i!=c+4)
{
for(int g=0;g<5;g++)
printf("%4i",arr2[i][g]);
}
printf("\n");
}
return 0;
}
else return 0;
}
Результати виводу:
1. Видалити N+2 елементів, починаючи з K-2 для одновимірного масиву(розмірність 10).
/
2. Видалити всі непарні рядки для двовимірного масиву (розмірність 5х5).
/
5.Програмний код (додаток):
https://replit.com/join/dgvtpzrbdt-tr-15tkachienko
Висновок
Під час виконання даної лабараторної роботи я ознайомилася з масивами та вказівниками, створила одновимірний та двовимірний масиви, виконала початкову ініцілізацію елементів масиву, виконала маніпуляції з елементами масивів.
Готова програма дає можливість вибору завдання, яке вона буде потім і виконувати, за допомогою введення з клавіатури 1(видалення N+2 елементів, починаючи з K-2 елементу одновимірного масиву) або 2(видалення непарних рядків двовимірного масиву),також можна вибрати спосіб введення даних (за допомогою клавіатури або випадкові значення), для цього також необхідно натиснути 1 або 2.