Program 20 Napisać następujące funkcje: funkcję pobierającą (z klawiatury) zawartość tablicy liczb całkowitych podanej jako parametr, o długości podanej jako parametr; funkcję wypisującą zawartość tablicy podanej jako parametr o długości podanej jako parametr; funkcję zwracającą największą sumę trzech kolejnych liczb zapisanych w tablicy liczb całkowitych podanej jako parametr, o długości podanej jako parametr. Przykład JeŜeli tablica zawiera liczby: 1,3,4,2,3,4,0,1,4,5,0 Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi: Napisać program wykorzystujący powyŝsze funkcje. 10 #include <iostream> using namespace std; void Pobierz(int tab[],int r); void Wypisz(int tab[],int r); int MaxSuma3(int tab[],int n); int main() cout<<"najwieksza suma trzech kolejnych liczb wynosi " <<MaxSuma3(tablica,n)<<endl; system("pause"); return 0; void Pobierz(int tab[],int r)
cout<<"wprowadz elementy tablicy:"<<endl; for(int i=0;i<r;i++) cout<<"element "<<i+1<<": "; cin>>tab[i]; void Wypisz(int tab[],int r) cout<<"elementy tablicy:"<<endl; for(int i=0;i<r;i++) cout<<"element "<<i+1<<": "<<tab[i]<<endl; int MaxSuma3(int tab[], int n) Omówienie programu W programie są wykorzystane następujące funkcje: Funkcja Pobierz funkcja ta była omówiona w Programie 11. Funkcja Wypisz funkcja ta była omówiona w Programie 11. Funkcja MaxSuma3 int MaxSuma3(int tab[], int n)
Funkcja posiada dwa parametry (argumenty) tablicę typu int (o nazwie tab) oraz zmienną typu int (o nazwie n), którą interpretujemy jako rozmiar tablicy. Pierwsza linijka: to definicja zmiennej typu int o nazwie Max. Zmiennej tej nadajemy wartość równą sumie trzech pierwszych elementów tablicy tab. Następnie mamy pętle: W pętli tej zmienna i przyjmuje kolejno wartości: 1,2,3,,n-3 gdzie n to rozmiar tablicy tab. Przyjmijmy i=1 Wówczas mamy następującą instrukcję warunkową: if(max<(tab[1]+tab[2]+tab[3])) Max=(tab[1]+tab[2]+tab[3]); Czyli porównujemy wartość zmiennej Max (która jest równa sumie pierwszych trzech elementów tablicy tab) z sumą elementów: drugiego (tab[1]), trzeciego (tab[2]) i czwartego (tab[3]). JeŜeli wartość Max jest mniejsza od tej sumy zmieniamy wartość Max.
Przyjmijmy i=2 Wówczas mamy następującą instrukcję warunkową: if(max<(tab[2]+tab[3]+tab[4])) Max=(tab[2]+tab[3]+tab[4]); Czyli porównujemy dotychczasową wartość zmiennej Max z sumą elementów: trzeciego (tab[2]), czwartego (tab[3]) i piątego (tab[4]). JeŜeli wartość Max jest mniejsza od tej sumy zmieniamy wartość Max. Dla pozostałych wartości zmiennej i działanie jest analogiczne. Dzięki ograniczeniu działania pętli for do i mniejszego od n-2 (czyli równego maksymalnie n-3) na końcu porównujemy wartość zmiennej Max z sumą trzech ostatnich elementów tablicy tab. Funkcja MaxSuma3 zwraca wartość zmiennej Max: PowyŜsze funkcje są wykorzystane w następującym programie: cout<<"najwieksza suma trzech kolejnych liczb wynosi "<<MaxSuma3(tablica,n)<<endl; Na początku definiujemy zmienną typu int o nazwie n, wprowadzamy jej wartość oraz definiujemy tablicę typu int o rozmiarze n:
Następnie wprowadzamy liczby do tablicy: oraz wypisujemy na ekranie jej zawartość: Następnie wykorzystując funkcję MaxSuma3 wypisujemy na ekranie największą sumę trzech kolejnych liczb w tablicy (suma ta jest zwracana przez funkcję MaxSuma3): cout<<"najwieksza suma trzech kolejnych liczb wynosi "<<MaxSuma3(tablica,n)<<endl;