Перевод между разными единицами измерения (доработать программу) - PascalABC.NET
Формулировка задачи:
Всем привет, сделала практику, столкнулась с одной проблемой, когда программа спрашивает кол-во ед. для перевода, нужно чтобы она писала чего именно переводить, пыталась сделать сама, не как не получается. Вот исходник:
Можете просто запустить, она полностью рабочая, вот тут
она должна спросить чего именно перевод.
Если лень самим дописать код, накиньте просто идее как сделать это, буду благодарна!
Решение задачи: «Перевод между разными единицами измерения (доработать программу)»
textual
Листинг программы
uses
crt;
var
c: real;
p, z: integer;
inUnit: array of string := ('Фингер', 'Фингер', 'см', 'см', 'дюйм', 'дюйм', 'чейн строительный', 'чейн строительный', 'м', 'м', 'фут', 'фут', 'нейл', 'нейл', 'см', 'см', 'дюйм', 'дюйм');
outUnit: array of string := ('см', 'дюйм', 'дюйм', 'фингер', 'см', 'фингер', 'м', 'фут', 'чейн строительный', 'чейн строительный', 'м', 'фут', 'см', 'дюйм', 'нейл', 'дюйм', 'см', 'нейл');
function convert: real;
var a:real;
begin
case p of
1: a := (11.4 * c) / 1;
2: a := (4.5 * c) / 1;
3: a := (4.5 * c) / 11.4;
4: a := (1 * c) / 11.4;
5: a := (11.4 * c) / 4.5;
6: a := (1 * c) / 4.5;
7: a := (30.48 * c) / 1;
8: a := (100 * c) / 1;
9: a := (1 * c) / 30.48;
10: a := (1 * c) / 100;
11: a := (100 * c) / 30.48;
12: a := (30.48 * c) / 100;
13: a := (5.7 * c) / 1;
14: a := (1 * c) / 2.25;
15: a := (5.7 * c) / 1;
16: a := (2.25 * c) / 5.7;
17: a := (5.7 * c) / 2.25;
18: a := (2.25 * c) / 1;
end;
convert:=a;
end;
procedure menuxa;
begin
writeln('Обмен');
for var i := 0 to 17 do
writeln(i+1, ') ', inUnit[i], ' - ', outUnit[i]);
writeln;
end;
begin
repeat
menuxa;
writeln('Введите пункт: ');
readln(p);
if (p < 1) or (p > 18) then writeln('Ошибка, такого пункта нет')
else
if (p >= 1) or (p <= 18) then
begin
writeln('Исходная величина (', inUnit[p-1], ')');
readln(c);
writeln('=',convert,' ',outUnit[p-1]);
end;
writeln('1) продолжить');
writeln('2) закрыть');
readln(z);
until z > 1;
end.