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 «Математичні функції та управляючі конструкції» Варіант 15 Дата «12» листопада 2021 Завдання: 1. Створити одновимірний та двовимірний масиви. 2. Виконати початкову ініціалізацію всіх елементів масиву. 3. Виконати маніпуляції з елементами масивів. У якості індивідуального завдання необхідно написати програму, в якій, на першому етапі, користувачем задається вимірність та розмірність масиву та спосіб ініціалізації (з клавіатури/консолі або випадковими числами) елементів масиву. На другому етапі необхідно скористатися варіантом індивідуального завдання з Додатку В-4. РЕЗУЛЬТАТ РОБОТИ ПОТРІБНО: 1. Роздрукувати (вивести на екран) значення всіх елементів масиву. 2. Відкритий для редагування програмний код розмістити на сайті https://replit.com/ (посилання через кнопку «+ Share»). 3. Звіт до комп’ютерного практикуму № 4 додати в свій Клас на ресурсі https://classroom.google.com/. Умова Варіанту 15: / Для одновимірного масиву – видалити всі додатні елементи. Для двовимірного масиву – видалити всі парні стовпці. Теоретичні відомості та хід вирішення завдань: Для виконання даної лабораторної роботи №3 був використаний сайт replit.com . На цьому сайтів був написаний код програми на мові С. Саму програму можна переглянути за посиланням: https://replit.com/join/vuwjrvpkar-tr-15fundamient Масив це структура даних, представлена ​​у вигляді групи осередків одного типу, об'єднаних під одним єдиним ім'ям. Масиви використовуються для обробки великої кількості однотипних даних. Одновимірний масив – масив, з одним параметром, характеризує кількість елементів одновимірного масиву. Фактично одновимірний масив – це масив, у якого може бути тільки один рядок, і n-е кількість стовпців. Стовпці в одновимірному масиві – це елементи масиву. Двовимірний масив – це звичайна матриця. Факчтино, це одновимірний масив одновимірних масивів.  На початку своєї програми я ініціалізував два масиви: mas[SIZE1] – одновимірний масив, mat[SIZE2][SIZE2] – двовимірний масив. Далі за обраним варіантом були введені значення елементів цих масивів (за допомогою клавіатури, за допомогою консолі або заповнені випадковими числами). Наступний крок – Завдання 1. Ініціалізую лічильник k і присвоюю йому значення 0, він буде слугувати для підрахунку кількості від’ємних елементів масиву, щоб під задану кількість створити новий масив. Після підрахунку (за допомогою циклу for і умовного оператора if ) створюється новий масив masNeg[k]. Він створюється під певну кількість елементів(к-сть від’ємних елементів). І далі перебором основного масиву шукаються усі від’ємні елементи і переношу їх у новий масив masNeg[]. У кінці програми виводиться масив masNeg[] у якому тільки від’ємні значення. Завдання 2. Ініціалізую лічильник kk і присвоюю йому значення 0, він буде слугувати для підрахунку кількості парних стовпців(тому що номерація починається з нуля). За допомогою циклу for і оператора if я перебираю даний двовимірний масив визначаю на скільки стовпчиків має бути новий масив, вже без парних стовпчиків. Далі створюю цей новий масив і цим же самим циклом присвоюю значення взяті зі старого масиву у новий. Блок-схема програми: / Скріншоти програми: / / / / / // Результат роботи програми: / Висновок: Під час виконання даної програми було удосконалено навички щодо роботи в одновимірними та двовимірними масивами. Набуто досвід з рішення типових задач із задіянням масивів. Також набуто досвід з використання вказівників. Завдання заплановані у даній лабораторній роботі виконані і працюють без нарікань. Усі результати були виведені на екран Силка на Repl: https://replit.com/join/vuwjrvpkar-tr-15fundamient Код програми: #include <stdio.h> #include <stdlib.h> #define SIZE1 10 #define SIZE2 5 int main(int argc, char *argv[]) { printf("Будь-ласка оберіть метод заповнення одновимірного масиву:\n<1> - за допомогою клавіатури,\n<2> - за допомогою консолі,\n<3> - випадковими числами.\n"); int number; scanf("%d", &number); int mas[SIZE1]; int *pmas = &mas[0];// створюю визначник, якому надаю адресу першого елементу масиву int mat[SIZE2][SIZE2]; //Присвоєння значень одновимірному масиву if (number == 1) { //Введення елементів за допомогою клавіатури printf("\nЗаповнення одновимірного масиву:\n"); for(int i = 0; i < SIZE1; i++) { printf("Уведіть значення [%d] елементу одновимірного масиву: \n", i+1); scanf("%d", &mas[i]); } printf("\nЗаповнення двовимірного масиву:\n"); for(int i = 0; i < SIZE2; i++) { for (int j = 0; j < SIZE2; j++) { printf("Уведіть значення [%d][%d] елементу двовимірного масиву: \n", i+1, j+1); scanf("%d", &mat[i][j]); } } // Вивід одновимірного масиву (за допомогою вказівника) printf("\nОдновимірний масив: \n\n[ "); for(int i = 0; i < SIZE1; i++) { printf("%d ", *pmas); } printf("]\n\n"); // Вивід двовимірного масиву printf("\nДвовимірний масив:\n\n"); for(int i = 0; i < SIZE2; i++) { printf("| "); for (int j = 0; j < SIZE2; j++) { printf("%d ", mat[i][j]); } printf("|\n"); } } else if (number == 3) { //Введення елементів випадковими числами // Заповнення одновимірного масиву випадковими числами for(int i = 0; i < SIZE1; i++) { mas[i] = rand() % 2001 - 1000; } //Заповнення двовимірного масиву випадковими числами for(int i = 0; i < SIZE2; i++) { for (int j = 0; j < SIZE2; j++) { mat[i][j] = rand() % 2001 - 1000; } } // Вивід одновимірного масиву (за допомогою вказівника) printf("\nОдновимірний масив: \n\n[ "); for(int i = 0; i < SIZE1; i++, pmas++) { printf("%d ", *pmas); } printf("]\n"); // Вивід двовимірного масиву printf("\nДвовимірний масив: \n\n"); for(int i = 0; i < SIZE2; i++) { printf("| "); for (int j = 0; j < SIZE2; j++) { printf("%d ", mat[i][j]); } printf(" |\n"); } } else if(number == 2 && argc == 36) { //Введення елементів за допомогою консолі (через ./main) for (int i = 0; i < SIZE1; i++){ mas[i] = atoi(argv[i+1]); } for (int i = 0; i < SIZE2; i++){ for (int j = 0; j < SIZE2; j++) { mat[i][j] = atoi(argv[SIZE1+1+i]); } } printf("\nОдновимірний масив: \n\n[ "); for(int i = 0; i < SIZE1; i++, pmas++) { printf("%d ", *pmas); } printf("]\n"); printf("\nДвовимірний масив:\n\n"); for(int i = 0; i < SIZE2; i++) { printf("| "); for (int j = 0; j < SIZE2; j++) { printf("%d ", mat[i][j]); } printf("|\n"); } } else { printf("---- EROR ----\n"); return 0; } // Завдання 1 (Видалити всі додатні елементи масиву) int k = 0; //підраховую к-сть від'ємних елементів у масиві for (int i = 0; i < SIZE1; i++) { if (mas[i] < 0) { k++; } } int masNeg[k]; int *pMasNeg = &masNeg[0];//Створюю визначник і надаю йому адресу одновимірного масиву від'ємних чисел int count = 0;//створюю лічильник та новий масив, куди перенесу всі від'ємні елементи попереднього масиву // Усі від'ємні елементи початкового масиву присвоюю новому for (int i = 0; i < SIZE1; i++) { if(mas[i] < 0) { masNeg[count] = mas[i]; count++; } } //Вивожу новий масив без додатніх елементів printf("\nОдновимірний масив у результаті виконання завдання: \n\n [ "); for(int i = 0; i < k; i++,pMasNeg++) { printf("%d ", *pMasNeg); } printf("]\n"); // Завдання 2 (видалити всі парні стовпці двовимірного масиву) int kk = 0; // Підраховую скільки парних стовпців у матриці (Рахую через парність, тому що номерація починається з нуля) for (int i = 0; i < SIZE2; i++) { for (int j = 0; j < SIZE2; j++) { if (j % 2 == 0) { kk++; } } } int count2 = 0; int q = kk/SIZE2; int newMat[SIZE2][q]; // Створюю лічильник та новий двовимірний масив, у який буду переносити всі непарні стовпці // Усі непарні стовпці присвоюю новому масиву for (int i = 0; i < SIZE2; i++) { for (int j = 0; j < SIZE2; j++) { if (j % 2 == 0) { newMat[i][count2] = mat[i][j]; count2++; } } count2 = 0; } // Виводжу новий двовимірний масив, який складається тільки з непарних стовпчиків початкового printf("\nДвовимірний масив у результаті виконання завдання: \n\n"); for (int i = 0; i < SIZE2; i++) { printf("| "); for (int j = 0; j < q; j++) { printf("%d ", newMat[i][j]); } printf("|\n"); } }
Антиботан аватар за замовчуванням

03.05.2023 18:55

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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