Реферат: Из опыта создания универсальных тестовых редакторов
TextBackGround(green);
clrscr;
Закрашивание следующего окна- важная функция. Она закрашивает то синее окно, которое было выбрано перед обращением к процедуре.
Window(10,22,69,22); {основное окно панели управления}
TextBackGround(green);
clrscr;
TextColor(brown); {установка цвета текста}
Write('Новый Открыть Править Результат Печать Выход'); {нанесение надписи на панель
управления}
If x>=20 Then x:=x-10; {проверка соответствия окна выбора границам панели управления}
Этот оператор производит сравнение координат окна выбора с координатами начала панели управления. Если окно выбора “выехало” за границы панели управления, то изменений координат не производится, окно выбора остается на своем месте.
Window(x,22,x+9,22); {рисование окна выбора}
TextBackGround(blue);
clrscr;
case x of {выбор надписи на окне выбора}
Данное ветвление распознает по координате окна выбора какое слово следует в него вписать.
10:Begin
TextColor(green);
Write('Новый');
End;
20:Begin
TextColor(green);
Write('Открыть');
End;
30:Begin
TextColor(green);
Write('Править');
End;
40:Begin
TextColor(green);
Write('Результат');
End;
50:Begin
TextColor(green);
Write('Печать');
End;
60:Begin
TextColor(green);
Write('Выход');
End;
End;
End;
Procedure panel.right; {процедура сдвига окна выбора вправо}
Begin
Window(x,22,x+9,22); {закрашивание предыдущего окна}
TextBackGround(green);
clrscr;
Window(10,22,69,22); {рисование окна панели управления}
TextBackGround(green);
clrscr;
TextColor(brown); {изменение цвета текста}
Write('Новый Открыть Править Результат Печать Выход'); {нанесение текста на панель управления}
Вы, конечно, заметили, что операторы предыдущей и этой процедуры повторяются, поэтому их можно вынести в отдельную процедуру и запускать ее для обновления окна панели управления.
If x<=50 Then x:=x+10; {сравнение координат окна выбора с координатами конца окна панели
управления}
Window(x,22,x+9,22); {рисование окна выбора}
TextBackGround(blue);
clrscr;
case x of {нанесение соответствующего текста на окно выбора}
10:Begin
TextColor(green);
Write('Новый');
End;
20:Begin
TextColor(green);
Write('Открыть');
End;
30:Begin
TextColor(green);
Write('Править');
End;
40:Begin
TextColor(green);
Write('Результат');
End;
50:Begin
TextColor(green);
Write('Печать');
End;
60:Begin
TextColor(green);
Write('Выход');
End;
End;
End;
Procedure pannel; {процедура рисования панели управления}
Begin
Window(10,22,69,22);
TextBackGround(green);
clrscr;
TextColor(brown);
Write('Новый Открыть Править Результат Печать Выход');
End;
<Procedure NewF;> {функции тестового редактора}
<Procedure OpenF;>
<Procedure RedactF;>
<Procedure SearchF;>
<Procedure PrintF;>
Procedure panel.choose; {процедура выбора функции}
Begin
case x of {по координате окна выбора определяет нужную функцию}
10:NewF;
20:OpenF;
30:RedactF;
40:SearchF;
50:PrintF;
60:b:='e';
End;
End;
Вывод: Как видно, основную функцию управления взял на себя объект. Благодаря этому действие программы значительно упростилось, программа стала быстрее работать. Схему действия объекта можно изобразить следующим образом
Оформление программы.
В завершении работы с программой я приступил к оформлению работы. Создание титульной страницы не составило большого труда. Если вы ознакомитесь с программным кодом, то убедитесь, что все команды- из модуля crt. Они используют элементы работы с цветом фона и текста.
Procedure oform;
Begin
TextBackGround(green); {установка цвета фона}
clrscr;
TextColor(red); {цвет текста}
GoToXY(20,10); {перевод курсора в нужную позицию}
Write('Редактор Тестов'); {вывод текста}
TextColor(darkgray); {цвет текста}
GoToXY(20,12);
Writeln('автор: Цыбин Антон'); {вывод текста}
GoToXY(20,14);
Writeln('составлено 09.05.2000'); {вывод текста}
TextColor(white); {цвет текста}
GoToXY(20,16);
Writeln('нажмите клавишу'); {вывод текста}
Readln;
TextBackGround(black);
clrscr;
End;
Begin
Программа рисует титульный лист разноцветными буквами.
Основная программа.
Реализует действие всей программы, здесь сходятся все процедуры, объекты, функции, но ее действие крайне просто: сначала запускается оформление, затем системное время, а затем управление передается объекту или его методам. По завершении работы программа закрывает все окна и «сворачивает» работу программы.
g.x:=10;
oform; {оформление}
TextColor(green);
GoToXY(30,1);
Writeln('ТЕСТОВЫЙ РЕДАКТОР. V 1.01.'); {вывод информации}
GoToXY(23,2);
Writeln('составитель: Цыбин Антон (09.05.2000)');
pannel;
repeat
Window(60,24,70,24);
TextBackGround(black);
clrscr;
repeat {время}
h:=g3;
GoToXY(50,22);
GetTime(g1,g2,g3,g4);
TextColor(yellow);
Write(g1,':',g2,' ',g3);
Delay(1000);
clrscr;
until keypressed;
b:=readkey; {считывание клавиши}
По нажатию клавиши программа определяет дальнейшие действия (передача управления объекту)
case b of
'1':g.left(b);
'3':g.right(b);
'0':Begin
Window(10,10,53,15);
TextBackGround(blue);
clrscr;
g.choose;
End;
End;
until b='e';
Window(10,10,53,20); {закрытие всех окон}
TextBackGround(black);
clrscr;
Window(10,10,80,15);
TextBackGround(black);
clrscr;
Window(30,10,35,12);
TextBackGround(red);
clrscr;
TextColor(blue);
Writeln('конец!');
Readln;
End.
Программа запускает методы панели управления в соответствии с нажатой клавишей, повторный вызов происходит благодаря циклу.
Заключение: Тенденции развития программных технологий.
Вы прочитали реферат и ознакомились с принципами действия отдельных процедур, функций и всей программы в целом. Кроме того, вы поняли разницу между структурным и объектным подходами к программированию. Что касается структурных языков, о них сказано и написано почти все, но немногие знакомы с объектами. Поэтому я посвящаю заключение этой теме.
В последние несколько лет начал создаваться новый подход к программированию, названный объектным. Объекты стали вводиться и в язык Pascal, который позже был назван Object Pascal. Сам объект построен по принципу, объясняющемуся в главе «Объекты». Их преимущество заключается в принципе наследования, когда один созданный объект способен породить родственный ему объект-потомок. Многие объекты могут использовать друг друга при построении программы. Ввиду большого количества полей и методов, были созданы свойства, использующие методы. В частности, в Delphi свойства выносятся в Инспектор объектов, что делает работу с ними похожей на детскую игру. Теперь, чтобы написать программу, не надо возиться с кучей переменных и операторов. Программист может даже и не видеть текста самой программы, конструируя сразу ее внешний вид на форме. Таким образом, если на создание программы ранее уходили недели, то сейчас она создается за несколько часов.
В связи с переходом на объектные концепции, новые программы возникают на основе уже имеющихся объектов. Некоторые языки программирования написаны на основе объектов. Расширяется и пространство применения объектов, если они возникли в среде MS-DOS, то теперь, используя объекты, можно с легкостью создать текстовый редактор типа WORD или СУБД типа ACCESS. И, естественно, в такой среде можно создать мощный и удобный редактор тестов.
Но я только приступаю к изучению Delphi и не могу написать подобный редактор в той среде. Но и описанная здесь программа не останется в таком виде. В перспективе внедрение мышки и управление программой с ее помощью. Я уже знаю, как это осуществить, и использую мышь в ряде своих программ.
К программе недавно мной был написан кодировщик информации. Он универсален в применении к файлам, т. е. можно зашифровать любой файл и ни одна программа не сможет его прочитать. Расшифровать файл вы сможете используя тот же редактор, совершая те же действия. Вам требуется лишь ввести полный путь к файлу, имя файла с указанием его расширения. Далее программа сделает все за вас, включая расчет времени, необходимого для шифрования. Используйте его по вашему усмотрению для шифрования текстов тестов.
Список использованной литературы:
1. Учебник по Turbo Pascal 7.0 1998г.
2. Учебник по Delphi 5 (Дарахвелидзе, Котенок, Марков) 2000г.
3. Журнал «Информатика и Образование» №1 1998г. статья Г. Н. Гутмана «Неисчерпаемый Фортран»
4. Журнал «Земля и Вселенная» №2 1998г. статья В. П. Дьяконова «Бейсик- язык программирования ПЭВМ»
5. Журнал «Информатика и Образование» №8 1999г. статья В. И. Курганского «Конструирование программ»
6. Интерактивный учебник по Delphi, аннотированные ссылки в Интернет
[1] Примечание: данные из учебника по Turbo Pascal
[2] Примечание: данные из статьи «Конструирование программ»
[3] Примечание: данные из учебника по Turbo Pascal
*Примечание автора
[4] Примечание: данные из учебника по Delphi 5