Лабораторная №16
.docxОдеський національний політехнічний університет
Інститут комп’ютерних систем
Кафедра інформаційних систем
Варіант №1
Лабораторна робота №16
По дисципліні “Алгоритмізація і програмування”
Тема: “Управління виведенням даних на екран”
Виконав:
Студент гр. АІ-171
Анищенко М.О.
Перевірили:
Глава М.Г.
Одеса 2018
Мета роботи: отримання навичок роботи з функціями виводу даних на екран в текстовому режимі.
Завдання:
Блок-схема:
Код програми:
#include <curses.h>
#include <unistd.h>
#define N 5
int main() {
WINDOW* window[N][N];
int arr[N][N];
initscr();
cbreak();
refresh();
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
{
window[i][j] = newwin(3, 5, 0+(i*3), 0+(j*5));
box(window[i][j], 0, 0);
mvwscanw(window[i][j], 1, 1, "%d", &arr[i][j]);
wrefresh(window[i][j]);
box(window[i][j], 0, 0);
wrefresh(window[i][j]);
}
sleep(5);
start_color();
init_pair(1, COLOR_BLACK, COLOR_WHITE);
int k = 0;
for(int i = 0; i < N-1; i++)
for(int j = i+1; j < N; j++)
{
k += arr[i][i];
wbkgd(window[i][j], COLOR_PAIR(1));
wrefresh(window[i][j]);
}
WINDOW* dob = newwin(3, 5*N, 3*N, 0);
box(dob, 0, 0);
mvwprintw(dob, 1, 10, "SUM = %d", k);
wrefresh(dob);
sleep(5);
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
{
if( (i+j) % 2)
{
mvwprintw(window[i][j], 1, 1, "%d", k);
wrefresh(window[i][j]);
}
}
getch();
endwin();
return 0;
}
Приклад виконання:
Висновки:
Написана програма використовує бібліотеку pdcurses для відображення процесу обробки масиву