Chciałem zamieścić taki mały zbiór skryptów, może komuś akurat będą przydatne do nauki.
Skrypty są w miare proste, zawierają komentarze i krótki opis działania. Polecam zajrzeć 🙂
Dodatkowo zamieszcze kilka funkcji.
1.)Standardowe wyświetlenie napisu
#include
#include
using namespace std;
int main()
{
cout << "Witaj swiecie";
getchar();
return 0;
}
Chyba najbardziej prosty skrypt, po wlączeniu wyświetla nam tekst zawarty w cout.
2.)Wczytywanie danych z klawiatury i wypisywanie na ekranie:
#include
#include
using namespace std;
int main()
{
cout << "Ile masz lat? ";
int lata; // deklaracja zmiennej (1)
cin >> lata; // pobranie z klawiatury (2)
// wartości dla zmiennej lata
cout << "Juz wiem: masz " << lata << " lat.";
cin.ignore(); // instrukcja służy zignorowaniu ostatniego 'entera'
getchar();
return 0;
}
Wpisujemy numer, i dostajemy tekst + numer który podaliśmy.
3.)Instrukcja warunkowa if.
#include
#include
using namespace std;
int main()
{
int liczba; // deklaracja zmiennej
cout << "Podaj liczbe ";
cin >> liczba; // przypisanie wartości z klawiatury
if (liczba>0) // instrukcja warunkowa
cout << "Liczba jest dodatnia";
else
cout << "Liczba nie jest dodatnia";
cin.ignore();
getchar();
return 0;
}
Program sprawdza czy liczba jest dodatnia, i wyswietla nam informację.
4.)Program wyprowadzający na ekran monitora najmniejszą z trzech podanych wartości całkowitych:
#include
#include
using namespace std;
int main()
{
int a, b, c;
cout << "Podaj pierwsza liczbe ";
cin >> a;
cout << "Podaj druga liczbe ";
cin >> b;
cout << "Podaj trzecia liczbe ";
cin >> c;
if (a
5.)Program wyświetlający liczby od 1 do 20, oznaczając liczby niepodzielne przez 3:
#include
#include
using namespace std;
int main()
{
for (int i=0; i<20; i++)
{
cout << i;
if (i%3!=0) // jeśli reszta z dzielenia przez 3 jest różna od zera
cout << " - nie jest podzielne przez 3, ";
cout << endl;
}
getchar();
return 0;
}
6.)Pętla while. Wyświetlanie znaków aż do podania litery k.
#include
#include
using namespace std;
int main()
{
char z;
cout << "Podaj znak ";
cin >> z;
while (z!='k')
{
cout << "Podaj kolejny znak ";
cin >> z;
}
cout << "Podales " << z << " wiec koncze";
cin.ignore();
getchar();
return 0;
}
7.)Dzielenie całkowite zrealizowane za pomocą odejmowania dzielnika od dzielnej.
#include
#include
using namespace std;
int main()
{
int a, b; // a–dzielna, b–dzielnik
int k = 0; // krotność
cout << "Podaj dzielna i dzielnik ";
cin >> a >> b;
if (b==0) // sprawdzenie warunku czy nie dzielimy przez zero
cout << "Nie wolno dzielic przez zero!!!";
else
{
while (a>=b) // tu rozpoczyna się właściwy algorytm dzielenia
{
a = a-b;
k++;
}
cout << "a/b wynosi " << k;
}
cin.ignore();
getchar();
return 0;
}
8.)Program obliczający pole kwadratu o podanej długości boku:
#include
#include
using namespace std;
int main()
{
float bok;
do // rób...
{
cout << "Podaj dodatnia dlugosc boku! ";
cin >> bok; // zmiennej bok została przypisana wartość
if (bok<=0)
cout << "Niepoprawna dlugosc boku - podaj jeszcze raz!" << endl;
}
while (bok<=0); // ...dopóki bok nie jest wartością dodatnią
cout << "Pole kwadratu wynosi: " << bok*bok;
cin.ignore();
getchar();
return 0;
}
9.)Instrukcja break. Wyświetlanie liczb parzystych, których suma nie przekracza 20.
#include
#include
using namespace std;
int main()
{
int sum = 0;
for (int i=0; i<10; i++)
{
cout << 2*i <<", ";
sum = sum+2*i;
if (sum>20)
break; // jeśli warunek spełniony, wyjście z pętli
}
cout << " Jestem poza petla"; //tu zaczyna się realizacja zadań
getchar();
return 0;
}
10.)Instrukcja continue. Wyświetlanie i opisywanie liczb niepodzielnych przez 3.
#include
#include
using namespace std;
int main()
{
for (int i=0; i<5; i++)
{
cout << endl << i << ", ";;
if (i%3==0)
continue; // przy spełnieniu warunku przechodzimy
// natychmiast do kolejnego przebiegu pętli
cout << " - nie jest podzielne przez 3, ";
}
getchar();
return 0;
}
11.)Wyznaczenie najmniejszej liczby z k liczb podanych na wejściu:
#include
#include
using namespace std;
int main()
{
int k, a, min; // deklaracja zmiennych
cout << "ile chcesz podac liczb - co najmniej jedna ";
cin >> k; // ilość liczb do wprowadzenia
cout << "wprowadz liczbe ";
cin >> a; // wprowadzamy pierwszą liczbę
min = a; // i przyjmujemy ją jako bieżące minimum
while (k>1) // pętla będzie się wykonywała dopóki k>1
{
cout << "wprowadz liczbe ";
cin >> a; // wprowadzamy nastepną liczbę
k--; // zmniejszamy ilość liczb pozostałych do wprowadzenia
if (a
12.)Badanie czy podana na wejściu liczba n jest liczbą pierwszą.
#include
#include
using namespace std;
int main()
{
int i = 2, n;
cout << "podaj liczbe calkowita wieksza od 1 ";
cin >> n;
while (n%i!=0 && i*i<=n) // pętla skończy się jeśli jeden
i++; // z tych warunków nie bedzie spełniony
if (i*i<=n)
cout << "liczba zlozona";
else
cout << "liczba pierwsza";
cin.ignore();
getchar();
return 0;
}
13.) Funkcja obliczający średnią arytmetyczną dwóch liczb:
float srednia_aryt(float a, float b) // typ_wyniku nazwa(parametry formalne)
{ // klamra otwierająca wnętrze funkcji
return (a+b)/2; // wynikiem funkcji jest średnia arytmetyczna dwóch zmiennych
} // klamra zamykająca wnętrze funkcji
Wywołanie w programie funkcji obliczającej średnią arytmetyczną:
include
#include
using namespace std;
float srednia_aryt(float a, float b)
{
return (a+b)/2;
}
int main()
{
cout << "Srednia arytmetyczna liczb 2.7 i 5 = ";
cout << srednia_aryt(2.7,5);
getchar();
return 0;
}
Inny przykład tej funkcji:
#include
using namespace std;
int main ()
{
int ilosc=0;
float ocena;
float srednia=0;
cout<<"Podaj ocene: ( Wprowadzenie 0 konczy wprowadzanie )";
cin>>ocena;
if (ocena>0)
{
srednia=ocena*ilosc;
}
while (ocena!=0);
if(ilosc>0) srednia/=ilosc;
cout<<"Wprowadziles "<
Wywołanie funkcji z podaniem argumentów w postaci zmiennych:
int main()
{
float x, y; // zmienne lokalne funkcji main
cout << "Podaj dwie liczby: ";
cin >> x >> y;
cout << "Srednia arytmetyczna tych liczb wynosi: ";
cout << srednia_aryt(x,y);
cin.ignore();
getchar();
return 0;
}
14.)Bezparametrowa funkcja wykorzystująca zmienne globalne:
#include
#include
using namespace std;
float a, b; // zmienne globalne - wszystkie poniżej
// zdefiniowane funkcje maja do nich dostęp
float srednia_aryt()
{
return (a+b)/2; // funkcja srednia_aryt ma dostęp do a i b
}
int main()
{
cout << "Podaj dwie liczby: ";
cin >> a >> b; // funkcja main ma dostep do a i b
cout << "Srednia arytmetyczna tych liczb wynosi: " << srednia_aryt();
cin.ignore();
getchar();
return 0;
}
15.)Program ilustrujący różne zakresy ważności zmiennych globalnych i lokalnych:
#include
#include
using namespace std;
int a; // zmienna globalna, znają ją wszystkie funkcje programu
void wyswietl()
{
cout << "Bok kwadratu ma dlugosc: " << a;
}
float pole_kwadratu()
{
return a*a;
}
float b; // tę zmienną globalną znaja funkcje pole_prostokata i main
float pole_prostokata()
{
int pole = a*b; // zmienna lokalna funkcji pole_prostokata
return pole;
}
int main()
{
int c; // zmienna lokalna funkcji main
// tu znajduje sie dalsza treść funkcji głównej
}
16.)Funkcja obliczająca moduł liczby rzeczywistej:
float modul(float a) // funkcja modul pobiera argument typu float
// oraz zwraca wartość tego samego typu
{
if (a>=0)
return a;
else
return -a;
}
17.)Program wykorzystujący funkcję obliczającą moduł liczby rzeczywistej:
#include
#include
using namespace std;
float modul(float x)
{
if (x>=0)
return x;
else
return -x;
}
int main()
{
float a, b;
cout << "Podaj dwa punkty na osi: ";
cin >> a >> b;
cout << "Odleglosc pomiedzy punktami wynosi: " << modul(a-b);
cin.ignore();
getchar();
return 0;
}
18.)Funkcja rysująca szlaczek. Długość i znak szlaczka są przekazywane jako argumenty:
void szlaczek_dowolny(int i, char znak)
{
for (int li=0; li
Bezparametrowa funkcja rysująca szlaczek z 10 gwiazdek:
void szlaczek_10_gwiazdek(void)
{
for (int p=0; p<10; p++)
cout << "*";
}
19.)Przykład funkcji bezargumentowej, która ze swojego wnętrza pobiera potrzebne dane do narysowania szlaczka:
void szlaczek_inaczej()
{
cout << "podaj, jaki znak mam rysowac";
char znak; // to jest zmienna lokalna funkcji
cin >> znak; // pobieramy informację, z jakich znakow
// będzie się składał szlaczek
cout << "ile mam narysowac znakow: " << znak << " ? "; // długość szlaczka
int ile; // kolejna zmienna lokalna funkcji
cin >> ile; // pobieramy informację, z ilu znakow
// będzie się składał szlaczek
for (int p=0; p
20.)Program wykorzystujący funkcje rysowania szlaczków:
#include
#include
using namespace std;
/***************** Definicje funkcji ******************/
void szlaczek_10_gwiazdek(void)
{
for (int p=0; p<10; p++)
cout << "*";
cout << endl;
}
void szlaczek_dowolny(int i, char znak)
{
for (int li=0; li> znak; // znak, na którego podstawie tworzymy szlaczek
cout << "Ile mam narysowac znakow: " << znak << "? ";
int ile;
cin >> ile;
for (int p=0; p> k;
cout << "Jakie to maja byc znaki? (to jest zmienna zn) ";
cin >> zn;
cout << endl << "Wywoluje funkcje szlaczek_dowolny(k,zn)" << endl;
szlaczek_dowolny(k,zn);
cout << endl << "Wywoluje funkcje szlaczek_inaczej()" << endl;
szlaczek_inaczej ();
cin.ignore();
getchar();
return 0;
}
/*************** Koniec funkcji głównej programu *************/
21.)Program rozwiązujący równanie liniowe z jedną niewiadomą:
#include
#include
using namespace std;
void rozwiazanie(float a, float b)
{
if (a!=0)
cout << "Rownanie ma dokladnie jedno rozwiazanie, rowne: " << b/a;
else
if (b!=0)
cout << "Rownanie nie ma rozwiazan";
else
cout << "Rownanie ma nieskonczenie wiele rozwiazan";
}
int main()
{
float A, B;
cout << "Podaj wspolczynniki rownania:" << endl;
cin >> A >> B;
rozwiazanie(A,B);
cin.ignore();
getchar();
return 0;
}
22.)Program rozwiązujący układ równań liniowych z dwiema niewiadomymi:
#include
#include
using namespace std;
void wyswietl_uklad(float a, float b, float c, float d, float e, float f)
{
cout << "Rozwiazujemy uklad:" << endl;
cout << a << " * x + " << b << " * y = " << c << endl;
cout << d << " * x + " << e << " * y = " << f << endl;
}
float wyzn(float a, float b, float c, float d)
{
return a*d-b*c;
}
void rozwiazanie(float g, float x, float y)
{
if (g!=0)
{
cout << "Uklad ma dokladnie jedno rozwiazanie ";
cout << " x = " << x/g << " , y = " << y/g;
}
else
if ((x!=0)||(y!=0))
cout << "Uklad nie ma rozwiazan";
else
cout << "Uklad ma nieskonczenie wiele rozwiazan";
}
int main()
{
float a1, a2, b1, b2, c1, c2;
cout << "Podaj wspolczynniki do pierwszego rownania:" << endl;
cin >> a1 >> b1 >> c1;
cout << "Podaj wspolczynniki do drugiego rownania:" << endl;
cin >> a2 >> b2 >> c2;
wyswietl_uklad(a1,b1,c1,a2,b2,c2);
rozwiazanie(wyzn(a1,b1,a2,b2), wyzn(c1,b1,c2,b2), wyzn(a1,c1,a2,c2)); // 1
cin.ignore();
getchar();
return 0;
}
23.)Program znajdujący największą z trzech podanych liczb:
#include
#include
using namespace std;
float maxi(float a, float b, float c)
{
float max = a;
if (b>max)
max = b;
if (c>max)
max = c;
return max;
}
int main()
{
int x, y, z;
cout << "Podaj trzy liczby, a znajde najwieksza ";
cin >> x >> y >> z;
cout << "Najwieksza z nich to: " << maxi(x,y,z);
cin.ignore();
getchar();
return 0;
}
24.)Program porządkujący trzy liczby w kolejności od najmniejszej do największej:
#include
#include
using namespace std;
void zamien_miejscami(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
int main()
{
int a, b, c;
cout << "Podaj wartosci a, b, c ";
cin >> a >> b >> c;
if (a > b) zamien_miejscami(a,b); // tu dokonują się zamiany elementów
if (a > c) zamien_miejscami(a,c); // pomiędzy sobą, tak aby ostatecznie
if (b > c) zamien_miejscami(b,c); // zmienne a, b, c spelnialy warunek a<=b<=c
cout << "Wartosci liczb a, b, c po zamianach: " << a << " " << b << " " << c;
cin.ignore();
getchar();
return 0;
}
25.)Program porządkujący trzy liczby w kolejności od najmniejszej do największej z wykorzystaniem funkcji:
#include
#include
using namespace std;
void zamien_miejscami(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
void ustaw_rosnaco(int &a, int &b, int &c)
{
if (a>b) zamien_miejscami(a,b);
if (a>c) zamien_miejscami(a,c);
if (b>c) zamien_miejscami(b,c);
}
int main()
{
int a, b, c;
cout << "Podaj wartosci a, b, c ";
cin >> a >> b >> c;
ustaw_rosnaco (a,b,c);
cout << "Wartosci liczb a, b, c po zamianach: " << a << " " << b << " " << c;
cin.ignore();
getchar();
return 0;
}
Implementacja klasycznych algorytmów iteracyjnych
26.)Obliczanie NWD dwóch liczb podanych na wejściu metodą Euklidesa:
#include
#include
using namespace std;
int NWD(int a, int b) // funkcja licząca NWD(a,b)
{
while (a!=b) // dopóki a jest różne od b
{
if(a>b) // jeśli a jest większe od b to
a = a-b; // w miejsce a podstaw różnicę a-b
else // w przeciwnym wypadku
b = b-a; // w miejsce b podstaw różnicę b-a
}
return a;
}
int main() // funkcja główna programu
{
int a, b;
cout << "podaj pierwsza liczbe a: ";
cin >> a;
cout << "podaj druga liczbe b: ";
cin >> b;
cout << "NWD(" << a << "," << b << ") ma wartosc: " << NWD(a,b);
cin.ignore();
getchar();
return 0;
}
27.)Obliczanie NWD dwóch liczb podanych na wejściu zoptymalizowaną metodą Euklidesa:
int NWD(int a, int b)
{
while (a>0)
{
a = a%b;
b = b-a;
}
return b;
}
28.)Program obliczający pierwiastek kwadratowy liczby rzeczywistej metodą Newtona-Raphsona:
#include
#include
#include
using namespace std;
double pierwiastek(double x, double d)
{
double a = x;
while (fabs(a-(x/a))>d) // dopóki różnica boków jest większa od dokładności
{
a = (a+(x/a))/2; // modyfikujemy dlugości boków, korzystając ze
// średniej arytmetycznej
}
return a; // zwracamy dlugość boku jako wartość pierwiastka z x
}
int main()
{
cout << "Pierwiastek wynosi: " << pierwiastek(2,0.01);
getchar();
return 0;
}
29.)Obliczanie przybliżonej wartości pola obszaru ograniczonego wykresem funkcji x^2 oraz osią OX w przedziale, .
#include
#include
#include
using namespace std;
double funkcja(double x) //funkcja dla której liczymy calkę, tu x^2
{
return x*x;
}
double pole_obszaru(int n, double a, double b)
{
double P = 0; //zmienna która sumuje pola prostokątów
double d = (b-a)/n; //dlugość przedziałów na jakie dzielimy
double x; //punkty pośrednie przedzialów
for (int k=0; k" << endl;
cout << "podaj wartosc lewego kranca przedzialu: a ";
cin >> a;
cout << "podaj wartosc prawego kranca przedzialu: b ";
cin >> b;
cout << "Na ile przedzialow podzielic wyjsciowy przedzial?: ";
cin >> ilosc;
cout << "wartosc pola : " << pole_obszaru(ilosc,a,b);
cin.ignore();
getchar();
return 0;
}
30.)Obliczanie przybliżenia miejsca zerowego funkcji w przedziale, metodą połowienia przedziałów:
#include
#include
using namespace std;
double f(double x)
{
return 2*x*x-4*x;
}
double m_zerowe(double a, double b, double dokladnosc)
{
double d = (a+b)/2;
while (b-a>dokladnosc && f(a)!=0 && f(b)!=0)
{
d = (a+b)/2;
if (f(a)*f(d)<0)
b = d;
else
a = d;
}
if (f(a)==0) return a;
if (f(b)==0) return b;
return d;
}
int main()
{
double lewy, prawy, dokl;
do
{
cout << "Podaj lewy kraniec przedzialu ";
cin >> lewy;
cout << "Podaj prawy kraniec przedzialu ";
cin >> prawy;
}
while (f(lewy)*f(prawy)>0 || prawy<=lewy);
cout << "Podaj dokladnosc ";
cin >> dokl;
cout << "Przyblizona wartosc miejsca zerowego: ";
cout << m_zerowe(lewy,prawy,dokl) << endl;
cin.ignore();
getchar();
return 0;
}
31.)Obliczanie przybliżonej wartości liczby π (liczba pi) Metodą Monte Carlo.
#include
#include
#include // używamy w programie funkcji rand()
using namespace std;
int main()
{
double a, b; // zmienne pomocnicze - współrzedne losowanego punktu
long T = 0; // dzięki typowi long możemy losowac wiele punktów
long R;
long ilosc;
srand(time(NULL)); // inicjacja funkcji rand()
cout << "Na podstawie ilu punktow znalezc wartosc liczby pi? ";
cin >> ilosc;
for(R=0; R
if (a*a+b*b<=1) T++; // jeśli punkt należy do koła to zwiększamy licznik
}
cout << "liczba pi ma wartosc : " << (double)(4*T)/R;
cin.ignore();
getchar();
return 0;
}
32.)Program Silnia wypisuje automatycznie silnie dla liczb od 1 do 25:
#include
using namespace std;
int main ()
{
long long ile=1,n=1;
do
{
cout<<"\n silnia wynosi ="<<(n=n*ile);
++ile;
}
while(ile<26);
cout<<"\n Nacisnij ENTER aby zakonczyc \n";
getchar();
return 0;
}
W miare upływu czasu, dodam coś nowego.
Jeśli jakiś skrypt zawiera błąd, prosze o kontakt :DD
😎
Wszystko fajnie i dziala dobrze moglbys dorzucic jeszcze cos w stylu: Zaprojektować i zaimplementować funkcję obliczającą wartość poniższego
równania z wykorzytsaniem wcześniej opracowanych funkcji (nie korzystaćjawnie z operatorów +, −, ∗, /)
f(x) = (10·x^3+3.14·x^2)·(x/3−1/x^2)
Wykorzystując metodę Monte Carlo, oblicz pole obszaru ograniczonego wykresem funkcji y=x2, prostymi x=-a, x=a oraz osią OX. (a jest liczbą naturalną z przedziału )
1. Napisz program, który obliczy pole powierzchni ograniczone wykresem funkcji y=ax2+bx+c (a i b – liczby naturalne), osią OX oraz prostymi x=2, x=5.
1. Napisz program, który znajdzie przybliżoną wartość miejsca zerowego funkcji y=ax2+bx+ab (a i b – liczby całkowite podane przez użytkownika) metodą połowienia przedziałów.
1. Wykorzystując metodę Monte Carlo, oblicz pole obszaru ograniczonego wykresem funkcji y=x2, prostymi x=0, x=N oraz osią OX. (N jest liczbą naturalną z przedziału )
1. Napisz program, który obliczy pole powierzchni ograniczone wykresem funkcji y=ax2+bx+c (a i b – liczby naturalne), osią OX oraz prostymi x=0, x=10.
Potrzebuje koniecznie te zadania..!!