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

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

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

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

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

Алгоритмізація та програмування 2: Процедурне програмування ЗВІТ до лабораторної роботи № 2 «Динамічне виділення пам’яті для одно- та двовимірних масивів» Варіант 16 Дата «26» квітня 2022 ЗАВДАННЯ: 1. Ознайомитись з особливостями роботи з динамічними одно- та двовимірними масивами. 2. Розробити Блок-схему програмного алгоритму. 3. Виконати індивідуальне завдання. 4. Оформити ЗВІТ до лабораторної роботи згідно вимог та методичних рекомендацій. 5. Вихідні дані (завдання) обрати згідно свого варіанта у Додатку B-2. Варіант завданнь: За варінатом 16 – з таблиці з рисунка 1 варіант 16. / Рисунок 1. Теоритичні відомості: div_t div(int numerator, int denominator) Прототип:  stdlib.h Опис:  Функція div() повертає частку від ділення і остачу операції numerator/denominator. Структура типа div_t визначена у файлі stdlib.h й має два насупних поля: int quot; /* частка */ int rem; /* остача */ Приклад:  Наступна программа виводить частку від ділення й остачу при виконанні операції 10/3: #include <stdio.h> #include <stdlib.h> int main(void) { div_t n; n = div(10,3); printf("Quotient and remainder: %d %d\n", n.quot, n.rem); return 0; } Блок-схеми / Вивід програми: / Код програми: Посилання на Repl.it: https://replit.com/join/buzqqttxlx-tr-15khavkin #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <time.h> int main(int args, char *argv[]) { int x,n,m,l,j; int *array1,*array12; int **array2,**array22; srand(time(NULL)); //Ініціалізація одновимірного массиву printf("\nІніціалізації елементів одновимірного масива випадковими числами\nВведіть кількість елемнетів: "); scanf("%d", &x); array1=(int*)malloc(x * sizeof(int)); for (int i=0; i < x; i++){ array1[i]= rand() % 40 - 20; printf("\narray1[%d]: %d", i, array1[i]); } array12=(int*)malloc(x * sizeof(int)); //Перше завдання printf("\nЗавданя 1 для одновимернго массиву\n"); j=0; for (int i=0; i < x; i++){ printf("%d ", array1[i]); if(array1[i]>=0){ array12[j]=array1[i]; j++; } } printf("\n\nОтриманний массив array1:\n"); for (int i=0; i < j; i++) printf("%d ", array12[i]); //Ініціалізація двовимірного массиву printf("\n\nІніціалізації елементів для двовимірного масиву випадковими числами\nВведіть розмірність L*M\nВведіть L:"); scanf("%d", &l); printf("\nВведіть M:"); scanf("%d", &m); array2=(int**)malloc(l * sizeof(int*)); for (int i=0; i < l; i++)array2[i]=(int*)malloc(m*sizeof(int)); for (int i = 0; i < l; i++ ) { for (int j = 0; j < m; j++ ){ array2[i][j]= rand() % 40 - 20; printf("array2[%d,%d]: %d ", i, j, array2[i][j]); } printf("\n"); } //Друге завдання int N,K,str,quot,rem; printf("\n\nЗавданя 2 для двовимернго массиву"); printf("\nВведіть значення N: "); scanf("%d", &N); printf("\nВведіть значення K: "); scanf("%d", &K); printf("\nВведений массив array2:\n\n"); for (int i = 0; i < l; i++ ) { for (int j = 0; j < m; j++ ){ printf("%d ",array2[i][j]); } printf("\n"); } printf("\nОтриманний массив array2:\n"); div_t str2; str2 = div(N,m); if(rem==0)str=str2.quot-1; else str = str2.quot; array22=(int**)malloc(l * sizeof(int*)); for (int i = 0; i < l; i++) { if(i==str){ array22[i] = (int*)malloc(m+K * sizeof(int)); for(int j=0; j<str2.rem;j++){ array22[i][j]=array2[i][j]; printf("%d ", array22[i][j]); } for(int g=0; g<K;g++){ array22[i][(str2.rem)+g]=rand() % 40 - 20; printf("\033[1;32m%d ", array22[i][str2.rem+g]); } for(int j=str2.rem; j<m;j++){ array22[i][j+K]=array2[i][j]; printf("\033[0m%d ", array22[i][j+K]); } }else{ array22[i] = (int*)malloc(m * sizeof(int)); for(int j=0; j<m;j++){ array22[i][j]=array2[i][j]; printf("%d ", array22[i][j]); } } printf("\n"); } return 0; } Висновок: У цій лабораторної роботі було ознайомлено з роботою динамічних масивів(одно-двовимірних) та з їх особливостями. Заповнення масивів було виконано випадковими числами. Зроблені маніпуляції з масивами згідно до варіанту 16 з Додатку. Виведені результуючі масиви. Створенні блок-схеми до коду. Зроблено звіт з лабораторної роботи та вчасно надіслано викладачу на перевірку.
Антиботан аватар за замовчуванням

14.06.2023 20:06-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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