RSS    

   Реферат: Из опыта создания универсальных тестовых редакторов

            TextColor(black);

            clrscr;

            Window(5,10,70,13); {окно поиска}

            TextBackGround(green);

            clrscr;

            Write('Ваша Фамилия');

            Readln(a); {ввод фамилии}

            while not EOF(b1) do Begin    {поиск фамилии}

                                 Readln(b1,f); {считывание строки}

                                 For i:=1 to length(a) do f1:=f1+f[i]; {выделение фамилии}

                                 If a=f1 Then Begin    {проверка совпадения}

                                              Writeln(f); {вывод на экран}

                                              c1:=true; {подтверждение запроса}

                                              End;

                                 f1:=''; {обнуление строки}

                                 End;

            If c1=false Then Write('Запрос не найден. Пройдите тест.');

                                                                                                  {в случае отсутствия фамилии в списке}

            Readln;

            close(b1); {закрытие файла}

            Window(5,10,70,13); {закрытие окна}

            TextBackGround(Black);

            clrscr;

    End;

Задачи: выделение фамилии из строки путем поиска пробела, поиск соответствия фамилий и вывод результатов поиска на экран.

Проблемы: никаких

Функция печати данных. В Turbo Pascal имеются средства для работы с принтером. Это ключевое слово Lst, указывающиеся в операторе вывода Writeln. Следуя этой инструкции, компилятор посылает сообщения не на экран, а на принтер. Этот способ имеет существенный недостаток: данные передаются очень медленно. Также в языке нет определенной команды для окочания работы принтера, поэтому бумага остается внутри и приходится использовать внешние управляющие кнопки принтера. Программа просит указать путь к файлу, а затем распечатывает его.

   Я нашел другой алгоритм работы с принтером, более быстрый, но он требует знаний языка Assembler, встроенного в Turbo Pascal:

Procedure PrintF;

    Begin

    TextColor(black);

    Window(10,10,53,15);       {начальное окно}

    TextBackGround(cyan);

    clrscr;

    Writeln('Какой файл распечатать?'); {вывод запроса}

    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;

    Window(10,10,53,15); {открытие окна ввода}

    TextBackGround(cyan);

    clrscr;

    Readln(a); {ввод пути к файлу}

    Assign(b1,a); {связь переменной с файлом}

    Reset(b1); {открытие файла для чтения}

    Writeln('убедитесь что ваш принтер настроен для работы в MS-DOS'); {предупреждение}

    repeat      {цикл работы с файлом}

    Window(60,24,70,24); {закрытие окна}

    TextBackGround(black);

    clrscr;

    h:=g3;

    GoToXY(50,22);

    GetTime(g1,g2,g3,g4); {вывод времени}

    TextColor(yellow);

    Write(g1,':',g2,' ',g3);

     clrscr;

    Readln(b1,f); {считывание символа}

    Writeln(Lst,f); {распечатывание символа}

    until EOF(b1);

    Window(10,10,53,15); {закрытие окон}

    TextBackGround(black);

    clrscr;

    End;

Проблемы: отсутствие команды для окончания работы принтера, малая скорость печати. Решение- в языке ассемблер.

Новые объектные концепции.

   Современные технологии разработки программного обеспечения опираются в основном на идеи структурного программирования. К ним, в первую очередь, относятся: функциональная модульность, структурированность программ и данных, насыщенность текстов программ комментариями, открытость, надежность и т. д. Широко используемым примером такой технологии является технология «сверху-вниз». Ее суть заключается в постепенной пошаговой детализации функций, выполняемых программной системой. Серьезными недостатками технологии «сверху-вниз» являются недостаточное внимание к проектированию структур данных и слабая их связь с процедурами обработки.

 Гармоничное включение в структуру языка средств объектно-ориентированного программирования делает переход от традиционных технологий программирования к объектно-ориентированному для тех, кто программирует на Турбо Паскале, достсаточно безболезненным. А то, что такой переход назрел, сомнений не вызывает. Мощные пакеты инструментальных средств, такие как Turbo Vision и Object Toolkit, способствует внедрению объектно-ориентированных методов в процессе разработки программ. Кроме того, опрос американских программистов, проведенный осенью 1991 года, показал, что в 1992 году более половины из них планирует включить средства объектно-ориентированного программироваиня в свой арсенал, поскольку считают, что это будет способствовать ускорению разработки.[4]

   Понять основы объектного программирования вам поможет учебник по Delphi 5. Важнейшими понятиями объекта являются принцип наследования, полиморфизм, поля, методы, свойства и события объекта. В языке Turbo Pascal не полностью реализован данный подход к программированию.

   Наиболее важным понятием объектно-ориентированного программирования является понятие объекта. Объект представляет собой совокупность данных и подпрограмм, предназначенных для работы с этими данными. Главным достоинством объекта является то, что он позволяет моделировать абстрактные ситуации. Это делает объектный подход к программированию довольно удобным для большинства программистов, хотя очень трудно понять объектный подход тем, кто ранее программировал на структурных языках. Тем более, что найти какой-либо справочный материал по объектам очень сложно. Поэтому я приведу основы понятия объекта.

   Объект в Turbo Pascal состоит из имени, полей данных и методов. Поля данных это ете же переменные в программе, на которые опирается объект. Заголовки методов- названия процедур объекта, позволяющих работать с полями, поскольку прямой доступ к полям нежелателен. Объект объявляется следующим образом:

   Объект.

   Type <имя объекта>=object

    <поля данных>

    <заголовки методов>

   End;

   После объявления объекта к нему пишутся процедуры (методы). Название процедуры состоит из двух частей: имени объекта и имени процедуры:

<Имя объекта>.<Имя процедуры>

Объектная программа.

   Объектная программа- это последняя важная стадия разработки программы: в нее внедряется панель управления, что значительно облегчает диалог с системой и делает функции программы более доступными. Как видно из предыдущей главы, функции программы в структурном виде находятся в операторе варианта case, а выбор функции происходит нажатием клавиши.

   Создавая объектную программу, я лишь перенес функции из оператора варианта в процедуры объекта и связал их между собой.

   Новый объект- панель управления под именем panel имеет одно поле- координату синего прямоугольника, который перемещается по панели управления. На самом деле это окно синего цвета, а изменение цвета букв при перемещении создается засчет точного соответствия текста в окне и текста на панели управления. Панель имеет процедуры перемещения прямоугольника выбора, которые уменьшают и увеличивают его координату в соответствии с нажатыми клавишами. А также есть процедура выбора, при нажатии клавиши Enter управление передается ей. Она в свою очередь определяет по координате окна какую функцию необходимо запустить в данный момент.

   Этапы разработки объекта Панель Управления:

1.   Определение ключевого поля перемещения окна

2.   Определение процедур работы с окном

3.   Определение пропорций окна панели управления

4.   Рисование панели управления

5.   Написание процедур работы с окном выбора

6.   Установка связей между функциями и объектом

7.   Отладка объекта

Программный код.

Program redactor;

uses crt,printer,dos;

type panel=object  {объявление объекта}

     x:integer; {поле объекта}

     Procedure left(b:char); {описание процедуры сдвига влево окна выбора}

     Procedure right(b:char); { описание процедуры сдвига вправо окна выбора }

     Procedure choose; { описание процедуры выбора функции }

     End;

  Var a,f,f1,a2:string; {описание всех программных переменных}

      b,k:char;

      c,u,y,a1,b1:text;

      d,e,i,j,p,z,z1,z2:integer;

      c1:boolean;

      g:panel;

      g1,g2,g3,g4,h:word;

  Procedure panel.left; {процедура сдвига влево окна выбора}

    Begin

    Window(x,22,x+9,22); {закрашивание следующего окна}

Страницы: 1, 2, 3, 4, 5, 6


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.