programmirovanie_l2-2016

Содержание

Слайд 2

Язык программирования Pascal

Разработан в 1971 г. швейцарским профессором Никлаусом Виртом для обучения

Язык программирования Pascal Разработан в 1971 г. швейцарским профессором Никлаусом Виртом для обучения структурному программированию.
структурному программированию.

Слайд 3

Всякий язык программирования имеет три основные составляющие: алфавит, синтаксис и семантику.
Алфавит языка

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

Слайд 4

program <имя_программы>;
[ uses <имена_подключаемых_модулей>;]
[ label <список_меток>;]
[ const <имя_константы> = <значение_константы>;]
[ type

program ; [ uses ;] [ label ;] [ const = ;]
<имя_типа> = <определение_типа>;]
[ var <имя_переменной> : <тип_переменной>;]
[ procedure <имя_процедуры> <описание_процедуры>;]
[ function <имя_функции> <описание_функции>;]
begin {начало основного тела программы}
<операторы>
end. (* конец основного тела программы *)

Слайд 5

Основные символы языка Pascal

Это латинские буквы, цифры от 0 до 9 и

Основные символы языка Pascal Это латинские буквы, цифры от 0 до 9
специальные символы
Также есть служебные слова, которые не могут использоваться в качестве идентификаторов (т.е. имен переменных, подпрограмм, модулей). Например, слова var, type, if.

Слайд 6

Идентификаторы

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

Идентификаторы Это имена переменных, констант, подпрограмм, модулей. В программе не может быть
идентификаторов с одним именем!
Правильный идентификатор должен начинаться с латинской буквы. В нем могут присутствовать цифры и знак подчеркивания.
Примеры:
x
X
summa
s1
m_

Слайд 7

список наиболее часто встречающихся зарезервированных слов:
and goto set
array implementation shl
begin in shr
case interface string
const label then
div mod text
do nil to
downto not type
else of unit
end or until
file pointer uses
far procedure var
for program while
forward record with
Function repeat xor

список наиболее часто встречающихся зарезервированных слов: and goto set array implementation shl

Слайд 8

Простейшие операторы
a:= b; - присваивание переменной а значения переменной b.
Операторные скобки,

Простейшие операторы a:= b; - присваивание переменной а значения переменной b. Операторные
превращающие несколько операторов в один:
begin
<несколько операторов>
end;

Слайд 9

Комментарии
{ комментарий }
Другой вариант оформления комментария:
(* комментарий *)
Ввод и вывод
read(<список_ввода>) и readln(<список_ввода>);
write(<список_вывода>)

Комментарии { комментарий } Другой вариант оформления комментария: (* комментарий *) Ввод
и writeln(<список_вывода>).

Слайд 10

Пример простейшей программы на языке Pascal
program start;
var s: string;
begin
write('Пожалуйста, введите Ваше

Пример простейшей программы на языке Pascal program start; var s: string; begin
имя: ');
readln(s);
writeln('Мы рады Вас приветствовать, ',s,'!');
end.
Во время работы этой программы на экране появится следующее:
Пожалуйста, введите Ваше имя: Иван Иваныч
Мы рады Вас приветствовать, Иван Иваныч!

Слайд 11

Объекты (константы, переменные, функции, выражения), которыми оперирует программа, относятся к определенному типу.

Объекты (константы, переменные, функции, выражения), которыми оперирует программа, относятся к определенному типу.

Тип — это множество значений, которые могут принимать объекты программы, и совокупность операций, допустимых над этими значениями.

Типы данных

Слайд 13

Перечисляемые типы данных задаются в разделе type
Например:
type week =(sun,mon,tue,wed,thu,fri,sat)
0

Перечисляемые типы данных задаются в разделе type Например: type week =(sun,mon,tue,wed,thu,fri,sat) 0
1 2 3 4 5 6
Интервальные типы данных
задаются только границами своего диапазона. Например:
type month = 1..12;
Комбинации
Например:
type valid_for_identifiers = 'a'..'z','A'..'Z','_','0’..’9';

Слайд 15

Переменная

Данные хранятся в памяти компьютера, но для указания на конкретную информацию очень

Переменная Данные хранятся в памяти компьютера, но для указания на конкретную информацию
неудобно все время записывать физические адреса ячеек.
Эта проблема в языке Pascal решена введением понятия переменной. Переменная – именованный участок памяти для хранения данных определенного типа. Значение переменной (информация в соответствующих ячейках памяти) в ходе выполнения программы может быть изменено. Имя переменной должно быть правильным идентификатором!
Объявляются переменные в специальном разделе var (см. структуру программы на языке Pascal). Например:
var
x: integer;
b, summa: integer;
a: real;

Слайд 16

Константа

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

Константа Величина, значение которой в ходе выполнения программы не может быть изменено.
обычные (просто значения, например, 5, 6.7, ‘f’) и именованные.
Имя константы должно быть правильным идентификатором.
Именованные константы объявляются в разделе const.
Пример:
const
pi=3.14;
n=20;

Слайд 17

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

:=
<Переменная> := <Выражение> ; 
В левой части может быть только 1 переменная,

Оператор присваивания := := ; В левой части может быть только 1
которой будет присвоено значение выражения из правой части. Тип переменной слева должен соответствовать типу выражения справа.
Выражение состоит из операндов, знаков операций и круглых скобок.
Операндами являются константы, переменные, обращения к функциям.
Примеры:
a:=6;
s:=a+5;
y:=sin(x);
z:=y+cos(x);

Слайд 18

Ввод данных

read(<переменные>);
readln(<переменные>);
Пример 1:
readln(x);
Программа приостановит свое выполнение и будет ожидать ввод

Ввод данных read( ); readln( ); Пример 1: readln(x); Программа приостановит свое
данных (в зависимости от типа переменной х). Завершается ввод нажатием клавиши Enter.
Пример 2:
readln(a,b,c);
Ввод нескольких переменных в одном выражении. При вводе с клавиатуры данные должны разделяться пробелом.

Слайд 19

Вывод данных на экран

write(<выводимые данные>);
writeln(<выводимые данные>);
Во втором случае после вывода на экран

Вывод данных на экран write( ); writeln( ); Во втором случае после
будет произведен переход на следующую строку.
Примеры:
1. write(‘Hello,’);
write(‘ world!’);
На экране появится:
Hello, world!
2. writeln(‘Hello,’);
writeln(‘ world!’);
На экране появится:
Hello,
world!

Слайд 20

Особенности вывода

По умолчанию вывод происходит в поле вывода шириной в количество знаков

Особенности вывода По умолчанию вывод происходит в поле вывода шириной в количество
выводимого числа. При этом вещественные числа выводятся с максимально возможным количеством знаков после вещественной точки.
Например:
x:=5/3;
writeln(x);
На экране появится
1.66666666666667
Но есть возможность управлять как количеством знаков в дробной части, так и шириной поля вывода числа.

Слайд 21

В операторе write или writeln вещественное значение (а также целое или строковое) можно записать в виде:
переменная:ширина:точность
ширина -

В операторе write или writeln вещественное значение (а также целое или строковое)
целое положительное число, определяющее, сколько экранных позиций отводится для вывода всего числа. Ширина определена для числовых значений любого типа и строк.
Точность - целое положительное число, определяющее, сколько цифр из ширины отводится на вывод дробной части числа. Значение точности определено только для вещественных чисел. Оно не учитывает позицию десятичной точки. Недопустимые значения ширины и точности не будут учтены при выводе.
write('Сумма введенных чисел равна',s:5:2);

Слайд 22

Стандартные математические функции и процедуры

Стандартные математические функции и процедуры

Слайд 25

Встроенные функции и операции Pascal

Арифметические операции
* - умножение
/ - деление
+ - сложение

Встроенные функции и операции Pascal Арифметические операции * - умножение / -
вычитание
div - целая часть от деления
mod - остаток от деления

Слайд 26

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

*, /, MOD, DIV
+, -,
<, >, <=, >=, <>, =

Приоритет операций *, /, MOD, DIV +, -, , =, , =

Слайд 27

Условный оператор в языке Pascal

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

Условный оператор в языке Pascal Условные операторы позволяют выбирать для выполнения те
иные части программы в зависимости от некоторых условий.
Синтаксис условного оператора:
if <условие> then
begin

end
else
begin

end;
Т.е. если условие верное, то выполняется блок операторов после then, иначе выполняется блок операторов после else.

Слайд 28

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

Используются в условиях.

Например: if a<=b then … else …

Операторы сравнения Используются в условиях. Например: if a

Слайд 29

Таблицы истинности логических операций

0 and 0 = 0
0 and 1 =

Таблицы истинности логических операций 0 and 0 = 0 0 and 1
0
1 and 0 = 0
1 and 1 = 1

0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1

1 – true, 0 – false

Слайд 30

Логические операции
NOT - логическое отрицание ("НЕ")
AND - логическое умножение ("И")
OR - логическое

Логические операции NOT - логическое отрицание ("НЕ") AND - логическое умножение ("И")
сложение ("ИЛИ")
XOR - логическое "Исключающее ИЛИ”

Слайд 31

Логические операции

Логические операции

Слайд 32

Оператор выбора CASE

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

Оператор выбора CASE Позволяет выбрать одно из нескольких возможных продолжений программы в
от значения выражения:
case выражение of значение1 : оператор (группа операторов); значение2 : оператор (группа операторов); . . . . . . . . . . . . . . . . . . . . . значениеN : оператор (группа операторов) else оператор (группа операторов); end;

Слайд 33

Оператор выбора CASE

Пример 1:
Write('Введите число: ');
Readln( i );
Case i

Оператор выбора CASE Пример 1: Write('Введите число: '); Readln( i ); Case
of
2, 4, 6, 8: Writeln('Четная цифра');
1, 3, 5, 7, 9: Writeln('Нечетная цифра');
10..100: Writeln('Число от 10 до 100');
else
Writeln ('Отрицательное число или больше 100')
end;
Пример 2:
Write('Введите номер месяца: ');
Readln( MONTH );
case MONTH of
1, 2, 3 : writeln ('Первый квартал');
4, 5, 6 : writeln ('Второй квартал');
7, 8, 9 : writeln ('Третий квартал');
10, 11, 12 : writeln ('Четвёртый квартал');
end;

Слайд 34

Операторы цикла

Цикл – это последовательность операторов, которая может выполняться более одного раза.
Циклы с

Операторы цикла Цикл – это последовательность операторов, которая может выполняться более одного
предусловием используются тогда, когда выполнение цикла связано с некоторым логическим условием. Оператор цикла с предусловием имеет две части: условие выполнения цикла и тело цикла.
При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.
while <условие> do   begin     группа операторов   end;

Цикл с предусловием while

Слайд 35

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

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

Цикл с предусловием while

Слайд 36

Цикл с предусловием while

Задача: найти сумму чисел, введенных пользователем.
Program Summa;
Var 

Цикл с предусловием while Задача: найти сумму чисел, введенных пользователем. Program Summa;
i, N : integer;
x, S : real;
Begin
write('Сколько чисел для сложения? ');
readln (N);
S:=0; 
i:=1; 
while i<=N do
begin
write('Введите ',i,'-е число ');     
readln (x);     
S:=S+x;     
i:=i+1;   
end; 
write('Сумма введенных чисел равна ',s:5:2); 
End.

Слайд 37

Задача: Найти сумму цифр в записи данного натурального числа;
Program SUM;
Var a,b,s:Integer;
Begin
write('Введите

Задача: Найти сумму цифр в записи данного натурального числа; Program SUM; Var
число: ');
Readln(a);
s:=0;
While a<>0 do
begin
b:=a mod 10;
s:=s+b;
a := a div 10;
end;
Writeln(s);
End.

Цикл с предусловием while

Слайд 38

Цикл с постусловием repeat

Отличительной особенностью данного цикла является то, что тело цикла

Цикл с постусловием repeat Отличительной особенностью данного цикла является то, что тело
выполняется в любом случае как минимум 1 раз, т.к. условие выхода из цикла проверяется после тела цикла.
repeat
  группа операторов
until <условие>; {до тех пор, пока условие не будет верным}
Для выполнения в цикле repeat нескольких операторов не следует помещать эти операторы в операторные скобки begin ... end. Зарезервированные слова repeat и until действуют как операторные скобки.

Слайд 39

Задача. Определить, является ли введенное число простым.
Program Prostoe;
Var
i, {возможный делитель}
Number

Задача. Определить, является ли введенное число простым. Program Prostoe; Var i, {возможный
: integer; {исследуемое число}
Begin
writeln (‘Какое число должно быть проверено? ‘);
read (Number);
i := 1;
repeat
i := i+1;
until Number mod i = 0;
if Number=i
then
writeln (Number,’ является простым‘)
else
writeln (Number,’ делится на ‘,i);
readln;
End.

Цикл с постусловием repeat

Слайд 40

Цикл со счетчиком for

Цикл со счетчиком представляет такую конструкцию, в которой выполнение

Цикл со счетчиком for Цикл со счетчиком представляет такую конструкцию, в которой
тела цикла должно повторяться заранее определенное число раз. 
for i := A to B do
begin
операторы
end;
Или
for i := A downto B do
begin
операторы
end;
Переменная i – управляющая переменная или переменная цикла (целый тип),
А – начальное значение переменной цикла,
В – конечное значение переменной цикла.
Управляющую переменную цикла нельзя менять в теле цикла!!!

Слайд 41

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное
значение.
Затем в цикле выполняется исполнительный оператор (или составной оператор).
Каждый раз при выполнении исполнительного оператора управляющая переменная увеличивается на 1 (для for...to) или уменьшается на 1 (для for...downto).
Цикл завершается при достижении управляющей переменной своего конечного значения.

Цикл со счетчиком for

Слайд 42

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное
значение.
Затем в цикле выполняется исполнительный оператор (или составной оператор).
Каждый раз при выполнении исполнительного оператора управляющая переменная увеличивается на 1 (для for...to) или уменьшается на 1 (для for...downto).
Цикл завершается при достижении управляющей переменной своего конечного значения.

Цикл со счетчиком for

Слайд 43

Цикл со счетчиком for

Цикл со счетчиком for

Слайд 44

Часто исполнительная часть одного из циклов For является новым оператором цикла For.

Часто исполнительная часть одного из циклов For является новым оператором цикла For.

Структуры такого рода называются вложенными циклами.
При завершении внутреннего цикла управляющая переменная внешнего цикла увеличивается, а внутренний цикл начинается заново.
Повторение этих действий будет продолжаться до завершения внешнего цикла.
Приведенный ниже вложенный цикл печатает пары чисел, начиная от (1,1), (1,2),... и кончая (10,10):

Вложенный цикл со счетчиком for

Слайд 45

Пример цикла for

Вычислить N! (факториал):
Program Faktorial;
Var n, i, f: integer;
Begin
f:=1;
Write('Введите

Пример цикла for Вычислить N! (факториал): Program Faktorial; Var n, i, f:
n: ');
Readln(n);
For i:=2 to n do
f:=f*i;
Writeln(n,'!=',f);
End.
Имя файла: programmirovanie_l2-2016.pptx
Количество просмотров: 19
Количество скачиваний: 0