Циклический алгоритм Дана непустая последовательность ненулевых целых чисел, за которой следует 0 (0-признак конца последовательности) .
Определить, сколько из них принимает наибольшее значение???
Другие языки программирования и технологии
как пишется эта программа? помогите пожалуйсто..
Если в условии написано "последовательность чисел, оканчивающаяся нулём", то это значит, что количество чисел неизвестно. Их может быть 1, 5, 10, 100, миллион, 300 миллиардов, и массивы использовать не получится ни статические, ни динамические. Да и задача не подразумевает их использование.
program N85701544;
const
n: int64 = 0;
var
x, max: int64;
begin
writeln('Вводите числа последовательности (0 - конец ввода): ');
repeat
{$I-}
readln(x);
while IOResult <> 0 do
begin
write('Ошибка! Введите целое число: ');
readln(x)
end;
{$I+}
if x <> 0 then
if (n = 0) or (x > max) then
begin
max := x;
n := 1
end
else
if x = max then
inc(n);
until x = 0;
if n = 0 then
writeln('Последовательность не вводилась. ')
else
writeln('Максимальных элементов в последовательности: ', n);
write(#13#10'Нажмите Enter для завершения работы программы... ');
readln
end.
program N85701544;
const
n: int64 = 0;
var
x, max: int64;
begin
writeln('Вводите числа последовательности (0 - конец ввода): ');
repeat
{$I-}
readln(x);
while IOResult <> 0 do
begin
write('Ошибка! Введите целое число: ');
readln(x)
end;
{$I+}
if x <> 0 then
if (n = 0) or (x > max) then
begin
max := x;
n := 1
end
else
if x = max then
inc(n);
until x = 0;
if n = 0 then
writeln('Последовательность не вводилась. ')
else
writeln('Максимальных элементов в последовательности: ', n);
write(#13#10'Нажмите Enter для завершения работы программы... ');
readln
end.
находим максимум, потом в цикле сравниваем с максимумом и считаем ( несколько одинаковых максимумов)
считываем число, проверяем на максимум. если оно равно текущему максимуму - увеличиваем счетчик, если больше - счетчик равен 1.
Бейсик по алгоритму который дал Зло
' объявление и заполнение массива
Dim DynArray() As Double
Randomize
ReDim DynArray(Int(Rnd * 100000) + 1)
For i = 0 To UBound(DynArray)
DynArray(i) = Int(Rnd * 1000)
Next i
x_max = DynArray(0)
kol_vo = 1
'Основной код начинается здесь
For i = 1 To UBound(DynArray)
If x_max < DynArray(i) Then x_max = DynArray(i): kol_vo = 1
If x_max = DynArray(i) Then kol_vo = kol_vo + 1
Next i
MsgBox ("Размер массива " & UBound(DynArray) & " элементов" & Chr(10) & "Максимальное число = " & x_max & Chr(10) & "Таких чисел " & kol_vo)
' объявление и заполнение массива
Dim DynArray() As Double
Randomize
ReDim DynArray(Int(Rnd * 100000) + 1)
For i = 0 To UBound(DynArray)
DynArray(i) = Int(Rnd * 1000)
Next i
x_max = DynArray(0)
kol_vo = 1
'Основной код начинается здесь
For i = 1 To UBound(DynArray)
If x_max < DynArray(i) Then x_max = DynArray(i): kol_vo = 1
If x_max = DynArray(i) Then kol_vo = kol_vo + 1
Next i
MsgBox ("Размер массива " & UBound(DynArray) & " элементов" & Chr(10) & "Максимальное число = " & x_max & Chr(10) & "Таких чисел " & kol_vo)
Повторяю вопрос: Какой ЯЗЫК ПРОГРАММИРОВАНИЯ! C# паскаль делфи или другие?
не, я больше в delphi
Не знаю
Похожие вопросы
- Что такое факториал? Помогите пожалуйсто с синтаксисом С++.
- Паскаль написать программу помогите. срочно. Пожалуйста
- не получается написать программу. помогите пожалик.
- Кто может помочь?Нужны комментарии к каждой строчке программы...Помогите пожалуйста! оч нужно!!!
- Помогите пожалуйста! Завтра экзамен не буду допущен без программы (( помогите решить ..
- Нужно написать программу (помогите с алгоритмом) с++
- СИ++ не успеваю сделать программу.Помогите пожалуйста!
- Не компилируется программа, помогите исправить
- Пользуемся продуктом компании, но у многих пользователей возникает ошибка при работе с программой. Помогите разобраться!
- Работа с файлами в АССЕМБЛЕРЕ. Надо считывать файл, путь указывает пользователь при запуске программу. Помогите!