Паскаль2

Паскаль2
Тема: Одномерные массивы.

Разработать программу на языке программирования согласно Вашему варианту.

Дан массив из N целых чисел, где N< =16, каждое число в диапазоне от –32000 до 32000. Массив для каждой задачи должен задаваться в секции объявлений глобальных переменных, например: type Mas = array[1..16] of integer; const A:Mas = (85,-3,13,94,72,169,-21,43,57,46,9,12,83,101,49,28); B:Mas = {18,21,563,-412,84,-17,520,321,121,954,7,19,883,10,17,1); Примечание: · Массив перед обработкой и после обработки распечатать в виде строки чисел. · Массив должен задаваться в секции объявлений. · В программе необходимо использовать функции с передаваемыми параметрами. · Рекомендуется использовать операции целочисленной арифметики. Если в массиве отсутствует искомый элемент, то об этом следует вывести сообщение. ЗАДАНИЕ 12. Найти сумму всех элементов, состоящих только из разных цифр.
Пример: 32 122 343 166 -2 521; результат: 32+521+(-2)=551.

  • type
    Mas = array[1..16] of integer;

    function IsAllDiff(n: integer): boolean;
    var
    t: integer;
    begin
    IsAllDiff := true;
    n := abs(n);
    while n > 9 do begin
    t := n div 10;
    while t > 0 do begin
    if (t mod 10) = (n mod 10) then IsAllDiff := false;
    t := t div 10;
    end;
    n := n div 10;
    end;
    end;

    function Sum(a: Mas): longint;
    var
    c: integer;
    begin
    Sum := 0;
    for c := 1 to 16 do if IsAllDiff(a[c]) then inc(Sum, a[c]);
    end;

    const
    A: Mas = (85,-3,13,94,72,169,-21,43,57,46,9,12,83,101,49,28);
    B: Mas = (18,21,563,-412,84,-17,520,321,121,954,7,19,883,10,17,1);

    begin
    writeln('Sum(A): ', Sum(A));
    writeln('Sum(B): ', Sum(B));
    end.