Изучить §6 "Максимальный и минимальный элементы массива"
Внимательно изучите примеры.
Поиск максимального элемента в массиве.
var
a: array[1..20] of integer;
n, max: integer;
begin
write('Количество n =');
readln(n);
writeln('Элементы массива');
for var i := 1 to n do read(a[i]);
max := a[1];
for var i := 2 to n do
if a[i] > max then max := a[i];
writeln('Максимум = ', max);
end.
Тестирование
Количество n = 5
Элементы массива
1 2 6 3 2
Максимум = 6
Поиск максимального элемента в массиве и его место расположение.
var
a: array[1..20] of integer;
n, max, n_max: integer;
begin
write('Количество n =');
readln(n);
writeln('Элементы массива');
for var i := 1 to n do read(a[i]);
max := a[1];n_max := 1;
for var i := 2 to n do
if a[i] > max then
begin
max := a[i];n_max := i;
end;
writeln('Максимум = ', max);
writeln('Его место ', n_max);
end.
Тестирование.
Количество n = 5
Элементы массива
2 5 3 5 1
Максимум = 5
Его место 2
Поиск максимального элемента в массиве и его место расположение
(Улучшенный алгоритм. Фрагмент программы)n_max := 1;
for var i := 2 to n do
if a[i] > a[n_max] then
n_max := i;
writeln('Максимум =', a[n_max]);
writeln('Его место ', n_max);
Поиск минимального элемента в массиве и его место расположение
(Улучшенный алгоритм. Фрагмент программы)n_min := 1;
for var i := 2 to n do
if a[i] < a[n_min] then
n_min := i;
В массиве хранится информация о результатах спортсменов, участвующих в лыжной гонке. Определить результат победителя и его номер.
var
a: array [1..20] of real;
n, n_min: integer;
begin
writeln('Количество спортсменов');
readln(n);writeln('Время');
for var i := 1 to n do read(a[i]);
//поиск минимального элемента
n_min := 1;
for var i := 2 to n do
if a[i] < a[n_min] then
n_min := i;
writeln('Победитель — лыжник номер ', n_min);
writeln('Его время - ', a[n_min]);
end.
Тестирование.
Количество спортсменов
5
Время
6.31 6.17 7.32 6.54 7.03
Победитель – лыжник номер 2
Его время - 6.17
Определить, сколько раз в линейном массиве встречается элемент, равный минимальному.
var
a: array [1..20] of integer;
n, min, k: integer;
begin
write('Количество n =');
readln(n);writeln('Числа');
for var i := 1 to n do read(a[i]);
//поиск минимального элемента
min := a[1];
for var i := 2 to n do
if a[i] < min then min := a[i];
//подсчет количества
k := 0;
for var i := 1 to n do
if a[i] = min then k := k + 1;
writeln('Минимальный ', min);
writeln('Встретился ', k, ' раз(–а)');
end.
Тестирование.
Количество n = 5
Числа
3 1 2 1 1
Минимальный 1
Встретился 3 раза(-а)
Задан массив из слов различной длины. Найти в нем самое длинное и самое короткое слово.
var
a: array [1..20] of string;
n: integer;
min_s, max_s: string;
begin
write('Количество n =');
readln(n);writeln('Слова');
for var i := 1 to n do readln(a[i]);
//поиск короткого слова
min_s := a[1];
for var i := 2 to n do
if length(a[i]) < length(min_s) then
min_s := a[i];
//поиск длинного слова
max_s := a[1];
for var i := 2 to n do
if length(a[i]) > length(max_s) then
max_s := a[i];
writeln('Короткое - ', min_s);
writeln('Длинное - ', max_s);
end.
Тестирование.
Количество n = 5
Слова
Все
дороги
ведут
в
Рим
Короткое - в
Длинное - дороги
Дан одномерный массив из целых чисел. Построить гистограмму по числовым данным, хранящимся в массиве.
uses graphABC;
var
a: array[1..20] of integer;
n, max, h, x, y1, y2: integer;
m: real;
begin
write('Количество n =');
readln(n);
writeln(n);
writeln('Элементы массива');
for var i := 1 to n do begin
read(a[i]);
write(a[i], ' ');
end;
max := a[1];
for var i := 2 to n do
if a[i] > max then max := a[i];
h := trunc(WindowWidth / (2 * n + 1));
m := WindowHeight / max;
x := h;
y1 := WindowHeight;
for var i := 1 to n do begin
Brush.Color:=clrandom;
y2 := y1 - trunc(a[i] * m);
Rectangle(x, y1, x + h, y2);
x := x + 2 * h;
end;
end.
Тестирование
Проверьте свои знания ➠
Измените программы примеров 6.2 (6.1) так, чтобы находился минимальный элемент в массиве.
Для примера 6.5 выполните перечисленные задания.
Найдите номер спортсмена, пришедшего на финиш последним.
Определите, был ли проигравший единственным или есть еще лыжник, прошедший трассу с таким же результатом (см. пример 6.6).
Добавьте еще один массив. Введите в него фамилии спортсменов. Реализуйте пункты 1—3 так, чтобы выводилась фамилия, а не номер (см. пример 5.10).
В массиве хранится информация о стоимости автомобилей. Определите стоимость самого дорогого автомобиля и его номер в массиве. Если есть несколько таких автомобилей, то выведите все номера.
В массиве хранится информация о среднедневной температуре декабря. Определите, сколько в декабре было дней с самой низкой и с самой высокой температурой.
Задан массив из слов. Найдите в нем самое длинное слово, заканчивающееся буквой а.
*Задан массив из слов. Найдите в нем самое короткое слово, начинающееся с прописной буквы.
Для примера 6.8 выполните перечисленные задания.
Расставьте комментарии к программе:
Измените программу так, чтобы при построении диаграммы использовалась не вся высота окна, а оставались поля сверху и снизу.
Измените программу так, чтобы столбики строились без промежутков между ними.
Создайте массив цветовых констант и используйте эти цвета для закрашивания столбиков.
Постройте линейчатую диаграмму.
По данным массива постройте диаграмму в виде ломаной линии. Соответствуют ли ординаты вершин ломаной значениям массива?