1. Реализовать функцию, которая на вход получает количество файлов и возвращает его с размерностью, в которой будет один из трех вариантов окончания: файлов, файл или файла. Например:
get_dimention(1); // возвращает '1 файл'
get_dimention(12); // возвращает '12 файлов'
get_dimention(2); // возвращает '2 файла'
const
m:array['0'..'F'] of string=
('0000','0001','0010','0011','0100','0101','0110','0111',
'1000','1001','','','','','','','','1010','1011','1100',
'1101','1110','1111');
m1:array['0'..'F'] of string=
('0','1','10','11','100','101','110','111','1000','1001','',
'','','','','','','1010','1011','1100','1101','1110','1111');
var
s:string;
i:integer;
begin
s16:=UpperCase(s16);
s:=m1[s16[1]]+;
for i:=2 to Length(s16) do s:=s+m[s16[i]]+;
f16t2:=Copy(s,1,Length(s)-1)
end;
var
s:string;
begin
Write('Введите шестнадцатиричное число: '); Readln(s);
Writeln('В двоичной системе: ',f16t2(s))
end.
Тестовое решение:
Введите шестнадцатиричное число: 5AC8e2
В двоичной системе: 101'1010'1100'1000'1110'0010
Если разбивка вывода по тетрадам не нужна, можно чуть упростить:
function f16t2(s16:string):string;
const
m:array['0'..'F'] of string=
('0000','0001','0010','0011','0100','0101','0110','0111',
'1000','1001','','','','','','','','1010','1011','1100',
'1101','1110','1111');
m1:array['0'..'F'] of string=
('0','1','10','11','100','101','110','111','1000','1001','',
'','','','','','','1010','1011','1100','1101','1110','1111');
var
s:string;
i:integer;
begin
s16:=UpperCase(s16);
s:=m1[s16[1]];
for i:=2 to Length(s16) do s:=s+m[s16[i]];
f16t2:=s
end;
var
s:string;
begin
Write('Введите шестнадцатиричное число: '); Readln(s);
Writeln('В двоичной системе: ',f16t2(s))
end.
Тестовое решение:
Введите шестнадцатиричное число: 5AC8e2
В двоичной системе: 10110101100100011100010
var n,i:integer;
mass:array[1..10000] of integer;
begin
writeln('Введите кол-во чисел');
read(n);
for i:=1 to n do
begin
write('mass[',i,']=');
read(mass[i]);
end;
writeln('Элементы массива которые четные и двухначные');
for i:=1 to n do
if (mass[i] mod 2=0) and (mass[i] div 10>0) and (mass[i] div 10<10) then write(mass[i]:4);
end.
2.
var n,i:integer;
mass:array[1..10000] of integer;
begin
writeln('Введите кол-во чисел');
read(n);
for i:=1 to n do
begin
write('mass[',i,']=');
read(mass[i]);
end;
writeln('Элементы массива которые кратны 4 и трехзначные');
for i:=1 to n do
if (mass[i] mod 4=0) and (mass[i] div 100>0) and (mass[i] div 100<10) then write(mass[i]:4);
end.
3.
var i,a,m:integer;
begin
m:=3;
for i:=1 to 10 do
writeln(i,' * ',m,' = ',i*m);
end.