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