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

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

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

 
 Ответить  Открыть новую тему 
> Представление чисел и машинные операции, c.c. деление в 2-ой с.с
bakalava92
сообщение 24.10.2009 13:20
Сообщение #1


Новичок
*

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

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


Помогите решить пожалуйста!

Даны два числа в десятичной системе счисления. Написать программу, которая выполняет следующие действия:
1.Перевести оба числа в двоичную систему счисления.
2.Выполнить над переведенными числами операцию деления.
3.Выполнить операцию деления над числами в десятичной системе счисления и перевести результат в данную систему счисления.
4.Сравнить полученные результаты.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 24.10.2009 14:24
Сообщение #2


Знаток
****

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

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


а на что делить эти числа?


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
bakalava92
сообщение 24.10.2009 14:36
Сообщение #3


Новичок
*

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

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


первое число разделить на второе, первое число - 312, второе - 6

Сообщение отредактировано: bakalava92 - 24.10.2009 14:37
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 24.10.2009 15:12
Сообщение #4


Знаток
****

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

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


все ясно

Сообщение отредактировано: maksimla - 24.10.2009 15:16


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 24.10.2009 18:57
Сообщение #5


Знаток
****

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

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


Я уже можно сказать решил но осталось это двоичного кода деление


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
bakalava92
сообщение 24.10.2009 20:19
Сообщение #6


Новичок
*

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

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


перевести в двоичную я тоже смог))сам не понимаю как числа делить в двоичной, если бы знал возможно бы написал программу сам)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 25.10.2009 15:39
Сообщение #7


Знаток
****

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

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


мне так объяснили в той теме как двоичный код делят но я чего то не могу алгоритм сделать может быть кто то другой тебе решит эту задачю


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
bakalava92
сообщение 25.10.2009 15:56
Сообщение #8


Новичок
*

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

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


сам попробую, я просто не знал как деление выполняется)) нам в университете объясняли с восстановлением остатка и без восстановления остатка, я ни чего не понял т.к практики не было никакой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 25.10.2009 16:10
Сообщение #9


Знаток
****

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

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


program Noname0;
var j,i,d,b,k:integer;

xc,x,xx,xy:int64;
p:array [1..2] of int64;
a:array [1..2] of integer;
m:array [0..2] of 0..30;
y:array [1..2,0..17] of 0..1;
{**********s desetricnoi v dvoicnuju**********}
procedure dv(a,i:integer);
begin
j:=0;
while a<>0 do
begin
inc(j);
y[i,j]:=a mod 2;
a:=a div 2;
end;
m[i]:=j;
end;
begin
writeln('vvedite dva cislo');
for i:=1 to 2 do
begin
readln(a[i]);
dv(a[i],i);
end;
for i:=1 to 2 do
begin
for j:=m[i] downto 1 do
write(y[i,j]);
writeln ;
end;

{********eto v odno cislo dvoicniji odno cislo}
x:=1;
i:=2;
b:=m[i];
k:=10;
for d:=m[i] downto 1 do
begin
for j:=1 to b-1 do
x:=x*k;
dec(b);
xc:=xc+x*y[i,d];
x:=1;
end;
p[i]:=xc;
writeln(p[i]);
xc:=0;
{*************************************************888}

{ eto delenije dokonca nedonisano }
x:=1;
i:=1;
k:=10;
b:=0;
for d:=m[i] downto 1 do
begin
inc(b);
for j:=1 to b-1 do
x:=x*k;
if x=0 then xc:=xc+y[i,d]
else xc:=xc*k+y[i,d];
x:=1;
if xc>=p[2] then
begin
xx:=xc;
xy:=p[2];


end
end;
p[i]:=xc;
writeln(p[i]);
xc:=0;

{*************8tyt***************}
{ xc:=p[1] div p[2];
writeln(xc); }
{**********************tut**************}
{ i:=1;
while p[1]<>1 do
begin
y[1,i]:=p[1] mod 10;
p[1]:=p[1] div 10;
inc(i);
end;
for j:=i downto 1 do
write(y[1,j]);
writeln;
k:=0; }
{******s 2 v 10}
{ k:=0;
for j:=i downto 1 do
k:=k*2+y[1,j];
writeln(y[1,j]); }
readln ;
end.


вот что я сделал тогнее немогу даделать еще деления двоичной системы


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 25.10.2009 22:21
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Цитата(bakalava92 @ 24.10.2009 20:19) *

перевести в двоичную я тоже смог))сам не понимаю как числа делить в двоичной, если бы знал возможно бы написал программу сам)

В двоичной делят точно так же, как и в десятичной. Только проще.
Делят, естественно, в столбик.
Только если в десятичной нужно подбирать очередную цифру частного так, чтобы по максимуму использовать остаток от предыдущего деления, то в двоичном этот этап не нужен: если остаток больше делителя - вычитаем и записываем в частное "1", если меньше - записываем в частное "0".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 26.10.2009 9:52
Сообщение #11


Знаток
****

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

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


немогу придумать как делить двоичные коды в програмке я
program Noname0;
var j,i,d,b,k:integer;

xc,x,xx,xy:int64;
p:array [1..2] of int64;
a:array [1..2] of integer;
m:array [0..2] of 0..30;
y:array [1..2,0..17] of 0..1;
{**********s desetricnoi v dvoicnuju**********}
procedure dv(a,i:integer);
begin
j:=0;
while a<>0 do
begin
inc(j);
y[i,j]:=a mod 2;
a:=a div 2;
end;
m[i]:=j;
end;
begin
writeln('vvedite dva cislo');
for i:=1 to 2 do
begin
readln(a[i]);
dv(a[i],i);
end;
{************vivodim masiv dvoicnix cisel *****************************}
for i:=1 to 2 do
begin
write('cisla v masive ');
begin
for j:=m[i] downto 1 do
write(y[i,j]);
writeln ;
end;
writeln;
end;
{********berem delitel vtoroe cislo i delaem kak odno cislo}
x:=1;
i:=2;
b:=m[i];
k:=10;
for d:=m[i] downto 1 do
begin
for j:=1 to b-1 do
x:=x*k;
dec(b);
xc:=xc+x*y[i,d];
x:=1;
end;
p[i]:=xc;
writeln('odno cislo ',p[i]);
writeln;

{ eto delenije dokonca nedonisano }
xc:=0;
x:=1;
i:=1;
k:=10;
b:=0;
for d:=m[i] downto 1 do
begin
inc(b);
for j:=1 to b-1 do
x:=x*k; {mozet tut ctoto lisneje no vse vivodit normalno}
if x=0 then xc:=xc+y[i,d]
else xc:=xc*k+y[i,d];
x:=1;
if xc>=p[2] then {sravnivaem cisla delimoe bolse togda delim esli}
begin
xx:=xc;
xy:=p[2]; {nenapisal kak delit }


end
end;
p[i]:=xc;
writeln(p[i]);
xc:=0;
readln ;
end.


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
русофоб
сообщение 19.05.2015 1:09
Сообщение #12





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

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


а как будет выглядеть вся написанная программа?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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