Участник:Shersh/Оформление — различия между версиями
Shersh (обсуждение | вклад) м (→Общие замечания) |
Shersh (обсуждение | вклад) м (→Псевдокод) |
||
Строка 41: | Строка 41: | ||
== Псевдокод == | == Псевдокод == | ||
+ | * Стоит как минимум соблюдать все эти требования к оформлению псевдокода: [http://neerc.ifmo.ru/~sta/formatting3.html правила идеального форматирования кода] | ||
* Старайтесь называть переменные осмысленно, когда это возможно (s = a {{---}} плохо, sz = N {{---}} уже получше, size = newSize {{---}} идеально) | * Старайтесь называть переменные осмысленно, когда это возможно (s = a {{---}} плохо, sz = N {{---}} уже получше, size = newSize {{---}} идеально) | ||
* Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия (но после имени функции можно) и многое другое {{---}} всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода) | * Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия (но после имени функции можно) и многое другое {{---}} всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода) | ||
Строка 70: | Строка 71: | ||
** Возведение в степень в псевдокоде не писать через ^ (путается с '''xor'''). Лучше использовать ** или tex. | ** Возведение в степень в псевдокоде не писать через ^ (путается с '''xor'''). Лучше использовать ** или tex. | ||
** <tex> \exists </tex> и <tex> \forall </tex>, если вдруг вам надо | ** <tex> \exists </tex> и <tex> \forall </tex>, если вдруг вам надо | ||
+ | |||
== Примечания == | == Примечания == | ||
<references/> | <references/> |
Версия 12:00, 10 июня 2015
Основные правила написаны здесь и здесь.
Далее приводится дополнительный список требований (что подразумевается, явно не написано, всякие уточнения, красивости, сборка из правил оформления других участников) который поможет сделать вики-конспекты красивее, лучше, понятнее. Старайтесь везде добавлять англоязычные термины.
Содержание
Общие замечания
- Добавляйте См. также на конспекты по смежным темам,
- литературу, ссылки, просто источники и подобное заменяем на Источники информации
- оформляйте источники информации маркированным списком;
- ссылки оформляйте правильно:
- интервики — ссылка на другой вики-конспект,
- внешняя ссылка — ссылка в источниках информации,
- примечания[1] — ссылка на внешние ресурсы внутри текста конспекта;
- не используйте заголовки первого уровня,
- используйте акронимы для описания используемых фактов, которые вы не доказываете ,
- ио если вы ссылаетесь на какие-то статьи или ссылки, то надо использовать примечания (как это сделать, см. тут);
- добавляйте к терминам англоязычные названия,
- Пример (англ. example);
- кстати, данный список является примером правильно оформленного маркированного списка в плане расстановки знаков препинаний и больших букв,
- порядок раздел в конце конспект: См. также (если есть), Примечания (если есть), Источники информации (если есть).
Tex
- Переменные и константы в тексте оборачивать в tex
- (сравни x, y, 1)
- Классы чисел оборачивать в \mathbb
- Натуральные числа (сравни )
- Классы и функции оборачивать в \mathrm
- Класс регулярных языков (сравни )
- Вместо \mod использовать \bmod, когда применяется как бинарная операция
- (сравни )
- Вместо \le и \ge использовать \leqslant и \geqslant
- (сравни )
- Для сдвигов (арифметических и нет) использовать \texttt{<<} вместо << и >>
- (сравни )
- Хинт: можно использовать \to вместо \rightarrow (\from нет, к сожалению):
- Пары обозначать в \langle \rangle, а не в больше-меньше
- (сравни )
- В техе заменять многоточие на \ldots
- (сравни )
- Заменяйте в tex функции log, gcd, min и другие на них аналог с лидирующем слешем, например, \log
- (сравни )
Псевдокод
- Стоит как минимум соблюдать все эти требования к оформлению псевдокода: правила идеального форматирования кода
- Старайтесь называть переменные осмысленно, когда это возможно (s = a — плохо, sz = N — уже получше, size = newSize — идеально)
- Дополнение к концепции Python-style (надо понимать, что фигурные скобки, лишние круглые скобки, двоеточия (но после имени функции можно) и многое другое — всё сделано для того, чтобы написать компилятор было проще, а программы компилировались быстрей, поэтому в псевдокоде надо стараться избегать всяких особенностей конкретного языка программирования, чтобы повысить читаемость кода)
- Операторы, ключевые слова, примитивные типы данных оборачивать в тройные кавычки (for, if, return, and, pushFront, int и другие)
- Подписывайте аргументы функциям и переменным в псевдокоде. Можно не обязательно всем, но чтобы не возникало динамической типизации
- Вместо void писать function, func или fun
- Типы аргументов и функций желательно указывать через двоеточие после имени
- fun print(a : list<T>): // аналог void
- int get(index : int): // функция, возвращающая int
- Подписывайте аргументы функциям и переменным в псевдокоде. Можно не обязательно всем, но чтобы не возникало динамической типизации
- Использовать словесное обозначение логических операций (and, or, xor, not вместо &&, ||, !)
- Вместо побитового xor-а ^ (крышечка) лучше писать (ниже о том, зачем это нужно)
- Можно переставлять логические операции для повышения читаемости: element not in set
- Проверку типов и приведение к типу (если вдруг понадобится) писать как is и as
- new _НЕ_ писать при создании экземпляра класса
- При нисходящем for писать downto
- Можно писать for по числам через две точки (for i = 1..10) или через to (for i = 1 to 10), но надо понимать, что последний элемент итерации включается, а внутри одного конспекта придерживаться одного стиля
- enum-поля класса или константы выделять курсивом в псевдокоде
- Это относится и к общеязыковым константам true и false
- У методов size(), length() можно не писать круглые скобки — трудно придумать случай, когда реализация функций отличается от просто поля в экземпляре класса чем-то существенным (это уже просто инкапсуляция языков программирования)
- len(queue), len(array) не писать — лишние скобки мешают читаемости
- TODO: надо ли заменять isEmpty на ?
- Операторы, ключевые слова, примитивные типы данных оборачивать в тройные кавычки (for, if, return, and, pushFront, int и другие)
- Комментарии можно писать как через #, так и через //, так же можно и через /**/, но последний оформлять в построчном стиле. Главное, придерживаться одного выбранного формата в рамках конспекта. Ещё очень наглядно обозначать комментарии зелёным цветом: // например, вот так
- Разрешаемые случаи использования tex в псевдокоде:
- вместо null
- вместо !=
- вместо <= и >=
- и другие виды скобок, если возвращается в функции какой-то сложный объект (например объект )
- Теоретико-множественные операции:
- Возведение в степень в псевдокоде не писать через ^ (путается с xor). Лучше использовать ** или tex.
- и , если вдруг вам надо