Написать на алгоритмическом языке
Вот и подошел к концу первый семестр в университете. Андроид Вася успешно сдал все экзамены и теперь хочет узнать, будет ли у него стипендия. В университете следующая политика предоставления стипендии.
Если у студента есть тройки, то стипендия ему не выплачивается.
Если студент сдал сессию на одни пятерки, то он получает именную стипендию.
Если студент не получил именную стипендию, и его средний не менее 4.5, то он получает повышенную стипендию.
Если студент не получил ни именную, ни повышенную стипендии, и при этом у него нет троек, то он получает обычную стипендию.
Васе определить, будет ли у него стипендия, и если да, то какая.
Исходные данные
В первой строке записано целое число n — количество экзаменов (1 ≤ n ≤ 10). В i-й из следующих n строк записано целое число mi — оценка, полученная Васей на i-м экзамене (3 ≤ mi ≤ 5).
Результат
Если у Васи не будет стипендии, выведите «None». Если у него будет обычная стипендия, выведите «Common», если повышенная — «High», если именнная — «Named».
Алгоритм решения задачи:
1. Считываем количество экзаменов, которое вводит пользователь (переменная n).
2. Создаем переменную scholarship и инициализируем ее значением "None" (так как изначально неизвестно, будет ли у Васи стипендия).
3. Создаем переменную total_grade и инициализируем ее значением 0 (будем использовать эту переменную для вычисления среднего балла).
4. Создаем переменную failed_grades и инициализируем ее значением 0 (счетчик троек).
5. Создаем переменную named_scholarship и инициализируем ее значением True (по умолчанию предполагаем, что Вася получит именную стипендию).
6. В цикле от 1 до n:
1. Считываем оценку, которую Вася получил на очередном экзамене (переменная grade).
2. Прибавляем оценку к переменной total_grade.
3. Если оценка равна 3, увеличиваем счетчик троек failed_grades на 1.
4. Если оценка не равна 5, изменяем значение переменной named_scholarship на False (так как Вася не получит именную стипендию).
7. Вычисляем средний балл, разделив значение переменной total_grade на n (переменная average_grade).
8. Если failed_grades равно 0 и named_scholarship равно True, значит Вася получает именную стипендию. Изменяем значение переменной scholarship на "Named".
9. Если named_scholarship равно False и average_grade >= 4.5, значит Вася получает повышенную стипендию. Изменяем значение переменной scholarship на "High".
10. Если значение переменной scholarship не изменено (осталось "None") и failed_grades равно 0, значит Вася получает обычную стипендию. Изменяем значение переменной scholarship на "Common".
11. Выводим значение переменной scholarship.
Пояснение к алгоритму:
1. Чтобы решить задачу, мы считываем количество экзаменов n, чтобы знать, сколько раз нужно выполнить цикл.
2. Переменная scholarship будет использоваться для хранения информации о типе стипендии, которую получит Вася.
3. Переменная total_grade будет использоваться для суммирования всех оценок, чтобы вычислить средний балл.
4. Переменная failed_grades будет использоваться для подсчета троек.
5. Переменная named_scholarship предполагает, что Вася получит именную стипендию. Она будет изменена на False, если Вася не получит пятерку.
6. В цикле мы считываем оценку Васи на каждом экзамене и выполняем соответствующие действия:
- Если Вася получил тройку, увеличиваем счетчик троек (failed_grades).
- Если Вася не получил пятерку, изменяем named_scholarship на False.
7. После цикла мы вычисляем средний балл, разделив сумму всех оценок на количество экзаменов.
8. Затем мы проверяем условия, чтобы определить тип стипендии Васи:
- Если у Васи нет троек и он получил пятерки на всех экзаменах, он получает именную стипендию.
- Если у Васи не именная стипендия и его средний балл не менее 4.5, он получает повышенную стипендию.
- Если не выполнено ни одно из вышеперечисленных условий, Вася получает обычную стипендию.
9. В конце мы выводим тип стипендии (значение переменной scholarship) или "None", если у Васи не будет стипендии.
Алгоритмическое решение на языке Python:
```python
n = int(input()) # Читаем количество экзаменов
scholarship = "None" # Переменная для хранения типа стипендии
total_grade = 0 # Сумма всех оценок
failed_grades = 0 # Количество троек
named_scholarship = True # Предполагаем, что Вася получит именную стипендию
# Вводим оценки по очереди
for i in range(n):
grade = int(input()) # Считываем оценку
total_grade += grade # Добавляем оценку к сумме
if grade == 3:
failed_grades += 1 # Увеличиваем счетчик троек
if grade != 5:
named_scholarship = False # Вася не получит именную стипендию
average_grade = total_grade / n # Вычисляем средний балл
# Определяем тип стипендии
if failed_grades == 0 and named_scholarship:
scholarship = "Named"
elif not named_scholarship and average_grade >= 4.5:
scholarship = "High"
elif failed_grades == 0:
scholarship = "Common"
print(scholarship) # Выводим тип стипендии
```
Теперь, если Вы испытываете затруднения или у Вас есть конкретные вопросы по решению задачи, пожалуйста, сообщите мне об этом.