Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы алгоритмизации и программирования на языке Паскаль

..pdf
Скачиваний:
11
Добавлен:
15.11.2022
Размер:
2.96 Mб
Скачать

Например:

 

Var

 

i, п, max:

Integer;

a, b, х 1:

Real;

znak, C :

Char;

Name:

String;

2.5.

Арифметическое выражение

Арифметическое выражение задает порядок выпол­ нения действий над числовыми данными. Арифметиче­ ское выражение содержит арифметические операции, функции, операнды и круглые скобки.

Операнды - это объекты, над которыми производятся действия (константы, переменные, функции).

Арифметические операции

Арифметические операции: сложение А+В, разность A-В, умножение А деление А/G, а также целочислен­ ное деление (частное) - Div (A div В) и целочисленное де­ ление (остаток) Mod (A mod В).

Эти операции применимы к арифметическим типам данных, к которым относятся данные вещественного (real) и целого типов (integer).

Например: 11 div 5 = 2 и 11 mod 5 = 1.

Стандартные функции языка

В системе языка существуют специальные подпро­ граммы (функции), с помощью которых можно вычислять значения некоторых функций, например cos х, sin х и др.

Эти подпрограммы и называются стандартными функ­ циями и включены в модуль System. Поскольку модуль System подключается к программе пользователя автомати­ чески, то его имя не указывается в разделе Uses и про­ грамме всегда доступны его встроенные подпрограммы.

Для обращения к стандартным функциям используют ее имя и в скобках записывают аргумент (параметр).

Формат обращения:

<имя функции> (<параметр>)

Аргумент называется фактическим параметром и явля­ ется в общем случае выражением арифметического типа. Результатом вычисления функции является величина соот­ ветствующего (арифметического) типа.

Например:

 

SIN(x)

Sin х

-

Cos (1-ax)

-

COS(l-a*x)

Таблица стандартных функций приведена в прил. 1.

Приоритет операций

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

Порядок убывания приоритетов:

1.Действия в скобках.

2.Вычисление функций.

3.*, /, div, mod.

4.+, -.

Например: математическое выражение sin(l - х 2) + ех

V2а х~2 + 1

в Паскале запишется в следующем виде:

(sin(l-Sqr(x)) +exp(x))/(Sqrt(2*a -1/Sqr(x))+1)

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

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

2.Что такое слово в языке Паскаль? Какими видами слов оперирует Паскаль?

3.Константы в языке Паскаль.

4.Переменные в языке Паскаль. Понятие типа пере­ менной. Переменные типа Real, Integer, Char, String.

5.Что представляют собой стандартные функции в языке Паскаль? Приведите примеры обращения к стан­ дартным функциям.

6.Арифметическое выражение, правила записи ариф­ метического выражения.

Лекция 3

Операторы языка Паскаль

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

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

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

Оператор присваивания (: =) предназначен для изме­ нения оперативной памяти (ОП). Старое значение при этом стирается, и записывается новое.

Формат оператора:

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

Работа оператора:

- вычисляется значение <выражение>; —это значение присваивается <переменной>.

Например:

А1:=2;

Rez:=SIN(Al)+Beta; Txt:=' П р и в е т zn:='*r;

х:=х+1;

Тип переменной и выражения должны быть одинако­ выми. Исключение лишь в случае, когда переменная - real,

авыражение - integer.

3.2.Ввод и вывод данных

Решение даже самой простой задачи на ЭВМ не обой­ дется без операций ввода-вывода.

Ввод данных - это передача информации от внешних устройств в оперативную память ПК для обработки. Вво­ дятся исходные данные решаемой задачи.

Вывод — обратный процесс: данные передаются из оперативной памяти на внешние носители (экран, принтер, магнитные устройства).

Основными устройствами ввода-вывода у ПК являются клавиатура и дисплей. Именно через эти устройства в ос­ новном и осуществляется диалог человека и ПК.

В Паскале нет специальных операторов ввода-вывода. Фактически операторы ввода-вывода - это обращение (вы­ зов) стандартных подпрограмм. Однако по установившей­ ся традиции такое обращение называют оператором.

Для выполнения операций ввода-вывода служат четы­ ре оператора (процедуры): Read, ReadLn, Write, WriteLn.

Рассмотрим применение их для ввода данных с клавиату­ ры и вывода на экран.

Оператор ввода (чтения) READ/READLN

Оператор (процедура) Read/Readln предназначен для ввода (чтения) данных.

Формат оператора;

Read <список ввода>;

где список ввода —это последовательность имен перемен­ ных, разделенных запятой.

Например: Read (xi, хг,..... х„);

При выполнении этого оператора работа ПК останав­ ливается. Пользователь должен набрать на клавиатуре зна­ чения переменных Xi через пробел. В конце ввода нажима­ ется клавиша Enter.

Значения переменных должны вводиться в строгом со­ ответствии с синтаксисом языка. Если нарушается это со­ ответствие, например лп имеет тип integer, а при вводе набирается значение 3.45, т.е. значение типа real, то выдает­ ся сообщение об ошибке и работа программы прекращается.

Оператор ReadLn (read line - читать строку). Оператор аналогичен оператору Read, но после считывания х„ (по­ следнего в списке ввода параметра) курсор переводится на новую строку, и последующий ввод начинается с новой строки.

Допускается пустой оператор ReadLn, переводящий курсор на новую строку.

Например:

 

Фрагмент программы

Вид экрана

ReadLn (а, Ь);

1.5 3

Read(Text);

Иванов

Именам (идентификаторам) a, b, text будут присвоены

соответственно значения

а =1,5, Ъ = 3, Text = Иванов.

Оператор вывода (записи) WRITE/WRITELN

Оператор (процедура) записи Write/Writeln производит вывод числовых данных, символов, строк.

выводится константа 567 выводится результат вычисления выражения выводятся значения переменных
выводится строка символов

Формат оператора:

Write<список вывода>;

Например: Write (YI, Y 2, ........Ym);

где Y\, Yi, ...Ym - параметры вывода, которые могут быть константами, переменными, выражениями, строками сим­ волов, заключенными в апострофы.

Например:

Write(567); Write(A+Bl-5,78);

Write(X, Summa);

WriteCИванов ’);

Оператор WriteLn аналогичен оператору Write, но по­ сле вывода на экран последнего в списке вывода параметра Ymкурсор переводится на следующую строку.

Допускается использование пустого оператора WriteLn, который вызывает перевод курсора на следующую строку.

Форматы вывода

Формат вывода определяет представление выводимого числового значения на экран. Формат отделяется от соот­ ветствующего элемента вывода двоеточием «:».

Запись формата для целочисленных значений (тип in­ teger) имеет вид Write (X:N), где N - ширина общего поля вывода, т.е. число позиций для записи числа, включая знак «минус» («-»).

Для данных вещественного типа (real) формат имеет вид Write (Y:N:M), где N - ширина общего поля вывода, М - ширина поля дробной части.

Вид экрана
введите X = 56.99 <Enter>
введите а, Ь, с: =
5 6.88 88 <Enter>
Иванов

Если указатель формата отсутствует, то ПК выводит значение по определенному правилу, предусмотренному

по умолчанию.

 

Например:

 

Фрагмент программы

Вид экрана

Х:= 425.55; Y:=12;

425.55

Writeln(X:6:2);

Writeln(X:9:3);

__ 425.550

Writeln(Y:2);

12

Writeln(Y:4);

__ 12

Writeln(X);

4.2555E+2.

 

Знак «_» означает пробел

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

При вводе данных рекомендуется выводить на экран поясняющий текст, содержащий информацию об этих вво­ димых данных.

Например: Фрагмент программы

Write ('введите Х='); ReadfX);

Write('eeedume: a, b, с = '); Read(a, b, с);

Печать строки символов WriteLn(' Иванов'); WriteLn(' ********';,-

3.3. управление вводом и выводом на экране

Система ТР предоставляет дополнительные возможно­ сти управления выводом на экран при работе его в тексто­ вом режиме. Для этого используются процедуры и функ­ ции модуля CRT (Cathode Ray Tube display).

Напомним, что модуль в Паскале - это библиотека констант, подпрограмм, которые можно использовать в своих программах.

Для установления связи пользовательской программы с модулем сразу после заголовка должна быть поставлена строка Uses CRT.

Основные процедуры и функции модуля CRT приведе­ ны в прил. 2.

3.4. Понятие и блок-схема линейного алгоритма

Рассмотрев оператор присваивания и операторы вво­ да-вывода, можно сформулировать понятие линейного алгоритма.

Линейный алгоритм - это алгоритм, в котором дей­ ствия выполняются в определенной последовательности только один раз.

Линейный алгоритм состоит из операторов присваива­ ния, ввода-вывода и обращения к вспомогательным алго­ ритмам. Вспомогательный алгоритм - это алгоритм реше­ ния некоторой подзадачи, который описывается отдельно. К работе основного алгоритма он подключается с помо­ щью команды обращения. Это будет рассмотрено позже, в лекции 6.

Рассмотрим блок-схему линейного алгоритма на приме­ ре 2.1 уже приведенной выше задачи о вычислении площа­ ди круга для вводимого с клавиатуры значения радиуса.

Блок-схема линейного алгоритма:

(^Начало~^)

Блок начала программы

Ввод R

Блок ввода данных

 

-----

Вычислительный блок

S = nR2

Вывод S

Блок вывода

(^ К о н е ц ^ ^

Блок конца программы

 

Контрольные вопросы и задания

1.Что такое оператор? Чем отличаются простые и со­ ставные операторы? Приведите примеры.

2.Оператор присваивания, его назначение и порядок выполнения.

3.Понятие алгоритма. Алгоритмы линейной структуры.

4.Какие операторы (процедуры) служат в языке Пас­ каль для операций ввода-вывода? Приведите примеры.

5.В чем отличие оператора записи Write от оператора

Writelrf!

6.Форматы вывода операторов записи Write и Writeln.

7.Общая характеристика модуля Crt.