Cwicz 04

background image

Katedra Informatyki Stosowanej

Borland C++

Opracowanie: dr Marzena Nowakowska
Katedra Informatyki Stosowanej, WZiMK PŚk

Scenariusz nr 04

Implementacja algorytmów obliczeniowych w aplikacji BCB

Tablice i instrukcje pętli: wyznaczanie statystyk z tablic numerycznych

Zadanie 1.

Opracuj aplikację, która realizuje zadanie wyznaczania statystyk podstawowych ciągu liczbowego, tak jak na
zaprezentowanym rysunku.


Programy obsługujące pracę formularza zacytowano poniżej.

void __fastcall TForm1::FormActivate(TObject *Sender)
{
StringGrid1->Cells[0][0] = "Student";
StringGrid1->Cells[1][0] = "Ocena studenta";
StringGrid2->Cells[0][0] = "Statystyka";
StringGrid2->Cells[1][0] = "Wartosc";
StringGrid2->Cells[0][1] = "Minimum";
StringGrid2->Cells[0][2] = "Maksimum";
StringGrid2->Cells[0][3] = "Srednia";
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
StringGrid1->RowCount++;
StringGrid1->Col=0;
StringGrid1->Row=StringGrid1->RowCount-1; // Sprawdź w pomocy on-line właściwości grida w tej instrukcji
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i, nn,n;
float min, max, srednia, y[100];
nn = StringGrid1->RowCount; // jak wyznaczyc liczbę niepustych wierszy?
for (i=1; i<nn; i++)
y[i-1]=StrToFloat(StringGrid1->Cells[1][i]);
if (nn > 0)
{ min = max = y[0]; srednia=0;
n=nn-1;
for (i = 0; i < n; i++)
{ if (y[i] < min)
min = y[i];
if (y[i] > max)
max = y[i];
srednia+=y[i];
}

background image

Katedra Informatyki Stosowanej

Borland C++

srednia/=n;
StringGrid2->Cells[1][1] = FloatToStrF(min, ffGeneral, 5,1);
StringGrid2->Cells[1][2] = FloatToStrF(max, ffGeneral, 5,1);
StringGrid2->Cells[1][3] = FloatToStrF(srednia, ffGeneral, 5,2);
}
else
ShowMessage("Brak danych");
}

Zmodyfikuj funkcję Button2Click tak aby:
-

była wyznaczana liczba wierzy niepustych grida wejściowego,

-

instrukcje warunkowa do wyznaczanie ekstremum była optymalna.



Zadanie 2.
Zdefiniuj aplikację w BCB, która dla ciągu danych rzeczywistych realizuje następujące zadania:

a) liczba elementów ujemnych w ciągu,
b) wartość rozstępu w ciągu,
c) iloczyn elementów większych od wartości zadanej przez użytkownika,
d) liczba elementów ciągu leżąca poza otoczeniem średniej arytmetycznej tego ciągu o promieniu zadanym przez

użytkownika.

Ciąg danych do przetwarzania jest przechowywany w tablicy liczb rzeczywistych x o długości nie przekraczającej 100
elementów. Tablica jest publiczną składową klasy formularza.
Wartościowanie tablicy x wykonaj wpisując do metody formularza FormCreate podany niżej kod:

void __fastcall TForm1::FormCreate(TObject *Sender)
{ int i;
float x_pom[100]={1, 3, 5, 7, 9, -29, -17, -5, 0, -9, 18, 33, -78}; // jak nazywa się taka konstrukcja
// programistyczna?
for (i=0; i<13; i++)
x[i]=x_pom[i];
}



Zadanie 3.
Opracować aplikację jak w zadaniu 2, tak aby dane do tablicy były pobierane z obiektu klasy TStringGrid formularza.
Uwaga: należy z projektu usunąć prototyp oraz definicję metody FormCreate i zaprojektować wartościowanie tablicy x
z grida.


Zadanie 4.
Opracować aplikację jak w zadaniu 3, tak aby zastosować inne instrukcje pętli niż do tej pory wykorzystywane.


Wyszukiwarka

Podobne podstrony:
ch ćwicz 04
Cwicz 04 Zad 1 Wykresy
CWICZ 04 01
MO C10 cwicz 04 (2)
CWICZ 04 02
CWICZ 04 03
Sadownictwo ćwicz 14.10.2005 i 04.11.2005, SADOWNICTWO
Laboratorium elektroniki - Ćwiczenie 04, Politechnika Lubelska, Studia, sem III, materiały, Teoria O
Sadownictwo ćwicz 14.10.2005 i 04.11.2005, SADOWNICTWO
CWICZ 01 04
RO ćwicz 02 04 2006 i 23 04 2006
CWICZ 05 04
CWICZ 06 04
CWICZ 02 04
Ana cwicz 2010 10 04
Wykład 04
04 22 PAROTITE EPIDEMICA

więcej podobnych podstron