Щелкни по файлу правой кнопкой там будет расширение файла там может быть что угодно (exe, txt, zip) после точки (.) пишешь расширение файла.
Объяснение:
irinasolodova3
05.04.2020
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();
Поскольку тут речь о последовательности неизвестной длины, вводимой с клавиатуры до появления нуля, а условие позволяет для каждого вводимого числа сразу решить, должно ли оно входить в сумму, задача решается без использования массива и условие "Количество чисел не превышает 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
Щелкни по файлу правой кнопкой там будет расширение файла там может быть что угодно (exe, txt, zip) после точки (.) пишешь расширение файла.
Объяснение: