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

Содержание

Слайд 2

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

Тема 1. Введение

© К.Ю. Поляков, 2006-2007

Программирование на языке Паскаль Тема 1. Введение © К.Ю. Поляков, 2006-2007

Слайд 3

Алгоритм

Свойства алгоритма
дискретность: состоит из отдельных шагов (команд)
понятность: должен включать только команды, известные

Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать
исполнителю (входящие в СКИ)
определенность: при одинаковых исходных данных всегда выдает один и тот же результат
конечность: заканчивается за конечное число шагов
массовость: может применяться многократно при различных исходных данных
корректность: дает верное решение при любых допустимых исходных данных

Алгоритм – это четко определенный план действий для исполнителя.

Слайд 4

Программа

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

Команда

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

Слайд 5

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

Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер)
Языки

Языки программирования Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора
высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера
для обучения: Бейсик, ЛОГО, Паскаль
профессиональные: Си, Фортран, Паскаль
для задач искусственного интеллекта: Пролог, ЛИСП
для Интернета: JavaScript, Java, Perl, PHP, ASP

Слайд 6

Язык Паскаль

1970 – Никлаус Вирт (Швейцария)
язык для обучения студентов
разработка программ

Язык Паскаль 1970 – Никлаус Вирт (Швейцария) язык для обучения студентов разработка
«сверху вниз»
разнообразные структуры данных (массивы, структуры, множества)

Слайд 7

Из чего состоит программа?

program <имя программы>;
const …;{константы}
var …; {переменные}
begin
… {основная программа}
end.

{

Из чего состоит программа? program ; const …;{константы} var …; {переменные} begin
процедуры и функции }

комментарии в фигурных скобках не обрабатываются

Слайд 8

Из чего состоит программа?

Константа – постоянная величина, имеющая имя.
Переменная – изменяющаяся величина,

Из чего состоит программа? Константа – постоянная величина, имеющая имя. Переменная –
имеющая имя (ячейка памяти).
Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности).
Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin).

Слайд 9

Имена программы, констант, переменных

Имена могут включать
латинские буквы (A-Z)
цифры
знак подчеркивания _

заглавные и строчные

Имена программы, констант, переменных Имена могут включать латинские буквы (A-Z) цифры знак
буквы не различаются

Имена НЕ могут включать
русские буквы
пробелы
скобки, знаки +, =, !, ? и др.

имя не может начинаться с цифры

Какие имена правильные??
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Слайд 10

Константы

const
i2 = 45; { целое число }
pi = 3.14; {

Константы const i2 = 45; { целое число } pi = 3.14;
вещественное число }
qq = 'Вася'; { строка символов }
L = True; { логическая величина }

целая и дробная часть отделяются точкой

можно использовать русские буквы!

может принимать два значения:
True (истина, «да»)
False (ложь, «нет»)

Слайд 11

Переменные

Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно

Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной
изменять во время работы программы.

Типы переменных:
integer { целая }
real { вещественная }
char { один символ }
string { символьная строка }
boolean { логическая }

Объявление переменных (выделение памяти):

var a, b: integer;
Q: real;
s1, s2: string;

Слайд 12

Как изменить значение переменной?

Оператор – это команда языка программирования высокого уровня.

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

Как изменить значение переменной? Оператор – это команда языка программирования высокого уровня.
служит для изменения значения переменной.

program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
end.

a

?

5

5

b

?

5+2

7

a

5

7*4

28

Пример:

Слайд 13

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

Общая структура:

Арифметическое выражение может включать
константы
имена переменных
знаки арифметических операций:
+ - *

Оператор присваивания Общая структура: Арифметическое выражение может включать константы имена переменных знаки
/ div mod
вызовы функций
круглые скобки ( )

умножение

деление

деление нацело

остаток от деления

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

Слайд 14

program qq;
var a, b: integer;
x, y: real;
begin
a := 5;

program qq; var a, b: integer; x, y: real; begin a :=

10 := x;
y := 7,8;
b := 2.5;
x := 2*(a + y);
a := b + x;
end.

Какие операторы неправильные?

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

целая и дробная часть отделяются точкой

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

Слайд 15

Ручная прокрутка программы

program qq;
var a, b: integer;
begin
a := 5;
b :=

Ручная прокрутка программы program qq; var a, b: integer; begin a :=
a + 2;
a := (a + 2)*(b – 3);
b := a div 5;
a := a mod b;
a := a + 1;
b := (a + 14) mod 7;
end.

Слайд 16

Порядок выполнения операций

вычисление выражений в скобках
умножение, деление, div, mod слева направо
сложение и

Порядок выполнения операций вычисление выражений в скобках умножение, деление, div, mod слева
вычитание слева направо

z := (5*a*c+3*(c-d))/a*(b-c)/ b;

x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

2 3 5 4 1 7 8 6 9

2 6 3 4 7 5 1 12 8 11 10 9

Слайд 17

Сложение двух чисел

Задача. Ввести два целых числа и вывести на экран их

Сложение двух чисел Задача. Ввести два целых числа и вывести на экран
сумму.

Простейшее решение:

program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.

Слайд 18

Оператор ввода

read ( a ); { ввод значения переменной a}

read ( a,

Оператор ввода read ( a ); { ввод значения переменной a} read
b ); { ввод значений переменных a и b}

Как вводить два числа?
через пробел:
25 30
через Enter:
25
30

Слайд 19

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

write ( a ); { вывод значения переменной a}

writeln ( a

Оператор вывода write ( a ); { вывод значения переменной a} writeln
); { вывод значения переменной a и переход на новую строчку}

writeln ( 'Привет!' ); { вывод текста}

writeln ( 'Ответ: ', c ); { вывод текста и значения переменной c}

writeln ( a, '+', b, '=', c );

Слайд 20

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

program qq;
var i: integer;
x: real;
begin
i := 15;
writeln (

Форматы вывода program qq; var i: integer; x: real; begin i :=
'>', i, '<' );
writeln ( '>', i:5, '<' );
x := 12.345678;
writeln ( '>', x, '<' );
writeln ( '>', x:10, '<' );
writeln ( '>', x:7:2, '<' );
end.

>15<
> 15<
>1.234568E+001<
> 1.23E+001<
> 12.35<

всего символов

всего символов

в дробной части

Слайд 21

Полное решение

program qq;
var a, b, c: integer;
begin
writeln('Введите два целых числа');
read

Полное решение program qq; var a, b, c: integer; begin writeln('Введите два
( a, b );
c := a + b;
writeln ( a, '+', b, '=', c );
end.

Протокол:
Введите два целых числа
25 30
25+30=55

это выводит компьютер

это вводит пользователь

Слайд 22

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

начало

конец

c := a + b;

ввод a, b

вывод c

блок "начало"

блок "ввод"

блок

Блок-схема линейного алгоритма начало конец c := a + b; ввод a,
"процесс"

блок "вывод"

блок "конец"

Слайд 23

Задания

"4": Ввести три числа, найти их сумму и произведение.
Пример:
Введите три

Задания "4": Ввести три числа, найти их сумму и произведение. Пример: Введите
числа:
4 5 7
4+5+7=16
4*5*7=140
"5": Ввести три числа, найти их сумму, произведение и среднее арифметическое.
Пример:
Введите три числа:
4 5 7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.33

Слайд 24

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

Тема 2. Ветвления

© К.Ю. Поляков, 2006-2007

Программирование на языке Паскаль Тема 2. Ветвления © К.Ю. Поляков, 2006-2007

Слайд 25

Разветвляющиеся алгоритмы

Задача. Ввести два целых числа и вывести на экран наибольшее из

Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее
них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

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

Слайд 26

Вариант 1. Блок-схема

полная форма ветвления

блок "решение"

Вариант 1. Блок-схема полная форма ветвления блок "решение"

Слайд 27

Вариант 1. Программа


max := a;

max := b;

полная форма условного оператора

program qq;
var a,

Вариант 1. Программа max := a; max := b; полная форма условного
b, max: integer;
begin
writeln('Введите два целых числа');
read ( a, b );
if a > b then begin
end
else begin
end;
writeln ('Наибольшее число ', max);
end.

Слайд 28

Условный оператор

if <условие> then begin
{что делать, если условие верно}
end

Условный оператор if then begin {что делать, если условие верно} end else
else begin
{что делать, если условие неверно}
end;

Особенности:
перед else НЕ ставится точка с запятой
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать слова begin и end

Слайд 29

Что неправильно?

if a > b then begin
a := b;
end

Что неправильно? if a > b then begin a := b; end
else
b := a;
end;

if a > b then begin
a := b;
else begin
b := a;
end;

if a > b then begin
a := b;
end;
else begin
b := a;
end;

if a > b then begin
a := b;
end
else b > a begin
b := a;
end;

begin

end

begin

end

Слайд 30

Вариант 2. Блок-схема

неполная форма ветвления

Вариант 2. Блок-схема неполная форма ветвления

Слайд 31

Вариант 2. Программа


program qq;
var a, b, max: integer;
begin
writeln('Введите два целых числа');

Вариант 2. Программа program qq; var a, b, max: integer; begin writeln('Введите
read ( a, b );
max := a;
if b > a then
max := b;
writeln ('Наибольшее число ', max);
end.

неполная форма условного оператора

Слайд 32

Вариант 2Б. Программа

program qq;
var a, b, max: integer;
begin
writeln('Введите два целых числа');

Вариант 2Б. Программа program qq; var a, b, max: integer; begin writeln('Введите
read ( a, b );
max := b;
if ??? then
???
writeln ('Наибольшее число ', max);
end.

max := a;

a > b

Слайд 33

Что неправильно?

if a > b then begin
a := b;
else

Что неправильно? if a > b then begin a := b; else
b := a;

if a > b then begin
a := b;
end;
else b := a;

if a > b then
else begin
b := a;
end;

if a > b then
a := b;
else b := a; end;

a := b

end

a := b
if b >= a then
b := a;

Слайд 34

Задания

"4": Ввести три числа и найти наибольшее из них.
Пример:
Введите три числа:
4

Задания "4": Ввести три числа и найти наибольшее из них. Пример: Введите
15 9
Наибольшее число 15
"5": Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56

Слайд 35

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

Тема 3. Сложные условия

© К.Ю. Поляков, 2006-2007

Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков, 2006-2007

Слайд 36

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести

Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно.
возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит").
Особенность: надо проверить, выполняются ли два условия одновременно.

Слайд 37

Вариант 1. Алгоритм

начало

ввод x

'подходит'

конец

да

нет

x >= 25?

да

нет

x <= 40?

'не подходит'

'не подходит'

Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x >=

Слайд 38

Вариант 1. Программа


program qq;
var x: integer;
begin
writeln('Введите возраст');
read ( x );

Вариант 1. Программа program qq; var x: integer; begin writeln('Введите возраст'); read
if x >= 25 then
if x <= 40 then
writeln ('Подходит')
else writeln ('Не подходит')
else
writeln ('Не подходит');
end.

Слайд 39

Вариант 2. Алгоритм

начало

ввод x

'подходит'

да

нет

x >= 25 и
x <= 40?

'не подходит'

Вариант 2. Алгоритм начало ввод x 'подходит' да нет x >= 25 и x 'не подходит'

Слайд 40

Вариант 2. Программа

сложное условие

program qq;
var x: integer;
begin
writeln('Введите возраст');
read ( x

Вариант 2. Программа сложное условие program qq; var x: integer; begin writeln('Введите
);
if (x >= 25) and (x <= 40) then
writeln ('Подходит')
else writeln ('Не подходит')
end.

Слайд 41

Сложные условия

Сложное условие – это условие, состоящее из нескольких простых условий (отношений),

Сложные условия Сложное условие – это условие, состоящее из нескольких простых условий
связанных с помощью логических операций:
not – НЕ (отрицание, инверсия)
and – И (логическое умножение, конъюнкция, одновременное выполнение условий)
or – ИЛИ (логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)
xor – исключающее ИЛИ (выполнение только одного из двух условий, но не обоих)
Простые условия (отношения)
< <= > >= = <>

равно

не равно

Слайд 42

Сложные условия

Порядок выполнения
выражения в скобках
not
and
or, xor
<, <=, >, >=, =, <>
Особенность –

Сложные условия Порядок выполнения выражения в скобках not and or, xor ,
каждое из простых условий обязательно заключать в скобки.
Пример

4 1 6 2 5 3

if not (a > b) or (c <> d) and (b <> a)
then begin
...
end

Слайд 43

Истинно или ложно при a := 2; b := 3; c :=

Истинно или ложно при a := 2; b := 3; c :=
4;
not (a > b)
(a < b) and (b < c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
Для каких значений x истинны условия:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)

Сложные условия

True

True

FALSE

(-∞, 6)


(6, 10)

(10, ∞)

(-∞, 10)

(-∞, 6) ∪ (10,∞)

(-∞, ∞)

(6, ∞)

x < 6

x > 10

x < 10

x > 6

True

True

Имя файла: Программирование-на-языке-Паскаль.pptx
Количество просмотров: 25
Количество скачиваний: 0