Курс "Основы программирования" 1 семестр 2019-20 гг.


#1

Топик поддержки курса.

Презентации лекций


#2

Прошу отписаться в этом топике:

  1. Языки программирования, возникшие за последние 5-10 лет
  2. Сравнение скорости работы нескольких решений задачи о двух минимумах

#3

Некоторые языки программирования, возникшие в течение последних лет.

  • Crystal — Ruby-подобный объектно ориентированный язык программирования, появившийся в 2014 году. Находится в активной разработке (последняя версия (далее l.r.) 0.3.1от 12.08.19). Имеет частично переведенную на Русский документацию. Свободная лицензия Apache.

  • Hack — php-подобный язык компании Facebook,также выпущенный в 2014 году. Один из языков с открытым исходным кодом. Последние изменения на GitHub’е менее часа назад. Информации об использовании языка крайне мало.

  • Swift — С-совместимый язык компании Apple, выпущенный в 2014 году. l.r. 5 от 25.03.19. Широко применяется для IOS разработок. Открытый исходный код.

  • Q# — язык программирования компании Microsoft, представленный в 2017 году. Направлен на квантовые технологии. Активно продвигается компанией. К примеру, на Codeforces относительно регулярно проводятся соревнования для данного языка (ссылка в источниках).

  • Go значительно старше остальных из данного списка, язык компании Google появился в 2009 году. l.r. 1.13 от 03.09.19 (пара дней назад). Go можно назвать одним из самых успешных молодых языков программирования (быстрее него значительную популярность набрала только Swift).

    Некоторые источники: (удалено всё, кроме Codeforces) codeforces.com/msqs2018 Ссылки порезаны по требованию форума


#4
  1. К предыдущему ответу добавлю языки Kotlin и Rust, достаточно популярные сейчас.

  2. Все 3 алгоритма на вход получали случайно сгенерированную последовательность из 10000000 натуральных чисел. Результаты следующие:

    1. Первый алгоритм: 8.819 sec
    2. Второй алгоритм: 0.941 sec
    3. Третий алгоритм: 0.575 sec

    Скриншоты с результатами


#5

Спасибо! Хорошая работа!

А это в режиме Release или Debug?


Болталка PascalABC.NET
#6

Сравнил количество операций которые выполняет алгоритм разложения числа на простые множители с проверкой на простоту числа на каждом шаге и без неё (операции которые выполняет алгоритм чтобы определить простоту числа тоже считались вот таблица для 10 натуральных чисел первых чисел) алг, 1 - без проверки на простоту а 2 с проверкой. (за действия считались операции умножения и сложения) 1,1 2 2,1 2 3,2 3 4,2 5 5,4 3 6,3 6 7,6 4 8,3 8 9,3 11 10,5 6 Средняя скорость алгоритмов 1 на 10 первых числах = 3 а средняя скорость алгоритма 2 на том же множестве =5 Вот также еще результаты на большем количестве чисел: Средняя скорость алгоритмов 1 на 30 первых числах = 7.5 а средняя скорость алгоритма 2 на том же множестве =8.23333333333333 Средняя скорость алгоритмов 1 на 40 первых числах = 9.375 а средняя скорость алгоритма 2 на том же множестве =9.325 Средняя скорость алгоритмов 1 на 100 первых числах = 19.57 а средняя скорость алгоритма 2 на том же множестве =14.29 Средняя скорость алгоритмов 1 на 10000 первых числах = 1013.0268 а средняя скорость алгоритма 2 на том же множестве =238.9509 Вывод если нужно разложить на множители большое количество чисел лучше использовать алгоритм с проверкой на простоту числа.


#7


#8

А тексты программ можно?