Top.Mail.Ru
Ответы

Программа на pascal

(Pascal) Напишите программу, которая в последовательности натуральных чисел определяет максимальное число,оканчивающееся на 9. программа получает на вход количество чисел в последовательности, а затем сами числа. в последовательности всегда имеется число оканчивающееся на 9.
Количество чисел не превышает 1000. Введенные числа не превышают 30000.
Программа должна вывести одно число: максимальное число, оканчивающееся на 9.

По дате
По рейтингу
Аватар пользователя
Оракул
4мес

program MaxNumberEndingWithNine;

var
n, i, num, max_num: integer;

begin
// Считываем количество чисел
readln(n);

// Инициализируем max_num значением, которое меньше любого возможного числа
max_num := 0;

// Обрабатываем каждое число в последовательности
for i := 1 to n do
begin
readln(num);
if (num mod 10 = 9) and (num > max_num) then
max_num := num;
end;

// Выводим результат
writeln(max_num);
end.
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​### Решение задачи на Pascal

Напишем программу на Pascal, которая решает задачу поиска максимального числа, оканчивающегося на 9, в заданной последовательности натуральных чисел.

#### Условие задачи:
- На вход программа получает количество чисел в последовательности \(n\) (где \(n \leq 1000\)).
- Затем программа получает \(n\) натуральных чисел, каждое из которых не превышает 30 000.
- В последовательности гарантированно есть хотя бы одно число, оканчивающееся на 9.
- Программа должна найти и вывести максимальное число, которое оканчивается на 9.

#### Алгоритм:
1. Считываем количество чисел \(n\).
2. Инициализируем переменную `max_num` для хранения максимального числа, оканчивающегося на 9. Поскольку все числа натуральные, можно инициализировать её значением 0.
3. В цикле от 1 до \(n\):
- Считываем очередное число `num`.
- Проверяем, оканчивается ли оно на 9 (для этого используем операцию `num mod 10 = 9`).
- Если число оканчивается на 9 и оно больше текущего `max_num`, обновляем `max_num`.
4. После завершения цикла выводим `max_num`.

#### Код программы:
```pascal
program MaxNumberEndingWithNine;
var
n, i, num, max_num: integer;
begin
// Считываем количество чисел
readln(n);

// Инициализируем max_num значением 0
max_num := 0;

// Обрабатываем каждое число в последовательности
for i := 1 to n do
begin
readln(num);
if (num mod 10 = 9) and (num > max_num) then
max_num := num;
end;

// Выводим результат
writeln(max_num);
end.
```

#### Пояснение кода:
- **Переменные:**
- `n`: количество чисел в последовательности.
- `i`: счётчик для цикла.
- `num`: текущее считываемое число.
- `max_num`: максимальное число, оканчивающееся на 9.
- **Инициализация:**
- Считываем \(n\).
- Устанавливаем `max_num := 0`, так как все числа натуральные, и гарантируется наличие числа, оканчивающегося на 9.
- **Цикл:**
- Считываем каждое число `num`.
- Проверяем, оканчивается ли оно на 9 (`num mod 10 = 9`).
- Если да, и если `num > max_num`, обновляем `max_num`.
- **Вывод:**
- После обработки всех чисел выводим `max_num`.

#### Примеры работы программы:
1. **Вход:**
```
3
19
29
10
```
**Выход:**
```
29
```
Пояснение: Числа 19 и 29 оканчиваются на 9, максимальное из них — 29.

2. **Вход:**
```
2
9
99
```
**Выход:**
```
99
```
Пояснение: Оба числа оканчиваются на 9, максимальное — 99.

3. **Вход:**
```
1
9
```
**Выход:**
```
9
```
Пояснение: Единственное число, оканчивающееся на 9.

#### Соответствие требованиям:
- Программа корректно считывает количество чисел и сами числа.
- Находит максимальное число, оканчивающееся на 9.
- Работает в пределах ограничений (\(n \leq 1000\), числа \(\leq 30000\)).
- Учитывает, что в последовательности всегда есть хотя бы одно число, оканчивающееся на 9.

Программа проста, эффективна и решает поставленную задачу.