Загрузить КуМир версии 1.9.0: Для Windows XP/Vista/7 (32-bit) -- Для Linux

КуМир (Комплект Учебных МИРов) - система программирования, предназначенная для поддержки начальных курсов информатики и программирования в средней и высшей школе.

Особенности системы КуМир

  • В системе КуМир используется школьный алгоритмический язык с русской лексикой и встроенными исполнителями Робот и Чертёжник.
  • При вводе программы КуМир осуществляет постоянный полный контроль ее правильности, сообщая на полях программы об всех обнаруженных ошибках.
  • При выполнении программы в пошаговом режиме КуМир выводит на поля результаты операций присваивания и значения логических выражений. Это позволяет ускорить процесс освоения азов программирования.
  • Кумир работает в операционных системах Windows или Linux.

Система Кумир разработана в НИИСИ РАН по заказу Российской Академии Наук и распространяется свободно на условиях лицензии GNU 2.0.

Данная лицензия разрешает вам или вашей организации бессрочно использовать КуМир на любом количестве компьютеров в любых целях без оформления каких либо дополнительных документов.

________________________________________
Разложение натурального числа на простые множители
Тема:  Циклы
Пользователь вводит число. Необходимо разложить его на простые числа.
Так как в КуМир есть только команда "выход" (аналог break) и нет команд-аналогов для continue и goto, то программа будет выглядеть немного сложнее, чем она была бы при их наличии.
Внешний цикл будет продолжаться до тех пор, пока исходное число не будет в результате деления на простые сомножители сведено к 1.
Внутренний цикл будет бесконечный. Выход из него будет осуществляться по команде "выход", когда найден очередной простой делитель.
Когда простой делитель найден, надо как-то "сообщить", что при новом выполнении этого внутреннего цикла поиск простых делителей надо начинать сначала. Для этого используется флаговая переменая (в данном случае "ф").
Сам алгоритм поиска простых делителей сводится к последовательному делению исходного числа на подряд идущие натуральные числа от 2. Первое число, на которое нацело делится исходное, и есть его очередной простой сомножитель.

алг простые сомножители 
нач
  цел ч, п, ф
  ввод ч
  ф := 1
  нц пока ч > 1 
    нц пока да
      если ф = 1 то
        п := 2
        ф := 0
      все
      если mod(ч,п) = 0 то 
        ч := div(ч,п)
        вывод п, " "
        ф := 1
        выход
       иначе
        п := п + 1
      все
    кц
  кц
кон
________________________________________
Программа-калькулятор (КуМир)
Тема:  Циклы
Написать программу, выполняющую арифметические операции (сложение, вычитание, умножение и деление) над двумя вещественными числами. Программа должна выполняться в цикле до тех пор, пока пользователь не введет определенный знак.
Одной из особенностей решения является то, что символьная переменная, в которую записывается знак операции, играет также роль сигнала о прекращении вычислений. Поэтому пользователю предлагается сначала ввести знак операции, а потом уже числа, если не был введен символ, сигнализирующий о завершении операций.

алг простейший калькулятор
нач
  вещ x,y
  сим s
  нц пока да 
    вывод "Знак: "
    ввод s
    если s='0' то выход все
    если s='+' или s='-' или s='*' или s='/' то
      вывод "x="
      ввод x
      вывод "y="
      ввод y
      выбор 
        при s='+': вывод x+y, нс
        при s='-': вывод x-y, нс
        при s='*': вывод x*y, нс
        при s='/': 
          если y=0 то вывод "Деление на ноль!", нс
           иначе вывод x/y, нс
          все
      все
     иначе
      вывод "Неверный знак операции", нс
    все
  кц
кон
Пример выполнения программы
Знак: +
x=5.67
y=-4
1.67
Знак: /
x=5
y=0
Деление на ноль!
Знак: )
Неверный знак операции
Знак: /
x=3
y=10
0.3
Знак: 0
________________________________________
Проверка гипотезы Сиракуз
Тема:  Циклы
Возьмем любое натуральное число. Если оно четное, то разделим его на 2. Если оно нечетное, то умножим на 3, прибавим 1 и затем разделим на 2. Результат этих операций также будем проверять на четность и выполнять первое или второе действие. Гипотеза Сиракуз утверждает, что рано или поздно мы получим из единицу.
Напишем программу, которая проверяет гипотезу Сиракуз для числа, которое вводит пользователь. Пока число не сведется к единице будем либо делить его на 2 (если оно четно), либо умножать на 3, прибавлять 1 и делить на 2. Если гипотеза Сиракуз верна, то рано или поздно цикл остановится.

алг сиракуз
нач
  цел n
  ввод n
  нц пока n <> 1
    если mod(n,2) = 0 то
      n := div(n,2)
     иначе
      n :=  div((3*n+1),2)
    все
    вывод n, ' '
  кц
кон

Пример выполнения программы:
111
167 251 377 566 283 425 638 319 479 719 1079 1619 2429 3644 1822 911 1367 2051
3077 4616 2308 1154 577 866 433 650 325 488 244 122 61 92 46 23 35 53 80 40 
20 10 5 8 4 2 1