Подкорректируйте код пожалуйста (pascal)

Тема в разделе "Pascal and Delphi", создана пользователем stupidstudent, 9 сен 2011.

Статус темы:
Закрыта.
  1. stupidstudent

    stupidstudent Гость

    В общем мне дали такую задачку (pascal):
    Записать в одномерный массив, те числа из числовой последовательности введенной пользователем, у которых, сумма цифр стоящих на четных позициях от конца, у которых эта сумма нечетная. С использованием function или procedure.

    Вот что у меня получилось правда без одномерного массива, да и работает:
    Код (Delphi):
    uses crt;
    var n, s4, i, x : integer;       
    function sum(x : integer ):integer;
    var h, s : integer;
    BEGIN
    s := 0;
    while ( x > 0 ) do
    begin
    h := x mod 10;
    s := s + h;
    x := x div 10;
    end;
    sum := s;
    end;

    begin
    clrscr;
    s4 := 0;
    write ('kol-vo 4isel - ');
    readln(n);
    for i := 1 to n do
    begin
    write ('vvedite ',i,'-oe 4islo - ');
    readln(x);
    if sum(x) mod 2 = 1 then
    s4 := s4 + x;
    end;
    write ('Sum = ', s4);
    readln;

    END.
    через одномерный массив
    Код (Text):
    Uses crt;
    var s4,n, i, x , g: integer;
    a : array [1..100] of integer; j:integer;
    function sum(x : integer ):integer;
    var h, s : integer;
    BEGIN
    s := 0;
    while ( x > 0 ) do
    begin
    h := x mod 10;
    s := s + h;
    x := x div 10;
    end;
    sum := s;
    end;

    begin
    clrscr;
    s4 := 0;
    write ('kol-vo 4isel - ');
    readln(n);
    j:=0;
    for i := 1 to n do
    begin
    write ('vvedite ',i,'-oe 4islo - ');
    readln(x);
    if sum(x) mod 2 = 1 then
    begin
    inc(j);
    a[j]:=x;
    end;
    end;
    writeln('Massiv:');
    for i:=1 to j do begin
    g := a[i] + a[j];
    writeln('sum = ', g);
    end;
    readln;

    END.
    что можно улучшить\дополнить?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей