- Приветствие и представление
- Перечень моих репозиториев исходного кода
- Расчет относительной молекулярной массы
- Предметные задачи (Химия) — массовая доля элемента в веществе
- Решение простых задач
- Олимпиадное программирование
- Заключение
- Доля площади городов
- Решение:
- Ответ:
- Наличие денег на счету после двух лет
- Решение:
- Ответ:
Приветствие и представление
Привет! Меня зовут Аргентум, или же Бронислав. На момент написания этой статьи мне 15 лет. Недавно я победил в школьном туре олимпиады по информатике, а скоро иду на муниципальный этап.
По нынешней системе всероссийских олимпиад, программирование на олимпиаде по информатике начинается с 8 класса. У нас в школе олимпиада проводилась в формате онлайн, на платформе Сириус. Для решения задач по программированию можно было использовать Python, C++, C#, Java, Pascal и некоторые другие. Интересно, что я потратил ~20 минут олимпиадного времени на подключение стабильного интернета.
Я бы не сказал, что я гений программирования, второй Торвальдс, Страуструп, Столлман, Гвидо Ван Россум, Билл Гейтс, Цукерберг вместе взятые. Но я старался решать. За это время, пока велись расчеты победителя школьного тура, я решил изучить олимпиадное программирование и решение задач по программированию. И эти задачи могут касаться также других предметов — химии, физики, математики и так далее, т.к. я решил, что решая такие задачи, я также закрепляю пройденный материал других.
Перечень моих репозиториев исходного кода
Начнем с простого и легкого — определение относительной молекулярной массы вещества. Эту тему обычно изучают первой в курсе по химии в школе.
Расчет относительной молекулярной массы
Ниже я приведу формулу для вычисления относительной молекулярной массы на примере NaCl (хлорид натрия, или же поваренная соль).
Для реализации такого калькулятора нам потребуется парсер химических функций и сам класс элемента.
import re
from collections import CounterСоздание класса элемента и словаря элементов:
class Element: def __init__(self, symbol, atomic_mass): self.symbol = symbol self.atomic_mass = atomic_mass
elements = { H: Element(H, 1.007), He: Element(He, 4.002), Li: Element(Li, 6.941), Be: Element(Be, 9.012), B: Element(B, 10.81), C: Element(C, 12.011), N: Element(N, 14.007), O: Element(O, 15.999), F: Element(F, 18.998), Ne: Element(Ne, 20.18), Na: Element(Na, 22.99)
}
## Код для вычисления молекулярной массы формулыПредметные задачи (Химия) — массовая доля элемента в веществе
Ниже вы видите, как рассчитать массовую долю водорода в формуле H2O (вода).
Массовая доля водорода равна 11.1%.
Формула: делим атомную массу элемента на молекулярную массу формулы и умножаем на 100%.
## Код для расчета массовой доли элемента в веществеРеализация на Python.
Это были лишь примеры задач, которые я изучал и решал во время подготовки к олимпиаде по информатике. Больше информации можно найти в моих репозиториях с исходным кодом.
Решение простых задач
Решение
rows = 12
for i in range(rows): for j in range(i): print(j, end=) print()Выше представлено решение
Олимпиадное программирование
Большинство соревнований для программистов требует быстрой и качественной реализации решения проблемы. Программисты пытаются сделать код как можно короче, быстрее и тратить меньше ресурсов, жертвуя при этом читабельностью и стилем кода.
Любой спортивный программист выбрал бы нечитабельное решение за 1 строку кода, чем такое же, но за две.
Принцип олимпиадного программирования — это участие в соревнованиях по решению нетривиальных алгоритмических задач. Программисту важно быстро решить задачу, не сделав ошибок (но их нет только в том коде, которого не существует). Жюри готовит описание задачи, формат входных и выходных данных, сколько максимум ресурсов может использовать программа.
Для того чтобы стать профессионалом в олимпиадном программировании, вам надо решать не только задачи на программирование, но и простые, логические задачи.
Также вам нужно будет изучить динамическое программирование — способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой, которые выглядят как набор подзадач, сложность которых меньше исходной. В этом случае время вычислений по сравнению с наивными методами можно значительно сократить. Чтобы решить поставленную задачу, требуется решить отдельные части задачи (подзадачи), после чего объединить решения подзадач в одно общее решение. Часто многие из этих подзадач одинаковы.
Заключение
Олимпиадное программирование, решение задач — штука сложная, но полезная. Они заставляют думать и отметать неэффективные решения.
Можно начинать с Python, но постепенно переходить на C++, если хотите участвовать в более сложных олимпиадах.
Минимум для изучения в программировании — переменные, функции, операторы и логика, массивы, циклы, процедуры, классы, стандартные библиотеки.
Сайты для решения задач по программированию:
- Codeforces
- Topcoder
- AtCoder
Задавайте вопросы и комментируйте, я рад услышать любое мнение. И конечно, ставьте плюсы!
Представленный тест раскрывает тему, связанную с решением разного рода усложненных текстовых задач на проценты. Подобные образцы и их различные вариации неизменно встречаются на экзаменах ЕГЭ и ОГЭ. Задачи из первых частей экзаменационных вариантов, как правило, достаточно простые и их отработка не составляет труда для репетитора по математике, тогда как задачи повышенной сложности потребуют особых навыков, в том числе и навыков преподавания.
Тест предназначен для сильных учащихся 6 — 7 классов, а также для абитуриентов — выпускников, желающих подготовиться к написанию профильного ЕГЭ.
Попробуйте пройти тест самостоятельно. Проверьте себя. Если справитесь — значит обращаться к репетитору по математике для тренировки умения решать простые (типовые) задач Вам не обязательно.
Доля площади городов
В одном городе 65% всей площади занимают парки, во втором — 45%. Известно, что для обоих городов вместе, парки занимают 53% суммарной площади этих городов. Какую часть суммарной площади составляет первый город?
Решение:
Пусть суммарная площадь обоих городов равна 100 единицам. Тогда по условию задачи:
- В первом городе площадь парков составляет 65% от 100, т.е. 65 единиц.
- Во втором городе площадь парков составляет 45% от 100, т.е. 45 единиц.
- Суммарная площадь парков в обоих городах составляет 53% от 100, т.е. 53 единицы.
Из этого следует, что первый город занимает [ \frac{65}{100} = 0.65 ] часть суммарной площади обоих городов.
Ответ:
Первый город занимает 65% суммарной площади.
Наличие денег на счету после двух лет
Галя положила в банк 10000 рублей. Банк дает 10% годовых. Какая сумма окажется на счету Галины после 2-х лет хранения?
Решение:
После первого года сумма на счете Галины увеличится на 10%:
[ 10000 + \frac{10}{100} \times 10000 = 10000 + 1000 = 11000 ] рублей.
После второго года сумма на счете будет равна:
[ 11000 + \frac{10}{100} \times 11000 = 11000 + 1100 = 12100 ] рублей.
Ответ:
Через два года на счету Галины окажется 12100 рублей.




