Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29

Расчет среднего балла по данным, находящимся в StringGrid

19.06.2014, 10:31. Показов 4699. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста) мне нужно сложить содержимое строчки StringGrida была идея присваивать переменную каждой ячейки и просто сложить между собой, но это будет слишком большой код. Я расчитываю средний бал по оценкам в группах их 13, в каждой группе по 25 человек, если я буду складывать в строчках моим методам, то это будет просто ГИГАНСКИЙ код, может есть способ проще? Сложить содержимое строчки StringGrida?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2014, 10:31
Ответы с готовыми решениями:

Опредение среднего балла по данным из файла
Дан текстовый файл (in.txt) содержащий список учащихся и их оценки по трем предметам: математике, физике, информатике. Формат файла:...

Расчет среднего балла студентов
Безумно нужна помощь в написании программы. Тема интересная, про студентов =) Есть поля базы данных: ФИО студентов Пол Оценки з...

StringGrid подсчет среднего балла
имеется 2 stringgrid'a - Ozenki и SredBall не получается вывести средний бал с первого стингрида в второй (столбик) всегда путался в...

57
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
19.06.2014, 10:42
Можно поконкретнее, желательно со скриншотом того самого StringGrid-а, что с чем сложить нужно?
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
19.06.2014, 10:51  [ТС]
Просто таблица с фамилией студента и его оценками в строчку, ну например выглядит это так:
Фамилия | Ин.яз |Сис програм|Теория вероятности
Абрамова | 5 | 5 | 5
и вот оценки нужно сложить между собой, и в таблиц не три предмета, а около 11 и не одна фамилия, а 25
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
19.06.2014, 11:22
Что мешает написать цикл:
C++
1
2
3
4
5
6
7
8
for(int i = StringGrid1->FixedRows; i < StringGrid1->RowCount; ++i)
{
    int sum = 0;
    for(int j = StringGrid1->FixedCols; j < StringGrid1->ColCount; ++j)
        sum += StrToIntDef(StringGrid1->Cells[j][i], 0);
 
    // Здесь в sum будет сумма оценок для i-ой строки грида, делай с ней что нужно...
}
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 09:58  [ТС]
Спасибо большое, а что нужно изменить, чтобы посчитать к примеру вторую строчку?

Добавлено через 59 секунд
а все, увидела)) ее раз большое спасибо) я пока еще многово не знаю и это мне порядком на ОЧЕНЬ много уменьшило мне работу пока с моим небольшим багажом знаний))))

Добавлено через 13 часов 33 минуты
Можно еще вопрос? А зачем 0 в этой строчке в конце? sum += StrToIntDef(StringGrid1->Cells[j][i], 0);

Добавлено через 11 минут
Есть вот этот код(( и он не работает( условие выполняется у меня не правильно, он всегда выводит "дура", это я для самомотивации вместо 0 написала, помогите, может я чего-то не понимаю( считаю пока только 1-ую строку, в StringGrid1 во всех столбцах цифра 5 для проверки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{ if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{for(int i = 1; i < StringGrid1->RowCount; ++i)
{
    int sum = 0;
    for(int j = 1; j < StringGrid1->ColCount; ++j)
        sum += StrToIntDef(StringGrid1->Cells[j][1], 0);
        float k=(sum/5);
        if (k>=5);
        {StringGrid1->Cells[4][i]="1200";}
        if ((k>=4)&&(k<5));
        {StringGrid1->Cells[4][i]="900";}
        if ((k>=3)&&(k<4));
        {StringGrid1->Cells[4][i]="äóðà";}
    // Çäåñü â sum áóäåò ñóììà îöåíîê äëÿ i-îé ñòðîêè ãðèäà, äåëàé ñ íåé ÷òî íóæíî...
}
}}
sum делю на 5 т.к. всего у меня пять столбиков, я как бы расчитываю средний бал оценок студента и отталкиваясь от него начисляю стипендию(( просите зарание за мои глупые ошибки наверняка тут именно такая(
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.06.2014, 11:59
- ошибка очевидная: после if(условие) Вы ставите точку с запятой, и, значит, следующая строка выполняется ВСЕГДА, независимо от условия. Компилятор такую ошибку не заметит или игнорирует, а программист должен следить...

Добавлено через 1 минуту
и потом (k >= 4 && k < 5) это ведь (k == 4) ??
0
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 257
20.06.2014, 12:03
Цитата Сообщение от nick42 Посмотреть сообщение
и потом (k >= 4 && k < 5) это ведь (k == 4) ??
может и 4,5 быть...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
20.06.2014, 12:06
Цитата Сообщение от Sinsingumi Посмотреть сообщение
А зачем 0 в этой строчке в конце? sum += StrToIntDef(StringGrid1->Cells[j][i], 0);
Если в ячейке записано не строковое представление числа, а, скажем, фамилия, или вообще ячейка окажется пустой, то StrToIntDef вернет в данном случае 0 (а вообще - любое значение, переданное вторым параметром), и не надо ставить доп. условий на проверку столбцов, в которых должны быть записаны оценки.

Добавлено через 40 секунд
Цитата Сообщение от samsebe Посмотреть сообщение
может и 4,5 быть...
Не может. Там целочисленное деление, k всегда будет только целым числом...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.06.2014, 12:06
Верно; не заметил, что float
Согласен и с UI; чтобы было правильнее, мне кажется, нужно изменить
float k=(sum/5); на float k=(sum/5.0);
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
20.06.2014, 12:08
Блин... Деление int на int float никогда не даст в результате, внимательнее будьте...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.06.2014, 12:21
если "блин" в мою сторону, то я не понял...
C++
1
2
3
    int sum = 3+2+4 ;
    float k = sum/5.0 ;
    Label1->Caption = FloatToStrF(k,ffFixed,7,1);  //  result  1,8
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 13:19  [ТС]
Хорошо, ошибку поправлю..мне обязательно нужен float, значит нужно его перевести..извините за глупости я только учусь, и не сплю уже несколько дней из-за объемной работы(насчет условие, если по человечески то больше или равно 4, но меньше 5, k я специально во флоат взяла мне нужно, что бы была учтена десятичная часть, без нее смысл всего этого теряется
0
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 257
20.06.2014, 13:19
int/int = int
int/float = float
так получается
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 14:39  [ТС]
Нет, не в вашу, ругаюсь просто за свою пустоголовость

Добавлено через 46 секунд
Все поняла, спасибо, буду дальше пробывать

Добавлено через 36 минут
FloatToStrF(k,ffFixed,7,1);, а что значит эта строчка?

Добавлено через 41 минуту
Ничего у меня не вышло( поправила все равно не получается(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{ if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{for(int i = 1; i < StringGrid1->RowCount; ++i)
{
    int sum = 0;
    for(int j = 1; j < StringGrid1->ColCount; ++j)
        sum += StrToIntDef(StringGrid1->Cells[j][1], 0);
        float k=(sum/5.0);
        if (k>=5)
        {StringGrid1->Cells[4][i]="1200";}
        if ((k>=4)&&(k<5))
        {StringGrid1->Cells[4][i]="900";}
        if ((k>=3)&&(k<4))
        {StringGrid1->Cells[4][i]="äóðà";}
    // Çäåñü â sum áóäåò ñóììà îöåíîê äëÿ i-îé ñòðîêè ãðèäà, äåëàé ñ íåé ÷òî íóæíî...
}
}}
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.06.2014, 15:03
а не могли бы Вы показать весь листинг
а то пугают некоторые записи, типа-
C++
1
2
3
{ if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{for(int i = 1; i < StringGrid1->RowCount; ++i)
{
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 15:19  [ТС]
Я попробывала так ради интереса просто вывести sum в Edit1 ничего и так не вышло, почему-то не считает, наверное опять накосячила
C++
1
2
3
4
5
6
7
8
9
if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{for(int i = 1; i <StringGrid1->RowCount; ++i)
{
    int sum = 0;
    for(int j = 1; j<StringGrid1->ColCount;j++)
        sum += StrToIntDef(StringGrid1->Cells[j][1], 0);
     Edit1->Text=IntToStr(sum);}
    // Çäåñü â sum áóäåò ñóììà îöåíîê äëÿ i-îé ñòðîêè ãðèäà, äåëàé ñ íåé ÷òî íóæíî...
}
Добавлено через 6 минут
Хорошо, но он очень большой..я тогда только с формы 3 курса выложу, теперь хочу попробывать посчитать и хотя бы там в Едит вывести..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
#include <vcl.h>
#pragma hdrstop
#include <memory>
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm4::Button4Click(TObject *Sender)
{
Form1->Show();
Form4->Close();
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm4::Button1Click(TObject *Sender)
{
{
{if ((ComboBox1->ItemIndex==0)&&(ComboBox2->ItemIndex==0))
 
{StringGrid1->Cells[0][0]= "ÔÈÎ";
StringGrid1->Cells[1][0]= "Èíîñòðàííûé ÿçûê";
StringGrid1->Cells[2][0]= "Ôèçè÷åñêàÿ êóëüòóðà";
StringGrid1->Cells[3][0]= "Àðõèòåêòóðà êîìïüþòåðíûõ ñèñòåì";
StringGrid1->Cells[4][0]= "Îñíîâû ïðîãðàììèðîâàíèÿ";
StringGrid1->Cells[5][0]= "Îñíîâû ýêîíîìèêè";
StringGrid1->Cells[6][0]= "Êîìïüþòåðíàÿ ãðàôèêà";
StringGrid1->Cells[7][0]= "Ñèñòåìíîå ïðîãðàììèðîâàíèå";
StringGrid1->Cells[8][0]= "Ïðèêëàäíîå ïðîãðàììèðîâàíèå";
StringGrid1->Cells[9][0]= "-";
StringGrid1->Cells[10][0]= "-";
StringGrid1->Cells[11][0]= "-";
 StringGrid1->Options << goEditing;
StringGrid1->Options << goTabs;
 
}}
{
{if ((ComboBox1->ItemIndex==0)&&(ComboBox2->ItemIndex==1))
 
{StringGrid1->Cells[0][0]= "ÔÈÎ";
StringGrid1->Cells[1][0]= "Èíîñòðàííûé ÿçûê";
StringGrid1->Cells[2][0]= "Ôèçè÷åñêàÿ êóëüòóðà";
StringGrid1->Cells[3][0]= "Ïðàâîâîå îáåñïå÷åíèå ïðîôåññèîíàëüíîé äåéòåëüíîñòè";
StringGrid1->Cells[4][0]= "Òåîðèÿ âåðîÿòíîñòè";
StringGrid1->Cells[5][0]= "Ìàòåìàòè÷åñêèå ìåòîäû";
StringGrid1->Cells[6][0]= "Ðàçðàáîòêà ïðîãðàììíûõ ìîäóëåé";
StringGrid1->Cells[7][0]= "Ñèñòåìíîå ïðîãðàììèðîâàíèå";
StringGrid1->Cells[8][0]= "Ïðèêëàäíîå ïðîãðàììèðîâàíèå";
StringGrid1->Cells[9][0]= "-";
StringGrid1->Cells[10][0]= "-";
StringGrid1->Cells[11][0]= "-";
 StringGrid1->Options << goEditing;
StringGrid1->Options << goTabs;
 
}}
 
{if (ComboBox1->ItemIndex==3)
 
 
 
{StringGrid1->Cells[0][0]= "ÔÈÎ";
StringGrid1->Cells[1][0]= "Èíôîðìàöèîííûå òåõíîëîãèè ðàçðàáîòêè ÈÒ";
StringGrid1->Cells[2][0]= "Ýêñïëóàòàöèÿ èíôîðì. ñèñòåì";
StringGrid1->Cells[3][0]= "Óñòðîéñòâî è ôóíêöèîíèðîâàíèå ÈÑ";
StringGrid1->Cells[4][0]= "Ïðîãðàììíîå îáåñïå÷åíèå àâòîìàòèçèðîâàííûõ ñèñòåì";
StringGrid1->Cells[5][0]= "Ìåòîäû è ñðåäñòâà ðàçðàáîòêè ÈÑ";
StringGrid1->Cells[6][0]= "Ôèçè÷åñêàÿ êóëüòóðà";
StringGrid1->Cells[7][0]= "Òåîðèÿ âåðîÿòíîñòè";
StringGrid1->Cells[8][0]= "Ìåòðîëîãèÿ, ñòàíäàðòèçàöèÿ è ñåðòèôèêàöèÿ";
StringGrid1->Cells[9][0]= "Èíîñòðàííûé ÿçûê";
StringGrid1->Cells[10][0]= "-";
StringGrid1->Cells[11][0]= "-";
 StringGrid1->Options << goEditing;
StringGrid1->Options << goTabs;
 
}
}
{if (ComboBox1->ItemIndex==1)
{StringGrid1->Cells[0][0]= "ÔÈÎ";
StringGrid1->Cells[1][0]= "ÈÒ â ïðîô. äåÿòåëüíîñòè";
StringGrid1->Cells[2][0]= "Àóäèò";
StringGrid1->Cells[3][0]= "Îñíîâû àíàëèçà áóõ. îò÷åñòíîñòè";
StringGrid1->Cells[4][0]= "Îðãàíèçàöèÿ ðàñ÷åòîâ ñ áþäæåòîì";
StringGrid1->Cells[5][0]= "Íàëîãè è íàëîãîîáëàæåíèå";
StringGrid1->Cells[6][0]= "Ôèçè÷åñêàÿ êóëüòóðà";
StringGrid1->Cells[7][0]= "Ôèíàíñíû, äåíåæíîå îáðàùåíèå è êðåäèò";
StringGrid1->Cells[8][0]= "ÎÁÆ";
StringGrid1->Cells[9][0]= "Èíîñòðàííûé ÿçûê";
StringGrid1->Cells[10][0]= "-";
StringGrid1->Cells[11][0]= "-";
 StringGrid1->Options << goEditing;
StringGrid1->Options << goTabs;
}
}
{if (ComboBox1->ItemIndex==2)
{ StringGrid1->Cells[0][0]= "ÔÈÎ";
StringGrid1->Cells[1][0]= "ÒÐ è çàùèòû ÁÄ";
StringGrid1->Cells[2][0]= "Ïðèêëàäíîå ïðîãðàììèðîâàíèå";
StringGrid1->Cells[3][0]= "Èíñòðóìåíòàëüíûå ñðåäñòâà ðàçðàáîòêè ÏÎ";
StringGrid1->Cells[4][0]= "Òåîðèÿ âåðîÿòíîñòè";
StringGrid1->Cells[5][0]= "Ñèñòåìíîå ïðîãðàììèðîâàíèå";
StringGrid1->Cells[6][0]= "Ôèçè÷åñêàÿ êóëüòóðà";
StringGrid1->Cells[7][0]= "ÒÐÏÏ";
StringGrid1->Cells[8][0]= "Ìàòåìàòè÷åñêèå ìåòîäû";
StringGrid1->Cells[9][0]= "Ïðàâîâîå îáåñïå÷åíèå ïðîô. äåéòåëüíîñòè";
StringGrid1->Cells[10][0]= "Èíîñòðàííûé ÿçûê";
StringGrid1->Cells[11][0]= "Ïðèêëàäíîå ïðîãðàììèðîâàíèå";
 StringGrid1->Options << goEditing;
StringGrid1->Options << goTabs;
}
}}
}}
//---------------------------------------------------------------------------
 
 
 
//---------------------------------------------------------------------------
 
 
void __fastcall TForm4::Button2Click(TObject *Sender)
{
{
std::auto_ptr<TStringList> SL(new TStringList);
{ if ((ComboBox1->ItemIndex==0)&&(ComboBox2->ItemIndex==0))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("1Semestr3KursProgramist.txt");
}
{ if ((ComboBox1->ItemIndex==0)&&(ComboBox2->ItemIndex==1))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("2Semestr3KursProgramist.txt");
}
{ if ((ComboBox1->ItemIndex==1)&&(ComboBox2->ItemIndex==0))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("1Semestr3KursTovar.txt");
}
{ if ((ComboBox1->ItemIndex==1)&&(ComboBox2->ItemIndex==1))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("2Semestr3KursTovar.txt");
}
{ if ((ComboBox1->ItemIndex==2)&&(ComboBox2->ItemIndex==0))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("1Semestr3KursBugalt.txt");
}
{ if ((ComboBox1->ItemIndex==2)&&(ComboBox2->ItemIndex==1))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("2Semestr3KursBagalt.txt");
}
{ if ((ComboBox1->ItemIndex==2)&&(ComboBox2->ItemIndex==0))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("1Semestr3KursSistem.txt");
}
{ if ((ComboBox1->ItemIndex==2)&&(ComboBox2->ItemIndex==1))
for(int i=0;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Delimiter=L';';
  SL->Add(StringGrid1->Rows[i]->DelimitedText);
 }
SL->SaveToFile("2Semestr3KursSistem.txt");
}} }
//---------------------------------------------------------------------------
 
 
void __fastcall TForm4::Button7Click(TObject *Sender)
{
Form4->StringGrid1->RowCount++;
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm4::Button5Click(TObject *Sender)
{
for(int i=1;i<StringGrid1->RowCount;i++)
 {
  StringGrid1->Rows[i]->Clear();
 }                
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm4::Button3Click(TObject *Sender)
{
 
if(OpenDialog1->Execute())
{
TStringList *pStrings = new TStringList;
pStrings->LoadFromFile(OpenDialog1->FileName);
StringGrid1->RowCount = pStrings->Count;
StringGrid1->ColCount=6;
for(int i=0; i < pStrings->Count; i++)
{
StringGrid1->Rows[i]->Delimiter = ';';
StringGrid1->Rows[i]->DelimitedText = pStrings->Strings[i];
int i1=i;
}
delete pStrings;
}
}
//---------------------------------------------------------------------------
 
void __fastcall TForm4::Button8Click(TObject *Sender)
{
 if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{for(int i = 1; i <StringGrid1->RowCount; ++i)
{
    int sum = 0;
    for(int j = 1; j<StringGrid1->ColCount;j++)
        sum += StrToIntDef(StringGrid1->Cells[j][1], 0);
     Edit1->Text=IntToStr(sum);}
    // Çäåñü â sum áóäåò ñóììà îöåíîê äëÿ i-îé ñòðîêè ãðèäà, äåëàé ñ íåé ÷òî íóæíî...
}
}
знаю, что ужас, но лучше ничего не придумала, как автоматизировать сохранение и загрузку разных структур
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.06.2014, 15:29
А покажите скриншот Вашего StringGrid1
Мне интересно что находится в нем когда Вы хотите сделать это
C++
1
2
3
4
5
6
7
8
9
if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{for(int i = 1; i <StringGrid1->RowCount; ++i)
{
    int sum = 0;
    for(int j = 1; j<StringGrid1->ColCount;j++)
        sum += StrToIntDef(StringGrid1->Cells[j][1], 0);
     Edit1->Text=IntToStr(sum);}
    // Здесь в sum будет сумма оценок для i-ой строки грида, делай с ней что нужно...
}
и да не забывайте про табуляцию
замените на это
C++
1
2
3
4
5
6
7
8
9
10
11
12
if ((ComboBox1->ItemIndex==9)||(ComboBox1->ItemIndex==10)||(ComboBox1->ItemIndex==11))
{
 for(int i = 1; i <StringGrid1->RowCount; ++i)
  {
    int sum = 0;
     for(int j = 1; j<StringGrid1->ColCount;j++)
       {
        sum += StrToIntDef(StringGrid1->Cells[j][1], 0);
        Edit1->Text=IntToStr(sum);
       }
   }
}
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 18:42  [ТС]
Я вставила код( без изменений(

скриншот вставить не могу(

через радикал не получается(
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 18:45  [ТС]
Вот скрин)
Миниатюры
Расчет среднего балла по данным, находящимся в StringGrid  
0
1 / 1 / 0
Регистрация: 18.06.2014
Сообщений: 29
20.06.2014, 18:46  [ТС]
Мне нужно подсчитать по строчкам средний бал, ну и теперь ххотя бы вывести его на форму в едит там расположенный, если получится это буду дальше работать, а так он мне нужен дня начисления стипендии
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2014, 18:46
Помогаю со студенческими работами здесь

Составить программу вычисления среднего балла каждого учащегося, среднего балла в классе в целом
в классе 8 учеников, известны результаты сдачи экзаменов по 3- м предметам. Составить программу вычисления среднего балла каждого...

Составить программу вычисления среднего балла каждого учащегося, среднего балла в группе в целом
В группе 5 учеников , известны результаты сдачи экзаменов по трем предметам.Составьте программу вычисления среднего балла каждого...

Программа для поиска среднего балла каждого учащегося и общего среднего балла
вот программа для поиска среднего балла каждого учащегося и общего среднего балла. при запуске программы выдает внутреннюю ошибку...

Считать данные из файла Список.txt, выполнить расчет среднего балла успеваемости, а затем вывести итоговую оценку
Считать данные из файла Список.txt, выполнить расчет среднего балла успеваемости, а затем вывести итоговую оценку. Округление итоговой...

Построить диаграмму по данным, находящимся на листе Старт


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru