задача на системы счисления |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
задача на системы счисления |
Flipper |
Сообщение
#1
|
Гость |
задание: написать программу на языке паскаль, чтобы она переводила число из четверичной системы счиления в шестнадцетиричную с.с.
вот собственно что надо.......... ПОЖАЛУЙСТО, HELP |
Гость |
Сообщение
#2
|
Гость |
Помогите пожалуйста модифицировать программу перевода для больших целых чисел (>14 разрядов). Использую фукции Mod и т.п, которые только для целых.
Цитата var a,b,cc,r:integer; c,ab,dd:string; Function sn (a, n: integer): integer; Var i,s: integer; Begin sn := 0; s := 1; For i:=1 To n Do s := s*a; sn := s; End; Procedure make_to_ten (m: String; Var kk: String); var i, r : integer; l : char; Begin i := 0; r := 0; while i<>length(m) Do Begin l := m[length(m)-i]; {отделяем цифру} If ord(l)<=ord('9') Then r := r + (ord(l) - ord('0')) * sn (a, i) {для чисел 0,1,..,9} Else r := r + (ord(l) - ord('a') + 10) * sn (a, i); {для латинских букв} i := i + 1; End; str (r, kk); End; Function intg(d:String): integer; Var code,res: integer; Begin val(d,res,code); intg := res; End; begin write('Исходная система счисления: '); readln(a); write('Итоговая система счисления: '); readln(b); write('Число: '); readln( c ); ab := ''; If b=10 Then make_to_ten(c,ab) {переводим в десятичную СС} Else Begin make_to_ten(c,dd); {переводим в десятичную СС} cc := intg(dd); {переводим строковую информацию в целочисленную} while cc>0 Do Begin r := cc Mod b; {берем остаток} cc := cc Div b; {берем целое частное} If r>=10 Then ab := chr(ord('a')+r-10)+ab Else ab := chr(48+r)+ab; End; End; writeln ('-----------------------'); writeln ('Итог: ',ab); readln; End. |
Текстовая версия | 7.05.2024 22:00 |