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

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

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

 
 Ответить  Открыть новую тему 
> Проблема с процедурой сору
сообщение
Сообщение #1


Пионер
**

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

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


Создал простенькую програму для сложения двух обыкновенных дробей. При сложении дробей где числитель и знаменатель однозначные числа проблем нет, но если ,скажем, знаменатель число двузначное, то используется только последняя его цифра.
Код
program p_2;

     var
     half1,half2,buf:string;
     a1,a2:integer;
     b1,b2:integer;
     t1,t2,code:integer;

     begin
     write('Введите первую дробь:');
     readln(half1);
     write('Введите вторую дробь:');
     readln(half2);

     t1:=length(half1);
     t2:=pos('/',half1);
     buf:=copy(half1,1,(t2-1));
     val(buf,a1,code);
     buf:=copy(half1,t2,t1);
     val(buf,a2,code);

     t1:=length(half2);
     t2:=pos('/',half2);
     buf:=copy(half2,1,(t2-1));
     val(buf,b1,code);
     buf:=copy(half2,t2,t1);
     val(buf,b2,code);

     t2:=a2*b2;
     a1:=a1*b2;
     b1:=b1*a2;
     t1:=a1+b1;

     writeln('Дробь: ',t1/,'/',t2);
     end.


Сообщение отредактировано: Игорь -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
При сложении дробей где числитель и знаменатель однозначные числа проблем нет
Неправда, у тебя всегда будет знаменатель считаться нулем, потому что символ '/', который ты запихиваешь в преобразуемую строку, запрещает корректно преобразовать строку в число.
         buf:=copy(half1,t2+1,t1); { <--- Вот так слеш не будет включаться в строку... }
... и все работает.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Теперь и правда работает. От радости заставил програму ещё и сокращать полученную дробь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.03.2024 23:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name