Основы программирования на rubyEvgeny SmirnovРассказывается об основах программирования на ruby: переменные, типы переменных, операции и пр. В конце приводятся блок-схема решения линейного уравнения.
Ruby: основы ООПEvgeny SmirnovОсновы объектно-ориентированного программирования на ruby. Разбор концепции наследования.
Оригинал: http://school.smirik.ru/show/43
Probabilistic Verification in Computational Systems DesignIosif ItkinSergey Frenkel, Victor Zakharov, Vladimir Ushakov, IPI RAS, Lomonosov Moscow State University, Moscow
25 интернет сервисовМария РаминаЗакончила трудиться над занятием "25 интернет сервисов для учителя")
Вот итоговый набор... ну если в тысячный раз не передумаю до 14.00
Ruby: основы ООПEvgeny SmirnovОсновы объектно-ориентированного программирования на ruby. Разбор концепции наследования.
Оригинал: http://school.smirik.ru/show/43
Probabilistic Verification in Computational Systems DesignIosif ItkinSergey Frenkel, Victor Zakharov, Vladimir Ushakov, IPI RAS, Lomonosov Moscow State University, Moscow
25 интернет сервисовМария РаминаЗакончила трудиться над занятием "25 интернет сервисов для учителя")
Вот итоговый набор... ну если в тысячный раз не передумаю до 14.00
NumBuster! Почему связи между данными важнее самих данных.Evgeny SmirnovЧасто считается, что основную ценность в бизнесе представляют данные. Однако же весьма важными, а, возможно, и наиболее важными с нашей точки зрения являются связи между получаемыми данными, которые позволяют персонализировать работу пользователя и узнать его лояльность по отношению к различным вещам: работе, разным компаниям, сервисам и пр.
Доклад NumBuster! на конференции BigData Russia 2014.
Урок 8. Введение в редукцию графовСистема дистанционного обучения MyDLSУрок 8. Введение в редукцию графов. Больше интересных публикаций смотри на сайте mydls.ru
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack DaysАлгоритмы решения задачи о
булевой выполнимости (SAT)
и их применение в
криптоанализе
Статический анализ и регулярные выраженияTatyanazaxarovaЯ занимаюсь разработкой статического анализатор кода PVS-Studio для анализа программ на языке Си/Си++. После появления в PVS-Studio 4.00 анализа общего назначения мы получили множество откликов, как положительных, так и отрицательных. Кстати, предлагаю скачать новую версию PVS-Studio, в которой благодаря откликам людей было поправлено большое количество ошибок и недочетов.
Николай Паламарчук "Functional Programming basics for PHP developers"FwdaysFunctional Programming becomes very popular nowadays. What is it? Is it a hype or panacea? Should you deal with it as a PHP programmer? Let's find out!
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.SmartToolsЧто такое S.O.L.I.D-принципы, откуда они вытекают и какое значения имеют для разработки ПО
Внедряем MOOC'и на уроке информатикиEvgeny Smirnov1. Какие бывают MOOC'и?
2. Какие платформы существуют?
3. Какие курсы полезны для учителя информатики?
4. Метрики по результатам эксперимента в 2014-2015 годах.
Инновации которые не мешаютEvgeny SmirnovПрезенетация с выступления на Арене #ИТНШ 2017: зачем нужны инновации, какого типа бывают инновации, как их искать и как их внедрять?
Порядок и хаос в Солнечной системеEvgeny SmirnovПрезентация на фестивале "Пулковский меридиан" (Смирнов Е.А.) об устройстве, порядке и хаосе в Солнечной системе. Рассматриваются представления человечества, начиная с Древних времён и до наших дней. Особое внимание уделено хаотической динамике астероидов.
Мобильные приложения в образованииEvgeny SmirnovПрезентация для семинара о том, как использовать мобильные приложения Plickers & Lumosity в образовании.
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...Evgeny SmirnovМастер-класса "Образовательные и игровые платформы в помощь учителю и методисту", конференция "Информационные технологии для Новой школы", РЦОКОиИТ, 2014.
Образовательные и игровые платформы в помощь учителю и методистуEvgeny SmirnovСуществующий формат образования, подразумевающий достаточно длительные уроки, большое количество материала для запоминания и стандартную систему контрольных работ, не является оптимальным в XXI веке. Интернет и другие современные технологии, а также наличие игровых и соревновательных элементов, позволяют сделать обучение для детей более интересным, повысить его эффективность и улучшить понимание предмета. Электронные видео-материалы дают возможность повторить и закрепить пройденный в школе материал в привычной для подростка форме. Всё это позволит сделать образование более подходящим по стилю и духу для современных детей.
1. Условия Разбор условий Сложные условия Полное условие
Управляющие структуры в ruby
Информатика
10-11 классы
4 октября 2011 г.
Информатика 10-11 классы
2. Условия Разбор условий Сложные условия Полное условие
Вместо введения
Информатика 10-11 классы
3. Условия Разбор условий Сложные условия Полное условие
Условия
Алгоритмы и программы зачастую имеют нелинейную
структуру.
В зависимости от различных параметров системы
программы могут работать по-разному.
Например, при логине на сайте ВКонтакте есть две
возможные ситуации:
1 Вы вводите правильные логин и пароль и попадаете на
свою страницу.
2 Введённая пара “логин–пароль” неверна, и Вас
переадресовывает обратно на страницу логина
Вариантов поведения может быть больше, чем два.
Такое поведение программ соответствует элементу
блок–схемы “Условие” и структуре “Ветвление”.
Информатика 10-11 классы
4. Условия Разбор условий Сложные условия Полное условие
Блок–схема
Вернёмся к задаче о решении линейного уравнения.
Ввести a, b, c
нет
x = (c − b)/a a == 0 b == c x любое
да да
нет
Решений нет
Информатика 10-11 классы
5. Условия Разбор условий Сложные условия Полное условие
Программа
Listing 1: Решение линейного уравнения
a = 5.0
b = 3.0
c = −2.5
i f ( a == 0 )
i f ( b == c )
p u t s " x − any number "
else
p u t s " t h e r e i s no s o l u t i o n "
end
else
x = ( c−b ) / a
p u t s " x = #{x }"
end
Информатика 10-11 классы
6. Условия Разбор условий Сложные условия Полное условие
Пояснения к программе
if ... else ... end оператор условия.
if (a == 0) означает если значение переменной a равно
нулю.
В случае, если a действительно равно нулю, то
выполняется код, расположенный сразу после слова if.
Если же условие ложно (то есть, в нашем случае a = 0), то
выполняется код, расположенный после else (else
переводится как иначе). При ложном условии код,
расположенный после if, просто–напросто игнорируется.
Условия могут быть вложенными друг в друга. В нашем
примере после одного условия сразу же следует другое.
Количество “уровней вложенности” не ограничено.
В конце условия ставится оператор end.
Информатика 10-11 классы
7. Условия Разбор условий Сложные условия Полное условие
Неполные условия
Условия могут быть неполными (неполное означает
отсутствие ключевого слова else):
Listing 2: Неполное условие
i f ( a == 0 )
p u t s " a e q u a l t o 0"
i f ( b == 0 )
p u t s "b i s e q u a l t o 0 t o o "
end
end
Информатика 10-11 классы
8. Условия Разбор условий Сложные условия Полное условие
Модификаторы
Если мы имеем неполное условие и при этом нам нужно
выполнить всего одно действие, можно использовать
сокращённую запись условия (модификатор):
Listing 3: Модификатор
p u t s " a i s e q u a l t o 0" i f ( a == 0 )
Информатика 10-11 классы
9. Условия Разбор условий Сложные условия Полное условие
Отрицательный модификатор
А если мы хотим сделать какое-либо действие в случае,
когда a = 0?
Listing 4: Простой вариант
p u t s " a i s e q u a l t o 0" i f ( a != 0 )
Однако для лучшего понимания кода проще, когда все
условия простые. Для этого в ruby есть ключевое слово
unless, которое можно перевести как если не. С ним
программа становится проще.
Listing 5: Улучшенный вариант
p u t s " a i s e q u a l t o 0" u n l e s s ( a == 0 )
Информатика 10-11 классы
10. Условия Разбор условий Сложные условия Полное условие
Пример
Информатика 10-11 классы
11. Условия Разбор условий Сложные условия Полное условие
Логические операции
А если мы хотим одновременно проверить несколько
условий? Например, если и a, и b равны нулю. Или же
рассмотреть случай, когда хотя бы одна из переменных
равна нулю.
Для этого нужно использовать логические операции:
конъюнкцию && и дизъюнкцию ||.
Listing 6: Конъюнкция и дизъюнкция
i f ( ( a == 0 ) && ( b == 0 ) )
p u t s " a and b i s e q u a l t o 0"
end
p u t s " a o r b i s e q u a l t o 0" i f ( ( a == 0 ) | | ( b == 0 ) )
Информатика 10-11 классы
12. Условия Разбор условий Сложные условия Полное условие
Сравнения
Что кроме проверки на равенство можно делать в
условиях?
Оператор Описание Типы переменных
== равно любые
!= не равно любые
> больше integer, float
>= больше либо равно integer, float
< меньше integer, float
<= меньше либо равно integer, float
Таблица: Операторы сравнения
Информатика 10-11 классы
13. Условия Разбор условий Сложные условия Полное условие
Полное условие
Рассмотрим реальную задачу решения квадратного
уравнения.
Пусть D дискриминант уравнения. В ней три варианта:
1 D>0 два вещественных корня,
2 D=0 один вещественный корень 2 кратности,
3 D<0 вещественных корней нет.
Listing 7: Пример полного условия
i f (D > 0 )
p u t s "2 r e a l r o o t s "
e l s i f (D == 0 )
p u t s "One r e a l r o o t "
else
p u t s "No r e a l r o o t s "
end
Информатика 10-11 классы
14. Условия Разбор условий Сложные условия Полное условие
Полное условие
Listing 8: Схема полного условия
if (...)
...
elsif (...)
...
...
elsif (...)
...
else
...
end
В полном условии добавляется ключевое слово elsif, которое переводится
как иначе если.
Сначала ruby рассмотрит условие после if. Если оно будет ложным, он
перейдёт к первому elsif. И так далее. Если же все условия окажутся
ложными, ruby перейдёт к блоку else.
Кстати, блок else не является обязательным!
Информатика 10-11 классы
15. Условия Разбор условий Сложные условия Полное условие
Квадратное уравнение
Итак, вернёмся к квадратному уравнению. Напишем
программу, высчитывающую все корни (если таковые
имеются) квадратного уравнения ax 2 + bx + c = 0.
Немного упростим себе задачу, предположив, что a = 0.1
1 Вычислим дискриминант уравнения по формуле:
D = b 2 − 4ac.
2 Если дискриминант меньше нуля, то решений нет.
3 Если дискриминант равен нулю, то корень один. Он
b
равен: − .
2a
4 Если дискриминант больше нуля, то существует два
вещественных корня:
√
− b ± b 2 − 4ac
x1,2 =
2a
1
Не забудьте сделать самостоятельно алгоритм без такого допущения.
Информатика 10-11 классы