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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.05.2008, 21:40
Димка Сидоров Димка Сидоров вне форума
Прохожий
 
Регистрация: 02.05.2008
Сообщения: 4
Репутация: 10
По умолчанию Таблица чемпионата по футболу. Помогите!!!

Помогите пожалуйста!!!!Решил, изучая Delphi, написать программу для подсчёта очков в чемпионате по футболу. Немогу сделать так, чтобы очки суммировались в соответствующей ячейке, после ввода результатов сыгранных матчей. В качестве таблиц используется StringGrid. Размещены на двух формах. После ввода результата в первой таблице выводится таблица с количеством очков. Но баллы не суммируются, после ввода следующих результатов. Думаю у знающих людей не займёт много времени, объясните в двух словах, как можно решить мою проблему. Пожалуйста помогите чайнику если надо могу выложить то, что удалось создать.
Ответить с цитированием
  #2  
Старый 04.05.2008, 19:12
Аватар для Professor Farnsworth
Professor Farnsworth Professor Farnsworth вне форума
Прохожий
 
Регистрация: 19.04.2008
Сообщения: 42
Репутация: 10
По умолчанию

Я бы такое реализовывал в виде базы данных.
Выложите код глянем.
Ответить с цитированием
  #3  
Старый 04.05.2008, 19:48
Димка Сидоров Димка Сидоров вне форума
Прохожий
 
Регистрация: 02.05.2008
Сообщения: 4
Репутация: 10
По умолчанию

А код в общем-то простой. Пока всё на что меня хватило. Здесь пока взял 4 команды добавить больше проблем нет. Как и осуществить подсчёт забитых и пропущенных мячей. Главное не придумаю как осуществить суммирование очков после каждого ввода результатов. Ничего не выходит.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    tabl: TStringGrid;
    Button1: TButton;
    procedure FormActive(Sender:TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
        {$R *.dfm}
uses Unit2;
        
       procedure TForm1.FormActive(Sender:TObject);
   begin
   tabl.Cells[0,3]:='Спартак';
   tabl.Cells[0,2]:='Рубин';
   tabl.Cells[0,1]:='Зенит;
   tabl.Cells[0,4]:='Динамо';
   tabl.Cells[1,0]:='Очки';
   tabl.Cells[2,0]:='Игры';
   tabl.Cells[3,0]:='Победы';
   tabl.Cells[4,0]:='Ничьи';
   tabl.Cells[5,0]:='Поражения';
   end;
procedure TForm1.Button1Click(Sender: TObject);
      begin
              Form2.Show;
         end;
         end.
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm2 = class(TForm)
    StringGrid1: TStringGrid;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}
   uses unit1;
procedure TForm2.Button2Click(Sender: TObject);
  var
 s,i,l,j: integer;
begin
         for j:=1 to 2 do
         begin
              s:=0;
              l:=0;
    if StrToInt(StringGrid1.Cells[1,j])>StrToInt(StringGrid1.Cells[2,j])
     then s:=s+3
     else if StrToInt(StringGrid1.Cells[1,j])<StrToInt(StringGrid1.Cells[2,j])
        then l:=l+3
                         else begin s:=s+1;
                                     l:=l+1;
                                   end;
       for i:=1 to 4 do
             begin
             if Form1.tabl.Cells[0,i]=StringGrid1.Cells[0,j]
                   then Form1.tabl.Cells[1,i]:=IntToStr(s);
                       end;
                  for i:=1 to 4 do
         begin
                  if Form1.tabl.Cells[0,i]=StringGrid1.Cells[3,j]
         then Form1.tabl.Cells[1,i]:=IntToStr(l);
           end;
            end;
             Form1.Show;
            end;
 end.

Admin: Пользуемся тегами для оформления кода, иначе последуют санкции!

Посоветуйте хоть что-нибудь. Если посредством базы данных, то был бы много благодарен, если бы обрисовали это в двух словах. Заранее спасибо.

Последний раз редактировалось Admin, 04.05.2008 в 20:35.
Ответить с цитированием
  #4  
Старый 04.05.2008, 21:24
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Интересная задумка, брат Димка. Рад бы помочь, а вот в таблицах чемпионата не разбираюсь.
Ты бы дал вид таких таблиц. Или ссылку на то как они должны выглядеть (ну не дал мне бог интереса футбольного).
А вообще то работа с таблицами не самое простое дело в программировании. Но если будет пример вида чемпионатских таблиц, то мы с тобой смастерим такое, что все рядом стоящие будут лежать (не от смеха - от восхищения ).
Ответить с цитированием
  #5  
Старый 04.05.2008, 21:50
Аватар для Professor Farnsworth
Professor Farnsworth Professor Farnsworth вне форума
Прохожий
 
Регистрация: 19.04.2008
Сообщения: 42
Репутация: 10
По умолчанию

Цитата:
Сообщение от san-46
Интересная задумка, брат Димка. Рад бы помочь, а вот в таблицах чемпионата не разбираюсь.
Ты бы дал вид таких таблиц. Или ссылку на то как они должны выглядеть (ну не дал мне бог интереса футбольного).
А вообще то работа с таблицами не самое простое дело в программировании. Но если будет пример вида чемпионатских таблиц, то мы с тобой смастерим такое, что все рядом стоящие будут лежать (не от смеха - от восхищения ).
Ага. Я тож не футболист...
С первой таблицей все понятно, а куда и что во вторую вводить не очевидно. И что в итоге должно получаться.

Цитата:
Сообщение от Димка Сидоров
Главное не придумаю как осуществить суммирование очков после каждого ввода результатов
Результат суммирования нужно сохранять в какой нибудь переменной, а уж потом в соответствующие ячейки StringGrid записывать результат.

А если делать базу данных то для этой задачи проще всего ИМХО использовать Access и соответственно ADO компоненты. Описать что и как делать не смогу пока не пойму всю суть задачи.
Ответить с цитированием
  #6  
Старый 05.05.2008, 21:27
Димка Сидоров Димка Сидоров вне форума
Прохожий
 
Регистрация: 02.05.2008
Сообщения: 4
Репутация: 10
По умолчанию

Суть задачи состоит в следующем: имеется таблица с перечнем команд и количеством набранных ими очков, сыгранных ими игр, поражений, побед, ничьих, забитых и пропущенных мячей. Имеется другая таблица, куда вводятся результаты сыгранных матчей. В зависимости от результатов игр команде начисляются очки: победа-3, ничья -1, поражение -0. Всё это заносится в первую таблицу и сортируется в зависимости от количества очков. Вот, в общем – то и всё. С переменной у меня что-то не выходит, так как она обнуляется в самом начале процедуры каждый раз.
Ответить с цитированием
  #7  
Старый 05.05.2008, 21:44
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Сделай эту переменную не локальной (внутри функции), а глобльной по отношению к модулю, обнуляться не будет.
Ответить с цитированием
  #8  
Старый 06.05.2008, 09:31
k@Z@k k@Z@k вне форума
Новичок
 
Регистрация: 31.07.2007
Сообщения: 55
Репутация: 12
По умолчанию

Для себя такую фигню я реализовал, всю информацию храню в базе (Firebird), в проге используюся компоненты FIBPlus и Ehlib.
если нужно оставь координаты, все вышлю, объясню.
Ответить с цитированием
  #9  
Старый 06.05.2008, 09:54
Димка Сидоров Димка Сидоров вне форума
Прохожий
 
Регистрация: 02.05.2008
Сообщения: 4
Репутация: 10
По умолчанию

Буду благодарен если всё вышлите на damiller@pochta.ru. Но свою версию обязательно доведу до конца. Что получится обязательно поделюсь кому инетересно. Спасибо!!!
Ответить с цитированием
  #10  
Старый 06.05.2008, 20:48
Чипырик Чипырик вне форума
Прохожий
 
Регистрация: 14.04.2008
Сообщения: 22
Репутация: 10
По умолчанию

Не пойму, в чем загвоздка...
Можно вобще без переменных обойтись, работать напрямую со значеничями первой таблицы. и по свойству OnChange просчитывать вторую...
Главное знать формулы подсчетов, которые весьма простые
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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