Перевод из десятичной системы в двоичную - Pascal
Формулировка задачи:
Здравствуйте!
помогите пожалуйста написать программу, переводящую целые числа из десятичной системы счисления в двоичную. не могу догадаться как записыватьединицы и нули. знаю, что всё время надо делить на 2.
надо ли делать массив в программе?
заранее благодарю.
Решение задачи: «Перевод из десятичной системы в двоичную»
textual
Листинг программы
program asdasd; var c,r,m,i,k,j:integer; begin readln(j); k:=1; for i:=1 to j do begin if k<j then k:=k*2; end; if k>j then k:= k div 2; for m:=1 to j do begin if ((k=1) and (j=0))or((k=0) and (j=0)) then write() else if k=j then begin j:=0; write(1);end else if k<j then begin j:=j-k; k:=k div 2; write(1); end else if k>j then begin k:= k div 2; write(0); end; end; end.
Объяснение кода листинга программы
- Создание переменных:
c(число, не инициализировано)r(число, не инициализировано)m(число, не инициализировано)i(число, не инициализировано)k(число, инициализировано нулём)j(число, принимающее значение ввода)
- Ввод числа в переменную
jс клавиатуры - Установка начального значения переменной
kравным 1 - Цикл от 1 до
j- Увеличение значения
kв два раза (k:=k*2)
- Увеличение значения
- Если
kбольше чемj, уменьшаемkв два раза (k:= k div 2) - Цикл от 1 до
j- Если
kравно 1 иjравно 0, илиkравно 0 иjравно 0, выводим ничего - Иначе, если
kравноj, устанавливаемjв 0 и выводим 1 - Иначе если
kменьше чемj, устанавливаемjравнымj-k,kравнымk div 2и выводим 1 - Иначе если
kбольше чемj, устанавливаемkравнымk div 2и выводим 0
- Если