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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 15:12   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию Pascal ABC. Выход за пределы диапазона изменения индекса 1..100.

При считывании из файла данных пишет, что выход за пределы диапазона индексов в 19 строке(выделена красным)

Код:
Program Record;
Uses Crt;
Type mas1=array [1..100] of integer;
Type mas2=array [1..100, 1..100] of integer;
type Xm=record
     a:mas1;
     end;
     myfile=file of Xm;
Var f1:myfile;
    c1:Xm;
    i:integer;
Begin
CLRSCR;
 Assign(f1,'h:\OdMassiv');
 reset(f1);
  While not eof(f1) do
  begin
  Read(f1,c1);
  write('|',c1.a[i],'|');
  end;
 readln;
end.
Женька Good вне форума
Старый 05.04.2012, 15:19   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну а чего вы хотели когда обращались по 0 в лучшем случае индексу?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 05.04.2012, 15:24   #3
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Ну а чего вы хотели когда обращались по 0 в лучшем случае индексу?
А как записать правильно?
Женька Good вне форума
Старый 05.04.2012, 15:31   #4
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
Program Record;
Uses Crt;
Type mas1=array [1..100] of integer;
Type mas2=array [1..100, 1..100] of integer;
type Xm=record
     a:mas1;
     end;
     myfile=file of Xm;
Var f1:myfile;
    c1:Xm;
    i:integer;
Begin
CLRSCR;
 Assign(f1,'h:\OdMassiv');
 reset(f1);
  While not eof(f1) do
  begin
  Read(f1,c1);
  for i := 1 to 100 do
  write('|',c1.a[i],'|');
  end;
 readln;
end.
а вообще же, неужели ты так глуп и не понимаешь, что за 1 read считываешь один массив? что переменная i у тебя равна всегда нулю? ты хоть в спорт зал ходишь, чтоб мог хоть руками работать, если головой трудно? я вон только сделал 6 упражнений по 3 подхода с 10 повторами, но мне это не мешает шарить в коде! даже инвалидность не мешает, а тебе что мешает врубится в эти чёртовые файлы?

P.S. сорри, не сдержался
P.S.S. случаем не Позднеев Жека?
GreenWizard вне форума
Старый 05.04.2012, 15:33   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

GreenWizard по меньше агрессии! Своё мнение держи при себе! -
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 05.04.2012, 15:35   #6
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
Код:
Program Record;
Uses Crt;
Type mas1=array [1..100] of integer;
Type mas2=array [1..100, 1..100] of integer;
type Xm=record
     a:mas1;
     end;
     myfile=file of Xm;
Var f1:myfile;
    c1:Xm;
    i:integer;
Begin
CLRSCR;
 Assign(f1,'h:\OdMassiv');
 reset(f1);
  While not eof(f1) do
  begin
  Read(f1,c1);
  for i := 1 to 100 do
  write('|',c1.a[i],'|');
  end;
 readln;
end.
а вообще же, неужели ты так глуп и не понимаешь, что за 1 read считываешь один массив? что переменная i у тебя равна всегда нулю? ты хоть в спорт зал ходишь, чтоб мог хоть руками работать, если головой трудно? я вон только сделал 6 упражнений по 3 подхода с 10 повторами, но мне это не мешает шарить в коде! даже инвалидность не мешает, а тебе что мешает врубится в эти чёртовые файлы?

P.S. сорри, не сдержался
P.S.S. случаем не Позднеев Жека?
и ты вообще в курсе, что получается?
Женька Good вне форума
Старый 05.04.2012, 15:37   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
и ты вообще в курсе, что получается?
Женька Good а вот что делаете то и получается!
Каким образом файл генерируете? Тут не телепаты!
Задание напиши! И код ВЕСЬ желательно!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 05.04.2012, 15:40   #8
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от Женька Good Посмотреть сообщение
и ты вообще в курсе, что получается?
фигня получается, а знаешь почему? потому что ты типа решил задачу, выложил код и думаешь, что это "глупый Паскаль не работает", а ошибка-то в твоём решении и без условия задачи помочь не реально
в коде ты хотел вывод считанного элемента - это и получил
GreenWizard вне форума
Старый 05.04.2012, 15:41   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

например, так, как было написано в вашей предыдущей теме - ТЫРК
(ну, разумеется, типы нужно изменить под ваши новые):
Код:
Uses Crt;
Type mas1=array [1..100] of integer;
Type mas2=array [1..100, 1..100] of integer;
type Xm=record
     a:mas1;
     end;
     myfile=file of Xm;
Var f1:myfile;
    c1:Xm;
    i:integer;


begin
  CLRSCR;
  Assign(f1,'h:\OdMassiv');
  reset(f1);
  WriteLn('Всего в файле записей (массивов): ',FileSize(f1));
  While not eof(f1) do
  begin
     Read(f1,c1);
     for i:=1 to 100 do 
        write('|',c1.a[i],'|');
     WriteLn;
     WriteLn;
  end;
  Close(f1);
  Readln
end.
Serge_Bliznykov вне форума
Старый 05.04.2012, 15:42   #10
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Женька Good а вот что делаете то и получается!
Каким образом файл генерируете? Тут не телепаты!
Задание напиши! И код ВЕСЬ желательно!
Задание, записать одномерный массив по формуле "round(10+random*(100-10))" в файл в одной программе и вывести его на экран с помощью другой программы.

Генерирую его вот этим программным кодом:
Код:
Program Z;
Uses Crt;
Type mas1=array [1..100] of integer;
type Xm=record
     a:mas1;
     a1:mas2;
     a2:mas2;
     a3:mas2;
     a4:mas2;
     end;
     myfile=file of Xm;
Var f1:myfile;
    i:integer;
    c1:Xm;
Begin
CLRSCR;
Randomize;
Assign(f1,'h:\OdMassiv');
rewrite(f1);
 For i:=1 to 100 do begin
  c1.a[i]:=round(10+random*(100-10));
  write(f1,c1);
 end;
 close(f1);
end.
Женька Good вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выход за пределы массива NFXrus Помощь студентам 10 09.12.2011 23:13
выход за пределы массива(с++) Lazy maximka Помощь студентам 2 13.11.2011 16:11
ListBox, выход текста за пределы видимости _-Re@l-_ Общие вопросы Delphi 3 31.08.2011 14:51
C++ выход за пределы строки (char) Alex11223 Помощь студентам 4 20.04.2011 20:27
C++ - выход за пределы массива kefir Помощь студентам 5 12.06.2010 14:09