dorymardyer
Вопрос по информатике:
КУМИР
Ввести три числа, найти их сумму, произведение
Пример
Введите три числа
4 5 7
4+5+7=16
4×5×7=140
также https://znanija.com/task/27028120
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок — бесплатно!
Ответы и объяснения 1
kidai919
Алг Числа
нач
цел a, b, c, s, p
вывод «Введите три числа», нс
ввод a, b, c
s:=a+b+c
p:=a*b*c
вывод a,»+»,b,»+»,c,»=»,s,нс
вывод a,»*»,b,»*»,c,»=»,p,нс
кон
Знаете ответ? Поделитесь им!
Гость ?
Как написать хороший ответ?
Как написать хороший ответ?
Чтобы добавить хороший ответ необходимо:
- Отвечать достоверно на те вопросы, на которые знаете
правильный ответ; - Писать подробно, чтобы ответ был исчерпывающий и не
побуждал на дополнительные вопросы к нему; - Писать без грамматических, орфографических и
пунктуационных ошибок.
Этого делать не стоит:
- Копировать ответы со сторонних ресурсов. Хорошо ценятся
уникальные и личные объяснения; - Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не
знаю» и так далее; - Использовать мат — это неуважительно по отношению к
пользователям; - Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует?
Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие
вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи —
смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.
Все категории
- Фотография и видеосъемка
- Знания
- Другое
- Гороскопы, магия, гадания
- Общество и политика
- Образование
- Путешествия и туризм
- Искусство и культура
- Города и страны
- Строительство и ремонт
- Работа и карьера
- Спорт
- Стиль и красота
- Юридическая консультация
- Компьютеры и интернет
- Товары и услуги
- Темы для взрослых
- Семья и дом
- Животные и растения
- Еда и кулинария
- Здоровье и медицина
- Авто и мото
- Бизнес и финансы
- Философия, непознанное
- Досуг и развлечения
- Знакомства, любовь, отношения
- Наука и техника
6
КУМИР
Ввести три числа, найти их сумму, произведение
Пример
Введите три числа
4 5 7
4+5+7=16
4×5×7=140
также https://znanija.com/task/27028120
1 ответ:
0
0
Алг Числа
нач
цел a, b, c, s, p
вывод «Введите три числа», нс
ввод a, b, c
s:=a+b+c
p:=a*b*c
вывод a,»+»,b,»+»,c,»=»,s,нс
вывод a,»*»,b,»*»,c,»=»,p,нс
кон
Читайте также
-5
5-7
5-
-5
5-7
Понятны обазнаения?
Ответ:
47₁₆
Объяснение:
2D₁₆ + 1A₁₆
Сложение «в столбик». Ведем его в десятичной системе и делаем корректировку на разницу оснований систем т.е. на 16-10=6, если результат превышает 15.
Нужно помнить (или пользоваться таблицей), в соответствии с которой:
А₁₆=10₁₀; B₁₆=11₁₀; C₁₆=12₁₀; D₁₆=13₁₀; E₁₆=14₁₀; F₁₆=15₁₀.
D₁₆+A₁₆ = 13 + 10 = 23. Корректировка: 23 — 6 = 17₁₆ Записываем 7 и +1 в следующий разряд.
2+1+1=4. Тут корректировка не нужна. Результат 47₁₆
2 D
+ 1 A
———
4 7
Var n:integer;
begin
write(‘n = ‘);
readln(n);
if n mod 2 = 0
then n:=3*n else n:=2*n;
writeln(‘n = ‘,n);
end.
Пример:
n = 7
n = 14
Ответ: 56. цикл выполнится 4 раза, а значит «s+14» повторится 4 раза
Const
low=-32768;
high=32767;
Var i, j :integer;
begin
readln(i,j);
if sign(i)*sign(j)<0 then writeln(‘Сложение допустимо, результат ‘,i+j)
else
if i<0 then
if j<low-i then writeln(‘Сложение недопустимо: возникнет переполнение’)
else writeln(‘Сложение допустимо, результат ‘,i+j)
else
if j>high-i then writeln(‘Сложение недопустимо: возникнет переполнение’)
else writeln(‘Сложение допустимо, результат ‘,i+j)
end.
Программирование на алгоритмическом языке (7 класс)
- Введение
- Ветвления
- Сложные условия
- Циклы
- Циклы с переменной
- Графика
- Вспомогательные алгоритмы
- Анимация
- Случайные числа
Программирование на алгоритмическом языке
Тема 1. Введение
Алгоритм
Алгоритм – это четко определенный план решения задачи для исполнителя.
Свойства алгоритма
- дискретность : состоит из отдельных шагов (команд) понятность : должен включать только команды, известные исполнителю конечность : позволяет получить решение задачи за конечное число шагов определенность : при одинаковых исходных данных всегда выдает один и тот же результат массовость : может применяться при различных исходных данных
- дискретность : состоит из отдельных шагов (команд)
- понятность : должен включать только команды, известные исполнителю
- конечность : позволяет получить решение задачи за конечное число шагов
- определенность : при одинаковых исходных данных всегда выдает один и тот же результат
- массовость : может применяться при различных исходных данных
Программа
Программа – это
- алгоритм, записанный на каком-либо языке программирования набор команд для исполнителя
- алгоритм, записанный на каком-либо языке программирования
- набор команд для исполнителя
Команда – это описание действий, которые должен выполнить исполнитель.
- откуда взять исходные данные? что нужно с ними сделать?
- откуда взять исходные данные?
- что нужно с ними сделать?
Простейшая программа
название алгоритма
алг Первый
нач | начало алгоритма
кон | конец алгоритма
комментарии после | не обрабатываются
?
Что делает эта программа ?
5
5
Вывод текста на экран
алг Вывод на экран
нач
вывод «2+»
вывод «2=?» , нс
вывод «Ответ: 4»
кон
новая строка
Протокол :
2+2=?
Ответ: 4
5
Задания
«4»: Вывести на экран текст «лесенкой»
Вася
пошел
гулять
«5»: Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
Переменные
Задача. Ввести с клавиатуры два числа и найти их сумму.
Протокол :
Введите два целых числа
25 30
25+30=55
компьютер
пользователь
компьютер считает сам!
?
- Как ввести числа в память?
- Где хранить введенные числа ?
- Как вычислить?
- Как вывести результат?
8
Программа
алг Сумма
нач
| ввести два числа
| вычислить их сумму
| вывести сумму на экран
кон
Псевдокод – алгоритм на русском языке с элементами языка программирования.
!
Компьютер не может исполнить псевдокод!
9
9
Переменные
Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.
Значение
Другой тип данных
?
Поместится?
!
В переменной хранятся данные определенного типа!
Имя
10
Имена переменных
МОЖНО использовать
- латинские буквы ( A-Z) , русские буквы (А-Я) цифры знак подчеркивания _
- латинские буквы ( A-Z) , русские буквы (А-Я)
- цифры
- знак подчеркивания _
заглавные и строчные буквы различаются
имя не может начинаться с цифры
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B
Объявление переменных
Типы переменных:
- цел | целая вещ | вещественная и другие…
- цел | целая
- вещ | вещественная
- и другие…
выделение места в памяти
Объявление переменных:
тип – целые
список имен переменных
цел a, b, c
Как записать значение в переменную?
Оператор присваивания
!
При записи нового значения старое стирается!
5
a := 5
Оператор – это команда языка программирова-ния (инструкция).
Оператор присваивания – это команда для записи нового значения в переменную.
13
Блок-схема линейного алгоритма
начало
блок «начало»
ввод a , b
блок «ввод»
c := a + b
блок «процесс»
вывод c
блок «вывод»
конец
блок «конец»
Как ввести значение с клавиатуры?
Оператор ввода
5
ввод a
!
- Программа ждет, пока пользователь введет значение и нажмет Enter .
- Введенное значение записывается в переменную a .
15
Ввод значений двух переменных
Ввод значений двух переменных .
ввод a, b
через пробел:
25 30
через запятую:
25,30
a
25
b
30
a
25
b
30
16
Изменение значения переменной
Пример:
алг Тест
нач
цел a, b
a := 5
b := a + 2
a := (a + 2 )*(b – 3 )
b := b + 1
кон
a
5
?
5
b
?
5+2
7
a
7*4
28
5
b
7
7+1
8
Арифметические операции
+ сложение – вычитание
* умножение / деление
- + сложение – вычитание * умножение / деление
цел a, b
- цел a, b
a := 7 * 3 – 4
a := a * 5
- a := 7 * 3 – 4 a := a * 5
Вывод данных
| вывод значения | переменной a
вывод a
| вывод значения | переменной a и переход | на новую строчку
вывод a , нс
| вывод текста
вывод ‘ Привет! ‘
вывод ‘ Ответ: ‘ , c
| вывод текста и значения переменной c
вывод a, ‘+’ , b, ‘=’ , c
Задача: сложение чисел
Задача. Ввести два целых числа и вывести на экран их сумму.
Простое решение:
алг Сумма
нач
цел a, b, c
ввод a, b
c := a + b
вывод c
кон
?
Что плохо?
20
Полное решение
алг Сумма
нач
цел a, b, c
вывод «Введите два целых числа»
ввод a, b
c := a + b
вывод a, «+» , b, «=» , c
кон
подсказка
компьютер
Протокол :
Введите два целых числа
25 30
25+30=55
пользователь
Задания
«3»: Ввести три числа, найти их сумму.
Пример:
Введите три числа:
4 5 7
4+5+7=16
«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 3333
Какие операторы неправильные?
алг Ошибки
нач
цел a, b
вещ x, y
a := 5
10 := x
y := 7 , 8
b := 2.5
x := 2 *(a + y)
a := b + x
кон
имя переменной должно быть слева от знака :=
целая и дробная часть отделяются точкой
нельзя записывать вещественное значение в целую переменную
Арифметические операции
+ сложение – вычитание
* умножение / деление
div деление нацело (остаток отбрасывается)
mod остаток от деления
- + сложение – вычитание * умножение / деление div деление нацело (остаток отбрасывается) mod остаток от деления
цел a, b
- цел a, b
a := 7 * 3 — 4 | 17
a := a * 5 | 85
b := div ( a, 10 ) | 8
a := mod (a, 10 ) | 5
- a := 7 * 3 — 4 | 17 a := a * 5 | 85 b := div ( a, 10 ) | 8 a := mod (a, 10 ) | 5
Порядок выполнения операций
- вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо
- вычисление выражений в скобках
- умножение, деление, div , mod слева направо
- сложение и вычитание слева направо
1 2 4 5 3 6
- 1 2 4 5 3 6
z := ( 5 *a+c)/a*(b-c)/ b
- z := ( 5 *a+c)/a*(b-c)/ b
2 3 5 4 1 10 6 9 8 7
- 2 3 5 4 1 10 6 9 8 7
x:= ( 5 *c*c-d*(a+b))/((c+d)*(d- 2 *a))
- x:= ( 5 *c*c-d*(a+b))/((c+d)*(d- 2 *a))
Ручная прокрутка программы
алг Тест
нач
цел a, b
a := 5
b := a + 2
a := (a + 2 )*(b – 3 )
b := div (a, 5 )
a := mod (a,b)
a := a + 1
b := mod (a+ 14 , 7 )
кон
a
b
?
?
5
7
28
5
3
4
4
Команда «вывод»
цел a = 1, b = 3
вывод a, «+» , b, «=» , a+b
список вывода
- элементы разделяются запятыми элементы в кавычках – выводятся без изменений выражения (элементы без кавычек) вычисляются и выводится их результат
- элементы разделяются запятыми
- элементы в кавычках – выводятся без изменений
- выражения (элементы без кавычек) вычисляются и выводится их результат
?
Что будет выведено?
1+3=4
28
» , b, » !» 4 3! цел a = 1, b = 3 вывод » F( » , b, » ) = X( » , a, » )» F(3) = X(1) » width=»640″
Что будет выведено?
цел a = 1, b = 3
вывод » a +» , b, «= a+b »
a +3= a+b
цел a = 1, b = 3
вывод a , «= F( » , b, » )»
1= F(3)
цел a = 1, b = 3
вывод » a = F( » , b, » );»
a = F(3);
цел a = 1, b = 3
вывод a+b , » » , b, » !»
4 3!
цел a = 1, b = 3
вывод » F( » , b, » ) = X( » , a, » )»
F(3) = X(1)
f( » , b , » ) » f(1)f(3) цел a = 1, b = 3 вывод » » , b , » » 3 цел a = 1, b = 3 вывод a , » + » , b, » =? » 1+3 = ? » width=»640″
Как записать оператор «вывод»?
цел a = 1, b = 3
вывод » X( » , b, » ) =» , a
X(3)=1
цел a = 1, b = 3
вывод a + b, » = » , a , » + » , b
4=1+ 3
цел a = 1, b = 3
вывод » f( » , a , » )f( » , b , » ) »
f(1)f(3)
цел a = 1, b = 3
вывод » » , b , » »
3
цел a = 1, b = 3
вывод a , » + » , b, » =? »
1+3 = ?
Программирование на алгоритмическом языке
Тема 2. Ветвления
Разветвляющиеся алгоритмы
Задача. Ввести два целых числа и вывести на экран наибольшее из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий ( если … иначе … ).
Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.
b? M:= a M:= b вывод M ? Если a = b? конец 33 » width=»640″
Вариант 1. Блок-схема
начало
блок «решение»
ввод a,b
полная форма ветвления
да
нет
a b?
M:= a
M:= b
вывод M
?
Если a = b?
конец
33
b то иначе все вывод «Наибольшее число «, M кон полная форма условного оператора M:=a M:=b 33 » width=»640″
33
Вариант 1. Программа
алг Максимум нач цел a, b, M вывод «Введите два целых числа», нс ввод a, b если a b то иначе все вывод «Наибольшее число «, M кон
полная форма условного оператора
M:=a
M:=b
33
33
Условный оператор
если условие то
| что делать, если условие верно
иначе
| что делать, если условие неверно
все
!
Вторая часть (иначе) может отсутствовать!
35
a? M:= b вывод M конец » width=»640″
Вариант 2 . Блок-схема
начало
ввод a,b
неполная форма ветвления
M:= a
да
нет
b a?
M:= b
вывод M
конец
a то M:= b все вывод «Наибольшее число «, M кон неполная форма условного оператора » width=»640″
Вариант 2. Программа
алг Максимум 2 нач цел a, b, M вывод «Введите два целых числа», нс ввод a, b
M:= a если b a то M:= b все вывод «Наибольшее число «, M кон
неполная форма условного оператора
b M:= a » width=»640″
Вариант 2б. Программа
алг Максимум 2 б нач цел a, b, M вывод «Введите два целых числа», нс ввод a, b
M:= b если ??? то ??? все вывод «Наибольшее число «, M кон
a b
M:= a
Задания
« 3 »: Ввести два числа и вывести их в порядке возрастания.
Пример:
Введите два числа:
15 9
Ответ: 9 15
«4»: Ввести три числа и найти наибольшее из них.
Пример:
Введите три числа:
4 15 9
Наибольшее число 15
Задания
«5»: Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 5 6
Программирование на алгоритмическом языке
Тема 3. Сложные условия
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит» ) .
Особенность: надо проверить, выполняются ли два условия одновременно.
?
Можно ли решить известными методами ?
42
= 25? да нет x “ подходит ” “ не подходит ” “ не подходит ” конец » width=»640″
42
Вариант 1. Алгоритм
начало
ввод x
да
нет
x = 25?
да
нет
x
“ подходит ”
“ не подходит ”
“ не подходит ”
конец
= 25 то если x вывод «Подходит!» иначе вывод «Не подходит.» все иначе вывод «Не подходит.» все кон » width=»640″
Вариант 1. Программа
алг Сотрудник
нач
цел x
вывод «Введите ваш возраст» , нс
ввод x
если x = 25 то
если x
вывод «Подходит!»
иначе
вывод «Не подходит.»
все
иначе
вывод «Не подходит.»
все
кон
= 25 и x нет да “ подходит ” “ не подходит ” » width=»640″
Вариант 2. Алгоритм
начало
ввод x
x = 25 и
x
нет
да
“ подходит ”
“ не подходит ”
= 25 и x вывод «Подходит!» иначе вывод «Не подходит.» все кон сложное условие » width=»640″
Вариант 2 . Программа
алг Сотрудник
нач
цел x
вывод «Введите ваш возраст» , нс
ввод x
если x = 25 и x
вывод «Подходит!»
иначе
вывод «Не подходит.»
все
кон
сложное условие
= = Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций : И – одновременное выполнение условий И – одновременное выполнение условий x = 25 И x x = 25 И x ИЛИ – выполнение хотя бы одного из условий ИЛИ – выполнение хотя бы одного из условий x ИЛИ x = 40 x ИЛИ x = 40 НЕ – отрицание, обратное условие НЕ – отрицание, обратное условие НЕ ( x 25 ) ??? НЕ ( x 25 ) ??? равно не равно x » width=»640″
Сложные условия
Простые условия (отношения)
= =
Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций :
- И – одновременное выполнение условий
- И – одновременное выполнение условий
x = 25 И x
- x = 25 И x
- ИЛИ – выполнение хотя бы одного из условий
- ИЛИ – выполнение хотя бы одного из условий
x ИЛИ x = 40
- x ИЛИ x = 40
- НЕ – отрицание, обратное условие
- НЕ – отрицание, обратное условие
НЕ ( x 25 ) ???
- НЕ ( x 25 ) ???
равно
не равно
x
=, =, И ИЛИ НЕ , =, =, И ИЛИ Пример 2 1 6 3 5 4 если не (a 2 ) или c 5 и b то … все если не (a 2 ) или c 5 и b то … все » width=»640″
Сложные условия
Порядок выполнения (приоритет = старшинство )
- выражения в скобках
- выражения в скобках
- НЕ , =, =, И ИЛИ
- НЕ
- , =, =,
- И
- ИЛИ
Пример
2 1 6 3 5 4
если не (a 2 ) или c 5 и b то
…
все
- если не (a 2 ) или c 5 и b то … все
b) не (a b) a и b a c или b c a и b c a c и b d a и b a c или b c a и b c a c и b d не (a = b) или c = d не (a = b) или c = d a = b или не (c a c или b c или b a a = b или не (c a c или b c или b a Да Да Нет Нет Нет Да Да Да » width=»640″
Сложные условия
Истинно или ложно при a := 2; b := 3; c := 4;
не (a b)
- не (a b)
a и b
a c или b c
a и b c
a c и b d
- a и b a c или b c a и b c a c и b d
не (a = b) или c = d
- не (a = b) или c = d
a = b или не (c
a c или b c или b a
- a = b или не (c a c или b c или b a
Да
Да
Нет
Нет
Нет
Да
Да
Да
10 x 6 и x x 6 и x 10 x или x x или x 10 x 6 или x x 6 или x 10 x и x x и x 10 x 6 и x x 6 и x 10 x или x x или x 10 x 6 или x x 6 или x 10 x нет таких 6 x 10 x все x x 6 » width=»640″
Сложные условия
Для каких значений x истинны условия:
x и x
x и x 10
x 6 и x
x 6 и x 10
x или x
x или x 10
x 6 или x
x 6 или x 10
- x и x x и x 10 x 6 и x x 6 и x 10 x или x x или x 10 x 6 или x x 6 или x 10
x
нет таких
6
x 10
x
все x
x 6
Задания
«3»: Ввести три числа и определить, верно ли, что они вводились в порядке возрастания.
Пример:
Введите три числа:
4 5 17
да
«4»: Ввести номер месяца и вывести название времени года.
Пример:
Введите номер месяца:
4
весна
Задания
«5»: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет».
Пример:
Введите возраст: Введите возраст:
24 57
Вам 24 года Вам 57 лет
Программирование на алгоритмическом языке
Тема 4. Циклы
Циклы
Цикл – это многократное выполнение одинаковых действий.
- цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)
- цикл с известным числом шагов
- цикл с неизвестным числом шагов (цикл с условием)
Задача. Вывести на экран 5 раз слово «Привет».
Особенность: одинаковые действия выполняются 5 раз.
?
Можно ли решить известными методами ?
54
Циклы
алг Привет
нач
вывод «Привет» , нс
вывод «Привет» , нс
вывод «Привет» , нс
вывод «Привет» , нс
вывод «Привет» , нс
кон
?
Что плохо ?
55
Циклы
алг Привет
нач
нц 5 раз
вывод «Привет!» , нс
кц
кон
тело цикла
начало цикла
вывод «Привет!» , нс
конец цикла
?
Как выглядит блок-схема ?
56
Циклы
Блок-схема:
начало
да
конец
нет
тело цикла
Число шагов – переменная
Задача: ввести количество повторения с клавиатуры.
алг Привет
нач
цел N
вывод «Сколько раз?» , нс
ввод N
нц N раз
вывод «Привет!» , нс
кц
кон
Задания
«3»: Ввести натуральное число и вывести в строчку все числа от 1 до этого числа.
Пример:
Введите натуральное число:
4
Ответ: 1 2 3 4
«4»: Ввести два целых числа, найти их произведение, не используя операцию умножения.
Пример:
Введите два числа:
4 15
4*15=60
Задания
«5»: Ввести натуральное число N и найти сумму всех чисел от 1 до N ( 1+2+3+…+ N ).
Пример:
Введите число слагаемых:
100
Сумма чисел от 1 до 100 равна 5050
Циклы
алг Привет
нач
нц 5 раз
вывод «Привет!» , нс
кц
кон
?
Как отсчитать ровно 5 раз ?
?
Как запоминать, сколько раз уже сделали ?
N := N + 1
61
61
Блок-схема алгоритма
начало
еще не сделали ни одного раза
N := 0
проверить, все ли сделали
N = 5 ?
да
конец
цикл
нет
N := N + 1
считаем очередной шаг
61
Цикл с условием
алг Привет 2
нач
цел N
N:= 0
нц пока N 5
вывод «Привет!» , нс
N:= N + 1
кц
кон
Цикл с условием
Вместо знаков вопроса добавьте числа и операторы так, чтобы цикл выполнился ровно 5 раз:
алг Привет 3
нач
цел N
N: = 5
нц пока N ???
вывод «Привет!» , нс
???
кц
кон
0
N:= N — 1
Что получим?
алг Пример 1
нач
цел N
N:= 1
нц пока N
вывод N , нс
N:= N + 1
кц
кон
1
2
3
4
5
Что получим?
алг Пример 2
нач
цел N
N:= 1
нц пока N
вывод N , нс
N:= N + 2
кц
кон
1
3
5
Что получим?
алг Пример 3
нач
цел N
N:= 2
нц пока N 5
вывод N , нс
N:= N + 2
кц
кон
2
4
6
8
10
12
14
16
…
!
Условие цикла никогда не станет ложным – это зацикливание !
67
Что получим?
алг Пример 4
нач
цел N
N:= 1
нц пока N
вывод N * N*N , нс
N:= N + 1
кц
кон
1
8
27
64
125
= 1 вывод N * N*N , нс N:= N — 1 кц кон 1 25 64 27 8 1 » width=»640″
Что получим?
алг Пример 5
нач
цел N
N:= 5
нц пока N = 1
вывод N * N*N , нс
N:= N — 1
кц
кон
1 25
64
27
8
1
Задания
«3»: Ввести натуральное число вывести квадраты и кубы всех чисел от 1 до этого числа.
Пример:
Введите натуральное число:
3
1: 1 1
2: 4 8
3: 9 27
«4»: Ввести два целых числа a и b ( a ≤ b ) и вывести квадраты все чисел от a до b .
Пример:
Введите два числа:
4 5
4*4=16
5*5=25
Задания
«5»: Ввести два целых числа a и b ( a ≤ b ) и вывести сумму квадратов всех чисел от a до b .
Пример:
Введите два числа:
4 10
Сумма квадратов 371
Циклы с условием
Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?
Задача: Ввести целое число (
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.
Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0 , т.е. надо делать «пока n 0 » .
n
123
count
12
0
1
1
0
2
3
Блок-схема алгоритма
начало
обнулить счетчик цифр
ввод n
count := 0
выполнять «пока n 0 »
n 0 ?
нет
да
вывод count
count := count + 1
n := div(n, 10 )
конец
Программа
алг Число цифр
нач
цел n, count
вывод «Введите целое число» , нс
ввод n
count : = 0
вывод «В числе » , n, » нашли » , c ount , » цифр»
кон
, n1
; n1:= n
нц пока n 0
count:= count + 1
n:= div (n, 10 )
кц
n1,
?
Что плохо ?
74
Цикл с условием
Особенности:
- можно использовать сложные условия: можно записывать в одну строчку, разделяя команды точкой с запятой:
- можно использовать сложные условия:
- можно записывать в одну строчку, разделяя команды точкой с запятой:
нц пока a 5
a:= a + 5 ; b:= b — 2
кц
a 5
нц пока a
;
75
b ; a:= a – b кц a:= 4 ; b:= 6 нц пока a » width=»640″
Цикл с условием
Особенности:
- условие пересчитывается при каждом входе в цикл если условие на входе в цикл ложно, цикл не выполняется ни разу если условие никогда не станет ложным, программа зацикливается
- условие пересчитывается при каждом входе в цикл
- если условие на входе в цикл ложно, цикл не выполняется ни разу
- если условие никогда не станет ложным, программа зацикливается
a := 4 ; b := 6
нц пока a b ; a:= a – b кц
a:= 4 ; b:= 6
нц пока a
b ; a:= a + 1 кц 1 раз b = -2 a:= 4 ; b:= 6 нц пока a зацикливание a:= 4 ; b:= 6 нц пока a » width=»640″
Сколько раз выполняется цикл ?
2 раза
a = 6
a:= 4 ; b:= 6
нц пока a
1 раз
a = 10
a:= 4 ; b:= 6
нц пока a
0 раз
a = 4
a:= 4 ; b:= 6
нц пока a b ; a:= a + 1 кц
1 раз
b = -2
a:= 4 ; b:= 6
нц пока a
зацикливание
a:= 4 ; b:= 6
нц пока a
Задания
«3»: Ввести целое число и определить, верно ли, что в нём ровно 3 цифры.
Пример:
Введите число: Введите число:
123 1234
Да. Нет.
«4»: Ввести целое число и найти сумму его цифр.
Пример:
Введите целое число:
1234
Сумма цифр числа 1234 равна 10.
Задания
«5»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры , стоящие рядом .
Пример:
Введите целое число: Введите целое число:
1232 1224
Нет. Да.
«6»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры , НЕ обязательно стоящие рядом.
Пример:
Введите целое число: Введите целое число:
1234 1242
Нет. Да.
Задания -2
«3»: Ввести целое число и определить, верно ли, что в нём ровно 1 цифра «9».
Пример:
Введите число: Введите число:
193 1994
Да. Нет.
«4»: Ввести целое число и определить, верно ли, что все его цифры четные.
Пример:
Введите число: Введите число:
2684 2994
Да. Нет.
Задания -2
«5»: Ввести целое число и определить, верно ли, что все его цифры расположены в порядке возрастания.
Пример:
Введите целое число: Введите целое число:
1238 1274
Да. Нет.
«6»: Ввести целое число и «перевернуть» его, так чтобы первая цифра стала последней и т.д.
Пример:
Введите целое число: Введите целое число:
1234 782
4321 287
Вычисление НОД
НОД = наибольший общий делитель двух натуральных чисел – это наибольшее число, на которое оба исходных числа делятся без остатка.
Перебор:
- Записать в переменную k минимальное из двух чисел.
- Если a и b без остатка делятся на k , то стоп.
- Уменьшить k на 1.
- Перейти к шагу 2.
это цикл с условием!
?
Где будет НОД?
?
Почему алгоритм обязательно закончится?
82
Алгоритм Евклида
Надо : вычислить наибольший общий делитель (НОД) чисел a и b .
Заменяем большее из двух чисел разностью большего и меньшего до тех пор, пока они не станут равны. Это и есть НОД.
НОД( a,b)= НОД( a-b, b)
= НОД( a, b-a)
Евклид
(365-300 до. н. э.)
Пример:
НОД (14 , 21 ) = НОД (14 , 21-14 ) = НОД (14 , 7 )
= НОД (7 , 7 ) = 7
много шагов при большой разнице чисел:
НОД (1998 , 2 ) = НОД (1996 , 2 ) = … = 2
b? нет да b:=b-a a:=a-b » width=»640″
Блок-схема алгоритма
начало
a = b?
да
нет
конец
a b?
нет
да
b:=b-a
a:=a-b
b то a:= a — b иначе b:= b — a все кц ? Где будет НОД? Как его вывести? ? Как вывести НОД в формате НОД(14,21) = 7? ? А без дополнительных переменных? 85 » width=»640″
Алгоритм Евклида
нц пока a b
если a b
то a:= a — b
иначе b:= b — a
все
кц
?
Где будет НОД? Как его вывести?
?
Как вывести НОД в формате НОД(14,21) = 7?
?
А без дополнительных переменных?
85
Модифицированный алгоритм Евклида
Заменяем большее из двух чисел остатком от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Тогда большее — это НОД.
НОД( a,b)= НОД( mod (a,b), b)
= НОД( a, mod (b,a))
Пример:
НОД (14 , 21 ) = НОД (14 , 7 ) = НОД (0 , 7 ) = 7
Еще один вариант:
НОД( 2 · a,2 · b)= 2 · НОД( a, b)
НОД( 2 · a,b)= НОД( a, b) | при нечетном b
Алгоритм Евклида
«3» : Составить программу для вычисления НОД с помощью алгоритма Евклида.
« 4 » : Составить программу для вычисления НОД с помощью модифицированного алгоритма Евклида и заполнить таблицу:
a
b
64168
НОД( a,b )
358853
82678
6365133
691042
11494962
17905514
23108855
549868978
298294835
Алгоритм Евклида
«5» : Выполнить задание на «4» и подсчитать число шагов алгоритма для каждого случая.
a
64168
b
82678
358853
НОД( a,b )
691042
шагов
6365133
11494962
17905514
23108855
549868978
298294835
Программирование на алгоритмическом языке
Тема 5. Циклы с переменной
Цикл с переменной
Задача: вывести кубы чисел от 1 до 8.
?
Можно ли решить известными способами ?
- Нужны ли переменные? Сколько?
- Как они должны изменяться?
- Нужен ли цикл?
90
Блок-схема алгоритма
начало
N := 1
N
нет
конец
да
куб N := N*N*N
вывод куб N
N := N + 1
91
Цикл с переменной
Задача: вывести кубы натуральных чисел от 1 до 8.
алг Кубы
нач
цел N, куб N
N:= 1
нц пока N
куб N:= N*N*N
вывод куб N, нс
N:= N + 1
кц
кон
3 действия с N
N:= 1
N
N:= N + 1
Цикл с переменной
Задача: вывести кубы натуральных чисел от 1 до 8.
алг Кубы
нач
цел N, куб N
кон
для 1,2,3,…,8
нц для N от 1 до 8
куб N:= N*N*N
вывод куб N, нс
кц
?
Как обойтись без переменной куб N ?
93
Цикл с переменной
Задача: вывести кубы чётных чисел от 2 до 8.
алг Кубы
нач
цел N, куб N
кон
для 2,4,6,8
нц для N от 2 до 8 шаг 2
куб N:= N*N*N
вывод куб N, нс
кц
только целые !
94
Сколько раз выполняется цикл?
a := 1
нц для i от 1 до 3 ; a:=a+ 1 кц
a = 4
a := 1
нц для i от 3 до 1 ; a:=a+ 1 кц
a = 1
a = 1
a := 1
нц для i от 1 до 3 шаг -1 ; a:=a+ 1 кц
a = 4
a := 1
нц для i от 3 до 1 шаг -1 ; a:=a+ 1 кц
0 и конечное значение начального, цикл не выполняется ни разу переменная цикла может быть только целой ( цел ) начальное и конечное значения и шаг – целые можно записывать в одну строчку, разделяя команды точкой с запятой: если шаг 0 и конечное значение если шаг начального, цикл не выполняется ни разу нц для n от 1 до 4 вывод n кц ; 96 » width=»640″
Цикл с переменной
Особенности:
- переменная цикла может быть только целой ( цел ) начальное и конечное значения и шаг – целые можно записывать в одну строчку, разделяя команды точкой с запятой: если шаг 0 и конечное значение начального, цикл не выполняется ни разу
- переменная цикла может быть только целой ( цел )
- начальное и конечное значения и шаг – целые
- можно записывать в одну строчку, разделяя команды точкой с запятой:
- если шаг 0 и конечное значение
- если шаг начального, цикл не выполняется ни разу
нц для n от 1 до 4 вывод n кц
;
96
= b | тело цикла i:= i — 1 кц нц для i от a до b шаг -1 | тело цикла кц Замена цикла для на пока возможна всегда . Замена пока на для возможна только тогда, когда можно заранее вычислить число шагов цикла. » width=»640″
Замена одного вида цикла на другой
i:= 1
нц пока i
| тело цикла
i:= i + 1
кц
нц для i от 1 до 10
| тело цикла
кц
i:= a
нц пока i = b
| тело цикла
i:= i — 1
кц
нц для i от a до b шаг -1
| тело цикла
кц
Замена цикла для на пока возможна всегда .
Замена пока на для возможна только тогда, когда можно заранее вычислить число шагов цикла.
Задания
«3»: Ввести натуральное число N и вывести числа от N до 1 (через одно) в порядке убывания.
Пример:
Введите натуральное число:
8
Ответ: 8 6 4 2
Задания
«4»: Ввести два целых числа a и b ( a ≤ b ) и вывести кубы всех чисел от a до b .
Пример:
Введите два числа:
4 6
4*4*4=64
5*5*5=125
6*6*6=216
«5»: Ввести целое число a и вывести сумму квадратов всех чисел от 1 до a с шагом 0.1 .
Пример:
Введите последнее число:
3
Сумма 91.7
1 2 + 1.1 2 + 1.2 2 + … + a 2
Задания-2
«4»: Ввести a и b и вывести квадраты и кубы чисел от a до b .
Пример:
Введите границы интервала:
4 6
4 : 16 64
5 : 25 125
6 : 36 216
«5»: Вывести квадраты и кубы 10 чисел следующей последовательности: 1, 2, 4, 7, 11, 16, …
Пример:
1: 1 1
2: 4 8
4: 16 64
…
46: 2116 97336
Программирование на алгоритмическом языке
Тема 6. Графика
Система координат
X
(0,0)
y
( x , y )
x
Y
Исполнитель Рисователь
использовать Рисователь
алг
нач
| текст программы
кон
Линии
Цвет и толщина линий:
черный
белый
серый
фиолетовый
синий
голубой
зеленый
желтый
оранжевый
красный
толщина линии
перо ( 2 , «синий» )
(10, 15)
перо ( 1 , «зеленый» ) линия ( 10 , 1 5 , 90 , 80 )
(90, 80)
(5,5)
перо ( 1 , «красный“ )
в точку ( 5 , 5 )
линия в точку ( 50 , 5 )
линия в точку ( 70 , 50 )
линия в точку ( 30 , 80 )
линия в точку ( 5 , 60 )
(50,5)
(70, 50)
(5,60 )
(30,80)
104
104
Фигуры с заливкой
(0,0)
перо ( 1 , «синий» )
кисть ( «желтый» )
прямоугольник ( 0 , 0 , 80 , 40 )
(80, 40)
(0,0)
перо ( 1 , «красный» )
кисть ( «зеленый» )
эллипс ( 0 , 0 , 100 , 50 )
(100, 50)
?
кисть ( «» ) ; | отменить заливку
Как построить круг?
(70, 80)
кисть ( «фиолетовый» )
залить ( 70 , 80 )
105
105
Пример
использовать Рисователь
алг Домик
нач
перо ( 2 , «фиолетовый» )
кисть ( «синий» )
прямоугольник ( 100 , 100 , 300 , 200 )
в точку ( 100 , 100 )
линия в точку ( 200 , 50 )
линия в точку ( 300 , 100 )
кисть ( «желтый» )
залить ( 200 , 75 );
перо ( 2 , «белый» );
кисть ( «зеленый» );
эллипс ( 150 , 100 , 250 , 200 );
кон
(200, 50)
(100, 100)
(300, 200)
105
Задания
«3»: «Домик»
«4»: «Лягушка»
107
Задания
«5»: «Корона»
108
Штриховка
N линий ( N=5)
( x 1 , y 1 )
x
y 1
y 2
h
( x 2 , y 2 )
прямоугольник (x1, y1, x2, y2)
x:= x1 + h
линия (x, y1, x, y2)
x:= x + h
линия (x, y1, x, y2)
x:= x + h
…
цикл N раз
Штриховка (программа)
N
( x 1 , y 1 )
использовать Рисователь
алг Штриховка
нач
цел N = 5 | число линий
цел x1 = 100 , x2 = 300
цел y1 = 100 , y2 = 200
вещ h, x
h:=(x2 — x1)/(N + 1 )
прямоугольник ( x1, y1, x2, y2)
x:= x1 + h
нц N раз
линия ( int (x), y1, int (x), y2)
x:= x + h
кц
кон
вещ h, x
h
( x 2 , y 2 )
?
Почему?
целая часть
110
110
Штриховка
x 1
( x 1 , y 1 )
h x
( x , y )
h y
x:= x1 + hx ; y:= y1 + hy
линия (x1, int (y), int (x), int (y))
x:= x + hx; y:= y + hy
линия (x1, int (y), int (x), int (y))
x:= x + hx; y:= y + hy
…
( x 2 , y 2 )
цикл N раз
111
111
Штриховка
вещ hx, hy, x, y
hx:=(x2 — x1)/(N + 1 )
hy:=(y2 — y1)/(N + 1 )
в точку ( x1, y1)
линия в точку ( x1, y2)
линия в точку ( x2, y2)
линия в точку ( x1, y1)
x:= x1 + hx ; y:= y1 + hy
нц N раз
линия ( x1, int (y), int (x), int (y))
x:= x + hx
y:= y + hy
кц
( x 1 , y 1 )
h x
h y
( x 2 , y 2 )
Задания
« 3 »: Ввести с клавиатуры количество линий , построить фигуру и выполнить штриховку :
«4»: Ввести с клавиатуры количество линий , построить фигуру и выполнить штриховку :
или
113
113
Задания
«5»: Ввести с клавиатуры количество линий и построить фигуру:
Программирование на алгоритмическом языке
Тема 7. Вспомогательные алгоритмы
Задача
?
Можно ли решить известными методами ?
Особенность: три похожие фигуры.
общее : размеры, угол поворота
отличия : координаты, цвет
- общее : размеры, угол поворота отличия : координаты, цвет
?
Сколько координат надо задать ?
116
С чего начать?
- найти похожие действия (три фигуры) найти общее (размеры, форма, угол поворота) и отличия (координаты, цвет) отличия = параметры алгоритма (доп. данные)
- найти похожие действия (три фигуры)
- найти общее (размеры, форма, угол поворота) и отличия (координаты, цвет)
- отличия = параметры алгоритма (доп. данные)
цепочка символов
использовать Рисователь
алг Тр ( цел x, y, лит цвет)
нач
в точку (x, y)
линия в точку (x, y- 60 )
линия в точку (x+ 100 , y)
линия в точку (x, y)
кисть (цвет)
залить (x+ 20 , y- 20 )
кон
( x , y -60)
параметры
60
( x , y )
100
( x +100, y )
Если запустить?
(50,100)
Как использовать?
использовать Рисователь
алг Треугольники
нач
перо ( 1 , «черный» )
Тр ( 100 , 100 , «синий» )
Тр ( 200 , 100 , «зеленый» )
Тр ( 200 , 160 , «красный» )
кон
основной
алгоритм
60
( 100 , 100 )
100
вызовы алгоритма
алг Тр ( цел x, y, лит цвет)
нач
…
кон
вспомогательный
алгоритм
119
Вспомогательные алгоритмы
- расположены ниже основного в заголовке перечисляются формальные параметры, они обозначаются именами для каждого параметра указывают тип однотипные параметры перечисляются через запятую при вызове в скобках указывают фактические параметры в том же порядке
- расположены ниже основного
- в заголовке перечисляются формальные параметры, они обозначаются именами
- для каждого параметра указывают тип
- однотипные параметры перечисляются через запятую
- при вызове в скобках указывают фактические параметры в том же порядке
алг Тр ( цел x, y, лит цвет)
Тр ( 200 , 100 , «зеленый» )
x
цвет
y
Задания
« 3 »: Используя одну процедуру, построить фигуру.
« 4 »: Используя одну процедуру, построить фигуру.
121
Задания
«5»: Используя одну процедуру, построить фигуру.
122
Рекурсивные объекты
Сказка о поп é и собаке:
Примеры:
У попа была собака, он ее любил.
Она съела кусок мяса, он ее убил.
В ямку закопал, надпись написал:
- У попа была собака, он ее любил. Она съела кусок мяса, он ее убил. В ямку закопал, надпись написал:
Сказка о поп é и собаке
- Сказка о поп é и собаке
Рисунок с рекурсией:
Факториал:
если
если
Рекурсивный объект – это объект, определяемый через один или несколько таких же объектов.
123
Рекурсивная фигура
3 уровня:
?
Где рекурсия?
Фигура из N уровней – это
- окружность и
- 4 фигуры из N-1 уровней
N-1
N-1
N-1
N-1
Рекурсивная фигура: алгоритм
центр
радиус
уровней
( x , y-R )
алг РекОк ( цел x, y, R, N )
нач
если N
окружность (x, y, R)
РекОк (x, y-R, div (R, 2 ), N — 1 )
РекОк (x+R, y, div (R, 2 ), N — 1 )
РекОк (x, y+R, div (R, 2 ), N — 1 )
РекОк (x-R, y, div (R, 2 ), N — 1 )
кон
( x , y )
( x+R , y )
окончание рекурсии
( x-R , y )
( x , y+R )
рекурсивные вызовы
Рекурсивный алгоритм – это алгоритм, который вызывает сам себя (с другими параметрами!).
Рекурсивная фигура: программа
использовать Рисователь
алг Рекурсия
нач
РекОк (200, 200, 100, 3)
кон
алг РекОк ( цел x, y, R, N )
нач
…
кон
Рекурсивные алгоритмы
- вызывают сами себя прямо … или через другой алгоритм: должно быть условие окончания рекурсии (иначе?) рекурсия может стать бесконечной все задачи могут быть решены без рекурсии, но… часто рекурсивные алгоритмы проще и понятнее как правило, алгоритмы без рекурсии работают быстрее и требуют меньше памяти
- вызывают сами себя прямо
- … или через другой алгоритм:
- должно быть условие окончания рекурсии (иначе?)
- рекурсия может стать бесконечной
- все задачи могут быть решены без рекурсии, но…
- часто рекурсивные алгоритмы проще и понятнее
- как правило, алгоритмы без рекурсии работают быстрее и требуют меньше памяти
A
прямая рекурсия
A
B
косвенная рекурсия
Задания
« 3 » : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры:
« 4 » : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры:
128
Задания
«5» : Нарисовать рекурсивную фигуру, число уровней вводить с клавиатуры:
129
Программирование на алгоритмическом языке
Тема 8 . Анимация
Анимация
Анимация (англ. animation ) – оживление изображения на экране.
Задача : внутри синего квадрата 200 на 200 пикселей слева направо двигается желтый квадрат 20 на 20 пикселей. Программа останавливается, если нажата клавиша Esc или квадрат дошел до границы синей области.
Проблема : как изобразить перемещение объекта на экране?
Привязка: состояние объекта задается координатами ( x,y)
Принцип анимации:
- рисуем объект в точке ( x,y) задержка на несколько миллисекунд стираем объект изменяем координаты ( x,y) переходим к шагу 1
- рисуем объект в точке ( x,y)
- задержка на несколько миллисекунд
- стираем объект
- изменяем координаты ( x,y)
- переходим к шагу 1
131
Процедура (рисование и стирание)
- одна процедура рисует и стирает стереть = рисовать цветом фона границу квадрата отключить
- одна процедура рисует и стирает
- стереть = рисовать цветом фона
- границу квадрата отключить
( x , y )
( x +20, y +20)
рисуем: цвет кисти – желтый
стираем: цвет кисти – синий
алг Фигура ( цел x, y, лит цвет)
нач
кисть (цвет)
прямоугольник (x,y,x+ 20 ,y+ 20 )
кон
Полная программа
использовать Рисователь
алг Анимация
нач
цел x, y | текущие координаты
кисть ( «синий» )
перо (1, «» ) | отключить контур
прямоугольник ( 0 , 0 , 200 , 200 ) | синий фон
x:= 0 ; y:= 100 | начальные координаты
кон
нц пока x
Фигура (x, y, «желтый» )
delay (50)
Фигура (x, y, «синий» )
x:= x + 5
кц
пока не дошли до границы
алг Фигура ( цел x, y, лит цвет)
нач
…
кон
Задания
«3»: Квадрат двигается справа налево:
«4»: Два квадрата двигаются в противоположных направлениях:
134
Задания
«5»: Два квадрата двигаются в противоположных направлениях и отталкиваются от стенок синего квадрата:
Управление клавишами
Задача : жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш:
влево – 16777234 вверх – 16777235
вправо – 16777236 вниз – 16777237
Проблема : как изменять направление движения?
Решение :
ждать нажатия на клавишу, записать ее код в переменную c
c:= клав
выбор
при c = 16777234 : x:= x – 5 | влево
при c = 16777235 : y:= y – 5 | вверх
при c = 16777236 : x:= x + 5 | вправо
при c = 16777237 : y:= y + 5 | вниз
все
?
Когда стирать фигуру?
136
Программа
использовать Рисователь
алг Управление клавишами
нач
цел x, y, c
| нарисовать синий квадрат
x:= 100; y:= 100 | начальная точка
нц пока x
Фигура (x, y, «желтый» ) | рисуем фигуру
c:= клав | ждем нажатия клавиши
Фигура (x, y, «синий» ) | стираем фигуру
выбор
при c = 16777234 : x:= x — 5
при c = 16777235 : y:= y — 5
при c = 16777236 : x:= x + 5
при c = 16777237 : y:= y + 5
все
кц
кон
Задания
« 3 »: Квадрат в самом начале стоит в правом нижнем углу, и двигается при нажатии стрелок только вверх или влево:
«4»: Квадрат двигается при нажатии стрелок, однако не может выйти за границы синего квадрата:
138
Задания
« 5 »: Два квадрата, один управляется стрелками, второй – любыми другими клавишами. Оба не могут выйти за границы синего поля.
139
Программирование на алгоритмическом языке
Тема 9 . Случайные числа
Случайность и ее моделирование
Случайно…
Случайный выбор:
- встретить друга на улице
- разбить тарелку
- найти 10 рублей
- выиграть в лотерею
- жеребьевка на соревнованиях
- выигравшие номера в лотерее
Как получить случайность?
142
Случайные числа на компьютере
Электронный генератор
- нужно специальное устройство
- нельзя воспроизвести результаты
Псевдослучайные числа – обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле.
Метод середины квадрата (Дж. фон Нейман)
в квадрате
564321
- малый период (последовательность повторяется через 10 6 чисел)
458191
318458191041
209938992481
938992
142
143
Распределение случайных чисел
Модель : снежинки падают на отрезок [a,b]
распределение
равномерное
неравномерное
a
a
b
b
?
Сколько может быть разных распределений ?
143
144
Распределение случайных чисел
Особенности :
- распределение – это характеристика всей последовательности , а не одного числа равномерное распределение одно, компьютерные датчики случайных чисел дают равномерное распределение неравномерных – много любое неравномерное можно получить с помощью равномерного
- распределение – это характеристика всей последовательности , а не одного числа
- равномерное распределение одно, компьютерные датчики случайных чисел дают равномерное распределение
- неравномерных – много
- любое неравномерное можно получить с помощью равномерного
a
a
b
b
144
Генератор случайных чисел
Вещественные числа в интервале [0, 10 ) :
вещ X, Y
X:= r a nd ( 0 , 1 0 ) | интервал от 0 до 10 (
Y:= r a nd ( 0 , 1 0 ) | это уже другое число!
англ. random – случайный
Целые числа в интервале [0,10] :
цел K , L
K:= ira nd ( 0 , 1 0 ) | интервал от 0 до 10 (
L := ira nd ( 0 , 1 0 ) | это уже другое число!
англ. i nteger – целый
Случайные числа
Задача : заполнить прямоугольник 200 на 150 пикселей равномерно точками случайного цвета
Как получить случайные координаты пикселя?
Как добиться равномерности?
автоматически при использовании irand
цел X, Y
X:= ira nd ( 0 , 200 )
Y:= ir a nd ( 0 , 1 5 0 )
Цвет пикселя на мониторе
!
Красный, зелёный и синий лучи создают почти такое же ощущение, как луч «смешанного» цвета!
red : R
green : G
blue : B
Вывод: цвет можно разложить на составляющие (каждая кодируется числом от 0 до 255).
Модель RGB :
R G B
RGB( 255 ,0, 255 )
RGB(0,0,0)
RGB( 255 , 255 , 255 )
RGB( 255 , 255 ,0)
RGB( 255 ,0,0)
RGB( 0 , 255 , 255 )
RGB(0, 255 ,0)
RGB(0,0, 255 )
RGB( 10 0, 10 0, 10 0)
Случайный цвет пикселя
Случайные составляющие цвета:
цел r , g, b
r:= ira nd ( 0 , 255 )
g:= ir a nd ( 0 , 255 )
b:= ir a nd ( 0 , 255 )
это разные числа!
Управление цветом пикселя:
случайный цвет
пиксель ( X , Y, RGB (r,g,b) )
встроенные функции Рисователя
Программа
использовать Рисователь
алг Случайные точки
нач
цел x, y, r, g, b
нц пока да
x:= irand ( 0 , 200 )
y:= irand ( 0 , 100 )
r:= irand ( 0 , 255 )
g:= irand ( 0 , 255 )
b:= irand ( 0 , 255 )
пиксель ( x,y, RGB (r,g,b))
кц
кон
это бесконечный цикл:
нц пока да
…
кц
Задания
«3»: Заполнить квадрат точками случайного цвета. размер квадрата ввести с клавиатуры:
Пример:
Введите размер квадрата:
150
«4»: Заполнить область точками случайного цвета:
Задания
«5»: Заполнить область точками случайного цвета:
или
Конец фильма
ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики высшей категории ,
ГОУ СОШ № 163, г. Санкт-Петербург
[email protected]
Преподаватель
информатики и информационно-коммуникационных технологий
ФГКОУ
«Санкт-Петербургский кадетский военный корпус Министерства Обороны Российской
Федерации»
ЮДИНА
Мария Сергеевна
«разноуровневые задания различных алгоритмических
конструкций в среде Кумир»
Понятие алгоритма является важной основой всего курса
информатики. Умение грамотно составлять алгоритмы для различных исполнителей,
правильно определять порядок действий, который должен приводить к определенным
результатам, является необходимым условием для успешной сдачи как ОГЭ, так и
ЕГЭ по информатике.
Кроме того, основные предметные результаты диктует
Федеральный государственный образовательный стандарт основного общего
образования (ФГОС ООО):
·
формирование
представления об основных изучаемых понятиях: информация, алгоритм, модель – и
их свойствах;
·
развитие
алгоритмического мышления, необходимого для профессиональной деятельности в
современном обществе; развитие умений составить и записать алгоритм для
конкретного исполнителя; формирование знаний об алгоритмических конструкциях,
логических значениях и операциях; знакомство с одним из языков программирования
и основными алгоритмическими структурами — линейной, условной и циклической;
В статье представлены разноуровневые индивидуальные
задания, выполняемые на компьютерах. Разработанные задания можно использовать и
на других исполнителях и средах, преобразовав исходный программный код.
Тема
урока «Алгоритмические конструкции»
Тип
урока: Урок усвоения новых
знаний
Цель
урока:
Обучающая расширить
представления учащихся об алгоритмических конструкциях, познакомить с языком
программирования Кумир.
Развивающая —
развитие логического и алгоритмического мышления школьников, приемов
умственной деятельности, развитие познавательных потребностей учащихся.
Воспитательная – побудить
интерес к изучению информатики, формирование творческого
воображения и умения решать нестандартные задачи.
Главные
результаты
Предметные:
Будут иметь
представления об алгоритмах и способах записи алгоритмов с помощью языка программирования
Метапредметные:
Углубление
понимания
смысла понятия «алгоритм и широты
сферы его применения; понимание ограничений, накладываемых средой исполнителя и системой команд на круг задач, решаемых исполнителем;
Личностные
:
Будут
иметь понимание о алгоритмическом мышлении,
необходимом для профессиональной деятельности в современном обществе.
Задания
для самостоятельного выполнения на компьютере
1.Вывести на экран
Школьник быть хорошо –
а кадетом
лучше
2.Ввести три числа, найти их сумму.
3.Ввести три числа, найти их сумму и
произведение.
4.Ввести три числа, найти их сумму,
произведение и среднее арифметическое.
Задание
на «3»
Выполнить
задания 1 и 2
Задание
на «4»
Выполнить
задания 1, 2 и 3
Задание
на «5»
Выполнить
задания 1, 2, 3 и 4
Тема
урока «Конструирование алгоритмов следования»
Тип
урока: Урок усвоения новых
знаний
Цель
урока:
Обучающая расширить
представления учащихся об аалгоритмической конструкции «следование»..
Развивающая —
развитие логического и алгоритмического мышления школьников, приемов
умственной деятельности, развитие познавательных потребностей учащихся.
Воспитательная – побудить
интерес к изучению информатики, формирование творческого
воображения и умения решать нестандартные задачи.
Главные
результаты
Предметные:
Будут иметь
представления об аалгоритмической конструкции «следование».
Будут уметь исполнять линейный алгоритм для формального исполнителя с заданной системой команд.
Будут уметь составлять простые (короткие) линейные алгоритмы для формального исполнителя с заданной
системой команд;
Метапредметные:
Углубление
понимания
смысла понятия ограниченности возможностей линейных алгоритмов. Углубление умения выделять линейные алгоритмы в различных процессах
Личностные
:
Будут
иметь понимание о алгоритмическом мышлении,
необходимом для профессиональной деятельности в современном обществе.
Задания
для самостоятельно выполнения на компьютере
Задание
на оценку «3»
1.
Вывести
на экран текст «лесенкой»
Школьникам
хорошо –
а кадетам
лучше
2.
Набрать
и протестировать программу в КУМИРе
Ввести три числа,
найти их сумму.
алг Сумма
нач
цел a, b, c, d
вывод
«Введите три целых числа»
ввод a, b, d
c := a + b+d
вывод a, «+»,
b,”+”,d, «=», c
кон
3.
Набрать
и протестировать программу в КУМИРе
Ввести три числа,
найти их произведение.
алг Сумма
нач
цел a, b, d, f
вывод
«Введите три целых числа»
ввод a, b, d
f := a * b*d
вывод a, «*»,
b,”*”,d, «=», f
кон
Задание
на оценку «4»
1.
Вывести
на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖ
Ж
2.
Написать
и протестировать программу в КУМИРе
Ввести три числа,
найти их сумму и произведение.
3.
Написать
и протестировать программу в КУМИРе
Ввести два числа,
найти их сумму их квадратов. (а*а+b*b)
Задание
на оценку «5»
1.
Вывести
на экран рисунок из букв
Ж Ж
Ж Ж
ЖЖЖЖЖЖЖ
Ж Ж
Ж Ж
2.
Написать
и протестировать программу в КУМИРе
Ввести четыре
числа, найти их сумму, сумму их квадратов и их произведение
3.
Написать
и протестировать программу в КУМИРе
Ввести три числа,
найти их среднее арифметическое ((а+b+c)/3) (подсказка:
переменная, в которую записывают значение среднего арифметического, должна быть
объявлена как вещественная)
Тема
урока Конструирование алгоритмов ветвления».
Тип
урока: Урок усвоения новых
знаний
Цель
урока:
Обучающая расширить
представления учащихся об алгоритмической конструкции «ветвления»
Развивающая —
развитие логического и алгоритмического мышления школьников, приемов
умственной деятельности, развитие познавательных потребностей учащихся.
Воспитательная – побудить
интерес к изучению информатики, формирование творческого
воображения и умения решать нестандартные задачи.
Главные
результаты
Предметные:
Будут иметь
представления об алгоритмической конструкции «ветвления». Будут уметь
исполнять алгоритм с ветвлениями для формального
исполнителя с заданной системой команд. Будут уметь составлять простые (короткие) алгоритмы с
ветвлениями для формального
исполнителя с заданной системой команд;
Метапредметные:
Углубление
умения выделять алгоритмы
с ветвлениями в различных процессах
Личностные
:
Будут
иметь понимание о алгоритмическом мышлении, необходимом для профессиональной
деятельности в современном обществе.
Задания
для самостоятельного выполнения
условный переход. Оператор Если..то
Условный переход.
Оператор
ЕСЛИ
Назначение:
организация перехода по условию.
Формат:
1. Основной
формат:
если условие то
| что
делать, если условие верно
иначе
| что
делать, если условие неверно
все
2.
Упрощенный формат
если условие то
| что
делать, если условие верно
все
Простое
{условное выражение} – выражения, связанные знаками математического
отношения
Знаки
отношение: (=)(>)(<)(>=)(<=)(<>)
Применение
ветвления:
Программа |
Программа Вычислить |
алг пароль если a =123 то кон |
алг функция цел х,у если х<0 то у:=х*х все вывод « значение кон |
Программа |
алг пароль вывод « ВВЕДИТЕ ЦИФРУ, если a =1 то если a =2 то если a =3 то кон |
ЗАДАНИЯ
ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
Задания
на оценку «3»
Протестировать
и набрать следующие программы:
1. Ввести два
целых числа и вывести на экран наибольшее из них.
2. Фирма
набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и
определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
3. Пароль
КАДЕТ
4. Кадетская
программа-шутка о погоде:
5. Программа
Вычисление сложной функции
Задания
на оценку «4»
Протестировать
и набрать следующие программы:
1. Ввести два
целых числа и вывести на экран наименьшее из них.
2. Фирма
набирает сотрудников от 30 до 50 лет включительно. Ввести возраст человека и
определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
3. Пароль
КАДЕТ (пароль придумать самостоятельно)
4. Кадетская
программа-шутка о погоде:
5. Программа
Вычислить значение сложной функции:
Задания
на оценку «5»
Протестировать
и набрать следующие программы:
1. Ввести три
числа и найти наибольшее из них.
2. Ввести
четыре числа и найти наименьшее из них.
3. Ввести
номер месяца и вывести название времени года.
Пример:
Введите
номер месяца:
4
весна
4. Пароль
КАДЕТ (пароль придумать самостоятельно)
5. Программа
Вычислить значение сложной функции:
Тема
урока «Конструирование алгоритмов повторения»
Тип
урока: Урок усвоения новых
знаний
Цель
урока:
Обучающая расширить
представления учащихся об алгоритмической конструкции «повторение»
Развивающая —
развитие логического и алгоритмического мышления школьников, приемов
умственной деятельности, развитие познавательных потребностей учащихся.
Воспитательная – побудить
интерес к изучению информатики, формирование творческого воображения
и умения решать нестандартные задачи.
Главные
результаты
Предметные:
Будут иметь
представления об алгоритмической конструкции «повторение». Будут
уметь исполнять алгоритм с повторениями для формального
исполнителя с заданной системой команд. Будут уметь составлять простые (короткие) алгоритмы с
повторениями для формального
исполнителя с заданной системой команд;
Метапредметные:
Углубление
умения выделять алгоритмы
с повторениями в различных процессах
Личностные
:
Будут
иметь понимание о алгоритмическом мышлении,
необходимом для профессиональной деятельности в современном обществе.
Задания для
самостоятельного выполнения
нц n раз тело цикла кц |
N:= 1 тело цикла |
Программа, |
Программа, |
алг нач цел x:= нц y:=5*x-3 вывод x:=x+1 кц кон |
алг Пример 2 нач цел s,n n:= 1 s:=0 нц пока n s:=s+n n:=n+1 кц вывод кон |
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
Задания
на оценку «3»
Протестировать
и набрать следующие программы:
1. Вывести на
экран 5 раз слово «Привет».
2. Программа,
которая выводит таблицу значений функции у = 5х — 3 в диапазоне
от 0 до 5.
3. Программа,
которая вычисляет следующее значение S=1+2+3+4+5
4. Ввести
натуральное число и вывести в строчку все числа от 1 до этого числа.
Задания
на оценку «4»
Протестировать
и набрать следующие программы:
1. Вывести на
экран 10 раз Вашу фамилию и имя
2. Программа,
которая выводит таблицу значений функции у = 3х2 + 2х
в диапазоне от -2 до 6.
3. Программа,
которая вычисляет следующее значение S=1*2*3*4*5
4. Ввести
натуральное число вывести квадраты и кубы всех чисел от 1 до этого числа.
Задания
на оценку «5»
Протестировать
и набрать следующие программы:
1. Ввести
натуральное число и вывести в строчку все числа от 1 до этого числа.
2. Программа,
которая выводит таблицу значений функции у = -5х2 +
2х+1 в диапазоне от -5 до 5.
3. Ввести
натуральное число N и найти
сумму всех чисел от 1 до N (1+2+3+…+N).
4. Ввести два
целых числа a и b (a ≤ b) и
вывести квадраты все чисел от a до b.
0 / 0 / 0 Регистрация: 10.06.2015 Сообщений: 8 |
|
1 |
|
[КуМир] Составить программу нахождения суммы элементов массива10.06.2015, 21:16. Показов 10304. Ответов 5
Здравствуйте! Мне нужно составить программу нахождения суммы элементов массива на языке КуМир.
0 |
Почетный модератор 64287 / 47586 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
|
10.06.2015, 21:34 |
2 |
РешениеКод алг нач цел n,i,s цел таб k[1:20] вывод "Введите размер последовательности n от 2 до 20", нс ввод n если (n<2)или(n>20) то вывод "Неверный размер последовательности" все если (n>1)и(n<=20) то вывод "Введите элементы последовательности, целые числа", нс s:=0 i:=0 нц n раз i:=i+1 ввод k[i] s:=s+k[i] кц вывод "Сумма=",s все кон
1 |
0 / 0 / 0 Регистрация: 10.06.2015 Сообщений: 8 |
|
10.06.2015, 21:55 [ТС] |
3 |
Спасибо большое! Добавлено через 11 минут
0 |
Почетный модератор 64287 / 47586 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
|
11.06.2015, 06:04 |
4 |
Не знаю, ввожу размер от 2 до 20, другой и не позволит, потом ввожу целые числа в количестве равном размеру, программа выдает сумму. Никаких ошибок нет. Проверьте правильность кода. Добавлено через 20 минут
Выход за нижнюю границу массива.» Может у вас вместо i:=i+1 написано i:=i-1?
1 |
0 / 0 / 0 Регистрация: 10.06.2015 Сообщений: 8 |
|
14.06.2015, 17:32 [ТС] |
5 |
Простите, просто я невнимательный. Все в порядке. Спасибо.
0 |
0 / 0 / 0 Регистрация: 18.06.2015 Сообщений: 12 |
|
22.06.2015, 18:42 |
6 |
Код алг нач цел n,i,s цел таб k[1:20] вывод "Введите размер последовательности n от 2 до 20", нс ввод n если (n<2)или(n>20) то вывод "Неверный размер последовательности" все если (n>1)и(n<=20) то вывод "Введите элементы последовательности, целые числа", нс s:=0 i:=0 нц n раз i:=i+1 ввод k[i] s:=s+k[i] кц вывод "Сумма=",s все кон Помогите мне.
0 |