Добавлен: 06.04.2023
Просмотров: 258
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ
1.1 Описание языка Object Pascal
1.2 Работа со строками в Object Pascal
1.3 Работа с файлами в Object Pascal
ГЛАВА 2. РАЗРАБОТКА ПРОГРАММЫ ПОДСЧЕТА СЛОВ В ТЕКСТОВОМ ФАЙЛЕ
2.1 Описание постановки задачи
2.2 Разработка алгоритма реализации задачи
2.3 Разработка исходного кода программы
Глава 3. СИСТЕМА АВТОМАТИЧЕСКОГО ТЕСТИРОВАНИЯ ПРОГРАММ, НАПИСАННЫХ НА ЯЗЫКЕ ПАСКАЛЬ
значения, но в ряде задач выбор типа цикла принципиален.
8. Типичной ошибкой начинающих является отсутствие else-части в нескольких подряд идущих условных
операторах. Такая ошибка иногда пропускается при ручной проверке и не проявляется на простых тестах.
9. Конечно же, главными являются алгоритмические ошибки, не позволяющие решить задачу в общем
случае или приводящие к крайне неэффективным алгоритмам. Для их определения необходимо использовать большие наборы данных.
Примеры ошибочных программ и их коррекция
1. Рассмотрим задачу нахождения количества значащих цифр целого неотрицательного числа. Можно
предложить следующую программу на Паскале для ее решения:
var n, k:integer;
begin readln(n); k:=0;
while n>0 do begin k:=k+1; n:=n div 10 end;
writeln(k);
end.
Эта программа выдает верный ответ для всех исходных данных, к
70 Издательство ГРАМОТА www.gramota.net
if r=0 then k:=k+1 else
begin if k>m then m:=k; k:=0;end;
end;
writeln (m)
end.
дает верный результат для всех исходных данных, кроме тех, в которых наиболее длинная последовательность нулей находится в конце. Для исправления этой ошибки достаточно перед оператором writeln(m) вставить оператор if k>m then m:=k.
Из вышесказанного можно сделать вывод, что тестирование программ является сложной задачей; набор тестов для каждой программы должен подбираться индивидуально, с учетом ее специфики и анализа возможных ошибок при ее составлении. Система тестирования программ, описываемая в данной статье, служит для автоматизации этого процесса.
После запуска системы на выполнение пользователю предлагается выбрать задачу для тестирования из списка. В качестве задач взяты упражнения из книги. Этот задачник используется студентами Факультета вычислительной математики и кибернетики Московского государственного университета при изучении языка Паскаль. После выбора задачи предлагается выбрать файл с программой студента. Затем производятся анализ и тестирование выбранной программы.
Вначале производится предварительный анализ программы, что позволяет выявить ряд ошибок в алгоритме до начала тестирования. В частности, из программы удаляются все комментарии. Далее для некоторых задач из предъявляются определенные требования к алгоритмам их решения. Например, в задачах на составление циклов и на обработку символов запрещается использование массивов.
Для некоторых задач количество исходных данных (членов последовательности или элементов массива) должно быть задано в виде целочисленной константы. В некоторых задачах запрещено использование стандартных функций, вложенных циклов и т.п. Подобные условия проверяются системой на этапе предварительного анализа, и, если указанное требование к алгоритму нарушено, выдается соответствующее сообщение, и дальнейший анализ и тестирование программы не производятся. Кроме того, на этом этапе отсеиваются заведомо непригодные алгоритмы, которые, тем не менее, дают правильный результат для всех тестов.
В качестве примера можно привести следующую программу для решения задачи нахождения количества
значащих цифр неотрицательного целого числа:
var n, k:integer;
begin read(n);
if n<10 then writeln (1)
else if n<100 then writeln (2)
else if n<1000 then writeln (3)
else if n<10000 then writeln (4)
else writeln (5)
end.
Эта программа дает верный результат для всех чисел типа integer (его неотрицательный диапазон – [0…32767]), но тем не менее, не может рассматриваться как правильная. Для каждой задачи на составление циклов системой проверяется наличие в программе хотя бы одного цикла while, repeat или for, и, в случае их отсутствия, фиксируется ошибка.
Если на этапе предварительного анализа ошибок не выявлено, тестируемая программа компилируется для последующего исполнения. Используется FPC-компилятор системы Free-Pascal. В случае отсутствия синтаксических ошибок в программе производится ее тестирование. Программа последовательно запускается на выполнение для различных встроенных в систему наборов исходных данных, консольный ввод-вывод при этом перенаправляется на ввод-вывод из специальных файлов, результаты работы программы сравниваются с эталонами. По окончании тестирования выдается сообщение о результате каждого теста и количестве ошибок при тестировании.
К настоящему времени реализовано тестирование для случаев, когда результирующие данные могут быть следующих типов: boolean, integer, real, char и string. Если результат имеет тип boolean, то в качестве ответа программа может вывести любое из слов, содержащих буквы ‘T’, ‘Y’, ‘Д’, ‘t’, ‘y’ или ‘д’, для значения ‘true’ и любое из слов, содержащих буквы ‘F’, ‘N’, ‘Н’, ‘f’, ‘n’ или ‘н’, для значения ‘false’. Если тип результата real, то проверяется не точное совпадение результата с эталонным, a близость его на заданную малую константу? Что касается результатов типа integer, char или string, то проверяется полное совпадение данных, выдаваемых программой, с эталонами.
К настоящему времени созданы и встроены в систему тесты к 100 задачам из по темам «Оператор цикла», «Символьный тип», «Перечислимые и ограниченные типы. Оператор варианта» и «Регулярные типы: векторы». Система написана в среде программирования Delphi на языке Object-Pascal и может выполняться в операционной среде Windows.
Программный пакет занимает объем около 10 Mб на диске без FPC-компилятора. Общий объем системы Free-Pascal, включающий компилятор, – около 140 Мб.
В заключение следует отметить аналогичную систему Ejudge, которая используется уже в течение нескольких лет и также предназначена для автоматического тестирования программ. Система Ejudge требует доступа в Интернет, в отличие от описанной в статье системы, которая может быть запущена на локальном компьютере. Это более удобно, так как студенты часто выполняют задания на своих персональных ноутбуках, не всегда имеющих выход в Интернет. Система Ejudge является более универсальной, поддерживает разные языки программирования и используется, в основном, при проведении олимпиад по программированию и при обучении студентов второго курса. Она рассчитана на хорошо подготовленных школьников и студентов. Описанная же выше система автоматического тестирования настроена на обучение студентов первого курса.
В данный момент продолжается расширение набора тестов за счет включения в систему задач из разных разделов книги. Планируется встроить в систему анализатор ошибок, обнаруженных при тестировании, и выдачу соответствующих рекомендаций по их исправлению.
Заключение
В курсовой работе были рассмотрены основные вопросы, касающиеся основ структурного программирования в среде Turbo Pascal. Turbo Pascal является одним из наиболее востребованных языков программирования которые используются при обучения студентов основам алгоритмизации и программирования. Он был создан Николаусом Виртом для обучения студентов в 70-х годах прошлого века, но до сих пор пользуется популярностью у начинающих программистов благодаря своей простоте и возможности создавать от простых программ до сложных многострочных кодов.
В курсовой работе были освещены вопросы, связанные с основами программирования на языке Pascal. В теоретической части курсовой работы рассмотрены структура программы на языке Pascal, типы данных, основные операторы языка, такие как операторы ввода и вывода, условный оператор, оператор безусловного перехода, цикл с предусловием, цикл с постусловием и цикл с параметром. Также рассмотрены основы работы с символьными и строковыми переменами, одномерным и двумерными массивами.
В современной реалии программирование вошло в жизнь людей по всему миру, как неотъемлемая часть. Как только компьютеры стали
общедоступными, появилась большая потребность в различного рода программных продуктах.
В связи с внедрением новых технологий, происходит резкое повышение квалификационных требований к специалистам. Сейчас на рынке труда нужны специалисты – «техники», работающие на высокотехнологичном оборудовании, «линейные инженеры», обслуживающие основные технологические процессы и «инновационные инженеры», разрабатывающие и внедряющие новые технологи и программное обеспечение.
Изучая программирование, обучающиеся лучше понимают саму сущность компьютера, принципы его работы и широкий спектр его возможностей. Человек понимающий как строится программа будет понимать принципы работы любого прикладного программного обеспечения, и в случае необходимости будет знать как исправить ошибки.
В процессе написания данной курсовой работы были рассмотрены основные понятия и определения программирования.
Также была проведена систематизация знаний о подходах и принципах создании новых языков программирования.
В заключении следует отметить, что рассмотренная тема, позволяет просмотреть путь становления технологий и языков программирования
и является интересной с точки зрения специалиста в области информационных технологий.
В заключении следует отметить, что язык программирования Pascal обладает всеми возможностями для создания игровых программ.
Созданные, в рамках курсовой работы, программы могут быть использованы для обучения студентов основам структурного программирования на языке Pascal.
Список использованной литературы и источников
- Баранов А.Н., Крейдлин Е.Г. Информационная безопасность // ВЯ, № 2. 2015. с.84-99.
- Григорьев Ю.А., Ревунков Г.И. Банки данных: Учеб. для вузов. М: Изд-во МГТУ им. Н.Э. Баумана, 2017.
- Дейт, К. Руководство по реляционной СУБД [Текст] / К. Дейт. 2016. – М. – 519 с. –ISBN – 5-3216-3254-4.
- Инструментарий ARIS. Методы. Версия 4.1 М.: Весть-Мета Технология, 2015.
- Куправа, Т.А. Создание и программирование баз данных средствами СУБД dBase III Plus, FoxBASE Plus, Clipper [Текст] / Т.А. Куправа. – М. : Мир, 2015. – 468 с. – ISBN 6-0934-22981-3.
- Мартин, Г. SQL: Справочное руководство [Текст] / Г. Мартин. – М. : Лори, 2014. – 316 с. – ISBN 7-0932-023411-9.
- Монахов, В. Язык программирования Pascal [Текст] / В. Моняхов. – СПб. : БХВ-Петербург, 2017. - 640 с. - ISBN 978-5-9775-0216-0.
- Моргун, А. Н. Справочник по Turbo Pascal для студентов [Текст] / А. Н. Моргун. – М. : Вильямс, 2015. – 608 с. ISBN 5-8459-1028-5.
- Орлов С.А. Технологии разработки программного обеспечения: Учебник для вузов. ‑3-е издание. СПб.: Питер, 20164.
- Сафронов, И. Visual Basic в задачах и примерах [Текст] / И. Сафронов. – СПб. : БХВ-Петербург, 2015. - 400 с. - ISBN 5-94157-495-9.
- Фаронов, В. В. Turbo Pascal. Наиболее полное руководство [Текст] / В. В. Фарофонтов. – СПб. : Питер, 2017. – 763 с. - ISBN 5-89251-054-9.
- Фрост Р., Дей Дж., Ван К., Базы данных. Проектирование и разработка. М.: NT Пресс, 2016.
- Хорстманн, К. С., Корнелл, Г. Java 2. Библиотека профессионала [Текст] / К. С. Хорстман, Г. Корнелл. – М. : Вильямс, 2015. - 898 с. - ISBN 978-5-8459-0970-1.
- Шафрин Ю.А. Информационные технологии в 2ч. Ч.1: Основы информатики и информационных технологий / Шафрин Ю.А. – М.: БИНОМ. Лаборатория знаний, 2016. – 316 с.
- Шилдт, Г. Полный справочник по С++ [Текст] / Г. Шилдт. - М. : Вильямс, 2014. – 800 с. - ISBN 5-8459-0563-X.
Приложение А
Исходная программа
Текстовый редактор
Библиотеки