Помогите написать программу в Паскале,чтобы переводила из бит в байты в мБайты...

0 голосов
158 просмотров

Помогите написать программу в Паскале,чтобы переводила из бит в байты в мБайты Кбайты,Вообще из Бит-Кбайт в Кбайты-Бит и наоборот.Напимер ввожу 2 Мбайт,хочу перевести в кБАйты.


Информатика (503 баллов) | 158 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var n_for_1, n_for_2 : integer;
 number : real;
// 1 страница программы
procedure FirstListOfMenu;
begin
writeln('1. Перевод из битов...');
writeln('2. Перевод из байтов...');
writeln('3. Перевод из килобайтов...');
writeln('4. Перевод из мегабайтов...');
writeln('5. Перевод из гигабайтов...');
write('Ввод >> ');
end;
// 2 страница программы
procedure SecondListOfMenu;
begin
writeln('1_...в биты.');
writeln('2_...в байты.');
writeln('3_...в килобайты');
writeln('4_...в мегабайты');
writeln('5_...в гигабайты');
write('Ввод >> ');
end;// переводprocedure Translate(a, b : integer; value : real);
begin
 case a of
  1 : begin
   case b of
    1 : write('Вы переводите из битов в биты!');
    2 : write(value : 0 : 2, ' bit = ', (value / 8) : 0 : 10, 'byte.');
    3 : write(value : 0 : 2, ' bit = ', (value / 8 / 1024) : 0 : 10, 'kByte');
    4 : write(value : 0 : 2, ' bit = ', (value / 8 / 1024 / 1024) : 0 : 10, 'mByte');
    5 : write(value : 0 : 2, ' bit = ', (value / 8 / 1024 / 1024 / 1024) : 0 : 10, 'gByte');
    else write('Выбран неверный режим!');
   end;
   end;
  2 : begin
   case b of
    1 : write(value : 0 : 2, ' byte = ', (value * 8) : 0 : 10, 'bit.');
    2 : write('Вы переводите из байтов в байты!');
    3 : write(value : 0 : 2, ' byte = ', (value / 1024) : 0 : 10, 'kByte');
    4 : write(value : 0 : 2, ' byte = ', (value / 1024 / 1024) : 0 : 10, 'mByte');
    5 : write(value : 0 : 2, ' byte = ', (value / 1024 / 1024 / 1024) : 0 : 10, 'gByte');
    else write('Выбран неверный режим!');
   end;
   end;
  3 : begin
   case b of
    1 : write(value : 0 : 2, ' kbyte = ', (value * 8 * 1024) : 0 : 10, 'bit.');
    2 : write(value : 0 : 2, ' kbyte = ', (value * 1024) : 0 : 10, 'byte');
    3 : write('Вы переводите из килобайтов в килобайты!');
    4 : write(value : 0 : 2, ' kbyte = ', (value / 1024) : 0 : 10, 'mByte');
    5 : write(value : 0 : 2, ' kbyte = ', (value / 1024 / 1024) : 0 : 10, 'gByte');
    else write('Выбран неверный режим!');
   end;
   end;
  4 : begin
   case b of
    1 : write(value : 0 : 2, ' mbyte = ', (value * 8 * 1024 * 1024) : 0 : 10, 'bit.');
    2 : write(value : 0 : 2, ' mbyte = ', (value * 1024 * 1024) : 0 : 10, 'byte');
    3 : write(value : 0 : 2, ' mbyte = ', (value * 1024) : 0 : 10, 'kbyte');
    4 : write('Вы переводите из мегабайтов в мегабайты!');
    5 : write(value : 0 : 2, ' mbyte = ', (value / 1024) : 0 : 10, 'gByte');
    else write('Выбран неверный режим!');
   end;
   end;
  5 : begin
   case b of
    1 : write(value : 0 : 2, ' gbyte = ', (value * 8 * 1024 * 1024 * 1024) : 0 : 10, 'bit.');
    2 : write(value : 0 : 2, ' gbyte = ', (value * 1024 * 1024 * 1024) : 0 : 10, 'byte');
    3 : write(value : 0 : 2, ' gbyte = ', (value * 1024 * 1024) : 0 : 10, 'kbyte');
    4 : write(value : 0 : 2, ' gbyte = ', (value * 1024) : 0 : 10, 'gByte'); 
    5 : write('Вы переводите из гигабайтов в гигабайты!');
    else write('Выбран неверный режим!');
   end;
   end;
 end;
end;// тело главной функцииbegin
FirstListOfMenu;
readln(n_for_1);
SecondListOfMenu;
readln(n_for_2);writeln;
write('Введите число для перевода >> ');
readln(number);writeln;
Translate(n_for_1, n_for_2, number);end.

0

Можно переводить как из больших величин к меньшим, так и от меньших к большим.

0

Ниче ты МОНСТР

0

Одну буквочку поправь - после последнего case - gByte на mByte... Упустил.

0

Окей

0 голосов

Var a:integer;
begin
write('a = ');
readln(a);
writeln('Укажите направление перевода:');
writeln('1 - бит -> байт, Кбайт, Мбайт');
writeln('2 - байт -> бит, Кбайт, Мбайт');
writeln('3 - Кбайт -> бит, байт, Мбайт');
writeln('4 - Мбайт -> бит, байт, Кбайт');
readln(n);
case n of
 1: writeln(a,' бит = ',a/8,' байт, ',a/8/1024,' Кбайт, ',a/8/1024/1024,' Мбайт');
 2: writeln(a,' байт = ',a*8,' бит, ',a/1024,' Кбайт, ',a/1024/1024,' Мбайт');
 3: writeln(a,' Кбайт = ',a*8*1024,' бит, ',a*1024,' байт, ',a/1024,' Мбайт');
 4: writeln(a,' Мбайт = ',a*8*1024*1024,' бит, ',a*1024*1024,' байт, ',a*1024,' Кбайт');
 else writeln('Неверный номер');
 end;
end.

Пример:
a = 2048
Укажите направление перевода:
1 - бит -> байт, Кбайт, Мбайт
2 - байт -> бит, Кбайт, Мбайт
3 - Кбайт -> бит, байт, Мбайт
4 - Мбайт -> бит, байт, Кбайт
3
2048 Кбайт = 16777216 бит, 2097152 байт, 2 Мбайт

(194k баллов)
0

а обратно?)

0

Что обратно?

0

readln(n) ,пишет неизвестное имя n

0

все

0

шил

0

Решил

0

В первой строчке опечатка: var a,n:integer;