Cwicz 06

background image

Katedra Informatyki Stosowanej

Borland C++

1

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

Scenariusz nr 06

Funkcja użytkownika jako funkcja zewnętrzna i jako składowa klasy.

Zmienne globalne. Przekazywanie parametrów funkcji.

Zadanie.

Zdefiniuj aplikację, która podstawowe algorytmy pracujące na ciągach liczbowych realizuje za pomocą funkcji
użytkownika. Aplikacja wykorzystuje ww. funkcje do badania dwóch ciągów liczb rzeczywistych x oraz y, co najwyżej
50-cio elementowych, realizując zadania zaprezentowane w formularzu.

Uwaga: w trakcie opracowywania aplikacji pamiętaj o testowaniu aplikacji po zdefiniowaniu każdego nowego zadania.


Wykonanie

1. Poniżej podano cześć programu, który należy umieścić na początku modułu formularza, po dyrektywach

preprocesora. Uzupełnij samodzielnie brakujące fragmenty kodu.

// wyznaczenie elementu maksymalnego w ciągu
float max(int n, float tab[])
{ int i; float pom;

pom = tab[0];

for (i=0; i<n;i++)

if(tab[i] > pom) pom=tab[i];

return pom;
}

// wyznaczenie elementu minimalnego
float min(int n, float tab[])
{
// uzupełnij fragment kodu
}

// wyznaczenie iloczynu wszystkich elementów ciągu
double iloczyn(int n, float tab[])
{
// uzupełnij fragment kodu
}

// wyznaczenie nowego ciągu tab2, zawierającego ujemne elementy ciągu tab1
void CiagUjemnych(int n, float tab1[], int *m, float tab2[])

background image

Katedra Informatyki Stosowanej

Borland C++

2

{ int i;
*m=0;
for (i=0; i<n; i++)
if (tab1[i]<0)
tab2[(*m)++]=tab1[i];}

// wyznaczenie nowego ciągu tab2, zawierającego elementy ciągu tab1 większe od liczby a
void CiagWybranych(int n, float tab1[], float a, int *m, float tab2[])
{
// uzupełnij fragment kodu
}

2. Zadeklaruj w pliku nagłówkowym formularza, w ciele kasy formularza w sekcji public tablice dla ciągów x i y oraz

zmienne lx i ly przechowujące liczbę ich elementów do badania.

3. Napisz funkcję obsługi zdarzenia OnActivate formularza, która zwartościuje tablice x i y za pomocą pomocniczych

tablic pomx oraz pomy zainicjowanych w programie:

void __fastcall TForm1::FormActivate(TObject *Sender)

{int i;

float pomx[50]={10, -30, -50, 70, -90, 29, 17, -50, 90, -90, 68, -33, -78, 60, 99};

float pomy[50]={100, -300, -500, 700, -900, 290, 170, -500, 900, -900, 680, -330, -780, 600, 990};

lx=15; ly=15; // liczba elementów obu ciągów może ale nie musi być taka sama

for (i=0; i<lx; i++)

x[i]=pomx[i];

for (i=0; i<ly; i++)

y[i]=pomy[i];

}

4. Napisz program obsługi pierwszego przycisku na formularzu:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text=FloatToStr(max(lx, x));
// uzupełnij fragment kodu
}

5. Napisz program obsługi czwartego przycisku na formularzu:

void __fastcall TForm1::Button4Click(TObject *Sender)
{ int lnx, lny;
float nx[50], ny[50];
CiagUjemnych(lx, x, &lnx, nx);
WstawGrid(lnx, nx, StringGrid1);
// uzupełnij fragment kodu
}

Funkcja WstawGrid jest funkcją składową sekcji public klasy formularza zaprototypowaną następująco:

void WstawGrid(int , float [], TStringGrid*);


Umieść definicję funkcji WstawGrid w pliku modułu formularza po definicji konstruktora. Treść funkcji jest
następująca:

void TForm1::WstawGrid(int n, float tab[], TStringGrid* StringGrid)
{ int i;
StringGrid->RowCount=n;
for (i=0; i<n;i++)
StringGrid->Cells[0][i]=FloatToStr(tab[i]);
}

6. Opracuj obsługę pozostałych przycisków, wykorzystując wiedzę nabytą w trakcie budowy tej aplikacji.



Wyszukiwarka

Podobne podstrony:
CWICZ 06 06
CWICZ 06 03
MO C10 cwicz 06 (2)
CWICZ 06 02
CWICZ 06 05
CWICZ 06 04
06 metoda dobrego startu cwicz Nieznany
CWICZ 05 06
CWICZ 01 06
CWICZ 02 06
MT st w 06
Kosci, kregoslup 28[1][1][1] 10 06 dla studentow
06 Kwestia potencjalności Aid 6191 ppt
06 Podstawy syntezy polimerówid 6357 ppt
06
06 Psych zaburz z somatoformiczne i dysocjacyjne
GbpUsd analysis for July 06 Part 1

więcej podobnych podstron