IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Программа для вычисления гласных
user_a
сообщение 1.12.2013 0:16
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


ЗАДАНИЕ :
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.
Помогите найти ошибку. Зарание спасибо.

Сообщение отредактировано: APAL - 7.12.2013 21:20
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 17:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"