Изменения

Перейти к: навигация, поиск

Участник:Shersh/Оформление

77 байт убрано, 15:23, 2 февраля 2016
Псевдокод: отформатирован
== Псевдокод ==
* # Стоит как минимум соблюдать все эти требования к оформлению псевдокода: [http://neerc.ifmo.ru/~sta/formatting3.html правила идеального форматирования кода]* # Старайтесь называть переменные осмысленно, когда это возможно (s = a {{---}} плохо, sz = N {{---}} уже получше, size = newSize {{---}} идеально) * # Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия (но после имени функции можно) и многое другое {{---}} всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода) ** # Операторы, ключевые слова, примитивные типы данных оборачивать в тройные кавычки ('''for''', '''if''', '''return''', '''and''', '''pushFront''', '''int''' и другие)# Комментарии пишите только через //, так же можно и через /*** /, но последний оформлять в построчном стиле. Главное, придерживаться одного выбранного формата в рамках конспекта. Ещё очень наглядно обозначать комментарии зелёным цветом: <font color=darkgreen> // например, вот так </font># Подписывайте аргументы функциям и переменным в псевдокоде. Можно не обязательно всем, но чтобы не возникало динамической типизации:#**** Вместо вместо '''void''' писать '''function''' или '''fun''' ,#**** Типы типы аргументов и функций желательно указывать через двоеточие после имени#***** : '''function''' print(a: '''List<T>'''): <font color=darkgreen> // аналог '''void''' </font>#***** : '''function''' get(index: '''Intint'''): Int '''int''' <font color=darkgreen> // функция, возвращающая '''int''' </font>** # Использовать словесное обозначение логических операций ('''and''', '''or''', '''xor''', '''not''' вместо &&, ||, !)**#* Вместо побитового '''xor'''-а ^ (крышечка) лучше писать <tex> \oplus </tex> (ниже о том, зачем это нужно)**#* Можно переставлять логические операции для повышения читаемости: element '''not in''' set*** # Проверку типов и приведение к типу (если вдруг понадобится) писать как '''is''' и '''as'''** # '''new''' _НЕ_ писать при создании экземпляра класса** # При нисходящем '''for''' писать '''downto'''*** #: Можно писать '''for''' по числам через две точки ('''for''' i = 1..10) или через '''to''' ('''for''' i = 1 '''to''' 10), но надо понимать, что последний элемент итерации ''включается'', а внутри одного конспекта придерживаться одного стиля** # ''enum''-поля класса или константы выделять курсивом в псевдокоде*** #: Это относится и к общеязыковым константам ''true'', ''false'' и ''falsenull'' ** # У методов size(), length() можно не писать круглые скобки {{---}} трудно придумать случай, когда реализация функций отличается от просто поля в экземпляре класса чем-то существенным (это уже просто инкапсуляция языков программирования)**#* len(queue), len(array) не писать {{---}} лишние скобки мешают читаемости#*** TODO: надо ли заменять isEmpty на == <tex> == \varnothing </tex> ?* Комментарии можно писать как через #, так и через //, так же можно и через /**/, но последний оформлять в построчном стиле. Главное, придерживаться одного выбранного формата в рамках конспекта. Ещё очень наглядно обозначать комментарии зелёным цветом: <font color=darkgreen> // например, вот так </font>* Разрешаемые случаи использования tex в псевдокоде:*#* <tex> \varnothing, \emptyset </tex> вместо null*#* <tex> \neq </tex> вместо !=*#* <tex> \leqslant \geqslant </tex> вместо <= и >=*#* <tex> \langle, \rangle</tex> и другие виды скобок, если возвращается в функции какой-то сложный объект (например объект <tex> \mathrm{Pair} </tex>)*#* Теоретико-множественные операции: <tex> \cap \cup \subset \subseteq \triangle \setminus</tex>*#* Возведение в степень в псевдокоде не писать через ^ (путается с '''xor'''). Лучше , лучше использовать ** или tex.*#* <tex> \exists </tex> и <tex> \forall </tex>, если вдруг вам надо
== Примечания ==
<references/>

Навигация