Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <limits.h>
- using namespace std;
- //Prototypy
- void WyborZadania();
- void wyswietl(int * tab, int n);
- void wyswietlDouble(double * tab, int n);
- int oblicz1A(int * tab, int ileElementow, int liczba);
- int oblicz1B(int * tab, int ileElementow, int liczba);
- double minMaks( double * tab, int ileElementow, bool liczMin );
- double wariancja(double * tab, int ileElementow);
- int kopiujPowyzejSredniej(int * kopia, int * tab, int ileElementow);
- int ileWystapienZnakuWNapisie(char z, char * napis);
- char najczesciejWystepujacaLitera(char * napis);
- bool jestPalindromem(char * napis);
- bool mozeBycPalindromem(char * napis);
- int kopiujZZamiana( char * d, char * z);
- int kopiujMaleLiter( char * d, char * z);
- int main() {
- WyborZadania();
- return EXIT_SUCCESS;
- }
- void wyswietl(int * tab, int n){
- for(int i = 0; i < n; i++) cout << tab[i] << ", ";
- }
- void wyswietlDouble(double * tab, int n){
- for(int i = 0; i < n; i++) cout << tab[i] << ", ";
- }
- //Zad 1A
- int oblicz1A(int * tab, int ileElementow, int liczba){
- int wynik = 0;
- for(int i = 0; i < ileElementow; i++){
- if(*tab > liczba) wynik++;
- else if(*tab < liczba) *tab = 0;
- tab++;
- }
- return wynik;
- }
- //Zad 1B
- int oblicz1B(int *tab, int ileElementow, int liczba){
- int wynik = 0;
- for(int i = 0; i < ileElementow; i++){
- if(*tab < liczba) wynik += *tab;
- else if(*tab > liczba) *tab = 0;
- tab++;
- }
- return wynik;
- }
- //Zad 2
- double minMaks( double * tab, int ileElementow, bool liczMin ){
- int min = INT_MAX;
- int max = INT_MIN;
- double wynik;
- if(liczMin){
- for(int i = 0; i < ileElementow; i++){
- if(*tab < min) min = *tab;
- wynik = min;
- tab++;
- }
- }
- else{
- for(int i = 0; i < ileElementow; i++){
- if(*tab > max) max = *tab;
- wynik = max;
- tab++;
- }
- }
- return wynik;
- }
- //Zad3
- double wariancja(double * tab, int ileElementow){
- double suma;
- double srednia;
- double wynik;
- for(int i = 0; i < ileElementow; i++){
- suma += *tab;
- tab++;
- }
- srednia = suma/ileElementow;
- tab-=ileElementow;
- for(int i = 1; i < ileElementow; i++){
- wynik += (*tab - srednia)*(*tab - srednia);
- tab++;
- }
- return (1.0/ileElementow)*wynik;
- }
- //Zad4
- int kopiujPowyzejSredniej(int * kopia, int * tab, int ileElementow){
- int suma = 0;
- int srednia;
- int wynik=0;
- for(int i = 0; i < ileElementow; i++){
- suma += *tab;
- tab++;
- }
- srednia = suma / ileElementow;
- cout << endl << "Srednia: " << srednia << endl;
- tab -= ileElementow;
- for(int i = 0; i < ileElementow; i++){
- if(*tab > srednia) {
- *kopia = *tab;
- kopia++;
- wynik++;
- }
- tab++;
- }
- return wynik;
- }
- //Zad5
- int ileWystapienZnakuWNapisie(char z, char * napis){
- int wynik = 0;
- for(; *napis != '\0'; napis++){
- if(tolower(*napis) == tolower(z)) wynik++;
- }
- return wynik;
- }
- //Zad6
- char najczesciejWystepujacaLitera(char * napis){
- int znaki[123];
- int max = INT_MIN;
- int wynik;
- for(int i = 0; i < 123; i++) znaki[i] = 0;
- for(; *napis != '\0'; napis++){
- znaki[int(*napis)]++;
- }
- for(int i = 0; i < 123; i++){
- if(znaki[i] > max) {
- max = znaki[i];
- wynik = i;
- }
- }
- return (char)wynik;
- }
- //Zad7
- bool jestPalindromem(char * napis){
- bool wynik = false;
- char * begin, * end;
- for( end = napis; *end; end++)
- ;
- for( begin = napis, end--; begin < end; begin++, end--){
- if(tolower(*begin) == tolower(*end)) wynik = true;
- else {
- wynik = false;
- break;
- }
- }
- return wynik;
- }
- bool mozeBycPalindromem(char * napis){
- int pary, mozliwosci;
- char * begin, * end;
- for( end = napis; *end; end++)
- ;
- for( begin = napis, end--; begin < end; begin++, end--){
- mozliwosci++;
- if(tolower(*begin) == tolower(*end)) pary++;
- }
- if(mozliwosci-pary <= 1) return true;
- else return false;
- }
- int kopiujZZamiana( char * d, char * z){
- int wynik = 0;
- for(; *z != '\0'; z++, d++){
- if(isalpha(*z)){
- if(isupper(*z)) {
- *d += tolower(*z);
- wynik++;
- }
- else if(islower(*z)){
- *d += toupper(*z);
- wynik++;
- }
- }
- }
- return wynik;
- }
- int kopiujMaleLiter( char * d, char * z){
- int wynik = 0;
- for(; *z != '\0'; z++, d++){
- if(isalpha(*z)){
- if(islower(*z)){
- *d += *z;
- wynik++;
- }
- }
- }
- return wynik;
- }
- //Zad12
- class SrodekTransportu{
- private:
- int nr_ew;
- public:
- SrodekTransportu(){
- nr_ew = 0;
- }
- SrodekTransportu(int nr){
- nr_ew = nr;
- }
- ustawNr(int nr){
- nr_ew = nr;
- }
- wezNr(){ return nr_ew; }
- };
- class PojazdSilnikowy : public SrodekTransportu{
- private:
- Silnik s;
- Nadwozie n;
- public:
- PojazdSilnikowy() : SrodekTransportu(){
- s = new Silnik();
- n = new Nadwozie();
- }
- };
- class Silnik{
- private:
- int pojemnosc;
- int nr_seryjny;
- public:
- Silnik(){
- pojemnosc = 0;
- nr_seryjny = 0;
- }
- Silnik(int poj, int nr){
- pojemnosc = poj;
- nr_seryjny = nr;
- }
- };
- class Nadwozie{
- private:
- int kolor;
- int nr_seryjny;
- public:
- Nadwozie(){
- kolor = 0;
- nr_seryjny = 0;
- }
- Nadwozie(int kol, int nr){
- kolor = kol;
- nr_seryjny = nr;
- }
- };
- void WyborZadania(){
- int zad;
- int * tab = new int[5];
- double * tab2 = new double[5];
- tab[0] = 1; tab[1] = 5; tab[2] = 1; tab[3] = 5; tab[4] = 5;
- tab2[0] = 3; tab2[1] = 5; tab2[2] = 1; tab2[3] = 5; tab2[4] = 10;
- cout << "Wybierz zadanie: ";
- cin >> zad;
- switch(zad){
- case 1:
- {
- cout << "Wynik: " << oblicz1A(tab, 5, 4) << endl;
- wyswietl(tab, 5);
- break;
- }
- case 2:
- {
- cout << "Wynik: " << oblicz1B(tab, 5, 4) << endl;
- wyswietl(tab, 5);
- break;
- }
- case 3:
- {
- cout << "Wynik: " << minMaks(tab2, 5, true) << endl;
- cout << "Wynik: " << minMaks(tab2, 5, false) << endl;
- wyswietlDouble(tab2, 5);
- break;
- }
- case 4:
- {
- cout << "Wynik: " << wariancja(tab2, 5) << endl;
- break;
- }
- case 5:
- {
- int * kopia = new int[5];
- cout << "Wynik: " << kopiujPowyzejSredniej(kopia, tab, 5) << endl;
- wyswietl(tab, 5);
- cout << endl;
- wyswietl(kopia, 5);
- delete [] kopia;
- break;
- }
- case 6:
- {
- char * napis = "Zawsze i wszedzie policja jebana bedzie";
- cout << "Wynik: " << ileWystapienZnakuWNapisie('i', napis) << endl;
- break;
- }
- case 7:
- {
- char * napis = "Ksiadz w dresie warke niesie AUUUUUUUUUUU";
- cout << "Wynik: " << najczesciejWystepujacaLitera(napis) << endl;
- break;
- }
- case 8:
- {
- char * napis = "aaasaaa";
- cout << jestPalindromem(napis) << endl;
- break;
- }
- case 9:
- {
- char * napis = "ababc";
- cout << mozeBycPalindromem(napis) << endl;
- break;
- }
- case 10:
- {
- char * z = "RudobrodyCwel";
- char * d = new char[100];
- cout << "Wynik: " << kopiujZZamiana(d, z) << endl;
- for(; *d !='\0'; d++) cout << *d;
- break;
- }
- case 11:
- {
- char * z = "AbcdD";
- char * d = new char[100];
- cout << "Wynik: " << kopiujMaleLiter(d, z) << endl;
- for(; *d !='\0'; d++) cout << *d;
- break;
- }
- default:
- {
- WyborZadania();
- break;
- }
- }
- delete [] tab;
- delete [] tab2;
- }
Add Comment
Please, Sign In to add comment