Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2007, 12:09   #1
Stark[SG!]
Пользователь
 
Регистрация: 20.02.2007
Сообщений: 12
Вопрос HELP ????

если я пишу так то все работает(прога выбора операции):
program bac;

{$APPTYPE CONSOLE}

uses
SysUtils;

var operation:char;
x,y,z:real;
stop:boolean;

begin
stop:=false;
repeat
writeln;
write('x,y=');
readln(x,y);
write('vib operac: ');
readln(operation);
case operation of
'+':=z:=x+y;
'-':z:=x-y;
'*':z:=x*u;
'/':z:=x/y;
else
stop:=true;
end;
if not stop then
writeln(' рез= ',z:6:3);
until stop
end.
-------------------------------
а если я разбиваю на модуль то не работает
МОДУЛЬ:
unit fun;

interface
procedure fun_a (x,y:real; operation:char ; var z:real);

implementation
procedure fun_a;
begin
'+':=z:=x+y; {он неможет определить '+'и т д}
'-':z:=x-y;
'*':z:=x*u;
'/':z:=x/y;
end;

end.
а дальше программа:
program bac;

{$APPTYPE CONSOLE}

uses
SysUtils,
fun in 'fun.pas';

var operation:char;
x,y,z:real;
stop:boolean;

begin
{stop:=false;
repeat }
writeln;
write('x,y=');
readln(x,y);
write('vib operac: ');
readln(operation);
case operation of
fun_a (x,y,z);
else
stop:=true;
end;
if not stop then
writeln(' рез= ',z:6:3);
until stop
end.
почему в модуле не определяет '+' '-' '/' '*' ?????
как их можно описать в модуле?????????
Stark[SG!] вне форума Ответить с цитированием
Старый 20.02.2007, 12:15   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

напишите так:

Код:
interface
procedure fun_a (x,y:real; operation:char ; var z:real);

implementation
procedure fun_a (x,y:real; operation:char ; var z:real);
begin
case operation of
 '+':z:=x+y; 
 '-':z:=x-y;
 '*':z:=x*u;
 '/':z:=x/y;
 end;
end;
Пишу для многих: case может "работать" с символами, но не со строками!

Хм... И функцию в программе вызывайте так: fun_a (x,y,operation,z);

Последний раз редактировалось zetrix; 20.02.2007 в 12:23. Причина: Прочитал листинг дальше :)
zetrix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц