Математичні функції та управляючі конструкції

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

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

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

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

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

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 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:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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