9 Окт »

Задача для самостоятельного выполнения

Автор: Основной язык сайта | В категории: Изучаем информатику
1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

Предусмотреть возможность прибавлять к таблице строки. Подсказка. Разместить на форме еще две кнопки Button2 («Добавить»), Button3 («Изъять») и компонент Edit 1 для введения названия страны, которая будет прибавляться к таблице .Для компонентов Button создать процедуры обработки события OnClick (см. листинг программы).

Листинг программы:

unit olimp_;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, StdCtrls, ExtCtrls;

type

private

public

end; var

Forml: TForml; implementation {$R *.DFM}

 

procedure TForml.FormActivate(Sender: TObject);
begin

tabl.Cells[0,0]:

= ;

tabl.Cells[1,0] :

=1Золотых’;

tabl.Cells[2,0]:

=’Серебряных’;

tabl.Cells[3,0]:

= ЛБронзовых’;

tabl.Cells[4,0]:

= ‘Всего медалей’ ;

tabl.Cells[5,0]:

=’Баллов’;

tabl.Cells[0,1]:

= ‘Украина’ ;

tabl.Cells[0,2]:

=’Белоруссия’;

tabl.Cells[0,3] :

=’Англия’;

tabl.Cells[0,4] :

=’Германия’;

tabl.Cells[0,5]:

=’Италия’;

tabl.Cells[0,6] :

=’Китай’;

tabl.Cells[0,7]:

=’Корея’;

tabl.Cells[0,8]:

—  Куба’ ;

tabl.Cells[0,9]:

=’Нидерланды’ ;

tabl.Cells[0,10]

: = ‘Россія’;

tabl.Cells[0,11;

:=’США’ ;

tabl.Cells[0/12]

:=’Франция’;

tabl.Cells[0,13:

:=’Япония’;
  • end;
  • procedure TForml.ButtcnlClick(Sender: TObject);
  • // процедура для кнопки «Итог»
  • var
  • c,r:integer; {номер столбика и номер строки таблицы}
  • s:integer;// всего медалей у команды
  • р:integer;// баллов у команды
  • m:integer;// номер ряда с максимальным количеством баллов
  • buf :array[0. .5] of string; // буфер для обмена строк
  • и:integer;// номер строки — используется в упорядочении
  • begin
  • for r:=l to tabl.rowcount do // обработать все строки
  • begin s: =0;
  • //общее количество медалей
  • for с:=1  to 3 do
  • if tabl.cells[c,r] <> ЛЛ
  • then s:=s+StrToInt(tabl.cells[c,r])
  • else tabl.cells[c,r]: = v 0′;
  • // общее количество баллов
  • p:=7*StrToInt(tabl.cells[1,r])+
  • 6*StrToInt(tabl.cells[2,r])+
  • 5*StrToInt(tabl.cells[3,r]);
  • // вывод результатов
  • tabl.cells[4,r]:=IntToStr(s); // всего медалей
  • tabl.cells[5,r]:=IntToStr(p); // всего баллов end;
  • {упорядочение таблицы за спаданием — по 5-му столбику} // упорядочение методом выбора for r:=l to tabl.rowcount-1 do begin
  • m:=r; // наибольший элемент — в r-му строке for i:=r to tabl.rowcount-1 do
  • if StrToInt (tabl. cells [5, i])> StrToInt (tabl. cells [5,m]) then m:=i; if r <> m then begin
  • for c:=0 to 5 do
  • begin buf[c]:=tabl.Cells[c,r]; tabl.Cells[c,r]:=tabl.Cells[c,m]; tabl.Cells[c,ml:=buf[c];
  • end; end; end; end;
  • procedure TForml.Button2Click(Sender: TObject); / / процедура для кнопки «Добавить» begin
  • if Editl.Text=vv then begin
  • MessageDlg(‘Введите название страны!’, mtError, [mbOK] ,0) ;

 

 

 

 

 

 

exit; end;

  • (вставка нового пустого рядха в конец таблицы}
  • (если таблица на момент внесения новых данных порожняво новый рядох не прибавляется}
  • if (Tabl.RowCount<>2> or (Tabl .Cells (0 ,1]<>Л ‘} then Tabl.RowCount:=Tabl.RowCount+1;
  • // заполнение каморок последней строки таблицы
  • Tabl.Cells[0,Tabl.RowCount-1]:=Editl.text;
  • // добавленная строка становится текущим
  • Tabl.Row:=Tabl.RowCount-1;
  • Editl.Text: v;
  • end;
  • procedure TForml.Button3Click(Sender: TObject);
  • // процедура для кнопки «Изъять»
  • var и:integer;
  • begin
  • (если в таблице есть только два строки, то строка не изымается, а очищується}
  • if Tabl.RowCount=2 then begin Tabl.Rows[1].Clear; exit ;
  • end;

// сдвиг рядхів вверх,   начиная  с  текущего

for i:=tabl.Row to tabl.RowCount-1 do Tabl.Rowsfi]:=Tabl.Rows[i+l];

//изъятие последней строки

tabl.RowCount:=tabl.RowCount-1;

end;

end.

Сочинение! Обязательно сохрани - » Задача для самостоятельного выполнения . Потом не будешь искать!


Всезнайкин блог © 2009-2015