Форум по 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,087
Версия 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
По умолчанию

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

Код:
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.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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