Основы программирования на rubyEvgeny SmirnovРассказывается об основах программирования на ruby: переменные, типы переменных, операции и пр. В конце приводятся блок-схема решения линейного уравнения.
Probabilistic Verification in Computational Systems DesignIosif ItkinSergey Frenkel, Victor Zakharov, Vladimir Ushakov, IPI RAS, Lomonosov Moscow State University, Moscow
Основы программирования на rubyEvgeny SmirnovРассказывается об основах программирования на ruby: переменные, типы переменных, операции и пр. В конце приводятся блок-схема решения линейного уравнения.
Probabilistic Verification in Computational Systems DesignIosif ItkinSergey Frenkel, Victor Zakharov, Vladimir Ushakov, IPI RAS, Lomonosov Moscow State University, Moscow
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...corehard_byЯзык C++, претерпев долгую эволюцию, обрёл ряд черт, характерных для функциональной парадигмы: функции стали полноправными объектами, над которыми могут выполняться операции, а аппарат шаблонов позволяет проводить вычисления на типах на этапе компиляции. Математический фундамент этих двух главных аспектов составляют, соответственно, ламбда-исчисление и теория категорий. Расширение языка этими средствами способствовало реализации на языке C++ ряда инструментов, известных из функционального программирования. Некоторые из этих реализаций вошли в стандартную библиотеку (std::function, std::bind), другие - в сторонние библиотеки, в том числе в коллекцию библиотек Boost (functional, hana). Важную роль в арсенале функционального программирования играют операции свёртки и развёртки, которые очевиднее всего определяются для списков, но также естественным образом обобщаются на другие индуктивные и коиндуктивные структуры данных. Например, суммирование списка чисел можно представить себе как свёртку списка по операции сложения, а построение списка простых множителей заданного целого числа - как развёртку. Обобщения свёртки и развёртки известны как анаморфизмы и катаморфизмы. Также в функциональном программировании находит применение понятие гиломорфизма - композиция развёртки некоторого объекта в коллекцию с последующей свёрткой её в новый объект. В докладе продемонстрировано, что свёртки, развёртки и их композиции допускают довольно простую реализацию на языке C++.
2. Слово «алгоритм» происходит от имени великого среднеазиатского ученого 8–9 вв. Аль-Хорезми. Из математических работ Аль-Хорезми до нас дошли только две – алгебраическая и арифметическая. Вторая книга долгое время считалась потерянной, но в 1857 в библиотеке Кембриджского университета был найден ее перевод на латинский язык. В ней описаны четыре правила арифметических действий, практически те же, что используются и сейчас. Первые строки этой книги были переведены так: «Сказал Алгоритми. Воздадим должную хвалу Богу, нашему вождю и защитнику». Так имя Аль-Хорезми перешло в «Алгоритми», откуда и появилось слово «алгоритм».
4. Пример 1. Решение квадратного уравнения: 1.Найти дискриминант по формуле: 2. Найти первый корень по формуле x1=(-b+√D)/2a 3. Найти второй корень по формуле x2=(-b-√D)/2a 4. Записать ответ.
5. Пример 2. Выключение компьютера: Нажать кнопку В открывшемся меню выбрать В меню Выключение компьютера выбрать
6. Алгоритм – понятное и точное предписание исполнителю совершить определенную последовательность действий для достижения поставленной цели за конечное число шагов. Определение:
8. Характеристики исполнителя: Сpеда — это «место обитания» исполнителя. Система команд – некоторый строго заданный список команд. После вызова команды исполнитель совеpшает соответствующее элементаpное действие. Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.
14. Свойства алгоритма: Массовость – алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными.
15. Является ли пример алгоритмом для вас? Почему? Вы вышли к доске, взяв мел в правую руку, вам сказали написать слово «информатика» на китайском языке.
16. Способы записи алгоритмов: словесный (запись на естественном языке); графический (изображения из графических символов); программный (тексты на языках программирования).
17. Блок-схема – это графическое изображение алгоритма в виде определенным образом связанных между собой нескольких типов блоков. Определение:
18. Типы блоков: блок начала (конца) блок ввода(вывода) блок действия блок условия
29. Условие – это в ысказывание, которое может быть либо истинным, либо ложным. Условия Определение: простые сложные
30. Простое условие Включает в себя одно предложение; два числа, две переменных или два арифметических выражения, которые сравниваются между собой Например: Идет дождь; 5 >4; x * y=3+8 ) .
31. Сложное условие Последовательность простых условий, объединенных между собой знаками логических операций И ( AND ) , ИЛИ (OR) . Например: ( 10 >0) AND (8>9); (x=10) OR (x>=0).
33. Задания: Лежит ли x вне отрезка [ a, b ]; Принадлежит ли x отрезку [ a, b ] или отрезку [ c, d ]; Является ли k трехзначным числом; Какое из чисел a, b, c является меньшим; Есть ли среди чисел a, b, c взаимно противоположные; Равны ли треугольники со сторонами a1, b1, c1 и a2, b2, c2 ; Является ли четырехугольник со сторонами a, b, c и d ромбом.
34. (x < a) and (x > b); ((x>=a) and (x<=b)) or ((x>=c) and (x<=d)); (k > 99) and (k < 1000); (c < a) and (b > a); (a=-b) or (a=-c) or (b=-c); (a1= a2 ) and ( b1 = b2 ) and ( c1 =c 2 ); (a=b) and (c=d) and (b=c). Ответы:
36. Выбор - это такая алгоритмическая структура, в которой выполняется одна из нескольких последовательностей команд при истинности соответствующего условия. Определение:
37. Полный выбор при условие 1: действия 1 при условие 2: действия 2 . . . . . . . . . . . . при условие N: действия N иначе действия N+1
38. Неполный выбор при условие 1: действия 1 при условие 2: действия 2 . . . . . . . . . . . . при условие N: действия N
39. Запись полного выбора в виде блок-схемы: да серия команд 1 серия команд n да … нет нет серия команд n +1 условие 1 условие n
40. Запись неполного выбора в виде блок-схемы: да нет серия команд 2 да серия команд 1 серия команд n да … нет нет условие 1 условие 2 условие n
42. Определение: Цикл - это такая алгоритмическая структура, в которой серия команд (тело цикла) выполняется многократно.
43. Цикл с предусловием пока истинно условие, предписывает выполнять тело цикла. Словесный способ записи: пока условие тело цикла
44. Запись цикла с предусловием в виде блок-схемы: условие тело цикла да нет
45. Цикл с постусловием предписывает выполнять тело цикла до тех пор, пока не выполнится условие выхода из цикла. Словесный способ записи тело цикла до условие
46. Запись цикла с постусловием в виде блок-схемы: условие тело цикла да нет
47. Цикл со счетчиком предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. Словесный способ записи для i от i1 до i2 тело цикла
48. Запись цикла со счетчиком в виде блок-схемы: счетчик тело цикла да нет