Участник:Shersh/Оформление — различия между версиями
Shersh (обсуждение | вклад) м |
Shersh (обсуждение | вклад) (продвинутый for, (), enum) |
||
Строка 19: | Строка 19: | ||
* Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия после условий (хотя после главной функции можно) и многое другое {{---}} всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода) | * Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия после условий (хотя после главной функции можно) и многое другое {{---}} всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода) | ||
** Операторы, ключевые слова, название самой глобальной функции, типы данных оборачивать в тройные кавычки ('''for''', '''if''', '''return''', '''and''', '''pushFront''', '''int''' и другие) | ** Операторы, ключевые слова, название самой глобальной функции, типы данных оборачивать в тройные кавычки ('''for''', '''if''', '''return''', '''and''', '''pushFront''', '''int''' и другие) | ||
+ | *** '''void''' _НЕ_ писать, если функция возращает ''ничего'', тип указывается, только если он разумный | ||
** Использовать словесное обозначение логических операций ('''and''', '''or''', '''xor''', '''not''' вместо &&, ||, !) | ** Использовать словесное обозначение логических операций ('''and''', '''or''', '''xor''', '''not''' вместо &&, ||, !) | ||
*** Вместо побитового '''xor'''-а ^ (крышечка) лучше писать <tex> \bigoplus </tex> (ниже о том, зачем это нужно) | *** Вместо побитового '''xor'''-а ^ (крышечка) лучше писать <tex> \bigoplus </tex> (ниже о том, зачем это нужно) | ||
Строка 25: | Строка 26: | ||
*** Проверку типов и приведение к типу(если вдруг понадобится) писать как '''is''' и '''as''' | *** Проверку типов и приведение к типу(если вдруг понадобится) писать как '''is''' и '''as''' | ||
** '''new''' _НЕ_ писать при создании экземпляра класса | ** '''new''' _НЕ_ писать при создании экземпляра класса | ||
− | ** | + | ** При нисходящем '''for''' писать '''downto''' |
+ | *** Итерируясь по объектам (рёбра, работы и другие) желательно использовать '''foreach''', чтобы было понятно {{---}} используется другой вид '''for''', хотя в языке программирования они вполне могут быть реализованы более-менее одинаково | ||
+ | *** Можно писать '''for''' по числам и через две точки ('''for''' i = 1..10) или через '''to''' ('''for''' i = 1 to 10), но надо понимать, что последний элемент итерации ''включается'', а внутри одного конкспекта придерживаться одного стиля | ||
+ | **** Ещё хочется, чтобы массивы и строки индексировались с <tex> 1 </tex>, чтобы не делать лишних вычитаний (так правда смотрится красивее), но не обязательно так делать | ||
+ | ** ''enum''-поля класса или просто переменные выделять курсивом в псевдокоде | ||
+ | ** У методов size(), length() можно не писать круглые скобки {{---}} трудно придумать случай, когда реализация функций отличается от просто поля в экземпляре класса чем-то существенным (это уже просто инкапсуляция языков программирования) | ||
+ | *** len(queue), len(array) не писать {{---}} лишние скобки мешают читаемости | ||
+ | *** TODO: надо ли заменять isEmpty на <tex> == \varnothing </tex> ? | ||
* Случаи использования tex в псевдокоде: | * Случаи использования tex в псевдокоде: | ||
** <tex> \varnothing, \emptyset </tex> вместо null | ** <tex> \varnothing, \emptyset </tex> вместо null |
Версия 17:28, 17 ноября 2013
Основные правила написаны здесь и здесь.
Далее приводится дополнительный список требований (что подразумевается, явно не написано, всякие уточнения, красивости, сборка из правил оформления других участников) который поможет сделать вики-конспекты красивее, лучше, понятнее.
Tex
- Переменные и константы в тексте оборачивать в tex
- (сравни x, y, 1)
- Классы чисел оборачивать в \mathbb
- Натуральные числа (сравни )
- Классы и функции оборачивать в \mathrm
- Класс регулярных языков (сравни )
- Вместо \mod использовать \bmod, когда применяется как бинарная операция
- (сравни )
- Вместо \le и \ge использовать \leqslant и \geqslant (сравни и )
- Для сдвигов (арифметических и нет) использовать \ll, \gg, \lll, \ggg вместо << и >> (сравни и )
- Хинт: можно использовать \to вместо \rightarrow (\from нет, к сожалению):
Псевдокод
- Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия после условий (хотя после главной функции можно) и многое другое — всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода)
- Операторы, ключевые слова, название самой глобальной функции, типы данных оборачивать в тройные кавычки (for, if, return, and, pushFront, int и другие)
- void _НЕ_ писать, если функция возращает ничего, тип указывается, только если он разумный
- Использовать словесное обозначение логических операций (and, or, xor, not вместо &&, ||, !)
- Вместо побитового xor-а ^ (крышечка) лучше писать (ниже о том, зачем это нужно)
- Вместо лучше писать in.
- Можно не как в python — not element in set, — а переставить операнды для повышения читаемости: element not in set
- Проверку типов и приведение к типу(если вдруг понадобится) писать как is и as
- new _НЕ_ писать при создании экземпляра класса
- При нисходящем for писать downto
- Итерируясь по объектам (рёбра, работы и другие) желательно использовать foreach, чтобы было понятно — используется другой вид for, хотя в языке программирования они вполне могут быть реализованы более-менее одинаково
- Можно писать for по числам и через две точки (for i = 1..10) или через to (for i = 1 to 10), но надо понимать, что последний элемент итерации включается, а внутри одного конкспекта придерживаться одного стиля
- Ещё хочется, чтобы массивы и строки индексировались с , чтобы не делать лишних вычитаний (так правда смотрится красивее), но не обязательно так делать
- enum-поля класса или просто переменные выделять курсивом в псевдокоде
- У методов size(), length() можно не писать круглые скобки — трудно придумать случай, когда реализация функций отличается от просто поля в экземпляре класса чем-то существенным (это уже просто инкапсуляция языков программирования)
- len(queue), len(array) не писать — лишние скобки мешают читаемости
- TODO: надо ли заменять isEmpty на ?
- Операторы, ключевые слова, название самой глобальной функции, типы данных оборачивать в тройные кавычки (for, if, return, and, pushFront, int и другие)
- Случаи использования tex в псевдокоде:
- вместо null
- вместо !=
- и другие виды скобок, если возвращается в функции какой-то сложный объект (например объект )
- Теоретико-множественные операции:
- Возведение в псевдокоде не писать через ^ (путается с xor). Лучше использовать ** или tex.