Домашние задания: Информатика

Помогите решать задачу по Информатике 10класс

Как решать подобные типа задачи, нормальный ответ пожалуйста, без всяких: решай по алгоритму
Ergali Primov
Ergali Primov
38
Не знаю, что именно Вам неясно, поэтому объясняю всё.

Начну с блоков: прямоугольник означает действие, параллелограмм - ввод или вывод, ромб - условие, т. е. вопрос у условием. Т. е. идти надо сверху вниз, но если встречается ромб, то по стрелкам в зависимости от ответа на вопрос в соответствующем ромбе.

Знак ":=" (двоеточие с равно) означает присвоение значения. Нами-людьми читается как просто равно. Т. е. в задании x:=0 можно смело читать как x=0.

Теперь, собственно решаем (я пронумерую действия по блокам). Ну а подставляем z по очереди из задания. Т. е.:

1) x:=0 - x=0
2) Ввод z (вводим сперва 1-ое число из той последовательности), т. е. 3 (другими словами получаем в этом блоке, что z=3)
3) z у нас =0? Если да - то выводим значение x (т. е. 0) иначе идём далее. Но у нас z=3, а не 0, т. е. z не равно 0, поэтому идём по стрелке "нет".
4) z<10? (т. е. 3<10?) - конечно же да. (идём по соответствующей стрелке):
5) Идя по стрелки подходим к прямоугольнику: x:=x+1. Т. е. у нас переменная x принимает новое значение, а именно: к предыдущему значению прибавляется число 1. Т. е. x у нас был 0, а теперь будет равен x+1, т. е. 0+1=1. Запоминаем это значение.
6) После этого прямоугольника с новым значением x нас стрелка ведёт снова к вводу значения переменной z. На этот раз вводим следующее число из последовательности (в данном случае - 62).
7) Опять идём по стрелкам, т. е. сравниваем с 0, и, если z не равно 0, то так вот и крутимся по этим действиям, идя по соответствующим стрелкам в зависимости от ответа. Не забываем, что в некоторых случаях у нас к числу x прибавляется 1. Ну это всё повторяем до тех пор, пока z не будет равно 0 (т. е. пока не введётся последнее значение из последовательности).

Итого (пишу соответствующие значения при подставлении данной последовательности от начала и до конца):

1) x=0, z=3 ->x=1 (т. е. изначально x=0, вводим z=3, после чего x становится =1)
2) x=1, z=62 ->x=1 (т. к. 62>10 (ответ на тот вопрос отрицательный), то возвращаемся к вводу z, а x у нас остаётся тем же (из предыдущего прохождения цикла, т. е. 1)).
3) x=1, z= -41 -> x=2
4) x=2, z= -92 -> x=3
5) x=3, z=7 -> x=4
6) x=4, z=11 ->x=4
7) x=4, z= -16 -> x=5
8) x=5, z=0 -> x=5

Итого в итоге: Ответ: 5.
АБ
Александр Байков
43 559
Лучший ответ
Идти по схемам снизу вверх, если не можете запомнить - на каждом шаге записывайте значения переменных.
Alecs Rostinec
Alecs Rostinec
59 945
Смотрите на алгоритм, представляйте себе, что ввели то число, которое дано в условии, и мысленно выполняйте операции, которые указаны в алгоритме.

Вот первое число - 3. Вводим его. То есть, z равна 3. Проверка "Z равно 0?". Нет. Значит идем к проверке "z меньше 10" . Да. Значит, далее х увеличиваем на 1. Оно было 0, значит, стало 1. Возвращаемся к вводу z. Теперь это 62. Не равно 0 и не меньше 10. Снова к вводу. - 41. Не ноль, но меньше 10. Увеливаем х еще на 1, получаем 2, снова ввод. - 92. То же самое. Теперь х уже равен 3. Вводим 7. Опять то же самое. Х уже равен 4. Вводим 11. Не 0, но больше 10. Значит, просто возвращение к вводу. - 16. Опять не ноль и меньше десяти. Х увеличился еще на 1 и теперь равен 5. Вводим 0. Теперь условие "Z = 0" выполняется, и мы уходим на ветку, где выводится на экран х. А оно в этот момент равно 5. Значит, ответ 5.
Tatjana Poplavnaja
Tatjana Poplavnaja
48 360
Ушел с 9 увы (
Эля Тимофеева
Эля Тимофеева
4 573
-73
Вано ****
Вано ****
571
Ergali Primov а решать как?