Форум: "Начинающим";
Текущий архив: 2007.08.05;
Скачать: [xml.tar.bz2];
ВнизВсе делает правильно но в конце кидает "invalid pointer oper.." Найти похожие ветки
← →
Ezorcist (2007-07-07 15:29) [0]Программа простая и решает задачу подсчета среднего балла для студентов,
на форме кнопка, два поля memo (mem и log) в mem такие данные:1,1,1
2,2,2
3,3,3
4,4,4
5,5,5
Обработчик onclick кнопки:procedure TForm1.Button1Click(Sender: TObject);
var i,l,g:integer; c:char; s:string;
a : array of array [1..3] of integer;
sb : array [1..3] of real;
counter :array [1..5] of integer;
begin
l:=mem.Lines.Count -1;
setlength(a,l);
sb[1]:=0;
sb[2]:=0;
sb[3]:=0;
for i:= 1 to 5 do counter[i]:=0;
for i:= 0 to l do begin
s:=mem.Lines.Strings[i];
for g:= 1 to 3 do begin
c:=s[1+2*(g-1)];
a[i][g] :=strtoint(c);
sb[g]:=sb[g]+a[i][g];
inc(counter[a[i][g]]);
end;
end;
sb[1]:=sb[1]/mem.Lines.Count;
sb[2]:=sb[2]/mem.Lines.Count;
sb[3]:=sb[3]/mem.Lines.Count;
log.Lines.Add("Средний балл по предмету №1 = "+floattostr(sb[1]));
log.Lines.Add("Средний балл по предмету №2 = "+floattostr(sb[2]));
log.Lines.Add("Средний балл по предмету №3 = "+floattostr(sb[2]));
log.Lines.Add("Средний балл по всем предметам = "+floattostr((sb[1]+sb[2]+sb[3])/3));
end;
программа выдает верный результат, но на последней строке ошибка "invalid pointer operation" а при завершении программы - EAV а за ней "error 216 at ..."
← →
antonn © (2007-07-07 15:31) [1]
> setlength(a,l);
а без этого?
← →
Однокамушкин (2007-07-07 15:37) [2]Вы выделили для массива a памяти на l элементов, а цикл у вас от 0 до l - это уже получается l+1 элемент... К какой памяти вы обащаетесь на последней итерации цикла - а фиг его знает...
← →
Юрий Зотов © (2007-07-07 15:40) [3]l := mem.Lines.Count - 1; // На 1 меньше нужного.
setlength(a,l);
...
for i:= 0 to l do // На 1 больше максимума
begin
...
a[i][g] :=strtoint(c);
В индексации - полная неразбериха. Отсюда и 216.
← →
Ezorcist (2007-07-07 22:47) [4]Спасибо теперь все работает! :-) Не заметил...
А почему ошибка не возникала сразу в момент обращения к несуществующему элементу массива?
← →
Юрий Зотов © (2007-07-07 22:52) [5]> Ezorcist (07.07.07 22:47) [4]
По умолчанию эта проверка выключена.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c