Сайт учителя

Тинькова Е.Н.

Урок 27

 


Общие сведения о языке программирования Паскаль

Ключевые слова:

• язык программирования
• программа
• алфавит
• служебные слова
• типы данных
• структура программы
• оператор присваивания

Языки программирования — это формальные языки, предназна­ченные для записи алгоритмов, исполнителем которых будет компьютер. Записи алгоритмов на языках программирования называются программами.
Существует несколько тысяч языков программирования. Мы с вами познакомимся с языком программирования Паскаль, который был разработан в 70-х годах прошлого века Никлаусом Виртом (Швейцария). Своё название этот язык получил в честь французского учёного Блеза Паскаля, известного не только своими достижениями в математике, физике и философии, но и созданием первой в мире механической машины, выполнявшей сложение двух чисел.
Язык Паскаль считается универсальным языком программирования, так как он может применяться для записи алгоритмов реше­ния самых разных задач (вычислительных, обработки текстов, по­строения графических изображений, поиска информации и т.д.).
Он поддерживает процедурный стиль программирования, в соответ­ствии с которым программа представляет собой последовательность операторов, задающих те или иные действия1.

 

Никлаус Вирт (род. в 1934 г.) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программиро­вания, профессор компьютерных наук. Разработчик языка Паскаль и ряда других языков программирования.


Рекомендуем вам зайти на сайт pascalabc.net. Здесь вы найдёте много полезной информации для начинающих программистов, сможете скачать систему программирования PascalABC.NET.

 

3.1.1. Алфавит и словарь языка

Основой языка программирования Паскаль, как и любого другого языка, является алфавит — набор допустимых символов, которые можно использовать для записи программы. Это:

  • латинские прописные буквы (А, В, С, ...., X, Y, Z);
  • латинские строчные буквы (а, Ь, с, ..., х, у, z);
  • арабские цифры (0, 1, 2, ..., 7, 8, 9);
  • специальные символы (знак подчёркивания; знаки препинания; круглые, квадратные и фигурные скобки; знаки арифметических операций и др.).

В качестве неделимых элементов (составных символов) рассматриваются следующие последовательности символов:

:= (знак операции присваивания);
>= и <= (знаки ≥ 
и );
(* и *) (начало и конец комментария).

В языке существует также некоторое количество различных це­почек символов, рассматриваемых как единые смысловые элементы с фиксированным значением. Такие цепочки символов называются служебными словами. В таблице 3.1 приведены основные служеб­ные слова, которые мы будем использовать при записи программ на языке Паскаль.

С другими стилями программирования вы познакомитесь при изучении курса информатики в 10-11 классах.

                                                                                                                Таблица3.1

Служебные слова языка Паскаль

Для обозначения констант, переменных, программ и других объ­ектов используются имена — любые отличные от служебных слов последовательности букв, цифр и символа подчёркивания, начина­ющиеся с буквы или символа подчёркивания.
Прописные и строчные буквы в именах не различаются.
Длина имени может быть любой. Для удобства мы будем пользоваться именами, длина которых не превышает 8 символов.

 

3.1.2. Типы данных, используемые в языке Паскаль

В языке Паскаль используются различные типы данных. Мы бу­дем пользоваться некоторыми из так называемых простых типов данных (табл. 3.2)

                                                                                                                     Таблица 3.2

Некоторые типы данных в языке Паскаль

В вещественном числе целая часть от дробной отделяется точкой, при этом перед точкой и после неё должно быть, по крайней мере, по одной цифре. Пробелы внутри числа недопустимы.

 

3.1.3. Структура программы на языке Паскаль

В программе, записанной на языке Паскаль, можно выделить:
1) заголовок программы;
2) блок описания используемых данных;
3) блок описания действий по преобразованию данных (программный блок).

Заголовок программы состоит из служебного слова program и имени программы. После имени программы ставится точка с запятой.

Блок описания данных состоит из раздела описания констант (const), раздела описания переменных (var) и некоторых других разделов. В разделе описания переменных указываются имена используемых в программе переменных и их типы. Имена переменных од­ного типа перечисляются через запятую, затем после двоеточия указывается их тип;  описание каждого типа заканчивается точкой с запятой. Ниже приведён пример раздела описания переменных:

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

Ниже приведён общий вид программы:

program  <имя   программы>;

const  <список  постоянных   значений>;
var   <описание   используемых  переменных>;

begin  <начало  программного   блока>

<оператор 1>;
<оператор 2>;
...

<оператор n>

end.

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

 

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

Основное преобразование данных, выполняемое компьютером, — присваивание переменной нового значения, что означает изменение содержимого области памяти; оно осуществляется оператором присваивания, аналогичным команде присваивания алгоритмического языка. Общий вид оператора:

<имя переменной>:=<выражение>

Операция присваивания допустима для всех приведённых в табл. 3.2 типов данных. Выражения в языке Паскаль конструируются по рассмотренным ранее правилам для алгоритмического языка.

Рассмотрим процесс выполнения операторов присваивания на следующем примере:

а:=10;
b:=5;
s:=a+b

При выполнении оператора а:=10 в ячейку оперативной памяти компьютера с именем а заносится значение 10; при выполнении опе­ратора b:=5 в ячейку оперативной памяти компьютера с именем за­носится значение 5. При выполнении оператора s:=а+b значения ячеек оперативной памяти с именами а и переносятся в процессор, где над ними выполняется операция сложения. Полученный резуль­тат заносится в ячейку оперативной памяти с именем s (рис. 3.1).

Рис. 3.1. Процесс выполнения оператора присваивания


 

Организация ввода и вывода данных

Ключевые слова:

• оператор вывода write
• формат вывода
• оператор ввода read

3.2.1. Вывод данных

В предыдущем параграфе мы познакомились со структурой программы на языке Паскаль, научились описывать данные, рас­смотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих пре­образований нам виден не будет.
Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write:

Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на экран. Это могут быть числовые, символьные и логические выражения, в том числе пере­менные и константы.

Произвольный набор символов, заключённый в апострофы, счи­тается строковой константой. Строковая константа может содер­жать любые символы, набираемые на клавиатуре.

Пример. Оператор write (' s=', s) выполняется так:

1) на экран выводятся символы, заключённые в апострофы: s=
2) на экран выводится значение переменной, хранящееся в ячей­ке оперативной памяти с именем s.

Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15.
Если значение переменной s равно 15, но она имеет веществен­ный тип, то на экране появится: s=1 . 5E+01
При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате рабо­ты оператора write (1, 20, 300) на экран будет выведена после­довательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сде­лать выводимые данные более доступными для восприятия можно разными способами:

Формат вывода — это указываемое после двоеточия целое чис­ло, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервиро­ванных под него позиций на экране, то свободные позиции допол­няются пробелами слева от числа. Если указанное в формате выво­да после двоеточия число меньше, чем необходимо, то оно автома­тически будет увеличено до минимально необходимого.
Для вывода вещественного числа в списке вывода для каждого выражения указываются два параметра: 

1) общее количество пози­ций, отводимых под число;
2) количество позиций в дробной части числа:

При выполнении нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln. Других различий между операторами write и writeln нет.

3.2.2. Первая программа на языке Паскаль

Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.
Исходным данным в этой задаче является радиус: r=5,4 см. Ре­зультатом работы программы должны быть величины с — длина окружности и — площадь круга. с, s и — величины вещественно­го типа.

Исходные данные и результаты связаны соотношениями, извест­ными из курса математики: с=2πr, s=π. Программа, реализую­щая вычисления по этим формулам, будет иметь вид:

program  n_l;

const pi=3.14;
var   r, с, s: real;

begin

r:=5.4;
c:=2*pi*r;
s:=pi*r*r;

writeln ('c='c:6:4);
writeln ('s=', s : 6:4)

end.

Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).
Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения не­посредственно в текст программы, а именно изменять оператор при­сваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа боль­шая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

3.2.3. Ввод данных с клавиатуры

Для ввода в оперативную память значений переменных используется оператор ввода  read:

При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter¹. Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.

Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т. д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.

Пример. Пусть .

var i, j: integer;  x: real;  a: char;

Присвоим переменным i, j, x, а значения 1, 0, 2,5 и 'А'. Для этого воспользуемся оператором

read (i, j, x, a)

и организуем входной поток одним из следующих способов:

1   0   2.5  A<Enter>      1, 0, 2.5<Enter>      1<Enter>
                                       A<Enter>                0<Enter>
                                                                       2.5<Enter>
                                                                       A<Enter>

Здесь мы не только использовали различные разделители (пробел, запятая), но и представляли входной поток в виде одной, двух и четырёх строк.
Для ввода данных с клавиатуры можно также использовать оператор readln. Отличие состоит в том, что после выполнения readln осуществляется автоматический переход на новую строку входного потока, даже если в текущей строке остались невведённые символы. Таким образом, readln позволяет считать лишь начальную часть введённой пользователем строки и, проигнорировав её окончание, перейти к следующей строке.

Усовершенствуем программу n_1, организовав в вей ввод данных с помощью оператора read. А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сооб­щения с помощью оператора writeln:

program n_2;

const pi=3.14;
var r, с, s: real;

begin

writeln ('Вычисление длины окружности и площади круга');
write ('Введите r>>');

readln (r);
c:=2*pi*r;
s:=pi*r*r;
writeln ('c=', c:6:4);
writeln ('s=', s:6:4)

end.

Результат работы усовершенствованной программы:

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


Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Дополняет ли презентация информацию, содержащуюся в тексте параграфа? Какими слайдами вы могли бы дополнить презентацию?

2. В честь кого назван язык программирования Паскаль? Подготовьте краткую биографическую справку об этом учёном.

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

4. Что входит в состав алфавита языка Паскаль?

5. Каких требований следует придерживаться при выборе имён для различных объектов в языке Паскаль?

6. Указывая название, обозначение, диапазон и занимаемую область памяти, опишите известные вам типы данных, используемые в языке Паскаль.

7. В чём разница между числами 100 и 100.0 в языке Паскаль?

8. Какую структуру имеет программа, записанная на языке Паскаль?

9. Как записывается раздел описания переменных?

10. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.

11. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.

12. Что является результатом выполнения оператора?

a) write (a)
б)write ('a')
в)write ('a=', а)

13. Какой тип имеет переменная f, если после выполнения оператора write (f) на экран было выведено следующее число?

а) 125
б)1.25Е+2

14. Каким образом можно вывести на экран вещественное число?


САМОЕ ГЛАВНОЕ

 

Block title

Вход на сайт

Поиск

Календарь

«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Архив записей