Слайд 2
Программирование
на алгоритмическом языке. Часть II
Тема 1. Массивы
Слайд 3
Массив – это группа однотипных элементов, имеющих общее
имя и расположенных в памяти рядом.
Особенности:
все элементы имеют один
тип
весь массив имеет одно имя
все элементы расположены в памяти рядом
Примеры:
список учеников в классе
квартиры в доме
школы в городе
данные о температуре воздуха за год
Массивы
Слайд 4
Массивы
A
массив
3
15
НОМЕР
элемента массива
(ИНДЕКС)
A[1]
A[2]
A[3]
A[4]
A[5]
ЗНАЧЕНИЕ элемента массива
A[2]
НОМЕР (ИНДЕКС)
элемента массива:
2
ЗНАЧЕНИЕ
элемента массива: 10
Слайд 5
Объявление массивов
Зачем объявлять?
определить имя массива
определить тип массива
определить
число элементов
выделить место в памяти
Массив целых чисел:
Размер через
переменную:
имя
начальный индекс
конечный индекс
тип
элементов
целтаб A[ 1 : N ]
цел N = 5
N
целтаб A[ 1 : 5 ]
Слайд 6
Объявление массивов
Массивы других типов:
Другой диапазон индексов:
вещтаб
X[1:10], Y[1:20] | вещественные
X[1] := 4.25
симтаб S[1:20] |
символьный
S[1] := "z"
логтаб L[1:5] | логический
L[1] := да | да или нет
целтаб Q[0:9]
вещтаб C[-5:13]
Слайд 7
Что неправильно?
целтаб A [10:1]
...
A[5] := 4.5;
[1:10]
целтаб A[1:10]
...
A[15] :=
Слайд 8
Как обработать все элементы массива?
Объявление:
Обработка:
цел N = 5
целтаб
A[1:N]
| обработать A[1]
| обработать A[2]
| обработать A[3]
| обработать A[4]
|
обработать A[5]
Слайд 9
Как обработать все элементы массива?
Обработка с переменной:
i:= 1
|
обработать A[i]
i:= i + 1
| обработать A[i]
i:= i +
1
| обработать A[i]
i:= i + 1
| обработать A[i]
i:= i + 1
| обработать A[i]
i:= i + 1
Обработка в цикле:
i:= 1
нц пока i <= N
| обработать A[i]
i:= i + 1
кц
Цикл с переменной:
нц для i от 1 до N
| обработать A[i]
кц
Слайд 10
Простейшая программа
Объявление:
Ввод с клавиатуры:
Обработка каждого элемента:
цел N =
5, i
целтаб A[1:N]
нц для i от 1 до N
вывод "A[",i,"]="
ввод A[i]
кц
A[1] =
A[2] =
A[3] =
A[4] =
A[5] =
5
12
34
56
13
нц для i от 1 до N
A[i]:= A[i]+1
кц
вывод "Массив A", нс
нц для i от 1 до N
вывод A[i], " "
кц
Массив A:
6 13 35 57 14
Вывод на экран:
Слайд 11
Задания
«3»: Ввести c клавиатуры массив из 5 элементов,
умножить их на 2 и вывести на экран.
Пример:
Введите пять чисел:
4 15 3 10 14
Результат: 8 30 6 20 28
«4»: Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива.
Пример:
Введите пять чисел:
4 15 3 10 14
среднее арифметическое 9.200
Слайд 12
Задания
«5»: Ввести c клавиатуры массив из 5 элементов,
найти минимальный из них.
Пример:
Введите пять чисел:
4 15 3 10 14
минимальный элемент 3
Слайд 13
Программирование
на алгоритмическом языке. Часть II
Тема 2. Максимальный
элемент массива
Слайд 14
Максимальный элемент
Задача: найти в массиве максимальный элемент.
Алгоритм:
Решение:
считаем,
что первый элемент – максимальный
просмотреть остальные элементы массива:
если очередной
элемент > M,
то записать A[i] в M
вывести значение M
Слайд 15
Максимальный элемент
начало
конец
нет
да
нет
да
M:= A[1]
i:= 2
M:= A[i]
i:= i
+ 1
пока считаем,
что первый – максимальный
начать со
2-ого
перейти к следующему
нашли новый максимум
Слайд 16
Максимальный элемент
алг Максимум
нач
цел i, N = 5,
M
целтаб A[1:N]
| здесь заполнить массив
M:=
A[1] | пока максимальный – A[1]
нц для i от 2 до N
если A[i] > M то M:= A[i] все
кц
вывод "Максимальный элемент ", M
кон
Слайд 17
Максимальный элемент
M:= A[1] | пока первый – максимальный
iMax:= 1
нц для i от 2 до N |
проверяем остальные
если A[i] > M то | нашли еще больше
M:= A[i] | запомнить A[i]
iMax:= i | запомнить i
все
кц
вывод "Максимальный элемент A[",iMax,"]=",M
Дополнение: как найти номер максимального элемента?
По номеру элемента iMax всегда можно найти его значение A[iMax]. Поэтому везде меняем M на A[iMax] и убираем переменную M.
A[iMax]
A[iMax]
Слайд 18
Задания
«3»: Ввести с клавиатуры массив из 5 элементов,
найти в нем минимальный элемент и его номер.
Пример:
Исходный массив:
4 -5 10 -10 5
мимимальный A[4]=-10
«4»: Ввести с клавиатуры массив из 5 элементов, найти в нем максимальный и минимальный элементы и их номера.
Пример:
Исходный массив:
4 -5 10 -10 5
максимальный A[3]=10
минимальный A[4]=-10
Слайд 19
Задания
«5»: Ввести с клавиатуры массив из 5 элементов,
найти в нем два максимальных элемента и их номера.
Пример:
Исходный массив:
4 -5 10 -10 5
максимальные A[3]=10, A[5]=5
Слайд 20
Программирование
на алгоритмическом языке. Часть II
Тема 3. Обработка
массивов
Слайд 21
Случайно…
встретить друга на улице
разбить тарелку
найти 10 рублей
выиграть в лотерею
Случайный выбор:
жеребьевка на
соревнованиях
выигравшие номера
в лотерее
Как получить случайность?
Случайность и ее моделирование
Слайд 22
Электронный генератор
нужно специальное устройство
нельзя воспроизвести результаты
318458191041
564321
209938992481
458191
938992
малый период
(последовательность
повторяется через 106 чисел)
Метод середины квадрата (Дж. фон Нейман)
в
квадрате
Псевдослучайные числа – обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле.
Случайные числа на компьютере
Слайд 23
Модель: снежинки падают на отрезок [a,b]
распределение
равномерное
неравномерное
Распределение случайных чисел
Слайд 24
Особенности:
распределение – это характеристика всей последовательности, а
не одного числа
равномерное распределение одно, компьютерные датчики случайных чисел
дают равномерное распределение
неравномерных – много
любое неравномерное можно получить с помощью равномерного
a
b
a
b
Распределение случайных чисел
Слайд 25
Вещественные числа в интервале [0,10):
Генератор случайных чисел
вещ
X, Y
X:= rand(0, 10) | интервал от 0 до
10 (<10)
Y:= rand(0, 10) | это уже другое число!
англ. random – случайный
Целые числа в интервале [0,10]:
цел K, L
K:= irand(0, 10) | интервал от 0 до 10 (<10)
L:= irand(0, 10) | это уже другое число!
англ. integer – целый
Слайд 26
Заполнение массива случайными числами
цел i, N = 5
целтаб
A[1:N]
вывод "Массив ", нс
нц для i от 1 до
N
A[i]:= irand(10, 30);
вывод A[i], " "
кц
Слайд 27
Подсчет элементов
Задача: заполнить массив случайными числами в интервале
[-1,1] и подсчитать количество нулевых элементов.
Идея: используем переменную-счётчик.
Решение:
записать в
счётчик ноль
просмотреть все элементы массива:
если очередной элемент = 0,
то увеличить счётчик на 1
вывести значение счётчика
Слайд 28
Подсчет элементов
начало
конец
нет
да
нет
да
count:= 0
i:= 1
count:= count +
1
i:= i + 1
пока ни одного
не нашли
начать с
1-ого
перейти к следующему
нашли еще 1
Слайд 29
Подсчет элементов
цел count, i, N = 10
целтаб A[1:N]
|
здесь надо заполнить массив
count:= 0
нц для i от 1
до N
если A[i] = 0
то count:= count + 1
все
кц
перебираем все элементы массива
Слайд 30
Задания
«3»: Заполнить массив случайными числами в интервале [-2,2]
и подсчитать количество положительных элементов.
«4»: Заполнить массив случайными числами
в интервале [20,100] и подсчитать отдельно число чётных и нечётных элементов.
«5»: Заполнить массив случайными числами в интервале [1000,2000] и подсчитать число элементов, у которых вторая с конца цифра – четная.
Слайд 31
Сумма выбранных элементов
Задача: заполнить массив случайными числами в
интервале [-10,10] и подсчитать сумму положительных элементов.
Идея: используем переменную
S для накопления суммы.
Решение:
записать в переменную S ноль
просмотреть все элементы массива:
если очередной элемент > 0,
то добавить к сумме этот элемент
вывести значение суммы
S:=0
S:= A[1]
S:= A[1]+A[2]
S:= A[1]+A[2]+A[3]
S:= A[1]+A[2]+…+A[N]
S:= S+A[i]
Слайд 32
Сумма выбранных элементов
начало
конец
нет
да
нет
да
S:= 0
i:= 1
S:= S
+ A[i]
i:= i + 1
пока ни одного
не нашли
начать
с 1-ого
перейти к следующему
нашли еще 1
Слайд 33
Сумма выбранных элементов
цел S, i, N = 10
целтаб
A[1:N]
| здесь надо заполнить массив
S:= 0
нц для i от
1 до N
если A[i] > 0
то S:= S + A[i]
все
кц
перебираем все элементы массива
Слайд 34
Задания
«3»: Заполнить массив из 10 элементов случайными числами
в интервале [-10,10] и подсчитать сумму всех отрицательных элементов.
«4»:
Заполнить массив из 10 элементов случайными числами в интервале [0,100] и подсчитать среднее значение всех элементов, которые <50.
«5»: Заполнить массив из 10 элементов случайными числами в интервале [10,12] и найти длину самой длинной последовательности стоящих рядом одинаковых элементов.
Пример:
Исходный массив:
10 10 11 12 12 12 10 11 11 12
Длина последовательности: 3
Слайд 35
Поиск в массиве
Задача – найти в массиве элемент,
равный X, или установить, что его нет.
Пример: если
в классе ученик с фамилией Пупкин?
Алгоритм:
начать с 1-ого элемента (i:=1)
если очередной элемент (A[i]) равен X, то закончить поиск
иначе перейти к следующему элементу:
Слайд 36
Поиск элемента, равного X
начало
конец
нет
да
нет
да
i:= 1
i:= i + 1
начать
с 1-ого
перейти к следующему
“Не нашли”
“Есть!”
Слайд 37
Поиск в массиве
алг Поиск
нач
цел i, N
= 5, X
целтаб A[1:N]
| здесь нужно
заполнить массив
вывод нс,"Что ищем? "
ввод X
i:= 1
нц пока i <= N
если A[i] = X то выход все
i:= i + 1
кц
если i <= N то
вывод "A[", i, "]=", X
иначе
вывод "Не нашли!"
все
кон
i – номер нужного
элемента в массиве
выход из цикла
Слайд 38
Задания
«3»: Заполнить массив из 10 элементов случайными числами
в интервале [10..20] и найти элемент, равный X.
Пример:
Исходный массив:
13 10 18 12 20 11 13 14 15 20
Что ищем? 20
A[5] = 20
«4»: Заполнить массив из 10 элементов случайными числами в интервале [0..4] и вывести номера всех элементов, равных X.
Пример:
Исходный массив:
4 0 1 2 0 1 3 4 1 0
Что ищем? 0
A[2], A[5], A[10]
Слайд 39
Задания
«5»: Заполнить массив из 10 элементов случайными числами
в интервале [0..4]и определить, есть ли в нем одинаковые
соседние элементы.
Пример:
Исходный массив:
4 0 1 2 0 1 3 1 1 0
Ответ: есть
Слайд 40
Программирование
на алгоритмическом языке. Часть II
Тема 4. Символьные
строки
Слайд 41
Чем плох массив символов?
симтаб s[1:10]
Это массив символов:
каждый символ
– отдельный объект;
массив имеет длину, которая задана при объявлении
Что
нужно:
обрабатывать последовательность символов как единое целое
строка должна иметь переменную длину
Слайд 42
Символьные строки
рабочая часть
s[1]
s[2]
s[3]
s[4]
лит s
Длина строки:
n:= длин(s)
цел n
Объявление строки:
Слайд 43
Символьные строки
Задача: ввести строку с клавиатуры и заменить
все буквы «а» на буквы «б».
алг Замена а на
б
нач
лит s
вывод "Введите строку: "
ввод s
цел i
нц для i от 1 до длин(s)
если s[i] = "а"
то s[i]:= "б"
все
кц
вывод s
кон
длина строки
Слайд 44
Задания
«3»: Ввести символьную строку и заменить все буквы
«а» на буквы «б», как заглавные, так и строчные.
Пример:
Введите строку:
ааббссААББСС
Результат:
ббббссББББСС
«4»: Ввести символьную строку и заменить все буквы «а» на буквы «б» и наоборот, как заглавные, так и строчные.
Пример:
Введите строку:
ааббссААББСС
Результат:
ббаассББААСС
Слайд 45
Задания
«5»: Ввести символьную строку и проверить, является ли
она палиндромом (палиндром читается одинаково в обоих направлениях).
Пример: Пример:
Введите строку: Введите строку:
АБВГДЕ КАЗАК
Результат: Результат:
Не палиндром. Палиндром.
Слайд 46
Операции со строками
Объединение: добавить одну строку в конец
другой.
Запись нового значения:
лит s, s1, s2
s:= "Вася"
s1:= "Привет"
s2:= "Вася"
s
:= s1 + ", " + s2 + "!"
| "Привет, Вася!"
Подстрока: выделить часть строки в другую строку.
s:= "123456789"
s1:= s[3:8]
s2:= s1[2:4]
| "345678"
| "456"
Слайд 47
Удаление и вставка
Удаление части строки:
Вставка в строку:
s:= "123456789"
s:=
удалить(s, 3, 6);
с 3-его символа
6 штук
строка
меняется!
'123456789'
'129'
s:= "123456789"
s:=
вставить("ABC", s, 3)
s:= вставить( "Q", s, 5 )
куда вставляем
что вставляем
начиная с 3-его символа
'12ABC3456789'
'12ABQC3456789'
Слайд 48
Поиск в строке (найти)
Поиск в строке:
s:= "Здесь был
Вася."
n:= найти("е", s)
если n > 0 то
вывод
"Буква е – это s[", n, "]"
иначе вывод "Не нашли"
все
n:= найти("Вася", s)
s1:= s[n:n+3]
s[3]
3
n = 11
Особенности:
функция найти возвращает номер символа, с которого начинается образец в строке
если образец не найден, возвращается -1
поиск с начала (находится первое слово)
цел n
Вася
Слайд 49
Примеры
s:= "Вася Петя Митя"
n:= найти( "Петя", s )
s:=
удалить(s, n, 4)
s:= вставить("Куку", s, n )
'Вася Куку Митя'
s:=
"Вася Петя Митя"
n:= длин( s )
s1:= s[1:4]
s2:= s[11:14]
s3:= s[6:9]
s:= s3 + s1 + s2
n:= длин( s )
'Вася Митя'
14
'Вася'
'Митя'
'Петя'
'ПетяВасяМитя'
12
6
Слайд 50
Пример решения задачи
Задача: Ввести имя, отчество и фамилию.
Преобразовать их к формату «фамилия-инициалы».
Пример:
Введите имя,
отчество и фамилию:
Василий Алибабаевич Хрюндиков
Результат:
Хрюндиков В.А.
Алгоритм:
найти первый пробел и выделить имя
удалить имя с пробелом из основной строки
найти первый пробел и выделить отчество
удалить отчество с пробелом из основной строки
«сцепить» фамилию, первые буквы имени и фамилии, точки, пробелы…
Слайд 51
Программа
использовать Строки
алг ФИО
нач
лит s, имя, отчество
цел
n
вывод "Введите имя, отчество и фамилию"
ввод s
n:= найти(" ", s);
имя:= s[1:n-1] | вырезать имя
s:= удалить(s, 1, n)
n:= найти(" ", s)
отчество:= s[1:n-1] | вырезать отчество
s:= удалить(s, 1, n) | осталась фамилия
s:= s + " " + имя[1] + "." + отчество[1] + "."
вывод s
кон
Слайд 52
Задания
«3»: Ввести в одну строку фамилию, имя и
отчество, разделив их пробелом. Вывести инициалы и фамилию.
Пример:
Введите фамилию, имя и отчество:
Иванов Петр Семёнович
Результат:
П.С. Иванов
«4»: Ввести имя файла (возможно, без расширения) и изменить его расширение на «.exe».
Пример:
Введите имя файла: Введите имя файла:
qqq qqq.com
Результат: Результат:
qqq.exe qqq.exe
Слайд 53
Задания
«5»: Ввести путь к файлу и «разобрать» его,
выводя каждую вложенную папку с новой строки
Пример:
Введите путь к файлу:
C:\Мои документы\10-Б\Вася\qq.exe
Результат:
C:
Мои документы
10-Б
Вася
qq.exe
Слайд 54
Задачи на обработку строк
Задача: с клавиатуры вводится символьная
строка, представляющая собой сумму двух целых чисел, например:
12+35
Вычислить эту
сумму:
12+35=47
Алгоритм:
найти знак «+»
выделить числа слева и справа в отдельные строки
перевести строки в числа
сложить
вывести результат
Слайд 55
Преобразования «строка»-«число»
Из строки в число:
s:= "123"
N:= лит_в_цел(s, OK)
Слайд 56
Программа
использовать Строки
алг Калькулятор
нач
лит s, s1, s2
цел n, n1, n2, sum
лог OK
вывод "Введите
выражение (сумму двух чисел): "
ввод s
n:= найти("+", s)
s1:= s[1:n-1]
s2:= s[n+1:длин(s)]
n1:= лит_в_цел(s1, OK)
n2:= лит_в_цел(s2, OK)
sum:= n1 + n2
вывод n1, "+", n2, "=", sum
кон
слагаемые-строки
слагаемые-числа
сумма
слагаемые-строки
слагаемые-числа
Слайд 57
Задания
«3»: Ввести арифметическое выражение: разность двух чисел. Вычислить
эту разность.
Пример:
25-12
Ответ: 13
«4»: Ввести арифметическое
выражение: сумму трёх чисел. Вычислить эту сумму.
Пример:
25+12+34
Ответ: 71
Слайд 58
Задания
«5»: Ввести арифметическое выражение c тремя числами, в
котором можно использовать сложение и вычитание. Вычислить это выражение.
Пример: Пример:
25+12+34 25+12-34
Ответ: 71 Ответ: 3
Пример: Пример:
25-12+34 25-12-34
Ответ: 47 Ответ: -21
Слайд 59
Задания
«6»: Ввести арифметическое выражение c тремя числами, в
котором можно использовать сложение, вычитание и умножение. Вычислить это
выражение.
Пример: Пример:
25+12*3 25*2-34
Ответ: 61 Ответ: 16
Пример: Пример:
25-12+34 25*2*3
Ответ: 47 Ответ: 150
Слайд 60
Программирование
на алгоритмическом языке. Часть II
Тема 5. Матрицы
Слайд 61
Матрицы
Задача: запомнить положение фигур на шахматной доске.
1
2
3
4
5
6
c6
A[6,3]
Слайд 62
Матрицы
Матрица – это прямоугольная таблица чисел (или других
элементов одного типа).
Матрица – это массив, в котором каждый
элемент имеет два индекса (номер строки и номер столбца).
A
строка 2
столбец 3
ячейка A[3,4]
Слайд 63
Матрицы
Объявление:
цел N = 3, M = 4
целтаб A[1:N,1:M]
целтаб
B[-3:0,-8:M]
Ввод с клавиатуры:
нц для i от 1 до N
нц для j от 1 до M
вывод "A[", i, ",", j, "]="
ввод A[i,j]
кц
кц
A[1,1]=
25
A[1,2]=
14
A[1,3]=
14
...
A[3,4]=
54
i
j
нц для j от 1 до M
нц для i от 1 до N
Слайд 64
Матрицы
Заполнение случайными числами
нц для i от 1 до
N
нц для j от 1 до M
A[i,j]:= irand(20,80)
кц
кц
цикл по строкам
цикл по столбцам
Вывод на экран
нц для i от 1 до N
вывод нс
кц
нц для j от 1 до M
вывод A[i,j]
кц
вывод строки
, " "
Слайд 65
Обработка всех элементов матрицы
Задача: заполнить матрицу из 3
строк и 4 столбцов случайными числами и вывести ее
на экран. Найти сумму элементов матрицы.
алг Сумма
нач
цел N = 3, M = 4, i, j
целтаб A[1:N,1:M]
| заполнение матрицы и вывод на экран
цел S = 0
нц для i от 1 до N
нц для j от 1 до M
S:= S + A[i,j]
кц
кц
вывод "Сумма элементов матрицы: ", S
кон
Слайд 66
Задания
Заполнить матрицу из 8 строк и 5 столбцов
случайными числами в интервале [10,90] и вывести ее на
экран. Затем …
«3»: Удвоить все элементы матрицы и вывести её на экран.
«4»: Найти минимальный и максимальный элементы в матрице их номера. Формат вывода:
Минимальный элемент A[3,4]=11
Максимальный элемент A[2,2]=89
«5»: Вывести на экран строку, сумма элементов которой максимальна. Формат вывода:
Строка 2: 13 25 18 79 38
Слайд 67
Программирование
на алгоритмическом языке
Тема 7. Алгоритмы-функции
Слайд 68
Максимум из трех
начало
конец
a > b?
да
x:= a
нет
x:= b
c >
x?
да
x:= c
a
b
x
x
c
нет
Слайд 69
Максимум из трех
алг цел Макс3(цел a, b, c)
нач
цел x
если a > b
то
x:= a
иначе x:= b
все
если c > x то x:= c все
знач := x
кон
знач
цел x
цел
результат – целое число
внутренняя (локальная) переменная
результат (значение) функции
Слайд 70
Максимум из трех
алг Максимум
нач
цел Z, X, C,
M
вывод "Введите три числа "
ввод Z, X,
C
M:= Макс3(Z, X, C)
вывод "Максимум: ", M
кон
алг цел Макс3(цел a, b, c)
нач
...
кон
вызов функции
имена параметров могут быть любые!
Слайд 71
Максимум из пяти
алг Максимум
нач
цел Z, X, C,
V, B, M
ввод Z, X, C, V, B
M:= Макс3( Макс3(Z,X,C), V, B)
вывод "Максимум: ", M
кон
алг цел Макс3(цел a, b, c)
нач
...
кон
???
Слайд 72
НОД трёх чисел
Задача: ввести три числа и найти
наибольший общий делитель (НОД). Используйте формулу
НОД(a,b,c) = НОД(НОД(a,b), c)
Решение: построить вспомогательный алгоритм для вычисления НОД двух чисел и применить (вызвать) его два раза.
Слайд 73
Общий вид программы
алг НОД трёх чисел
нач
цел a,
b, c, N
вывод "Введите три числа", нс
ввод
a, b, c
N:= НОД(НОД(a,b), c)
вывод N
кон
алг цел НОД(цел x, y)
нач
| здесь нужно вычислить НОД(x,y)
кон
основной алгоритм
вспомогательный алгоритм
???
Слайд 74
Блок-схема алгоритма Евклида
начало
конец
Слайд 75
Алгоритм Евклида
алг цел НОД(цел x, y)
нач
цел a,
b
a:= x; b:= y | копии параметров
нц
пока a <> b
если a > b
то a:= a - b
иначе b:= b - a
все
кц
знач:= a | результат функции
кон
Слайд 76
Рекурсивные функции
Факториал:
если
если
алг цел Факт(цел N)
нач
если N
< 2
то знач:= 1
иначе
знач:= N*Факт(N-1)
все
кон
алг цел Факт(цел N)
нач
цел i
знач:= 1
нц для i от 2 до N
знач:= знач*i
кц
кон
Слайд 77
Задания
«3»: Составить функцию, которая определяет НАИМЕНЬШЕЕ из трёх
чисел и привести пример ее использования.
Пример:
Введите три числа:
28 15 10
Наименьшее число 10.
«4»: Составить функцию, которая вычисляет НАИМЕНЬШЕЕ из четырёх чисел и привести пример ее использования.
Пример:
Введите четыре числа:
10 20 5 25
Наименьшее число 5.
Слайд 78
Задания
«5»: Составить функцию, которая определяет сумму всех чисел
от 1 до N и привести пример ее использования.
Пример:
Введите число:
100
Сумма чисел от 1 до 100 = 5050
Слайд 79
Логические функции
Задача: составить функцию, которая определяет, верно ли,
что заданное число – четное.
Особенности:
ответ – логическое значение (да
или нет)
результат функции можно использовать как логическую величину в условиях (если, пока)
Алгоритм: если число делится на 2, оно четное.
если mod(N,2)= 0
то | число N четное
иначе | число N нечетное
все
Слайд 80
Логические функции
алг лог Четное(цел N)
нач
если mod(N,2) =
0
то знач:= да
иначе знач:= нет
все
кон
логическое значение (да или нет)
Слайд 81
Логические функции
алг Проверка четности
нач
цел x
вывод "Введите
целое число: "
ввод x
если Четное(x)
то
вывод "Число четное."
иначе вывод "Число нечетное."
все
кон
алг лог Четное(цел N)
нач
...
кон
Слайд 82
Задания
«3»: Составить функцию, которая определяет, верно ли, что
число оканчивается на 0.
Пример:
Введите число: Введите число:
170 237
Верно. Неверно.
«4»: Составить функцию, которая определяет, верно ли, что в числе вторая цифра с конца больше 6.
Пример:
Введите число: Введите число:
178 237
Верно. Неверно.
Слайд 83
Задания
«5»: Составить функцию, которая определяет, верно ли, что
переданное ей число – простое (делится только на само
себя и на единицу).
Пример:
Введите число: Введите число:
29 28
Простое число. Составное число.
Слайд 84
Программирование
на алгоритмическом языке. Часть II
Тема 8. Построение
графиков функций
Слайд 85
Построение графиков функций
Задача: построить график функции y =
x2 на интервале от -2 до 2.
Анализ:
максимальное значение
ymax = 4 при x = ±2
минимальное значение
ymin = 0 при x = 0
Проблема: функция задана в математической системе координат, строить надо на экране, указывая координаты в пикселях.
Слайд 86
Преобразование координат
(x,y)
x
y
Математическая
система координат
Экранная система координат (пиксели)
(xэ,yэ)
xэ
yэ
(0,0)
(0,0)
x0
y0
k –
масштаб (длина изображения единичного отрезка на экране)
xэ = x0
+ kx
yэ = y0 - ky
Слайд 87
Программа
на экране
оси координат
цикл построения графика
использовать Рисователь
алг График
нач
цел
x0=150, y0=250, k=50, xe, ye
вещ xmin=-2, xmax=2, x,
y, h
в точку(0,y0)
линия в точку(x0+150,y0)
в точку(x0,0)
линия в точку(x0,y0+20)
x:=xmin; h:=0.02
нц пока x <= xmax
y:= x*x
xe:= x0 + int(k*x)
ye:= y0 - int(k*y)
пиксель(xe,ye,"красный")
x:=x+h
кц
кон
h – шаг изменения x
Слайд 88
Как соединить точки?
Алгоритм:
Если первая точка
перейти в точку
(xэ,yэ)
иначе
линия в точку (xэ,yэ)
Программа:
начальное значение
выбор варианта действий
логическая
переменная
лог первая
...
первая:= да
нц пока x <= xmax
...
если первая то
в точку(xe, ye)
первая:= нет
иначе
линия в точку(xe, ye)
все
кц
Слайд 89
Задания
«3»: Построить график функции
на интервале
[-2,2].
«4»: Построить графики функций
и
на интервале [-2,2].
Слайд 90
Задания
«5»: Построить графики функций
и
на интервале [-2,2].
Соединить точки линиями.