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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2010, 20:02   #1
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

Надо найти ср. арифметическое в массиве записей.
вот код, но выдается ошибка.

Код:
procedure SredAr(A:TArr; sum:integer; cnt:integer;SG1,SG2:TStringGrid);
var
sr: real;
i: integer;
begin
for i:= 1 to cnt do
if Length(SG1.Cells[i-1, 0])<>0
then A[i] := StrToInt(SG2.Cells[i-1,0])
else A[i] := 0;
sum := 0;
for i :=1 to cnt do
sum := sum + A[i];
sr := sum/cnt;
end;

объясните пожалуйста что не так...
очень надо...

хоть на мыслю натолкните, товарищи

Последний раз редактировалось Stilet; 29.12.2010 в 08:59.
dima-intro вне форума Ответить с цитированием
Старый 27.12.2010, 21:16   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

ЧТО за ошибка? TArr это динамический массив? Где задаётся длинна. Почему проверяем значение в 0 колнке SG1, а присваиваем значения из SG2?
Но сначала 1 вопрос, ЧТО за ошибка?
vovk вне форума Ответить с цитированием
Старый 27.12.2010, 21:19   #3
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

else A[i] := 0; - тут ошибка

[Error] UnitRecDop.pas(174): Incompatible types: 'TRecStud' and 'Integer'
dima-intro вне форума Ответить с цитированием
Старый 27.12.2010, 21:33   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

дак TArr это массив записей? а чегож вы заместо записей ему число пытаетесь подсунуть?))
vovk вне форума Ответить с цитированием
Старый 27.12.2010, 21:35   #5
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

тоесть поиск ср. арифметического как для простого массива не подходит для записей...

а как мне это исправить?
dima-intro вне форума Ответить с цитированием
Старый 27.12.2010, 21:49   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

по конкретному числовому полю в записи конечно можно.
Но записывать число то можно только в числовое поле записи.
как пример с потолка
Код:
const cnt=10;
type
 TRecStud= record
  Name : String[10];
   Fam        : string[10] ;
  ciferka        : Integer
 end;
Type Tarr = array [1..cnt] of TRecStud;
.......
....
procedure SredAr(A:TArr; sum:integer; cnt:integer;SG1,SG2:TStringGrid);
var
sr: real;
i: integer;
begin
for i:= 1 to cnt do
if Length(SG1.Cells[i-1, 0])<>0
then A[i].ciferka := StrToInt(SG2.Cells[i-1,0])
else A[i].ciferka := 0;
sum := 0;
for i :=1 to cnt do
sum := sum + A[i].ciferka;
sr := sum/cnt;
end;
vovk вне форума Ответить с цитированием
Старый 27.12.2010, 22:03   #7
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

Спасибо.)
вроде не ругается теперь.
Попробую...
dima-intro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi списки и записи... world12_tk Помощь студентам 7 17.01.2012 20:42
Лекция Записи Delphi Obey177 Помощь студентам 3 04.10.2010 12:34
Записи в Delphi sluch Помощь студентам 1 01.04.2010 21:34
Delphi 7.0 Записи. lovelypiece Помощь студентам 1 22.02.2010 18:10
Delphi записи tanek Помощь студентам 2 14.10.2009 18:16