Основы программирования (Паскаль)
Случайные и псевдослучайные числа
Датчик случайных чисел
Основы программирования (Паскаль)
Выбор наибольшего из двух чисел
Вариант 1. Программа
Выбор наибольшего из двух чисел-2
Вариант 2. Программа
Примеры
Вложенные условные операторы
Задачи
Задачи
Сложные условия
Плохое решение
Хорошее решение (операция «И»)
Примеры
Сложные условия
Ещё пример
Простые и сложные условия
Порядок выполнения операций
Сложные условия
Задачи
Задачи
Задачи
727.00K
Категория: ПрограммированиеПрограммирование

Основы программирования (Паскаль)

1. Основы программирования (Паскаль)

1
Основы
программирования
(Паскаль)
§ 20. Введение
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

2. Случайные и псевдослучайные числа

Основы программирования (Паскаль), 8 класс
2
Случайные и псевдослучайные числа
Случайные явления
• встретил слона – не встретил слона
• жеребьёвка на соревнованиях
• лотерея
• случайная скорость (направление выстрела ) в игре
• …
Случайные числа — это последовательность чисел, в
которой невозможно предсказать следующее число,
даже зная все предыдущие.
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

3. Датчик случайных чисел

Основы программирования (Паскаль), 8 класс
3
Датчик случайных чисел
Целые числа на отрезке:
random – случайный
var K, L, M: integer;
K:= random(6);
{ отрезок [0,5] }
L:= random(6)+1; { отрезок [1,6] }
M:= random(b-a+1)+a; { отрезок [a,b] }
Вещественные числа в полуинтервале:
var x, y, z, w: real;
x:= random; { полуинтервал [0,1) }
y:= 7*random; { [0,7) }
z:= 7*random + 5; { [5,12) }
w:= (b-a)*random + a; { [a,b) }
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

4. Основы программирования (Паскаль)

4
Основы
программирования
(Паскаль)
§ 22. Ветвления
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

5. Выбор наибольшего из двух чисел

Основы программирования (Паскаль), 8 класс
5
Выбор наибольшего из двух чисел
полная
форма
ветвления
начало
ввод a,b
да
a > b?
M:= a
нет
M:= b
if a > b then
M:= a
else
M:= b;
вывод M
конец
К.Ю. Поляков, Е.А. Ерёмин, 2017
?
Если a = b?
http://kpolyakov.spb.ru

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

Основы программирования (Паскаль), 8 класс
6
Вариант 1. Программа
program Maximum;
var a, b, M: integer;
begin
writeln('Введите два целых числа');
полная форма
read(a, b);
условного
if a > b then
оператора
M:= a
else
! Перед else не ставится
точка с запятой!
M:= b;
writeln('Наибольшее число ', M);
end.
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

7. Выбор наибольшего из двух чисел-2

Основы программирования (Паскаль), 8 класс
7
Выбор наибольшего из двух чисел-2
начало
ввод a,b
M:= a
да
b > a?
нет
неполная
форма
ветвления
M:= b
вывод M
конец
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

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

Основы программирования (Паскаль), 8 класс
8
Вариант 2. Программа
program Maximum2;
var a, b, M: integer;
begin
writeln('Введите два целых числа');
read(a, b);
неполная
форма
M:= a;
условного
if b > a then
оператора
M:= b;
writeln('Наибольшее число ', M);
end.
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

9. Примеры

Основы программирования (Паскаль), 8 класс
9
Примеры
Поиск минимального:
if a < b then
M:= a;
if b < a then
M:= b;
if a < b then
begin
c:=
c:=a;
a;
a:=
a:=b;
b;
b:=
b:=cc
end;
!
?
Что плохо?
?
Когда работает неверно?
?
Что делает эта программа?
составной
оператор
Перед end можно не ставить
точку с запятой!
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

10. Вложенные условные операторы

Основы программирования (Паскаль), 8 класс
10
Вложенные условные операторы
Задача. В переменной a записан возраст Антона, а в
переменной b – возраст Бориса. Определить, кто из
них старше.
?
Сколько вариантов ответа?
if a > b then
вложенный
writeln('Андрей старше')
условный
оператор
else
if a=b then
writeln('Одного возраста'
возраста'))
else
writeln('Борис старше'
);
старше');
else относится к
ближайшему if
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

11. Задачи

Основы программирования (Паскаль), 8 класс
11
Задачи
«A»: Ввести два целых числа, найти наибольшее и
наименьшее из них.
Пример:
Введите два целых числа:
1 5
Наибольшее число 5
Наименьшее число 1
«B»: Ввести четыре целых числа, найти наибольшее из
них.
Пример:
Введите четыре целых числа:
1 5 4 3
Наибольшее число 5
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

12. Задачи

Основы программирования (Паскаль), 8 класс
12
Задачи
«C»: Ввести последовательно возраст Антона, Бориса и
Виктора. Определить, кто из них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Антон и Борис старше Виктора.
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

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

Основы программирования (Паскаль), 8 класс
13
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ 'подходит' или 'не
подходит').
Особенность: надо проверить, выполняются ли два
условия одновременно:
возраст 25
возраст 40
?
Можно ли решить известными методами?
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

14. Плохое решение

Основы программирования (Паскаль), 8 класс
14
Плохое решение
program Work;
var x: integer;
begin
writeln('Введите ваш возраст');
read(x);
вложенный
if x >= 25 then
условный
оператор
if x <= 40 then
write('Подходит!')
else
write('Не подходит.')
else
write('Не подходит.');
end.
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

15. Хорошее решение (операция «И»)

Основы программирования (Паскаль), 8 класс
15
Хорошее решение (операция «И»)
program Work;
var x: integer;
begin
writeln('Введите ваш возраст');
read(x);
if (x >= 25) and (x <= 40) then
write('Подходит!')
сложное
else
условие
write('Не подходит.');
end.
!
Каждое условие – в скобки!
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

16. Примеры

Основы программирования (Паскаль), 8 класс
16
Примеры
Задача. Вывести 'Да', если число в переменной a –
двузначное.
if (10 <= a) and (a <= 99) then
write('Да');
Задача. Вывести 'Да', если число в переменной a –
двузначное и делится на 7.
if (10 <= a) and (a <= 99)
and (a mod 7 = 0) then
write('Да');
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

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

Основы программирования (Паскаль), 8 класс
17
Сложные условия
Задача. Самолёт летает по понедельникам и четвергам.
Ввести номер дня недели и определить, летает ли в
этот день самолёт.
Особенность: надо проверить, выполняется ли одно из
двух условий:
день = 1
день = 4
if (d = 1) or (d = 4) then
write('Летает')
сложное
else
условие
write('Не летает');
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

18. Ещё пример

Основы программирования (Паскаль), 8 класс
18
Ещё пример
Задача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ 'подходит' или 'не
подходит'). Использовать «ИЛИ».
if (x < 25)
???or (x > 40)
write('Не подходит!')
else
write('Подходит.');
К.Ю. Поляков, Е.А. Ерёмин, 2017
then
http://kpolyakov.spb.ru

19. Простые и сложные условия

Основы программирования (Паскаль), 8 класс
19
Простые и сложные условия
Простые условия (отношения)
<
<=
>
>=
=
равно
<>
не равно
Сложное условие – это условие, состоящее из
нескольких простых условий (отношений),
связанных с помощью логических операций:
• И – одновременное выполнение условий
x >= 25 and x <= 40
• ИЛИ – выполнение хотя бы одного из условий
x <= 25 or x >= 40
• НЕ – отрицание, обратное условие
x <=
not (x > 25)
???25
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

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

Основы программирования (Паскаль), 8 класс
20
Порядок выполнения операций
• выражения в скобках
• НЕ (not)
• И (and)
• ИЛИ (or), исключающее ИЛИ (xor)
4
1
6
2
5
3
if not(a > 2) or (c <> 5) and (b < a) then
...
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

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

Основы программирования (Паскаль), 8 класс
21
Сложные условия
Истинно или ложно при a := 2; b := 3; c := 4;
not (a > b)
Да
Да
(a < b) and (b < c)
(a > c) or (b > c)
Нет
(a < b) and (b > c)
Нет
(a > c) and (b > d)
Нет
Да
not(a >= b) or (c = d)
(a >= b) or not (c < b)
Да
(a > c) or (b > c) or (b > a)
К.Ю. Поляков, Е.А. Ерёмин, 2017
Да
http://kpolyakov.spb.ru

22. Задачи

Основы программирования (Паскаль), 8 класс
22
Задачи
«A»: Напишите программу, которая получает три числа рост трёх спортсменов, и выводит сообщение «По
росту.», если они стоят по возрастанию роста, или
сообщение «Не по росту!», если они стоят не по
росту.
Пример:
Введите рост трёх спортсменов:
165 170 172
По росту.
Пример:
Введите рост трёх спортсменов:
175 170 172
Не по росту!
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

23. Задачи

Основы программирования (Паскаль), 8 класс
23
Задачи
«B»: Напишите программу, которая получает номер
месяца и выводит соответствующее ему время года
или сообщение об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.
If (a=1) or (a=2) or (a=12)then
writeln ('Зима');
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru

24. Задачи

Основы программирования (Паскаль), 8 класс
24
Задачи
«C»: Напишите программу, которая получает возраст
человека (целое число, не превышающее 120) и
выводит этот возраст со словом «год», «года» или
«лет». Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.
К.Ю. Поляков, Е.А. Ерёмин, 2017
http://kpolyakov.spb.ru
English     Русский Правила