ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.04.2025
Просмотров: 1365
Скачиваний: 0
СОДЕРЖАНИЕ
Министерство образования и науки российской федерации
Начальный курс программирования на основе алгоритмического языка Паскаль
Часть. Основы программирования на Паскале
1.1. Структура простейшей Паскаль-программы
1.2. Данные и операции над ними
1.2.1. Свойства ячейки памяти. Переменные и константы
1.2.3. Правила записи констант
1.2.4. Описание переменных и именованных констант в Паскале
1.3. Операторы преобразования данных
1.4. Разработка простейших программ
1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ
1.4.2. Алгоритм и способы его записи.
1.4.3. Изображение алгоритмов в виде блок-схем
1.4.4. Базовые структуры алгоритмов и их кодирование на Паскале
1.4.5. Примеры разработки программ
1.5.1. Понятие массива. Основные правила работы с массивами в Паскале
1.5.2. Примеры программ с массивами
1.614. Структура паскаль-программы
2.1. Общие сведения о подпрограммах
2.4. Глобальные и локальные имена
2.5. Использование подпрограммы в качестве параметра другой подпрограммы
2.6.4. Модули как средство программирования
Часть. Обработка символьной информации и документов сложной структуры
3.1. Обработка символьной информации
3.1.3. Подпрограммы, работающие со строками
Часть IV. Работа с динамическими массивами
Приложение 1. Краткая инструкция по работе в среде Turbo (Borland) Pascal.
Режимы компиляции программы, использующей модули
Последовательность значений на входном (или выходном) устройстве часто называют потоком.
В Паскале для ввода и вывода используются встроенные в язык стандартные подпрограммы, и операторы ввода и вывода являются обращениями к этим подпрограммам.
В этом разделе пособия мы рассмотрим только операторы ввода с клавиатуры и вывода на экран монитора. Работа с внешней памятью (файлами на магнитных дисках) будет рассмотрена в третьей части пособия.
1.3.3. Оператор вывода
Оператор вывода имеет вид:
WRITE(V1,V2,...,VN)
и означает вывод на экран монитора значений выражений V1,V2,...,VN (без перехода к следующей строке по окончании вывода). Последовательность V1,V2,...,VN называется списком вывода. В частности, элементом списка вывода Vi,i=1,...,M, может являться переменная (простая или с индексом11) или константа.
Оператор WRITELN означает переход к новой строке (т.е. вывод символа конца строки).
Оператор WRITELN(V1,V2,...,VN) эквивалентен двум операторам
WRITE(V1,V2,...,VN); WRITELN
Вместо Vi (i=1,2,...,N) может стоять группа:
Vi:Li:Mi,
где Li - минимальная длина поля значения переменной (если длина поля избыточна, то поле слева заполняется пробелами; если недостаточна, то транслятор автоматически увеличивает длину); если Li не указано, то используется стандартное для данной среды программирования значение.
Mi - длина дробной части, указывается только для вещественных чисел; если параметр Мi указан, то вещественное число выводится в формате с фиксированной точкой, иначе - в экспоненциальном формате, причем используется стандартный для данной среды программирования вид экспоненциального формата.
Программисты, работавшие с Фортраном, будут разочарованы: в Паскале (как и в Си) массивы вводятся и выводятся только поэлементно.
Пример.
Var s:real; a,b:integer;
begin…
writeln(‘a=’,a, ‘ b=’,b);
writeln(‘ s=’, s:4:1);…
end.
На экран будет выведена информация в виде:
a=<a>b=<b>
s=<s>
Здесь конструкция <имя переменной> означает значение этой переменной. Заметим, что следующие значения будут выводиться с новой строки, так как для вывода sиспользовался операторwriteln. Такое схематичное изображение выводимой (или вводимой) информации называетсяформой вывода (ввода).
Если a=-2,b=93,s=3.22, то на экране получим:
a=-2b= 93
s= 3.2
Примеры оператора WRITELN также представлены на рис.1.
1.3.4. Оператор ввода
Оператор
READ(V1,V2,...,VN)
означает ввод значений переменныхV1,V2,..., VN. Переменные могут иметь индексы. Константы и выражения в списке ввода недопустимы, так как не подлежат изменению.
Встретив оператор ввода, компьютер приостанавливает выполнение программы до окончания задания значений исходных данных пользователем (в профессиональной терминологии программистов - организуется прерывание для ввода). Вводимые значения могут разделяться пробелами (одним или несколькими) или переводом строки (нажатием клавиши Enter); допустимы в качестве разделителей значений исходных данных и некоторые другие символы. Обратите внимание, чтопосле последнего введенного значения надо обязательно нажать Enter.До нажатия клавиши Enter вводимые значения накапливаются в буфере ввода, нажатие этой клавиши служит командой для передачи этих значений в память.
Приведенный выше оператор эквивалентен последовательности операторов:
READ(V1);READ(V2);...;READ(VN)
Оператор READLN предусматривает пропуск вводимых символов до нажатия клавиши Enter, т. е. до ввода символа конца строки (END OF LINE).
Оператор READLN(V1,V2,...,VN) эквивалентен двум операторам
READ(V1,V2,...,VN); READLN
или последовательности операторов
READ(V1);READ(V2);...;READ(VN);READLN
Оператор ввода с клавиатуры всегда предваряется выводом фразы, приглашающей к вводу. Иначе пользователь может только догадываться, по какой причине программа находится в состоянии ожидания; такая ситуация является необъяснимым остановом и может интерпретироваться как “зависание” компьютера.
Пример.
Var i:integer; a:real;
begin
writeln(‘Введитеiиa’); { вывод приглашения к вводу }
readln(i,a);...{оператор ввода}
Форма ввода:
Введите iиa
В фигурные скобки принято заключать альтернативные фрагменты формы ввода или вывода. В данном примере значения iиaможно располагать на одной строке экрана, разделяя их пробелами, а можно на разных строках, разделяя их нажатием клавишиEnter.
1.4. Разработка простейших программ
1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ
Качество современного программного обеспечения характеризуется, прежде всего, такими критериями, как удобство использования, надежность, ясность структуры и текста программы. Технические характеристики программы: - объем занимаемой памяти, быстродействие - отошли на второй план.
Удобство использования программы, т. е. удобство общения с ней, определяется организацией ввода и вывода. Схема общения с программой часто называетсяинтерфейсом(внешними связями) программы. В современных языках программирования существуют специальные средства для эффективного программирования интерфейса, удовлетворяющего некоторым стандартам, например, стандартам операционной системыWindows. В настоящем пособии эти средства не рассматриваются, а для организации простейшего диалога между пользователем и программой используются стандартные подпрограммы ввода и вывода (ReadиWrite).
Надежность программыозначает отсутствие при ее работе остановов, сообщение о причине которых не выводится, т. е. зацикливаний, зависаний и др.
На получение качественных программ направлены положения структурного программирования, которые в основном сводятся к следующим моментам:
Использование точно обозначенных управляющих структур алгоритмов, имеющих один вход и один выход. Такие структуры называются базовыми(см. п.1.4.4).
Разработка алгоритма методом нисходящего проектирования. Этот метод состоит в разбиении алгоритма на части (подалгоритмы) и установлении между ними связей. Каждый подалгоритм должен иметь один вход и один выход, связь между подалгоритмами устанавливается посредством базовых алгоритмических структур. Каждый подалгоритм в свою очередь разбивается на части, и процесс повторяется. Таким образом, получаемиерархическую последовательную разработку алгоритма от сложного к простому.
Независимость подалгоритмов друг от друга на каждом этапе нисходящего проектирования. Следствием этого требования является ограниченное использование глобальных переменных подпрограммами.
Использование системы обозначений, соответствующих содержанию задачи и облегчающих понимание программы.
Грамотное проектирование качественных программ состоит из следующих этапов:
Анализ задачи и разработка внешней спецификации программы. Во внешнюю спецификацию входит описание входных и выходных данных программы, форм ввода и вывода (см. п.1.3), а также описание методов решения задачи, способов апробации программы, сведения о разработчике программы.
Проектирование структур данных и алгоритма.
Написание (кодирование) программы на алгоритмическом языке.
Отладка программы.
Под отладкойподразумевается выявление и исправление ошибок. Ошибки могут обнаруживатьсяавтоматическисистемой программирования и операционной системой при компиляции, редактировании связей, загрузке и выполнении программы. Могут существоватьошибки в логике программы, которые автоматически не обнаруживаются. Такие ошибки можно выявить дополнительным визуальным анализом программы или с помощьютестов, т. е. наборов значений исходных данных, по которым известен результат. Испытание программы с помощью тестов называетсятестированием.
Проектирование тестов часто представляет собой самостоятельную задачу. На этапе 1 разрабатываются функциональные тесты, для получения которых используются идеи, отличные от используемых в алгоритме (но они реализуют ту жефункцию). При функциональном тестировании алгоритм рассматривается как черный ящик, его внутренняя структура не учитывается.Структурные тестыопираются на структуру программы; например, кроме прогона алгоритма на компьютере, осуществляется вычисление вручную. В идеале структурных тестов должно быть столько, сколько возможных путей выполнения алгоритма.
Лучшим способом уменьшения числа ошибок является тщательное выполнение этапов 1 и 2.
Грамотный и аккуратный программист каждый из рассмотренных этапов документирует.