Pull to refresh
98
0

Пользователь

Send message
Фиг с ними, с отступами. Pascal можно автоматически выровнять. Не знаю, правда, есть ли для этого инструменты, но проблема не в этом, а в повсеместном использовании однобуквенных переменных / нерасшифровываемых сокращений в транслите. На этом куске кода это ещё не так заметно, но можете заглянуть сюда, например, в самый конец (это переделанный нашими усилиями конспект). Там просто огромный листинг, в котором можно сидеть несколько часов, пока не станет понятно, что он делает. Между тем, если бы автор позаботился о читабельности, он мог бы провести некоторое время с find&replace, чтобы привести это в нормальный вид.

Но повторю ещё раз. Я ничего не имею против алгоритмов самих по себе. А вот когда от нас требуют знания синтаксиса и стандартных функций (библиотекой это язык не поворачивается назвать) никем не используемого языка, вкупе с массой никому не нужных определений, и люди на зачёте валятся именно на этом, а не на непонимании работы алгоритмов, это кажется по меньшей мере странным.
Python:
list.reverse()
Reverse the elements of the list, in place.
Это не работает со слайсами.

>>> a = range(10)
>>> a[5:].reverse()
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a.reverse()
>>> a
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Но это мелочь, согласитесь.
На моих глазах один человек не сдал, поскольку не смог вспомнить, что кусок кода begin ... end называется «составной оператор». С нас требуют знания синтаксиса языка, которым никто всерьёз не пользуется уже лет 20 (и да, я знаю, что на Delphi написаны Total Commander и Skype, но Delphi ≠ Pascal). Вас ничуть не смутила нечитабельность оригинального кода?
Синтаксис паскаля спрашивают на собеседовании в Яндексе? Really?
Против алгоритмов самих по себе ничего не имею против, но стиль кода, который нам показывают, мягко говоря, омерзителен.

Пример кода (копипаста из *.doc с официальным конспектом)
program LEX1 (output);
   const n=...;   {n порядок перестановок}
   var p : array [1..n] of 1..n;
         i,r : 1..n;
   procedure INVERT (m : integer); {инвертирование p[m]...p[n] }
       var i,j: 1..n;
       begin i:=m; j:=n;
           while i<j do begin r:=p[i]; p[i]:=p[j]; p[j]:=r;
                                        i:=i+1; j:=j-1
                               end
       end {INVERT};
 procedure Lec (k:integer); 
   var i : 1..n;
   begin 
      if  k=n then 
  {1}              begin for  i:=1 to n do write (p[i]); writeln end
                else
                     for  i:=n downto k do 
   {2}                begin 
                            LEC (k+1);
                            if i>k then
                                        begin 
                                          r:=p[i]; p[i]:=p[k]; p[k]:=r;
   {3}                                  INVERT (k+1)
   {4}                               end
                        end
  end {LEC};
 begin 
    for i:=1 to n do p[i]:=i;
    LEC (1)
 end.

Моя реализация того же алгоритма на Python
def print_permutations_recursive(n):
	def step(tail_start):
		# if the tail has just one element, print what we've got
		if tail_start == n - 1:
			print p
			return
		# try all possible selections of n elements from a total of (n+1)
		for to_swap in xrange(tail_start + 1, n):
			step(tail_start + 1) # now the tail is reversed
			p[tail_start+1:] = reversed(p[tail_start+1:]) # undoing that
			p[to_swap], p[tail_start] = p[tail_start], p[to_swap]
		step(tail_start + 1) # not reversing after the last time
	p = range(1, n + 1)
	step(0)
Пожилых преподавателей программирования не видел.

Матмех СПбГУ, первый курс. Завтра иду сдавать зачёт по «теории информатики». Половина билетов — синтаксис и стандартные функции паскаля. Другая половина — комбинаторные алгоритмы. Примеры кода, который показывает преподаватель, нечитаемы без полного переписывания. Программа курса не менялась как минимум с 1997 года.

Список билетов
1. Поиск индекса элемента в упорядоченном массиве (бинарный поиск).
2. Генерация перестановок в лексикографическом порядке по рекурсивной схеме (Оценка сложности).
3. Генерация перестановок в лексикографическом порядке по итеративной схеме (Оценка сложности).
4. Записи.
5. Множества.
6. Генерация множеств в лексикографическом порядке.
7. Коды Грея и их генерация.
8. Генерация К-подмножеств в лексикографическом порядке.
9. Генерация К-подмножеств в порядке минимального изменения.
10. Строки.
11. Процедурные типы.
12. Файлы.
13. Текстовые файлы.
14. Модули.
15. Динамические типы данных.
16. Простой линейный список.
17. Представление графа списком смежности.
18. Дерево поиска.
19. Коды Прюфера.
20. Транспортная задача.
youtube-dl умеет. Как-то так:

youtube-dl -o "%(autonumber)s. %(title)s.%(ext)s" --continue --ignore-errors --write-description --write-info-json --write-srt --srt-lang en https://www.youtube.com/course?list=ECCAAA4629624F20D8
Windows 7, Chrome 26.0.1410.64 m:



Пользуюсь на Firefox HTTPS Everywhere + HTTPS Finder. Не самый удобный интерфейс («на этот сайт можно заходить через https! вы хотите всегда заходить через https?»), но работает.
Вы так говорите, как будто свободный порядок слов — это необходимое условие для полноценного языка.
Впрочем, даже с ним можно использовать винительный падеж по необходимости, предполагая какой-нибудь порядок по умолчанию. Например, subject-verb-object: «Esteco difinas konscio», но «Konscion difinas esteco».
Всё писалось под Python 2.6.6, OpenCV 2.1, FANN 2.1.0beta. Но установка OpenCV и FANN — это весьма трудоёмкий процесс, и 2 года спустя я уже не смогу описать вам все детали. Впрочем, что касается FANN: где-то в интернете я видел хорошую инструкцию по его установке под Linux, попробуйте погуглить.
Вообще-то скрипт уже давно не работает, поскольку на сайте поменялась разметка, но если хотите, можете форкнуть (проект лежит на BitBucket) и допилить. У меня самого сейчас заниматься им нет ни времени, ни желания…
О, я вижу, вы в теме. Это хорошо.

Собственно, лично меня задевают только пункты 7 и 8.

В эсперанто используется отдельный суффикс для обозначения женского пола, а отсутствие оного обозначает «мужской или нейтральный» пол. То есть по умолчанию предполагается мужской пол. Сие есть нехорошо, но есть несколько хороших идей по поводу того, как ситуацию можно изменить.

В книге Arika Okrent «In the Land of Invented Languages» упоминается тенденция в современном эсперанто-говорящем сообществе к игнорированию винительного падежа. Но также замечается, что в устоявшихся выражениях (saluton, dankon, bonvenon) винительный падеж отлично себя чувствует. В результате приходим к фрагментации языка, а отсюда недалеко и до исключений, исключений из исключений и прочих прелестей естественных языков. Не проще было бы, если бы такой неоднозначной конструкции не было изначально?
Эсперанто хорош, но всё же обладает некоторыми недостатками. Кто-то считает, что они несущественны, но лично мне из-за них язык не очень нравится.
Насчёт альтернатив, к сожалению, я весьма поверхностно осведомлён, поэтому не рискну называть конкретных кандидатов. Но, на мой взгляд, это однозначно должен быть один из искусственных языков.
Смешанные чувства.
С одной стороны, приятно, что родной язык настолько популярен.
С другой стороны, жаль, что неоправданно сложный язык настолько популярен.
Топ раздач в разделе «Другое» на Pirate Bay
Больше 568 Гб только 2 раздачи Geocities. В других разделах даже за 500 Гб не переваливает.

UPD: ответ make_luv, промахнулся.
В голову приходит кулинария :)
Наш учитель по физике в школе говорил такую же фразу :)
На Хабре, кстати, была статья от одного из переводчиков.

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity