8) Напишите алгоритм на естественном языке или на одном из языков программирования, который ищет и выводит наименьший

  • 23
8) Напишите алгоритм на естественном языке или на одном из языков программирования, который ищет и выводит наименьший элемент из целочисленного массива, где элементы массива могут быть целыми числами от 1 до 10000 включительно, и их восьмеричная запись оканчивается на цифру 7. Если таких чисел нет, алгоритм должен вернуть 0. Язык программирования - Паскаль.
Sladkiy_Assasin
32
Конечно! Вот алгоритм на Паскале, выполняющий поставленную задачу:

pas
function FindMinInteger(arr: array of Integer): Integer;
var
i, minNum: Integer;
begin
minNum := 10001; // Инициализация переменной минимального числа значением, большим 10000

for i := 0 to Length(arr) - 1 do
begin
if (arr[i] mod 10 = 7) and (arr[i] < minNum) then
begin
minNum := arr[i];
end;
end;

if minNum = 10001 then
begin
FindMinInteger := 0; // Если минимальное число не найдено, возвращаем 0
end
else
begin
FindMinInteger := minNum; // Возвращаем найденное минимальное число
end;
end;

// Пример использования функции:
var
arr: array[0..9] of Integer; // Создаем массив из 10 элементов
i, result: Integer;
begin
arr[0] := 17;
arr[1] := 207;
arr[2] := 71;
arr[3] := 857;
arr[4] := 721;
arr[5] := 34;
arr[6] := 690;
arr[7] := 71;
arr[8] := 41;
arr[9] := 957;

result := FindMinInteger(arr);
if result = 0 then
begin
writeln("Минимальное число с окончанием на 7 не найдено");
end
else
begin
writeln("Минимальное число с окончанием на 7: ", result);
end;

// Другой вариант вывода:
// writeln("Минимальное число с окончанием на 7: ", FindMinInteger(arr));
end.


Давайте пошагово разберем этот алгоритм. Мы создали функцию FindMinInteger, которая принимает массив целых чисел и возвращает наименьшее число, удовлетворяющее условиям задачи.

В начале мы инициализируем переменную минимального числа (minNum) значением 10001, чтобы убедиться, что первое найденное число в массиве будет меньше этого значения.

Затем мы проходимся по всем элементам массива с помощью цикла for. Для каждого элемента мы проверяем, является ли его последняя цифра 7 и является ли оно меньшим, чем текущее минимальное число (minNum). Если оба условия выполняются, то мы обновляем значение minNum.

После завершения цикла, мы проверяем, изменилось ли значение minNum. Если нет (осталось равным 10001), это означает, что в массиве нет чисел, удовлетворяющих условиям задачи. В этом случае мы возвращаем 0.

В противном случае, если minNum изменилось, мы возвращаем его значение как результат.

В приведенном примере мы создали массив из 10 элементов и заполнили его некоторыми целыми числами. Затем мы вызываем функцию FindMinInteger с этим массивом и сохраняем результат в переменную result. Затем мы проверяем полученный результат и выводим соответствующее сообщение.

Вы можете использовать это решение в своей программе на Паскале или изменить его по своему усмотрению. Надеюсь, что это поможет вам понять, как решить данную задачу! Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать. Я всегда готов помочь вам!