Professional Documents
Culture Documents
Лабораторна №16 програмування на С
Лабораторна №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]);
}
}
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]);
}
}
refresh();
getch();
endwin();
return 0;
3
}
Блок-схема:
4
Результат роботи програми:
5
6