
Здравствуйте,даны две задачи,нужно написать программу(Паскаль).Пожалуйста распишите свои
действия,ничего не понимаю.Кто понимает-объясните,пожалуйтса. 1.Найти последнее вхождение наименьшего элеманта массива. 2.Найти количество элементов равных наибольшему элементу массива.

Ответы на вопрос

Const
N = 33;
Var
A:array[1..N] of integer;
i,m:integer;
Begin
{Заполнение массива}
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(A[i],' ')
End;
WriteLn;
{Поиск минимального элемента}
m:=1;
For i:= 2 to N do
if A[i]<=A[m] then m:=i;
WriteLn('Min = A[',m,'] = ',A[m]);
End.
Пример:
6 0 -4 10 2 -4 -3 -9 10 -5 1 0 -8 2 2 9 -3 -6 8 10 -6 -9 9 -2 -6 2 -1 -2 6 6 -2 -3 -4
Min = A[22] = -9
2)
Const
N = 33;
Var
A:array[1..N] of integer;
i,M,k:integer;
Begin
{Заполнение массива}
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(A[i],' ')
End;
WriteLn;
{Поиск наибольшего элемента}
M:=A[1];
For i:= 2 to N do
if A[i] > M then M:=A[i];
{Поиск кол-ва максимальных элементов}
k:=0;
For i:= 1 to N do
if A[i] = M then k:=k+1;
WriteLn('k_Max = ',k)
End.
Пример:
-10 3 10 -10 1 3 -9 -1 10 0 -10 3 -10 10 -4 -2 -8 3 10 -10 -9 3 -1 -2 9 -5 -6 -5 -5 -5 2 0 8
k_Max = 4



// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
Writeln('Последнее вхождение минимального элемента: ',a.LastIndexMin+1);
var mx:=a.Max;
Writeln('Количество элементов, равных максимальному: ',
a.Where(x->x=mx).Count)
end.
Пример
n= 20
10 10 -10 2 -8 9 8 -8 4 -5 10 -9 9 -2 1 7 -4 9 -10 7
Последнее вхождение минимального элемента: 19
Количество элементов, равных максимальному: 3
Пояснения
ArrRandom(ReadInteger('n='),-10,10); запрашиваем количество элементов n в массиве, а затем создаем целочисленный массив заполняем его случайными целыми числами на интервала [-10;10]
a.Println; выводим содержимое массива а на монитор
a.LastIndexMin+1 находим в массиве a позицию последнего минимального элемента. Счет позиций идет с нуля, поэтому добавляем единицу.
var mx:=a.Max; находим в массиве а максимальный элемент и запоминаем его в mx
a.Where(x->x=mx).Count) выбираем из массива а элементы, равные mx и подсчитываем их количество



Добрый день! Я могу помочь вам с написанием программы на языке Паскаль для решения двух задач.
Задача 1: Найти последнее вхождение наименьшего элемента массива
Для решения этой задачи, вам потребуется выполнить следующие действия:
1. Создайте массив чисел, в котором будете искать наименьший элемент. 2. Инициализируйте переменную `min` значением первого элемента массива. 3. Инициализируйте переменную `lastIndex` значением `-1`. Эта переменная будет хранить индекс последнего вхождения наименьшего элемента. 4. Пройдитесь по всем элементам массива, начиная со второго элемента. 5. Если текущий элемент меньше `min`, обновите значение `min` и `lastIndex` на текущий индекс. 6. После завершения цикла, `lastIndex` будет содержать индекс последнего вхождения наименьшего элемента массива.
Вот пример кода на языке Паскаль, который решает эту задачу:
```pascal program FindLastIndexOfMin;
const N = 10; // размер массива
var arr: array[1..N] of Integer; min, lastIndex, i: Integer;
begin // Инициализация массива for i := 1 to N do begin Write('Введите элемент массива arr[', i, ']: '); ReadLn(arr[i]); end;
// Поиск последнего вхождения наименьшего элемента min := arr[1]; lastIndex := -1;
for i := 2 to N do begin if arr[i] <= min then begin min := arr[i]; lastIndex := i; end; end;
// Вывод результата if lastIndex <> -1 then WriteLn('Последнее вхождение наименьшего элемента ', min, ' в массиве находится по индексу ', lastIndex) else WriteLn('Массив пуст.');
ReadLn; end. ```
Задача 2: Найти количество элементов, равных наибольшему элементу массива
Для решения этой задачи, вам потребуется выполнить следующие действия:
1. Создайте массив чисел, в котором будете искать наибольший элемент. 2. Инициализируйте переменную `max` значением первого элемента массива. 3. Инициализируйте переменную `count` значением `0`. Эта переменная будет хранить количество элементов, равных наибольшему элементу. 4. Пройдитесь по всем элементам массива, начиная со второго элемента. 5. Если текущий элемент равен `max`, увеличьте значение `count` на `1`. 6. Если текущий элемент больше `max`, обновите значение `max` и сбросьте значение `count` на `1`. 7. После завершения цикла, `count` будет содержать количество элементов, равных наибольшему элементу массива.
Вот пример кода на языке Паскаль, который решает эту задачу:
```pascal program CountMaxElements;
const N = 10; // размер массива
var arr: array[1..N] of Integer; max, count, i: Integer;
begin // Инициализация массива for i := 1 to N do begin Write('Введите элемент массива arr[', i, ']: '); ReadLn(arr[i]); end;
// Поиск наибольшего элемента и подсчет количества элементов, равных ему max := arr[1]; count := 0;
for i := 2 to N do begin if arr[i] = max then count := count + 1 else if arr[i] > max then begin max := arr[i]; count := 1; end; end;
// Вывод результата if count > 0 then WriteLn('Количество элементов, равных наибольшему элементу ', max, ' в массиве: ', count) else WriteLn('Массив пуст.');
ReadLn; end. ```
Надеюсь, эти объяснения помогут вам написать программу на языке Паскаль для решения данных задач. Если у вас возникнут еще вопросы, не стесняйтесь задавать их!


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili