Wydział Transportu PW
Laboratorium informatyki sem. II / ćw. 9
1. Na początku części implementacyjnej modułu zadeklaruj tablicę o elementach typu całkowitego:
var W: array [1..7, 1..7] of Integer;
2. Zadeklaruj metodę formy, która w siatce tekstowej StringGridl wyświetla dane z liczbowej tablicy W:
procedurę TForml.WyswietIDane;
var i,j:Integer;
begin
for i:=1 to 7 do
for j:-l to 7 do StringGridl.Cells[j-1,i-1]:= IntToStr(W[i,j]) ;
end;
3. Utwórz i oprogramuj procedurę obsługi zdarzenia OnSetEditText dla siatki StringGridl i wpisz w jej treści instrukcję aktualizująca wartość zmienionego elementu tablicy i ukrywająca siatkę wyników:
W[ARow+1, ACol+1]:= StrToIntDef(Value, 0) ;
GroupBox2.Hide;
4. Utwórz procedurę obsługi zdarzenia OnCreate dla formy i wpisz jej treść:
Randomize;
StatusBarl.Panels fi].Text:=DateToStr(Datę) ;
5. Utwórz i oprogramuj procedurę obsługi kliknięcia przycisku Generuj, która wpisuje do tablicy W liczby losowe z przedziału o końcach określonych przez komponenty SpinEdit i aktualizuje siatkę danych, o następującej treści:
for i:=1 to 7 do
for j:=1 to 7 do W[i,j ] : = RandomRange{SpinEdit1.Valuef SpinEdit2.Value); WyswietIDane;
GroupBox2.Hide;
6. Umieść nazwę modułu Math w klauzuli uses. Zapisz zmiany, uruchom aplikację i sprawdź działanie przycisku Generuj dla różnych przedziałów losowania.
1. W części implementacyjnej zadeklaruj pomocniczą funkcję Maksimum, znajdującą największy element w i-tym wierszu tablicy W:
function Maksimum(i: Integer) : Integer;
var j : Integer;
begin
Result:= W[i, 1];
for j:= 2 to 7 do Result:=Max{Result, W[i,j]); end;
2. Dla polecenia menu o tytule Maksymalne elementy wierszy utwórz procedurę obsługi zdarzenia kliknięcia o treści:
WyswietlDane;
GroupBox2.Caption:= 'Maksymalne elementy w wierszach
StringGrid2.Width:= StringGrid2.DefaultColWidth+4;
for i:=1 to 7 do StringGrid2.Cells[0,i-1]:=IntToStr(Maksimum(i));
GroupBox2.Show;
3. Uruchom aplikację, sprawdź działanie przycisku narzędziowego i menu podręcznego siatki.
4. Analogicznie zadeklaruj funkcję Suma, obliczającą sumę elementów i-tego wiersza tablicy i oprogramuj zdarzenie OnClick drugiego polecenia menu.
5. Dla polecenia menu o tytule Transpozycja utwórz procedurę obsługi zdarzenia kliknięcia o treści:
WyswietlDane;
GroupBox2.Caption:= 'Transpozycja 1;
StringGrid2.Width:= StringGridl.Width;
for i:=l to 7 do for j:=l to 7 do StringGrid2.Cells[i-1,j-1]:=IntToStr(W[i,j]); GroupBox2.Show;
6. Uruchom aplikację, sprawdź działanie przycisku narzędziowego i menu podręcznego siatki.
7. Analogicznie oprogramuj czwarte polecenie menu i sprawdź działanie aplikacji.
Rozwinięcie aplikacji
1. Dodaj do menu polecenia, któiych kliknięcie spowoduje:
• obliczenie i wyświetlenie liczby ujemnych elementów w kolejnych wierszach tablicy
• wyzerowanie elementów głównej przekątnej tablicy i wyświetlenie wyniku w siatce StringGrid2.
2. Dodaj do paska narzędziowego nowy przycisk, którego kliknięcie spowoduje wypełnienie tablicy kolejnymi liczbami naturalnymi i wyświetlenie tablicy w siatce StringGridl.
2