М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
ilyamam07
ilyamam07
10.03.2023 11:08 •  Информатика

Нужно написать программу в Pascal: пользователь вводит число в десятичной системе, а программа должна перевести это число в двуичный код. Желательно сделать 1 программу простой, с использованием if, div, mod, ну и циклы если надо,кроме цикла repeat, например пользователь ввёл 5 а система перевела в двуичный код 101

👇
Ответ:
felikstatenko2
felikstatenko2
10.03.2023

program ToBinary;

procedure dec2bin(var s : string; num : integer);

begin

   if num > 0 then begin

       dec2bin(s, num div 2);

       if num mod 2 = 0 then

           s := s + '0'

       else

           s := s + '1';

   end;

end;

var

 a : integer;

 s : string;

begin

 read(a);

 dec2bin(s, a);

 writeln(s);

end.

4,7(77 оценок)
Открыть все ответы
Ответ:
donczowakateri
donczowakateri
10.03.2023

#include <iostream>

using namespace ::std;

int main()

{

   setlocale(LC_CTYPE , "rus");

   

   int n, i, j = 0, k = 0;

   double s = 0;

   cout << "Введите количество элементов: \n";

   cin >> n;

   float x;

   float *massiv = new float[n];

   if (!massiv)

   {

       cout << "Сбой программы!\n";

       system("pause");

        return 0;

   }

   cout << "Введите массив с " << ' ' << n << ' ' << "элементов\n";

   for (i = 0; i < n; i++)

       cin >> *(massiv + i);

   cout << "Заданный массив: " << endl;

   for (int i = 0; i < n; i++)

       

       cout << *(massiv + i) << ' ' << endl;

 

   for (i = 0; i<n; i++)

   {

       if (massiv[i]>0)

           k++;

   }

   cout << " Количество положительных элементов = " << k << '\n';

 

 

   for (i = 0; i<n; i++)

   {

       if (massiv[i] == 0) {

           j = massiv[i];

           x = i;

       }

   }

 

   for (i = x; i<n; i++)

       s += massiv[i];

 

   cout << "Сумма =" << s;

   float *massiv2 = new float[n];

   if (!massiv2)

   {

       cout << "Сбой программы !\n";

       system("pause");

       return 0;

   }

   for (i = 0; i < n; i++)

       if (massiv[i] <= 1)

       {

           massiv2[j] = massiv[i];

           j++;

       }

 

   for (i = 0; i < n; i++)

       if (fabs(massiv[i]) > 1)

       {

           massiv2[j] = massiv[i];

           j++;

       }

   cout << endl << "Отсортированный массив: " << endl;

   for (int j = 0; j < n; j++)

       cout << '\n' << massiv2[j] << ' ';

 

   delete[] massiv;

   delete[] massiv2;

   system("pause");

   return 0;

}

В работо не сомневайся.

4,8(31 оценок)
Ответ:
3035111236
3035111236
10.03.2023

program rome_arabic;

Uses crt;

Const

{римские цифры}

RomeDigits:string='IVXLCDM';

{числа - соответствующие римским цифрам}

ArabicNumbers:array [1..7] of integer =

(1, 5, 10, 50, 100, 500, 1000);

(*

Функция определения правильности ввода арабского числа

*)

function IsArabic(s:string):boolean;

var i,t,c:integer;

begin

IsArabic:=true;

for i:=1 to length(s) do

if not(s[i] in ['0'..'9'])then

begin

IsArabic:=false;

exit;

end;

val(s,t,c);

if (c<>0)or(t<1) then

begin

IsArabic:=false;

exit;

end;

end;

(*

Функция перевода арабского числа в римское

*)

function ArabicToRome (s: string): string;

var

i,n,c: integer;

res: string;

begin

val(s,n,c);

res:='';

i:=7; {Проверяем от больших чисел к меньшим}

while n>0 do

begin

{находим следующее число - из которого будем формировать римскую цифру}

while ArabicNumbers[i]>n do i:=i-1;

res:=res+RomeDigits[i];

n:=n-ArabicNumbers[i];

end;

ArabicToRome := res;

end;

(*

Функция определения правильности ввода римского числа

*)

function IsRome(s:string):boolean;

var i:integer;

begin

IsRome:=true;

if s='' then

begin

IsRome:=false;

exit;

end;

for i:=1 to length(s) do

if not (s[i] in ['I', 'V', 'X', 'L', 'C', 'D', 'M']) then

begin

IsRome:=false;

break;

end;

end;

(*

Функция перевода римского числа в арабское

*)

function RomeToArabic (s: string): integer;

var

b:array[1..100] of integer;

i,j:integer;

res:integer;

begin

for i:=1 to length(s) do

begin

if s[i]='I' then b[i]:=1;

if s[i]='V' then b[i]:=5;

if s[i]='X' then b[i]:=10;

if s[i]='L' then b[i]:=50;

if s[i]='C' then b[i]:=100;

if s[i]='D' then b[i]:=500;

if s[i]='M' then b[i]:=1000;

end;

res:=b[1];{массив локальная переменная и

сравнение первого элемента с нулевым искажает число,

почему-то считает, что b[0]=1 и автоматом вычитает 2}

for i:=2 to length(s) do

begin

res:=res+b[i];

if b[i-1]<b[i] then res:=res-2*b[i-1]{вот здесь}

end;

RomeToArabic:=res;

end;

{Основная программа}

var

arabic: string; {арабское число}

rome: string; {римское число}

ask: char; {режим перевода чисел}

begin

clrscr;

writeln('Программа переводит римское число в арабское или арабское в римское');

repeat

clrscr;

writeln('Выберите режим перевода:');

writeln('1 - римское число в арабское');

writeln('2 - арабское число в римское');

writeln('другое - выход');

ask:=readkey;

case ask of

'1': begin {Римское в арабское}

write('Введите римское число: ');

readln(rome);

if IsRome(rome) then

writeln('Арабское число = ',RomeToArabic(rome))

else writeln('В римской записи числа допущены ошибки! Перевод не возможен!');

writeln('Press Enter...');

readln

end;

'2':begin {арабское в римское}

write('Введите арабское число: ');

readln(arabic);

if IsArabic(arabic) then

writeln('Римская запись = ',ArabicToRome(arabic))

else writeln('В арабской записи числа допущены ошибки! Перевод не возможен!');

writeln('Press Enter...');

readln

end;

else exit;

end;

until not(ask in ['1','2']);

end.

4,6(66 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ