Const St: array[1..3] of string = ('Будапешт', 'Рим', 'Киев'); Nas: array[1..3] of real = (9.9, 61.5, 44.3); Kr: array[1..3] of string = ('Венгрия', 'Италия', 'Украина'); {Сведения о численности населения приведены по данным ресурса CountryMeters по состоянию на 03.07.2014}
var i: integer;
begin write('Введите 1-Венгрия, 2-Италия, 3-Украина -> '); readln(i); if i in [1..3] then writeln('Страна- ', Kr[i], ', столица- ', St[i], ', население (млн.чел.)- ', Nas[i]) else writeln('Неверный ввод!') end.
Тестовое решение:
Введите 1-Венгрия, 2-Италия, 3-Украина -> 2 Страна- Италия, столица- Рим, население (млн.чел.)- 61.5
Function Dec2Oct(n: integer): string; var c, s: string; iquo, irem: integer; begin s := ''; iquo := n; while iquo <> 0 do begin irem := iquo mod 8; iquo := iquo div 8; Str(irem, c); s := c + s end; if Length(s) = 0 then Result := '0' else Result := s end;
var m: array[1..8] of integer; i: integer;
begin Randomize; for i := 1 to 8 do begin m[i] := Random(10000); writeln(m[i]:5, '(10)=', Dec2Oct(m[i]), '(8)') end end.
Если вместо функции нужна процедура, достаточно заменить несколько строчек.
procedure Dec2Oct(n: integer; s: string); var c: string; iquo, irem: integer; begin s := ''; iquo := n; while iquo <> 0 do begin irem := iquo mod 8; iquo := iquo div 8; Str(irem, c); s := c + s end; if Length(s) = 0 then s := '0' end;
St: array[1..3] of string = ('Будапешт', 'Рим', 'Киев');
Nas: array[1..3] of real = (9.9, 61.5, 44.3);
Kr: array[1..3] of string = ('Венгрия', 'Италия', 'Украина');
{Сведения о численности населения приведены по данным ресурса
CountryMeters по состоянию на 03.07.2014}
var
i: integer;
begin
write('Введите 1-Венгрия, 2-Италия, 3-Украина -> ');
readln(i);
if i in [1..3] then
writeln('Страна- ', Kr[i], ', столица- ', St[i], ', население (млн.чел.)- ', Nas[i])
else
writeln('Неверный ввод!')
end.
Тестовое решение:
Введите 1-Венгрия, 2-Италия, 3-Украина -> 2
Страна- Италия, столица- Рим, население (млн.чел.)- 61.5
var
c, s: string;
iquo, irem: integer;
begin
s := '';
iquo := n;
while iquo <> 0 do
begin
irem := iquo mod 8;
iquo := iquo div 8;
Str(irem, c);
s := c + s
end;
if Length(s) = 0 then Result := '0'
else Result := s
end;
var
m: array[1..8] of integer;
i: integer;
begin
Randomize;
for i := 1 to 8 do
begin
m[i] := Random(10000);
writeln(m[i]:5, '(10)=', Dec2Oct(m[i]), '(8)')
end
end.
Тестовое решение:
973(10)=1715(8)
7245(10)=16115(8)
2511(10)=4717(8)
5136(10)=12020(8)
8002(10)=17502(8)
7101(10)=15675(8)
4277(10)=10265(8)
5916(10)=13434(8)
Если вместо функции нужна процедура, достаточно заменить несколько строчек.
procedure Dec2Oct(n: integer; s: string);
var
c: string;
iquo, irem: integer;
begin
s := '';
iquo := n;
while iquo <> 0 do
begin
irem := iquo mod 8;
iquo := iquo div 8;
Str(irem, c);
s := c + s
end;
if Length(s) = 0 then s := '0'
end;