Перевод между разными единицами измерения (доработать программу) - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы