Задача для самостоятельного выполнения
Автор: Основной язык сайта | В категории: Изучаем информатику
Предусмотреть возможность прибавлять к таблице строки. Подсказка. Разместить на форме еще две кнопки 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.
Сочинение! Обязательно сохрани - » Задача для самостоятельного выполнения . Потом не будешь искать!