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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2013, 09:08   #1
tetriss
Новичок
Джуниор
 
Регистрация: 10.04.2013
Сообщений: 3
По умолчанию Acces Violation

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid2: TStringGrid;
    StringGrid3: TStringGrid;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a:array[0..10,0..10] of integer;
b:array[0..10,0..10] of integer;
f:array[0..10] of integer;
p,l,i,j,n:integer;
begin
for i:=0 to 4 do
   for j:=0 to 5 do
      a[i,j]:=random(10);
      for i:=0 to 4 do
for j:=0 to 5 do
StringGrid2.Cells[j,i]:=IntToStr(a[i,j]);
      for p :=0 to 10 do
  begin
    if p<2 then f[p]:=1
    else f[p]:=f[p-1]+f[p-2];
    end;
    for p:=0 to 10 do
StringGrid3.Cells[p,1]:=IntToStr(f[p]);
      p:=0;
      i:=0;
      l:=0;
 while i<5 do
    begin
    j:=0;
    while j<=5 do
    begin
    if l<=f[p] then
    begin
    b[p,l]:=a[i,j];
    inc(j);
    inc(l);
    end
    else
    l:=0;
    inc(p);
    end;
    inc(i);
    end;
    n:=p;
    p:=0;
    for p:=0 to n do begin
    for l:=0 to f[p] do
    StringGrid1.Cells[l,p]:=IntToStr(b[p,l]);
    end;
 end;
 end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.04.2013 в 09:26.
tetriss вне форума Ответить с цитированием
Старый 10.04.2013, 09:15   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Acces Violation
Мы благодарим Вас за оперативный сигнал, пожалуйста оставайтесь на линии, каждый пост важен для нас...
А если серьезно - ну и? В чем вопрос-то? Для чего создана тема?
А если еще серьезней - где-то косяк с компонентами. Мы же не знаем какие там f[p] получаются. Вполне возможно, что ты обращаешься к несуществующей ячейке. Бей бреакпоинты, чтобы отследить подозрительные участки кода.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.04.2013, 09:36   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

при работе с массивами полезно
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 10.04.2013, 09:36   #4
tetriss
Новичок
Джуниор
 
Регистрация: 10.04.2013
Сообщений: 3
По умолчанию

Нужно было создать произвольный массив и переписать его так, чтобы в каждой строке количество элементов увеличивалось по закону Фибоначии (f[p] это я так ряд Фибоначчи создавала...)
Выдает ошибку на эту строку
StringGrid1.Cells[l,p]:=IntToStr(b[p,l]);
tetriss вне форума Ответить с цитированием
Старый 10.04.2013, 09:44   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

а в гриде есть 10 на 55 ячеек?
точнее даже 11 на 89
ибо при p=10 f[p]=89
и соответственно идет обращение к Cells[89,10]
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 10.04.2013 в 09:47.
Mad_Cat вне форума Ответить с цитированием
Старый 10.04.2013, 23:24   #6
tetriss
Новичок
Джуниор
 
Регистрация: 10.04.2013
Сообщений: 3
По умолчанию

Большое спасибо! Ошибка доступа исчезла) Правда еще была куча ошибок Check Range...
tetriss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возникает ошибка Acces Violation при использовании функции Copy Вадим Мошев Общие вопросы Delphi 9 07.05.2011 22:27
Непонятное Acces Violation при вызове Create у формы из Avaliable forms Человек_Борща Общие вопросы Delphi 11 26.08.2010 14:28
Исправить Acces Violation при загрузке файла Человек_Борща Общие вопросы Delphi 2 01.08.2010 14:50
Ругается(Acces Violation) при чтении DAT-файла Человек_Борща Общие вопросы Delphi 5 25.05.2010 19:42
Ошибка "Acces violation" в чем может быть причина TRIZER Общие вопросы Delphi 2 02.05.2010 12:10