|
Міністерство освіти і науки України
Вінницький національний технічний університет
Інститут автоматики, електроніки та комп’ютерних систем управління
Кафедра КСУ
Лабораторна робота № 2
з дисципліни комп`ютерні технології та програмування
Тема: «Розробка алгоритмів і С-програм обробки двовимірних масивів»
Варіант № 11
Виконав ст.гр.1АВ-13б.
Сохнич Ольга
Перевірив___________
______________________
Вінниця 2014
Мета: Освоїти прийоми обробки двовимірних масивів і придбати навички розробки С-програм для обробки масивів.
Порядок виконання:
1. Розробити алгоритм, схему алгоритму, програму, що працює в режимі простого меню, для обробки двовимірного масиву відповідно до завдання по варіантах, і тести, що підтверджують правильність роботи програми.
2. Скласти звіт за результатами лабораторної роботи.
3. Зробити висновки.
Завдання:
1)Розробити програму, яка видаляє з матриці A(n,m), де n < 10, m < 10, рядки, максимальний елемент яких дорівнює В.
2) знайти кількість стрічок, середнє арифметичне елементів, які менші
заданої величини.
1.Текст програми:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include<conio.h>
#include<locale.h>
#include<Windows.h>
int main()
{
setlocale(NULL, "rus");
char c; // змінна для збереження вибору користувача
do
{
system("color 80");
system("cls");
printf("Натиснiть 1, щоб ввести данi i отримати результат\n");
printf("Натиснiть #, щоб завершити роботу програми\n");
c = _getch();
switch (c)
{
case '1':
system("color F3");
system("cls");
printf("\nВи обрали ПЕРШИЙ пункт меню. Програма для видалення рядкiв, де задане користувачем число є максимальним та знаходження к-стi рядкiв,де сер.арифм рядка менше цього числа.\n");
// максимальні розміри масиву
const int N = 10;
const int M = 10;
int sum = 0;
int ser = 0;
int q = 0;
// масив
int A[N][M];
int n, m;
// введення фактичних розмірів масиву
puts("Enter n:");
scanf_s("%d", &n);
puts("Enter m:");
scanf_s("%d", &m);
// налаштування генератора чисел
time_t t;
srand((unsigned int)time(&t));
int i, j;
// генерування та виведення матриці
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
A[i][j] = rand() % 10;
printf("%4d", A[i][j]);
}
printf("\n\n");
}
// число для порівняння
int B;
printf("Enter B:");
scanf_s("%d", &B);
int max; // максимум в рядку
int k = -1; // кількість рядків, в яких максимум не дорівнює В
for (i = 0; i < n; i++)
{
max = A[i][0];
for (j = 0; j < m; j++)
{
if (A[i][j] > max)
max = A[i][j];
}
if (max!= B)
{
k++;
for (j = 0; j < m; j++)
{
A[k][j] = A[i][j];
}
}
}
// виведення результуючої матриці
for (i = 0; i <= k; i++)
{
for (j = 0; j < m; j++)
{
printf("%4d", A[i][j]);
}
printf("\n\n");
}
//для визначення сер.арифм.
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
sum = sum + A[i][j];
}
ser = sum / m;
if (ser < B)
q++;
sum = 0;
}
printf("Кiлькiсть стрiчок,де сер.арифм. МЕНШЕ за В: ""%d\n", q);
system("pause");
return 0;
}
_getch();
break;
} while (c!= '#');
system("pause");
return(0);
}
2.Тести для підтвердження правильності роботи програми показані на рисунках 1, 2, 3:
Рисунок 1
Рисунок 2
Рисунок 3
Висновок: виконуючи дану лабораторну роботу, я оволоділа навичками розробки С-програм для обробки двомірних масивів.
Дата добавления: 2015-09-29; просмотров: 21 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Національний технічний університет України | | | Розділ I. Особливості методики проведення дидактичних ігор |