ОРДЕНА ЛЕНИНА
ИНСТИТУТ ПРИКЛАДНОЙ МАТЕМАТИКИ имени М.В.КЕЛДЫША
РОССИЙСКОЙ АКАДЕМИИ НАУК

Березин А.В.

Основы программирования на языке "Pascal"
в примерах и задачах.

Москва 1997

Аннотация

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

Введение

"Нельзя объять необъятное."
К. Прутков. "Избранное"

Данная книга является не учебником по программированию на языке "Turbo-Pascal", и не претендует на полноту изложения. Это скорее небольшое справочное пособие, в котором на примере стандартных учебных задач показываются основные (с точки зрения автора) операторы языка и возможности их использования. Замысел такой работы появился во время работы в Компьютерной Школе при ИПМ им. М.В.Келдыша.

Работа адресуется в основном трем категориям читателей: - младшим школьникам, начинающим изучать Pascal как первый язык программирования (3-6 класс); - достаточно опытным школьникам-программистам, желающим освоить в короткие сроки азы нового языка; - преподавателям информатики как побудительный мотив к постановке более нетрадиционных задач, чем решенные в этой книге.

Автор надеется, что для первых двух категорий читателей книга на некоторое время станет необходимейшим пособием, которое будут держать на своем рабочем столе и будет счастлив, когда все, написанное в этой книге войдет в Ваш активный багаж и Вы выбросите ее.

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

Основная часть состоит из 12-ти программ, каждая из которых решает какую-либо учебную задачу и одновременно показывает новые возможности языка программирования. Все программы снабжены огромным количеством комментариев. Каждая новая возможность языка очень подробно описана. Если в дальнейшем встречается аналогичная конструкция, то она комментируется более сжато. Для большей наглядности все операторы языка Pascal выделены жирным шрифтом. Все программы - работоспособны и опробованы автором. В программах я старался соблюдать все "правила хорошего тона", принятые между программистами (простейшие из них приведены в конце работы). К сожалению, в некоторых второстепенных местах пришлось пожертвовать эффективностью работы программы ради наглядности изложения.

Программы 1-5 и 9-11 можно рекомендовать всем, начинающим изучать программирование, включая младших школьников. Остальные (6-8, 12) требуют несколько большего знания математики.

В конце приведены тестовые задачи и требования к оформлению программ, предъявлявшиеся в ходе работы ряда проектов Компьютерной Школы 1994-1997 годов.

В заключение хочу выразить глубокую благодарность Келлину Николаю Сергеевичу, за внимание к моей работе и ценные советы. Особая благодарность - Солнцеву Сергею Андреевичу, (в момент написания этой брошюры - ученику 11-го класса), который был автором ряда тестовых задач, приведенных в конце книги.


Краткая справка о работе в среде Turbo Pascal'я

Вход в среду Turbo-Pascal'я - запустить на выполнение файл "turbo.exe" (как правило, для этого достаточно нажать "Enter" на файле с расширением ".pas")

Вход в меню - F10.

Выход из меню - Esc.

Выйти из среды - Alt+X или F10,File,Exit. При этом Вас спросят о том, надо ли сохранять содержимое каждого окна, если оно изменялось и не было сохранено. (Y или "Enter" - да, сохранить; N - нет, не сохранять)

Помощь

Помощь (Help) - F1;

Помощь по конкретному оператору - поместить курсор на слово и Ctrl+F1.

Вернуться назад из Help'а - Esc.

Вернуться к предыдущей теме Help'а - Alt+F1.

Редактирование

Вставить новую строку - Enter.

Стереть строку - Ctrl+Y.

Отказаться от последнего редактирования (Undo) - Alt+Backspase.

Вернуть то, от чего отказались - F10, Edit, Redo.

Работа с окнами

Переход в другое окно - Alt+<номер окна> (Alt+1;Alt+2;...)

Список окон - Alt+0 .

Загрузить файл с диска - F3 или F10,File,Open .

Сохранить текущее окно в файле - F2 или F10,File,Save .

Отказаться от текущего окна - Alt+F3. При этом Вас спросят о том, надо ли сохранять содержимое окна, если оно изменялось и не было сохранено. (Y или "Enter" - да, сохранить; N - нет, не сохранять)

Расширить текущее окно (включая Help) на весь экран - F5.

Работа с блоками текста

Отметить блок - Shift+<стрелки>.

Скопировать ранее отмеченный блок - перевести курсор к новому месту и - Ctrl+K C.

Переместить ранее отмеченный блок - перевести курсор к новому месту и Ctrl+K V.

Снять отметку с блока - Ctrl+K H.

Стереть ранее отмеченный блок - Ctrl+K Y.

Для копирования блока в другое окно:

Отметить блок - Shift+<стрелки>.

Скопировать блок в буфер - Ctrl+Ins.

Перейти в другое окно - Alt+<номер окна>.

Вставить блок из буфера - Shift+Ins.

Трансляция и выполнение

Оттранслировать программу (не выполняя) - Alt+F9. При этом, если в программе есть ошибки, будет обнаружена только первая из них.

Оттранслировать программу и сразу запустить ее на выполнение - Ctrl+F9.

Посмотреть, что выдала программа на экран - Alt+F5.

Прервать выполнение программы - Ctrl+Break.

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

Выполнять программу до строки, где стоит курсор - F4.

Выполнить одну строку программы, заходя во все подпрограммы - F7.

Выполнить одну строку программы, не заходя в подпрограммы - F8.

Посмотреть, чему равна переменная - перевести курсор на переменную и Ctrl+F4.

Перевызвать программу - Ctrl+F2.


Тема 1. Структура программы на Pascal'е. Операторы ввода - вывода. Описание переменных.

Задача 1. Написать программу, запрашивающую имя, фамилию и возраст человека и выводящую их на экран в красивом виде.

Тема 2. Арифметические операции. Использование внешних модулей.

Задача 2. Написать программу, вводящую с экрана длины двух сторон прямоугольника, и выводящую на экран его периметр и площадь.

Тема 3. Условный оператор. Последовательность операторов. Операции с целыми числами.

Задача 3. Написать программу, определяющую - является ли введенное число положительным, и если да, то четное оно или нечетное.

Тема 4. Оператор цикла "for". Вещественные числа. Извлечение квадратного корня.

Задача 4. Написать программу, находящую все делители введенного числа.

Тема 5. Оператор цикла "while". Чтение из текстового файла. Определение длины строки.

Задача 5. Написать программу, определяющую количество строк в текстовом файле и длину самой длинной строки.

Тема 6. Массивы. Константы. Запись в текстовый файл.

Задача 6. Написать программу, сортирующую числа, хранящиеся в файле, по убыванию (самое маленькое идет самым первым) и записывающую полученную упорядоченную последовательность в другой файл.

Тема 7. Подпрограммы и функции.

Задача 7. Написать программу, вводящую с экрана координаты трех точек на плоскости и определяющую по ним тип треугольника.

Тема 8. Метки. Модуль числа.

Задача 8. Написать программу, находящую с заданной точностью корень функции.

Тема 9. Графический режим. Рисование прямоугольников.

Задача 9. Написать программу, рисующую на экране российский государственный флаг.

Тема 10. Рисование линий. Закрашивание областей. Выдача текста в графическом режиме.

Задача 10. Написать программу, рисующую на экране российский военно-морской флаг.

Тема 11. Рисование круга. "Передвижение" объектов.

Задача 11. Написать программу, моделирующую движение мячика.

Тема 12. Рисование точки. Построение графиков.

Задача 12. Написать программу, рисующую на экране график функции.

Тестовые задачи

Эти задачи были предложены на проекте "Шифровка" в 1995 году. Задание ко всем задачам одинаковое - не используя компьютер, определить, каким будет результат выполнения программы. Решение некоторых из этих задач потребует более углубленного знания Pascal'я, чем вышеизложенный материал.

Темы задач:

1 и 2 - диапазон представления целых чисел;

3 и 4 - операторы внутри цикла;

5, 7, 8 - изменение переменной цикла внутри цикла;

6 и 10 - возврат параметров из процедуры и из функции;

9 - отличие операторов цикла While и Repeat ... Until .


Админ – Иван Неретин