Referat.me

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

Вид работы: дипломная работа

Рубрика: Информатика и программирование

Размер файла: 24.39 Kb

Скачать файл: referat.me-137611.zip

Краткое описание работы: Структурное программирование. Структурная программа. Оконная система диалога. Новые объектные концепции.

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

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

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

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

  • Статистический анализ текста

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

  • Распределенное программирование

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

  • Структурное программирование: предпосылки и назначение; основные критерии оценки качества программы для ЭВМ

    МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ АСТРАХАНСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ Структурное программирование: предпосылки и назначение структурного программирования, основные критерии оценки качества программы для ЭВМ. Реализация структурного программирования на языке «Е-практикума».

  • Моделирование времени. Обеспечение параллельности в работе устройств ВС в системе VHDL

    Московский Государственный Инженерно- Физический Институт (Технический Университет) Кафедра «Компьютерные системы и технологии» Реферат на тему:

  • Моделирование структурных схем в среде SIMULINK пакета MATLAB

    Практические навыки моделирования структурных схем в среде SIMULINK пакета MATLAB. Построение графиков функций в декартовой системе координат. Решение систем линейных и нелинейных уравнений. Работа с блоками Sum, Algebraic Constraint, Gain, Product.

  • Работа с диалоговыми окнами

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

  • Введение в программирование

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

  • Написание игры "Змейка" средствами языка Turbo Pascal

    Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.

  • Автоматизированные формы

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

  • Преимущества использования операционной среды z/OS UNIX при отладке программ для больших вычислительных машин

    В данном статье мы рассмотрим операционные системы семейства UNIX на платформе zSeries, имеющие встроенную поддержку сервисов UNIX и поддерживающие возможность компиляции программ из исходного кода.