Зная химическую формулу, можно вычислить массовую долю химических элементов в веществе. Массовая доля элемента в вещества обозначается греч. буквой «омега» - ωЭ/В и рассчитывается по формуле:
где k – число атомов этого элемента в молекуле.
Задача 1
Какова массовая доля водорода и кислорода в воде (Н2О)?
1) Вычисляем относительную молекулярную массу воды:
Mr(Н2О) = 2*Аr(Н) + 1*Аr(О) = 2*1 + 1* 16 = 18
2) Вычисляем массовую долю водорода в воде:
3) Вычисляем массовую долю кислорода в воде. Так как в состав воды входят атомы только двух химических элементов, массовая доля кислорода будет равна:
Рис. 1. Оформление решения задачи 1
Задача 2
Рассчитайте массовую долю элементов в веществе H3PO4.
1) Вычисляем относительную молекулярную массу вещества:
Mr(Н3РО4) = 3*Аr(Н) + 1*Аr(Р) + 4*Аr(О)= 3*1 + 1* 31 +4*16 = 98
2) Вычисляем массовую долю водорода в веществе:
3) Вычисляем массовую долю фосфора в веществе:
4) Вычисляем массовую долю кислорода в веществе:
Объяснение:
#include <iostream>
using namespace std;
int data[20][20], x, y, minValue = -1;
void calc(int px, int py, int value){
value += data[px][py];
int temp = data[px][py];
if(px == x - 1 && py == y - 1) {
if(value < minValue || minValue == -1)
minValue = value;
return;
}
data[px][py] = -1;
if(px + 1 < x && data[px + 1][py] != -1) calc(px + 1, py, value);
if(py + 1 < y && data[px][py + 1] != -1) calc(px, py + 1, value);
data[px][py] = temp;
}
int main(){
cin >> x >> y;
for (int i = 0; i < x; ++i)
for (int j = 0; j < y; ++j)
cin >> data[i][j];
calc(0, 0, 0);
cout << minValue;
return 0;
}
Объяснение:
Я сделал это задание с рекурсии. Функция бесконечно вызывает сама себя и ищет наиболее оптимальный вариант. Фактически это просто подбор, но более сложно реализованный.
P. s. Если Вам ответ, отметьте его как лучший и жмякните на " " . Это мотивирует продолжать давать ответы дальше.