jennie17
05.06.2021 15:57

Тест. Синтаксис языка программирования Паскаль Оператор конца программы
Оператор ввода
Оператор вывода
(почти) Каждая строка программы заканчивается символом…
Раздел описания констант
Раздел описания переменных
Тип данных «вещественное число»
Тип данных «целое число»
Оператор присваивания
Стандартная функция «модуль числа Х»
Стандартная функция «квадратный корень из числа Х»
Стандартная функция «остаток от деления a на b»
Стандартная функция «целая часть от деления а на b»

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
FireLily
15.06.2020 16:59

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.

0,0(0 оценок)
Ответ:
fariii046
25.03.2021 09:45
1) Определяем общее количество бит: 16 х 640 х 480 = 4 915 200
С учетом того, что в байте 8 бит, а 1 КБ=1024 Б получим
4 915 200 / 8 / 1024 = 600 (КБ)

2) Определяем общее количество бит с учетом того, что в палитре True Color для цвета отводится 24 бита: 1600 х 1200 х 24 = 46 080 000 (бит).
После преобразования файла для Интернет он будет представлен в восьмибитной палитре ( 256 = 2⁸ ) и займет объем
1400 х 900 х 256 = 10 080 000 (бит).
Разница в объемах составит  46 080 000 -  10 080 000 = 36 000 000 бит.
С учетом того, что в байте 8 бит, а в мегабайте 1024 х 1024 байт получим, что пространство на диске сократиться на
36 000 000 / (8 х 1024 х 1024) ≈ 4.29 (МБ)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота