Предмет: Информатика, автор: vikleon200457

var s,i, n: integer;

begin

for i:=1 to 1000 do begin

s:=i;

n := 1;

while s < 221 do begin

s := s + 13;

n := n * 2

end;

if n=128 then begin writeln(i) break; end;

end;

end.

почему программа не работает?!

Приложения:

balakine977: кидай сюда
vikleon200457: file:///C:/Users/Gawri/Downloads/WhatsApp%20Image%202021-10-30%20at%2021.59.50.jpeg
vikleon200457: ссылка на фото
balakine977: вот же программисты пошли, ссылку на локальный файл скидывают
balakine977: текстом напиши условие...
vikleon200457: я не сдаю инфу но ттак как я в айти классе требуют также
vikleon200457: Var s, n: integer;
Begin
Readln (s);
S := 3* (s div 10);
N := 1;
While s< 221 do begin
S := s + 13;
N := n * 2
End;
Writeln (n)
End.
vikleon200457: Определите, сколько существует различных целых значений переменной s, при вводе которых данная программа выведет число 128. Для Вашего удобства программа представлена на четырёх языках программирования
NiNJaG0o: Оформи вопрос нормально, задание напиши, а не мозаику в комментариях, нечего не понятно, что требуется. Твоя программа не работает так как ты пропустил ; в коде о чем тебе и написано внизу.
vikleon200457: var s, n, i, count: integer;
begin
for i := 0 to 10000 do begin
s := 3 * (i div 10);
n := 1;
while s < 221 do begin
s := s + 13;
n := n * 2
end;
if n = 256 then count := count + 1;
end;
writeln(count);
end.

Ответы

Автор ответа: NiNJaG0o
2

Ответ:

Существует только одно значение S = 130 при котором эта программа выведет 128

Объяснение:

S линейно возрастает в цикле и никогда не уменьшается, следовательно насколько бы мы не увеличивали количество шагов в цикле вывод программы не измениться, при i = 130 n = 128. Все последующие разы цикл while не выполняется, после i = 221 в данном случае оператор for избыточен, так как становиться s > 221.

Похожие вопросы
Предмет: Русский язык, автор: Даниили1
Предмет: Английский язык, автор: ВасяВасяВася007
Предмет: Русский язык, автор: КаринаНикитишна