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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2015, 12:20   #1
Владимир Викторови
 
Регистрация: 27.05.2015
Сообщений: 7
По умолчанию работа со stringGrid и массивом

У меня есть StringGrid на форме, в который я вывожу данные из access. Вот код, с помощью которого я нахожу интегральную оценку:
Код:
procedure TForm3.Button2Click(Sender: TObject);
var
sr:real;
i, j, sum, c, cc : integer;
begin
for i := 1 to StringGrid1.RowCount-1 do //цикл по строкам
  begin
    c:=0;  //обнуляем количество не нулевых ячеек в строке
    sum:=0; //Обнуляем сумму в строке
 
    for j := 2 to StringGrid1.ColCount-2 do
     begin
      //Подсчет суммы и количества
      if StringGrid1.Cells[j,i] <> '' then
       begin
        c:=c+1;
        sum:=sum+StrToint(StringGrid1.Cells[j,i])
      end;
    //Выводим среднее в последний столбец
    cc:=stringgrid1.colcount-1 ; //находим последний столбец
    sr:=sum/c;
    StringGrid1.Cells[cc, i]:=floattostrF(sr,ffFixed,10,0)  //вбиваем данные
       end;
 
 
 
end;
end;
Помогите пожалуйста сделать так, чтобы если я оставил все поля пустые(кроме ФИО(это может случиться, если человек не пришел на экзамен )) то цикл пропускает эту строку(не высчитывает среднее значение) а ФИО заносится в массив. Данные я сам вбиваю. в общем, у меня в access'е хранятся только ФИО а поля оценок я сам создаю и заполняю их. Массив я не создал, это не так сложно сделать. Если не понятно объяснил - переспросите.
Владимир Викторови вне форума Ответить с цитированием
Старый 27.05.2015, 12:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты после отработки for j := 2 проверяй на ноль переменку "с".
Или нулевые значения допустимы?
И замени StrToint на StrTointDef, чтоб в случае невозможности преобразования в число подставляло что-то другое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2015, 12:53   #3
Владимир Викторови
 
Регистрация: 27.05.2015
Сообщений: 7
По умолчанию

вы хотите сказать, после проходения всего цикла for j:=2? То есть в итоге получается так: (первый цикл, (второй), далее в первом же условие если с = 0 то заносим в массив и потом далее оканчиваем цикл)? надо попробывать
Владимир Викторови вне форума Ответить с цитированием
Старый 27.05.2015, 13:08   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну да. Именно так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивом nibufep Общие вопросы Delphi 4 16.02.2015 17:52
Работа c массивом в stringgrid Daishi Общие вопросы Delphi 2 04.07.2011 02:43
Работа с массивом MikeL 124 rus Помощь студентам 14 09.05.2011 19:05
Работа с массивом ZOHAN Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 16.04.2010 01:20
работа с массивом novi4ok_Delphi Помощь студентам 4 24.03.2010 20:28