![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Nubilius |
![]()
Сообщение
#1
|
Гость ![]() |
Есть такая задача: разделить 25-значное число на 3-х значное.
Испорльзую такой алгоритм: Код Program Olimp1; Uses CRT; var Chislo25: String[25]; Chislo3: String[3]; S1,S2,S3: String; SO1,SO2,SO3,CH3,X1,X2,X3,Z1,Z2,Z3,C1,C2,C3,D1,D2,D3: REAL; CODE: INTEGER; begin Chislo3 := ''; Chislo25 := ''; S1 := ''; S2 := ''; S3 := ''; CODE :=0; C1 :=0; C2 :=0; C3 :=0; CH3 :=0; SO1 :=0; SO2 :=0; SO3 :=0; Z1 := 0; Z2 := 0; Z3 := 0; X1 := 0; X2 := 0; X3 := 0; D1 :=0; D2 :=0; D3 :=0; WriteLn('_____________________________________'); WriteLn('‚ўҐ¤ЁвҐ ¤Ґ«Ё¬®Ґ (25 § Є®ў)'); ReadLn(Chislo25); WriteLn('‚ўҐ¤ЁвҐ ¤Ґ«ЁвҐ«м (3 § Є )'); ReadLn(Chislo3); S1 := Copy(Chislo25,1,12); S2 := Copy(Chislo25,13,12); S3 := Copy(Chislo25,24,1); Val(S1,X1,Code); Val(S2,X2,Code); Val(S3,X3,Code); Val(Chislo3,CH3,Code); Z1 := X1/CH3; Z2 := X2/CH3; Z3 := X3/CH3; C1 := Int(Z1); D1 := Frac(Z1); C2 := Int(Z2); D2 := Frac(Z2); C3 := Int(Z3); D3 := Frac(Z3); SO1 := C1; SO2 := D1*1000000*1000000+C2; SO3 := D2*10+D3; WriteLn('ЋвўҐв:'); WriteLn(SO1:12:0,SO2:12:0,SO3:12:12); repeat until KeyPressed; end. Но точность ответа составляет всего 12-16 знаков :(( Может кто-то знает лучшее решение? Решение обязательно на Turbo Pascal'е! (Желательно без Assemblera) |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 0:37 |