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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2008, 01:37   #11
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от дангер Посмотреть сообщение
Да, у меня такой же
результат получился. только не пойму зачем в массив сначала записывается число 1, а затем меняется на следующее? В чем смысл задачи и какая задача могла бы подойти под эту программу? А вообще, народ, спасибо. Сижу - туплю
А вы компилировали этот код?

Результат кода: 1 1 1 1 1 1 1 1 1 1
Код:
var a: array[1..10]of integer;
i: integer;
begin
for i :=1 to 10 do a[i]:=i;
for i :=1 to 10 do a[i+1]:=a[i];
end.
А если сделать так:
for i :=0 to 9 do a[i+1]:=a[i];

То результат будет 0 0 0 0 0 0 0 0 0 0

Неможет быть чтоб у нас выходил разный результат компиля дин и тотже код
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.01.2008, 01:38   #12
дангер
Пользователь
 
Регистрация: 28.01.2008
Сообщений: 15
По умолчанию

"Может быть:
Заполнить элементы масива целыми числами!
Полученный масив данных сдвинуть на один шаг вправо!"
А какая жизненная задача подходит под это условие? Ну например: были спортсмены, учавствовали в прыжках в высоту по очереди. Очередь сдивинулась....???

нет, не компилировала . у меня эта программа либо зацикливается либо выдает ошибку выхода за границы диапазона
даже с этими изменениями. Кстати , а почему зацикливается то. Ведь должно просто выходить за границу.
а может в эту программу дописать проверку выхода за границу массива?

Последний раз редактировалось Alex21; 28.01.2008 в 15:31.
дангер вне форума Ответить с цитированием
Старый 28.01.2008, 01:52   #13
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Код:
var a: array[1..10]of integer;   
i: integer;   
begin  
for i :=1 to 10 do a[i]:=i;   
for i :=1 to 9 do a[i+1]:=a[i];   
end.
Вот так вот должно компилить....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.01.2008, 01:54   #14
дангер
Пользователь
 
Регистрация: 28.01.2008
Сообщений: 15
По умолчанию

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

Последний раз редактировалось дангер; 28.01.2008 в 01:57.
дангер вне форума Ответить с цитированием
Старый 28.01.2008, 02:03   #15
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Никто некуда за пределы массива неуходит.
Зацикливаться тоже недолжно...
Для наглядности работы можно ввыводить результаты до и после:

Код:
var a : array [1..10] of integer;
    i : integer;
begin
for i := 1 to 10 do a[i]:= i;
For i := 1 to 10 do Write(a[i], ' ');
for i := 1 to 9 do a[i + 1]:= a[i];
Writeln;
For i := 1 to 10 do Write(a[i], ' ');
Readln;
end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 28.01.2008, 02:06   #16
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

http://www.programmersforum.ru/showp...5&postcount=10
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 28.01.2008, 02:13   #17
дангер
Пользователь
 
Регистрация: 28.01.2008
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение
Результат кода: 1 1 1 1 1 1 1 1 1 1

То результат будет 0 0 0 0 0 0 0 0 0 0
действительно результат 1111 выходит ,а вот 000 нет. кстати тогда просто непонятно зачем в каждую ячейку массива записывать тупо 1. А про зацикливание в задаче прямо сказано "следующая программа ... зацикливается, если отключена проверка выхода за массив. почему это происходит? как необходимо решать ее на самом деле?" Но спасибо!
дангер вне форума Ответить с цитированием
Старый 28.01.2008, 02:17   #18
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

так поставь проверку выхода за масив if i=10 then Abort else a[i+1]:=a[i];
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 28.01.2008, 02:19   #19
дангер
Пользователь
 
Регистрация: 28.01.2008
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
Может быть:
Заполнить элементы масива целыми числами!
Полученный масив данных сдвинуть на один шаг вправо! (возможно вместо a[i+1]:=a[i]; имелось ввиду a[i+1]:=i;?? Иначе прога теряет ввесь смысл )
Тогда решение (на мой взгляд) будет таким:
Код:
var a: array[1..10]of integer;
i: integer;
begin
for i :=1 to 10 do a[i]:=i;

for i :=1 to 10 do
if i=10 then a[1]:=i else a[i+1]:=i;
end.
а почему на 1 месте стоит 10? это же шаг вправо. тоесть последнее число 10 станет на 1 место?
дангер вне форума Ответить с цитированием
Старый 28.01.2008, 02:24   #20
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Можно и не 10. Можно просто оставить его cо старым значением (т.е. 1).
Код:
var a: array[1..10]of integer;   
i: integer;   
begin   
for i :=1 to 10 do a[i]:=i;   
  
for i :=1 to 10 do   
if i=10 then Abort else a[i+1]:=i;   
end.
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа которая делает кроссворд Иллидан Софт 15 02.12.2014 06:34
по правой стороне поля, при печати, делает полосу Виктор1966 Свободное общение 1 11.03.2008 13:08
Народ расскажите кто нужен для создания игры и кто что делает Kosoy135 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 16.09.2007 18:59
ошибка 48 - программа больше 62520 байт. Что делать? Pancher Паскаль, Turbo Pascal, PascalABC.NET 22 02.08.2007 01:11