|
перевод чисел в двоичную систему в паскале | ☑ | ||
---|---|---|---|---|
0
program345
03.09.14
✎
15:30
|
доброго дня!
написал прогу для перевода чисел из 10-тичной системы в 2-чную. только вот она значение выводит наоборот: var a,b,c:integer; procedure perevod(a:integer); var b,c:integer; begin b:=a mod 2; write(b); c:=a div 2; //writeln(c); while c>0 do begin b:=c mod 2; write(b); c:=c div 2; end; end; begin writeln('введите десятичное число для перевода в двоичную систему: '); readln(a); perevod(a); end. как исправить? |
|||
1
Wobland
03.09.14
✎
15:32
|
>write(b)
ты вот это назвал переводом числа? |
|||
2
Timon1405
03.09.14
✎
15:34
|
вынести первое деление за тело цикла это шедевр ящитаю
|
|||
3
StaticUnsafe
03.09.14
✎
15:34
|
Обратись к toypaul
Он уже научился округлять, может и тебе поможет. |
|||
4
Ненавижу 1С
гуру
03.09.14
✎
15:36
|
function perevod(a:integer):string;
var b:integer; c,s:string; begin result:=''; while a>0 do begin b:=a mod 2; str(b,c); result:=c+result; a:=a div 2; end; end; |
|||
5
GROOVY
модератор
03.09.14
✎
15:37
|
(0) Слушай, или учить паскаль на форум по паскалю, а?
http://www.forum.mista.ru/index.php?user_id=98271 |
|||
6
NikVars
04.09.14
✎
11:21
|
(5) Если еще разок запостит схожую тему - забань его на годик.
|
|||
7
Крошка Ру
04.09.14
✎
11:37
|
(5)(6) Вы несправедливы. Ну изучает человек программирование на ископаемом языке, ну не может найти тематический форум (может его в гугле забанили, почем знать?), ну наткнулся на мисту, что ж теперь сделаешь? И потом, кто нам пятничное настроение будет создавать?
|
|||
8
Крошка Ру
04.09.14
✎
11:38
|
Это же прелесть:
>>написал прогу для перевода чисел из 10-тичной системы в 2-чную >>как исправить? |
|||
9
Cube
04.09.14
✎
11:40
|
(5) (6) А что такого? С каких пор на мисте запрещены другие языки программирования?
|
|||
10
NikVars
04.09.14
✎
11:41
|
(7) Да, я такой. И вообще, миста детям не игрушка.
|
|||
11
Трик
04.09.14
✎
11:41
|
(5)(6) надо расщиряться.
Миста- волшебный форум :). Даешь отделные секции под другие языки :) |
|||
12
Cube
04.09.14
✎
11:43
|
(10) А пенсионерам не забава!))
|
|||
13
NikVars
04.09.14
✎
11:44
|
(11) А я думал, что тут можно не только языком.
(12) Хм-м-м-м, до нее еще одинэсить и одинэсить... |
|||
14
_fvadim
04.09.14
✎
11:53
|
почему про формулу-1 можно, а про паскаль нельзя?
для многих ностальгия опять же. |
|||
15
NikVars
04.09.14
✎
12:06
|
(14) Это тима типа: Папа купил мне спорткар, ключи есть, подскажите как открыть дверь и куда ключ вставить чтобы завести?!
|
|||
16
_fvadim
04.09.14
✎
12:10
|
(15) злой ты, это тема "мама, папа, смотрите как я умею".
и это гораздо лучше, чем изливать желчь в темах типа Крыша едет. Почему Окр(0,36472,2,1) = 0.36? |
|||
17
NikVars
04.09.14
✎
12:42
|
(16) Эх-х... Проморгал темку...
:)) |
|||
18
Крошка Ру
04.09.14
✎
13:20
|
(15) (16) Гораздо больше надоели темы, типа "а помогите выбрать шапочку для бассейна". Не понимаю, почему человек может открыть форум и не может открыть гугл.
|
|||
19
Крошка Ру
04.09.14
✎
13:21
|
А паскаль - это весело. Опять же, как верно упомянуто - ностальгия
|
|||
20
Wobland
04.09.14
✎
13:28
|
(18) когда я прошу девушку помочь сварить мне борщ, это вовсе не значит, что мне нужен борщ ;)
|
|||
21
GROOVY
04.09.14
✎
13:32
|
Ок. Был не прав.
А ктонить подскажет как перевесить дверь на холодильнике? |
|||
22
Wobland
04.09.14
✎
13:33
|
(21) проще перевернуть
|
|||
23
Cube
04.09.14
✎
13:34
|
(21) Флуд в тематических ветках запрещен)))
Ты что, не выспался сегодня? :) |
|||
24
Крошка Ру
04.09.14
✎
13:41
|
(20) Так, то - борщ с девушкой, а то - форум с шапочкой...
Для меня такие сочетания не взаимозаменяемы. ;) |
|||
25
Asmody
04.09.14
✎
13:49
|
выкинь паскаль, пользуйся javascript:
(12).toString(2) |
|||
26
дедушка Вах
04.09.14
✎
14:25
|
(0) теперь переводчик исходных текстов в машинные коды пиши, типа "введите текст:"
|
|||
27
HeroShima
04.09.14
✎
15:35
|
(0) Рекурсия написана как-то коряво.
|
|||
28
program345
05.09.14
✎
14:42
|
(4) а зачем использовать result:=''; ?
|
|||
29
program345
05.09.14
✎
14:42
|
вот мой вариант:
var a,b,c:integer; procedure perevod(a:integer); var b,e:integer; c,d:string; begin if a<=0 then writeln('введенное число должно быть положительно и больше нуля!!!'); while a>0 do begin b:=a mod 2; str(b,c); d:=d+c; a:=a div 2; end; e:=length(d); for e:=e downto 1 do begin write(d[e]); end; end; begin writeln('введите число для перевода из 10-ти значного в 2-ух значное'); readln(a); perevod(a); end. |
|||
30
NikVars
05.09.14
✎
14:48
|
(29) Дитё! Вот тебе мой подзатыльник! Тебе за использование переменных, которые не отражает суть задачи нужно дополнительно 100 раз отжаться перед решением каждой задачи и 100 задач дать на решение. А за то, что ты одни и теже переменные впихиваешь в процедуру и в основную часть программы говорит о твоей неаккуратности, только сам себя путаешь.
|
|||
31
User_Agronom
05.09.14
✎
14:51
|
(20) Борщ - это мой метод! Авторские права соблюдай!
|
|||
32
program345
05.09.14
✎
14:53
|
(30) так то лучше:
var a:integer; procedure perevod(a:integer); var b,e:integer; c,d:string; begin if a<=0 then writeln('введенное число должно быть положительно и больше нуля!!!'); while a>0 do begin b:=a mod 2; str(b,c); d:=d+c; a:=a div 2; end; e:=length(d); for e:=e downto 1 do begin write(d[e]); end; end; begin writeln('введите число для перевода из 10-ти значного в 2-ух значное'); readln(a); perevod(a); end. |
|||
33
NikVars
05.09.14
✎
14:56
|
(32) Удали лишние переменные. Минимизируй количество переменных.
|
|||
34
program345
05.09.14
✎
15:08
|
(33) все! меньше сложно уже думать...:
предлагаем не стисняемся var a:integer; procedure perevod(a:integer); var e:integer; c,d:string; begin if a<=0 then writeln('введенное число должно быть положительно и больше нуля!!!'); while a>0 do begin str(a mod 2,c); d:=d+c; a:=a div 2; end; e:=length(d); for e:=e downto 1 do begin write(d[e]); end; end; begin writeln('введите число для перевода из 10-ти значного в 2-ух значное'); readln(a); perevod(a); end. |
|||
35
NS
05.09.14
✎
15:14
|
var c:char;
while a>0 do begin c=chr((a mod 2)+ord('0')); d:=c+d; a:=a div 2; end; writeln(s); |
|||
36
program345
08.09.14
✎
15:20
|
ну или так: слизано и переделано с сайта http://pas1.ru/decproc
var k: integer; s: byte; procedure scale (a: integer); begin if a > 1 then scale (a div 2); write (a mod 2) end; begin write ('Введите число: '); readln (k); scale (k); readln end. |
|||
37
program345
08.09.14
✎
15:21
|
или даже так:
var k: integer; procedure scale(a: integer); begin if a > 1 then scale(a div 2); write(a mod 2) end; begin write('Введите число: '); readln(k); scale(k); readln end. |
|||
38
Wobland
08.09.14
✎
15:25
|
> слизано и переделано
ТС на пути к просветлению, однако |
|||
39
Андрюха
08.09.14
✎
15:45
|
(0) Юзай стандартную функцию DecToBin
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |