Страница 1 из 1

If Then Else

СообщениеДобавлено: 21.07.2012 22:52:11
wov2004
Как я понял If Then Else не поддерживают длинных выражений или нужно как-то упаковать?

program metersfeet;
{$mode objfpc}{$H+}
uses
FileUtil;
var
metr,c,feet: Real;
sel: String;
begin
writeln (UTF8ToConsole('Для пересчёта метров в футы нажмите "m" латинскую'));
writeln (UTF8ToConsole('Для пересчёта футов в метры нажмите "f" латинскую'));
read (sel);
if sel = 'm' then
writeln (UTF8ToConsole('Введите число метров'));
readln (metr);
c:=3.281;
feet:=metr/c;
write(UTF8ToConsole('В '));
write(metr);
write(UTF8ToConsole('метрах '));
write(feet);
writeln(UTF8ToConsole(' футов'));


if sel = 'f' then
writeln (UTF8ToConsole('Ведите число футов'));
readln (feet);
metr:=feet*c;
write(UTF8ToConsole('В '));
write(feet);
write(UTF8ToConsole(' футах '));
write(metr);
writeln(UTF8ToConsole(' метров'));
readln;

end.


Здесь, при вводе 'f"
Не выводятся диалоговые сообщения.
Как можно поправить?

Re: If Then Else

СообщениеДобавлено: 22.07.2012 01:09:38
Climber
Вы имеете ввиду это
Код: Выделить всё
if условие then
   begin
    тут несколько строк, которые выполнятся, только если ВЕРНО условие в if
   end
   else
   begin
     тут несколько строк, которые выполнятся, только если НЕ ВЕРНО условие в if
   end;
Или что-то другое?

Re: If Then Else

СообщениеДобавлено: 22.07.2012 08:55:00
wov2004
Да, вероятно так.
Только начал изучать, и такой способ ещё не видел.

Добавлено спустя 14 минут 31 секунду:
Climber писал(а):Вы имеете ввиду это

Код: Выделить всё
if условие then
begin
тут несколько строк, которые выполнятся, только если ВЕРНО условие в if
end
else
begin
тут несколько строк, которые выполнятся, только если НЕ ВЕРНО условие в if
end;

Или что-то другое?



Ага, спасибо, именно оно!

Re: If Then Else

СообщениеДобавлено: 22.07.2012 11:53:15
Vadim
wov2004
Переделайте Ваш код в две процедуры:
- преобразование метров в футы;
- преобразование футов в метры.
И при записи в переменную sel той или иной буквы просто вызываете ту или иную процедуру:
Код: Выделить всё
//В качестве параметра вводится количество футов
//Выходное значение - соответствующее им кол-во метров
Function FeetToMeter(f: double): Double;
Begin
  //Код, который нужен для перевода футов в метры
End;

//В качестве параметра вводится количество метров
//Выходное значение - соответствующее им кол-во футов
Function MeterToFeet(m: double): Double;
Begin
  //Код, который нужен для перевода футов в метры
End;

//Основная программа
...
If sel='f' Then
  res:=FeetToMeter(Какое-то число);
If sel:='m' Then
  res:=MeterToFeet(Какое-то число);

WriteLn('Получилось: ', res);