courses:programming:rules

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
courses:programming:rules [2017/02/21 14:03]
tatyana.berlenko created
courses:programming:rules [2023/09/13 07:32] (current)
sergey_tinyakov
Line 1: Line 1:
-=== Код ===+===== Правила оформления кода для лабораторных работ =====
  
-  * Код должен содержать осмысленные,​ говорящие имена переменных + 
-Пример:​+==== Код должен содержать осмысленные,​ говорящие имена переменных ​и функций ==== 
 + 
 +Пример ​функции,​ которая считает,​ сколько раз символ letter встретится в строке string:
 <​code>​ <​code>​
  
 +int letterCounter(char *string, char letter)
 +{
 + int letterCount = 0;
 + for(int i = 0; string[i]; i++)
 + if(string[i] == letter)
 + letterCount++;​
 + return letterCount;​
 +}
 </​code>​ </​code>​
  
-  * Исключение:​ имена переменных в цикле cо счётчиком.+==== Исключение:​ имена переменных в цикле cо счётчиком ​==== 
 Пример использования цикла со счётчиком:​ Пример использования цикла со счётчиком:​
 <​code>​ <​code>​
Line 15: Line 26:
 </​code>​ </​code>​
  
-  * Для считывания строк (в том числе с консоли) используйте функцию fgets. Запрещается использовать scanf и gets.+==== Для считывания строк (в том числе с консоли) используйте функцию fgets. Запрещается использовать scanf и gets ====
  
-Пример использования fgets для считывания с консоли:​+Пример использования ​''​fgets'' ​для считывания с консоли:​
 <​code>​ <​code>​
 int size = 100; int size = 100;
Line 24: Line 35:
 </​code>​ </​code>​
  
-  ​* Освобождайте выделенную динамическую память.+Помимо функции ''​fgets''​ можно посимвольно считывать строку через ''​getchar'',​ однако вариант с ''​fgets''​ является более правильным. 
 + 
 +__**Если есть гарантии по условию**__,​ что на вход будет подаваться какой-то **один конкретный тип данных __кроме строки__** (например,​ целочисленное число),​ 
 +то тогда можно использовать функцию ''​scnaf''​. Например,​ следующий код считывает число между двумя вертикальными чертами (например,​ ''​|15|''​):​ 
 +<​code>​ 
 +int x; 
 +scanf("​|%d|",​ &x); 
 +</​code>​ 
 + 
 +==== Освобождайте выделенную динамическую память ​====
  
 Пример выделения и освобождения памяти:​ Пример выделения и освобождения памяти:​
Line 31: Line 51:
 ... ...
 free(buffer);​ free(buffer);​
-</​code>​ 
- 
-=== git & GitHub === 
- 
-  * Комменарий коммита должен быть осмысленным. ​ 
- 
-Пример добавления комментария к коммиту (Ubuntu): 
-<​code>​ 
-git commit -m "​Ivanov LR №1 done" 
-</​code>​ 
- 
-  * Каждая новая лабораторная/​курсовая работа/​контрольная работа должна находиться в своей ветке, которая обязательно должна быть создана в ветке master. 
- 
-Пример перехода на ветку master и создания + перехода в новую ветку Ivanov_Ivan_lr1 (Ubuntu): 
-<​code>​ 
-git checkout master && git pull origin master 
-git checkout -b Ivanov_Ivan_lr1 
-</​code>​ 
- 
-  * Каждая лабораторная работа должна находиться в своей папке. 
- 
-Пример создания папки (Ubuntu): 
-<​code>​ 
-mkdir Ivanov_Ivan_lr1 
-</​code>​ 
- 
-  * Добавление файлов на Github должно происходить с помощью консоли. 
- 
-Пример добавления файлов,​ создания коммита и отправки коммитов на GitHub (Ubuntu): 
-<​code>​ 
-git add Ivanov_Ivan_lr1/​main.c 
-git commit -m "​Ivanov LR №1 done" 
-git push origin Ivanov_Ivan_lr1 
 </​code>​ </​code>​
  
  
courses/programming/rules.1487685824.txt.gz · Last modified: 2022/12/10 09:08 (external edit)