Показать полную графическую версию : Задача по информатике
Задание следующее: Создать проект, который определяет максимальное значение из введённых чисел. Количество чисел заранее неизвестно. Прошу помощи в решении задачи)
Числа вводятся и попадают в массив.
Потом последовательно каждый элемент массива сравнивается с некоторой переменной (изначально равна нулю, если не брать в расчёт, что максимальным числом может быть отрицательное). Если в массиве меньше - переходим к следующему элементу, если больше - записываем в эту переменную и идём дальше.
По окончании просмотра массива вывести число на экран.
Вам ведь нужен только алгоритм, а код сами желаете написать? ;)
а можете это в программном коде записать? =)
А мне "отл" в зачётку пойдёт?)
Нет, я бейсик не знаю. К тому же, я не сторонник полного решения задач за других. Об этом есть намёк и в предыдущем сообщении.
Но могу на JavaScript'е написать:
arr = [12, 47, 34, 28, 178, 38, 534, 232, 543]; // исходный массив со значениями
max = 0;
for (i = 0; i < arr.length; i++)
{
if (arr[i] > max)
max = arr[i];
}
alert(max);
Вот и всё.
Хотя наверняка в нём есть какой-нибудь метод "выбрать максимум из массива". Но вам же алгоритм надо проиллюстрировать, да и не знаю я того метода :)
Адаптируете под бейсик - хорошо. Нет - больше я ничем помочь не могу.
CyberDaemon
21-05-2009, 21:01
Числа вводятся и попадают в массив. »
А если там стописяттыщмильёнов чисел? :) В задаче же не сказано, что их надо помнить все?
Первое введенное число принимаем за максимальное (присваиваем значение переменной).
Дальше в цикле:
Следующее введеное число сравниваем с переменной. Если оно больше - меняем значение переменной.
Повторяем до тех пор, пока вводятся числа.
Код на бейсике не скажу - не знаю.
А если там стописяттыщмильёнов чисел? В задаче же не сказано, что их надо помнить все? »
Значит, по окончании ввода можно вывести сообщение: "Программа выполнила недопустимую операцию и будет закрыта". Кто проверит?)
А так-то да, этот алгоритм лучше. Тем более меньше кода будет.
можно еще проверить способ с сортировкой массива (вдруг быстрее окажется)...
проверить способ с сортировкой массива »
не окажется. Время сортировки N*Log(N), а время поиска максимума N
я и не знал что на js можно так просто массивы делать, всю жизнь через Array
Pliomera
24-05-2009, 14:42
определяет максимальное значение из введённых чисел »
Max = 0
Do
Input x
If x > Max Then Max = x
Msgbox Max
Loop
CyberDaemon
24-05-2009, 21:49
Max = 0 »
Некорректно ;)
-1
-100
-234
-1.234
Результат =0, а должно быть -1
Input x
Max = x
Msgbox Max
Do
Input x
If x > Max Then Max = x
Msgbox Max
Loop
^^^Как-то так.
А как отсюда выйти?
Pliomera
24-05-2009, 23:22
Некорректно »
Согласен. Если рассматривать всю числовую ось, то переменную Max требуется инициализировать минимально возможным отрицательным числом типа Double, т.е. -1,79769313486231570E+308
А как отсюда выйти? »
Ctrl-Break.
Ну или например писать расширенный синтаксис оператора msgbox вида vbYesNo с вводной фразой и обработкой нажатия "No".
Почему Msgbox Max внутри цикла? Так он будет каждое новое число выводить, если оно больше предыдущих, а надо - один раз в конце.
люди добрые!
у друга экзамен - нужна неотложная помощь!
описать на VBA проект 5-бальной оценки знаний с выбором из 5 вариантов ответов
Delirium
30-12-2010, 08:42
shlakk, мы добрые, но не альтруисты. Дяди-кодописцы сидят на freelance.ru. Помочь можем только в исправлении ошибок.
А если друг дошел до экзамена и не знает простейшего - увы.
эх помощнички. сколько ж тут пафоса
лан спасибо
shlakk, не, ну посуди сам, человек идет на экзамен, просит помощи.
Ладно, поможем, расскажем, не вопрос. НО!
описать на VBA проект 5-бальной оценки знаний с выбором из 5 вариантов ответов »
Из этого не понятно вообще ничего!
Как помогать то? Морально? :)
Если хочется помощи, то надо ее соответственным образом попросить. И это не пафос, не понты, это нормальный(!) рабочий процесс.
Спроси толком что надо и получи толковый ответ. (А желать с неба луну - это все могут)
Triz, читайте решенные ветки форума (http://forum.oszone.net/post-1555095-2.html) сэр
а вот тут (http://forum.oszone.net/thread-193982.html) один из вариантов содержит полностью все что нужно, т.к. число элементов массива переменное и задается с помощью генератора «случайных» чисел
Triz, я бы написал её так:
Sub MAXIMUM()
Dim A(1 To 10, 1 To 10) As Integer, max As Integer, n As Integer, m As Integer, i As Integer, j As Integer
n = 10
m = 10
For i = 1 To n
For j = 1 To m
A(i, j) = Cells(i, j)
Next j
Next i
max = A(1, 1)
For i = 1 To n
For j = 1 To m
If A(i, j) > max Then
max = A(i, j)
End If
Next j
Next i
Cells(18, 1) = "МАКСИМУМ="
Cells(18, 2) = max
End Sub
В зависимости сколько там будет чисел, можно изменить массив.
Antonio46rus
09-11-2011, 21:27
Пожалуйста помогите решить, ни кто из группы ни может решить!
14. Заданы стороны квадрата, правильного треугольника и ра-диус круга. Вывести названия тел в порядке возрастания площадей, периметров и их отношения
Antonio46rus, Что у вас за группа, двоешников?
Задача для 7ого класса, или когда там площади треугольников с квадратами проходят?
Чему равны площади соотв. фигур? Быстро, без подсказки зала!
Чему равны их периметры? Давайте,давайте, вспоминаем. Площадь равностороннего треугольника, чему равна? Сумме. Сумме чего? Длин сторон. Сторон сколько? 3 Стороны какие? Равные. Значит ответ какой?
Все дальше нянчиться лень, идите учить мат.часть.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC