Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шереметев Информатика. Сборник домашних заданий 2009

.pdf
Скачиваний:
29
Добавлен:
16.08.2013
Размер:
944.56 Кб
Скачать

выводятся левые нули. При ошибке во входных параметрах воз-

вращает -1, -2,... по типу ошибки (доопределить самостоятельно).

*/

Задача 2.43. Написать тестирующую main() и следующую функцию

int far GPutDecLong( int

x, int y,

/* координаты вывода

*/

long

num,

/* число для вывода

*/

int

term,

/* символ-разделитель триад */

int

dcolor,

/* цвет цифр

*/

int

tcolor

/* цвет символа-разделителя */

);

 

 

 

/* В графическом режиме выводит число num в 10-системе счисления группами по 3 цифры (триадами), отделяя их друг от друга символом term с указанными цветами и возвращая 0. Разбиение на триады производится справа налево. Перед выводом цифр выводит знак числа: "+" или "-". При ошибке во входных параметрах воз-

вращает -1, -2,... по типу ошибки (доопределить самостоятельно).

*/

Задача 2.44. Написать тестирующую main() и следующую функцию

int far GPutHexLong( int

x, int y,

/* координаты вывода

*/

long

num,

/* число для вывода

*/

int

term,

/* символ-разделитель тетрад */

int

dcolor,

/* цвет цифр

*/

int

tcolor

/* цвет символа-разделителя

*/

);

 

 

 

/* В графическом режиме выводит число num в 16-системе счисления группами по 4 цифры (тетрадами), отделяя их друг от друга символом term с указанными цветами и возвращая 0. Разбиение на тетрады производится справа налево. В левой тетраде всегда выводятся левые нули. При ошибке во входных параметрах возвращает -1, -2,... по типу ошибки (доопределить самостоятельно).*/

Задача 2.45. Написать тестирующую main() и следующую функцию

int far GFrameSize(

 

 

 

 

int far

*left,

int far

*top,

/* входные и выходные */

int far

*right, int far

*bottom,

/* координаты рамки

*/

int

pattern,

/* код штриховки внутри рамки,

*/

int

fcolor,

/* цвет рамки,

 

*/

int

pcolor,

/* цвет штриховки,

*/

51

int bcolor /* цвет фона, все на время функции

*/

);

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

kbESC

- выходит из функции;

kb0...kb9

- установить step = 1...10;

kbUP

- увеличить на step высоту рамки;

kbDN

- уменьшить на step высоту рамки;

kbRT

- увеличить на step ширину рамки;

kbLT

- уменьшить на step ширину рамки;

kbHOME

- восстановить исходные размеры рамки.

При нормальном входе возвращает 0 и текущие координаты рамки, при ошибке во входных параметрах сразу возвращает -1, -2,... по типу ошибки (доопределить самостоятельно). */

Задача 2.46. Написать тестирующую main() и следующую функцию

int far GFrameMove(

 

 

 

int far

*left,

int far

*top,

/* входные и выходные */

int far

*right, int far

*bottom,

/* координаты рамки

*/

int

pattern,

/* код штриховки внутри рамки,

*/

int

fcolor,

/* цвет рамки,

 

*/

int

pcolor,

/* цвет штриховки,

*/

int

bcolor

/* цвет фона, все на время функции

*/

 

 

 

);

 

 

 

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

kbESC

- выходит из функции;

kbF1...kbF10 - установить step = 1...10;

kbUP

- сдвинуть рамку на step позиций вверх;

kbDN

- сдвинуть рамку на step позиций вниз;

kbRT

- сдвинуть рамку на step позиций вправо;

kbLT

- сдвинуть рамку на step позиций влево;

kbHOME

- восстановить исходное положение рамки.

При нормальном входе возвращает 0, при ошибке во входных параметрах сразу возвращает -1, -2,... по типу ошибки. */

52

Задача 2.47. Написать тестирующую main() и следующую функцию

int TBitDiagram( char

arr[],

/* массив байтов - символов текста */

int

len,

/* его длина

*/

int

na,

/* атрибут имени "бит Х"

*/

int

da

/* атрибут линии диаграммы

*/

);

 

 

 

/* В текстовом режиме начиная со строки 0 экрана выводит массив байтов и его битовую диаграмму по следующему шаблону:

Массив байтов - символов:

 

 

 

 

1 2

3

4

5

6

7 8

9

0

Битовая диаграмма

байтов:

 

 

 

 

+-+ +---------+

 

бит 0

-+ +---+

 

 

 

+--

 

+-+

+---+ +--+

 

бит 1

---+ +--+

 

 

+-+

+--

 

 

...

 

 

 

 

 

 

++

+

----

 

+

++

+

--

бит 7

-++--

+

 

 

+---

++-+

 

в норме возвращая 0, а при ошибке -1, -2.,... по типу ошибки. */ Задача 2.48. Написать тестирующую main() и следующую

функцию

int far GBitDiagram( int

arr[],

/* массив слов

*/

int

len,

/* его длина

*/

int

ncolor,

/* цвет имени "бит Х"

*/

int

dcolor

/* цвет линии диаграммы */

);

 

 

 

/* В графическом режиме начиная со строки 0 экрана выводит массив слов и его битовую диаграмму по следующему шаблону:

Массив слов (16-система):

 

 

 

8AF1

 

D3C2

47A5

5C43

A8F6

Битовая диаграмма слов:

 

 

 

 

+---

+

 

+---------

 

+

бит 0

-+

+

----

+

 

+--

 

 

+

----

+

+------

 

бит 1

-----+

 

+-----

+

 

 

 

...

 

 

 

 

+-------

 

+

 

+

--

бит F

-+

 

+

---------

+

 

в норме возвращая 0, а при ошибке -1, -2,... по типу ошибки. */

53

Задача 2.49. Написать тестирующую main() и следующую функцию

int far GCircHist( int

x, int y,

/* координаты центра

*/

int

radius

/* радиус окружности

*/

int

hist[],

/* счетчики гистограммы

*/

int

len,

/* количество счетчиков: 2...14

*/

int

bcolor,

/* цвет фона

*/

int

fcolor

/* цвет обводки круговых секторов */

);

 

 

 

/* В графическом режиме выводит круговую гистограмму, предварительно отсортировав значения счетчиков в невозрастающем порядке и раскрашивая каждый круговой сектор, соответствующий счетчику, очередным цветом палитры, исключая цвета bcolor и tcolor. Затем справа от круга выводит долю каждого счетчика в процентах и небольшой квадрат, закрашенный тем же цветом, что и соответствующий сектор гистограммы. В норме возвращает сумму счетчиков, иначе -1, -2,... по типу ошибки (доопределить самостоятельно). */

54

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1.681.3 Фигурнов В.Э. IBM PC для пользователя. Изд. 1-5-е, Ф49 исправл. и доп. – М.: Финансы и статистика, 1990-

1994.

2.681.3 Шадур А.И. и др. Персональный компьютер для Ш16 начинающих. Диалоговые оболочки MS-DOS. – М.:

МИП "Память", 1992.

3.681.3 Мурохи С.В. Операционная система MS-DOS. – М.:

М58 МИП "Память", 1992.

4.681.3 Малютин Э.А. Введение в операционную систему М24 MS-DOS. – М.: МИП "Память", 1991.

5.681.3 Керниган Б., Ритчи Д. Язык программирования К36 Си/Пер. с англ. – М.: Финансы и статистика, 1992.

6.519 Трой Д. Программирование на языке Си для персоТ70 нального компьютера IBM PC/Пер. с англ. – М.:

Радио и связь, 1991.

7.519 Бочков С.О., Субботин А.В. Язык программироваБ89 ния Си для персонального компьютера. – М.: СП

"Диалог", Радио и связь, 1990.

8.681.3 Григорьев А. Программирование на языке Си для Г83 персональных компьютеров. – М.: Диалог-МИФИ,

1992. – Вып.4, 5 (Графика на экране).

9.519.682 Прокофьев Б.П., Сухарев Н.Н., Храмов Ю.И. ГрафиП80 ческие средства Turbo C и Turbo C++. – М.: Финан-

сы и статистика, СП "Ланит", 1990.

10.681.3 Джордейн Р. Справочник программиста персональД42 ных компьютеров типа IBM PC, XT и AT/Пер. с

англ. – М.: Финансы и статистика, 1992.

11.519.682 Язык Си для профессионалов/По материалам кн. Г. Я41 Шилдта/Пер. с англ. – М.: И.В.К.-Софт, 1992.

55

ОГЛАВЛЕНИЕ

Задачи для студентов групп А1-04, 05…………………….……3 Задачи для студентов групп А2-04, 05…………………….…..36 Список рекомендуемой литературы……………………….…..55

Александр Иванович Шереметьев

Информатика

Сборник домашних заданий

Редактор и технический редактор М.В. Макарова

Подписано в печать 29.04.2009.

 

Формат 60 х 84 1/16.

Уч.-изд. л. 3,5

Печ. л. 3,5

Тираж 200 экз.

Изд. № 035-1.

Заказ № 203

Московский инженерно-физический институт (государственный университет).

Типография МИФИ. 115409, г. Москва, Каширское ш., 31