Перевод из десятичной системы в двоичную - 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
- Если
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д