How to convert between mm, cm, meters, kilometers, miles, feet, yards, and inches in Pascal

1 Answer

0 votes
program UnitConverter;

{$mode objfpc}  // Modern Free Pascal mode

uses
  SysUtils;

// Conversion functions (all convert *from meters* first)
function mmToMeters(mm: Double): Double;
begin
  Result := mm / 1000.0;
end;

function cmToMeters(cm: Double): Double;
begin
  Result := cm / 100.0;
end;

function kmToMeters(km: Double): Double;
begin
  Result := km * 1000.0;
end;

function milesToMeters(mi: Double): Double;
begin
  Result := mi * 1609.34;
end;

function feetToMeters(ft: Double): Double;
begin
  Result := ft * 0.3048;
end;

function yardsToMeters(yd: Double): Double;
begin
  Result := yd * 0.9144;
end;

function inchesToMeters(i: Double): Double;
begin
  Result := i * 0.0254;
end;

// Convert meters → all units
function toMillimeters(m: Double): Double;
begin
  Result := m * 1000.0;
end;

function toCentimeters(m: Double): Double;
begin
  Result := m * 100.0;
end;

function toKilometers(m: Double): Double;
begin
  Result := m / 1000.0;
end;

function toMiles(m: Double): Double;
begin
  Result := m / 1609.34;
end;

function toFeet(m: Double): Double;
begin
  Result := m / 0.3048;
end;

function toYards(m: Double): Double;
begin
  Result := m / 0.9144;
end;

function toInches(m: Double): Double;
begin
  Result := m / 0.0254;
end;

var
  choice: Integer;
  value, meters: Double;

begin
  writeln('Choose input unit:');
  writeln('1. Millimeters');
  writeln('2. Centimeters');
  writeln('3. Meters');
  writeln('4. Kilometers');
  writeln('5. Miles');
  writeln('6. Feet');
  writeln('7. Yards');
  writeln('8. Inches');
  write('Enter choice: ');
  readln(choice);

  write('Enter value: ');
  readln(value);

  // Convert chosen unit → meters
  case choice of
    1: meters := mmToMeters(value);
    2: meters := cmToMeters(value);
    3: meters := value;
    4: meters := kmToMeters(value);
    5: meters := milesToMeters(value);
    6: meters := feetToMeters(value);
    7: meters := yardsToMeters(value);
    8: meters := inchesToMeters(value);
  else
    writeln('Invalid choice');
    halt;
  end;

  writeln;
  writeln('Converted from meters (', FormatFloat('0.000000', meters), ' m):');
  writeln('Millimeters: ', FormatFloat('0.000000', toMillimeters(meters)));
  writeln('Centimeters: ', FormatFloat('0.000000', toCentimeters(meters)));
  writeln('Meters:      ', FormatFloat('0.000000', meters));
  writeln('Kilometers:  ', FormatFloat('0.000000', toKilometers(meters)));
  writeln('Miles:       ', FormatFloat('0.000000', toMiles(meters)));
  writeln('Feet (Foot): ', FormatFloat('0.000000', toFeet(meters)));
  writeln('Yards:       ', FormatFloat('0.000000', toYards(meters)));
  writeln('Inches:      ', FormatFloat('0.000000', toInches(meters)));
end.



(*
run:

Choose input unit:
1. Millimeters
2. Centimeters
3. Meters
4. Kilometers
5. Miles
6. Feet
7. Yards
8. Inches
Enter choice: 4
Enter value: 1

Converted from meters (1000.000000 m):
Millimeters: 1000000.000000
Centimeters: 100000.000000
Meters:      1000.000000
Kilometers:  1.000000
Miles:       0.621373
Feet (Foot): 3280.839895
Yards:       1093.613298
Inches:      39370.078740

*)

 



answered 3 hours ago by avibootz

Related questions

...