ba5-m
?>

Заполни таблицу задание нужно сравнить несколько облачных ресурсов​

Информатика

Ответы

andrey4work918
Const
    handsfree = false;

var
    a: array[1..500] of integer;
    i, n, j: integer;
    temp: integer;

begin
    {ввод массива}
    if handsfree then
        n := random(500) + 1
    else begin
        write('n = ');
        readln(n);
    end;
    
    writeln('Данные массива:');
    for i := 1 to n do
    begin
        if handsfree then begin
            a[i] := random(100000);
            write(a[i], ' ');
        end
        else readln(a[i]);
    end;
    writeln();
    
    {сортировочка пузыречком по убыванию}
    for i := 1 to n - 1 do
        for j := i + 1 to n do
            if A[i] < A[j] then begin
                temp := A[i];
                A[i] := A[j];
                A[j] := temp;
            end;
    
    {вывод массива}
    writeln('Вывод массива:');
    for i := 1 to n do
        write(a[i], ' ');
    writeln();
    
    writeln('Наибольшая купюра = ', a[1], a[2]);
end.

Вывод (при handfree = true)
Данные массива:
14326 83146 41199 15524 45803 60252 17062 77469 66347 48671 98328 61915 65607 88427 62486 50724 86714 97620 39326 61552 6654 93608 22718 77352 63933 29408 99498 63255 23230 7413 67602 67278 76628 87483 71421 12343 30770
Вывод массива:
99498 98328 97620 93608 88427 87483 86714 83146 77469 77352 76628 71421 67602 67278 66347 65607 63933 63255 62486 61915 61552 60252 50724 48671 45803 41199 39326 30770 29408 23230 22718 17062 15524 14326 12343 7413 6654
Наибольшая купюра = 9949898328
svetkaiv
Поскольку тут речь о последовательности неизвестной длины, вводимой с клавиатуры до появления нуля, а условие позволяет для каждого вводимого числа сразу решить, должно ли оно входить в сумму, задача решается без использования массива и условие "Количество чисел не превышает 1000" - это просто ловушка для наивных с тем, чтобы в случае использования массива длиной 1000 объявить затем решение неэффективным по памяти.

1. Решение на современной версии Паскаля
PascalABC.NET 3.2, сборка 1389 от 01.03.2017
Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadSeqIntegerWhile(n->n<>0)
      .Where(n->(n mod 3=0) and (n mod 10=6)).Sum;
  Writeln('Сумма отобранных чисел равна ',s)   
end.

Пример
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132

2. Решение "по-школьному"

var
  n,s:integer;
begin
  s:=0;
  repeat
    Read(n);
    if (n mod 3=0) and (n mod 10=6) then s:=s+n
  until n=0;
  Writeln('Сумма отобранных чисел равна ',s)
end.

Пример
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Заполни таблицу задание нужно сравнить несколько облачных ресурсов​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Irina
naromanova
Головин662
marinazubcko16729
snabdonm501
e-liza-k
Umkatoys50
impuls20125948
Dmitrii_Shamilevich2019
fomindmity1
Emasterova77
slavutich-plus2
infooem
Andei
Владислава531