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.


timekiller   (2010-04-26 17:54:00) [1]

Сорри за оффтоп...

> Статейка тут попалась забавная:
> Шапиро Максим. "Как распознать идиота во время дискуссии"
> http://flibusta.net/b/187190/read


ААаафигенная статья! Спасибо!!! :)))


мимопроходил   (2010-04-26 10:01:00) [2]

> if условие then
> begin   
>    оператор(причем только один);
> end;

Всегда обозначаю одиночные операторы begin-endили парой {}, только begin/{ставлю на той же строке, что и условие, чтобы не путаться и по отступам было видно, что закрывается тем или иным end/}


Плохиш   (2010-04-24 01:06:00) [3]


> Anatoly Podgoretsky ©   (23.04.10 19:28) [35]

Вообще-то я там отвечал на типо-выпендривание [11]


Anatoly Podgoretsky   (2010-04-23 19:28:00) [4]

> Плохиш  (23.04.2010 19:26:34)  [34]

Мне казалось, что ты знаешь где можно, а где нельзя. А не объяснение почему нельзя где не можно.


Плохиш   (2010-04-23 19:26:00) [5]


> Anatoly Podgoretsky ©   (23.04.10 19:06) [33]
>
> > Плохиш  (23.04.2010 14:09:31)  [31]
>
> Про точку с запятой там.
>

А ещё про то, что после end перед else её ставить нельзя.


Anatoly Podgoretsky   (2010-04-23 19:06:00) [6]

> Плохиш  (23.04.2010 14:09:31)  [31]

Про точку с запятой там.


Anatoly Podgoretsky   (2010-04-23 19:06:00) [7]

> oldman  (23.04.2010 12:57:29)  [29]

Нормально, при этом точка с запятой не обязательно.
Лично я не стесняюсь использовать begin end для одиночного оператора, мне так легче читать код.


Плохиш   (2010-04-23 14:09:00) [8]


> Anatoly Podgoretsky ©   (23.04.10 12:26) [27]

А в [24] о чём речь?


turbouser   (2010-04-23 13:02:00) [9]


> oldman ©   (23.04.10 12:57) [29]

Только если

var a:TProcedure;

begin
 a
end;


oldman   (2010-04-23 12:57:00) [10]


> Anatoly Podgoretsky ©   (23.04.10 12:26) [27]


А
if условие then
begin
 оператор(причем только один);
end;

нормально? :)


Дмитрий Белькевич   (2010-04-23 12:34:00) [11]


> Бывает и ошибается;)


Пока что не видел... Если железо исправное.


> Шапиро Максим. "Как распознать идиота во время дискуссии"


Интересно. Правда, большинство сказанного можно отнести не к идиотизму собеседника, но к известным приёмам демагогии.


Anatoly Podgoretsky   (2010-04-23 12:26:00) [12]

> Плохиш  (23.04.2010 10:30:26)  [26]

end end
end; end

а вот

end; else

нельзя.


Плохиш   (2010-04-23 10:30:00) [13]


> Anatoly Podgoretsky ©   (23.04.10 07:44) [25]
>
> > Плохиш  (22.04.2010 12:40:24)  [24]
>
> После тоже можно, а иногда и нужно, смотрим случай с else
>

твоё моя не понимайт...


Anatoly Podgoretsky   (2010-04-23 07:44:00) [14]

> Плохиш  (22.04.2010 12:40:24)  [24]

После тоже можно, а иногда и нужно, смотрим случай с else


Плохиш   (2010-04-22 12:40:00) [15]


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

А после, в данном случае, вообще её ставить недопускает стандарт языка.


Ins   (2010-04-22 11:27:00) [16]


> Шапиро Максим. "Как распознать идиота во время дискуссии"


Да, идиота в компиляторе по приведенным признакам распознать не удалось


Германн   (2010-04-22 00:32:00) [17]


> Просто поделиться захотелось.

Спасибо.


Демо   (2010-04-21 22:56:00) [18]


> Leonid Troyanovsky ©   (21.04.10 21:39) [20]
> > Демо ©   (21.04.10 20:22) [19] > Бывает и ошибается;)Ну,
>  допустим, ошибся. Но, нет у него осознания оного.


А ещё есть интеллектуалы, эрудиты, и идиоты-)

Статейка тут попалась забавная:
Шапиро Максим. "Как распознать идиота во время дискуссии"
http://flibusta.net/b/187190/read

PS.
Только ради бога не надо не надо воспринимать как намёки на что-то. Просто поделиться захотелось.


Leonid Troyanovsky   (2010-04-21 21:39:00) [19]


> Демо ©   (21.04.10 20:22) [19]

> Бывает и ошибается;)

Ну, допустим, ошибся. Но, нет у него осознания оного.
Вот, где естественный интеллект может отличится среди иных.

Короче: машина - она железная, а бумага из дерева.

--
Regards, LVT.


Демо   (2010-04-21 20:22:00) [20]


> Ins ©   (21.04.10 20:20) [18]
> > oldman ©   (21.04.10 17:55) [14]> компилятор не идиотКонечно
> не идиот. Компьютер вообще никогда не ошибается


Думаешь?-)))
Бывает и ошибается;)


Страницы:   1 2

Наверх

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