Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему не работает программа?


Страницы:   1 2

Учащийся ©   (2010-04-21 14:01:00) 

Здравствуйте при компиляции довольно простой программы у меня вылазит ошибка, что отсутствует ';'. В чём проблема, понять не могу...Несколько раз код на ошибку проверял, вот:

program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

var Ar:array[1..2048] of byte;//массив с элементами
   Ea:array[1..512] of integer;//массив с указателями
   ArLen:integer;// эффективная длина массива

procedure ChangeString(i:integer;NewString:string);
procedure PutString(n:integer;s:string);
function CountDifferent(i:integer;l:integer):integer;
procedure OutElements(n:integer;_N:integer);
procedure InElements(n:integer;_N:integer);

procedure ChangeString(i:integer;NewString:string);
var cd:integer;
begin
  cd:=CountDifferent(i, length(NewString));
  if cd<0 then
  begin
    OutElements(ea[i],length(NewString))
  end
  else
  begin
    InElements(ea[i],length(NewString));
  end;
  Ar[ea[i]]:=length(NewString);
  PutString(ea[i]+1,Newstring);
end;

procedure PutSring(n:integer;s:string);
var i:integer;
begin
  for i:=1 to length(s) do
  begin
    Ar[ea[n]+i-1]:=byte(s[i]);
  end;
end;

function CountDifferent(i:integer;l:integer):integer;
begin
  Result:=l-Ea[i];
end;

procedure OutElements(n:integer;_N:integer);
var i:integer;
begin
  ArLen:=ArLen-_N;
  for i:=(n+1) to ArLen do
  begin
    Ar[i]:=Ar[i+_N];
  end;
end;

procedure InElements(n:integer;_N:integer);
var i1:integer;
begin
  ArLen:=ArLen+_N;
  for i1:=ArLen downto n+1 do
  begin
     Ar[i1]:=Ar[i1-n];
  end;
end;

begin
 { TODO -oUser -cConsole Main : Insert code here }
end.


Ins   (2010-04-21 20:20:00) [21]


> oldman ©   (21.04.10 17:55) [14]


> компилятор не идиот


Конечно не идиот. Компьютер вообще никогда не ошибается


PZ   (2010-04-21 19:18:00) [22]

Вот в таком виде ошибки нет:

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var Ar:array[1..2048] of byte;//iannea n yeaiaioaie
  Ea:array[1..512] of integer;//iannea n oeacaoaeyie
  ArLen:integer;// yooaeoeaiay aeeia ianneaa

//procedure ChangeString(i:integer;NewString:string); Forward;
//procedure PutString(n:integer;s:string);   // Forward;
function CountDifferent(i:integer;l:integer):integer; Forward;
procedure OutElements(n:integer;_N:integer); Forward;
procedure InElements(n:integer;_N:integer); Forward;

//procedure PutSring(n:integer;s:string);
procedure PutString(n:integer;s:string);
var i:integer;
begin
 for i:=1 to length(s) do
 begin
   Ar[ea[n]+i-1]:=byte(s[i]);
 end;
end;

procedure ChangeString(i:integer;NewString:string);
var cd:integer;
begin
 cd:=CountDifferent(i, length(NewString));
 if cd<0 then
 begin
   OutElements(ea[i],length(NewString))
 end
 else
 begin
   InElements(ea[i],length(NewString));
 end;
 Ar[ea[i]]:=length(NewString);
 PutString(ea[i]+1,Newstring);
end;

{
//procedure PutSring(n:integer;s:string);
procedure PutString(n:integer;s:string);
var i:integer;
begin
 for i:=1 to length(s) do
 begin
   Ar[ea[n]+i-1]:=byte(s[i]);
 end;
end;
}

function CountDifferent(i:integer;l:integer):integer;
begin
 Result:=l-Ea[i];
end;

procedure OutElements(n:integer;_N:integer);
var i:integer;
begin
 ArLen:=ArLen-_N;
 for i:=(n+1) to ArLen do
 begin
   Ar[i]:=Ar[i+_N];
 end;
end;

procedure InElements(n:integer;_N:integer);
var i1:integer;
begin
 ArLen:=ArLen+_N;
 for i1:=ArLen downto n+1 do
 begin
    Ar[i1]:=Ar[i1-n];
 end;
end;

begin
{ TODO -oUser -cConsole Main : Insert code here }
end.


12   (2010-04-21 18:05:00) [23]


> пусть автор ответит на [12]

не компилятор, но ругается на то место, где end.
видимо считает что функция сверху еще не кончена


Юрий Зотов   (2010-04-21 17:59:00) [24]


> oldman ©   (21.04.10 17:45) [12]

При этой ошибке компилятор запросто может очень сильно соврать.


oldman   (2010-04-21 17:55:00) [25]


> Ins ©   (21.04.10 17:51) [13]


пусть автор ответит на [12]
компилятор не идиот


Ins   (2010-04-21 17:51:00) [26]


> А после?


И после, если там else


oldman   (2010-04-21 17:45:00) [27]

Здравствуйте при компиляции довольно простой программы у меня вылазит ошибка, что отсутствует ';'.

И не пишет где??????????????


oldman   (2010-04-21 17:43:00) [28]


> turbouser ©   (21.04.10 17:39) [10]
> Здесь нет ошибки. Перед end-ом допустимо опускать ;


А после?


turbouser   (2010-04-21 17:39:00) [29]


> oldman ©   (21.04.10 16:57) [9]


> Мдя...

Здесь нет ошибки. Перед end-ом допустимо опускать ;


oldman   (2010-04-21 16:57:00) [30]


> Здравствуйте при компиляции довольно простой программы у
> меня вылазит ошибка, что отсутствует ';'. В чём проблема, понять не могу...
> begin
>   cd:=CountDifferent(i, length(NewString));
>   if cd<0 then
>   begin
>     OutElements(ea[i],length(NewString))
>   end
>   else


Мдя...


12   (2010-04-21 15:56:00) [31]

//procedure ChangeString(i:integer;NewString:string);

function CountDifferent(i:integer;l:integer):integer; forward;
procedure OutElements(n:integer;_N:integer); forward;
procedure InElements(n:integer;_N:integer); forward;
procedure PutString(n:integer;s:string); forward;

procedure ChangeString(i:integer;NewString:string);
var cd:integer;
begin
 cd:=CountDifferent(i, length(NewString));
 if cd<0 then
 begin
   OutElements(ea[i],length(NewString))
 end
 else
 begin
   InElements(ea[i],length(NewString));
 end;
 Ar[ea[i]]:=length(NewString);
 PutString(ea[i]+1,Newstring);
end;

procedure PutS _t_ring(n:integer;s:string);


Ega23   (2010-04-21 15:37:00) [32]


> Это не unit, а program ;-)


опс... Не обратил внимания...


Ins   (2010-04-21 15:31:00) [33]


> А также что такое interface и implementation


Это не unit, а program ;-)


Ega23   (2010-04-21 14:41:00) [34]


> Читать про директиву forward.


А также что такое interfaceи implementation


Учащийся   (2010-04-21 14:30:00) [35]


> procedure ChangeString(i:integer;NewString:string);
> procedure PutString(n:integer;s:string);
> function CountDifferent(i:integer;l:integer):integer;
> procedure OutElements(n:integer;_N:integer);
> procedure InElements(n:integer;_N:integer);
>
> убери
>

убрал!

> Плохиш ©   (21.04.10 14:13) [3]
>
> Читать про директиву forward.
>

Слушаюсь!


Плохиш   (2010-04-21 14:13:00) [36]

Читать про директиву forward.


DVM   (2010-04-21 14:06:00) [37]

procedure ChangeString(i:integer;NewString:string);
procedure PutString(n:integer;s:string);
function CountDifferent(i:integer;l:integer):integer;
procedure OutElements(n:integer;_N:integer);
procedure InElements(n:integer;_N:integer);

убери


Учащийся   (2010-04-21 14:03:00) [38]

или я заголовки функций неправильно оформляю?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо