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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2010, 18:20   #1
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию Ошибка в программе

Всем привет, тут писал одну программку в паскале она работает на ура, но при переносе в делфи возникает ошибка

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
s:string;
r:string;
used:array[1..10]of boolean;
m:integer;
procedure recurs(hi:integer);
var
i:integer;
begin
if hi>m then
writeln(r)
else begin
for i:=1 to m do begin
if not used[i] then begin
r[hi]:=s[i];
used[i]:=true;
recurs(hi+1);
used[i]:=false;
end;
end;
end;
end;
var

i:integer;
begin
readln(s);
m:=length(s);
r[0]:=chr(m);
for i:=1 to m do
used[i]:=false;
recurs(1);
end.
Код:
r[0]:=chr(m);
в этом месте возникает ошибка[Error]

Project1.dpr(36): Element 0 inaccessible - use 'Length' or 'SetLength'
larin1974 вне форума Ответить с цитированием
Старый 06.03.2010, 18:51   #2
Serebro
FORTRAN programmer
Форумчанин
 
Регистрация: 08.12.2009
Сообщений: 153
По умолчанию

В Pascal-е работает, но правильно ли? Что такое r - тип string или массив?
Serebro вне форума Ответить с цитированием
Старый 06.03.2010, 18:57   #3
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию

В паскале работает все правильно, проверял.
r:string;
larin1974 вне форума Ответить с цитированием
Старый 06.03.2010, 19:00   #4
Serebro
FORTRAN programmer
Форумчанин
 
Регистрация: 08.12.2009
Сообщений: 153
По умолчанию

Цитата:
Сообщение от larin1974 Посмотреть сообщение
В паскале работает все правильно, проверял.
r:string;
Тогда что это такое?
Код:
r[0]:=chr(m);
Serebro вне форума Ответить с цитированием
Старый 06.03.2010, 19:02   #5
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию

обращение к первому элементу строки
larin1974 вне форума Ответить с цитированием
Старый 06.03.2010, 20:11   #6
DarkStyle
 
Аватар для DarkStyle
 
Регистрация: 06.03.2010
Сообщений: 3
По умолчанию

Строка в Делфи - это массив символов, первый элемент которого находится по индедексу 1. На нулевом индексе находится размер строки.
Да и в Гугле точно был ответ!
DarkStyle вне форума Ответить с цитированием
Старый 06.03.2010, 20:13   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

либо вставьте опцию компилятора
Syntax {$H-}
or {$LONGSTRINGS OFF}

либо просто объявите строки короткими:
Код:
s:ShortString;
r:ShortString;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.03.2010, 20:44   #8
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию

Cпасибо, помогло)
larin1974 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в программе на С++ Vikelf Помощь студентам 3 15.05.2009 15:05
С++ Ошибка в программе EwwwA Общие вопросы C/C++ 5 05.01.2009 23:12
Ошибка в программе на рекурсию vitekbest Помощь студентам 13 14.06.2008 20:54
Ошибка в программе RoadTrain Общие вопросы Delphi 5 24.10.2007 22:16