Последнее обновление:

Задания, 11 класс, 2005-2006 учебный год

Задание 33 от 14/10/2005

Реализовать программу построения графиков функций. Программа дожна строить графики трёх жёстко зашитых в тело программы функций. В коде должно быть четыре константы: максимальные и минимальные координаты по осям X и Y, которые совпадают с границами окна. Вот картинка:

   +-----------------+-+-+-+
   | Window title    |_|O|X|
   +-----------------+-+-+-+ <-- MaxY
   |                       |
   |                       |
   |                       |
   |                       |
   |                       |
   |                       |
   +-----------------------+ <-- MinY
   ^                       ^
   |                       |
   MinX                    MaxX
При изменении размеров окна график должен подстраиваться под новые размеры: координаты на границах окна меняться не должны.

Задание 34 от 28/10/2005

Нарисовать снежинку Коха. Толщина линии и порядок снежинки должны задаваться из диалогового окна программы.

Задание 35 от 28/10/2005

Нарисовать ковёр (салфетку) Серпинского. Толщина линии и порядок фрактала должны задаваться из диалогового окна программы. Эту задачу допустимо совместить с предыдущей в один исполняемый модуль.

Задание 36 от 18/11/2005

Нарисовать трёхцветное множество притяжения корней метода Ньютона для функции z3 - 1. В программе должны задаваться 5 параметров: максимальное количество итераций метода Ньютона и значения XMin, XMax, YMin, YMax как в задании 34. Дополнительно можно рассмотреть другие функции и раскрашивать плоскость в различные оттенки, в зависимости от количества итераций.

Задание 37 от 25/11/2005

Изобразить в перспективной проекции пять платоновых тел в виде каркасов.

Задание 38 от 02/12/2005

Добавить в предыдущую задачу непрерываное вращение каждого из тел.

Задание 39 от 02/12/2005

Нарисовать множества Мандельброта и Жюлиа.

Задание 40 от 09/12/2005

Нарисовать часы со стрелками.

Задание 41 от 27/01/2006

Реализовать три довольно стандартных шаблона HTML-страниц не прибегая к средствам CSS.

Первый, «навигация слева», «содержание справа»:
+----------+-----------------------------------------------+
| Ссылка 1 | Lorem Ipsum is simply dummy text of the       |
| Ссылка 2 | printing and typesetting industry. Lorem Ipsum|
| Ссылка 3 | has been the industry's standard dummy text   |
| Ссылка 4 | ever since the 1500s, when an unknown printer |
| Ссылка 5 | took a galley of type and scrambled it to make|
|          | a type specimen book. It has survived not only|
|          | five centuries, but also the leap into        |
|          | electronic typesetting, remaining essentially |
|          | unchanged. It was popularised in the 1960s    |
|          | with the release of Letraset sheets containing|
|          | Lorem Ipsum passages, and more recently with  |
|          | desktop publishing software like Aldus        |
|          | PageMaker including versions of Lorem Ipsum   |
+----------+-----------------------------------------------+
Навигационные ссылки должны занимать наименьшее горизонтальное пространство и быть прижаты к верху страницы. Содержание также прижато у верху страницы. Прямоугольник со ссылками и прямоугольник с содержанием имеют различные цвета. Текст основного содержания отделён от левой границы промежутком в 10-15 пикселей.

Второй, «шапка», «левая навигация» плюс «подвал»:
+----------+-----------------------------------------+-----+
|             Что такое Lorem Ipsum?                 |Поиск|
+----------+-----------------------------------------+-----+
| Ссылка 1 | Lorem Ipsum is simply dummy text of the       |
| Ссылка 2 | printing and typesetting industry. Lorem Ipsum|
| Ссылка 3 | has been the industry's standard dummy text   |
| Ссылка 4 | ever since the 1500s, when an unknown printer |
| Ссылка 5 | took a galley of type and scrambled it to make|
|          | a type specimen book. It has survived not only|
|          | five centuries, but also the leap into        |
|          | electronic typesetting, remaining essentially |
|          | unchanged. It was popularised in the 1960s    |
|          | with the release of Letraset sheets containing|
|          | Lorem Ipsum passages, and more recently with  |
|          | desktop publishing software like Aldus        |
|          | PageMaker including versions of Lorem Ipsum   |
+----------+-----------------------------------------------+
|                (c) Скопировано правильно                 |
+----------+-----------------------------------------------+
Слово «поиск» прижато вправо, весь остаток ширины отдан под заглавие, которое центрировано.

Третий, «шапка», «верхняя навигация», «содержание»:
+----------------------------------------------------------+
|Лого, типа                          Что такое Lorem Ipsum?|
+----------------------------------------------------------+
|               Ссылка 1  Ссылка 2  Ссылка 3               |
+----------------------------------------------------------+
| Lorem Ipsum is simply dummy text of the printing and     |
| typesetting industry. Lorem Ipsum has been the industry's|
| standard dummy text ever since the 1500s, when an unknown|
| printer took a galley of type and scrambled it to make a |
| type specimen book. It has survived not only five        |
| centuries, but also the leap into electronic typesetting,|
| remaining essentially unchanged. It was popularised in   |
| the 1960s with the release of Letraset sheets containing |
| Lorem Ipsum passages, and more recently with desktop     |
| publishing software like Aldus PageMaker including       |
| versions of Lorem Ipsum                                  |
+----------+-----------------------------------------------+
Фраза «Лого, типа» прижата влево, заглавие прижато вправо. Ссылки центрированы. Заглавие и навигация занимают минимальное по-высоте пространство.

Задание 42 от 10/02/2006

Написать CGI-программу, которая решает уравнение f(x) = 0 методами деления отрезка пополам, хорд и касательных (Ньютона). На входе программе через HTML-форму указываются:

На выходе CGI-программа формирует HTML-страницу с результатами своей работы. Метод передачи параметров CGI-скрипту — GET.

Задание 43 от 03/03/2006

Написать CGI-программу для игры с компьютером в крестики-нолики на поле 3x3. Сначала у пользователя запрашивается, крестиками или ноликами он будет играть, далее происходит сама игра. Последний сделаный компьютером ход нужно выделять (цветом, начертанием шрифта, как-то ещё). Компьютер не должен проигрывать.

Метод передачи параметров CGI-скрипту — POST.

Задание 44 от 17/03/2006 (необязательное)

Написать программу для приведения типов, заданых с помощью (немного урезанного) оператора typedef к их базовому типу.

Пусть синтаксис нашего оператора typedef таков:

typedef тип синоним;
При этом «тип» состоит из имени типа (возможно, определённого посредством ещё одного typedef) и любого количества символов «*» в конце. Операторов typedef может быть несколько. Имя типа подчиняется стандартным правилам именования типов языка C. Задача заключается в том, чтобы пройти по цепочке typedef'ов и раскрыть определение данного типа данных через эти typedef'ы (дойти до базового типа). Базовыми типами считаются такие, для которых нет определения через typedef.

Пример: пусть у нас есть следующая цепочка,

typedef alpha* al_ptr;
typedef beta** b2_ptr;
typedef al_ptr** gamma;
Тогда существуют следующие приведения типов к базовым:
gamma ⇒ alpha***
b2_ptr ⇒ beta**
al_ptr ⇒ alpha*
И есть ещё множество тривиальных следствий, например gamma** ⇒ alpha*****.

Сама программа должна читать файл, в котором на каждой строчке перечислены операторы typedef, проверять правильность синтаксиса и ждать ввода с клавиатуры. Каждое вводимое имя типа программа должна преобразовывать к базовому. Во вводимом имени типа может присутствовать несколько символов «*» в конце, как в примере gamma** ⇒ alpha*****. Если программа встречает неизвестный (не определённый с помощью typedef) тип, она должна оставлять его в покое, поскольку он уже является базовым.

Больше заданий, слава Богу, нет