0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 10
1

Else - ошибка при использовании

23.02.2014, 12:46. Показов 1141. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помочь с кодом.
В данной процедуре ошибка использования Else.
Помогите, пожалуйста разобраться.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
procedure otvet;
{выводит ответ}
var
  i,j: integer;
begin
  writeln(f,'<P><b>ОТВЕТ:</b></P>');
  form1.Memo1.ReadOnly:=false;
  form1.Memo1.Lines.Clear;
  form1.Memo1.Lines.Add('ОТВЕТ:');
  form1.Memo1.Lines.Add('');
  if (solve=true) and (i_basis=0) then
  write(f,'F(');
  form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'F(';
  if form1.Extrem.ItemIndex=0 then
  begin
    write(f,'max) = ',0-matrix[n+1,m+y+1]:0:3);
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'max) = ';
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+floattostr(0-matrix[n+1,m+y+1]);
  end
  else
  begin
    write(f,'min) = ',matrix[n+1,m+y+1]:0:3);
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'min) = ';
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+floattostr(matrix[n+1,m+y+1]);
  end;
  writeln(f,'<br>при значениях:<br>');
  form1.Memo1.Lines.Add('');
  form1.Memo1.Lines.Add('');
  form1.Memo1.Lines.Add('при значениях:');
  form1.Memo1.Lines.Add('');
  for j:=1 to m do
  begin
    writeln(f,'x<sub>',j,'</sub> = ');
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'X[';
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+inttostr(j);
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'] = ';
    written:=false;
    for i:=1 to n do
    if all_basis[i]=j then
    begin
      writeln(f,matrix[i,m+y+1]:0:3,'<br>');
      form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+floattostr(matrix[i,m+y+1]);
      form1.Memo1.Lines.Add('');
      form1.Memo1.Lines.Add('');
      written:=true;
    end;
    if written=false then
    begin
      writeln(f,'0.000 <br>');
      form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'0';
      form1.Memo1.Lines.Add('');
      form1.Memo1.Lines.Add('');
    end;
  end;
  end else
  begin
    writeln(f,'<P>Решение не найдено.(</P>');
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'Решение не найдено.';
  end;
  form1.Memo1.ReadOnly:=true;
end;
Сами ошибки

Компоновка
[Ошибка] Unit1.pas(55): ';' expected but 'ELSE' found
[Ошибка] Unit1.pas(59): '.' expected but ';' found
[Предупреждение] Unit1.pas(61): Text after final 'END.' - ignored by compiler

Пробовала убирать один из end'ов - еще больше ошибок
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2014, 12:46
Ответы с готовыми решениями:

Ошибка при работе с ComboBox при использовании FindComponent
Есть комбобокс, список в него загружается из стринггрида. Потом по выбранному значению в комбобоксе...

Ошибка при использовании IBdatabase
Доброе время суток форумчане! Прошу прощения если что-то оформил не так. Впервые выхожу на форум...

Ошибка при использовании DLL
Функция описанная в ДЛЛ ошибок нет. тестировалась отдельно. Procedure Bnw (var img: tbitmap); var...

Ошибка при использовании MoveFile
Доброго времени суток! Пишу простенький файловый менеджер и столкнулся с проблемой при написании...

3
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
23.02.2014, 13:06 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
procedure otvet;
{выводит ответ}
var
  i,j: integer;
begin
  writeln(f,'<P><b>ОТВЕТ:</b></P>');
  form1.Memo1.ReadOnly:=false;
  form1.Memo1.Lines.Clear;
  form1.Memo1.Lines.Add('ОТВЕТ:');
  form1.Memo1.Lines.Add('');
  if (solve=true) and (i_basis=0) then  write(f,'F(');
  form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'F(';
  if form1.Extrem.ItemIndex=0 then
   begin
    write(f,'max) = ',0-matrix[n+1,m+y+1]:0:3);
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'max) = ';
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+floattostr(0-matrix[n+1,m+y+1]);
   end
  else
   begin
    write(f,'min) = ',matrix[n+1,m+y+1]:0:3);
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'min) = ';
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+floattostr(matrix[n+1,m+y+1]);
   end;
  writeln(f,'<br>при значениях:<br>');
  form1.Memo1.Lines.Add('');
  form1.Memo1.Lines.Add('');
  form1.Memo1.Lines.Add('при значениях:');
  form1.Memo1.Lines.Add('');
  for j:=1 to m do
   begin
    writeln(f,'x<sub>',j,'</sub> = ');
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'X[';
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+inttostr(j);
    form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'] = ';
    written:=false;
    for i:=1 to n do
    if all_basis[i]=j then
     begin
      writeln(f,matrix[i,m+y+1]:0:3,'<br>');
      form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+floattostr(matrix[i,m+y+1]);
      form1.Memo1.Lines.Add('');
      form1.Memo1.Lines.Add('');
      written:=true;
     end;
    if written=false then
     begin
      writeln(f,'0.000 <br>');
      form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'0';
      form1.Memo1.Lines.Add('');
      form1.Memo1.Lines.Add('');
     end
    else
     begin
      writeln(f,'<P>Решение не найдено.(</P>');
      form1.Memo1.Lines.Text:=form1.Memo1.Lines.Text+'Решение не найдено.';
     end;
  form1.Memo1.ReadOnly:=true;
 end;
end;
1
56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
23.02.2014, 13:12 3
У тебя строка 48 и 53 это операторные скобки Условия :
Delphi
1
 if written=false then
а строки 54,55 это закрываются циклы
Ты должен Else писать после 53 строки т.к. там заканчивается условие
Пример
У тебя вот так :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for i:=1 to 3 do 
begin
 {действия}
 for j := 1 to 3 do 
begin
  {действия}
If {условие} then 
 begin 
{действия}
 end; // Закрываться условие  
end; // закрывается цикл j 
end //Закрывается цикл i 
else  // Если условие не верно то 
 begin
{действия}
 end;
А нужно
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for i:=1 to 3 do 
begin
 {действия}
 for j := 1 to 3 do 
begin
  {действия}
If {условие} then 
 begin 
{действия}
 end  // Закрываться условие  
else  // Если условие не верно то 
 begin
{действия}
 end;
end; // закрывается цикл j 
end; //Закрывается цикл i
1
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 10
23.02.2014, 13:28  [ТС] 4
Puporev,
Спасибо )))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2014, 13:28
Помогаю со студенческими работами здесь

Ошибка при использовании кнопки
procedure TForm1.Button1Click(Sender: TObject); var dist,vr, v: real; begin dist :=...

ошибка при использовании модальных окон
Здравствуйте. У меня такая проблема. Есть две формы, на первой есть Image. При клике на него,...

Ошибка при использовании процедуры из DLL
Скрин самой ошибки Проект dll library Project2; uses SysUtils, Classes;

Вылазит ошибка при использовании компонента ICS
Поставил компонент ICS для делфи 10.1 Berlin и появилась ошибка при использовании компонента ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru