Mam prośbę, aby ktoś rzucił okiem czy poniższe zadania są dobrze rozwiązane.
Z góry dzięki za pomoc
1/
a) Napisz w języku c++ funkcję CiągGeometryczny, której argumentami są
a0-pierwszy wyraz ciągu geometrycznego, q-iloraz ciągu, n-numer wyrazu ciągu
ctg-n-elementowa tablica przechowująca kolejne wyrazy ciągu i która
zwraca sumę n wyrazów tego ciągu.
b) narysuj schemat blokowy tej funkcji
c) napisz fragment programu który:
-wywołuje funkcję CiągGeometryczny dla 7 wyrazów ciągu a0=5, q=0,2,
tablicy t.
-wypisuje na ekran wyrazy podanego ciągu oraz sumę obliczoną w funkcji.
Zadeklaruj wszystkie potrzebne obiekty.
ad. a)
Kod: Zaznacz cały
int CiagGeometryczny(int a0,int q, int n,int ctg[])
{
int suma=0;
ctg[0]=a0;
for(int i=1;i<n;i++)
{
ctg[i]=ctg[i-1]*q;
}
for(int i=0;i<n;i++)
{
suma+=ctg[i];
}
return suma;
}
Kod: Zaznacz cały
int main()
{
cout<<CiagGeometryczny(5,0.2,n,t);
for(int i=0;i<n;i++)
{
cout<<"element # "<i<<"="<<t[i]<<endl;
}
}
Dany jest n-elementowy zbiór Z trójkątów. Napisz program, który znajduje
w zbiorze Z trójkąt o największym polu. Każdy trójkąt jest reprezentowany
przez podstawę typu odcinek oraz wysokość. Odcinek jest reprezentowany
przez dwa punkty o współrzędnych x i y. Zdefiniuj struktury:
trójkąt, odcinek, punkt.
Kod: Zaznacz cały
struct punkt {
int x;
int y;
};
struct odcinek {
struct punkt A;
struct punkt B;
};
struct trojkat {
struct odcinek podstawa;
int wysokosc;
};
int index, max=0;
for(int i = 0; i<n; i++) {
int dl_x = abs(Z[i].podstawa.A.x - Z[i].podstawa.B.x); // Odległość międy wsp. x
int dl_y = abs(Z[i].podstawa.A.y - Z[i].podstawa.B.y); // Odległość międy wsp. x
int podst = sqrt(dl_x*dl_x + dl_y*dl_y); // Pitagoras
int pole = 0.5*podst*Z[i].wysokosc; // Pole
if(pole > max) { // Porównanie z zapamiętanym max polem
max = pole; // Przypisanie tego maxa
index = i; // Zapamiętanie indeksu trójkąta w zbiorze
}
}