hiphoptema01
31.12.2021 09:25

1) Ниже записана программа. Получив на вход число , эта программа печатает два числа, и . Укажите наибольшее из таких чисел , при вводе которых алгоритм печатает сначала 3, а потом 0. x = int(input())
L = 0; M = 0
while x > 0:
L = L + 1
if x % 2 == 0:
M = M + (x % 10)
x = x // 10
print("%d\n%d" % (L, M))
2) Ниже записана программа. Получив на вход число , эта программа печатает два числа, и . Укажите наибольшее из таких чисел , при вводе которых алгоритм печатает сначала 2, а потом 14.
x = int(input())
a = 0; b = 1
while x > 0:
a = a + 1
b = b * (x % 10)
x = x // 10
print("%d\n%d" % (a, b))
3) Укажите наибольшее трёхзначное натуральное число, при вводе которого эта программа напечатает сначала 2, потом – 6.
x = int(input())
a=0; b=1
while x > 0:
if x%2 > 0:
a += 1
else:
b += x%5
x = x//5
print(a, b)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
лилька123
29.04.2023 05:31

Во-первых хотелось бы узнать, почему у тебя в 24 строчке странная запись:

if (P else F:=false;

Здесь непонятно, к чему написана скобка, а также непонятно, куда затерялся синтаксический then.

Во-вторых - почему в той же строчке сравниваешь тип real с типом boolean? На это ругается даже компилятор.

В-третьих - если мы опустим эти недочёты и вникнем в алгоритм, то поймём, что ты зациклил условие проверки P на истинность до тех пор, пока i не будет больше n или пока F не станет ложью. Но тут подвох в чём? В этом цикле ты не производишь никаких действий над операторами в условии, кроме как присваивание булевой переменной F значение false, чему оно и равно изначально. То есть можно сказать, что у тебя здесь происходит бесконечное зацикливание. Скорее всего именно поэтому у тебя не выводится массив, потому что компилятор не в состоянии дойти до строчки вывода. Чтобы хотя бы часть условия выполнилась, тебе нужно в условии if..then..else присваивать F не false, а true. Но это только в том случае, если ты исправишь конструкцию условия.

0,0(0 оценок)
Ответ:
karrygreenk
29.04.2023 05:31

const n=10;

var a:array [1..n] of real;

i,j,k:integer;

s,v:real;

begin

write(' Исходный массив: ');

for i:=1 to n do

begin

a[i]:=random*20-10;

write(a[i]:7:2);

if a[i]<0 then

begin

s:=s+a[i]*a[i];

k:=k+1

end;

if a[i]>0 then a[i]:=i

end;

writeln;

write('Преобразованый массив: ');

for i:=1 to n do write(a[i]:7:2);

writeln;

for i:=1 to n do

for j:=1 to n-i do

if a[j]>a[j+1] then

begin

v:=a[j];

a[j]:=a[j+1];

a[j+1]:=v

end;

write('Отсортированый массив: ');

for i:=1 to n do write(a[i]:7:2);

writeln;

writeln('Среднее арифметическое квадратов отрицательных чисел равно ',s/k:0:2);

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота