SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Введение   Основы программирования        Простейшие программы   Линейное уравнение




            Основы программирования на ruby

                                Информатика
                                10-11 классы


                             28 сентября 2011 г.




               Информатика 10-11 классы
Введение   Основы программирования        Простейшие программы   Линейное уравнение



Как выучить C++ за 21 день?




               Информатика 10-11 классы
Введение      Основы программирования        Простейшие программы   Линейное уравнение



Что такое программирование?



           Программирование сродни переводу.
           Написать программу на языке программирования ничуть
           не сложнее, чем перевести фразу с русского на английский.
           Программа это последовательность команд, которые
           должен выполнить компьютер, чтобы получить нужный
           результат.
           Язык программирования, как и обычный язык, имеет свои
           лексические, синтаксические и семантические правила.




                  Информатика 10-11 классы
Введение   Основы программирования             Простейшие программы   Линейное уравнение



Введение

                                       Идея


                                     Алгоритм


                                     Блок–схема


                                     Программа


                                          :)


               Информатика 10-11 классы
Введение      Основы программирования        Простейшие программы   Линейное уравнение



Переменные


           Для работы программе нужно запоминать некоторые
           значения. Например, сайт ВКонтакте запоминает данные
           пользователя при входе в систему.
           Такие значения называются переменные.
           Переменные могут использоваться для различных целей.
           Например, в цикле считать количество проходов. Пример
           такой переменной: количество голов в футболе. На
           протяжении 90 минут эта переменная меняет своё
           значение в соответствии с ситуацией.
           Переменные бывают различных типов в зависимости от
           запоминаемых данных. Это строки, числа и пр.



                  Информатика 10-11 классы
Введение        Основы программирования        Простейшие программы   Линейное уравнение



Типы переменных


       Название          Перевод               Описание, примеры
       integer           целое число           -1, 0, 1, √ 500 ...
                                                         2,
       float              вещественное          1.05, π, 2
                         число
       string            строка                “мама мыла раму”
       boolean           булевский             true (истина) / false (ложь), ло-
                                               гический тип
       array             массив                группа переменных [1,5,2]
       hash              хэш                   массив с текстовыми ключами
                                               { ’name’ => ’Вася’, ’age’ => 5 }
       object            объект



                    Информатика 10-11 классы
Введение       Основы программирования        Простейшие программы   Линейное уравнение



Integer & Float: числа

       +     сложение
       −     вычитание
       ∗     умножение
       /     (целочисленное) деление
       ∗∗    возведение в степень
       %     остаток при делении
            5 + 8 ∗ 3 + 10/2 = 5 + 24 + 5 = 34
            2 ∗ ∗8 = 256
            14%3 = 2
            15/4 = 3 (целочисленное деление)
            15.0/4 = 3.75



                   Информатика 10-11 классы
Введение      Основы программирования        Простейшие программы   Линейное уравнение



Строки и логические переменные



           Контактация (сложение строк): “мама” + “мыла раму” =
           “мамамыла раму”
           Обратите внимание! Пробел не добавляется, надо
           указывать вручную: “мама ”
           Логические операции:
            && конъюнкция       логическое “и”
             ||  дизъюнкция логическое “или”
             !    отрицание     логическое “не”




                  Информатика 10-11 классы
Введение       Основы программирования        Простейшие программы   Линейное уравнение



Hello World!

           Первая программа, которую пишут начинающие
           программисты, Hello World. Программа делает
           единственную вещь: выводит на экран приветствие “Hello
           world!”
           Напишем такую программу на языке программирования
           ruby.

      Listing 1: Hello World

            puts " Hello world "

           Оператор puts выводит любое сообщение или значение
           переменной на экран.


                   Информатика 10-11 классы
Введение      Основы программирования        Простейшие программы   Линейное уравнение



Программа–Калькулятор

           Сосчитаем следующие величины: 1024/13 + 523 ∗ 2,
           остаток от деления 2351 на 37, 2100 , 2100 ∗ 50

      Listing 2: Калькулятор

            p u t s 1024.0/13+523∗2
            p u t s 2351%37
            r e s = 2∗∗100
            puts res
            p u t s r e s ∗50

           Мы завели переменную res, чтобы сохранить результат
           2100 . Сохранив результат единожды, мы можем его
           использовать дальше в программе.
           Знак “=” называется операцией присваивания.
                  Информатика 10-11 классы
Введение      Основы программирования        Простейшие программы   Линейное уравнение



Переменные

           Переменные позволяют хранить промежуточные
           результаты вплоть до завершения программы.
           Переменных может быть сколько угодно (практически :) ).
           Допустим, есть две переменные a и b. Как их поменять
           местами, то есть сделать значение a равным b, а b a?

      Listing 3: Неправильный вариант

           a = b
           b = a

           Ошибка заключается в том, что компьютер выполняет
           команды последовательно.
           После выполнения команды a = b обе переменные станут
           равными b, а значение переменной a потеряется.
                  Информатика 10-11 классы
Введение      Основы программирования        Простейшие программы   Линейное уравнение



Правильный вариант

           Простой вариант не сработал, мы “потеряли” значение
           переменной a.
           Логичное решение где-нибудь сохранить это значение.
           Но где?
           В другой переменной!

      Listing 4: Правильный вариант

           c = a
           a = b
           b = c

           Заметим, что в конце переменной b мы присваиваем
           значение переменной c, так как a уже изменило своё
           значение и стала равной b.
                  Информатика 10-11 классы
Введение        Основы программирования        Простейшие программы   Линейное уравнение



Линейное уравнение
           Рассмотрим чуть более сложную задачу: научим
           компьютер решать линейное уравнение ax + b = c.
           a, b, c  некоторые известные величины (параметры), а x
              неизвестное, которое мы будем искать.
           Пример уравнения в числах: 2x + 6 = 10.
           Построение любой сложной программы прежде всего
           начинается с алгоритма.
           В нашем случае алгоритм прост:
            1   Переносим b направо, чтобы все известные были справа, а
                неизвестные слева.
            2   Делим обе части равенства на a (если a = 0).
            3   Получаем значение неизвестного x и рассматриваем
                вариант a = 0.
           Следующим этапом является построение блок–схемы.
           Этот этап не всегда обязателен, но очень помогает
           начинающим не запутаться в сложных программах.
                    Информатика 10-11 классы
Введение     Основы программирования        Простейшие программы        Линейное уравнение



Блок–схема



                           Ввести a, b, c


                         нет
      x = (c − b)/a            a == 0                b == c              x     любое
                                            да                     да

                                                    нет

                                                 Решений нет




                 Информатика 10-11 классы

Weitere ähnliche Inhalte

Was ist angesagt?

Ruby: основы ООП
Ruby: основы ООПRuby: основы ООП
Ruby: основы ООПEvgeny Smirnov
 
Запись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальЗапись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальAndrey Dolinin
 
Конструирование алгоритмов
Конструирование алгоритмовКонструирование алгоритмов
Конструирование алгоритмовAndrey Dolinin
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данныхЕлена Ключева
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнотаsimple_people
 
Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовAndrey Dolinin
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеLidia Pivovarova
 
19 pascal urok_3
19 pascal urok_319 pascal urok_3
19 pascal urok_3Ann Eres
 
программирование на Maple. Лекция 2
программирование на Maple. Лекция 2программирование на Maple. Лекция 2
программирование на Maple. Лекция 2Andrei V, Zhuravlev
 
программирование на Maple. Лекция 1
программирование на Maple. Лекция 1программирование на Maple. Лекция 1
программирование на Maple. Лекция 1Andrei V, Zhuravlev
 
этапы написания программы
этапы написания программыэтапы написания программы
этапы написания программыИрина Чернова
 
Общие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальОбщие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальAndrey Dolinin
 
Способы записи алгоритмов
Способы записи алгоритмовСпособы записи алгоритмов
Способы записи алгоритмовAndrey Dolinin
 
Scala Magic, Alexander Podhaliusin
Scala Magic, Alexander PodhaliusinScala Magic, Alexander Podhaliusin
Scala Magic, Alexander PodhaliusinVasil Remeniuk
 

Was ist angesagt? (18)

Ruby: основы ООП
Ruby: основы ООПRuby: основы ООП
Ruby: основы ООП
 
Запись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальЗапись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка Паскаль
 
Конструирование алгоритмов
Конструирование алгоритмовКонструирование алгоритмов
Конструирование алгоритмов
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
 
Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмов
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
 
19 pascal urok_3
19 pascal urok_319 pascal urok_3
19 pascal urok_3
 
программирование на Maple. Лекция 2
программирование на Maple. Лекция 2программирование на Maple. Лекция 2
программирование на Maple. Лекция 2
 
программирование на Maple. Лекция 1
программирование на Maple. Лекция 1программирование на Maple. Лекция 1
программирование на Maple. Лекция 1
 
этапы написания программы
этапы написания программыэтапы написания программы
этапы написания программы
 
десант презентация
десант презентациядесант презентация
десант презентация
 
алгоритм
алгоритмалгоритм
алгоритм
 
лек13 4
лек13 4лек13 4
лек13 4
 
87
8787
87
 
Общие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальОбщие сведения о языке программирования Паскаль
Общие сведения о языке программирования Паскаль
 
Способы записи алгоритмов
Способы записи алгоритмовСпособы записи алгоритмов
Способы записи алгоритмов
 
Scala Magic, Alexander Podhaliusin
Scala Magic, Alexander PodhaliusinScala Magic, Alexander Podhaliusin
Scala Magic, Alexander Podhaliusin
 

Andere mochten auch

Вторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruВторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruAlexander Shcherbinin
 
Основы формальной и математической логи
Основы формальной и математической логиОсновы формальной и математической логи
Основы формальной и математической логиEvgeny Smirnov
 
Электронные таблицы
Электронные таблицыЭлектронные таблицы
Электронные таблицыEvgeny Smirnov
 
Основы математической логики
Основы математической логикиОсновы математической логики
Основы математической логикиEvgeny Smirnov
 
Rust: история языка и контекст применения
Rust: история языка и контекст примененияRust: история языка и контекст применения
Rust: история языка и контекст примененияNikita Baksalyar
 
Введение в алгоритмы
Введение в алгоритмыВведение в алгоритмы
Введение в алгоритмыEvgeny Smirnov
 
Логические задачи
Логические задачиЛогические задачи
Логические задачиEvgeny Smirnov
 
Почему Rust стоит вашего внимания
Почему Rust стоит вашего вниманияПочему Rust стоит вашего внимания
Почему Rust стоит вашего вниманияMichael Pankov
 
LMS42 в школьном образовании
LMS42 в школьном образованииLMS42 в школьном образовании
LMS42 в школьном образованииEvgeny Smirnov
 
Rust All Hands Winter 2011
Rust All Hands Winter 2011Rust All Hands Winter 2011
Rust All Hands Winter 2011Patrick Walton
 
Использование интернет-сервисов в образовании
Использование интернет-сервисов в образованииИспользование интернет-сервисов в образовании
Использование интернет-сервисов в образованииEvgeny Smirnov
 
NumBuster! Почему связи между данными важнее самих данных.
NumBuster! Почему связи между данными важнее самих данных.NumBuster! Почему связи между данными важнее самих данных.
NumBuster! Почему связи между данными важнее самих данных.Evgeny Smirnov
 
An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...Claudio Capobianco
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
 
Объектно-ориентированное программирование в ruby
Объектно-ориентированное программирование в rubyОбъектно-ориентированное программирование в ruby
Объектно-ориентированное программирование в rubyEvgeny Smirnov
 

Andere mochten auch (20)

Хэши в ruby
Хэши в rubyХэши в ruby
Хэши в ruby
 
Вторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ruВторая лекция по основам ruby для студентов itc73.ru
Вторая лекция по основам ruby для студентов itc73.ru
 
25 интернет сервисов
25 интернет сервисов25 интернет сервисов
25 интернет сервисов
 
Основы формальной и математической логи
Основы формальной и математической логиОсновы формальной и математической логи
Основы формальной и математической логи
 
Электронные таблицы
Электронные таблицыЭлектронные таблицы
Электронные таблицы
 
Основы математической логики
Основы математической логикиОсновы математической логики
Основы математической логики
 
Rust: история языка и контекст применения
Rust: история языка и контекст примененияRust: история языка и контекст применения
Rust: история языка и контекст применения
 
Erlang
ErlangErlang
Erlang
 
Введение в алгоритмы
Введение в алгоритмыВведение в алгоритмы
Введение в алгоритмы
 
Логические задачи
Логические задачиЛогические задачи
Логические задачи
 
Почему Rust стоит вашего внимания
Почему Rust стоит вашего вниманияПочему Rust стоит вашего внимания
Почему Rust стоит вашего внимания
 
LMS42 в школьном образовании
LMS42 в школьном образованииLMS42 в школьном образовании
LMS42 в школьном образовании
 
Блок-схемы
Блок-схемыБлок-схемы
Блок-схемы
 
Rust All Hands Winter 2011
Rust All Hands Winter 2011Rust All Hands Winter 2011
Rust All Hands Winter 2011
 
Использование интернет-сервисов в образовании
Использование интернет-сервисов в образованииИспользование интернет-сервисов в образовании
Использование интернет-сервисов в образовании
 
NumBuster! Почему связи между данными важнее самих данных.
NumBuster! Почему связи между данными важнее самих данных.NumBuster! Почему связи между данными важнее самих данных.
NumBuster! Почему связи между данными важнее самих данных.
 
An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...An introduction to Rust: the modern programming language to develop safe and ...
An introduction to Rust: the modern programming language to develop safe and ...
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
Объектно-ориентированное программирование в ruby
Объектно-ориентированное программирование в rubyОбъектно-ориентированное программирование в ruby
Объектно-ориентированное программирование в ruby
 

Ähnlich wie Основы программирования на ruby

Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Technopark
 
практикум по выполнению блока с (с1)
практикум по выполнению блока с (с1)практикум по выполнению блока с (с1)
практикум по выполнению блока с (с1)Екатерина Луговова
 
лекция1
лекция1лекция1
лекция1shagore
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Статический анализ и регулярные выражения
Статический анализ и регулярные выраженияСтатический анализ и регулярные выражения
Статический анализ и регулярные выраженияTatyanazaxarova
 
Deep c slides_oct2011_rus
Deep c slides_oct2011_rusDeep c slides_oct2011_rus
Deep c slides_oct2011_rusGarrikus
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack Days
 
паскаль. часть1
паскаль. часть1паскаль. часть1
паскаль. часть1igorm9so
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Fwdays
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013AliyaAringazinova
 

Ähnlich wie Основы программирования на ruby (20)

Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8
 
Python
PythonPython
Python
 
практикум по выполнению блока с (с1)
практикум по выполнению блока с (с1)практикум по выполнению блока с (с1)
практикум по выполнению блока с (с1)
 
паскаль
паскальпаскаль
паскаль
 
лек1
лек1лек1
лек1
 
лек1
лек1лек1
лек1
 
лекция1
лекция1лекция1
лекция1
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
206297
206297206297
206297
 
Урок 8. Введение в редукцию графов
Урок 8. Введение в редукцию графовУрок 8. Введение в редукцию графов
Урок 8. Введение в редукцию графов
 
8 3-4
8 3-48 3-4
8 3-4
 
Статический анализ и регулярные выражения
Статический анализ и регулярные выраженияСтатический анализ и регулярные выражения
Статический анализ и регулярные выражения
 
Deep c slides_oct2011_rus
Deep c slides_oct2011_rusDeep c slides_oct2011_rus
Deep c slides_oct2011_rus
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
 
паскаль. часть1
паскаль. часть1паскаль. часть1
паскаль. часть1
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
8 3-5
8 3-58 3-5
8 3-5
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"
 
Использование трансформации программ при проверке их правильности в обучающих...
Использование трансформации программ при проверке их правильности в обучающих...Использование трансформации программ при проверке их правильности в обучающих...
Использование трансформации программ при проверке их правильности в обучающих...
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
 

Mehr von Evgeny Smirnov

Внедряем MOOC'и на уроке информатики
Внедряем MOOC'и на уроке информатикиВнедряем MOOC'и на уроке информатики
Внедряем MOOC'и на уроке информатикиEvgeny Smirnov
 
Инновации которые не мешают
Инновации которые не мешаютИнновации которые не мешают
Инновации которые не мешаютEvgeny Smirnov
 
Мобильные приложения в школе
Мобильные приложения в школеМобильные приложения в школе
Мобильные приложения в школеEvgeny Smirnov
 
Порядок и хаос в Солнечной системе
Порядок и хаос в Солнечной системеПорядок и хаос в Солнечной системе
Порядок и хаос в Солнечной системеEvgeny Smirnov
 
Ruby: инкапсуляция и полиморфизм
Ruby: инкапсуляция и полиморфизмRuby: инкапсуляция и полиморфизм
Ruby: инкапсуляция и полиморфизмEvgeny Smirnov
 
Мобильные приложения в образовании
Мобильные приложения в образованииМобильные приложения в образовании
Мобильные приложения в образованииEvgeny Smirnov
 
Мастер-класс: LMS42, ч.2
Мастер-класс: LMS42, ч.2Мастер-класс: LMS42, ч.2
Мастер-класс: LMS42, ч.2Evgeny Smirnov
 
Мастер-класс: Anki карточки
Мастер-класс: Anki карточкиМастер-класс: Anki карточки
Мастер-класс: Anki карточкиEvgeny Smirnov
 
Мастер-класс: Quiz up
Мастер-класс: Quiz upМастер-класс: Quiz up
Мастер-класс: Quiz upEvgeny Smirnov
 
Мастер-класс: Dragonbox Algebra
Мастер-класс: Dragonbox AlgebraМастер-класс: Dragonbox Algebra
Мастер-класс: Dragonbox AlgebraEvgeny Smirnov
 
Мастер-класс: начало
Мастер-класс: началоМастер-класс: начало
Мастер-класс: началоEvgeny Smirnov
 
LMS42: основы (для мастер-класса)
LMS42: основы (для мастер-класса)LMS42: основы (для мастер-класса)
LMS42: основы (для мастер-класса)Evgeny Smirnov
 
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...Evgeny Smirnov
 
Образовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методистуОбразовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методистуEvgeny Smirnov
 
Педагогический клуб 18.10: LMS42
Педагогический клуб 18.10: LMS42Педагогический клуб 18.10: LMS42
Педагогический клуб 18.10: LMS42Evgeny Smirnov
 
Построение диаграмм по электронным таблицам
Построение диаграмм по электронным таблицамПостроение диаграмм по электронным таблицам
Построение диаграмм по электронным таблицамEvgeny Smirnov
 
Функции для работы с электронными таблицами
Функции для работы с электронными таблицамиФункции для работы с электронными таблицами
Функции для работы с электронными таблицамиEvgeny Smirnov
 
Импликация и логические уравнения
Импликация и логические уравненияИмпликация и логические уравнения
Импликация и логические уравненияEvgeny Smirnov
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисленияEvgeny Smirnov
 

Mehr von Evgeny Smirnov (20)

Внедряем MOOC'и на уроке информатики
Внедряем MOOC'и на уроке информатикиВнедряем MOOC'и на уроке информатики
Внедряем MOOC'и на уроке информатики
 
Инновации которые не мешают
Инновации которые не мешаютИнновации которые не мешают
Инновации которые не мешают
 
Мобильные приложения в школе
Мобильные приложения в школеМобильные приложения в школе
Мобильные приложения в школе
 
Порядок и хаос в Солнечной системе
Порядок и хаос в Солнечной системеПорядок и хаос в Солнечной системе
Порядок и хаос в Солнечной системе
 
Ruby: инкапсуляция и полиморфизм
Ruby: инкапсуляция и полиморфизмRuby: инкапсуляция и полиморфизм
Ruby: инкапсуляция и полиморфизм
 
Мобильные приложения в образовании
Мобильные приложения в образованииМобильные приложения в образовании
Мобильные приложения в образовании
 
Newtonew Media
Newtonew MediaNewtonew Media
Newtonew Media
 
Мастер-класс: LMS42, ч.2
Мастер-класс: LMS42, ч.2Мастер-класс: LMS42, ч.2
Мастер-класс: LMS42, ч.2
 
Мастер-класс: Anki карточки
Мастер-класс: Anki карточкиМастер-класс: Anki карточки
Мастер-класс: Anki карточки
 
Мастер-класс: Quiz up
Мастер-класс: Quiz upМастер-класс: Quiz up
Мастер-класс: Quiz up
 
Мастер-класс: Dragonbox Algebra
Мастер-класс: Dragonbox AlgebraМастер-класс: Dragonbox Algebra
Мастер-класс: Dragonbox Algebra
 
Мастер-класс: начало
Мастер-класс: началоМастер-класс: начало
Мастер-класс: начало
 
LMS42: основы (для мастер-класса)
LMS42: основы (для мастер-класса)LMS42: основы (для мастер-класса)
LMS42: основы (для мастер-класса)
 
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...
 
Образовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методистуОбразовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методисту
 
Педагогический клуб 18.10: LMS42
Педагогический клуб 18.10: LMS42Педагогический клуб 18.10: LMS42
Педагогический клуб 18.10: LMS42
 
Построение диаграмм по электронным таблицам
Построение диаграмм по электронным таблицамПостроение диаграмм по электронным таблицам
Построение диаграмм по электронным таблицам
 
Функции для работы с электронными таблицами
Функции для работы с электронными таблицамиФункции для работы с электронными таблицами
Функции для работы с электронными таблицами
 
Импликация и логические уравнения
Импликация и логические уравненияИмпликация и логические уравнения
Импликация и логические уравнения
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
 

Основы программирования на ruby

  • 1. Введение Основы программирования Простейшие программы Линейное уравнение Основы программирования на ruby Информатика 10-11 классы 28 сентября 2011 г. Информатика 10-11 классы
  • 2. Введение Основы программирования Простейшие программы Линейное уравнение Как выучить C++ за 21 день? Информатика 10-11 классы
  • 3. Введение Основы программирования Простейшие программы Линейное уравнение Что такое программирование? Программирование сродни переводу. Написать программу на языке программирования ничуть не сложнее, чем перевести фразу с русского на английский. Программа это последовательность команд, которые должен выполнить компьютер, чтобы получить нужный результат. Язык программирования, как и обычный язык, имеет свои лексические, синтаксические и семантические правила. Информатика 10-11 классы
  • 4. Введение Основы программирования Простейшие программы Линейное уравнение Введение Идея Алгоритм Блок–схема Программа :) Информатика 10-11 классы
  • 5. Введение Основы программирования Простейшие программы Линейное уравнение Переменные Для работы программе нужно запоминать некоторые значения. Например, сайт ВКонтакте запоминает данные пользователя при входе в систему. Такие значения называются переменные. Переменные могут использоваться для различных целей. Например, в цикле считать количество проходов. Пример такой переменной: количество голов в футболе. На протяжении 90 минут эта переменная меняет своё значение в соответствии с ситуацией. Переменные бывают различных типов в зависимости от запоминаемых данных. Это строки, числа и пр. Информатика 10-11 классы
  • 6. Введение Основы программирования Простейшие программы Линейное уравнение Типы переменных Название Перевод Описание, примеры integer целое число -1, 0, 1, √ 500 ... 2, float вещественное 1.05, π, 2 число string строка “мама мыла раму” boolean булевский true (истина) / false (ложь), ло- гический тип array массив группа переменных [1,5,2] hash хэш массив с текстовыми ключами { ’name’ => ’Вася’, ’age’ => 5 } object объект Информатика 10-11 классы
  • 7. Введение Основы программирования Простейшие программы Линейное уравнение Integer & Float: числа + сложение − вычитание ∗ умножение / (целочисленное) деление ∗∗ возведение в степень % остаток при делении 5 + 8 ∗ 3 + 10/2 = 5 + 24 + 5 = 34 2 ∗ ∗8 = 256 14%3 = 2 15/4 = 3 (целочисленное деление) 15.0/4 = 3.75 Информатика 10-11 классы
  • 8. Введение Основы программирования Простейшие программы Линейное уравнение Строки и логические переменные Контактация (сложение строк): “мама” + “мыла раму” = “мамамыла раму” Обратите внимание! Пробел не добавляется, надо указывать вручную: “мама ” Логические операции: && конъюнкция логическое “и” || дизъюнкция логическое “или” ! отрицание логическое “не” Информатика 10-11 классы
  • 9. Введение Основы программирования Простейшие программы Линейное уравнение Hello World! Первая программа, которую пишут начинающие программисты, Hello World. Программа делает единственную вещь: выводит на экран приветствие “Hello world!” Напишем такую программу на языке программирования ruby. Listing 1: Hello World puts " Hello world " Оператор puts выводит любое сообщение или значение переменной на экран. Информатика 10-11 классы
  • 10. Введение Основы программирования Простейшие программы Линейное уравнение Программа–Калькулятор Сосчитаем следующие величины: 1024/13 + 523 ∗ 2, остаток от деления 2351 на 37, 2100 , 2100 ∗ 50 Listing 2: Калькулятор p u t s 1024.0/13+523∗2 p u t s 2351%37 r e s = 2∗∗100 puts res p u t s r e s ∗50 Мы завели переменную res, чтобы сохранить результат 2100 . Сохранив результат единожды, мы можем его использовать дальше в программе. Знак “=” называется операцией присваивания. Информатика 10-11 классы
  • 11. Введение Основы программирования Простейшие программы Линейное уравнение Переменные Переменные позволяют хранить промежуточные результаты вплоть до завершения программы. Переменных может быть сколько угодно (практически :) ). Допустим, есть две переменные a и b. Как их поменять местами, то есть сделать значение a равным b, а b a? Listing 3: Неправильный вариант a = b b = a Ошибка заключается в том, что компьютер выполняет команды последовательно. После выполнения команды a = b обе переменные станут равными b, а значение переменной a потеряется. Информатика 10-11 классы
  • 12. Введение Основы программирования Простейшие программы Линейное уравнение Правильный вариант Простой вариант не сработал, мы “потеряли” значение переменной a. Логичное решение где-нибудь сохранить это значение. Но где? В другой переменной! Listing 4: Правильный вариант c = a a = b b = c Заметим, что в конце переменной b мы присваиваем значение переменной c, так как a уже изменило своё значение и стала равной b. Информатика 10-11 классы
  • 13. Введение Основы программирования Простейшие программы Линейное уравнение Линейное уравнение Рассмотрим чуть более сложную задачу: научим компьютер решать линейное уравнение ax + b = c. a, b, c некоторые известные величины (параметры), а x неизвестное, которое мы будем искать. Пример уравнения в числах: 2x + 6 = 10. Построение любой сложной программы прежде всего начинается с алгоритма. В нашем случае алгоритм прост: 1 Переносим b направо, чтобы все известные были справа, а неизвестные слева. 2 Делим обе части равенства на a (если a = 0). 3 Получаем значение неизвестного x и рассматриваем вариант a = 0. Следующим этапом является построение блок–схемы. Этот этап не всегда обязателен, но очень помогает начинающим не запутаться в сложных программах. Информатика 10-11 классы
  • 14. Введение Основы программирования Простейшие программы Линейное уравнение Блок–схема Ввести a, b, c нет x = (c − b)/a a == 0 b == c x любое да да нет Решений нет Информатика 10-11 классы