РефератыИнформатика, программированиеЯзЯзыки программирования

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

Предисловие.

   Как известно, в настоящее время наиболее
распространенными алгоритмическими языками являются Паскаль и Си. Именно эти
языки используются практически на всех действующих вычислительных системах- от
супер-ЭВМ до персональных компьютеров. Что касается ПЭВМ, то лидером семейства
языков Паскаль для них, без сомнения, является Турбо Паскаль 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; {включение таймера}


        If
z2

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Языки программирования

Слов:1441
Символов:15604
Размер:30.48 Кб.