
Karius
5 год назад
Имеется задание и код, немного отличающийся от нужного по заданию. Необходимо отредактировать код.Задание:В поле ввода edtVvod вводится строка. Необходимо дописать процедуру обработки нажатия кнопки btnRun, которая выведет в надпись lblVyvod среднеарифметическое встретившихся четных цифр, стоящих на нечетных позициях во введённой строке, если таковых нет, то результат 0.(Вы должны написать только текст, который должен быть вставлен вместо многоточия)procedure TForm1.btnRunClick(Sender: TObject);vars:string;sum,x,i,k,c:integer; sa:real;begins:=edtVvod.Text;...lblVyvod.Caption:=FloatToStr(sa);end;Код:sum:=0; c:=0; sa:=10;for i:=1 to length(s) do begin val(s[i],x,k); if (k=0) and (x mod 10<>0) and (x>sum) then sum:=x;if (k=0) and (x mod 10<>0) and (xc:=c+1;end; if c<>0 then sa:=sum/sa else sa:=0;
ОТВЕТЫ

Сергей
Oct 24, 2020
procedure TForm1.btnRunClick(Sender: TObject);
var
s: string;
sum, x, i, count: integer;
begin
s := edtVvod.Text;
lblVyvod.Caption := FloatToStr(0);
sum := 0;
count := 0;
for i := 1 to length(s) do
begin
if i mod 2 = 0 then Continue;
x := StrToInt(s[i]);
if x mod 2 = 1 then Continue;
sum := sum + x;
count := count + 1;
end;
if count > 0 then
lblVyvod.Caption := FloatToStr(sum / count);
end;
убрала кое что ненужное
отформатировала
увы проверить негде, так что на ваш страх и риск.
Логика правильная
var
s: string;
sum, x, i, count: integer;
begin
s := edtVvod.Text;
lblVyvod.Caption := FloatToStr(0);
sum := 0;
count := 0;
for i := 1 to length(s) do
begin
if i mod 2 = 0 then Continue;
x := StrToInt(s[i]);
if x mod 2 = 1 then Continue;
sum := sum + x;
count := count + 1;
end;
if count > 0 then
lblVyvod.Caption := FloatToStr(sum / count);
end;
убрала кое что ненужное
отформатировала
увы проверить негде, так что на ваш страх и риск.
Логика правильная
518
Смежные вопросы: