Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.docx
Скачиваний:
31
Добавлен:
14.12.2018
Размер:
380.88 Кб
Скачать

Одеський національний політехнічний університет

Інститут комп’ютерних систем

Кафедра інформаційних систем

Варіант №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 для відображення процесу обробки масиву