![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не работает программа?
Учащийся © (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]или я заголовки функций неправильно оформляю?