Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.05.2010, 22:26
Merhpy Merhpy вне форума
Прохожий
 
Регистрация: 06.05.2010
Сообщения: 3
Репутация: 10
По умолчанию Помогите составить прогу, или хотя бы подскажите способ созадния!

Задача такова:
Составить программу обработки итоговой таблицы чемпионата по футболу. Игры проходят в один круг, каждая команда встречается с другой один раз ( по олимпийской системе). В программе предусмотреть ввод исходных данных. Обработка должна включать в себя:
- построение итоговой таблицы чемпионата с распределением команд, согласно занятым местам с подсчетом очков, набранных каждой командой ( победа -2, ничья -1, поражение -0),
- определение и вывод названия команды, одержавший наибольшее количество побед, забившей наибольшее количество мячей, имеющий лучшую разность забитых и пропущенных мячей.
Ответить с цитированием
  #2  
Старый 07.05.2010, 10:06
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Тут надо целое приложение писать! Если хочешь сам писать то бери любой учабник по делфи для начинающих и учи. Если тебе надо чтоб ктото написал то я могу это сделать. Пишы в аську 379088938
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #3  
Старый 07.05.2010, 11:50
Аватар для Anchorte
Anchorte Anchorte вне форума
Прохожий
 
Регистрация: 18.09.2009
Адрес: Курск
Сообщения: 49
Репутация: 10
Радость

Цитата:
Сообщение от Merhpy
- построение итоговой таблицы чемпионата с распределением команд, согласно занятым местам с подсчетом очков, набранных каждой командой ( победа -2, ничья -1, поражение -0),
по моему здесь как ни крути без БД не обойтись, т.к. через базу данных проще всего реализовать изменение позиции, а также начисление набранных очков и забитых пропущенных голов
Цитата:
Сообщение от Merhpy
- определение и вывод названия команды, одержавший наибольшее количество побед, забившей наибольшее количество мячей, имеющий лучшую разность забитых и пропущенных мячей.
в принципе если за основу будет взята БД то можно сделать с помощью разного рода фильтров и сортировки.

P.S. Какого уровня нужна программа?
Ответить с цитированием
  #4  
Старый 07.05.2010, 17:43
Merhpy Merhpy вне форума
Прохожий
 
Регистрация: 06.05.2010
Сообщения: 3
Репутация: 10
По умолчанию

как какого уровня? наверное элементарного ))) если честно я в этом не очень сильно рублю.
Ответить с цитированием
  #5  
Старый 07.05.2010, 18:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,111
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, можно через БД, можно не через БД. Собственно, списка записей здесь достаочно. Хотя через БД действительно будет удобно.
Ответить с цитированием
  #6  
Старый 08.05.2010, 13:11
Аватар для Anchorte
Anchorte Anchorte вне форума
Прохожий
 
Регистрация: 18.09.2009
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, можно через БД, можно не через БД. Собственно, списка записей здесь достаочно. Хотя через БД действительно будет удобно.
На мой взгляд с тем же "парадоксом" будет проще и быстрее разобраться чем мудрить со списком.
Ответить с цитированием
  #7  
Старый 08.05.2010, 22:36
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Я намудрил со списком. 10 мин дела. А для парадокса на другом пк надо ище дрова ставить, а это лишний геморой.
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #8  
Старый 11.05.2010, 22:17
Merhpy Merhpy вне форума
Прохожий
 
Регистрация: 06.05.2010
Сообщения: 3
Репутация: 10
По умолчанию

спасибо всем кто принемал участие в решение проблемы, но я уже ее решил вот так она выглядит

Код:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Buttons, ComCtrls;
 
type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    StringGrid1: TStringGrid;
    GroupBox2: TGroupBox;
    StringGrid2: TStringGrid;
    Button1: TSpeedButton;
    GroupBox3: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    UpDown1: TUpDown;
    UpDown2: TUpDown;
    GroupBox4: TGroupBox;
    Label1: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label11: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1Change(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  col,row: integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
 StringGrid1.Cells[0,0]:= 'Команда';
 StringGrid1.Cells[0,1]:= 'Ливерпуль';
 StringGrid1.Cells[1,0]:= 'Ливерпуль';
 StringGrid1.Cells[0,2]:= 'Челси';
 StringGrid1.Cells[2,0]:= 'Челси';
 StringGrid1.Cells[0,3]:= 'Интер';
 StringGrid1.Cells[3,0]:= 'Интер';
 StringGrid1.Cells[0,4]:= 'Ювентус';
 StringGrid1.Cells[4,0]:= 'Ювентус';
 StringGrid1.Cells[0,5]:= 'Севилья';
 StringGrid1.Cells[5,0]:= 'Севилья';
 StringGrid1.Cells[0,6]:= 'Барселона';
 StringGrid1.Cells[6,0]:= 'Барселона';
 StringGrid1.Cells[0,7]:= 'Мд.Реал';
 StringGrid1.Cells[7,0]:= 'Мд.Реал';
 StringGrid1.Cells[0,8]:= 'Манчестер';
 StringGrid1.Cells[8,0]:= 'Манчестер';
 StringGrid1.Cells[0,9]:= 'Бавария';
 StringGrid1.Cells[9,0]:= 'Бавария';
 StringGrid1.Cells[0,10]:= 'Рекинг';
 StringGrid1.Cells[10,0]:= 'Рекинг';
 for i:=1 to 10 do
  for j:=1 to 10 do
   if i <> j then
    StringGrid1.Cells[i,j]:= '0 : 0'
   else
    StringGrid1.Cells[i,j]:= 'XXX';
 StringGrid2.Cells[0,0]:= 'Команда';
 StringGrid2.Cells[1,0]:= 'Очки';
 StringGrid2.Cells[2,0]:= 'Голы';
 StringGrid2.Cells[3,0]:= 'Пропущенные мячи';
 StringGrid2.ColWidths[0]:= 150;
 StringGrid1.ColWidths[0]:= 68;
 StringGrid1.Cells[0,0]:= 'Команда';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j,a,b,o,gl,pm,gl1,rz,n,m:integer;
    s:string;
begin
 StringGrid2.RowCount:= StringGrid1.RowCount;
 n:=1;  m:=1;  gl1:= 0;  rz:= 0;
 for i:=1 to 10 do
  begin
   StringGrid2.Cells[0,i]:= StringGrid1.Cells[0,i];
   o:= 0;
   gl:= 0;
   pm:= 0;
   for j:=1 to 10 do
    begin
     if i <> j then
      begin
       s:= StringGrid1.Cells[j,i];
       a:= StrToInt(copy(s,0,pos(':',s) - 2));
       b:= StrToInt(copy(s,pos(':',s) + 2,length(s) - pos(':',s)));
       gl:= gl + a;
       pm:= pm + b;
       if a > b then
        o:= o + 2
       else if a = b then
        o:= o + 1;
      end;
    end;
   StringGrid2.Cells[1,i]:= IntToStr(o);
   StringGrid2.Cells[2,i]:= IntToStr(gl);
   StringGrid2.Cells[3,i]:= IntToStr(pm);
   if gl1 < gl then  begin  gl1:= gl;  n:= i; end;
   if rz < gl - pm then  begin  rz:= gl - pm;  m:= i; end;
  end;
  Label7.Caption:= StringGrid2.Cells[0,n];
  Label8.Caption:= StringGrid2.Cells[0,m];
  for i:=1 to 10 do
   begin
    j:= i;
    a:=StrToInt(StringGrid2.Cells[1,i]);
    b:= i;
    while j <= 10 do
     begin
      if a < StrToInt(StringGrid2.Cells[1,j]) then
       begin
        a:= StrToInt(StringGrid2.Cells[1,j]);
        b:= j;
       end;
      j:= j + 1;
     end;
    if b <> i then
     begin
      s:= StringGrid2.Cells[0,i];
      StringGrid2.Cells[0,i]:= StringGrid2.Cells[0,b];
      StringGrid2.Cells[0,b]:= s;
      s:= StringGrid2.Cells[1,i];
      StringGrid2.Cells[1,i]:= StringGrid2.Cells[1,b];
      StringGrid2.Cells[1,b]:= s;
      s:= StringGrid2.Cells[2,i];
      StringGrid2.Cells[2,i]:= StringGrid2.Cells[2,b];
      StringGrid2.Cells[2,b]:= s;
      s:= StringGrid2.Cells[3,i];
      StringGrid2.Cells[3,i]:= StringGrid2.Cells[3,b];
      StringGrid2.Cells[3,b]:= s;
     end;
   end;
  Label5.Caption:= StringGrid2.Cells[0,1];
  GroupBox4.Visible:= True;
end;
 
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var s:string;
begin
 row:= ARow; col:= ACol;
 s:= StringGrid1.Cells[col,row];
 Label2.Caption:= StringGrid1.Cells[0,ARow];
 Label3.Caption:= StringGrid1.Cells[ACol,0];
 Edit1.Text:= copy(s,1,length(s) - pos(':',s) - 1);
 Edit2.Text:= copy(s,pos(':',s)+2,length(s) - pos(':',s));
 if ARow = ACol then
  begin
   Edit1.Enabled:= False;
   Edit2.Enabled:= False;
  end
 else
  begin
   Edit1.Enabled:= True;
   Edit2.Enabled:= True;
  end;
end;
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if ((key<#48)or(key>#57))and(key<>#8)then
    key:=#0;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
 if (Edit1.Text <> '') and (Edit1.Text <> '')and(col<>row) then
  begin
   StringGrid1.Cells[col,row]:= Edit1.Text + ' : ' + Edit2.Text;
   StringGrid1.Cells[row,col]:= Edit2.Text + ' : ' + Edit1.Text;
  end;
end;
 
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if StringGrid1.Cells[Acol,Arow] = 'XXX' then
   begin
    StringGrid1.canvas.Font.Color:= clRed;
    StringGrid1.canvas.Font.Color:= clRed;
    StringGrid1.Canvas.TextOut(rect.Left+3,Rect.Top+3,StringGrid1.Cells[ACol,ARow]);
   end;
end;
 
end.
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025