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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2014, 16:54   #1
Ляйсан9517
Пользователь
 
Регистрация: 30.03.2014
Сообщений: 31
Злость Помогите разобраться с кодом (Lazarus)

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,p,q,r,s:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
p:=StrToFloat(Edit3.Text);
q:=StrToFloat(Edit4.Text);
r:=StrToFloat(Edit5.Text);
s:=StrToFloat(Edit6.Text);
        if a >= b   Then
            p>=q and r >= s
                if(p <= a and r <= a and (q + s) <= b)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

            else if(p < q and r >= s)
                if(q <= a and r <= a and (p + s) <= b)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

            else if(p < q and r < s)
                if(q <= a and s <= a and (p + r) <= b)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

            else if(p >= q and r < s)
                if(p <= a and s <= a and (q + r) <= b)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

        else if (a < b)
            if(p >= q and r >= s)
                if(p <= b and r <= b and (q + s) <= a)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

            else if(p < q and r >= s)
                if(q <= b and r <= b and (p + s) <= a)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

            else if(p < q and r < s)
                if(q <= b and s <= b and (p + e\r) <= a)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

            else if(p >= q and r < s)
                if(p <= b and s <= b and (q + r) <= a)
                    Edit7.Text:='Можно построить 2 дома';
                else
                    Edit7.Text:='Нельзя построить 2 дома';

end;
При запуске выдает ошибки(
такие:
unit1.pas(59,18) Error: Operation "and" not supported for types "Real" and "Real"
unit1.pas(60,17) Error: Illegal expression
unit1.pas(60,17) Fatal: Syntax error, ";" expected but "IF" found
уже с 6 часов сижу голова не варит, а надо решить
заранее спасибо

Последний раз редактировалось Stilet; 02.04.2014 в 20:38.
Ляйсан9517 вне форума Ответить с цитированием
Старый 02.04.2014, 17:11   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
else if(p < q and r >= s)
В делфи нужно так писать
Код:
else if (p < q) and (r >= s)
Не думаю, что в Lazarus по другому. В других местах аналогично
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.04.2014, 17:17   #3
yaschenko
Пользователь
 
Аватар для yaschenko
 
Регистрация: 29.03.2014
Сообщений: 26
По умолчанию

ну и намудрили вы тут:
Код:
var
a,b,p,q,r,s:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
p:=StrToFloat(Edit3.Text);
q:=StrToFloat(Edit4.Text);
r:=StrToFloat(Edit5.Text);
s:=StrToFloat(Edit6.Text);
        if a >= b   Then
           // p>=q and r >= s  <--- что это такое у вас я непонял
                if((p <= a) and (r <= a) and ((q + s) <= b)) then  //небыло then
                    Edit7.Text:='Можно построить 2 дома'  //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома' //перед else не ставится ";"

            else if((p < q) and (r >= s))  then    //небыло then
                if((q <= a) and (r <= a) and ((p + s) <= b))   then   //небыло then
                    Edit7.Text:='Можно построить 2 дома'     //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома' //перед else не ставится ";"

            else if((p < q) and (r < s)) then      //небыло then
                if((q <= a) and (s <= a) and ((p + r) <= b)) then //небыло then
                    Edit7.Text:='Можно построить 2 дома'   //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома'  //перед else не ставится ";"

            else if((p >= q) and (r < s))   then    //небыло then
                if((p <= a) and (s <= a) and ((q + r) <= b))   then //небыло then
                    Edit7.Text:='Можно построить 2 дома'   //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома' //перед else не ставится ";"

        else if (a < b)  then    //небыло then
            if((p >= q) and (r >= s))  then //небыло then
                if((p <= b) and (r <= b) and ((q + s) <= a)) then //небыло then
                    Edit7.Text:='Можно построить 2 дома'  //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома' //перед else не ставится ";"

            else if((p < q) and (r >= s))  then    //небыло then
                if((q <= b) and (r <= b) and ((p + s) <= a)) then  //небыло then
                    Edit7.Text:='Можно построить 2 дома'   //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома'  //перед else не ставится ";"

            else if((p < q) and (r < s))  then   //небыло then
                if((q <= b) and (s <= b) and ((p + e/r) <= a)) then  //небыло then
                    Edit7.Text:='Можно построить 2 дома'  //перед else не ставится ";"
                else
                    Edit7.Text:='Нельзя построить 2 дома' //перед else не ставится ";"

            else if((p >= q) and (r < s)) then         //небыло then
                if((p <= b) and (s <= b) and ((q + r) <= a)) then  //небыло then
                    Edit7.Text:='Можно построить 2 дома'
                else
                    Edit7.Text:='Нельзя построить 2 дома';
end;
везде одна и та же ошибка!
Отладка - это процесс осознания того, что программа делает только то, что ты написал, а не то, что ты хотел написать.
yaschenko вне форума Ответить с цитированием
Старый 02.04.2014, 18:01   #4
Ляйсан9517
Пользователь
 
Регистрация: 30.03.2014
Сообщений: 31
По умолчанию

Все равно ошибок, еще больше
Ляйсан9517 вне форума Ответить с цитированием
Старый 02.04.2014, 19:47   #5
yaschenko
Пользователь
 
Аватар для yaschenko
 
Регистрация: 29.03.2014
Сообщений: 26
По умолчанию

Вставил код который написал выше в своем сообщении в Delphi XE выдает только одну ошибку:
Код:
if((q <= b) and (s <= b) and ((p + e/r) <= a))  <--ошибка переменная "е" не описана
Отладка - это процесс осознания того, что программа делает только то, что ты написал, а не то, что ты хотел написать.
yaschenko вне форума Ответить с цитированием
Старый 02.04.2014, 20:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Все равно ошибок, еще больше
Задача как звучит. То что тут представлено проще выкинуть чем пересмотреть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться! Lazarus Kseniya_TS Помощь студентам 4 02.03.2014 12:45
Помогите разобраться с кодом! sid Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 13.04.2010 17:53
Помогите разобраться с кодом Superlotles Общие вопросы Delphi 6 19.08.2009 22:24
Помогите разобраться с кодом С++ Noor Помощь студентам 20 10.10.2007 17:42