Последовательность состоит из натуральных чисел и завершается числом 0. Всего вводится не более 10000 чисел (не считая завершающего числа 0). Определите, сколько элементов этой последовательности равны ее наибольшему элементу.
примеры:
ввод... вывод
1 ...1
7
9
0
1....2
3
3
1
Другие языки программирования и технологии
Напишите пожалуйста програмку в паскале. ОООЧЕНЬ НУЖНО. Зарнее спасибо.
var a,n,i: integer;
var rnd: array[1..100] of integer;
begin
cls;
for n:=1 to 30 do
begin
rnd[n]:=abs(random(9))+1;
write(rnd[n],' ');
if a=rnd[n] then i:=i+1;
if rnd[n]>a then
begin
i:=1; a:=rnd[n];
end;
end;
writeln;
writeln('Количество чисел, равных максимальному=',i);
end.
Сразу поясню несколько моментов:
1. В качестве вводимых натуральных чисел я использовал массив размером в 30 чисел из случайный чисел от 1 до 10 (функция random) для наглядности и повышенной читабельности.
2. Все исходные числа программа выводит в строчку через пробел, поэтому можно проверить результат вычислений.
3. Лучше для этой программы использовать рекурсивную процедуру, но цикл for более понятен и легче объяснить его работу, поэтому код представил в таком виде.
var rnd: array[1..100] of integer;
begin
cls;
for n:=1 to 30 do
begin
rnd[n]:=abs(random(9))+1;
write(rnd[n],' ');
if a=rnd[n] then i:=i+1;
if rnd[n]>a then
begin
i:=1; a:=rnd[n];
end;
end;
writeln;
writeln('Количество чисел, равных максимальному=',i);
end.
Сразу поясню несколько моментов:
1. В качестве вводимых натуральных чисел я использовал массив размером в 30 чисел из случайный чисел от 1 до 10 (функция random) для наглядности и повышенной читабельности.
2. Все исходные числа программа выводит в строчку через пробел, поэтому можно проверить результат вычислений.
3. Лучше для этой программы использовать рекурсивную процедуру, но цикл for более понятен и легче объяснить его работу, поэтому код представил в таком виде.
program N85155821;
const
max: longword = 0;
var
x, n: longword;
e: boolean;
begin
writeln('Вводите числа последовательности (0 - конец ввода): ');
repeat
repeat
e := false;
try
readln(x)
except
write('Ошибка! Введите натуральное число: ');
e := true
end
until not e;
if x > 0 then
if (max = 0) or (x > max) then
begin
max := x;
n := 1
end
else
if x = max then
inc(n); {или n := n + 1;}
until x = 0;
if max = 0 then
writeln('Последовательность не вводилась')
else
writeln('Максимальных элементов в последовательности: ', n);
write(#13#10'Для завершения работы нажмите Enter...');
readln
end.
> Всего вводится не более 10000 чисел
Хоть пара миллионов, программе это безразлично.
const
max: longword = 0;
var
x, n: longword;
e: boolean;
begin
writeln('Вводите числа последовательности (0 - конец ввода): ');
repeat
repeat
e := false;
try
readln(x)
except
write('Ошибка! Введите натуральное число: ');
e := true
end
until not e;
if x > 0 then
if (max = 0) or (x > max) then
begin
max := x;
n := 1
end
else
if x = max then
inc(n); {или n := n + 1;}
until x = 0;
if max = 0 then
writeln('Последовательность не вводилась')
else
writeln('Максимальных элементов в последовательности: ', n);
write(#13#10'Для завершения работы нажмите Enter...');
readln
end.
> Всего вводится не более 10000 чисел
Хоть пара миллионов, программе это безразлично.
Похожие вопросы
- напишите пожалуйста программы по паскалю.
- Помогите написать 2 программы на паскале.. . очень нужно
- Напишите пожалуйста программу на паскале!!
- Напишите пожалуйста программу на паскале.
- Напишите пожалуйста программу в паскале. Дана строка символов,определить количество слов,начинающихся с заданного символа
- Напишите пожалуйста программу в паскале
- Напишите пожалуйста программу в паскале
- Помогите написать 2 програмки на Турбо Паскале.
- Помогите пожалуйста... мне так нужно.. очень очень!!! нужно составить легенькую програмку в паскале)
- Сделайте пожалуйста программу на Паскале. Заранее спасибо!!!!