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
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ до лабораторної роботи № 4 «Математичні функції та управляючі конструкції» Варіант 4 Дата «12» листопада 2021 Завдання: 1. Створити одновимірний та двовимірний масиви. 2. Виконати початкову ініціалізацію всіх елементів масиву. 3. Виконати маніпуляції з елементами масивів. У якості індивідуального завдання необхідно написати програму, в якій, на першому етапі, користувачем задається вимірність та розмірність масиву та спосіб ініціалізації (з клавіатури/консолі або випадковими числами) елементів масиву. На другому етапі необхідно скористатися варіантом індивідуального завдання з Додатку В-4. РЕЗУЛЬТАТ РОБОТИ ПОТРІБНО: 1. Роздрукувати (вивести на екран) значення всіх елементів масиву. 2. Відкритий для редагування програмний код розмістити на сайті https://replit.com/ (посилання через кнопку «+ Share»). 3. Звіт до комп’ютерного практикуму № 4 додати в свій Клас на ресурсі https://classroom.google.com/. Витяг з теорії: Масив - це структура даних, подана у вигляді групи осередків одного типу, об'єднаних під одним єдиним ім'ям. Масиви використовують для обробки великої кількості однотипних даних. Ім'я масиву є покажчиком, що таке покажчики розповім трохи згодом. Окрема комірка даних масиву називається елементом масиву. Елементами масиву можуть бути дані будь-якого типу. Масиви можуть мати як один, так і більше одного виміру. Залежно кількості вимірювань масиви діляться на одномірні масиви, двовимірні масиви, тривимірні масиви тощо до n-мерного масиву. Найчастіше у програмуванні використовуються одновимірні та двовимірні масиви, тому ми розглянемо лише ці масиви. Елемент масиву (значення елемента масиву) – значення, що зберігається у певній комірці пам'яті, розташованої в межах масиву, а також адресу цієї комірки пам'яті. Кожен елемент масиву характеризується трьома величинами: адресою елемента - адресою початкової комірки пам'яті, в якій розташований цей елемент; індексом елемента (порядковим номером елемента у масиві); значенням елемента. Адреса масиву – адреса початкового елемента масиву. Ім'я масиву – ідентифікатор, який використовується для звернення до елементів масиву. Розмір масиву – кількість елементів масиву Розмір елемента – кількість байт, які займає один елемент масиву. Одновимірні масиви в С Одновимірний масив - масив, з одним параметром, що характеризує кількість елементів одновимірного масиву. Фактично одновимірний масив - це масив, у якого може бути лише один рядок, і n-е кількість стовпців. Стовпці в одновимірному масиві – це елементи масиву. На малюнку 1 показана структура цілісного одновимірного масиву a. Розмір цього масиву - 16 осередків / Двовимірні масиви в С До цього ми розглядали одномірні масиви, якими який завжди можна обмежитися. Допустимо, необхідно обробити деякі дані з таблиці. У таблиці є дві характеристики: кількість рядків та кількість стовпців. Також і в двомірному масиві, крім кількості елементів масиву, є такі характеристики як кількість рядків і кількість стовпців двовимірного масиву. Тобто, візуально, двовимірний масив — це звичайна таблиця з рядками та стовпцями. Фактично двовимірний масив – це одномірний масив одновимірних масивів. Структура двовимірного масиву, з іменем a, розміром m на n показана нижче / Завдання за варіантом: № варіанта Одновимірний масив Двовимірний масив  4 Видалити непарний елемент з номером N (N ввести з клавіатури) Видалити всі рядки, в яких є хоча б один нульовий елемент   Блок-схема алгоритму програми: / Результати компіляції: Одновимірний масив: // Непарний елемент під номером три був успішно видалений Двовимірний масив: / Всі рядки з нульовими елементами були успішно видалені Посилання на код в середовищі Replit: https://replit.com/join/osvaziixaw-ironfire2535 Висновок Під час виконання лабораторної роботи №4 було набуто практичних навичок у роботі з одновимірними та двовимірними масивами, а саме: їх створенні, ініціалізації та оперуванням над ними. Була створена програма у середовищі Replit, що виконує задані в додатку В-4 маніпуляції. Була зроблена перевірка перевірка за допомогою компіляції. Ні кінець був зроблен звіт з лабораторної роботи, що містить всі необхідні компоненти. Код програми: #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <time.h> #include <memory.h> void fillArray(int *array, int size) { for (int i = 0; i < size; ++i) { array[i] = rand() % 10; } } void fillArrayKeybord(int *array,int size){ for (int i = 0; i < size; ++i) { printf("\nInput array[%d]:",i); scanf("%d",&array[i]); } } void fillMtrx(int **mtrx,int rows,int cols){ for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { mtrx[i][j] = rand() % 10-5; } } } void fillMtrxKeyboard(int **mtrx,int rows,int cols){ for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { printf("\nInput mtrx[%d][%d]:",i,j); scanf("%d",&mtrx[i][j]); } } } void printArray(int *array, int size) { printf("\nArray:"); for (int i = 0; i < size; ++i) { printf("%d ", array[i]); } } void printMatrix(int **mtrx, int rows, int cols) { printf("\nMatrix:\n"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { printf("%6d ", mtrx[i][j]); } printf("\n"); } } int CalcZeroRows(int **mtrx,int rows,int cols){ int calc = 0; for(int i =0;i<rows;i++){ for(int j=0;j<cols;j++){ if(mtrx[i][j] == 0 ){ mtrx[i][0]=0; calc++; break; } } } return calc; } int main() { int key = 0; while (key <= 0 || key >= 3) { printf("For create array type '1'" "\nFor create Matrix type '2" "\nEnter key:"); scanf("%d", &key); if (key <= 0 || key >= 3) { printf("Wrong Input!\n"); } } srand(time(NULL)); if (key == 1) { int size = 0; do { printf("Input array size:"); scanf("%d", &size); } while (size <= 0); int *arr = (int *) malloc(size * sizeof(int)); printf("Array was created"); int choose = 0; do { printf("\nSelect how to fill array\nFron keybord type '1'\nRandom value type' 2':"); scanf("%d", &choose); } while (choose <= 0 || choose >=3); if(choose == 1){ fillArrayKeybord(arr,size); }else if(choose ==2){ fillArray(arr, size); } printArray(arr, size); int index = 0; int countOfElem=0; for(int i = 0; i <size;i++){ if(arr[i]%2 != 0){ countOfElem++; } } if(countOfElem !=0){ do{ printf("\nInput index wich will be deleted:"); scanf("%d",&index); }while(index<=0 || index >= size || index >countOfElem); int counter = 0; for(int i = 0; i <size;i++){ if(arr[i]%2 != 0){ counter++; } if(counter == index){ index = i; break; } } size--; counter = 0; int *temp = (int *) malloc(size * sizeof(int)); for (int i = 0; i < size+1; ++i) { if(i!=index){ temp[i-counter] = arr[i]; }else{ counter++; } } arr = (int *) realloc(arr, sizeof(int) * (size)); for (int i = 0; i < size; i++) { arr[i] = temp[i]; } printf("\nThe element was deleted."); printArray(arr, size); free(arr); }else{ printf("\nThere are no odd elements"); } } else if (key == 2) { int rows = 0; int cols = 0; do { printf("Input size of matrix\nInput cols:"); scanf("%d", &cols); printf("Input rows:"); scanf("%d", &rows); } while (rows <= 0 || cols <= 0); int choose = 0; do { printf("\nSelect how to fill array\nFron keybord type '1'\nRandom value type' 2':"); scanf("%d", &choose); } while (choose <= 0 || choose >=3); int **mtrx = (int **) malloc(rows * sizeof(int *)); for (int i = 0; i < rows; i++) { mtrx[i] = (int *) malloc(cols * sizeof(int)); /*for (int j = 0; j < cols; j++) { mtrx[i][j] = rand() % 10-5; }*/ } if(choose == 1){ fillMtrxKeyboard(mtrx,rows,cols); }else if(choose ==2){ fillMtrx(mtrx,rows,cols); } printMatrix(mtrx, rows, cols); int zeroRows = CalcZeroRows(mtrx,rows,cols); int newRows = rows - zeroRows; int c=0; int **tmpMtrx = (int **) malloc(newRows * sizeof(int *)); for (int i = 0; i < newRows; i++) { tmpMtrx[i] = (int *) malloc(cols * sizeof(int)); } for (int i = 0; i < rows; i++) { if(mtrx[i][0] != 0){ tmpMtrx[i] = (int *) malloc(cols * sizeof(int)); for (int j = 0; j < cols; j++) { tmpMtrx[i-c][j] = mtrx[i][j]; } }else{ c++; } } rows= newRows; mtrx = (int **) realloc(mtrx, rows * sizeof(int *)); for (int i = 0; i < rows; i++) { mtrx[i] = (int *) malloc(cols * sizeof(int)); for (int j = 0; j < cols; j++) { mtrx[i][j] = tmpMtrx[i][j]; } } for(int i=0; i<rows;i++){ free(tmpMtrx[i]); } free(tmpMtrx); printf("After delete "); printMatrix(mtrx, rows, cols); for(int i=0; i<rows;i++){ free(mtrx[i]); } free(mtrx); } return 0; }
Антиботан аватар за замовчуванням

17.05.2023 18:04

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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