рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Управление выводом данных на экран

Управление выводом данных на экран - раздел Философия, Лабораторная Работа №6 ...

ЛАБОРАТОРНАЯ РАБОТА №6

Управление выводом данных на экран

 

Цель работы: получение навыков работы с функциями вывода данных на экран в текстовом режиме

Задания для подготовки к работе

1. Разработать алгоритм и составить программу для решения задачи с учетом вывода данных на экран в текстовом режиме

2. Подобрать наборы тестовых данных.

Содержание отчета

1. Описание используемых структур данных.

2. Наборы тестовых данных с обоснованием их выбора.

3. Текст программы.

4. Описание и анализ ошибок, выявленных при отладке программы.

Краткие теоретические сведения

sudo apt-get install libncurses5-dev Кроме того, при компиляции проекта необходимо добавить параметр… Если вы компилируете проект при помощи консоли, то параметр добавляется при финальной линковке:

Работа с библиотекой ncurses.

Каждая программа, использующая ncurses, должна иметь следующую структуру:

#include <ncurses.h>

...

initscr(); // инициализация работы ncurses

 

работа с ncurses

 

endwin(); // завершение работы с ncurses

Вывод

Вывод символа

int addch(const chtype ch)

выводит символ ch в текущую позицию курсора и перемещает курсор на один символ вправо или в начало следующей строки, если курсор находится у правой границы экрана. (аналогична функции putchar из <stdio.h>) chtype тип символов с которыми работает ncurses (он включает в себя код символа, цвет и дополнительные атрибуты).

Вставка символа

int insch(chtype ch)

вставляет символ ch слева от курсора и все символы стоящие после курсора перемещаются на одну позицию вправо.

Вывод строки с преобразованием по формату

int printw(const char *fmt,...)

пример:

...

i=1;

printw("Значение i=%d",i);

...

выведет Значение i=1

(аналогична функции printf)

Вывод строки типа chtype*

int addchnstr(const chtype *chstr, int n)

выводит первые n символов или всю строку символов chstr, если n=-1 в позицию, где расположен курсор.

Вывод строки типа char*

int addstr(const char *str)

выводит строку str в позицию, где расположен курсор.

Вставка строки

int insnstr(const char* str, int n)

вставляет первые n символов или всю строку символов str, если n=-1 в позицию, где расположен курсор. (положение курсора не изменяется, то что стояло справа от курсора сдвигается вправо)

Вставка пустой строки

int insertln()

вставляет пустую строку (строки стоящие ниже начиная с текущей сдвигаются вниз на одну строку)

Режимы вывода

chtype ch = 'w' | A_BLINK; Теперь при выводе этого символа он будет мигать, если конечно это позволяет… С включением цвета немного сложнее. Перед использованием цветов нужно проинициализировать палитру. Палитра это…

Ввод

Ввод символа

int getch()

возвращает введённый символ (аналогична функции getchar) Если включён режим обработки командных клавиш можно узнать о нажатии функциональных клавиш и клавиш управления курсором. Константы соответствующие кодам этих клавиш можно найти в файле ncurses.h. Вот самые важные из них:

Константа Клавиша
KEY_DOWN, KEY_UP, KEY_LEFT, KEY_RIGHT клавиши стрелок
KEY_F(n) Функциональные клавиши 0..63
KEY_BACKSPACE Backspace
KEY_DC Delete
KEY_IC Insert
KEY_HOME Home
KEY_END End
KEY_NPAGE Page Down
KEY_PPAGE Page Up

Ввод строки по формату

int scanw(char *fmt,...)

(аналогична функции scanf). Например, для ввода пользователем числа в переменную i вызов функции будет выглядеть так:

scanw("%d", &i);

Режимы ввода

Автоматическое отображение при вводе

int noecho() и int echo()

Функция noecho отключает автоматическое отображение при вводе. Это нужно, если программист сам хочет решать выводить ему полученный символ или нет. Функция echo отменяет действие функции noecho.

Установка времени ожидания

int halfdelay(int tenths)

По умолчанию такие функции как getch ждут ввода до тех пор пока пользователь не нажмёт клавишу. Функция halfdelay устанавливает режим в котором ввод ожидается tenths десятых долей секунды, затем в getch возвращается ERR, если пользователь не нажимал клавиши. Отменить этот режим можно вызвав функцию nocbreak().

Обработка командных клавиш

int keypad(WINDOW *win, bool bf)

По умолчанию обработку таких клавиш, как клавиши управления курсором и функциональные клавиши берёт на себя терминал. Чтобы установить режим обработки командных клавиш нужно вызвать функцию keypad с TRUE в качестве второго параметра. Первый параметр указывает для какого окна Вы хотите установить данный режим. Если Вы не используете окна можно указать stdscr. Для отключения нужно передать FALSE во втором параметре.

Управление курсором

!!! Внимание: Все координаты в ncurses отсчитываются от верхнего левого угла и начиная с 0. Таким образом верхний левый угол имеет координаты (0,0)

Перемещение курсора

int move(int y, int x)

устанавливает курсор в позицию x, y

Получение текущих координат курсора

void getyx(WINDOW *win, int y, int x)

В переменные x, y записываются текущие координаты окна win. Если Вы не используете окна в качестве первого параметра можно указать stdscr.

Получить размеры экрана можно вызвав функции getmaxx(stdscr) и getmaxy(stdscr) они возвращают максимальное значение x и y соответственно для данного экрана.

Другие полезные функции

Очистка экрана

int clear()

заполняет весь экран пробелами

Очистка от курсора до конца строки

int clrtoeol()

заменяет пробелами интервал от курсора до конца строки

Очистка от курсора до конца экрана

int clrtobot()

заменяет пробелами интервал от курсора до конца экрана

Вставка/удаление строк

int insdelln(int n)

для положительного n вставляет n пустых строк, для отрицательного удаляет n строк.

Удаление символа

int delch()

удаляет символ на котором стоит курсор (символы стоящие справа от курсора сдвигаются влево)

Удаление строки

int deleteln()

удаляет строку на которой стоит курсор (строки стоящие ниже сдвигаются вверх)

Окна

Окно - прямоугольная область экрана с которой можно работать как с целым экраном (очищать, выводить текст и т.д.). То есть осуществлять вывод только в определённую прямоугольную область экрана.

После инициализации создаётся окно stdscr с максимально возможными для данного терминала размерами. Если окна не будут использоваться во всех функциях требующих окно можно указывать stdscr.

Внутри одного окна также можно создать окна которые будет называться подокнами

Создание окна

WINDOW *newwin(int nlines, int ncols, int begin_y, int begin_x)

создаёт окно в котором nlines строк и ncols столбцов (если nlines или ncols равны 0 то им будет присвоено begin_y или begin_x) с координатами левого верхнего угла (begin_x, begin_y). При вызове с нулевыми аргументами функция создаст окно размером с экран.

Создание подокна

WINDOW *subwin(WINDOW *orig, int nlines, int ncols, int begin_y, int begin_x)

создаёт подокно в котором nlines строк и ncols столбцов (если nlines или ncols равны 0 то им будет присвоено begin_y или begin_x) с координатами левого верхнего угла (begin_x, begin_y) относительно всего экрана. origwin - родительское окно.

Создание подокна 2

WINDOW *derwin(WINDOW *orig, int nlines, int ncols, int begin_y, int begin_x)

делает то же самое что и subwin, за исключением того, что begin_x и begin_y координаты относительно окна родителя origwin.

Удаление окна/подокна

int delwin(WINDOW *win)

удаляет окно/подокно win.

Перемещение окна

int mvwin(WINDOW *win, int y, int x)

перемещает окно win в новую позицию (x, y) левого верхнего угла.

Перемещение подокна

int mvderwin(WINDOW *win, int par_y, int par_x)

перемещает подокно win в новую позицию (x, y) левого верхнего угла относительно родительского окна.

Окно играет роль ограничителя вывод на экран. При вводе-выводе в перекрывающиеся окна данные в одном окне могут быть затёрты данными выводимыми в другое окно в месте перекрытия окон.

Установка цвета окна

start_color();

init_pair(1, COLOR_BLACK, COLOR_RED);

wbkgd(window, COLOR_PAIR(1));

Пример создания окна:

#include <ncurses.h>

 

int main() {

WINDOW* window;

 

initscr();

 

cbreak();

refresh();

window = newwin(10, 40, 0, 0);

box(window, 0, 0);

 

start_color();

init_pair(1, COLOR_BLACK, COLOR_RED);

wbkgd(window, COLOR_PAIR(1));

 

mvwprintw(window, 0, 1, "press any key to exit!");

wrefresh(window);

getch();

 

endwin();

 

return 0;

}

 

Дополнительная информация про работу с библиотекой (n)curses.

http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

http://alexber220.narod.ru/ncurses/


Задание к работе

Дан двумерный массив 5х5. Организовать ввод элементов, вывод результата в виде окон. Изменить после паузы цвет окон, в которых хранятся заданные согласно условию элементы.

Варианты заданий:

1.Найти произведение элементов, которые находятся выше главной диагонали. Заменить найденным числом все нечетные элементы.

2.Найти сумму элементов, которые находятся на нечетных позициях (сумма индексов (i+j) для Хij– нечетное число). Заменить найденным числом все отрицательные элементы.

3.Найти произведение всех элементов, которые находятся на главной диагонали. Заменить найденным числом все элементы пятой строки и второго столбца.

4.Найти среднее арифметическое элементов на главной диагонали и среднее арифметическое на побочной. Поменять местами элементы на диагоналях.

5.Найти среднее арифметическое положительных элементов, которые находятся выше главной диагонали. Заменить найденным числом все отрицательные элементы.

6.Найти сумму нечетных элементов. Заменить найденным числом все элементы, которые находятся выше побочной диагонали.

7.Найти произведение элементов i-строки и j-столбца (i, j- предварительно вводить с клавиатуры). Заменить найденным числом все элементы ниже побочной диагонали.

8.Найти произведение элементов, которые находятся на четных позициях (сумма индексов (i+j) для Хij– нечетное число). Заменить найденным числом все элементы на главной диагонали.

9.Найти среднее арифметическое нечетных элементов. Заменить найденным числом все элементы побочной диагонали.

10.Найти сумму всех четных элементов, которые находятся выше побочной диагонали. Заменить найденным числом все элементы четвертой строки.

11.Найти произведение элементов, которые находятся выше главной диагонали. Заменить найденным числом все нечетные элементы.

12.Найти сумму элементов, которые находятся на нечетных позициях (сумма индексов (i+j) для Хij– нечетное число). Заменить найденным числом все отрицательные элементы.

13.Найти произведение всех элементов, которые находятся на главной диагонали. Заменить найденным числом все элементы пятой строки и второго столбца.

14.Найти среднее арифметическое элементов на главной диагонали и среднее арифметическое на побочной. Поменять местами элементы на диагоналях.

15.Найти среднее арифметическое положительных элементов, которые находятся выше главной диагонали. Заменить найденным числом все отрицательные элементы.

16.Найти сумму нечетных элементов. Заменить найденным числом все элементы, которые находятся выше побочной диагонали.

17.Найти произведение элементов i-строки и j-столбца (i, j- предварительно вводить с клавиатуры). Заменить найденным числом все элементы ниже побочной диагонали.

18.Найти произведение элементов, которые находятся на четных позициях (сумма индексов (i+j) для Хij– нечетное число). Заменить найденным числом все элементы на главной диагонали.

19.Найти среднее арифметическое нечетных элементов. Заменить найденным числом все элементы побочной диагонали.

20.Найти сумму всех четных элементов, которые находятся выше побочной диагонали. Заменить найденным числом все элементы четвертой строки.

21.Найти произведение элементов, которые находятся выше главной диагонали. Заменить найденным числом все нечетные элементы.

22.Найти сумму элементов, которые находятся на нечетных позициях (сумма индексов (i+j) для Хij– нечетное число). Заменить найденным числом все отрицательные элементы.

23.Найти произведение всех элементов, которые находятся на главной диагонали. Заменить найденным числом все элементы пятой строки и второго столбца.

24.Найти среднее арифметическое элементов на главной диагонали и среднее арифметическое на побочной. Поменять местами элементы на диагоналях.

25.Найти среднее арифметическое положительных элементов, которые находятся выше главной диагонали. Заменить найденным числом все отрицательные элементы.

 

Например: Найти среднее арифметическое элементов на главной диагонали

После паузы:

Контрольные вопросы

1. Что такое текстовый режим, и чем он отличается от обычного?

2. Что такое окно?

3. Как переместить курсор в заданные координаты окна?

4. Как изменить цвет шрифта/фона?

 

– Конец работы –

Используемые теги: управление, выводом, данных, Экран0.063

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Управление выводом данных на экран

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Общее понятие о базах данных. Основные понятия систем управления базами данных. Модели данных. 10
Сетевые технологии обработки данных Компоненты вычислительных сетей... Принципы организации и основные топологии вычислительных сетей Принципы... Сетевой сервис и сетевые стандарты Средства использования сетевых сервисов...

КУРС ЛЕКЦИЙ ПО ИНФОРМАТИКЕ Тема: Базы данных, Банки Данных, Системы Управления Базами Данных — СУБД
ГОУ ВПО ВОЛОГОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Факультет промышленного менеджмента...

Понятие управления. Виды управления. Управленческий труд и его особенности. МОДЕЛИ УПРАВЛЕНИЯ. ПОДХОДЫ К УПРАВЛЕНИЮ
Основатель Ф У Тейлор В г выпустил первую печатную работу которая... Основная идея используя замеры и наблюдения за работой исполнителей можно оптимизировать технологию выполнения работ...

Управление, его цель и задачи функции. Организация управления. Система управления в составе системы производства
Информационная система ИС это организационно упорядоченная взаимосвязанная совокупность средств и методов ИТ а также используемых для хранения... Российский ГОСТ РВ определяет информационную систему как... Основной задачей ИС является удовлетворение конкретных информационных потребностей в рамках конкретной предметной...

Компьютерные данные: типы данных, обработка и управление
Реляционная модель данных. 5 Заключение: Порядок выполнения практической работы 1. Компьютерные данные: типы данных, обработка и управление… Точность - это способность выполнить задачи без погрешностей или ошибок. Данную характеристику можно трактовать еще и так: - это степень соответствия меры к определенному стандарту.…

Основные действия операционной системы при управлении заданиями – программы функций, характеристика действий, конечный результат. 2. Способы реализации управления данными – подпрограммы ввода-вывода
Оглавление... Содержание... Основные действия операционной системы при управлении заданиями программы функций характеристика действий...

Имеется 4 основные задачи управления: стабилизация; программное управление; слежение; оптимальное управление
Управление это такое входное воздействие или сигнал в результате которого система ведет себя заданным образом... Различают способа управления в зав сти от того на основе какой информации...

РАЗДЕЛ I. ГОСУДАРСТВЕННОЕ УПРАВЛЕНИЕ - СИСТЕМНОЕ ОБЩЕСТВЕННОЕ ЯВЛЕНИЕ. ЛЕКЦИЯ 1. ПОНЯТИЕ ГОСУДАРСТВЕННОГО УПРАВЛЕНИЯ
Со времени выхода в свет первого издания прошло шесть лет Это хотя и небольшой но вполне достаточный срок для того чтобы можно было судить о его... Середина х годов в России когда была опубликована предыду щая моя книга... В тех условиях и в той интеллектуальной атмосфере размышлять о государственном управлении считалось ретроградством...

Объекты базы данных. Язык определения данных
На сайте allrefs.net читайте: "Объекты базы данных. Язык определения данных"

по ДИСЦИПЛИНЕ «ИНФОРМАТИКА И КОМПЬЮТЕРНАЯ ТЕХНИКА» Тема: «СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ACCESS»
Одесская Национальная Академия Пищевых... Технологий...

0.035
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам