Информатика Разветвляющийся алгоритм. Решение задач
Решить задачи: (составить программы и блок-схему)
1) Определить, является ли заданное число а положительным.
2) Определить, является ли заданное число а четным. (вводится одно число, на экран выводится
одно из сообщений «да» или «нет»)
3) Определить, кратно ли заданное целое число а числу 7. (вводится одно число, на экран
выводится одно из сообщений «да» или «нет»)
4) Даны координаты двух точек А (x1,y1) и B(x2,y2). Определить, какая из точек ближе
расположена к оси Х. (вводится четыре числа x1,y1,x2,y2, на экран выводится одно из
сообщений «точка А» или «точка В»)
Проверять задачи на развилки нужно столько раз, сколько разных ответов может быть в задаче.
Домашняя работа.
Гороскоп по дате рождения - нумерология (предсказание по числам) - область знания,
зародившаяся в глубокой древности. Многим, наверное, знакомо суждение древнегреческого
ученого философа Пифагора: "Все вещи можно представить в виде чисел". Астрологи утверждают,
что каждому числу соответствует определенная планета. И даже последовательность букв в
имени, не говоря о дате рождения, тем или иным образом влияет на судьбу человека. По числам
составляется гороскоп, предсказывающий будущее человека, прогнозируя основные тенденции в
судьбе. В нумерологии предсказывают будущее, основываясь на дате рождения человека.
Составьте программу, которая будет определять является ли четной сумма цифр числа рождения.
Программа должна запрашивать число и выводить ответ «да» или «нет»
Пример:
Ввод
11
Вывод
да
Ввод
21
вывод
нет
Работа над задачами:
Разбор задачи 1 :
1) что дано: число а (a: real)
2) что будет результатом (d: real)
3) составление математической модели (ответ «да» будет, если а>0, во всех других случаях будет ответ
«нет»
4) Составление блок-схемы
5) Составление программы (проверить программу можно https://ideone.com/)
6) заполнение таблицы c использованием программы
4*6=24
(3 24 +) 8 2 - * 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * *
3+24=27
13 (8 2 -) * 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * *
8-2=6
(27 6 *) 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * *
27*6=162
162 2 3 (4 5 *) 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * *
4*5=20
162 2 3 (20 6 +) 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * *
20+6=26
162 2 3 (26 7 +) 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * *
26+7=33
162 2 3 33 8 (4 2 *) 3 4 9 + 3 4 + * 5 + + * + + * * *
4*2=8
162 2 3 33 8 8 3 (4 9 +) 3 4 + * 5 + + * + + * * *
4+9=13
162 2 3 33 8 8 3 13 (3 4 +) * 5 + + * + + * * *
3+4=7
162 2 3 33 8 8 3 (13 7 *) 5 + + * + + * * *
13*7=91
162 2 3 33 8 8 3 (91 5 +) + * + + * * *
91+5=96
162 2 3 33 8 8 (3 96 +) * + + * * *
3+96=99
162 2 3 33 8 (8 99 *) + + * * *
8*99=792
162 2 3 33 (8 792 +) + * * *
792+8=800
162 2 3 (33 800 +) * * *
33+800=833
162 2 (3 833 *) * *
3*833=2499
162 (2 2499 *) *
2*2499=4998
162 4998 *
162*4998=809676
Эквивалентное выражение
(3+4*6)*(8-2)*2*3*(4*5+6+7+8+4*2*(3+(4+9)*(3+4)+5))
ответ: 809676
N = 13;
Var
A:array[1..N] of integer;
i,Max:integer;
Begin
{Заполнение массива}
Randomize;
Write('Исходный массив: ');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(A[i],' ');
End;
{Поиск максимума}
Max:=1;
For i:= 2 to N do
if A[i]>A[Max] then Max:=i;
{Домножение}
For i:= 1 to Max-1 do
if i mod 2 = 0 then A[i]:=A[i]*A[Max];
WriteLn;
WriteLn('Max = A[',Max,'] = ',A[Max]);
Write('Переработанный массив: ');
For i:= 1 to N do
Write(A[i],' ');
End.
Пример:
Исходный массив: 3 10 0 5 8 11 9 1 1 12 11 12 7
Max = A[10] = 12
Переработанный массив: 3 120 0 60 8 132 9 12 1 12 11 12 7