courses:programming:rules

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:programming:rules [2017/02/21 14:07]
tatyana.berlenko [Код]
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 18: Line 26:
 </​code>​ </​code>​
  
-  * Код должен содержать осмысленные,​ говорящие имена функций.  +==== Для считывания строк (в том числе с консоли) используйте функцию fgets. Запрещается использовать scanf и gets ====
-Пример:​ +
-<​code>​ +
- +
-</​code>​ +
- +
- +
-  * Для считывания строк (в том числе с консоли) используйте функцию fgets. Запрещается использовать scanf и gets.+
  
-Пример использования fgets для считывания с консоли:​+Пример использования ​''​fgets'' ​для считывания с консоли:​
 <​code>​ <​code>​
 int size = 100; int size = 100;
Line 34: Line 35:
 </​code>​ </​code>​
  
-  ​* Освобождайте выделенную динамическую память.+Помимо функции ''​fgets''​ можно посимвольно считывать строку через ''​getchar'',​ однако вариант с ''​fgets''​ является более правильным. 
 + 
 +__**Если есть гарантии по условию**__,​ что на вход будет подаваться какой-то **один конкретный тип данных __кроме строки__** (например,​ целочисленное число),​ 
 +то тогда можно использовать функцию ''​scnaf''​. Например,​ следующий код считывает число между двумя вертикальными чертами (например,​ ''​|15|''​):​ 
 +<​code>​ 
 +int x; 
 +scanf("​|%d|",​ &x); 
 +</​code>​ 
 + 
 +==== Освобождайте выделенную динамическую память ​====
  
 Пример выделения и освобождения памяти:​ Пример выделения и освобождения памяти:​
Line 41: 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.1487686046.txt.gz · Last modified: 2022/12/10 09:08 (external edit)