Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

По-разному работает идентичный код в одной проге

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> По-разному работает идентичный код в одной проге
Имя
Сообщение << Старые топики   Новые топики >>
По-разному работает идентичный код в одной проге - 2010-09-15 00:31:45.263333   
Babylon

Сообщений: 7
Оценки: 0
Присоединился: 2008-08-08 14:52:57.270000
program&nbsp;rs2; {$APPTYPE&nbsp;CONSOLE} uses &nbsp;&nbsp;SysUtils; &nbsp;&nbsp;var&nbsp;&nbsp;a,b,c,x1,x2:array[1..100500]&nbsp;of&nbsp;integer; &nbsp;&nbsp;xi,i:integer; procedure&nbsp;masinit(var&nbsp;v:array&nbsp;of&nbsp;integer); var&nbsp;i:integer; begin &nbsp;&nbsp;randomize; &nbsp;&nbsp;for&nbsp;i:=1&nbsp;to&nbsp;10&nbsp;do &nbsp;&nbsp;&nbsp;&nbsp;v[i]:=random(40); end; procedure&nbsp;masout(&nbsp;v:array&nbsp;of&nbsp;integer&nbsp;); var&nbsp;i:integer; begin //&nbsp;идентичный&nbsp;компонент1 &nbsp;&nbsp;for&nbsp;i:=1&nbsp;to&nbsp;10&nbsp;do &nbsp;&nbsp;&nbsp;&nbsp;write('&nbsp;',&nbsp;v[i],&nbsp;'&nbsp;[',i,']&nbsp;'); end; begin &nbsp;&nbsp;masinit(b); &nbsp;&nbsp;masout(b); &nbsp;&nbsp;writeln; //&nbsp;идентичный&nbsp;компонент&nbsp;2 &nbsp;&nbsp;for&nbsp;i:=1&nbsp;to&nbsp;10&nbsp;do &nbsp;&nbsp;&nbsp;&nbsp;write('&nbsp;',&nbsp;b[i],&nbsp;'&nbsp;[',i,']&nbsp;'); &nbsp;&nbsp;readln; end.&nbsp; Проблема в том, что элементы смещаются на 1:
Вывод:

30 [1] 8 [2] 22 [3] 33 [4] 2 [5] 2 [6] 6 [7] 2 [8] 23 [9] 15 [10]
0 [1] 30 [2] 8 [3] 22 [4] 33 [5] 2 [6] 2 [7] 6 [8] 2 [9] 23 [10]

Вопрос в том, как решить трабл?
Post #: 1
RE: По-разному работает идентичный код в одной проге - 2010-09-15 01:35:55.176666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Сначала подумал,что ты про вывод в консоль, даже удивился. Нолик уже намекает,что не присваиваешь ты 1й элемент. Потому что передаешь в процедуру статический массив, а параметр в ней - динамический. Нумеруется с нуля. С ошибкой не вылетит,но делать так не надо. Объяви выше свой тип для массива и передавай его (в идеале) .
type MyMas=array [1..100500] of integer; ------------- procedure masinit(var v:MyMas); Вообще расточительно массив так вот весь передавать, ну да ладно (указатель хорошо бы).

З.Ы. Вопросы по Delphi наверху в прикрепленном топике.
Post #: 2
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> По-разному работает идентичный код в одной проге







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.