Операторы логических выражений:



ЛЕКЦИЯ 8

ТЕМА: «ЯЗЫК ПРОГРАММИРОВАНИЯ».

План

Основы программирования.

Структура программы.

Примеры записи алгоритмов на языке Pascal.

Основы программирования.

Основы программирования на Pascal

Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением. В большинстве школ для обучения основам программирования используют язык программирования Pascal, поэтому мы рассмотрим его, хотя в ЕГЭ, кроме Pascal, также предусмотрено программирование на Basic, C и языке алгоритмизации.

Немного истории. Pascal был создан Никлаусом Виртом в середине XX в. Этот язык задумывался создателем, как учебный, но он оказался настолько удачным, что стал одним из ведущих языков программирования того времени. Позже Pascal был поддержан компанией Borland, которая создала для него высокоуровневый транслятор и интегрированную среду, что значительно улучшило этот язык программирования. В 1995 г компания Borland отказалась от проекта Pascal. Это было вызвано появлением более продвинутых языков, которые во многом превосходили Pascal, а также появлением Windows и быстрым распространением этой операционной системы, которое привело к полному её доминированию, а Pascal был не приспособлен для работы в Windows. Сейчас существует несколько трансляторов Pascal, которые были созданы недавно и работают в Windows. Среди них выделяется Free Pascal Compiler (FPC) и ABC.

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

 

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

В Турбо Паскале, в отличие от стандарта, возможно следующее:

• отсутствие заголовка программы;

• разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.

Запись программы на Паскале похожа на английский перевод алгоритма, записанного на Алгоритмическом языке. Сравните алгоритм деления простых дробей, записанный на АЯ, с соответствующей программой на Паскале.

Структура программы.

Программа - это алгоритм, исполнителем которого является компьютер.

Программа на Pascal выглядит так:

Program "имя";
{"голова программы" - блок описаний}
Begin
{"тело программы" - основной блок (блок операторов)}
End.

В блоке описаний находятся:

Описание подключаемых модулей.
Модули не нужны на ЕГЭ, если вам интересно, воспользуйтесь другими интернет ресурсами.

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

1. CONST
название константы (название даёт пользователь) = значение константы;

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

CONST
pi = 3,14;
v = 5;

{констант может быть хоть сколько}

Описание переменных.

Переменные - важная часть программы. Без их введения не существует ни одна полноценная программа. Фактически цель любого программного кода - изменить значение переменных.
Введение переменных осуществляется следующим образом:

VAR
название переменной (название даёт пользователь) : тип переменной (о типе будет говориться далее);

Переменных может быть неограниченное количество.

Пример введения переменных в программе:

VAR
a: integer;
b:char;
c:real;

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

За блоком описаний следует основной блок.
Основной блок состоит из операторов.
Несколько операторов могут быть объединены с помощью операционных скобок: "Begin" и "End;".

2. Основные типы данных
Integer (-32768 ... 32767) - целое число;
Real (2.9e-39 ... 1.7e+38) - вещественное число;
Char (1 символ) - символьный тип;
String (до 255 символов) - строка;
Boolean (true (истина) или false (ложь)) - логический тип;
Array - массив;

 

Особое внимание следует уделить массивам. Массивы вводятся следующим образом:
Название массива (даётся пользователем) : array [перечисление элементов массива] of тип элементов массива.
Пример введения массивов:

a: array [0..9] of integer;
{массив "a" из 10 элементов, каждый из которых типа integer}

Обращение к массиву в основном блоке программы осуществляется следующим образом:
Название массива [номер массива]

Операторы

Оператор - наименьшая автономная часть языка программирования; команда.

Операторы указываются через точку с запятой.

Оператор присвоения.
v := a; здесь v – переменная, a – выражение, := - операция присвоения.

Оператор if - else.

Когда выполнение основной ветки программы доходит до условного оператора if-else, то в зависимости от результата логического выражения в его заголовке, выполняются разные блоки кода. Если логическое выражение равно true, то выполняется один блок (начинается со слова then), если false – то другой (начинается со слова else). После выполнения одного из вложенных блоков кода, ход программы возвращается в основную ветку. Другой вложенный блок не выполняется.

if n mod 2 = 0 then
write ('Оно четное .')
else
write ('Оно нечетное .');

Оператор case.

В заголовке оператора case вместо логического выражения фигурирует переменная, которую называют селектором. До этого в программе ей присваивается какое-либо значение. Эта переменная может иметь только перечисляемый тип (например, она не может быть вещественного типа). По ходу выполнения оператора case, значение переменной-селектора сравнивается с различными, описанными в нем случаями (метками-значениями). Как только совпадение будет найдено, то выполняется блок кода при данной метке, и происходит выход в основную ветку программы. Если совпадений не будет, то выполняется блок else. Если блок else отсутствует, то никакой блок кода в операторе case не выполняется.

case n of
1..4: writeln ('Младшие классы.');
5..8: writeln ('Средняя школа.');
9..10: writeln ('Старшие классы');
11: writeln ('Выпускной.');
else writeln ('Error')
end;

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

Ввод значения переменных в программу осуществляется с помощью оператора "Read/ReadLn"
Выглядит следующим образом:
Read (переменные, значения которых нужно ввести);
Пример использования оператора ввода в программе:

ReadLn (al, fe, c);
Read (b);

Отличие оператора ReadLn от Read в том, что в после выполнения оператора ReadLn курсор ввода/вывода переместится на другую строку.

Вывод данных осуществляется с помощью оператора Write/WriteLn. Принцип его работы аналогичен оператору ввода, только он выводит значения переменных в диалоговое окно Pascal, а не просит их ввести.

Пример использования оператора вывода в программе:

WriteLn (a + b, c);
al := c + b;
Write (al);

{как показано в примере аргументом оператора может быть не только переменные, но и выражения}

Операторы логических выражений:

Для обозначения логических выражений в Pascal используются следующие операторы:
not (a); - логическое НЕ.
a and b; - логическое И.
a or b; - логическое ИЛИ.
(a, b - логическая переменная или выражение, результатом которого является логическое значение)

Выражения, результатом которых является логическое значение:

Это выражения, содержащие:
"=" - оператор "равно"
">" - оператор "больше"
"<" - оператор "меньше"
"<=" - оператор "меньше или равно"
">=" - оператор "больше или равно"
Разумеется, эти операторы отображают математические, и следовательно действуют также.

Например: если a:=1; b:=2; выражение a>b вернёт значение "fasle".

Циклы

Цикл for.
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число требуемых повторений в программе точно известно до выполнения тела цикла.

for i := 1 to 5 do
write ('+');

Цикл while.
Цикл while называется циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

while i := 5 do
begin
write ('+');
i := i + 1
end;

Цикл repeat.

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз не зависимо от того, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием. В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь все наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

repeat
write ('+');
i := i + 1
until i > n;

5. Функции
abs (x) - абсолютное значение аргумента (модуль аргумента)
sqr (x) - квадрат аргумента
sqrt (x) - квадратный корень аргумента
cos (x) - косинус аргумента
sin (x) - синус аргумента
ln (x) - натуральный логарифм
int (x) - целая часть числа
frac (x) - дробная часть числа

Структурное программирование

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

procedure имя (параметры);

function имя (параметры): тип результата;

Между функциями и процедурами есть существенное отличие. Значение, полученное в результате выполнения кода функции, жестко соотносится с ее именем путем присвоения этому имени конкретного значения. Тип, который может принять вычисляемое значение, указывается в заголовке функции (тип результата). И в теле основной программы функция вызывается только в том случае, если ее имя фигурирует в каком-либо выражении. В то время как процедура вызывается отдельно.Тело подпрограммы, как и любого составного оператора на языке Паскаль, ограничивается скобками begin и end.

Примеры использования процедуры и функции.

procedure box (s: char; w,h: integer);
var i,j:integer;
begin
for i := 1 to h do begin
for j := 1 to w do
write (s);
writeln
end;

 

function digits (n:integer): integer;
var i: integer;
begin
i := 0;
while n > 0 do begin
n := n div 10;
i := i + 1
end;


Дата добавления: 2020-11-29; просмотров: 101; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!