powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Увеличивание среднего балла
11 сообщений из 11, страница 1 из 1
Увеличивание среднего балла
    #39245708
Roken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, не могу решить никак задачу. Имеется средний балл 9,5. Числа этого среднего балла 9 и 10 ((9+10)/2)). Нужно чтобы средний балл составил 9,8. для этого нужно три десятки ((9+10+10+10+10))/5) так нужно написать программу, которая вычисляет какие нужно числа для повышения и их количество. Знаю идею, но никак не могу разобраться с циклом WHILE. Кто захочет помочь, можете написать на любом языке (VBA, Pascal....)
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245759
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кой ещё While, мать моя кошка...
Берётся старый набор из N0 значений, дающий средний балл A0. Чтобы получить средний балл A1 добавляем k десяток:
A1 = (A0 * N0 + 10 * k)/(N0 + k),
A1(N0 + k) = (A0 * N0 + 10 * k),
k = (A1 - A0) * N0 / (10 - A1).
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245764
Roken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrCat,
Неужели тут даже for не надо? Для считывания количества k?
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245765
Roken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roken,
Извиняюсь да тут больше ничего не надо. Но вы рассмотрели тут случай при добавлении только десяток, ну а если будет необходимость добавления девяток или восьмёрок, то тут понадобиться цикл, не так ли?
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245768
Roken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub счёт ()
Dim k As Integer
Dim a As Integer
a = 9.8 ' новый средний балл
a = (Cells(23, 2) * Cells(23, 3) + 10 * k) / (Cells(23, 3) + k)
a(Cells(23, 3) + k) = (Cells(23, 2)) * (Cells(23, 3) + 10 * k) ' ошибка
k = (a - Cells(23, 2)) * Cells(23, 3) / (10 - a) ' ошибка
MsgBox ("k")
End Sub


набрал всё как у вас
cells(23,2) = средний балл текущий
cells(23,3) = кол-во оценок текущее
Что не так?
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245771
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, общий случай чуть сложнее. Рассмотрим на примере. Пусть нужно из 9,5 = (9, 10) получить 9,7.
Средний балл получается из рациональной дроби. Попытаемся получить её верх - целое число. 9,7 =97/10. Эта дробь неприводима, потому для получения балла 9,7 нужно как минимум 10 оценок. У нас есть 2 оценки, следовательно добавить придётся 8. У нас уже есть 19 баллов, следовательно получить надо 78. 78/8 это 9,75. Ceil(9,75) = 10.
10 * 8 = 80. Если мы добавим 8 десяток, то получим 80 - 78 = 2 лишних балла, которые надо раскидать между этими 8-ю десятками. Например, добавить 7 десяток и одну восьмёрку. Или 6 десяток и две девятки. Ферштейн?
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245773
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И да, ещё один момент. Если полученного минимального количества оценок недостаточно, можно использовать Ceil(k), полученного по формуле из первого комментария. Т.е. нужно получить такое представление дроби, чтобы в знаменателе было число >=, чем Ceil(k)
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245774
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roken, 9.8 это девять целых и восемь десятых.

Или:



Эх ты... троешник.
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245776
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьху... латекс глюканул. Вобщем добавь столько дробей сколько нужно справа.
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245781
Roken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrCat,
Да, согласен, только напишите мне пожалуйста код, потому что по тому который написал в Vba выбивает ошибку. С остальными мелочами я сам разберусь.
...
Рейтинг: 0 / 0
Увеличивание среднего балла
    #39245840
Roken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrCat,
Но можно рассмотреть ещё один вариант, который наиболее легче 9. Это как Вы написали 98/10 или 49/5, так как это сократимая дробь. То есть мне нужно получить ещё три десятки, чтобы чисел стало пять и сумма у меня тогда как раз будет 49. Я к чему это, что если дробь сократима, то её нужно будет сокращать по максимуму, чтобы дописать чисел как можно меньше.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Увеличивание среднего балла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]