Вопрос задан 04.10.2023 в 17:11. Предмет Информатика. Спрашивает Михалицька Соня.

1)Чему будет равно значение переменной x после выполнения следующих команд? x := 10;for i := 10

downto 2 dox := x – i;2)Необходимо было написать программу, которая позволяет найти наименьшее число, большее 500, кратное 17 и вывести его на экран.Программист торопился и написал программу с ошибками. Укажите строки, в которых допущены ошибки.Var x: integer; Begin   x := 500;   Repeat   x := x – 1;   Until x mod 17 <> 0;   Writeln (x); End. 
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Киров Дмитрий.

Ответ:

1)   -44

2)  

x := x – 1;

Until x mod 17 <> 0; 

Объяснение:

1)

x = 10

для i от 10 до 2 выполнить x = x - i

i = 10       x = 10 - 10 = 0

i = 9        x = 0 - 9 = -9

i = 8        x = -9 - 8 = -17

i = 7        x = -17 - 7 = -24

i = 6        x = -24 - 6 = -30

i = 5        x = -30 - 5 = -35

i = 4        x = -35 - 4 = -39

i = 3        x = -39 - 3 = -42

i = 2        x = -42 - 2 = -44

2)

Var x: integer;

Begin

x := 500;

Repeat

x := x + 1;

Until x mod 17 = 0;

Writeln (x);

End.

x := x - 1; - необходимо найти число большее 500, поэтому x надо увеличивать на 1, а не уменьшать

Until x mod 17 <> 0; - цикл с постусловием работает пока условие ложно, поэтому чтобы найти число кратное 17 условие должно иметь вид x mod 17 = 0

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
  1. После выполнения указанных команд значение переменной x будет равно -16. Ошибка заключается в том, что в цикле for отсутствует инструкция, определяющая, что нужно делать с переменной x на каждой итерации. Верное исправление выглядит так:
pascal
x := 10; for i := 10 downto 2 do x := x - i;

После исправления, x будет равно -16.

  1. В предоставленной программе есть две ошибки:

    a) В условии цикла Repeat-Until оператор mod должен быть написан как x mod 17 = 0, а не x mod 17 <> 0. Инструкция x mod 17 <> 0 означает "x не делится на 17 нацело", что не соответствует условиям задачи.

    b) Ошибка также заключается в операторе WriteLn. Пробелы в начале и в конце имени процедуры не должны быть указаны. Правильный синтаксис - WriteLn(x).

Исправленная версия программы выглядит следующим образом:

pascal
Var x: integer; Begin x := 500; Repeat x := x - 1; Until x mod 17 = 0; Writeln(x); End.

После исправления программа будет находить наименьшее число, большее 500, кратное 17, и выводить его на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос