Pascal ABC:
5-9 класс
|
Дана последовательность чисел, среди которых имеется несколько нулей. Вывести на печать (построчно) числа стоящие до 1-го нуля и числа стоящие между нулями.
пример:
const
n = 50; {Максимальное количество чисел в последовательности}
t = -77;{Число-ограничитель, означающее конец ввода}
type
ta = array[1..n] of integer;
var
a: ta; {массив членов последовательности}
az: ta; {массив, содержащий номера нулей в последовательности}
kz: integer; {количество членов в массиве az}
i, iz, p, n1, n2: integer;
flag: boolean;
begin
{Вводим числа и сразу же отслеживаем номера нулей в последовательности}
Writeln('Вводите последовательность чисел, окончание ввода по -77');
i := 0; iz := 0;
repeat
Read(p);
if p <> t then begin
i := i + 1;
a[i] := p;
if p = 0 then begin
iz := iz + 1;
az[iz] := i;
end
end
until p = t;
kz := iz;
Writeln('Вывод последовательностей');
{1. До первого встреченного нуля}
for i := 1 to az[1] - 1 do Write(a[i], ' ');
Writeln;
{2. Остальные промежутки}
for iz := 1 to kz do
begin
for i := az[iz] + 1 to az[iz + 1] - 1 do Write(a[i], ' ');
Writeln;
end
end.
Тестовое решение:
Вводите последовательность чисел, окончание ввода по -77
1 2 3 0 5 6 7 0 0 10 11 12 13 0 15 16 17 18 19 20 -77
Вывод последовательностей
1 2 3
5 6 7
10 11 12 13
"Неудобная" задача. Надо вводить данные в массив неизвестной длины, чего традиционный Паскаль делать не позволяет.
Другие вопросы из категории
Задания по теме «Поиск
информации в Интернете»
1 вариант. Восемь
вопросов
Ответы на приведенные ниже вопросы найдите в
Интернете или по другим источникам информации.
1. Какая русская фамилия является самой
распространенной?
2. Какое из понятий, связанных с одеждой, названо
не по
фамилии генерала:
Читайте также
Составить программу,которая выводит на экран сумму нечетных чисел от 1 до 30 в Pascal ABC.
2) дано четырёхзначное число. Что больше: произведение цифр числа или их утроенная сумма. pascal ABC
Вот проверьте здесь гдето ошибка
program abc;
var a,b,c:integer;
begin;
write ('Длина равна=')
read(a);
write ('Ширина равна=')
read(b);
c:=a*b
write ('Площадь='c');
readln;
end.
Мне показало что в строке
сортирует массив ПО УБЫВАНИЮ и ищет в нем элемент, равный X (это число вводится с клавиатуры). Использовать двоичный поиск.