Шереметев Информатика. Сборник домашних заданий 2009
.pdfвыводятся левые нули. При ошибке во входных параметрах воз-
вращает -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