DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

Алгоритмізація та програмування 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:45

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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