Programowanie C++

advertisement
Programowanie C++
Zadanie 1
• Napisz program do obliczenia sumy i iloczynu
ciągu liczb zakooczonego liczbą zero.
Zakładamy, że ciąg zawiera co najmniej jedną
liczbę (założenie to jest konieczne przy
obliczeniu iloczynu, ponieważ dla pustego
ciągu program wyprowadzał by wartośd 1 jako
wyznaczony iloczyn)
Rozwiązanie
•
•
#include <cstdlib>
#include <iostream>
•
using namespace std;
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
int main(int argc, char *argv[])
{
int suma, iloczyn, liczba;
// suma - suma ciągu liczbowego
// iloczyn - iloczyn ciagu liczbowego
// liczba - liczba w ciągu
suma=0;
iloczyn=1;
cout<<"Podaj liczby: ";
cin >> liczba;
while (liczba !=0){
suma+=liczba;
iloczyn*=liczba;
cin>>liczba;
}
cout <<"Suma liczb wynosi: "<<suma<<endl;
cout<<"Iloczyn liczb wynosi: "<<iloczyn;
system("PAUSE");
return EXIT_SUCCESS;
Zadanie 2
• Należy wyznaczyd max i minimum w
niepustym ciągu licz różnych od zera,
zakooczonego zerem
Algorytm zadania 2
•
•
•
•
Czytaj liczbę
Zapamiętaj ją jako dotychczasowe maksimum w zmiennej max
Zapmiętaj ją jakod dotychczasowe minimum w zeminnej min
While (liczba jest różna od zera){
If (liczba > dotychczasowe maksimum)
Zapamiętaj liczbe jako dotychczasowe maksimum
If (liczba < dotychczacowe minimum)
Zapamiętaj liczbę jako dotychczasowe minimum
Czytaj liczbę
}
Drukuj max
Drukuj min
Program zadanie 2
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#include <cstdlib>
#include <iostream>
// program do wyznaczania max i min
using namespace std;
int main(int argc, char *argv[])
{
int max, min , liczba;
//max - liczba maksymalna ciągu;
// min - liczba minimaolna ciągu;
//liczba - liczba w ciagu
cout << "Podaj liczby"<< endl;
cin>> liczba;
// przyjecie za maksimum i minium pierwszej liczby ciągu
max=liczba;
min=liczba;
while (liczba!=0){
if (liczba>max)
max=liczba;
else
if (liczba<min)
min = liczba;
cin>>liczba;
}
cout<<"Maksimum wynosi: " <<max<<endl;
cout<< "minimum wynosi: "<<min;
system("PAUSE");
return EXIT_SUCCESS;
}
Zadanie 3
• Program poświęcony jest wygenerowaniu ciągu tak zwanych liczb
Fibonacciego. Liczby te są generowane w następujący sposób. Pierwsze
dwie liczby sa równe 0 i 1, natomiast następne powstają poprzez
obliczenia sumy dwóch poprzednich. Matematycznie liczby te
przedstawiają się rekurencyjnym wzorem a1=0, a2=1,an+2=an+an+1.
• Poniżej przedstawiam klika liczb Fibonacciego :
0 1 1 2 3 5 8 13 21 34 55
Wyznacza n liczb Fibonacciego dla wczytanej wartości n.
Pomoc
Pomoc=poprzednia+biezaca;
Poprzednia = biezaca;
Biezaca=pomoc;
If (licznik % LINIA==0)
Cout<< endl;
Umożliwia wydruk w jednej linii tylu wygenerowanych liczb, ile wynosi
wartośd stałej o nazwie LINIA.
Przejście do następne linii następuje, gdy licznik jest wielokrotnością
stałej LINIA, co oznacza , że doszliśmy do kooca linii
Rozwiązanie
•
•
#include <fstream.h>
#include <iomanip.h>
•
•
#define LINIA 8
#define POLE 7
•
•
•
•
•
void main(void)
{
int poprzednia, biezaca, pomoc, licznik, n;
cout << "Podaj ile chcesz wygenerowac liczb" << endl;
cin >> n;
•
•
poprzednia = 0;
biezaca = 1;
•
cout << setw(POLE)<< poprzednia << setw(POLE) << biezaca;
•
•
•
•
•
•
•
•
•
•
•
•
•
•
for(licznik = 3; licznik <= n; licznik++) {
pomoc = poprzednia + biezaca;
poprzednia = biezaca;
biezaca = pomoc;
cout << setw(POLE) << biezaca;
if (licznik % LINIA == 0 )
cout << endl;
}
char x;
cin >> x;
}
Tablice
•
Int t[10]
Const NMAX=10;
deklaracja tablicy o wymiarze 10.
deklaracja tablicy jako zmienna , lecz przed
zadeklarowaniem tablicy zmienna musi mied znaną wartośd
Int a[NMAX]
Int tab [ ]={11,12,13,14,15}
Int t [2][4] ={
{11,12,13,14}
{21,22,23,24}
}
Int Tab[10]
For (int i=0;i<=1-;i++){
Tab[i]=i;
}
- uzupełnienie każdego elementu w tablicy cyfrą
Zadanie 4
• Należy wprowadzid do tablicy 10 liczb a następnie
wydrukowad je ponownie w odwrotnej
kolejności. (użytkownik z poziomu konsoli
wprowadza dane do tablicy)
Zadanie 5
• Wprowadzamy do tablicy n liczb a następnie
program musi sprawdzid czy wśród
wprowadzonych licz istnieje para liczb
jednakowych. (użytkownik z poziomu konsoli
wprowadza liczby do tabeli)
Zadanie 6
• Zbuduj tablicę dwuwymiarową a następnie
znajdź element minimalny w tablicy.
(Wskazówka – należy użyd dwie pętle for –
zagnieżdżone)
Zadanie 7 – sortowanie bąbelkowe
• Należy posortowad tablicę tak aby najmniejszy
element tablicy był na początku a największy na
koocu tablicy. Sortowania należy dokonad metodą
bąbelkową. Polega to na wielokrotnym
przeglądaniu sąsiadujących ze sobą elementów
tablicy od lewej strony do prawej. Po napotkaniu
pary, dla której żądana kolejnośd nie jest
spełniona , elementy tej tablicy są przestawione.
Algorytm nazywa się bąbelkowy ponieważ
większe liczby są unoszone do góry jak bąbelki na
wodzie.
Przykład sortowania bąbelkowego
•
•
•
•
•
•
•
9 2 7 10 8 4
2 9 7 10 8 4
2 7 9 10 8 4
2 7 9 8 10 4
2 7 9 8 4 10
2 7 8 9 4 10
….
• Pierwotny stan tablicy
• Krok 1 zamiana 92
• Krok 2 zamiana 97
• Krok 3 zamiana 108
Funkcje
• Korzyści wynikające z zastosowania funkcji :
– Program napisany z wykorzystaniem funkcji jest
bardziej czytelny i zrozumiały
– Pewne powtarzające się fragmenty lub realizujące
ściśle określone operacje mogą byd wyodrębnione
i zapisane w postaci jednej funkcji
– Podczas uruchamiania i testowania programu
można oddzielnie testowad poszczególne funkcje a
następnie sprawdzid cały program.
Funkcja przykłady
• Deklaracje funkcji :
typ nazwa (specyfikacja parametrów)
{
instrukcje
Nazwa funkcji to SumaKwadratów. Jest ona
}
Typu int tzn. podaje wartośd typu int oraz ma
Jeden parametr tego samego typu o nazwie n.
Przykład :
Każda funkcja przed jej wykonaniem powinna
Int SumaKwadratow (int n){
byd najpierw zadeklarowana poprzez podanie
Int i, suma=0;
Tzw prototypu funkcji (patrz przykład poniżej)
Oraz w nawiasach powinna mied
For(i=1;i<=n;i++)
zadeklarowane parametry formalne .
Suma +=i*i;
Return suma;
Return – powoduje zakooczenie wykonania
Funkcji i powrót do miejsca jej wywołania.
}
Funkcje przykład
Program powinien wyliczyd sumę kwadratów liczba : 1^2+2^2+….n^2=
Użytkownik powinien podad liczbę n.
•
•
#include <cstdlib>
#include <iostream>
•
int SumaKwadratow(int n);
•
using namespace std;
•
•
•
•
•
•
•
•
int main(int argc, char *argv[])
{
int n, k, wynik;
cout << "Podaj wartosc zmiennej n" << endl;
cin >> n;
wynik = SumaKwadratow(n);
cout << "Suma kwadratow dla n = " << n << " wynosi " << wynik << endl;
cin >> k;
•
•
•
•
•
•
•
•
•
•
system("PAUSE");
return EXIT_SUCCESS;
}
int SumaKwadratow(int n)
{
int i, suma = 0;
for (i=1; i<=n; i++)
suma += i*i;
return (suma);
}
Zadanie8
• Należy napisad program który liczy sumę
potęg.
• 1^k+2^k+…n^k
Należy do nagłówka programu dodad:
# include <math.h>
I wykorzystad polecenie pow(i,k)
Download