You are on page 1of 6

Міністерство освіти та науки України

Державний університет “Одеська політехніка”


Інститут комп’ютерних систем
Кафедра інформаційних систем

Лабораторна робота №16


З дисципліни “Алгоримізація та програмування”
Тема:«Управління виведенням даних на екран»

Варіант №12

Виконала:
Студентка групи АІ-226
Каракушан Катерина Геннадіївна
Перевірили:
Денисенко А.В.
Іванов О.В.

Одеса 2023
Мета роботи: Отримання навичок роботи з функціями виводу даних на екран в
текстовому режимі.
Завдання 16: Дано двовимірний масив 5х5. Організувати введення елементів,
виведення результату у вигляді вікон. Змінити після паузи колір вікон, в яких
зберігаються задані згідно з умовою елементи.

Код

#include <stdio.h>
#include <curses.h>

#define ROWS 5
#define COLS 5
#define WINDOW_HEIGHT 5
#define WINDOW_WIDTH 10

int main() {
int matrix[ROWS][COLS];
int i, j;
int sum = 0;

initscr();
curs_set(0); // Turn off cursor visibility
start_color();
init_pair(1, COLOR_WHITE, COLOR_RED);
init_pair(2, COLOR_WHITE, COLOR_GREEN);
init_pair(3, COLOR_WHITE, COLOR_BLUE);

WINDOW* windows[ROWS][COLS];
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
windows[i][j] = newwin(WINDOW_HEIGHT, WINDOW_WIDTH, i *
(WINDOW_HEIGHT + 1), j * (WINDOW_WIDTH + 1));
box(windows[i][j], 0, 0);
wrefresh(windows[i][j]);
}
}

for (i = 0; i < ROWS; i++) {


for (j = 0; j < COLS; j++) {
wclear(windows[i][j]);
wattron(windows[i][j], COLOR_PAIR(1));

2
box(windows[i][j], 0, 0);
mvwprintw(windows[i][j], 2, 3, " ");
wrefresh(windows[i][j]);
char input[WINDOW_WIDTH - 3];
mvwgetstr(windows[i][j], 2, 3, input);
matrix[i][j] = atoi(input);
wclear(windows[i][j]);
wattron(windows[i][j], COLOR_PAIR(1));
box(windows[i][j], 0, 0);
mvwprintw(windows[i][j], 2, 3, "%d", matrix[i][j]);
wattroff(windows[i][j], COLOR_PAIR(1));
wrefresh(windows[i][j]);
}
}

for (i = 0; i < ROWS; i++) {


for (j = 0; j < COLS; j++) {
if ((i + j) % 2 != 0) {
sum += matrix[i][j];
}
}
}

clear(); // Clear window


refresh();

for (i = 0; i < ROWS; i++) {


for (j = 0; j < COLS; j++) {
if (matrix[i][j] < 0) {
wclear(windows[i][j]);
matrix[i][j] = sum;
wattron(windows[i][j], COLOR_PAIR(3));
box(windows[i][j], 0, 0);
mvwprintw(windows[i][j], 2, 3, "%d", matrix[i][j]);
wattroff(windows[i][j], COLOR_PAIR(3));
wrefresh(windows[i][j]);
}
}
}

refresh();
getch();
endwin();
return 0;

3
}
Блок-схема:

4
Результат роботи програми:

Висновок: Отримала навичок роботи з функціями виводу даних на екран в


текстовому режимі.

5
6

You might also like