Similar presentations:
Программа. Программирование на алгоритмическом языке
1. Программа
Программирование на алгоритмическом языке1
Программа
Программа – это
• алгоритм, записанный на каком-либо языке
программирования
• набор команд для исполнителя
Команда – это описание действий, которые
должен выполнить исполнитель.
• откуда взять исходные данные?
• что нужно с ними сделать?
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
2. Простейшая программа
Программирование на алгоритмическом языке2
Простейшая программа
название алгоритма
алг Первый
нач | начало алгоритма
кон | конец алгоритма
комментарии после |
не обрабатываются
?
К. Поляков, 2010-2011
Что делает эта программа?
http://kpolyakov.narod.ru
3. Вывод текста на экран
Программирование на алгоритмическом языке3
Вывод текста на экран
алг Вывод на экран
нач
новая строка
вывод "2+"
вывод "2=?", нс
вывод "Ответ: 4"
кон
Протокол:
2+2=?
Ответ: 4
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
4. Программа
Программирование на алгоритмическом языке4
Программа
алг
нач
|
|
|
кон
Сумма
ввести два числа
вычислить их сумму
вывести сумму на экран
Псевдокод – алгоритм на
русском языке с элементами
языка программирования.
!
Компьютер не может исполнить псевдокод!
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
5. Переменные
Программирование на алгоритмическом языке5
Переменные
Переменная – это величина, имеющая имя, тип
и значение. Значение переменной можно
изменять во время работы программы.
Значение
Другой тип
данных
Имя
К. Поляков, 2010-2011
!
?
Поместится?
В переменной хранятся данные
определенного типа!
http://kpolyakov.narod.ru
6. Имена переменных
Программирование на алгоритмическом языке6
Имена переменных
МОЖНО использовать
• латинские буквы (A-Z), русские буквы (А-Я)
заглавные и строчные буквы различаются
• цифры
имя не может начинаться с цифры
• знак подчеркивания _
НЕЛЬЗЯ использовать
• скобки
• знаки +, =, !, ? и др.
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
7. Объявление переменных
Программирование на алгоритмическом языке7
Объявление переменных
Типы переменных:
• цел
| целая
• вещ
| вещественная
• и другие…
Объявление переменных:
тип – целые
выделение
места в памяти
список имен
переменных
цел a, b, c
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
8. Как записать значение в переменную?
Программирование на алгоритмическом языке8
Как записать значение в переменную?
Оператор
присваивания
a := 5
5
!
При записи нового
значения старое
стирается!
Оператор – это команда языка программирования (инструкция).
Оператор присваивания – это команда для
записи нового значения в переменную.
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
9. Блок-схема линейного алгоритма
Программирование на алгоритмическом языке9
Блок-схема линейного алгоритма
начало
блок «начало»
ввод a, b
блок «ввод»
c := a + b
блок «процесс»
вывод c
блок «вывод»
конец
К. Поляков, 2010-2011
блок «конец»
http://kpolyakov.narod.ru
10. Как ввести значение с клавиатуры?
Программирование на алгоритмическом языке10
Как ввести значение с клавиатуры?
Оператор
ввода
5
ввод a
!
1. Программа ждет, пока пользователь введет
значение и нажмет Enter.
2. Введенное значение записывается в
переменную a.
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
11. Ввод значений двух переменных
Программирование на алгоритмическом языке11
Ввод значений двух переменных
ввод a, b
Ввод значений двух
переменных.
через пробел:
25 30
25 a
30 b
25,30
25 a
30 b
через запятую:
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
12. Изменение значения переменной
Программирование на алгоритмическом языке12
Изменение значения переменной
Пример:
алг Тест
a
5
?
5
нач
цел a, b
b
a := 5
5+2
?
7
b := a + 2
a
a := (a + 2)*(b – 3)
7*4
28
5
b := b + 1
кон
b
7
8
К. Поляков, 2010-2011
7+1
http://kpolyakov.narod.ru
13. Арифметические операции
Программирование на алгоритмическом языке13
Арифметические операции
+ сложение
– вычитание
* умножение
/ деление
div деление нацело (остаток отбрасывается)
mod остаток от деления
цел a, b
a := 7*3 - 4
a := a * 5
b := div(a,10)
a := mod(a,10)
К. Поляков, 2010-2011
|
|
|
|
17
85
8
5
http://kpolyakov.narod.ru
14. Вывод данных
Программирование на алгоритмическом языке14
Вывод данных
вывод a
|вывод значения
|переменной a
вывод a, нс
|вывод значения
|переменной a и переход
|на новую строчку
вывод "Привет!"
|вывод текста
вывод "Ответ: ", c
|вывод текста и значения переменной c
вывод a, "+", b, "=", c
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
15. Задача: сложение чисел
Программирование на алгоритмическом языке15
Задача: сложение чисел
Задача. Ввести два целых числа и вывести на
экран их сумму.
Простое решение:
алг Сумма
нач
цел a, b, c
ввод a, b
c := a + b
вывод c
кон
К. Поляков, 2010-2011
?
Что плохо?
http://kpolyakov.narod.ru
16. Полное решение
Программирование на алгоритмическом языке16
Полное решение
алг Сумма
нач
подсказка
цел a, b, c
вывод "Введите два целых числа"
ввод a, b
c := a + b
вывод a, "+", b, "=", c
кон
Протокол:
компьютер
Введите два целых числа
25 30
пользователь
25+30=55
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
17. Порядок выполнения операций
Программирование на алгоритмическом языке17
Порядок выполнения операций
1) вычисление выражений в скобках
2) умножение, деление, div, mod слева направо
3) сложение и вычитание слева направо
1 2 4 5 3 6
z := (5*a+c)/a*(b-c)/ b
5c 2 d (a b)
x
(c d )( d 2a)
5a c
z
(b c)
ab
2 3 5 4 1 10
6 9 8 7
x:=(5*c*c-d*(a+b))/((c+d)*(d-2*a))
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
18. Команда «вывод»
Программирование на алгоритмическом языке18
Команда «вывод»
цел a = 1, b = 3
вывод a, "+", b, "=", a+b
список вывода
• элементы разделяются запятыми
• элементы в кавычках – выводятся без изменений
• выражения (элементы без кавычек) вычисляются
и выводится их результат
?
Что будет выведено?
1+3=4
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
19. Что будет выведено?
Программирование на алгоритмическом языке19
Что будет выведено?
цел a = 1, b = 3
вывод "a+", b, "=a+b"
цел a = 1, b = 3
вывод a, "=F(", b, ")"
цел a = 1, b = 3
вывод "a=F(", b, ");"
цел a = 1, b = 3
вывод a+b, ">", b, "!"
цел a = 1, b = 3
вывод "F(", b, ")=X(", a, ")"
К. Поляков, 2010-2011
a+3=a+b
1=F(3)
a=F(3);
4>3!
F(3)=X(1)
http://kpolyakov.narod.ru
20. Разветвляющиеся алгоритмы
Программирование на алгоритмическом языке20
Разветвляющиеся алгоритмы
Задача. Ввести два целых числа и вывести на экран
наибольшее из них.
Идея решения: надо вывести на экран первое число,
если оно больше второго, или второе, если оно больше
первого.
Особенность: действия исполнителя зависят от
некоторых условий (если … иначе …).
Алгоритмы, в которых последовательность шагов
зависит от выполнения некоторых условий, называются
разветвляющимися.
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
21.
Программирование на алгоритмическом языке21
Вариант 1. Программа
алг Максимум
нач
цел a, b, M
вывод "Введите два целых числа", нс
ввод a, b
если a > b то
полная форма
M:=a
условного
иначе
оператора
M:=b
все
вывод "Наибольшее число ", M
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
22. Условный оператор
Программирование на алгоритмическом языке22
Условный оператор
если условие то
| что делать, если условие верно
иначе
| что делать, если условие неверно
все
!
Вторая часть (иначе) может отсутствовать!
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
23. Вариант 2. Блок-схема
Программирование на алгоритмическом языке23
Вариант 2. Блок-схема
начало
ввод a,b
M:= a
да
b > a?
нет
неполная
форма
ветвления
M:= b
вывод M
конец
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
24. Вариант 2. Программа
Программирование на алгоритмическом языке24
Вариант 2. Программа
алг Максимум 2
нач
цел a, b, M
вывод "Введите два целых числа", нс
ввод a, b
неполная
M:= a
форма
если b > a то
условного
M:= b
оператора
все
вывод "Наибольшее число ", M
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
25. Вариант 2б. Программа
Программирование на алгоритмическом языке25
Вариант 2б. Программа
алг Максимум 2б
нач
цел a, b, M
вывод "Введите два целых числа", нс
ввод a, b
M:= b
если a???
> b то
???a
M:=
все
вывод "Наибольшее число ", M
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
26.
Программирование на алгоритмическом языке26
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет
включительно. Ввести возраст человека и определить,
подходит ли он фирме (вывести ответ «подходит» или
«не подходит»).
Особенность: надо проверить, выполняются ли два
условия одновременно.
?
Можно ли решить известными методами?
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
27. Вариант 1. Алгоритм
Программирование на алгоритмическом языке27
Вариант 1. Алгоритм
начало
ввод x
да
да
“подходит”
x <= 40?
x >= 25?
нет
нет
“не подходит”
“не подходит”
конец
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
28. Вариант 1. Программа
Программирование на алгоритмическом языке28
Вариант 1. Программа
алг Сотрудник
нач
цел x
вывод "Введите ваш возраст", нс
ввод x
если x >= 25 то
если x <= 40 то
вывод "Подходит!"
иначе
вывод "Не подходит."
все
иначе
вывод "Не подходит."
все
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
29. Вариант 2. Алгоритм
Программирование на алгоритмическом языке29
Вариант 2. Алгоритм
начало
ввод x
да
x >= 25
и
x <= 40?
“подходит”
нет
“не подходит”
конец
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
30. Вариант 2. Программа
Программирование на алгоритмическом языке30
Вариант 2. Программа
алг Сотрудник
нач
цел x
вывод "Введите ваш возраст", нс
ввод x
если x >= 25 и x <= 40 то
вывод "Подходит!"
иначе
сложное
вывод "Не подходит."
условие
все
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
31. Сложные условия
Программирование на алгоритмическом языке31
Сложные условия
Простые условия (отношения)
<
<=
>
>=
=
равно
<>
не равно
Сложное условие – это условие, состоящее из
нескольких простых условий (отношений),
связанных с помощью логических операций:
• И – одновременное выполнение условий
x >= 25 И x <= 40
• ИЛИ – выполнение хотя бы одного из условий
x <= 25 ИЛИ x >= 40
• НЕ – отрицание, обратное условие
x <=
НЕ (x > 25)
???25
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
32. Сложные условия
Программирование на алгоритмическом языке32
Сложные условия
Порядок выполнения (приоритет = старшинство)
• выражения в скобках
• НЕ
• <, <=, >, >=, =, <>
•И
• ИЛИ
Пример
2
1
6
3
5
4
если не (a > 2) или c <> 5 и b < a то
...
все
К. Поляков, 2010-2011
http://kpolyakov.narod.ru