Ім'я файлу: алгоритми _матриця.pdf
Розширення: pdf
Розмір: 88кб.
Дата: 21.05.2021
скачати

Міністерство освіти і науки України
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Кафедра математичних методів системного аналізу
ЗВІТ
про виконання лабораторних робіт з дисципліни «Алгоритмізація та структури даних»
Виконав:
Прийняв:
Київ – 2019

1 Завдання
Варіант 28
Є дійсна матриця розміром A[5][6]. Впорядкувати її рядки за неспаданням суми елементів.
2 Опис алгоритму
1. Задаємо розмірність матриці MхN (М-парне), як const.
2. Введемо змінну k=1 , як початкову величину для заповнення матриці
впорядкованими натуральними числами. Циклічно починаємо будувати матрицю з m-1 рядка та поступово зменшуючи i (індекс рядка) на 1 крок будемо рухатись вниз. Якщо рядок має парний індекс (i % 2 == 0),
заповнюємо його зліва-направо, тобто починаємо з j = m-1 (індекс стовпчика) і рухаємось до n >=0. Якщо рядок непарний, то починаємо з j=0, та рухаємось справа-наліво до n.
3. Для заповнення матриці впорядкованими за зростанням натуральними числами, на кожному кроці обов’язково збільшуємо змінну k на 1.
4. Виводимо сформовану матрицю на екран монітору.
3 Блок схема алгоритму
4 Програмна реалізація
//
// main.c
// alg_matr laba 3
#include
#include
int main(){
int M=5;
int N=6;
int x, t, n1, S;
//Оголошуємо бiблiотеки
// Оголошуємо змінні
int A[M][N];
for (int i=0;iA[i][j] = rand()%100;
}
}
printf("Отримали матрицю:\n"); // виведення матриці
for (int i=0;ifor (int j=0;jprintf("%3d",A[i][j]); }
printf("\n"); }
printf("Введiть номер рядка для сортування, від 0 до %d:\n",M-1);
scanf("%d",&S);
n1=N;
do
{t=0;
for (int i=S; ifor(int j=0;jif(A[j][S]>A[j+1][S]) //Порівнюємо поточний з наступним елементом заданого рядка
{x=A[j][S]; //Переставляємо поточний та наступний елемент місцями
A[j][S]=A[j+1][S];
A[j+1][S]=x;
t=j+1; //Фіксуємо останній індекс елемента масива, який змінюється
}
}
}n1=t; //в змінну n1 пересилається значення t, щоб не сортувати вже відсортовані елементи
}
while(t!=0);
printf("Матриця пiсля сортування:\n ");
for (int i=0;ifor (int j=0;jprintf("%3d",A[i][j]); //Виводимо на екран перетворений масив
}
printf("\n");
}
return 0;
}
Результати роботи в програмному середовищі Xcode:
Отримали матрицю:
7 49 73 58 30 72
44 78 23 9 40 65
92 42 87 3 27 29
40 12 3 69 9 57
60 33 99 78 16 35
Введiть номер рядка для сортування, від 0 до 4:
2
Матриця пiсля сортування:
7 49 1 58 30 72
44 78 3 9 40 65
92 42 23 3 27 29
40 12 73 69 9 57
60 33 87 78 16 35
Program ended with exit code: 0

скачати

© Усі права захищені
написати до нас