
- •Введение
- •1. Общая схема решения задачи на персональном компьютере
- •2. Свойства алгоритмов. Основные алгоритмические структуры
- •Линейные алгоритмы
- •Развилка
- •3. Консольные приложения в Delphi. Введение в язык Object Pascal. Общая структура программы. Идентификаторы, комментарии, пробелы. Раздел описаний и раздел операторов
- •4. Арифметические типы данных. Числовые константы и переменные. Оператор присваивания. Выражения
- •5. Ввод-вывод данных в Паскале
- •6. Арифметические операции. Стандартные математические функции
- •7. Пример выполнения задания
- •8. Символьный тип данных
- •9. Логический тип данных. Операции сравнения. Логические операции. Битовые операции
- •10. Условный оператор. Блок. Оператор выбора
- •11. Операторы цикла
- •12. Метки. Оператор goto. Процедура Halt
- •13. Интервальные типы данных. Оператор type. Массивы
- •14. Защита от ошибок и отладка программ. Стандартная техника отладки
- •15. Процедуры и функции. Сфера действия описаний
- •16. Множества
- •Include ( множество , выражение );
- •18. Погрешности при вычислениях
- •19. Файлы. Работа с текстовыми файлами
- •Задания для лабораторных работ Лабораторная работа №1. Вычисление простейших арифметических выражений
- •Лабораторная работа №2. Разветвления
- •Лабораторная работа №3. Простейшие циклы
- •Лабораторная работа №4. Итерационные циклы. Вычисление суммы ряда
- •Лабораторная работа №5. Целые числа
- •Лабораторная работа №6. Вычисления с хранением последовательностей
- •Лабораторная работа №7. Двумерные массивы.
- •Лабораторная работа №8. Обработка последовательностей символов
- •Лабораторная работа №9. Использование подпрограмм
Введение
Учебное пособие написано на основе курса лекций, читаемых студентам 1-2 курсов математического факультета. Может быть полезно начинающим программистам, желающим самостоятельно изучить основы программирования на языке Object Pascal или слушающим соответствующий лекционный курс. Предполагается, что читатель хотя бы в минимальной степени знаком с операционными системами DOS и Windows и понимает, например, что такое имя файла, каталог, папка, диск, путь и т.п. Информация о средах программирования Turbo Pascal и Borland Pascal, ориентированных на работу с DOS, а также о среде программирования Delphi, предназначенной для разработки приложений, работающих под управлением операционной системы Windows, в пособии не приводится. Отмечены лишь некоторые важные моменты. Учебное пособие содержит примеры, записанные как фрагмент программы или законченная программа. Все примеры оттестированы. Однако авторы хотели бы предостеречь от некритического использования этих программ читателем - большинство из них лишь иллюстрирует возможности языка и не претендует на оптимальность. В пособие включена подборка вариантов задач по основным темам.
1. Общая схема решения задачи на персональном компьютере
В общем виде процесс решения задачи на ПК можно представить в виде последовательности следующих действий:
1) анализ задачи;
2) разработка алгоритма решения задачи;
3) разработка пользовательского интерфейса;
4) написание кода;
5) отладка программы;
6) тестирование программы;
7) составление документации.
Все эти этапы (иногда в неявной форме) обязательно выполняются любым программистом при решении любой задачи. Рассмотрим их подробнее.
На этапе анализа задачи необходимо четко определить постановку задачи, убедиться, что вы ясно ее понимаете; определиться с набором входных и выходных данных.
Под алгоритмом понимают понятное и точное предписание исполнителю выполнить последовательность действий, направленных на достижение поставленной цели. Обязательной составной частью алгоритма является определение зависимости между входной и выходной информацией. При решении некоторых наиболее тривиальных задач может показаться, что этап разработки алгоритма отсутствует, однако это означает лишь, что вы пользуетесь уже известным вам алгоритмом. Для разработки алгоритмов существует два наиболее популярных инструмента – это блок-схема и псевдокод. Блок-схема представляет собой диаграмму, на которой изображена последовательность выполняемых компьютером определенных действий. Различные геометрические фигуры представляют на блок-схеме различные типы процессов. Псевдокод – это текст программы, содержащий как операторы языка программирования, так и фразы на удобном для пользователя языке (английском, русском и т.д.). Ниже при помощи блок-схем будут рассмотрены основные алгоритмические структуры.
Этап разработки пользовательского интерфейса предполагает проработку такого вопроса, как определение вами той информации, которую пользователь будет видеть на экране. То есть, как и в каком формате пользователь будет вводить данные, какие дополнительные к основным результирующим данным он может получить в итоге и т.д.
На этапе написания кода вы записываете алгоритм на языке программирования. Один и тот же алгоритм можно запрограммировать множеством различных способов, но вы должны стремиться написать оптимальную программу. Хорошо написанная программа, как правило, содержит меньше ошибок и гораздо быстрее отлаживается.
Этап отладки включает в себя трансляцию программы и проверку ее на простейших тестах. Трансляция программы - это процесс перевода ее с языка программирования на машинный язык, его осуществляет специальная программа - транслятор. В зависимости от порядка перевода и выполнения команд все трансляторы делят на два типа: компиляторы и интерпретаторы. Компилятор - это транслятор, преобразующий исходный код языка в машинный код и создающий таким образом выполнимый файл. Интерпретатор, в свою очередь, преобразует исходный код в машинный шаг за шагом, т.е. каждая команда преобразуется интерпретатором и сразу выполняется, затем интерпретатор преобразует следующую команду. Язык Pascal является компилируемым. При трансляции вы постепенно исправляете допущенные при написании программы синтаксические ошибки, следите за сообщениями транслятора - он указывает, какая обнаружена ошибка и где именно. После того, как вы исправите все синтаксические ошибки, и транслятор сообщит об успешном завершении трансляции, будет создан файл с именем, таким же, как у вашего исходного файла, и с расширением exe (от ЕХЕcutive - выполняемый); этот файл содержит программу (в отличие от исходного файла, содержащего лишь текст программы), которая может быть выполнена. Необходимо отчетливо понимать, что задачей транслятора ни в коем случае не является поиск ошибок в ваших программах, он сообщает о них лишь в том случае, когда не может правильно интерпретировать ваш текст. Успешно осуществив трансляцию, запустите свою программу. Не следует думать, что эта программа не содержит ошибок! Все логические ошибки, допущенные вами, остались в программе, и на этапе отладки вы должны найти их и исправить. Не существует никаких общих рецептов для отладки - класс программиста главным образом, как раз и проявляется в том, как он отлаживает программы. Но один полезный совет можно дать: аккуратно и подробно выводите при отладке все вычисляемые вашей программой величины.
После того, как вы решите, что ваша программа работает правильно (обычно это не соответствует действительности), начинайте тестирование - выполняйте программу с различными наборами входных данных, причем они обязательно должны содержать все особые случаи. Когда вы убедитесь, что ваша программа иногда работает правильно, а иногда - нет, возвращайтесь к алгоритму, пересматривайте его и заново повторяйте все этапы. Успешно завершив тестирование, вы можете надеяться, что ваша программа верна.
Следует четко разграничивать два понятия - верная программа и хорошая программа. Всякая хорошая программа верна, но далеко не всякая верная программа хороша - она может использовать неэффективный (или неэффективно запрограммированный) алгоритм, занимать много лишней памяти, быть неряшливо оформленной и т.д. Старайтесь писать не только верные, но и хорошие программы!
Под составлением документации понимается разработка всех материалов, описывающих назначение и принципы работы программы. Документация может быть внутренней и внешней. Внутренняя документация состоит из комментариев, включенных в код программы. С их помощью человек, не знакомый с программой, может понять, как она работает. Внешняя документация содержит техническое задание, блок-схемы, псевдокоды, базовые допущения и описание входных и выходных данных. Для коммерческих программ внешней документацией часто служит руководство пользователя. Главное назначение документации — позволить человеку, не являющемуся разработчиком программы, использовать ее и при необходимости модифицировать ее код.
Схематично полный цикл разработки программы можно представить следующим образом:
Рис.1. Полный цикл разработки программы.