1 . Петя Пяточкин считает склады
Hазва программы : syllable . *
Любознательный киевский школьник Петя Пяточкин как-то заинтересовался языкознанием - наукой о языке. Для важного исследования Пете нужно выяснить , сколько слогов имеют названия натуральных чисел ( количественные числительные в именительном падеже ) , т.е. сколько гласных букв они содержат . Помогите Пете , написав программу , которая дает ответ на этот вопрос.
входные данные
Во входном файле указано натуральное число n , количество складов для которого нужно посчитать . Число n не превышает 100.
выходные данные
Единственная строка выходного файла должна содержать количество складов , которые в своем названии украинском языке имеет число n .
примеры
входной файл
syllable.in
1
25
Исходный файл
syllable.out
2
3
Помощь к примерам
Слово «один » имеет два состава (содержит две гласные буквы ) . Название числа 25 - « двадцать пять » - имеет три состава (содержит три гласные буквы ) .
----------------------------------------------------------------------------------------------------------------------
МОЯ ПРОГРАММА :
program golosni;
var
x1,x2,x3,x4,s,s1:integer;
p1,p2:integer;
t:text;
tv:text;
begin
assign(t,'syllable.in');
reset(t);
read(t,p1);
close(t);
s:=0;
x2:=trunc(p1/10);
x1:=p1-(x2*10);
if x2=1 then
case x1 of
0: s:=s+2;
1: s:=s+4;
2: s:=s+3;
3: s:=s+3;
4: s:=s+4;
5: s:=s+3;
6: s:=s+3;
7: s:=s+3;
8: s:=s+4;
9: s:=s+3;
end
else begin
case x2 of
2: s:=s+2;
3: s:=s+2;
4: s:=s+2;
5: s:=s+3;
6: s:=s+3;
7: s:=s+3;
8: s:=s+4;
9: s:=s+4;
end;
case x1 of
0: s:=s+1;
1: s:=s+2;
2: s:=s+1;
3: s:=s+1;
4: s:=s+3;
5: s:=s+1;
6: s:=s+1;
7: s:=s+1;
8: s:=s+2;
9: s:=s+2;
end;
end;
reset(t);
read(t,p2);
close(t);
s1:=0;
x4:=trunc(p2/10);
x3:=p2-(x4*10);
if x4=1 then
case x3 of
0: s1:=s1+2;
1: s1:=s1+4;
2: s1:=s1+3;
3: s1:=s1+3;
4: s1:=s1+4;
5: s1:=s1+3;
6: s1:=s1+3;
7: s1:=s1+3;
8: s1:=s1+4;
9: s1:=s1+3;
end
else begin
case x4 of
2: s1:=s1+2;
3: s1:=s1+2;
4: s1:=s1+2;
5: s1:=s1+3;
6: s1:=s1+3;
7: s1:=s1+3;
8: s1:=s1+4;
9: s1:=s1+4;
end;
case x3 of
0: s1:=s1+1;
1: s1:=s1+2;
2: s1:=s1+1;
3: s1:=s1+1;
4: s1:=s1+3;
5: s1:=s1+1;
6: s1:=s1+1;
7: s1:=s1+1;
8: s1:=s1+2;
9: s1:=s1+2;
end;
end;
assign(tv,'syllable.out');
rewrite(tv);
writeln(tv,s);
writeln(tv,s1);
close(tv);
writeln ('Kilkist golosnyh ' , s,',',s1);
readln;
end.
----------------------------------------------------------------------------------------------------------------------
Все работает, щитает правильно (делал с учителем по инфоматике. Ми делали для вычисления из 1 числа). Мне нужно было переделать чтобы считывало из файла 2 числа (каждое с нового рядка) и вычисляло отдельно для этих двух чисел и звписывало их в выходной файл. Но проблема: щитает правильно только для первого числа, для второго выводит тоже значение что и для первого.
пример. нужно:
2
3
Выводит:
2
2.
Помогите найти ошибку. Зарание спасибо.