На этой странице решаются задачи Array18 - Array19 из задачника Абрамяна.
Array18. Дан массив A ненулевых целых чисел размера 10. Вывести значение первого из тех его элементов AK, которые удовлетворяют неравенству AK < A10. Если таких элементов нет, то вывести 0.
var
A: array[1..10] of integer;
i: byte;
begin
writeln(' Введите массив размера ', 10, ':');
for i := 1 to 10 do
read(a[i]);
i := 0; //Присваивание начального значения.
{Проверяем значения массива: }
repeat
inc(i) {Увеличиваем номер до тех пор,
пока не получим меньшее от a[10] число или не
выйдем за граници массива: }
until (a[i] < a[10]) or (i > 10);
{Выводим результат: }
if i < 10 then
begin
write(' Первый элемент, меньший a[10],');
writeln(' имеет номер K = ', i, ':');
write(' a[', i, '] = ', a[i])
end
else
begin
writeln(' Таких элементов нет: ');
write(' 0')
end
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
Array19. Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов AK, которые удовлетворяют двойному неравенству A1 < AK < A10. Если таких элементов нет, то вывести 0.
var
A: array[0..10] of integer;
i: byte;
begin
writeln(' Введите массив размера ', 10, ':');
write(' ');
for i := 1 to 10 do
read(a[i]);
i := 10; //Присваивание начального значения.
{Проверяем значения массива: }
repeat
dec(i) {Увеличиваем номер до тех пор,
пока не получим меньшее от a[10] число или не
выйдем за граници массива: }
until ((a[i] < a[10]) and (a[i] > a[1])) or (i = 0);
{Выводим результат: }
if i > 1 then
begin
write(' Последний элемент a[K], удовлетворяющий');
write(' условию ', a[1], ' < a[K] < ', a[10]);
writeln(' имеет номер K = ', i, ':');
write(' a[', i, '] = ', a[i])
end
else
begin
write(' Элементов a[K], которые удовлетворяли бы условию ');
writeln('a[1] < a[K] < a[10], в этом массиве нет: ');
write(' 0')
end
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647