Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Na górze skryptu zawsze najpierw dodajemy biblioteki. Przykład: #include <nazwa_twojej_biblioteki> */
- /* Ciekawostka, nie trzeba używać cały czas // od nowej linijki do komentarzy. Można dać /* i */, aby pomiędzy tymi znakami umieścić wiele linijek komentarzy
- To też jest w komentarzu
- To też.
- Nie ma się co obawiać.
- */
- #include <iostream> //Biblioteka ta umożliwia wprowadzanie informacji ze standardowych urządzeń wejścia (klawiatura) i kierowanie ich do urządzeń wyjścia (ekran).
- #include <cstdlib> //Standardowa biblioteka C (od skrótu cstdlib: c standard library)
- #include <cstdio> //operacja wejścia/wyjścia, biblioteka języka C.
- using namespace std; //Przestrzeń nazw, nie musimy pisać przed funkcjami std::
- bool czy_pierwsza(int n)//boolean, 0 albo 1, funkcja ta zawiera argument jeden argument n i sprawdza, czy liczba n jest pierwsza
- {
- if(n<2) //Warunek, jeżeli liczba n jest mniejsza od dwa
- return false; //Zwracamy false
- for(int i=2;i*i<=n;i++) //Pętla zaczynająca się od dwa, kończy się na wpisanej liczbie, co jeden cykl, "i" jest powiększane o jeden
- if(n%i==0) //Jeżeli reszta z dzielenia wynosi 0
- return false; //Zwracamy false
- return true; //Jeżeli żaden z powyższych warunków się nie sprawdził, to zwracamy true
- }
- char tablica [1000][26]; //Tworzenie wielkiego ciągu znaków dwuwymiarowego.
- int wymiary [1000]; // Ogromna zmienna. Może pomieścić aż tysiąc cyfr!
- int suma[1000]; //Zmienna, które może pomieścić tysiąc cyfr
- int main() //Kod w tej funkcji jest wykonywany gdy uruchomimy program. W nawiasach jest miejsce na umieszczanie argumentów. W tym przypadku nie ma tu argumentów.
- {
- FILE * uchwyt; //Deklarujemy wskaźnik do naszego pliku
- uchwyt=fopen("NAPIS.txt","r"); //Funkcja otwierająca plik. Pierwszy argument odpowiada za nazwę pliku, w drugim argumencie podajemy, czy plik jest np. tylko do odczytu
- char znak; //Tworzymy ciąg znaków o nazwie "znak"
- for(int i=0;i<1000;i++) //Pętla zaczynająca się od 0, kończąca się na 999. "i" zwiększa się o jeden.
- {
- for (int j=0;j<26;j++) //Pętla zaczynająca się od 0, kończąca się na 25. "j" zwiększa się o jeden.
- {
- znak=fgetc(uchwyt); //Pobieram jeden znak z pliku, i przypisuję go do ciągu znaków "znak"
- if ((int)znak==10||(int)znak==-1) //Warunek: "Jeżeli LICZBA znak to 10 LUB LICZBA znak to -1" ("||" oznacza lub, a "&&" oznacza i)
- {
- wymiary [i]=j; //Zmienna wymiary po "i", przyjmuje wartość j, czyli np. wymiary[0] = 0; I w tym momencie wymiary[0] ma wartość 0.
- break; //Zatrzymanie pętli specjalną funkcją. Można też wznowić pętlę funkcją continue.
- }
- else //Jeżeli warunek nie został spełniony wykonuje następne polecenia
- {
- tablica[i][j]=znak; //Dwuwymiarowy ciąg znaków po "i" oraz "j", przyjmuje wartość ze "znak".
- }
- }
- }
- fclose(uchwyt); //Zamykamy plik, jest to potrzebne aby zwolnić pamięć podręczną
- for(int i=0;i<1000;i++) //Pętla zaczynająca się od 0, kończąca na 999. Zmienna "i" zwiększa się o 1
- {
- for (int j=0;j<wymiary[i];j++) //Pętla zaczynająca się od 0, kończąca na wartości z "wymiary[i]", czyli np. na liczbie 21. "j" zwiększa się o 1
- {
- suma[i]=suma[i]+(int)tablica[i][j]; //Suma po "i" jest równa sumie po "i" + INTEGER z tablicy po [i][j].
- }
- }
- int licznik=0; //Deklaracja zmiennej "licznik", która przyjmuje wartość "0". Czemu "=0"? Bo bez żadnego "=" ta zmienna mogła by przybrać losową liczbę czy coś innego.
- for(int i=0;i<1000;i++) //Pętla od zera, do 999. "i" zwiększa się o 1. (Dwa plusy po zmiennej oznacza dodanie 1, podobnie w przypadku minusów)
- {
- if(czy_pierwsza(suma[i])){ //Warunek, jeżeli suma po "i" jest liczbą pierwszą, to wykonujemy poniższy kod w klamrach
- for (int j=0;j<26;j++) //Pętla od zero, do 25, j zwiększa się o 1
- {
- cout <<tablica[i][j]; //Wyświetlam znak
- }
- cout<<" "<<wymiary[i]<<endl; //Wyświetlenie na ekranie spacji, potem znak, potem nowa linijka
- licznik++;}
- }
- cout<<licznik; //Tutaj też wyświetlam
- for (int i=0;i<1000;i++) //Pętla od 0, do 999. i zwiększa się o 1
- {
- for (int j=0;j<wymiary[i]-1;j++) //Pętla od 0 do wymiary[i]-1. j zwiększa się o 1
- {
- if(wymiary[i+1]>(int)wymiary[i]) //Warunek: "Jeżeli wymiary[i+1] są większe od LICZBY z wymiary[i]"
- {
- sprawdzam++; //Sprawdzam powiększa się o jeden.
- }else //Jeżeli warunek się nie spełnił
- {
- break //Jeżeli warunek nie zostanie spełniony, to zatrzymaj pętlę.
- }
- }
- if(wymiary[i]==sprawdzam) //Warunek: "Jeżeli wymiary po "i" są równe liczbie ze zmiennej "sprawdzam""
- for (int j=0;j<wymiary[i];j++) //Pętla od 0 do wymiary[i]. j zwiększa się o 1
- {
- //Tutaj miejsce na dowolny kod
- }
- }
- return 0; //No i na końcu zwracamy wartość zero. Możemy też zwrócić np. jakąś zmienną
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement