Похожие презентации:
Программирование на языке Паскаль
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)
Программирование
Да