Advertisement
Guest User

Untitled

a guest
May 28th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. /* Na górze skryptu zawsze najpierw dodajemy biblioteki. Przykład: #include <nazwa_twojej_biblioteki> */
  2.  
  3. /* 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
  4.  
  5. To też jest w komentarzu
  6. To też.
  7. Nie ma się co obawiać.
  8. */
  9.  
  10.  
  11.  
  12. #include <iostream> //Biblioteka ta umożliwia wprowadzanie informacji ze standardowych urządzeń wejścia (klawiatura) i kierowanie ich do urządzeń wyjścia (ekran).
  13. #include <cstdlib> //Standardowa biblioteka C (od skrótu cstdlib: c standard library)
  14. #include <cstdio> //operacja wejścia/wyjścia, biblioteka języka C.
  15.  
  16. using namespace std; //Przestrzeń nazw, nie musimy pisać przed funkcjami std::
  17.  
  18. bool czy_pierwsza(int n)//boolean, 0 albo 1, funkcja ta zawiera argument jeden argument n i sprawdza, czy liczba n jest pierwsza
  19. {
  20. if(n<2) //Warunek, jeżeli liczba n jest mniejsza od dwa
  21. return false; //Zwracamy false
  22.  
  23. 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
  24. if(n%i==0) //Jeżeli reszta z dzielenia wynosi 0
  25. return false; //Zwracamy false
  26. return true; //Jeżeli żaden z powyższych warunków się nie sprawdził, to zwracamy true
  27. }
  28.  
  29. char tablica [1000][26]; //Tworzenie wielkiego ciągu znaków dwuwymiarowego.
  30. int wymiary [1000]; // Ogromna zmienna. Może pomieścić aż tysiąc cyfr!
  31. int suma[1000]; //Zmienna, które może pomieścić tysiąc cyfr
  32.  
  33. 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.
  34. {
  35. FILE * uchwyt; //Deklarujemy wskaźnik do naszego pliku
  36. 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
  37. char znak; //Tworzymy ciąg znaków o nazwie "znak"
  38. 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.
  39. {
  40. 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.
  41. {
  42.  
  43. znak=fgetc(uchwyt); //Pobieram jeden znak z pliku, i przypisuję go do ciągu znaków "znak"
  44. if ((int)znak==10||(int)znak==-1) //Warunek: "Jeżeli LICZBA znak to 10 LUB LICZBA znak to -1" ("||" oznacza lub, a "&&" oznacza i)
  45. {
  46. wymiary [i]=j; //Zmienna wymiary po "i", przyjmuje wartość j, czyli np. wymiary[0] = 0; I w tym momencie wymiary[0] ma wartość 0.
  47. break; //Zatrzymanie pętli specjalną funkcją. Można też wznowić pętlę funkcją continue.
  48. }
  49. else //Jeżeli warunek nie został spełniony wykonuje następne polecenia
  50. {
  51. tablica[i][j]=znak; //Dwuwymiarowy ciąg znaków po "i" oraz "j", przyjmuje wartość ze "znak".
  52. }
  53.  
  54. }
  55.  
  56. }
  57.  
  58.  
  59. fclose(uchwyt); //Zamykamy plik, jest to potrzebne aby zwolnić pamięć podręczną
  60.  
  61. 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
  62. {
  63. 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
  64. {
  65. suma[i]=suma[i]+(int)tablica[i][j]; //Suma po "i" jest równa sumie po "i" + INTEGER z tablicy po [i][j].
  66. }
  67. }
  68. 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.
  69.  
  70. 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)
  71. {
  72.  
  73. if(czy_pierwsza(suma[i])){ //Warunek, jeżeli suma po "i" jest liczbą pierwszą, to wykonujemy poniższy kod w klamrach
  74. for (int j=0;j<26;j++) //Pętla od zero, do 25, j zwiększa się o 1
  75. {
  76.  
  77.  
  78. cout <<tablica[i][j]; //Wyświetlam znak
  79. }
  80. cout<<" "<<wymiary[i]<<endl; //Wyświetlenie na ekranie spacji, potem znak, potem nowa linijka
  81. licznik++;}
  82. }
  83. cout<<licznik; //Tutaj też wyświetlam
  84.  
  85. for (int i=0;i<1000;i++) //Pętla od 0, do 999. i zwiększa się o 1
  86. {
  87. for (int j=0;j<wymiary[i]-1;j++) //Pętla od 0 do wymiary[i]-1. j zwiększa się o 1
  88. {
  89. if(wymiary[i+1]>(int)wymiary[i]) //Warunek: "Jeżeli wymiary[i+1] są większe od LICZBY z wymiary[i]"
  90. {
  91. sprawdzam++; //Sprawdzam powiększa się o jeden.
  92. }else //Jeżeli warunek się nie spełnił
  93. {
  94.  
  95.  
  96. break //Jeżeli warunek nie zostanie spełniony, to zatrzymaj pętlę.
  97. }
  98. }
  99. if(wymiary[i]==sprawdzam) //Warunek: "Jeżeli wymiary po "i" są równe liczbie ze zmiennej "sprawdzam""
  100. for (int j=0;j<wymiary[i];j++) //Pętla od 0 do wymiary[i]. j zwiększa się o 1
  101. {
  102.  
  103. //Tutaj miejsce na dowolny kod
  104.  
  105. }
  106.  
  107.  
  108.  
  109.  
  110. }
  111.  
  112. return 0; //No i na końcu zwracamy wartość zero. Możemy też zwrócić np. jakąś zmienną
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement