apraksts uzdevumi suutiit jauns statuss rezultati helps apraksts

molekula Molekulmasa 1 sek.


 Uzdevums

Molekulu var aprakstīt kā tās ķīmiskajā formulā ietilpstošo atomu virkni, kur katru atomu apzīmē kāds burts. Piemēram, ar H tiek apzīmēts ūdeņradis, ar C - ogleklis, ar O - skābeklis. Tad formula COOH apzīmē molekulu, kas sastāv no viena oglekļa, diviem skābekļa un viena ūdeņraža atoma.

Lai formulas pierakstītu īsāk, lietosim sekojošus likumus:

  • Burtus, kas apzīmē noteiktus atomus, var grupēt iekļaujot tos iekavās.
    Piemēram, formula CH(OH) satur OH grupu. Grupas var būt iekļautas - viena grupa var saturēt citas grupas.
  • Ja vienā formulā ietilpst vairāki vienādi atomi, tad to var pierakstīt, aiz atoma apzīmējuma liekot skaitli, kas apzīmē šo atomu skaitu. Tā formulas COOHHH vietā var rakstīt CO2H3 un šī formula apzīmē molekulu, kas sastāv no viena oglekļa, diviem skābekļa un trim ūdeņraža atomiem.
  • Ja vienā formulā ietilpst vairākas vienādas grupas, tad to var pierakstīt, aiz grupas apzīmējuma liekot skaitli, kas apzīmē šo grupu skaitu. Tā formulas CH(CO2H)(CO2H)(CO2H) vietā var rakstīt CH(CO2H)3 un abi šie pieraksti atbilst molekulai, kas sastāv no četriem oglekļa, četriem ūdeņraža un sešiem skābekļa atomiem.
  • Skaitlis, kas rakstīts aiz burta vai grupas, vienmēr ir lielāks par 1 un mazāks par 10.

Molekulas masu aprēķina kā tās visu atomu summu. Viena ūdeņraža atoma masa ir 1, viena oglekļa atoma - 12, un viena skābekļa atoma - 16.

Uzrakstiet programmu, kas dotai molekulas formulai aprēķina šīs molekulas masu!

 
 Ievaddati

Teksta faila molekula.dat vienīgajā rindā dota simbolu virkne, kuras garums nepārsniedz 100 simbolus - molekulas formula. Virknē var būt tikai simboli H, C, O , (, ), 2, 3, 4, 5, 6, 7, 8, 9.

 
 Izvaddati

Teksta faila molekula.rez vienīgajā rindā jāizvada naturāls skaitlis - molekulas masa. Zināms, ka rezultāta vērtība nepārsniedz 10000.

 
 Piemērs

molekula.datmolekula.rez
COOH
45
  
molekula.datmolekula.rez
CH(CO2H)3
148
  
molekula.datmolekula.rez
((CH)2(OH2H)(C(H))O)3
222

 
 Atsauces
Uzdevums izmantots Horvātijas informātikas olimpiādē 2001.gadā

Drukāšanai

 

Copyright © 2001 Girts Folkmanis, LIIS