|
Pascal ABC
|
|
|
Алгоритмы, в которых команды выполняются
последовательно одна за другой, в порядке их записи, называются линейными.
|
Первая программа
План
•
загрузка АВС Паскаля;
•
краткое знакомство с
интегрированной средой;
•
первая программа —
нахождение произведения двух целых чисел;
•
компиляция программы;
•
сохранение программы;
•
запуск программы;
•
разбор программы;
•
эксперименты с программой;
• тест:
Первая программа
•
Задачи
для самостоятельного решения
• Материал для
чтения
1.
Из истории
2. Некоторые
команды редактора
3. Данные
4. Операторы
ввода и вывода
Загрузка АВС Паскаля
Загрузите АВС Паскаль с помощью ярлыка на рабочем столе или из
главного меню ПУСК.
Краткое знакомство с интегрированной средой
После
загрузки системы экран разделен на три части:
1.
служебную область;
2. окно
ввода алгоритма программы - рабочее окно;
3. окно
ввода данных и вывода результатов программы.
Рис. 1
Переход из
основного окна в главное меню и обратно осуществляется
посредством клавиши <F10>.
Первая программа
В рабочем окне редактора
интегрированной среды наберем текст первой программы.
Program
Myl_l ;
Var a,
b, rez : Integer;
Begin
WriteLn ('Введите два числа через пробел');
ReadLn (a, b);
rez :=a*b;
WriteLn ('Их произведение равно ', rez);
WriteLn ('Нажмите <Enter>');
ReadLn
End.
Подсказка: можно
выделить текст программы мышкой, нажать правую кнопку мыши и
выбрать Копировать.
Рис. 2
Затем в системе
Pascal ABC выбрать
команды Правка/Вставить.
Рис. 3
В результате вы получите
текст программы в рабочем окне.
Можешь
загрузить здесь!
Пример_1
Краткий разбор примера. Структура программы
Program |
Программа |
Myl_l |
Имя программы |
Var
|
Раздел описания переменных |
a, b, rez |
Имена переменных |
Integer |
Целый тип данных |
Begin |
Команда начала программы |
WriteLn |
Оператор вывода (писать) |
('Введите
два числа через пробел') |
Текст, заключенный в одинарные
кавычки ',
печатается без изменений на экране |
ReadLn (a,
b) |
Оператор ввода (читать данные) |
; |
Знак "точка с запятой" ставится в
конце каждого законченного действия или описания |
rez :=a*b |
Оператор вычисляющий произведение
a
и b и
присваивающий результат переменной
rez |
WriteLn ('Их
произведение равно ', rez); |
Будет напечатан текст в кавычках и
цифра - значение переменной
rez |
WriteLn
('Нажмите <Enter>');
ReadLn |
Будет напечатан текст, а оператор
ReadLn
без переменных будет ожидать нажатия клавиши
<Enter> |
End |
Команда завершения программы |
. |
Точка обязательно ставится в конце
программы |
Программа начинается с
заголовка, который имеет следующий вид:
Program <имя
программы>;
За заголовком идет раздел описаний, в котором
должны быть описаны все идентификаторы (константы, переменные,
типы, процедуры, функции, метки), которые используются в
программе. После раздела описаний идет раздел операторов,
который начинается со служебного слова Begin и заканчивается
служебным словом End. В этом разделе задаются действия над
объектами программы, введенными в разделе описаний. Операторы,
посредством которых эти действия производятся, разделяются
точкой с запятой. После последнего слова End ставится точка.
Имя нашей программы Му1_1 (заметим, что в имени
программы не должно быть пробелов, оно должно начинаться не с
цифры, состоять только из латинских букв, цифр и символа "_").
Из разделов описаний в нашей программе имеется лишь один —
раздел описания переменных. Он начинается со служебного слова
Var, после которого идет последовательность объявлений
переменных, разделенных точкой с запятой. В каждом объявлении
перечисляются через запятую имена переменных (идентификаторы)
одного типа, после каждого списка имен переменных ставится
двоеточие и указывается тип переменных списка. В нашем примере
описаны три переменные: все они (a, b и rez) имеют целый тип (integer),
то есть значениями переменных этого типа являются целые числа.
Понятие переменной —
центральное в любом языке программирования. Переменная
(величина, которая изменяется в процессе работы программы)
характеризуется именем, типом и значением. Использование в
выражениях неинициализированных переменных (т.е. переменных,
значения которым не были присвоены явно) часто является причиной
ошибок.
После раздела
описаний расположен раздел операторов, начинающийся со
служебного слова Begin, после которого записываются операторы
языка. Первый оператор в нашей программе — это WriteLn ('Введите
два числа через пробел') — записать (вывести) на экран текст,
заключенный между апострофами,
Ln
за словом Write означает, что после вывода
следует перевести курсор на следующую строку.
Следующий оператор — ReadLn
(а, b)
— читать данные с клавиатуры. В данном случае необходимо ввести
два целых числа через пробел. Переменной а присваивается
значение, равное первому введенному числу, а переменной b —
значение, равное второму введенному числу. Например, при вводе
чисел 12 и 45 а = 12, а b = 45. В конце этого
оператора Ln имеет тот же смысл.
После этих двух операторов
стоит оператор присваивания:
rez :=a*b; (:= — это знак оператора присваивания в языке
Паскаль).
Значение выражения из правой части оператора присваивания
заменяет текущее значение переменной из левой части. Тип
значения выражения должен совпадать с типом переменной.
При выполнении оператора
присваивания переменная rez получит значение, равное
произведению значения переменной a на значение переменной
b (см. рисунок). Так как в результате умножения двух
целых чисел получается целое число, то переменная rez имеет тип
Integer (значениями которого могут быть лишь целые числа).
Следующий оператор — это
снова оператор вывода WriteLn ('Их произведение равно',
rez), он выведет на экран текст,
заключенный между апострофами, а за ним — значение переменной
rez. Затем следующий оператор WriteLn выведет на экран
сообщение: "Нажмите <Enter>", — а оператор ReadLn будет ожидать
этого нажатия в окне выполнения. Раздел операторов завершается
служебным словом End, после которого ставится точка. Операторы
отделяются друг от друга точкой с запятой.
Компиляция программы
Компилятор
– специальная программа, с помощью которой исходный
текст программы переводится в исполняемый двоичный файл
программы.
Компиляция
– процесс получения исполняемого двоичного файла из
исходного текста программы, написанного на языке
программирования.
Компиляция в
Pascal-е происходит
автоматически.
Запуск программы
Для
того чтобы запустить программу, в главном меню выбираем
пункт Программа/Выполнить или нажимаем значок
. На экране в нижней
части окна появляется сообщение:
Введите Два целых числа через пробел
Курсор
находится в следующей строке. Вводим два целых числа через
пробел и нажимаем < Enter>, после этого появляется сообщение:
Их произведение равно …
нажмите <Enter>
Вместо точек будет
выведено значение переменной rez, то есть число, равное
произведению первого введенного числа на второе. Это сообщение
останется на экране до тех пор, пока не будет нажата клавиша <Enter>.
Сохранение программы
Для
того чтобы сохранить программу, необходимо:
•
выйти в главное меню и выбрать режим Файл;
• в вертикальном
меню выбрать пункт Сохранить как… ;
• в появившемся окне выбрать папку
Children, затем выбрать свою папку (например,
Ivanov), ввести имя файла
(например, prim1_1) и нажать клавишу <Сохранить>.
Примечания.
1. В именах файлов нельзя
употреблять следующие символы: *, =, +, [, ], \, |, :, ., <, >,
/, ?, символ пробела и буквы русского алфавита.
2. Для быстрого сохранения
файла можно воспользоваться командами Сохранить или
Сохранить все меню Файл.
Выход из системы программирования
Pascal ABC
Для того чтобы закончить
работу, необходимо:
• выйти в главное меню и
выбрать пункт Файл;
• в вертикальном меню выбрать пункт Выход;
. • или нажать на кнопку
в правом углу
строки заголовка.
Эксперименты с программой
1. Введите в качестве
исходных данных достаточно большие числа, например, 4567 и 789.
Убедитесь, что у вас получается неправдоподобный результат —
отрицательное число (—1117). Найдите экспериментальным путем тот
интервал значений переменных а и b, когда
результат умножения правильный.
2. Вместо числа
введите какой-нибудь символ. Убедитесь, что компьютер выдает
сообщение об ошибке.
Рис. 4
3. Добавьте лишний
знак апострофа в операторе WriteLn. Убедитесь, что программа не
проходит компиляцию, а система сообщает об ошибке.
4. Измените оператор
rez :=a*b
на rez:=a*(a
+ b). Выполните алгоритм.
Сделайте вывод.
Проверка знаний
Тест: Первая программа
Задачи
для самостоятельного решения
1. Измените программу
таким образом, чтобы в ней находилась сумма двух чисел.
2. Измените программу
таким образом, чтобы в ней находилась сумма четырех чисел.
3.
Напишите программу для вычисления выражения:
(а + (d - 12) *3) * (с -
5*k), значения переменных а, d, с и k
вводятся с клавиатуры.
Материал для
чтения
1. Из истории
Язык программирования
Паскаль был разработан Н. Виртом в 1968—1970 годах и получил
широкое распространение благодаря наглядности программ и
легкости при изучении. Он послужил основой для разработки других
языков программирования (например, Ада, Модула - 2).
Турбо Паскаль появился на
рынке программных продуктов в 1983 году и совершил настоящую
революцию в программировании и обучении этой дисциплине. До этих
пор предпочтение отдавалось Бейсику — простому, дешевому и
массовому. Паскаль же был аппаратно - зависимым, дорогим и
сложным в обращении. С появлением Турбо Паскаля положение
изменилось. Удобство Турбо Паскаля в том, что он предоставляет
интегрированную среду — редактор, компилятор и среду выполнения
программы.
Первая версия Турбо
Паскаля использовалась не очень долго — она появилась в 1983
году, а уже в 1984 году ее заменила вторая версия, которая
получила широкое распространение. К осени 1985 года появляется
третья версия, более удобная в работе.
Четвертая версия (1988
год) представила Турбо Паскаль в новом виде (в частности,
компилятор стал встроенным). Осенью этого же года разработана
пятая версия, в которой появился встроенный отладчик. А в 1989
году появилась версия 5.5, позволившая перейти к объектно -
ориентированному программированию.
Шестая версия уже
обеспечивала многооконный и многофайловый режимы работы,
использование мыши, применение объектно-ориентированного
программирования, обладала встроенным ассемблером и имела другие
возможности.
В 1992 году фирма Borland
International выпустила два пакета программирования на языке
Паскаль — Borland Pascal 7.0 и Turbo Pascal 7.0.
Пакет Turbo Pascal 7.0
использует новейшие достижения в программировании. Язык этой
версии обладает широкими возможностями, имеет большую библиотеку
модулей. Среда программирования позволяет создавать тексты
программ, компилировать их, находить и исправлять ошибки,
компоновать программы из отдельных частей, использовать модули,
отлаживать и выполнять отлаженную программу.
2. Некоторые
команды редактора
Команды управления
движением курсора
à—
перемещение курсора на символ вправо;
ß—
перемещение курсора на символ влево;
á—
перемещение курсора на строку вверх;
â—
перемещение курсора на строку вниз;
<Home>
— перемещение курсора в начало текущей строки;
<End>
— перемещение курсора в конец текущей строки;
<Page Up>
— перемещение курсора на страницу вверх;
<Page Up>
— перемещение курсора на страницу вниз;
<Ctrl>
+ <Home>
— перемещение курсора в левый верхний угол.
Команды вставки и
удаления текста
<Delete>
— удаление символа, стоящего в позиции курсора;
<Backspace>
— удаление символа, стоящего перед курсором;
<Ctrl>
+ <N>
— вставка пустой страницы для ввода программы;
<Ctrl>
+ <Y>
— удаление строки, в которой находится курсор.
3. Данные
Данные — общее понятие
всего того, с чем работает компьютер. В аппаратуре все данные
представляются как последовательности двоичных цифр. В языках
высокого уровня, а к ним относится Турбо Паскаль,
абстрагируются от деталей представления данных в памяти
компьютера. Любой тип данных определяет множество значений,
которые может принимать величина этого типа, и те операции,
которые можно применять к величинам этого типа.
В Турбо Паскале
используются пять типов данных: простые, строковые, составные,
ссылочные и процедурные. К простым типам данных относятся:
целый, вещественный, логический, символьный, перечислимый и
ограниченный (два последних определяются пользователем). На
простых типах данных, кроме вещественного, определено отношение
порядка. Что это такое? Все множество значений типа
рассматривается как упорядоченное множество, и каждое значение
связано с некоторым целым числом, которое есть его порядковый
номер. В любом порядковом типе для каждого значения, кроме
первого, существует предшествующее значение, и для каждого
значения, за исключением последнего, существует последующее
значение. Определены следующие стандартные функции для работы с
порядковыми типами:
• Ord — возвращает
порядковый номер значения любого порядкового типа;
•
Pred
— возвращает предшествующее значение для заданного значения
порядкового типа (выясните: что возвращает Pred, если заданное
значение первое?);
• Succ — возвращает
следующее значение для заданного значения порядкового типа
(выясните: что возвращает Succ, если заданное значение
последнее?).
В Турбо Паскале есть
возможность конструировать (создавать) свои типы данных
из имеющихся типов, причем весьма сложные. Итак, абстрагирование
и конструирование суть концепции типа
данных.
4. Операторы
ввода и вывода
Любая программа
взаимодействует с окружающей средой с помощью операторов
ввода-вывода. Если трактовать термин "программа" очень вольно,
то можно считать, что программа что-то откуда-то берет, что-то
делает с введенными данными и затем выводит куда-то полученные
результаты. В Турбо Паскале связь программы с внешними
устройствами осуществляется через файлы. В простейшем случае эти
файлы связаны с клавиатурой
(для ввода данных) и с экраном дисплея (для
вывода).
Для ввода с клавиатуры
используется оператор Read (или ReadLn).
Вызов: Read (r1, r2, …, rn).
Параметры r1,
r2, …, rn имеют
тип Integer, Real,
Char или String.
Действие: если ri имеет тип
• Integer или Real, то считывается одно число и значение его
присваивается переменной
ri.
При этом знаки пробела и перевода строки перед числом
игнорируются;
• Char, то считывается один символ и присваивается переменной ri;
• String, то считывается максимум q символов при длине
строковой переменной ri,
равной q.
Оператор ReadLn действует так же,
как и Read. Отличие в том, что после ввода осуществляется
переход на начало следующей строки.
Вывод
на экран осуществляется с помощью операторов Write (или WriteLn).
Вызов: Write (r1,
r2, …, rn ).
Параметры: r1,
r2, …, rn имеют
тип Integer, Real, Boolean, Char
или String.
Действие: на экран
выводится значение ri,
в стандартном формате.
Работа WriteLn отличается
тем, что после вывода осуществляется переход на начало следующей
строки.
|
|