Программирование (Паскаль)
Что такое программирование?
Направления в программировании
Простейшая программа
Вывод на экран
Переход на новую строку
Системы программирования
Системы программирования
Программирование (Паскаль)
Пример задачи
Зачем нужны переменные?
Имена переменных
Работа с переменными
Работа с переменными
Ввод с клавиатуры
Ввод с клавиатуры
Программа сложения чисел
write(данных с текстом
Программа сложения чисел
Арифметические выражения
Порядок выполнения операций
Частное и остаток
Частное и остаток
Форматный вывод
Форматный вывод
Научный формат чисел
Операции с вещественными числами
Операции с вещественными числами
Операции с вещественными числами
Программирование (Паскаль)
Выбор наибольшего из двух чисел
Вариант 1. Программа
Выбор наибольшего из двух чисел-2
Вариант 2. Программа
Примеры
В других языках программирования
Вложенные условные операторы
Сложные условия
Плохое решение
Хорошее решение (операция «И»)
Примеры
Сложные условия
Ещё пример
Простые и сложные условия
Порядок выполнения операций
Сложные условия
1.46M
Category: programmingprogramming

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

1. Программирование (Паскаль)

1
Программирование
(Паскаль)
1. Введение
Программирование

2. Что такое программирование?

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

3. Направления в программировании

Программирование (Паскаль), 8 класс
3
Направления в программировании
системный программист
операционные системы,
утилиты, драйверы
прикладной программист
прикладные программы, в
т.ч. для мобильных
устройств
веб-программист
веб-сайты
программист баз данных
системы управления
базами данных
Программирование

4. Простейшая программа

Программирование (Паскаль), 8 класс
Простейшая программа
название программы
program
begin {
{
end. {
qq;
начало программы }
тело программы
}
конец программы }
комментарии внутри {}
не обрабатываются
?
Программирование
Что делает эта программа?
4

5. Вывод на экран

Программирование (Паскаль), 8 класс
5
Вывод на экран
program Hello; оператор
вывода
begin
write('Привет!'); Оператор — это команда
end.
языка программирования.
write('Привет', Вася!);
write('Привет, Вася!');
вся строка в
апострофах
Программирование
?
Что плохо?

6. Переход на новую строку

Программирование (Паскаль), 8 класс
Переход на новую строку
write('Привет, Вася!');
write('Привет, Петя!');
ожидание:
Привет, Вася!
Привет, Петя!
реальность:
Привет, Вася!Привет, Петя!
решение:
writeln('Привет, Вася!');
writeln('Привет,
Петя!');
ln
и перейти на
новую строку
Программирование
6

7. Системы программирования

Программирование (Паскаль), 8 класс
7
Системы программирования
Системы программирования — это средства для
создания новых программ.
Транслятор — это программа, которая переводит
тексты программ, написанных программистом, в
машинные коды (команды процессора).
• компилятор — переводит всю программу в
машинные коды, строит исполняемый файл (.exe)
program Hello;
begin
write('Привет!');
end.
1010010100
privet.exe
• интерпретатор — сам выполняет программу по
частям (по одному оператору).
Программирование

8. Системы программирования

Программирование (Паскаль), 8 класс
Системы программирования
Отладчик — это программа для поиска ошибок в других
программах.
• пошаговый режим — выполнение программы по
шагам (по одному оператору)
• просмотр значений переменных во время
выполнения программы
• точки останова – операторы в программе, перед
выполнением которых нужно остановиться.
Среда программирования (IDE):
• редактор текста программ
• транслятор
• отладчик
Программирование
8

9. Программирование (Паскаль)

9
Программирование
(Паскаль)
2. Линейные программы
Программирование

10. Пример задачи

Программирование (Паскаль), 8 класс
10
Пример задачи
Задача. Ввести два числа и вычислить их сумму.
?
program Sum;
Выполнится?
begin
{ ввести два числа }
{ вычислить их сумму }
{ вывести сумму на экран }
end.
Псевдокод – алгоритм на
русском языке с элементами
языка программирования.
!
Компьютер не может исполнить псевдокод!
Программирование

11. Зачем нужны переменные?

Программирование (Паскаль), 8 класс
11
Зачем нужны переменные?
program Sum;
begin
Где запомнить?
{ ввести два числа }
{ вычислить их сумму }
{ вывести сумму на экран }
end.
Переменная — это величина, которая имеет имя, тип и
значение. Значение переменной может изменяться во
время выполнения программы.
var a, b, c: integer;
объявление переменных
ячейки памяти
Программирование

12. Имена переменных

Программирование (Паскаль), 8 класс
12
Имена переменных
Идентификатор — это имя программы или переменной.
var a, b, c: integer;
МОЖНО использовать
• латинские буквы (A-Z, a-z)
• цифры
!
заглавные и строчные
буквы НЕ различаются
Имя не может начинаться с цифры!
• знак подчеркивания _
НЕЛЬЗЯ использовать скобки, знаки ", &, |, *, +, =, !, ? и др.
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
Программирование

13. Работа с переменными

Программирование (Паскаль), 8 класс
13
Работа с переменными
Присваивание (запись значения)
a := 5;
a := 5;
a := 18;
Вывод на экран
write(a);
оператор
присваивания
?
Что будет храниться в a?
?
В чём разница?
с:= 14;
write(с);
14
Программирование
a ←5
с:= 14;
write('с');
c

14. Работа с переменными

Программирование (Паскаль), 8 класс
14
Работа с переменными
Изменение значения
i:= i + 1;
a:=
b:=
a:=
b:=
a:=
b:=
a:=
b:=
4;
7;
a +
b +
a +
b +
a +
b +
Программирование
увеличить на 1
a
4
b
7
1;
1;
b;
a;
2;
a;
5
8
13
21
15
36
i ← i + 1

15. Ввод с клавиатуры

Программирование (Паскаль), 8 класс
15
Ввод с клавиатуры
Цель – изменить исходные данные, не меняя программу.
read(a);
!
5
1. Программа ждет, пока пользователь введет
значение и нажмет Enter.
2. Введенное значение записывается в
переменную a.
Программирование

16. Ввод с клавиатуры

Программирование (Паскаль), 8 класс
16
Ввод с клавиатуры
read(a, b);
через пробел:
25 30
через Enter:
25
30
Программирование
a 25
b 30
a 25
b 30

17. Программа сложения чисел

Программирование (Паскаль), 8 класс
17
Программа сложения чисел
?
program Sum;
Что плохо?
var a, b, c: integer;
begin
read(a, b); { ввести два числа }
c:= a + b; { вычислить их сумму }
write(c) { вывести сумму на экран }
end.
ожидание:
Введите два числа: 5 7
5+7=12
реальность:
5 7
12
Программирование
?
Как улучшить диалог?

18. write(данных с текстом

Программирование (Паскаль), 8 класс
18
write(данных с текстом
значение a
значение b
значение с
5+7=12
текст
write(a);
write('+');
write(b);
write('=');
write(c);
Программирование
write(a, '+', b, '=', c);

19. Программа сложения чисел

Программирование (Паскаль), 8 класс
Программа сложения чисел
program Sum;
var a, b, c: integer;
begin
write('Введите два числа: ');
read(a, b);
c:= a + b;
write(a, '+', b, '=', c)
end.
?
Как переделать для 3-х чисел?
Программирование
19

20. Арифметические выражения

Программирование (Паскаль), 8 класс
20
Арифметические выражения
c b 1
a
d
2
Линейная запись (в одну строку):
a:=(c+b-1)/2*d;
Операции: + –
* – умножение
/ – деление
** – возведение в степень (x2 x**2)
var x, a, b: integer;
read(a, b);
x:= aa // bb;
var x: real;
Программирование
?
Что плохо?

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

Программирование (Паскаль), 8 класс
Порядок выполнения операций
действия в скобках
возведение в степень
умножение и деление, слева направо
сложение и вычитание, слева направо
6
5
2
1
3
4
a := c + (1 – 2 * b) / 2 * d;
1)
2)
3)
4)
Программирование
21

22. Частное и остаток

Программирование (Паскаль), 8 класс
Частное и остаток
div – деление нацело (остаток отбрасывается)
mod – остаток от деления
175 сек = 2 мин 55 сек ? Как получить 2 и 55?
var
t:=
m:=
s:=
t, m, s: integer;
175;
t div 60; { 2 }
t mod 60; { 55 }
Программирование
22

23. Частное и остаток

Программирование (Паскаль), 8 класс
Частное и остаток
?
Что получится?
n:= 123
d:= n div 10; { 12 }
k:= n mod 10; { 3 }
При делении на 10 нацело отбрасывается последняя
цифра числа.
Остаток от деления на 10 – это последняя цифра числа.
Программирование
23

24. Форматный вывод

Программирование (Паскаль), 8 класс
24
Форматный вывод
var a, b, c: integer;
a:=1; b:=2; c:=3;
write(a, b, c);
123
write(a,' ',b,' ',c);
1 2 3
write(a, b:3, c:5);
1
количество знаков
на вывод числа
?
Сколько знаков для вывода a?
Программирование
2
3
3
5

25. Форматный вывод

Программирование (Паскаль), 8 класс
25
Форматный вывод
вариант:
var x: real;
x:=12.34567891234;
write(x);
12.345679
6
write(x:10:3);
всего на
число
в дробной
части
write(x:8:2);
12.346
3
10
12.34
write(x:2:2);
12.34
write(x:0:1);
12.3
минимально
возможное
Программирование
по умолчанию

26. Научный формат чисел

Программирование (Паскаль), 8 класс
26
Научный формат чисел
var x: real;
x:=123456789;
write(x);
var x: real;
x:=0.0000123456789;
write(x);
1.234568e+008
1,234568 108
1.234568e-005
1,234568 10–5
количество знаков
может отличаться
Программирование

27. Операции с вещественными числами

Программирование (Паскаль), 8 класс
27
Операции с вещественными числами
trunc – целая часть числа (дробная часть
отбрасывается)
round – округление к ближайшему целому
frac – дробная часть
x:= 1.6;
write(trunc(x));
1
write(round(x));
2
write(frac(x));
0.6
Программирование

28. Операции с вещественными числами

Программирование (Паскаль), 8 класс
28
Операции с вещественными числами
sqrt – квадратный корень
x:= 2.25;
write(sqrt(x));
Программирование
1.5

29. Операции с вещественными числами

Программирование (Паскаль), 8 класс
Операции с вещественными числами
1/3 = 0,33333…
!
бесконечно много знаков
Большинство вещественных чисел хранятся в
памяти компьютера с ошибкой!
var x, y, z: real;
x:= 1/2;
y:= 1/3;
z:= 5/6; { 5/6=1/2+1/3 }
write(x+y-z);
-1.110223e-016
Программирование
29

30. Программирование (Паскаль)

30
Программирование
(Паскаль)
3. Ветвления
Программирование

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

Программирование (Паскаль), 8 класс
31
Выбор наибольшего из двух чисел
полная
форма
ветвления
начало
ввод a,b
да
a > b?
M:= a
нет
M:= b
if a > b then
M:= a
else
M:= b;
вывод M
конец
Программирование
?
Если a = b?

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

Программирование (Паскаль), 8 класс
Вариант 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.
Программирование
32

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

Программирование (Паскаль), 8 класс
33
Выбор наибольшего из двух чисел-2
начало
ввод a,b
M:= a
да
b > a?
M:= b
вывод M
конец
Программирование
нет
неполная
форма
ветвления

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

Программирование (Паскаль), 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.
Программирование
34

35. Примеры

Программирование (Паскаль), 8 класс
35
Примеры
Поиск минимального:
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 можно не ставить
точку с запятой!

36. В других языках программирования

Программирование (Паскаль), 8 класс
36
В других языках программирования
Python:
С:
if a < b:
c = a
a = b
b = c
if (a
c =
a =
b =
}
Программирование
< b) {
a;
b;
c;

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

Программирование (Паскаль), 8 класс
Вложенные условные операторы
Задача. В переменной a записан возраст Антона, а в
переменной b – возраст Бориса. Определить, кто из
них старше.
?
Сколько вариантов ответа?
if a = b then
вложенный
writeln('Одного возраста') условный
оператор
else
if a
> b
then
a=b
then
writeln('Андрей
)
writeln('Одного старше'
возраста')
else
writeln('Борис старше'
);
старше');
else относится к
ближайшему if
Программирование
37

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

Программирование (Паскаль), 8 класс
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ 'подходит' или 'не
подходит').
Особенность: надо проверить, выполняются ли два
условия одновременно:
возраст 25
возраст 40
?
Можно ли решить известными методами?
Программирование
38

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

Программирование (Паскаль), 8 класс
Плохое решение
program Work;
var x: integer;
begin
writeln('Введите ваш возраст');
read(x);
вложенный
if x >= 25 then
условный
оператор
if x <= 40 then
write('Подходит!')
else
write('Не подходит.')
else
write('Не подходит.');
end.
Программирование
39

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

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

41. Примеры

Программирование (Паскаль), 8 класс
Примеры
Задача. Вывести 'Да', если число в переменной a –
двузначное.
if (10 <= a) and (a <= 99) then
write('Да');
Задача. Вывести 'Да', если число в переменной a –
двузначное и делится на 7.
if (10 <= a) and (a <= 99)
and (a mod 7 = 0) then
write('Да');
Программирование
41

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

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

43. Ещё пример

Программирование (Паскаль), 8 класс
43
Ещё пример
Задача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ 'подходит' или 'не
подходит'). Использовать «ИЛИ».
if (x < 25)
???or (x > 40)
write('Не подходит!')
else
write('Подходит.');
Программирование
then

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

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

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

Программирование (Паскаль), 8 класс
Порядок выполнения операций
• выражения в скобках
• НЕ (not)
• И (and)
• ИЛИ (or), исключающее ИЛИ (xor)
4
1
6
2
5
3
if not(a > 2) or (c <> 5) and (b < a) then
...
Программирование
45

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

Программирование (Паскаль), 8 класс
46
Сложные условия
Истинно или ложно при 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)
Программирование
Да
English     Русский Rules