Языки программирования

10866
знаков
0
таблиц
0
изображений
Предисловие.

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

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

Разрабатывая программу шаг за шагом, я выделил основные функции, присутствующие в любом редакторе и, конечно, в моем, а именно:

создание нового файла теста

открытие теста и тестирование

редактирование теста

просмотр результатов

печать файла

выход из программы.

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

Начнем исследование со статьи о конструировании программ.

Конструирование программ.

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

В соответствии с технологией конструирования программ построена программа тестового редактора. Я разделил ее на этапы:

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

Разбиение сплошного текста программы на процедуры. Таким образом, текст стал занимать не так много места, исчез оператор варианта, многие метки, ссылки и т. п. Надо сказать, многие программисты предпочитают вводить процедуры в программу. Это значительно упрощает ее.

Введение оконной системы с помощью доступных возможностей языка (оператор Window). Это позволило значительно упростить работу, создать диалог пользователя с программой, уменьшить количество информации, поступающей к пользователю и количество ее «потоков».

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

Структурное программирование.

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

Турбо Паскаль способствует внедрению современной технологии программирования, основанной на принципах структурного программирования и пошаговом методе проектирования программ. Основные операторы языка являются хорошей иллюстрацией базовых управляющих конструкций структурного программирования. Их использование позволяет записывать сложные алгоритмы обработки данных в компактной форме.[3]

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

Бейсик- язык программирования ПЭВМ.

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

В некоторых версиях Бейсика имеется встроенный редактор программ, позволяющий работать с текстом программы из командного окна. Работа с программой осуществляется в трех различных режимах:

Непосредственное общение

Ввод программ

Вычисление по введенной в ОЗУ программе

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

Структурная программа.

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

Ниже приведена схема структурной программы тестового редактора, объясняющая соответствующий подход к программированию. Основной список операторов вырезан и заменен на . Конечный вид программы будет приведен в главе “Объектное программирование” объектов.

Program redactor;

uses crt,printer; {подключение модулей}

label l1,l2,l3,l4; {метки}

Var a,f,f1,a2:string; {раздел описаний}

b,k:char;

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

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

c1:boolean;

Procedure oform; {процедура оформления начала программы}

Begin

End;

Begin

oform; {оформление начала программы}

Writeln('Новый файл(New),Открыть файл(Open),Редактирование(Redact),'); {вывод

альтернативных функций}

Writeln('Просмотр результатов(Search),Выход(Any key)');

b:=readkey; {выбор нужной функции}

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)');

b:=readkey; {выбор варианта}

case b of {оператор варианта}

'n','т':GoTo l1; {ссылка на метку}

'o','щ':GoTo l2;

'r','к':GoTo l3;

's','ы':GoTo l4;

End;

Набор операторов безусловного перехода для возвращения к той или иной функции.

End.

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

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

Доработка программы.

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

Рассмотрим перечисленные функции. Функция подсчета результата записана так:

z:=p*100 div z; {расчет количества правильных ответов}

Writeln('количество правильных ответов: ',p);

Write('оценка '); {выставление оценки}

If z>=90 Then Begin

Writeln('5')

Writeln(b1,’5’);

End;

else If z>=70 Then Begin

Writeln('4')

Writeln(b1,’4’);

End;

else If z>=40 Then Begin

Writeln('3')

 Writeln(b1,’3’);

End;

else Begin

Writeln('2')

Writeln(b1,’2’);

End;

Readln;

Write('Фамилия: '); {вписывание фамилии}

Readln(a);

d:=length(a); {выставление пробелов}

Write(b1,a); {запись в файл}

For i:=1 to 14-d do Write(b1,' ');

Write('Имя: '); {вписывание имени, процедура повторяется}

Readln(a);

Write(b1,a);

d:=length(a);

For i:=1 to 11-d do Write(b1,' ');

Write('Отчесчтво: '); {вписывание отчества, процедура повторяется }

Readln(a);

Write(b1,a);

d:=length(a);

For i:=1 to 17-d do Write(b1,' ');

Write(b1,f);

d:=length(f);

For i:=1 to 8 do Write(b1,' ');

GetDate(g1,g2,g3,g4); {проставление даты}

Writeln(b1,g3,'.',g2,'.',g1);

close(b1);

Window(15,10,50,19);

TextBackGround(black);

clrscr;

Программа рассчитывает количество правильных ответов по формуле, в соответствии с этим выставляет оценку, спрашивает ваши ФИО, записывает их в файл, проставляет название теста и дату его прохождения. При этом используется метод работы со строками: конкатенация(слияние) строк. Проблемой стало корректное вписывание в файл строки, так как количество букв может быть разным, поэтому программа проставляет пробелы в файл между данными, используя данные о длине строк фамилии, имени, отчества и вычитая их из постоянного числа

Таймер, системное время.

Таймер был разработан для отсчета времени на тест, время вводится предварительно составителем теста. Кроме того, параллельно с выводом времени на тест выводится текущее системное время. Действие таймера основано на переменной-счетчике, которая через определенные промежутки времени уменьшает свое значение на 1(секунду). Системное время выводится благодаря процедуре GetTime.

Repeat {цикл счетчика времени}

Window(60,20,70,21); {окно вывода времени}

TextBackGround(black);

clrscr;

z2:=z2-1; {обратный отсчет секунд}

If z22 Then Begin{проверка наличия в файле пароля}

Write('введите пароль ');

Readln(f); {ввод пароля}

If af Then Begin

Write('пароль неверный');

GoTo l1; {выход из процедуры}

End;

End

else Begin

close(u);

Reset(u);

End;

Readln(c,f);

Writeln('тест по теме "',f,'"'); {вывод темы теста}

z2:=60;

repeat

Window(60,20,70,21); {закрытие окна пароля}

TextBackGround(black);

clrscr;

TextColor(yellow);

z2:=z2-1; {включение таймера}


Информация о работе «Языки программирования»
Раздел: Информатика, программирование
Количество знаков с пробелами: 10866
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
48658
0
0

... времени на возню с файлами на дисках или ожидание ввода, не смогут продемонстрировать какое-то впечатляющее увеличение скорости. 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 2.1. Машинно – ориентированные языки  Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и ...

Скачать
41510
0
0

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

Скачать
23064
0
0

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

Скачать
44688
14
5

... . И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB; пользоваться этими трюками гораздо сложнее, чем, например, на Delphi. 4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI   4.1 Задача 1. Примитивный калькулятор   1. Войдите в среду Delphi, дважды щелкнув мышью на пиктограмму Delphi или через меню “ ...

0 комментариев


Наверх