Различия между версиями 7 и 8
Версия 7 от 2011-11-16 13:29:19
Размер: 4325
Редактор: FrBrGeorge
Комментарий:
Версия 8 от 2011-11-19 22:51:44
Размер: 4387
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 19: Строка 19:
    [[attachment:genvoc.py]]
Строка 31: Строка 32:
    [[attachment:transpon.py]]

Функции, случайные числа, генераторы тестов для задач

Первая часть разговора про функции.

  • Многострочные и необработанные строки
  • Вызов функции и фактические параметры
  • Задание функции и формальные параметры
  • Модуль random

  • Проблема генератора тестов

Домашнее задание

  1. {i} Прочитать в учебнике про определение функций ( {*} можно и следующую главу), а в документации — про модуль random

  2. Произносимые слова. Сгенерировать несколько «произносимых» слов случайной длины по принципу:
    1. Согласная-гласная-согласная... и т. п.
    2. Слог-слог-слог... и т. п., где каждый слог состоит из разумного числа гласных и согласных
    3. ...то же самое с учётом частоты употребления различных букв
  3. Транспонировать матрицу, т. е. ввести таблицу (список списков или список строк, по желанию) и вывести её отраженной относительно главной диагонали, например:
      />>>>>\              /|||||\
      |  A  |              >  D  <
      | B C |              > B F <
      |D   E| превратить в >A   H<
      | F G |              > C G <
      |  H  |              >  E  <
      \<<<<</              \|||||/
    • оформить в виде функции
    • написать функцию-генератор каких-нибудь красивых таблиц, вроде приведённой
  4. Написать программу, реализующую бинарное возведение в степень для любой заданной функции (например, для возведения в степень и для умножения строки на число путём сложения строк, при этом умножение чисел и сложение строк оформляются как функции)

  5. MCCME. Первая последовательность состоит из одного числа K. Каждая следующая последовательность чисел описывает предыдущую по такому правилу (пример для K=2):

            2       Исходная последовательность
            1 2     Одна «двойка»
            1 1 1 2 Одна «единица», одна «двойка»
            3 1 1 2 Три «единицы», одна «двойка»
            1 3 2 1 1 2     Одна «тройка», две «единицы», одна «двойка»
            1 1 1 3 1 2 2 1 1 2     Одна «единица», одна «тройка», одна «двойка», две «единицы», одна «двойка»
    Напишите программу, которая по исходному числу K напечатает N-ую получающуюся последовательность.
    • Это «именная» последовательность, у неё имеется автор. Кто?

Условные обозначения

  • {o} — тема по Linux

  • <!> ­— необязательная тема

  • {i} — теоретическое задание

  • {*} — тема для самостоятельного изучения


CategoryClass CategoryVmsh

LecturesVMSH/2011-11-16 (последним исправлял пользователь FrBrGeorge 2011-11-20 12:22:00)