Регистрация
Войти
Стать экспертом Правила
Информатика

Имеется задание и код, немного отличающийся от нужного по заданию. Необходимо отредактировать код.Задание:В поле ввода 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;

ОТВЕТЫ
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;

убрала кое что ненужное
отформатировала
увы проверить негде, так что на ваш страх и риск.
Логика правильная
518
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам