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

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

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

> Перевод из 16 в 10 в 8.
Гость
сообщение 7.10.2007 22:33
Сообщение #1


Гость






Program My;
var a16,b16,c16,I,summ1,len1,step1,a8,b8,c8,len2,summ2,step2:integer;
tem1,tem2,s:string;

begin
writeln('Vvedite chislo v 16-richnoi sisteme:');
read(a16);
str(a16,tem1);
len1:=length(tem1);
step1:=1;
b16:=a16 mod 10;
a16:=a16 div 10;
c16:=b16;
summ1:= summ1+c16;
step1:=step1*16;
for I:=2 to len1 do begin
b16:=a16 mod 10;
a16:=a16 div 10;
c16:=b16*step1;
summ1:=summ1+c16;
step1:=step1*16;
end;
writeln('Chislo v 10-icnoi sisteme: ',summ1);
readln;


step2:=1;
str(summ1,tem2);
len2:=length(tem2);
a8:=summ1;
c8:=0;
for I:=1 to len2+1 do begin
b8:=a8 mod 8;
a8:=a8 div 8;
c8:=c8+b8*step2;
step2:=step2*10;
end;
writeln('Chislo v 8-richnoi systeme: ',c8);
readln;
end.


вот тока я не знаю как задать буквам A-F значение 10-15. не меняя стиля проги.


 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 15)
мисс_граффити
сообщение 7.10.2007 22:43
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


а чем предложенный в FAQ вариант не понравился?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 17:35
Сообщение #3


Гость






хоть убейте все просмотрел. не нашел.
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 8.10.2007 19:03
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Правда?
Общие вопросы по математике.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 21:01
Сообщение #5


Гость







Цитата
Правда?Общие вопросы по математике.

я не пойму что там с End. я не могу понять постороени того кода.((
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 21:04
Сообщение #6


Гость






вот я сделал прогу из 16 в 10. но это как то не по той схеме что вы предлагаете. тока теперь у меня запар с переводом в 8 систему..

program iz16v10;
uses crt;
var n, x16,step: integer;
x10 : LongInt;
s : string;
begin
clrscr;
writeln('Vvedite 16-chnoe chislo:');
readln(s);
n:=0;
x10:=0;
while n<length(s) do
begin
n:=n+1;
case s[n] of
'0'..'9': val(s[n],x16,step);
'a','A': x16:=10;
'b','B': x16:=11;
'c','C': x16:=12;
'd','D': x16:=13;
'e','E': x16:=14;
'f','F': x16:=15;
else begin
writeln('Vvedeno ne 16-chnoe chislo!');
readln;
exit;
end;
end;
x10:=x10+x16*round(exp((length(s)-n)*ln(16)));
end;
writeln('10-chnaya sistema ', x10);
readln;
end.

 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 8.10.2007 21:14
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


можно по аналогии...
а можно из 16 в 8 через 2. алгоритм знаешь?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 21:22
Сообщение #8


Гость






мне кажется это будет дольше. а вобще не знаю.
 К началу страницы 
+ Ответить 
volvo
сообщение 8.10.2007 21:26
Сообщение #9


Гость






Здесь глянь:
Системы счисления
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 21:32
Сообщение #10


Гость






ага там типа можно по аналогии сделать из 16 в 8. тока там из 4 в 2. щас подумаю
 К началу страницы 
+ Ответить 
volvo
сообщение 8.10.2007 21:39
Сообщение #11


Гость






Тот пост, на который я тебе дал ссылку - это HexToOct (16 -> 8), смотри внимательнее
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 21:40
Сообщение #12


Гость






да я уже понял.
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 21:46
Сообщение #13


Гость






страно все правильно. тока вконце end не принимает.
 К началу страницы 
+ Ответить 
volvo
сообщение 8.10.2007 21:48
Сообщение #14


Гость






Чего "не принимает"? Там только функции... Покажи основную программу, которую ты написал...
 К началу страницы 
+ Ответить 
Гость
сообщение 8.10.2007 22:27
Сообщение #15


Гость






я пошел спать. сейчас я не понимаю ничего.
как я понял фуекции нада записать в ворядке правильном.
а пос ле begin писать
writeln('cislo v 16);
readln('res');
а в конце перед end тоже самое

 К началу страницы 
+ Ответить 
Гость
сообщение 9.10.2007 18:14
Сообщение #16


Гость






вот что получилось
program iz16v10;
uses crt;
var n, x16,step: integer;
x10 : LongInt;
s ,x8: string;Numeral:string[1];
begin
clrscr;
writeln('Vvedite 16-chnoe chislo:');
readln(s);
n:=0;
x10:=0;
while n<length(s) do
begin
n:=n+1;
case s[n] of
'0'..'9': val(s[n],x16,step);
'a','A': x16:=10;
'b','B': x16:=11;
'c','C': x16:=12;
'd','D': x16:=13;
'e','E': x16:=14;
'f','F': x16:=15;
else begin
writeln('Vvedeno ne 16-chnoe chislo!');
readln;
exit;
end;
end;
x10:=x10+x16*round(exp((length(s)-n)*ln(16)));
end;
writeln('Chislo v 10-chnoi systeme:', x10);
While x10>0 Do
begin
str(x10 mod 8,Numeral);
x10:=x10 div 8;
x8:=Numeral+x8;
end;
Writeln('Chislo v 2-chnoi systeme:', x8);
readln;
end.


 К началу страницы 
+ Ответить 

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

 



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