Kielce, nazaret, kółko inf - zarejstruj/zaloguj się aby mieć dostęp
Dzisiaj utrwalaliśmy dalej poznane już rzeczy, zrobiliśmy wstęp do tablic, poznaliśmy słowo kluczowe break oraz napisaliśmy kilka ciekawych programów.
Kod przykładowego programu przedstawiającego korzystanie z tablic.
#include <iostream>//dla cin, cout oraz system #include <string> //dla string using namespace std; /*program przykładowy - tablice*/ /* za pomocą tablic można tworzyć dowolną ilość zmienych pewnego typu na raz - za chwilę przykład */ int main(){ int tab[1024]; //w ten sposób deklarujemy tablicę na zmienne typu int, ta tablica zawiera dokładnie 1024 liczby całkowite //- możemy deklarować tablice dla dowolnego typu double tab1[28]; //tablica na 28 liczb rzeczywistych string tab2[43]; //tablica na 43 teksty //korzystanie z tablic: tab[0] = 8; //do zerowego elemntu z tab przypisujemy 8 - //uwaga - elementy w tablicach są indeksowane od 0 do n-1 gdzie n to rozmiar tablicy tab[5] = tab[0]*3; //do elementu 5 tab przypisujemy wartość zerowego elementu tablicy pomnożoną razy 3 tab2[15] = "jakis tam tekst - szczerz mowiac niezbyt to mnie ciekawi"; tab2[10] = "cos innego"; //i tak dalej //często chcemy jakaś operację wykonać dla każdego elementu z tablicy - można to bardzo łatwo zrobić za pomocą pętli for for (int i =0; i < 28; ++i) { //28 to romiar tab1 tab1[i] = 12; //po koleii od tab1[0] do tab1[27], ustawiamy wszystko na 12 // - przypominam że tablice indeksowane są od 0 do n-1 gdzie n to rozmiar tablicy } //wypisujemy wszystkie elementy tab1 for (int i=0; i < 28; ++i){ cout << tab1[i] << " "; } cout << endl; system("pause"); }
Program przykładowy - tablice znaków.
#include <iostream> using namespace std; /* program przykladowy - tablica znakow*/ int main(){ char arr[1024]; //char to typ w ktorym trzymamy znaki //tablica znakow może byc interpretowana jako tekst - o maksymalnej ilosci znakow //równej wielkosci tablicy //można napisac: cin >> arr; //albo: cout << arr; //każdy tekst kończy się specjalnym niewidzialnym znakiem informującym że to jest koniec tekstu // znakiem: '\0' //tak więc jesli w efekcie operacji cin >> arr; zostanie wczytane slowo "kupa" //to to jest równoważne czemuś takiemu arr[0] = 'k'; arr[1] = 'u'; arr[2] = 'p'; arr[3] = 'a'; arr[4] = '\0'; // korzystając ze znaku końca można łatwo policzyć długość wczytywanego tekstu cin >> arr; int dlugosc = 0; while (arr[dlugosc] != '\0') { ++dlugosc; } //w tej chwili w zmiennej dlogosc jest zapisana długość wczytanego tekstu cout << dlugosc << endl; //UWAGA nie można napisać(w komentarzu aby dalo sie skompilowac): //arr = "jakis tekst"; //ponieważ "jakis tekst" to takze w rzeczywistosci jest //tablica // w ogólności nie można zrobić czegoś takiego (w komentarzu aby dalo sie skompilować) /* int tablica1[100]; int tablica2[38]; tablica1 = tablica2; //błąd!!! */ system("pause"); }
Program przykładowy - wypisywanie ciągu liczb od końca.
#include <iostream>//dla cin, cout oraz system /*program przykładowy wpisywanie ciągu liczb od końca*/ using namespace std; int main(){ int tab[1000]; int n; cout << "Podaj ilosc liczba jakie mi za chwile podasz - ilosc ta musi byc mniejsz od 1001." << endl; cin >> n; cout << "Podaj mi teraz " << n << " liczb:" << endl; for (int i =0; i < n; ++i) { cin >> tab[i]; } cout << endl << "Teraz wyswietle liczby ktore mi podalas/es od konca:" << endl; for (int i = n-1; i >=0; --i) { cout << tab[i] << " "; } cout << endl; system("pause"); }
Następny program, będzie najpierw pobierał pewną liczbę - liczbę ludzi.
Później będzie wczytywał wagę każdego człowieka.
A później dla każdego człowieka będzie wypisywał czy jest on chudy, gruby czy normalny w zależności od porównania jego wagi ze średnią.
#include <iostream>//dla cin, cout oraz system /*program przykładowy - komentowanie wagi*/ using namespace std; int main(){ double wagi[1000]; //tablica na wagi ludzi int n;//ilość ludzi cout << "Podaj ilosc ludzi ktorych wagi mam wczytywac - ilosc ma byc mniejsza niz 1001." << endl; cin >> n; cout << "Podaj mi teraz " << n << " wag" << endl; double suma = 0;// w tej zmiennej zapisuję sumę wag wszystkich ludzi for (int i =0; i < n; ++i) { cin >> wagi[i]; suma += wagi[i]; } double srednia = suma/n; //liczęśrednią wagę cout << endl; for (int i =0; i < n ; ++i) //dla każdego człowieka stwierdzamy czy jest jest on chudy czy gruby { cout << "czlowiek nr: " << i << " jest "; if (wagi[i] < srednia) { cout << "chudy" << endl; } else if (wagi[i] > srednia) { cout << "gruby" << endl; } else { cout << "normalny" << endl; } } system("pause"); }
Palindrom to taki ciąg znaków który czytany od końca jest taki sam jakbyśmy czytali go od początku.
Poniższy program będzie sprawdzał czy dany ciąg znaków jest palindromem.
#include <iostream> using namespace std; int main(){ char s[1024]; cin >> s; int j = 0; while (s[j] != '\0') // '\0' - specjalny znak informujący o końcu słowa { ++j; } --j; //w tej chwili j jest indeksem ostatniej litery ze słowa int i = 0; //i jest indeksem pierwszej litery ze słowa bool ok = true; while (i < j) { if (s[i] != s[j]) { ok = false; break; //instrykcja break przerywa wykonywanie się pętli w której się znajduje } ++i; --j; } if (ok) { cout << "Podane slowo jest palindromem." << endl; } else { cout << "Podane slowo nie jest palindromem." << endl; } system("pause"); }
Offline