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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2010, 15:02   #1
vitaly38
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 37
Восклицание Файлы. Вывести информацию о самой молодой команде

Добрый день, уважаемые форумчане.
Прошу помощи в решении следующей задачи.


Информация об участниках спортивных соревнований содержит:
название команды, фамилию игрока и возраст. Вывести информацию о самой молодой команде.


Вот мой код
Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls;
 
type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    BitBtn1: TBitBtn;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
 
  type com=record
  naz,fam:string[30];
  vozr:integer;
    end;
 
var
  Form1: TForm1;
   f:file of com;
    w:com;
    zak:boolean;
    ft:textfile;
    fname, fnamet:string;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
  begin
    w.naz:=edit1.Text;
    w.fam:=edit2.text;
    w.vozr:=StrToint(edit3.text);
    write(f,w);
      memo1.lines.add(w.naz);
      memo2.lines.add(w.fam);
      memo3.lines.add(Inttostr(w.vozr));
      edit1.Clear;
      edit2.Clear;
      edit3.Clear;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
        begin
   SaveDialog1.Title:='Создать файл';
   SaveDialog1.DefaultExt:='.dat';
   if SaveDialog1.Execute  then
   begin
   fname:=SaveDialog1.FileName;
   AssignFile(f,fname);
   Rewrite(f);
 
end;
 button1.Enabled:=true;
 zak:=true;
 end;
procedure TForm1.FormCreate(Sender: TObject);
   begin
     zak:=false;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
OpenDialog1.Title:='открыть файл';
if OpenDialog1.Execute then
begin
fname:=OpenDialog1.FileName;
AssignFile(f,fname);
reset(f);
end;
while not eof(f) do
begin
 
read(f,w);
memo1.Lines.add (w.naz);
memo2.Lines.add (w.fam);
memo3.Lines.add (IntToStr(w.vozr));
end;
closefile(f)
 
 
 
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
SaveDialog1.Title:='Сохранить в текстовом файле';
SaveDialog1.DefaultExt:='.txt';
if SaveDialog1.Execute then
begin
fnamet:=SaveDialog1.FileName;
AssignFile(ft,fnamet);
Rewrite(ft);
end;
writeln(ft,'Список команд');
writeln(ft,'Фамилия, возраст');
reset(f);
while not eof(f) do
begin
read(f,w);
with w do
writeln(ft,fam:10,naz:6,vozr:10);
end;
closeFile(f);
closeFile(ft);
end;
 
end.
процедура вывода инфы о самой иолодой команде
Код:
procedure TForm1.Button5Click(Sender: TObject);
 
  var i,min:integer;
  begin
memo4.Clear;
memo5.Clear;
memo6.Clear;
 min:=strtoint(memo3.Lines.Strings[0]);
 for i:=0 to memo3.Lines.Count-1 do
 if min>strtoint(memo3.Lines.Strings[i]) then min:=strtoint(memo3.Lines.Strings[i]);
 
 for i:=0 to memo3.Lines.Count-1 do
 if strtoint(memo3.Lines.Strings[i])=min then
 begin
  memo4.Lines.Append(memo1.Lines.Strings[i]);
  memo5.Lines.Append(memo2.Lines.Strings[i]);
  memo6.Lines.Append(memo3.Lines.Strings[i]);
 end;
end;
однако программа работает только с командами с одной фамилией.
тоесть например
Спартак Иванов 20лет
Юпитер сидоров 24
Уран петров 23

Программа выводит
Спартак Иванов 20лет

Как сделать чтобы программа работала с командами с несколькими игроками? тоесть считала среднее арифметическое и выводила название, список игроков в этой команде и средний возраст?

подскажите.
vitaly38 вне форума Ответить с цитированием
Старый 22.02.2010, 11:05   #2
vitaly38
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 37
По умолчанию

народ, прошу вас не молчите... подскажите пожалуйста..
как вообще привязать массив к какой нибудь команде и туда возраст закинуть?
а лучше напишите код.
vitaly38 вне форума Ответить с цитированием
Старый 22.02.2010, 11:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А прикрепить архив с проектом не судьба?
Ты думаешь охота все твои компоненты заново по коду переизбирать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2010, 13:41   #4
vitaly38
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 37
Восклицание

извините, не подумал. Вот проект.
Вложения
Тип файла: zip команды.zip (218.5 Кб, 44 просмотров)
vitaly38 вне форума Ответить с цитированием
Старый 22.02.2010, 14:02   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот смотри:
Перекраивая твое
Код:
procedure TForm1.Button5Click(Sender: TObject);

  var i,min:integer; cmd:string;
  begin
memo4.Clear;
memo5.Clear;
memo6.Clear;
 min:=MaxInt;
 for i:=0 to memo3.Lines.Count-1 do
 if min>strtoint(memo3.Lines.Strings[i]) then begin
  min:=strtoint(memo3.Lines.Strings[i]);
  cmd:=Memo1.Lines[i];
 end;

 for i:=0 to memo1.Lines.Count-1 do
 if Memo1.Lines[i]=cmd then
 begin
  memo4.Lines.Append(memo1.Lines.Strings[i]);
  memo5.Lines.Append(memo2.Lines.Strings[i]);
  memo6.Lines.Append(memo3.Lines.Strings[i]);
 end;
end;
Увидел предложения?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2010, 14:54   #6
vitaly38
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 37
По умолчанию

программа работает также как и с моим кодом...

мне надо чтобы она работала следующим образом..

спартак иванов 23
юпитер сидоров 19
юпитер ковалев 17
спартак петров 22

программа должна вывести


юпитер сидоров 18(средний возраст)
ковалев
vitaly38 вне форума Ответить с цитированием
Старый 23.02.2010, 17:03   #7
vitaly38
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 37
По умолчанию

неужели никто не может помочь?
vitaly38 вне форума Ответить с цитированием
Старый 23.02.2010, 17:38   #8
zmey31313
Форумчанин
 
Регистрация: 19.11.2009
Сообщений: 155
Сообщение Могу

ICQ: 474166465 или dmi83206389@mail.ru договоримся
По всем вопросам связанным с Делфи или Паскаль обращайтесь, чем смогу тем и помогу.
Помог жми на весы!!!
dmi83206389@mail.ru
zmey31313 вне форума Ответить с цитированием
Старый 24.02.2010, 13:32   #9
vitaly38
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 37
По умолчанию

помогите кто нибудь.
vitaly38 вне форума Ответить с цитированием
Старый 24.02.2010, 13:46   #10
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Я так понимаю вам нужно найти среднее арифметическое в каждой присутствующей в списке команд и по нему определить, какой команде принадлежит наименьшее???
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать файл записей (таблицу) и вывести на экран информацию о людях (имя, год рожденя, день рождения) пепелаЦО Паскаль, Turbo Pascal, PascalABC.NET 3 24.05.2009 12:15
как вывести все имеющиеся файлы в каталоге на экран? Almost456 Паскаль, Turbo Pascal, PascalABC.NET 2 24.12.2008 20:44
как определить какие файлы есть в папке и вывести их имена в текстовый файл Tdoctor Паскаль, Turbo Pascal, PascalABC.NET 3 04.11.2008 05:18
Вывести информацию из типизированного файла в combobox... tacer Помощь студентам 1 04.12.2007 11:46
Как в С++ вывести(записать ) информацию в файл, когда инфа находится в методе класса? Artur_cod Общие вопросы C/C++ 1 06.05.2007 00:34