If Then Else

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

If Then Else

Сообщение wov2004 » 21.07.2012 22:52:11

Как я понял 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"
Не выводятся диалоговые сообщения.
Как можно поправить?
Последний раз редактировалось wov2004 22.07.2012 08:59:41, всего редактировалось 1 раз.
wov2004
незнакомец
 
Сообщения: 2
Зарегистрирован: 21.07.2012 22:48:15

Re: If Then Else

Сообщение Climber » 22.07.2012 01:09:38

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

Re: If Then Else

Сообщение wov2004 » 22.07.2012 08:55:00

Да, вероятно так.
Только начал изучать, и такой способ ещё не видел.

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

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

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



Ага, спасибо, именно оно!
wov2004
незнакомец
 
Сообщения: 2
Зарегистрирован: 21.07.2012 22:48:15

Re: If Then Else

Сообщение Vadim » 22.07.2012 11:53:15

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);
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

Рейтинг@Mail.ru