#include <iostream>
#include <string>
#include <algorithm>
#include <locale>
using namespace std;
struct Substance// структура Жидкости
{
string name;
double d;
};
int main() {
//setlocale(LC_ALL, "Russian");
std::locale::global(std::locale());
Substance Substances [30] = {
{ "Voda", 1.00 }, // Жидкости
{ "Kerosin", 0.82 },
{ "Morskaya voda", 1.03 },
{ "Spirt", 0.80 },
{ "Rtut", 13.60 },
{ "Bensin", 0.74 },
{ "Maslo podsoln", 0.93 },
{ "Aceton", 0.79 },
{ "Efir", 0.71 },
{ "Neft", 0.80 },
{ "Azot", 0.00125 }, // Газы
{ "Kislorod", 0.001429 },
{ "Vodorod", 0.00009 },
{ "Uglekisly gas", 0.00198 },
{ "Metan", 0.000717 },
{ "Gely", 0.00018 },
{ "Prirodny gas", 0.0008 },
{ "Ugarny gas", 0.00125 },
{ "Xlor", 0.00321 },
{ "Aluminy", 2.7 }, // Твердые вещества
{ "Zoloto", 19.3 },
{ "Svinec", 11.3 },
{ "Serebro", 10.5 },
{ "Olovo", 7.3 },
{ "Stal", 7.8 },
{ "Led", 0.90 },
{ "Parafin", 0.90 },
{ "Dub", 0.70 },
{ "Sosna", 0.40 }
};
{
string str;
getline (cin, str);
auto sub = std::find_if(begin(Substances), end(Substances),
[str](const Substance &s){ return s.name == str; }
);
if(sub == end(Substances)) {
cout << str << " не найдено" << endl;
}
else {
cout << "Плотность: " << sub->d << " г/см.куб" << endl;
}
}
{
char i;
int a, b;
cin >> a >> i >> b;
if(i == '/') {
if (b != 0) {
float d = static_cast<float>(a)/static_cast<float>(b);
cout << a << " / " << b << " = " << d << endl;
auto sub = std::find_if(begin(Substances), end(Substances),
[d](const Substance &s){ return s.d == d; }
);
if(sub == end(Substances)) {
cout << d << " не найдено" << endl;
}
else {
cout << "Найдено: " << sub->name << endl;
}
}
}
else {
cout << "Знак в формуле не верен" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bG9jYWxlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBTdWJzdGFuY2UvLyDRgdGC0YDRg9C60YLRg9GA0LAg0JbQuNC00LrQvtGB0YLQuAp7CiAgICBzdHJpbmcgbmFtZTsKICAgIGRvdWJsZSBkOwp9OwoKaW50IG1haW4oKSB7CgkvL3NldGxvY2FsZShMQ19BTEwsICJSdXNzaWFuIik7CglzdGQ6OmxvY2FsZTo6Z2xvYmFsKHN0ZDo6bG9jYWxlKCkpOwoKCVN1YnN0YW5jZSBTdWJzdGFuY2VzIFszMF0gPSB7CgkJCQl7ICJWb2RhIiwgMS4wMCB9LCAvLyDQltC40LTQutC+0YHRgtC4CgkJCQl7ICJLZXJvc2luIiwgMC44MiB9LAoJCQkJeyAiTW9yc2theWEgdm9kYSIsIDEuMDMgfSwKCQkJCXsgIlNwaXJ0IiwgMC44MCB9LAoJCQkJeyAiUnR1dCIsIDEzLjYwIH0sCgkJCQl7ICJCZW5zaW4iLCAwLjc0IH0sCgkJCQl7ICJNYXNsbyBwb2Rzb2xuIiwgMC45MyB9LAoJCQkJeyAiQWNldG9uIiwgMC43OSB9LAoJCQkJeyAiRWZpciIsIDAuNzEgfSwKCQkJCXsgIk5lZnQiLCAwLjgwIH0sCgkJCQl7ICJBem90IiwgMC4wMDEyNSB9LCAvLyDQk9Cw0LfRiwoJCQkJeyAiS2lzbG9yb2QiLCAwLjAwMTQyOSB9LAoJCQkJeyAiVm9kb3JvZCIsIDAuMDAwMDkgfSwKCQkJCXsgIlVnbGVraXNseSBnYXMiLCAwLjAwMTk4IH0sCgkJCQl7ICJNZXRhbiIsIDAuMDAwNzE3IH0sCgkJCQl7ICJHZWx5IiwgMC4wMDAxOCB9LAoJCQkJeyAiUHJpcm9kbnkgZ2FzIiwgMC4wMDA4IH0sCgkJCQl7ICJVZ2FybnkgZ2FzIiwgMC4wMDEyNSB9LAoJCQkJeyAiWGxvciIsIDAuMDAzMjEgfSwKCQkJCXsgIkFsdW1pbnkiLCAyLjcgfSwgLy8g0KLQstC10YDQtNGL0LUg0LLQtdGJ0LXRgdGC0LLQsAoJCQkJeyAiWm9sb3RvIiwgMTkuMyB9LAoJCQkJeyAiU3ZpbmVjIiwgMTEuMyB9LAoJCQkJeyAiU2VyZWJybyIsIDEwLjUgfSwKCQkJCXsgIk9sb3ZvIiwgNy4zIH0sCgkJCQl7ICJTdGFsIiwgNy44ICB9LAoJCQkJeyAiTGVkIiwgMC45MCB9LAoJCQkJeyAiUGFyYWZpbiIsIDAuOTAgfSwKCQkJCXsgIkR1YiIsIDAuNzAgfSwKCQkJCXsgIlNvc25hIiwgMC40MCB9Cgl9OwoKCXsKCQlzdHJpbmcgc3RyOwoJCWdldGxpbmUgKGNpbiwgc3RyKTsKCQlhdXRvIHN1YiA9IHN0ZDo6ZmluZF9pZihiZWdpbihTdWJzdGFuY2VzKSwgZW5kKFN1YnN0YW5jZXMpLAoJCQkJW3N0cl0oY29uc3QgU3Vic3RhbmNlICZzKXsgcmV0dXJuIHMubmFtZSA9PSBzdHI7IH0KCQkpOwoJCWlmKHN1YiA9PSBlbmQoU3Vic3RhbmNlcykpIHsKCQkJY291dCA8PCBzdHIgPDwgIiDQvdC1INC90LDQudC00LXQvdC+IiA8PCBlbmRsOwoJCX0KCQllbHNlIHsKCQkJY291dCA8PCAi0J/Qu9C+0YLQvdC+0YHRgtGMOiAiIDw8IHN1Yi0+ZCA8PCAiINCzL9GB0Lwu0LrRg9CxIiA8PCBlbmRsOwoJCX0KCX0KCQoJewoJCWNoYXIgaTsKCQlpbnQgYSwgYjsKCQljaW4gPj4gYSA+PiBpID4+IGI7CgkgCgkJaWYoaSA9PSAnLycpIHsKCQkJaWYgKGIgIT0gMCkgewoJCQkJZmxvYXQgZCA9IHN0YXRpY19jYXN0PGZsb2F0PihhKS9zdGF0aWNfY2FzdDxmbG9hdD4oYik7CgkJCQljb3V0IDw8IGEgPDwgIiAvICIgPDwgYiA8PCAiID0gIiA8PCBkIDw8IGVuZGw7CgkJCQlhdXRvIHN1YiA9IHN0ZDo6ZmluZF9pZihiZWdpbihTdWJzdGFuY2VzKSwgZW5kKFN1YnN0YW5jZXMpLAoJCQkJCQlbZF0oY29uc3QgU3Vic3RhbmNlICZzKXsgcmV0dXJuIHMuZCA9PSBkOyB9CgkJCQkpOwoJCQkJaWYoc3ViID09IGVuZChTdWJzdGFuY2VzKSkgewoJCQkJCWNvdXQgPDwgZCA8PCAiINC90LUg0L3QsNC50LTQtdC90L4iIDw8IGVuZGw7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQljb3V0IDw8ICLQndCw0LnQtNC10L3QvjogIiA8PCBzdWItPm5hbWUgPDwgZW5kbDsKCQkJCX0KCQkJfQoJCX0KCQllbHNlIHsKCQkJY291dCA8PCAi0JfQvdCw0Log0LIg0YTQvtGA0LzRg9C70LUg0L3QtSDQstC10YDQtdC9IiA8PCBlbmRsOwoJCX0KCX0KCXJldHVybiAwOwp9