12346Djigd
17.08.2022 15:29

Нужно перевести программу с Pascal на Python. Заранее благодарен. var
i, j, t: integer;
a: array [1..3000] of integer;
s: integer;
n: integer;
sum: integer;
maxi: integer;
f: text;
begin
assign(f,'C:\26-6.txt');
reset(f);
readln(f, s, n);
for i := 1 to n do readln(f, a[i]);
for i := 1 to n do
for j := i + 1 to n do
if a[i] > a[j] then begin
t := a[i];
a[i] := a[j];
a[j] := t;
end;
sum := 0;
maxi := 1;
for i := 1 to n do
if sum + a[i] <= s then begin
sum := sum + a[i];
maxi := i;
end;
t := a[maxi];
for i := maxi to n do
if ((sum - t) + a[i]) <= s then begin
sum := sum - t + a[i];
t := a[i];
end;
writeln(maxi, ' ', t);
end.​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Facebook1898909
07.02.2021 00:54
Ошибки

var n, s: longint;

i: integer;

begin

s:=1 ;

for i:=1 to 6 do begin

readln(n);

if i mod 2 = 0 then

s := s + n;

end;

write(s);

end.

Из за того что сумма в начале равняется единице, то при конечном выводе суммы она всегда будет больше чем нужно на единицу, а при ненахождении чётных чисел вывод будет 1 , а не 0Проверяется чётность номера введённого числа а не само число, то есть если число было введено вторым, но при этом оно нечётное, то программа считает его как чётноеПравильный вариант программы

var n, s: longint;

i: integer;

begin

s:=0;

for i:=1 to 6 do begin

readln(n);

if n mod 2 = 0 then

s := s + n;

end;

write(s);

end.

0,0(0 оценок)
Ответ:
maя
30.11.2021 01:33
Ошибки

var p,i,x,count: integer;

begin

count := 0;

p := 0 ;

for i := 1 to 4 do begin

read (x);

if x >= 0 then begin

p := p*x;

count := count+1

end

end;

if count > 0 then begin

writeln(х );

writeln(p);

end

else

writeln('NO')

end

Переменная p в начале равняется нулю. В эту переменную будет записываться общее произведение неотрицательных чисел, умножая p на каждое неотрицательное число, но при умножении любого числа на 0 произведение будет 0, поэтому нужно в начале присвоить ей единицуВ конце выводится последнее введённое число, а нужно вывести количествоПосле end не стоит точкаПравильный вариант программы

var p,i,x,count: integer;

begin

count := 0;

p := 1;

for i := 1 to 4 do begin

read (x);

if x >= 0 then begin

p := p*x;

count := count+1

end

end;

if count > 0 then begin

writeln(count);

writeln(p);

end

else

writeln('NO')

end.

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