Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування 1: Базові концепції програмування
ЗВІТ
до лабораторної роботи № 7-8
«Перестановки елементів масивів та сортування масивів»
Варіант 21
Дата «8» грудня 2021
Київ – 2021
ЗАВДАННЯ:1. Ознайомитись з алгоритмами перестановок елементів масивів та способами сортування масивів.2. У якості індивідуального завдання необхідно написати програмний код, що реалізує перестановку елементів масивів та сортування масивів.3. Звернення до елементів масиву реалізувати за допомогою вказівника на масив.4. Роздрукувати (вивести на екран) початковий масив та масив після виконання сортування.
РЕЗУЛЬТАТ РОБОТИ ПОТРІБНО:1. Роздрукувати (вивести на екран) початковий масив та масиви після виконання перестановок та сортування.2. Програмний код розмістити на сайті Repl.it (посилання виключно через кнопку «+ Share»).3. Звіт до комп’ютерного практикуму додати в свій Клас.
Завдання для варіанту 21
ЛР7
/
ЛР8
/
Теоретичні відомості
У ЛР7 програма виконує перестановку елементів масиву відносно вертикалі, що проходить через центр масиву.
Для цього першим кроком була ініціалізація значень, задання розміру масиву n, та виведення початкового масиву використовуючи оператор циклу for та виведення на екран з використанням функції форматованого виводу printf. Потім використовуючи цикл for виконуємо зміну місцями елементів масиву відносно вертикалі, виводимо отриманий масив за допомогою printf.
У ЛР8 реалізовано програму, що сортує у порядку спадання елементи масиву, які стоять на непарних місцях. Спочатку було оголошено змінні, задано розмірність n послідовності, виведено початкову послідовність. Потім за допомогою умовного оператору for відібрано елементи, що стоять на непарних місцях та створено з них новий масив з новою розмірністю та виведено його на екран з використанням функції форматованого виводу printf. Далі здійнюється порівняння елементів нової послідовності, в результаті чого відбувається сортування. У кінці отримана послідовність з елеметами, що стоять на непарних місцях, посортованими в порядку спадання виводться на екран.
Блок-схема
ЛР7
/
ЛР8
/
Результати
Завдання ЛР7
/
Завдання ЛР8
/
Копія коду
ЛР7
// 04.12.2021 LR7 Chubukova Anastasia
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[], char *env[]) {
int n = 3;
int A[n][n];
int i, j, k;
int newA[n][n];
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
A[i][j] = atoi(argv[i*3 + j + 1]);
}
}
printf("\nПочаткова матриця:");// виведення початкової матриці
for(i = 0; i < 3; i++){
printf("\n");
for(j = 0; j < 3; j++){
printf("%d\t", A[i][j]);
}
printf("\n");
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n/2; j++)
{
newA[i][j] = A[i][j];
A[i][j] = A[i][n-1-j];
A[i][n-1-j] = newA[i][j];
}
}
//Вивід масиву, елементи якого переставлені відносно ветикалі, що проходить через центр
printf("\nПерестановка елементів відносно вертикалі:\n");
for (i = 0; i < n; i++){
printf("\n");
for (j = 0; j < n; j++){
printf("%d\t", A[i][j]);
}
printf("\n");
}
return 0;
}
ЛР8
// 04.12.2021 LR8 Chubukova Anastasia
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int sortB(const void *a, const void *b) {
return *(int*)b - *(int*)a;
}
int main(int argc, char *argv[], char *env[]) {
int n = 20;
int B[n];
int i;
for(i = 0; i < n; i++){
B[i] = atoi(argv[i + 1]);
}
printf("\nПочаткова послідовність:");// виведення початкової послідовності
for(i = 0; i < n; i++){
printf("%d\t ", B[i]);
}
int k = 0;
for(int i = 0; i < n; i++) {
if(i % 2 == 0) {
k++;
}
}
int newB[k];
int count = 0;
for(int i = 0; i < n; i++) {
if(B[i] % 2 == 0){
newB[count] = B[i];
count++;
}
}
printf("\n\n");
printf("Послідовність елементів, що стоять на непарних місцях:\n");
for (int i = 0; i < k; i++) {
printf("%d ", newB[i]);
}
printf("\n\n");
printf("Послідовність елементів, що стоять на непарних місцях за спаданням:");
qsort(newB, k, sizeof(int), sortB); // сортування послідовності за спаданням
// вивід посортованої послідовності
for(i = 0 ; i < k; i++) {
printf("%d ", newB[i]);
}
return 0;
}
Посилання
ЛР7
https://replit.com/join/nyckpximje-nastyachubukova
ЛР8
https://replit.com/join/qyerktcvql-nastyachubukova
Висновки:
У ході виконання лабораторної роботи №7 відбулося ознайомлення з алгоритмом перестановки елементів масиву, лабораторної роботи №8 – з способами сортування масивів. Для реалізації програм було використано умовний оператор if , оператор циклу for та закріплено навички роботи з ними.
У результаті було розроблено дві програми: одна виконує перестановку елементів масиву відносно вертикалі, що проходить через центр масиву, друга сортує у порядку спадання елементи масиву, що стоять на непарних місцях.