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

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

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

Из опыта создания универсальных тестовых редакторов - раздел Программирование, Предисловие. Как Известно, В Настоящее Время Наиболее Распространенными Алго...

Предисловие. Как известно, в настоящее время наиболее распространенными алгоритмическими языками являются Паскаль и Си. Именно эти языки используются практически на всех действующих вычислительных системах- от супер-ЭВМ до персональных компьютеров. Что касается ПЭВМ, то лидером семейства языков Паскаль для них, без сомнения, является Турбо Паскаль 7.0, разработанный фирмой Borland.Эта последняя версия позволила объединить в рамках единой системы мощный алгоритмический потенциал языка, методы объектно-ориентированного программирования, современную графику, удобные средства тестирования и отладки программ, а также обеспечить дружественный интерфейс с пользователями.

Примечание данные из учебника по Turbo Pascal Поэтому я выбрал этот язык программирования как основу для создания тестового редактора. Я решил создать тестовый редактор, потому что именно тесты в последнее время завоевывают все большую популярность.Они позволяют быстро и довольно точно проверить уровень знаний по тому или иному предмету, узнать ту или иную информацию о тестирующемся.

Конечно, тест без труда можно составить вручную, но потребуется много времени, чтобы его размножить. Кроме того, можно в любой момент протестироваться и мгновенно узнать результаты.Разрабатывая программу шаг за шагом, я выделил основные функции, присутствующие в любом редакторе и, конечно, в моем, а именно 1. создание нового файла теста 2. открытие теста и тестирование 3. редактирование теста 4. просмотр результатов 5. печать файла 6. выход из программы.

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

Бурное развитие программно-аппаратных средств, появление новых стилей и технологий программирования, как ни парадоксально, не снижают, а повышают уровень требований к массовой алгоритмической культуре. Практически все диалоговые системы являются программируемыми. Методика конструирования программ легко переносится на другие процедурные языки программирования, в том числе и объектно-ориентированные.Примечание данные из статьи Конструирование программ В соответствии с технологией конструирования программ построена программа тестового редактора.

Я разделил ее на этапы 1. Создание структурной программы, во многом неудобной в использовании из-за отсутствия диалога, упорядоченного ввода и вывода информации и многого другого. Исходная программа имела лишь основные функции. Она была ядром, осуществлявшим все процессы и функции редактора.В следующей главе в точности приведен текст структурной программы. 2. Разбиение сплошного текста программы на процедуры. Таким образом, текст стал занимать не так много места, исчез оператор варианта, многие метки, ссылки и т. п. Надо сказать, многие программисты предпочитают вводить процедуры в программу.

Это значительно упрощает ее. 3. Введение оконной системы с помощью доступных возможностей языка оператор Window.Это позволило значительно упростить работу, создать диалог пользователя с программой, уменьшить количество информации, поступающей к пользователю и количество ее потоков. 4. Введение объекта- панели управления. Вы можете видеть ее внизу экрана.

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

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

Их использование позволяет записывать сложные алгоритмы обработки данных в компактной форме. Примечание данные из учебника по Turbo Pascal Примечание автора Хотя Бейсик не является полностью структурным языком, в нем отражены основные концепции структурного программирования. рассмотрим их подробнее.Бейсик- язык программирования ПЭВМ. Бейсик - диалоговый язык высокого уровня, ориентированный на пользователей ПЭВМ, непрофессионалов в области вычислительной техники.

Бейсик - преимущественно интерпретирующая программа, позволяющая производить построчную отладку текстов программ. Данный способ гораздо удобнее для начинающих программистов, нежели компилирование компилятор производит отладку только целой программы, а не по частям, и широко используется в Паскале. Отличительной чертой структурных языков являются краткие однозначные операторы в отличие от длиннейших команд объектного программирования.В некоторых версиях Бейсика имеется встроенный редактор программ, позволяющий работать с текстом программы из командного окна. Работа с программой осуществляется в трех различных режимах Непосредственное общение Ввод программ Вычисление по введенной в ОЗУ программе В основном, Паскаль выполняет те же функции что и Бейсик.

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

Структурная программа- последовательность простых команд, операторов, реализующая ядро, то есть действие программы.Уже на этом этапе программа работает с текстовыми файлами. Для осуществления связей между отдельными частями программы, реализующими функции редактора, я использовал оператор безусловного перехода GoTo. Ниже приведена схема структурной программы тестового редактора, объясняющая соответствующий подход к программированию.

Основной список операторов вырезан и заменен на набор операторов . Конечный вид программы будет приведен в главе Объектное программирование объектов. Program redactor uses crt,printer подключение модулей label l1,l2,l3,l4 метки Var a,f,f1,a2string раздел описаний b,kchar c,u,y,a1,b1text d,e,i,j,p,zinteger c1boolean Procedure oform процедура оформления начала программы Begin набор операторов End Begin oform оформление начала программы набор операторов WritelnНовый файлNew,Открыть файлOpen,РедактированиеRedact, вывод альтернативных функций WritelnПросмотр результатовSearch,ВыходAny key breadkey выбор нужной функции case b of оператор варианта По нажатию соответствующей клавиши происходит выбор функции. n,вBegin l1 набор операторов выполнение функции End o,йBegin l2 набор операторов выполнение функции End r,Begin l3 набор операторов выполнение функции End s,ыBegin l4 набор операторов выполнение функции End End набор опреаторов WritelnНовый файлNew,Открыть файлOpen,РедактироватьRedact запрос о выборе перед выходом WritelnПросмотр результатовSearch,ВыходAny key breadkey выбор варианта набор операторов case b of оператор варианта n,тGoTo l1 ссылка на метку o,щGoTo l2 r,кGoTo l3 s,ыGoTo l4 End Набор операторов безусловного перехода для возвращения к той или иной функции. набор операторов End. На экран выводится список возможных функций программы. Для выбора определенной функции необходимо нажать соответствующую клавишу указана в скобках заглавной буквой.

Затем оператор варианта запускает нужную функцию.

Как видно, учтен случай непереключенного алфавита буквы вводятся как латинские, так и русские.

Перед выходом вновь выводится данный запрос так как цикл неуместен и в случае выбора определенной функции происходит ссылка на функцию. Интерфейс структурной программы Доработка программы. После отладки начальной программы потребовалось ввести дополнительные функции.Помимо стандартной функции создания и открытия готового теста, появились такие как редактирование тестов, подсчет результатов и выставление оценки, таймер, составление отчета, защита тестов от просмотра.

Но самое главное- это усовершенствование интерфейса, введение оконной диалоговой системы. Рассмотрим перечисленные функции.Функция подсчета результата записана так zp100 div z расчет количества правильных ответов Writelnколичество правильных ответов ,p Writeоценка выставление оценки If z 90 Then Begin Writeln5 Writelnb1, 5 End else If z 70 Then Begin Writeln4 Writelnb1, 4 End else If z 40 Then Begin Writeln3 Writelnb1, 3 End else Begin Writeln2 Writelnb1, 2 End Readln WriteФамилия вписывание фамилии Readlna dlengtha выставление пробелов Writeb1,a запись в файл For i1 to 14-d do Writeb1, WriteИмя вписывание имени, процедура повторяется Readlna Writeb1,a dlengtha For i1 to 11-d do Writeb1, WriteОтчесчтво вписывание отчества, процедура повторяется Readlna Writeb1,a dlengtha For i1 to 17-d do Writeb1, Writeb1,f dlengthf For i1 to 8 do Writeb1, GetDateg1,g2,g3,g4 проставление даты Writelnb1,g3 g2 g1 closeb1 Window15,10,50,19 TextBackGroundblack clrscr Программа рассчитывает количество правильных ответов по формуле, в соответствии с этим выставляет оценку, спрашивает ваши ФИО, записывает их в файл, проставляет название теста и дату его прохождения.

При этом используется метод работы со строками конкатенацияслияние строк. Проблемой стало корректное вписывание в файл строки, так как количество букв может быть разным, поэтому программа проставляет пробелы в файл между данными, используя данные о длине строк фамилии, имени, отчества и вычитая их из постоянного числа Таймер, системное время.

Таймер был разработан для отсчета времени на тест, время вводится предварительно составителем теста.

Кроме того, параллельно с выводом времени на тест выводится текущее системное время. Действие таймера основано на переменной-счетчике, которая через определенные промежутки времени уменьшает свое значение на 1секунду.Системное время выводится благодаря процедуре GetTime. Repeat цикл счетчика времени Window60,20,70,21 окно вывода времени TextBackGroundblack clrscr z2z2-1 обратный отсчет секунд If z2 0 Then Begin обнуление счетчика z1z1-1 z260 End If z10andz20 Then GoTo l1 проверка исхода времени GetTimeg1,g2,g3,g4 вывод таймера и текущего времени Writelnz1 z2 вывод времени на экран Writeg1 g2, ,g3 Delay1000 until keypressed Объявляется переменная, из которой каждую секунду вычитается 1. Так осуществляется обратный отсчет.

С исходом времени программа автоматически переходит к выставлению оценки.

Оконная система диалога. Поскольку прошлая моя работа была посвящена диалоговым системам, я учел тот опыт, но в этой программе сделал нововведение, приблизившее программу к современному оконному виду. Над оформлением окна пришлось посидеть не один час, так как обычное окно в виде квадрата на экране совсем не привлекательно.Я изучил строение окон в среде MS-DOS и попытался воссоздать дизайн окна в своей программе.

Если вы когда-либо видели схему окна в MS-DOS, то заметили, что окно обрамляется двойной рамкой, наверху которой находится название окна. Здесь мне помогло хитрое решение. Я заглянул в таблицу символов ASCII и нашел символ двойной рамки Далее все просто открывается окно, закрашивается, по краям с помощью циклов рисуется рамка и выводится название окна. Но это еще не все. Внутри окна открывается другое окно того же цвета, чтобы было незаметно.Теперь при вводе или выводе данных рамка не будет двигаться вместе с текстом, разрываться и т. д. Мы получаем полноценное окно. Я сделал оформление окна в виде процедуры, необходимо лишь ввести координаты окна и его название.

Ниже приведен код оформления окна Procedure windowsx,y,x1,y1integer bstring Var a,tinteger Begin Window x1,y1,x11,y11 рисование тени от окна TextBackGroundblack clrscr Windowx,y,x1,y1 рисование окна TextBackGroundblue clrscr TextColordarkgray цвет текста Write Writechr201 рисование уголка For a1 to 4 do Writechr205 рисование полосы Write TextColorgreen цвет текста Writeb вывод названия окна Write TextColordarkgray цвет текста For a1 to x1-x-9-lengthb do Writechr205 рисование линии Writelnchr187 рисование уголка For a1 to y1-y-1 do Begin рисование линий по бокам Write Writechr186 For t1 to x1-x-3 do Write Writelnchr186 End Write Writechr200 рисование уголка For a1 to x1-x-3 do Writechr205 рисование линии Writechr188 рисование уголка Windowx2,y1,x1-2,y1-1 открытие окна ввода внутри окна TextColorblack End Здесь все довольно просто окно открывается оператором Window с указанием координат.

По завершении текущего сеанса окно закрывается закрашивается той же командой.

В данной программе окна закрываются и открываются много раз, запрашивая каждое свои данные, что выглядит намного проще, чем множество строк на экране, не так ли Вот как это выглядит в программе Window10,22,69,22 указывается окно с координатами TextBackGroundgreen задается цвет фона clrscr окно закрашивается Введение процедур.

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

Она создает файл теста и файл ответов, последовательно записывает вопросы и ответы и затем закрывает файл. Procedure NewF Var h1string объявление локальных переменных Begin Window10,10,53,15 TextBackGroundblack clrscr Window20,10,66,15 начальное окно TextBackGroundblue clrscr TextColorblack Writeсохранить файл как Readlna ввод пути создаваемого файла без расширения aa.ts дописывание расширения h1a Assignc,a связь переменной с файлом вопросов aao изменение расширения Assignu,a связь переменной с файлом ответов Rewritec Rewriteu Window20,10,66,15 закрытие окна TextBackGroundblack clrscr Window30,5,50,10 открытие окна характеристик TextBackGroundyellow clrscr GoToXY30,6 Writeкол-во вопросов Readlnd ввод количества вопросов Writelnc, ,d GoToXY30,8 Writelnназвание теста ввод названия теста Readlnf Writelnc,f Writelnпароль на защиту Readlnf ввод пароля Writelnu,f Window30,5,50,10 TextBackGroundblack clrscr For i1 to d do Begin Writelnc Window10,10,53,20 окно вопроса TextBackGroundlightgray clrscr Writelni й вопрос Readlna ввод вопроса Stri,f ff запись вопроса в файл Writelnc,f Writelnc,a Window55,10,80,15 окно количества ответов TextBackGroundcyan clrscr Writeколичество ответов на ,i й вопрос Readlne ввод количества ответов Window10,10,53,20 окно ответов TextBackGroundlightgray clrscr For j1 to e do Begin Write ,j, Readlna ввод ответов Strj,f a fa Writec,a End Writec, запись в файл конца ввода Window55,10,80,15 TextBackGroundcyan окно правильного ответа clrscr WriteПравильный ответ Readlnb ввод правильного ответа Writelnu,b End closeu закрытие файлов и окон Resetu Readlnu closec Window55,10,80,15 TextBackGroundblack clrscr End В этой, как и в других функциях, работающих с файлами, я столкнулся с проблемой записи тестов в файлах.

Во-первых, я решил разделить сам тест и ответы к нему. Тест находится в файле с расширением qs, а ответы к нему- в файле с расширением qso. Второй проблемой стала остановка чтения вопроса, ведь вопросы должны выводиться не подряд, а по очереди.

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

Можно было использовать счетчик строк, который останавливает программу после прочтения двух строк вопрос и варианты ответов, но в случае сбоя тест приходит в негодность.

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

Опытные программисты заметят зачем было использовать текстовые файлы, ведь можно было применить работу с типом запись и сохранять данные в нетипизированных файлах, и шифровщик бы не потребовался. Действительно, но использование типа запись не позволяет создавать тесты с динамическим числом ответов на вопрос. Это возможно лишь путем использования в записи динамического массива.Но это сделает работу с файлом очень сложной а сам файл будет занимать много места на диске по сравнению с обычным текстовым.

Естественно, что при поиске файла программа может его не найти, в этом случае выдается ошибка поиска. Требовалось ее обойти, выдавая собственное сообщение программы.Это осуществляется следующим образом задается директива компиллятора на его отключение I проверяется нулевой результат IORESULT0, выдается сообщение и компиллятор включается снова I. Я использовал эту функцию компиллятора там, где необходимо осуществить поиск файла. Такая функция обхода компилятора называется обработкой сообщений и является составляющей объектного програмимирования.

Функция открытия теста выглядит сложнее. Она открывает указанный файл, считывает сначала пароль входа и запрашивает его, затем приступает к выполнению теста. На экран выводится вопрос и ожидается ввод цифры правильного ответа.Причем включается таймер и по завершении работы с тестом или по истечении времени программа выходит из данной функции и передает управление подпрограмме подсчета результатов и регистрации Procedure OpenF label l1 Var f1string объявление локальных переменных Begin p0 Window10,10,53,15 TextBackGroundblack TextColorblack clrscr Window20,10,66,15 начальное окно TextBackGroundblue clrscr Writelnкакой файл открыть Readlna ввод пути к файлу без расширения aa.ts прибавление расширения Assignc,a связь переменной с файлом вопросов f1a aao изменение расширения Assignu,a связь переменниой с файлом ответов deletea,lengtha,1 Assignb1,cpascalregistr.dat связь переменной с файлом отчета Appendb1 открытие файла отчета для дозаписи Resetc открытие файла вопросов для чтения Window20,10,66,15 закрытие начального окна TextBackGroundblack clrscr Resetu Readc,b считывание пароля Readlnc,b zordb-ord0 установка времени z1z Window10,10,40,12 окно пароля TextBackGroundmagenta clrscr Readlnu,a If lengtha 2 Then Beginпроверка наличия в файле пароля Writeвведите пароль Readlnf ввод пароля If a f Then Begin Writeпароль неверный GoTo l1 выход из процедуры End End else Begin closeu Resetu End Readlnc,f Writelnтест по теме ,f, вывод темы теста z260 repeat Window60,20,70,21 закрытие окна пароля TextBackGroundblack clrscr TextColoryellow z2z2-1 включение таймера If z2 0 Then Begin z1z1-1 z260 End If z10andz20 Then GoTo l1 Writelnz1 z2 GetTimeg1,g2,g3,g4 вывод текущего времени Writeg1 g2, ,g3 Delay1000 TextColorblack Window10,10,53,15 вывод вопроса, ожидание ввода ответа TextBackGroundcyan clrscr while not Eolncorb do Begin Readc,b If b Then Writeb End Writeln Window55,10,80,15 вывод сообщения о вводе ответа TextBackGroundblue clrscr Writeваш ответ TextColoryellow repeatтаймер Window60,20,70,21 TextBackGroundblack clrscr z2z2-1 If z2 0 Then Begin z1z1-1 z260 End If z10andz20 Then GoTo l1 GetTimeg1,g2,g3,g4 Writelnz1 z2 Writeg1 g2, ,g3 Delay1000 until keypressed Window55,10,80,15 TextBackGroundblue clrscr TextColoryellow breadkey считывание цифры ответа Writeb считывание правильного ответа из файла Readlnu,k Readlnc If kb Then pp1 сравнение ответов, начисление баллов Window60,20,70,21 TextBackGroundblack закрытие окна отверов clrscr TextColorblack z2z2-1 таймер If z2 0 Then Begin z1z1-1 z260 End If z10andz20 Then GoTo l1 GoToXY70,15 GetTimeg1,g2,g3,g4 вывод текущего времени Writelnz1 z2 Writeg1 g2, ,g3 Delay1000 until Eofc l1f1f1o closec закрытие всех файлов closeu Window55,10,80,15 закрытие окон TextBackGroundblack clrscr Window10,10,53,15 TextBackGroundblack clrscr Window15,10,50,19 TextBackGroundblue clrscr подсчет результата End Единственной проблемой здесь явилось неправильное чтение программой исходных данных.

Естественно, разрабатывая сложные системы, с первого раза компилляция не удается никогда, но после корректировки программы она стала работать как надо. Не забывайте закрывать файлы после использования и перезагружать их после прочтения до конца по необходимости, иначе возникнет ошибка Disk Read Error Эта ошибка может стоить вам всего файла.

Очень часто после сбоя при чтении файла этот файл заново прочитать вам не удастся.

Функция редактирования теста.

Является вспомогательной функцией.

Она редактирует вопросы указанного теста.

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

Весь процесс сопровождается работой с файлами, которые сначала создаются, открываются, затем копируются, корректируются.

Старые варианты файлов удаляются, а новые записываются под их именем Procedure RedactF Begin Window10,10,53,15 TextBackGroundblack TextColorblack clrscr Window20,10,66,15 открытие начального окна TextBackGroundblue clrscr WritelnКакой файл редактировать Readlna ввод пути к редактируемому файлу a2a Window20,10,66,15 закрытие начального окна TextBackGroundblack clrscr Assignc,a связь переменной с файлом вопросов aao изменение расширения Assignu,a связь переменной с файлом ответов deletea,lengtha,1 aa1 изменение расширения Assigny,a создание нового файла вопросов deletea,lengtha,1 aa2 изменение расширения Assigna1,a создание нового файла ответов Resetc установка и загрузка файлов Resetu Rewritey Rewritea1 Window5,5,50,20 окно просмотра файла TextBackGroundlightgray clrscr WritelnВывод вопросов через Enter repeat while not Eolncorb do Begin просмотр вопросов через Enter Readc,b If b Then Writeb End Readlnc Readln until EOFc closec перезапуск файла вопросов Resetc Window5,5,50,20 закрытие окна просмотра файла TextBackGroundblack clrscr Window30,5,58,10 окно номера редактируемого вопроса TextBackGroundyellow clrscr Readc,b считывание количества вопросов Readlnc,b dordb-ord0 Write редактируемого вопроса repeat Readlnz ввод вопроса If z d Then Writelnномер превышает число вопросов проверка существования номера until z d Window30,5,58,10 закрытие окна номера редактируемого вопроса TextBackGroundblack clrscr Window10,10,53,20 окно вопросов TextBackGroundlightgray clrscr closec перезапуск файла вопросов Resetc p0 repeat while not EOLNc do Begin копирование значений в другой файл Readc,b Writey,b End Readlnc Writelny pp1 until pz3 установка количества копируемых строк p0 while not pz-1 do Begin стирание ненужного вопроса pp1 Readlnu,b Writelna1,b End while not EOLNc do Begin можно было применить и цикл с параметром от 0 до 2 Readc,b Writeb End Readlnc Writeln while not EOLNc do Begin вывод редактируемого вопроса на экран Readc,b Writeb End Readlnc Writeln while not EOLNc do Begin Readc,b Writeb End Readlnc Writeln WritelnЗаменить на Writelnz, ввод нового вопроса Writelny,z, Readlnf Writelny,f Window55,10,80,15 окно ответов TextBackGroundcyan clrscr Writeколичество ответов на ,z й вопрос Readlne ввод количества ответов Window10,10,53,20 окно вопросов TextBackGroundlightgray clrscr For j1 to e do Begin ввод ответов на вопрос Write ,j, Readlna Strj,f a fa Writey,a End Writelny, Window55,10,80,15 окно ответов TextBackGroundcyan clrscr WriteПравильный ответ Readlnb ввод правильного ответа Window55,10,80,15 закрытие окна ответов TextBackGroundblack clrscr Writelna1,b repeat while not EOLNc do Begin дозапись значений Readc,b Writey,b End Readlnc Writelny until EOFc Readlnu while not EOFu do Begin дозапись значений в копируемый файл Readlnu,b Writelna1,b End Window10,10,53,20 закрытие окна вопросов TextBackGroundblack clrscr closec закрытие файлов Erasec стирание старого файла вопросов closeu Eraseu стирание старого файла ответов closey Renamey,a2 переименование файла вопросов a2a2o closea1 Renamea1,a2 переименование файла ответов End Для корректной работы процедуры требовалось реализовать чтение требуемого вопроса, здесь и пригодилось построчное чтение, о котором рассказывалось в предыдущей главе.

Кроме того, требовалось скопировать данные из одного файла, исключая требуемый вопрос с последующим добавлением нового вопроса.

Я реализовал это в циклах, что вы можете видеть в программном коде. Функция просмотра результатов.

Организует просмотр результатов тестирования. Просит ввести вашу фамилию.

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

При желании файл также может быть распечатан.

Procedure SearchF Begin Assignb1,cpascalregistr.dat связь переменной с файлом отчета Resetb1 открытие файла для чтения Window10,10,53,15 закрытие всех окон TextBackGroundblack TextColorblack clrscr Window5,10,70,13 окно поиска TextBackGroundgreen clrscr WriteВаша Фамилия Readlna ввод фамилии while not EOFb1 do Begin поиск фамилии Readlnb1,f считывание строки For i1 to lengtha do f1f1fi выделение фамилии If af1 Then Begin проверка совпадения Writelnf вывод на экран c1true подтверждение запроса End f1 обнуление строки End If c1false Then WriteЗапрос не найден.

Пройдите тест. в случае отсутствия фамилии в списке Readln closeb1 закрытие файла Window5,10,70,13 закрытие окна TextBackGroundBlack clrscr End Задачи выделение фамилии из строки путем поиска пробела, поиск соответствия фамилий и вывод результатов поиска на экран.

Проблемы никаких Функция печати данных.

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

Программа просит указать путь к файлу, а затем распечатывает его. Я нашел другой алгоритм работы с принтером, более быстрый, но он требует знаний языка Assembler, встроенного в Turbo Pascal Procedure PrintF Begin TextColorblack Window10,10,53,15 начальное окно TextBackGroundcyan clrscr WritelnКакой файл распечатать вывод запроса Window60,24,70,24 TextBackGroundblack clrscr repeat вывод времени hg3 GoToXY50,22 GetTimeg1,g2,g3,g4 TextColoryellow Writeg1 g2, ,g3 Delay1000 clrscr until keypressed Window10,10,53,15 открытие окна ввода TextBackGroundcyan clrscr Readlna ввод пути к файлу Assignb1,a связь переменной с файлом Resetb1 открытие файла для чтения Writelnубедитесь что ваш принтер настроен для работы в MS-DOS предупреждение repeat цикл работы с файлом Window60,24,70,24 закрытие окна TextBackGroundblack clrscr hg3 GoToXY50,22 GetTimeg1,g2,g3,g4 вывод времени TextColoryellow Writeg1 g2, ,g3 clrscr Readlnb1,f считывание символа WritelnLst,f распечатывание символа until EOFb1 Window10,10,53,15 закрытие окон TextBackGroundblack clrscr End Проблемы отсутствие команды для окончания работы принтера, малая скорость печати.

Решение- в языке ассемблер.

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

Серьезными недостатками технологии сверху-вниз являются недостаточное внимание к проектированию структур данных и слабая их связь с процедурами обработки.

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

Примечание данные из учебника по Delphi 5 Понять основы объектного программирования вам поможет учебник по 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 panelobject объявление объекта xinteger поле объекта Procedure leftbchar описание процедуры сдвига влево окна выбора Procedure rightbchar описание процедуры сдвига вправо окна выбора Procedure choose описание процедуры выбора функции End Var a,f,f1,a2string описание всех программных переменных b,kchar c,u,y,a1,b1text d,e,i,j,p,z,z1,z2integer c1boolean gpanel g1,g2,g3,g4,hword Procedure panel.left процедура сдвига влево окна выбора Begin Windowx,22,x9,22 закрашивание следующего окна TextBackGroundgreen clrscr Закрашивание следующего окна- важная функция. Она закрашивает то синее окно, которое было выбрано перед обращением к процедуре.

Window10,22,69,22 основное окно панели управления TextBackGroundgreen clrscr TextColorbrown установка цвета текста WriteНовый Открыть Править Результат Печать Выход нанесение надписи на панель управления If x 20 Then xx-10 проверка соответствия окна выбора границам панели управления Этот оператор производит сравнение координат окна выбора с координатами начала панели управления.

Если окно выбора выехало за границы панели управления, то изменений координат не производится, окно выбора остается на своем месте.

Windowx,22,x9,22 рисование окна выбора TextBackGroundblue clrscr case x of выбор надписи на окне выбора Данное ветвление распознает по координате окна выбора какое слово следует в него вписать. 10Begin TextColorgreen WriteНовый End 20Begin TextColorgreen WriteОткрыть End 30Begin TextColorgreen WriteПравить End 40Begin TextColorgreen WriteРезультат End 50Begin TextColorgreen WriteПечать End 60Begin TextColorgreen WriteВыход End End End Procedure panel.right процедура сдвига окна выбора вправо Begin Windowx,22,x9,22 закрашивание предыдущего окна TextBackGroundgreen clrscr Window10,22,69,22 рисование окна панели управления TextBackGroundgreen clrscr TextColorbrown изменение цвета текста WriteНовый Открыть Править Результат Печать Выход нанесение текста на панель управления Вы, конечно, заметили, что операторы предыдущей и этой процедуры повторяются, поэтому их можно вынести в отдельную процедуру и запускать ее для обновления окна панели управления.

If x 50 Then xx10 сравнение координат окна выбора с координатами конца окна панели управления Windowx,22,x9,22 рисование окна выбора TextBackGroundblue clrscr case x of нанесение соответствующего текста на окно выбора 10Begin TextColorgreen WriteНовый End 20Begin TextColorgreen WriteОткрыть End 30Begin TextColorgreen WriteПравить End 40Begin TextColorgreen WriteРезультат End 50Begin TextColorgreen WriteПечать End 60Begin TextColorgreen WriteВыход End End End Procedure pannel процедура рисования панели управления Begin Window10,22,69,22 TextBackGroundgreen clrscr TextColorbrown WriteНовый Открыть Править Результат Печать Выход End Procedure NewF функции тестового редактора Procedure OpenF Procedure RedactF Procedure SearchF Procedure PrintF Procedure panel.choose процедура выбора функции Begin case x of по координате окна выбора определяет нужную функцию 10NewF 20OpenF 30RedactF 40SearchF 50PrintF 60be End End Вывод Как видно, основную функцию управления взял на себя объект. Благодаря этому действие программы значительно упростилось, программа стала быстрее работать.

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

В завершении работы с программой я приступил к оформлению работы.

Создание титульной страницы не составило большого труда.

Если вы ознакомитесь с программным кодом, то убедитесь, что все команды- из модуля crt. Они используют элементы работы с цветом фона и текста.Procedure oform Begin TextBackGroundgreen установка цвета фона clrscr TextColorred цвет текста GoToXY20,10 перевод курсора в нужную позицию WriteРедактор Тестов вывод текста TextColordarkgray цвет текста GoToXY20,12 Writelnавтор Цыбин Антон вывод текста GoToXY20,14 Writelnсоставлено 09.05.2000 вывод текста TextColorwhite цвет текста GoToXY20,16 Writelnнажмите клавишу вывод текста Readln TextBackGroundblack clrscr End Begin Программа рисует титульный лист разноцветными буквами.

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

По завершении работы программа закрывает все окна и сворачивает работу программы. g.x10 oform оформление TextColorgreen GoToXY30,1 WritelnТЕСТОВЫЙ РЕДАКТОР. V 1.01. вывод информации GoToXY23,2 Writelnсоставитель Цыбин Антон 09.05.2000 pannel repeat Window60,24,70,24 TextBackGroundblack clrscr repeat время hg3 GoToXY50,22 GetTimeg1,g2,g3,g4 TextColoryellow Writeg1 g2, ,g3 Delay1000 clrscr until keypressed breadkey считывание клавиши По нажатию клавиши программа определяет дальнейшие действия передача управления объекту case b of 1g.leftb 3g.rightb 0Begin Window10,10,53,15 TextBackGroundblue clrscr g.choose End End until be Window10,10,53,20 закрытие всех окон TextBackGroundblack clrscr Window10,10,80,15 TextBackGroundblack clrscr Window30,10,35,12 TextBackGroundred clrscr TextColorblue 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, аннотированные ссылки в Интернет.

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

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

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

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

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

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

Создание фигур и изменение их геометрии в приложении MS Visio. Создание и разработка планировок в приложении MS Visio. Графический редактор Adobe Photoshop. Изучение панели инструментов редактора. Создание и обработка графических изображений.
Лабораторная работа Создание фигур и изменение их геометрии в приложении... ЦЕЛЬ РАБОТЫ приобретение навыков создания фигур средствами MS Visio...

История создания пластиковых карт. Мировой и Российский опыт
Пластиковая карта-это обобщающий термин, который обозначает все виды карточек, различающихся по назначению, по набору оказываемых с их помощью… Сама идея использования карт как платежного средства была выдвинута в книге… Недолговечность этого материала привела к тому, что десятилетие спустя начали появляться первые металлические, а затем…

Лекция 12 создание блок схем, диаграмм и графиков в Графическом редакторе VISIO
создание блок схем диаграмм и графиков в Графическом редакторе VISIO... Создание блок схем Навигация в многостраничных блок схемах Графические... СОЗДАНИЕ БЛОК СХЕМ...

Создание текстового редактора
С е помощьюможно создавать, удалять, переименовывать, открывать, копировать файлы друг вдруга.Конечно, вс это можно проделать и в MS-DOS, но… В этой программе, конечномного недоработок, но я надеюсь, что вскоре появятся… И, наконец, ей могутвоспользоваться студенты I курса для сдачи е как Курсовой работы на следующемкурсе.

Вводные замечания. Личностный опросник создан главным образом для прикладных исследований с учетом опыта построения и применения таких широко известных опросников, как 16PF, MMPI, ЕРIи др. Шкалы опросни- ка сформированы на основе результатов факторного ан
формы B опросника FPI... Вводные замечания Личностный опросник создан главным образом для прикладных... Цель занятия Формирование навыков работы с многофакторным личностным опросником которые необходимы практическому...

Сравнительный анализ Маастрихтского договора о создании ЕС и договора о создании СНГ
Следует заметить, что не все страны к 90-м годам имели одинаковые возможности, отдельные государства характеризовались наличием оппозиционно… Итак, начнем рассмотрение данной темы прежде всего с истории принятия… В первую очередь обратим внимание на реформу Европейских Сообществ - ЕОУС, ЕЭС и Евроатома, где прежний отрыв…

Текстовый процессор Word. Работа с таблицами и диаграммами. Использование и создание графических объектов. Создание новых форм для ввода данных
Практическое занятие Текстовый процессор Word Работа с таблицами и диаграммами Использование и создание графических объектов Создание новых... Таблицы всегда были неотъемлемым атрибутом печатной научно технической документации Они используются для более...

Солонцов Максим Александрович: Интернет страница и редакторы для её создания
Солонцов Максим Александрович Интернет страница и редакторы для е создания Веб технология...

Создание ажиотажного спроса
Вследствие огромного успеха «Титаника» в прокате Blockbuster увидел потенциальную возможность создать новую видеолегенду и побить предыдущие рекорды… Исследование также показало, что покупатели более охотно приобретают… Blockbuster определил 34 самых больших рынка в Соединенных Штатах для продажи и связи со СМИ в этих…

Роль социальной рекламы в современном обществе. Анализ российского опыта.
Как правило, рекламодателями социальной рекламы являются госструктуры. Они же и финансируют социальные проекты.Во многих странах такая реклама -… Там наиболее распространенной формой является существование при правительстве… Дело в том, что крупные коммерческие компании очень заинтересованы в поддержании своего имиджа как не просто компании…

0.033
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам
  • Мотивация персонала. Зарубежный опыт К сожалению, в Украине, обладающей значительным в мире кадровым и интеллектуальным потенциалом, компании недостаточно используют инструменты,… Но порой молодую поросль современных менеджеров это не устраивает: он должен… Потому трудно обобщить эту практику во всеукраинском разрезе. Нужен разумный баланс Неудивительно, что слабая…
  • Опыт лечения отслоек сетчатки протекающих на фоне периферического увеита Но в некоторых случаях даже введение тяжелого силикона в витреальную полость не позволяет добиться полного прилегания сетчатки, и тем более –… Материалы и методы За период 1997–2002 гг. в Офтальмологической больнице… Из них у 3–х пациентов экссудативная отслойка распространялась и на макулярную область.
  • Сексуальное воспитание школьников: опыт США В середине 80-х гг. три четверти всех родителей поддерживали идею проведения занятий по этим программам в старших классах средней школы и свыше… Например, в момент, когда американцы впервые осознали серьезность угрозы,… По признанию самих американцев, программы сексуального воспитания молодежи в Великобритании, Франции, Канаде,…
  • Зарубежный опыт государственного регулирования инновационной деятельности В мировой практике используются следующие виды налоговых льгот, стимулирующих инновационную деятельность: предоставление исследовательского и… Последние четыре структуры имеют смешанное финансирование, остальные – из… Источники финансирования: около 50 % - частные фирмы и организации, 46 % - федеральное правительство (на основе…
  • Главные принципы создания успешного рекламного дизайна Как ни очевидно это звучит, вы не сможете реализовать произведенные товары до тех пор, пока не привлечете внимание потребителей. Другими словами,… Правильно подобранное изображение мгновенно передает идею и настроение… Исследования позволяют сделать вывод о том, какой из применявшихся приемов в определенной ситуации оказался весьма…