Файл: программирование на паскале2.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.04.2025

Просмотров: 1365

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Министерство образования и науки российской федерации

Начальный курс программирования на основе алгоритмического языка Паскаль

Введение

Часть. Основы программирования на Паскале

1.1. Структура простейшей Паскаль-программы

1.2. Данные и операции над ними

1.2.1. Свойства ячейки памяти. Переменные и константы

1.2.2. Типы данных

1.2.3. Правила записи констант

1.2.4. Описание переменных и именованных констант в Паскале

1.2.5. Выражения

1.3. Операторы преобразования данных

1.3.1. Оператор присваивания

1.3.2. Понятие ввода и вывода

1.3.3. Оператор вывода

1.3.4. Оператор ввода

1.4. Разработка простейших программ

1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ

1.4.2. Алгоритм и способы его записи.

1.4.3. Изображение алгоритмов в виде блок-схем

1.4.4. Базовые структуры алгоритмов и их кодирование на Паскале

1. Следование

2. Ветвление (развилка)

If условие then

If условие then

3. Цикл

1.4.5. Примеры разработки программ

1.5. Массивы

1.5.1. Понятие массива. Основные правила работы с массивами в Паскале

1.5.2. Примеры программ с массивами

1.614. Структура паскаль-программы

Часть.Подпрограммы

2.1. Общие сведения о подпрограммах

2.2. Процедуры в Паскале

2.2.1.Описание процедур

2.2.2. Обращение к процедуре

2.3. Функции Паскаля

2.3.1. Описание функций

2.3.2. Обращение к функции

2.4. Глобальные и локальные имена

2.5. Использование подпрограммы в качестве параметра другой подпрограммы

2.6. Модули

2.6.1. Общие сведения

2.6.2. Структура модуля

2.6.3. Использование модулей

2.6.4. Модули как средство программирования

Часть. Обработка символьной информации и документов сложной структуры

3.1. Обработка символьной информации

3.1.1. Символьный тип

3.1.2.Строковые типы

3.1.3. Подпрограммы, работающие со строками

Функции

Процедуры

3.2. Тип запись

3.3. Файлы

3.3.1. Общие понятия

3.3.2. Файлы в Турбо Паскале

3.3.3. Текстовые файлы

Пример 1

Пример 2

3.3.4. Типизированные файлы

3.3.5. Нетипизированные файлы

Часть IV. Работа с динамическими массивами

Приложение 1. Краткая инструкция по работе в среде Turbo (Borland) Pascal.

Режимы компиляции программы, использующей модули

Приложение 2. Краткая инструкция по работе в режиме консольного приложения средыDelphi. Создание консольного приложения

Сохранение консольного приложения.

Отладка программы

Контрольные вопросы

Заключение

Библиографические ссылки

Содержание

Часть IV. Работа с динамическими массивами 98

Последовательность значений на входном (или выходном) устройстве часто называют потоком.

В Паскале для ввода и вывода используются встроенные в язык стандартные подпрограммы, и операторы ввода и вывода являются обращениями к этим подпрограммам.

В этом разделе пособия мы рассмотрим только операторы ввода с клавиатуры и вывода на экран монитора. Работа с внешней памятью (файлами на магнитных дисках) будет рассмотрена в третьей части пособия.

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. Использование точно обозначенных управляющих структур алгоритмов, имеющих один вход и один выход. Такие структуры называются базовыми(см. п.1.4.4).

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

  3. Независимость подалгоритмов друг от друга на каждом этапе нисходящего проектирования. Следствием этого требования является ограниченное использование глобальных переменных подпрограммами.

  4. Использование системы обозначений, соответствующих содержанию задачи и облегчающих понимание программы.

Грамотное проектирование качественных программ состоит из следующих этапов:

  1. Анализ задачи и разработка внешней спецификации программы. Во внешнюю спецификацию входит описание входных и выходных данных программы, форм ввода и вывода (см. п.1.3), а также описание методов решения задачи, способов апробации программы, сведения о разработчике программы.

  2. Проектирование структур данных и алгоритма.

  3. Написание (кодирование) программы на алгоритмическом языке.

  4. Отладка программы.


Под отладкойподразумевается выявление и исправление ошибок. Ошибки могут обнаруживатьсяавтоматическисистемой программирования и операционной системой при компиляции, редактировании связей, загрузке и выполнении программы. Могут существоватьошибки в логике программы, которые автоматически не обнаруживаются. Такие ошибки можно выявить дополнительным визуальным анализом программы или с помощьютестов, т. е. наборов значений исходных данных, по которым известен результат. Испытание программы с помощью тестов называетсятестированием.

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

Лучшим способом уменьшения числа ошибок является тщательное выполнение этапов 1 и 2.

Грамотный и аккуратный программист каждый из рассмотренных этапов документирует.