- •Интерфейс
- •Немного истории
- •Элементы интерфейса, подвластные человеку
- •Элементы интерфейса со стороны машины
- •Организация диалога с программой
- •Лабораторная работа №11 Задание
- •Работа с графикой Основные понятия
- •Формирование изображения на экране
- •Работа с графикой в Паскале
- •InitGraph (var Driver, Mode: integer; Path:string);
- •Некоторые процедуры для работы с графикой
- •Лабораторная работа №12 Задание
- •Литература
Лабораторная работа №11 Задание
Необходимо выполнить все приведенные ниже задания, а также задания для самостоятельной работы. Задания выполняются не по вариантам. Приветствуется проявление творчества при выполнении заданий.
1. Вводится три числа A, X, Y. Вывести значение A в точке с координатами X, Y.
Program primer1;
Uses crt;
Var a: integer;
X: 1..80; Y: 1..25;
Begin
TextMode(2); {устанавливаем режим экрана черно-белый 80*25}
Readln (a, x, y);
GotoXY (x, y); {устанавливаем курсор в позицию с координатами x,y}
Write(a);
Delay(10000); {устанавливаем время задержки}
End.
Задание для самостоятельной работы: установите цветной режим и выведите значение A заданным цветом, добавьте режим мерцания.
2. Организовать ввод 10 чисел, чтобы запрос на каждое число осуществлялся в центре экрана, а сами числа печатались разным цветом.
Program primer2;
Uses crt;
Var
I, k: integer;
Begin
Clrscr;
TextMode(CO80) {устанавливаем цветной режим экрана 80*25}
For i:=1 to 10 do
Begin
TextColor(i); {устанавливаем цвет символов}
Clrscr;
GotoXY(40,12);
Read(k);
End;
Delay(1000);
End.
Задание для самостоятельной работы: добавьте цвет фона, попробуйте изменять его в цикле, только следите, чтобы цвет фона не совпадал с цветом символов.
3. Самостоятельно организовать вывод чисел от 1 до 100 так, чтобы они выводились в центре экрана через определенные промежутки времени.
4. Заполнить символьный массив так, чтобы каждый вводимый символ отображался на экране, и при этом не нажималась клавиша Enter. Ввод завершить по нажатию клавиши Esc.
Program primer4;
Uses crt;
Var
A: array [1..100] of char;
B: char; i, k: integer;
Begin
I:=0;
Repeat
B:=ReadKey; {читаем символ с клавиатуры без вывода на экран}
K:=ord(b); {определяем код нажатой клавиши}
If k<>27 then begin i:=i+1; a[i]:=b; gotoXY(i,10); write(b); end;
Until k=27; {цикл выполняется пока не будет нажата клавиша Esc, имеющая код 27}
End.
Задание для самостоятельной работы: используя множества всех букв алфавита и гласных букв, измените программу так, чтобы при вводе гласные буквы печатались одним цветом, а согласные – другим.
5. Организовать движение курсора по экрану под управлением клавиш управления курсором: , , , , а также дополнительных клавиш управления Home, End, PageUp, PageDown.
Замечание: следует учесть, что клавиши управления курсором – функциональные клавиши и при выполнении последовательности команд: b:=readkey; c:=ord(b) переменная c будет иметь значение 0, поэтому определить код нажатой клавиши можно с помощью этой же функции вида ord(readkey).
Program primer5;
Uses crt;
Const {введем предельные значения координат в текстовом режиме}
MinX=1;
MinY=1;
MaxX=80;
MaxY=25;
Var
Ch: char;
Kod: ineger;
X, y: byte;
Begin
Clrscr;
{вычислим координаты середины экрана}
X:=MaxX div 2;
Y:= MaxY div 2;
Repeat
GotoXY (x, y) {установим курсор}
Ch:=readkey;
Kod:=ord(readkey);
{пересчитаем координаты курсора в соответствии с нажатой клавишей}
Case kod of
72: if y>MinY then y:=y-1; {нажата клавиша «вверх»}
80: if y<MaxY then y:=y+1; {нажата клавиша «вниз»}
77: if x<MaxX then x:=x+1; {нажата клавиша «вправо»}
75: if x>MinX then x:=x-1; {нажата клавиша «влево»}
71: x:=MinX; {нажата клавиша Home}
79: x:=MaxX; {нажата клавиша End}
73: y:=MinY; {нажата клавиша PageUp}
81: y:=MaxY; {нажата клавиша PageDown}
end;
until ch=#27 {цикл выполняется, пока не будет нажата клавиша Esc}
end.
Задание для самостоятельной работы: организовать движение какого-либо символа по экрану с помощью клавиш управления.
6. Организовать меню из 3 пунктов: ввод данных, обработка данных, выход из программы. Меню вывести в окне, расположенном в центре экрана. Выбор пункта меню осуществлять по нажатию цифры, соответствующей его номеру. При выборе пункта меню осуществлять обращение к процедуре-заглушке (пустая процедура, не выполняющая никаких алгоритмических действий), после выполнения которой вернуться к меню. Программа должна завершаться при выборе пункта меню «выход из программы».
Program primer6;
uses crt;
var
punkt: char;
procedure punkt1;
begin
textmode(co80); textcolor(13); textbackground(0);
clrscr;
writeln ('Первый пункт меню');
delay (3000);
clrscr;
end;
procedure punkt2;
begin
textmode(co80); textcolor(13); textbackground(0);
clrscr ;
writeln ('Второй пункт меню');
delay (3000);
clrscr;
end;
begin
textmode(co80);
repeat
window(25,8,55,17);
textbackground(11) ;
textcolor(1);
clrscr;
gotoxy(5,2); write('1. Ввод данных ');
gotoxy(5,4); write('2. Обработка данных');
gotoxy(5,6); write('3. Выход из программы');
punkt:=readkey;
case punkt of
'1': punkt1;
'2': punkt2;
end;
until punkt='3';
end.
Задание для самостоятельной работы: Написать программу тестирования. Тест, последовательность вопросов и варианты ответов должны находиться в текстовом файле. Тему для теста, вопросы, варианты ответов и интерфейс программы разработать самостоятельно.
Программа должна выставлять оценку по следующему правилу: ОТЛИЧНО – за правильные ответы на все вопросы, ХОРОШО – если испытуемый правильно ответил не менее, чем на 80% вопросов, УДОВЛЕТВОРИТЕЛЬНО – если правильных ответов более 60%, и ПЛОХО – если правильных ответов менее 60%.