viraco4a

Обяснения цикли

Jan 10th, 2018
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.51 KB | None | 0 0
  1. Трябват ти следните неща:
  2. 1) Как да четеш число от кознолата:
  3. int n = int.Parse(Console.ReadLine());
  4. С този ред казваш:
  5. Променливата "n" (можеш да я кръстиш както си искаш) ще бъде цяло число (int) и ще бъде равнa на целочисленото число ( = int), което ще получиш след като преобразуваш от текст в число (.Parse()), текста, който четеш от конзолата на един ред (Console.ReadLine)
  6. 2) Аналогично трябва да можеш да пишеш на конзолата, което става с
  7. Console.WriteLine();
  8. този горния ред ти печата празен ред. В скобите, можеш да принтираш различни неща. Например за тази задача можеш да печаташ звездичка така:
  9. Console.WriteLine('*');
  10. така печаташ character или char, която е звездичка * (ограждаш char променливата в апострофи)
  11. можеш и така:
  12. Console.WriteLine("*");
  13. тогава, звездичката я интерпретираш като string (цял текст, ограден от кавички)
  14. Ако искаш например да принтираш „пауза“ или празно пространство, можеш така:
  15. Console.WriteLine(‘ ‘);
  16. Т.е. между двата апострофа просто натискаш пауза 
  17. всички тия команди за печатане са за печатане на нов ред. Ако искаш печатане на конзолата на същия ред, ползваш следното:
  18. Console.Write(‘*’);
  19. Този ред ще ти напечата звездичка на същия ред (докъдето си стигнала последно, няма да я печата на нов ред).
  20. Т.е. в тази задача вече знаеш как да напечаташ например квадрат със страна 5 звездички:
  21. - ред от 5 звездички
  22. - 3 реда с 1 звездичка в началото, 3 празни пространства или паузи и накрая 1 звездичка
  23. - ред от 5 звездички
  24. Обаче в случая не знаеш дали 5 или друг брой звездички трябва да ти е ширината на квадрата, затова ти трябват още нещо:
  25. 3) if функция. Тя изглежда така:
  26. if (проверка дали някакво условие е изпълнено)
  27. {
  28. Ако в проверката в скобите след ключовата дума if имаш резултат от проверката „true” тука в това тяло на if функцията пишеш какво се случва; ако е „false” – прескача if фукнцията.
  29. }
  30. Напиши във visual studio “if” и дай два пъти tab-tab. Автоматично ще ти излезне следното:
  31. if (true)
  32. {
  33.  
  34. }
  35. Където пише true – пишеш условието, което трябва да провериш, между квадратните скоби пишеш нещото, което трябва да се случи, ако проверката ти връща true.
  36. Има едно нещо, което се нарича bool тип променлива. Тази променлива има точно 2 състояния или възможни стойности – или е true, или е false. Та представи си, че в скобите след думата if, имаш bool променлива, която ако е true – се изпълнява кодът в къдравите скоби, ако е false – не се изпълнява този код и се прескача if функцията.
  37. 4) Как можеш да проверяваш нещо дали е вярно или не. Във C# ако пишеш:
  38. A = B;
  39. Казваш – променливата А ще е равна на B.
  40. Ако обаче напишеш:
  41. А == B;
  42. Т.е. 2 знака за равенство един след друг, ти всъщност генерираш bool променлива, която проверява дали A e равно на B и ако да – връща bool стойност true; ако не са равни, връща bool стойност false.
  43. Това се използва например във if функциите така:
  44. if (A == B)
  45. {
  46. Направи нещо си – например напечатай на конзолата числото А:
  47. Console.WriteLine(A);
  48. }
  49. В скобичките след if можеш да проверяваш няколко неща. Например нека имаш 2 условия:
  50. Условие 1 (или bool променлива 1):
  51. А == B;
  52. Условие 2 (или bool променлива 2):
  53. C != D;
  54. Комбинацията != e синтаксис за „не е равно“.
  55. Ако искаш да провериш дали и двете условия са изпълнени (или т.нар. логическо И, т.е. хем А е равно на B, хем C не е равно на D):
  56. A == B && C != D
  57. Става с 2 амперсанта;
  58. Ако искаш да провериш дали поне едно от условията е изпълнено (т.е. да получиш bool стойност true ако или първото условие е изпълнено, а второто не, или второто е изпълнено, а първото не, или и двете са изпълнени):
  59. A == B || C != D
  60. 5) Можеш да навържеш със if/else следната логика:
  61. if (някаква проверка, може да на повече от 1 условия)
  62. {
  63. Направи нещо си
  64. }
  65. else
  66. {
  67. Направи нещо съвсем друго
  68. }
  69. Т.е. Ако условието във if скобите е true, изпълни кода, който е в къдравите скоби там; ако е false, отиди на е else фукнцията и изпълни кода, който е в къдравите скоби на else функцията.
  70. 5) Последното нещо, което ти трябва е цикъл. Най-интуитивният вид цикъл в C# е със следния синтаксис (появява се като напишеш ключовата дума for и цъкнеш 2 пъти tab-tab):
  71. for (int i = 0; i < length; i++)
  72. {
  73. код
  74. }
  75. Какво има в скобите след for:
  76. (първо нещо си; второ нещо си; трето нещо си)
  77. Т.е. 3 неща, разделени с точка и запетая. Ето ги подробно:
  78. - първо нещо си: дефинираш т.нар. ти брояч на цикъла. Най-често се използва буквата i. Но можеш да си я прекръстиш както искаш (например банани). Важно е да е цяло число (защото цяло число брой пъти можеш да направиш нещо си – няма как да направиш нещо си наполовина – поне в програмирането )
  79. В случая казваш: дефинирам брояч цяло число (int) който се казва i и му дефинирам начална стойност нула (0). Т.е. в първия цикъл, i = 0;
  80. - второ нещо си: дефинираш кога цикъла ти ще спре. В случая цикълът ще върти и цикли дотогава, докато е изпълнено условието i < length. Т.е. при тази проверка се гледа – изпълнено ли е условието тука, ако да – изпълни кода, който в къдравите скоби; ако вече не се изпълнява – излез от цикъла.
  81. - трето нещо си: дефинира с каква стъпка расте брояча на цикъла (в случая синтаксисът i++ означава: на всеки цикъл, увеличи брояча i с +1)
  82. Ако тръгнеш да дебъгваш един цикъл (стъпка по стъпка с F10) можеш да проследиш как 1-во се дефинира числото i, и му се присвоява началната стойност (в случая 0); след това се проверява изпълнено ли е условието в секцията „второ нещо си“, ако да – влиза в цикъла, изпълнява кода, след това се връща на секцията „трето нещо си“, увеличава брояча (в случая става 0 + 1 = 1), отива на проверката (второ нещо си), проверява дали 1 е по-малко от length (length може да е нещо съвсем различно – променлива отпреди това), ако да – изпълнява кода, пак увеличава брояча, пак проверява и всичко това дотогава, докато проверката (второ нещо си) върне false – тогава излиза от цикъла.
  83. 6) за тази задача ти трябват 2 цикъла – единият вложен в другия. Първия цикъл го ползвай за брояч на редовете, а втория на стълбовете.
  84. Бих дал следната насока затова как да си напишеш програмата, чисто логически:
  85.  
  86. - Прочети число от конзолата и го кръсти някак си (например chislo)
  87. - Отвори цикъл, който брои редовете. В този първи цикъл, началната стойност на брояча го направи равен на 1, цикъла да продължава дотогава, докато броячът е по-малък или равен (<= e синтаксисът в C#) на числото, което си прочела от конзолата (chislo). Може броячът ти да започва от 0 и провеката ти да е до стойност < от chislo.; Накрая укажи, че този 1-ви брояч ще се увеличава с 1 на всеки цикъл
  88. - Отвори втори цикъл, направи абсолютно същото (само че го кръсти по друг начин от брояча на 1-вия цикъл)
  89. - Направи проверка – в кои случаи да печата звездичка и в кои пауза (например ако брояч 1 е равен на еди колко си, а брояч на еди колко си – се печата еди какво си). Може в една if функция да опишеш всички случаи, в които трябва да се печата звездичка и кодът в if функцията да е „напечатай на този ред звездичка). А във else фукнцията (когато условията от if проверката не са верни) да печаташ пауза.
  90. - след 2-рия (или вложен цикъл), докато си още на 1-вия цикъл, напечатай нов ред
  91.  
  92. По този начин глобално правиш следното: отваряш 1-ви ред (1-вия цикъл); отваряш втория цикъл и печаташ на този ред някви неща (звездички/паузи); като приключиш се връщаш на 1-вия цикъл, втори ред: пак отваряш 2-рия цикъл, печаташ други неща; и т.н докато изпечаташ всичко.
Advertisement
Add Comment
Please, Sign In to add comment