Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Inf-kaSbkDomZad_A5_Vse1.doc
Скачиваний:
0
Добавлен:
14.04.2019
Размер:
314.37 Кб
Скачать

Int BitLongHist(

long arr[], /* массив длинных целых - область подсчета */

Int len, /* длина этого массива */

long hist[32] /* счетчики 1-битов в каждом двойном слове */

);

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

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

long BitFileHist( char *fn, /* имя файла - области подсчета */

long hist[8] /* счетчики 1-битов в каждом байте */

);

/* Подсчитывает количество единиц в каждом бите для всех байтов файла fn, накапливая их в массиве hist[], где индексом массива служит номер бита в байте и возвращает длину файла в байтах. При ошибке во входных параметрах возвращает -1, -2,... по типу ошибки (доопределить самостоятельно). В main() предусмотреть вывод времени исполнения функции в тиках. */

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

int ChStrHist( char *str, /* текст строки - области подсчета */

int hist[256] /* счетчики одинаковых байтов */

);

/* Подсчитывает количество байтов с одинаковым значением для всех байтов строки str, накапливая их в массиве hist[], где индексом массива служит значение байта. Возвращает длину строки. В main() предусмотреть вывод времени исполнения функции в тиках. */

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

int ChArrHist( char arr[], /* массив байтов - области подсчета */

int len, /* длина массива байтов */

int hist[256] /* счетчики одинаковых байтов */

);

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

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

int IntArrHist(

int arr[], /* массив слов - области подсчета */

int len, /* длина массива слов */

int hist0[256], /* счетчики одинаковых младших байтов */

int hist1[256] /* счетчики одинаковых старших байтов */

);

/* Подсчитывает количество байтов с одинаковым значением для всех байтов массива arr[], накапливая их в массивах hist0[] и hist1[], где индексом массива служит значение байта. При ошибке во входных параметрах возвращает -1, -2,... по типу ошибки (доопределить самостоятельно), иначе 0. В main() предусмотреть вывод времени исполнения функции в тиках. */

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

long ChFileHist( char *fn, /* имя файла - области подсчета */

long hist[256] /* счетчики одинаковых байтов */

);

/* Подсчитывает количество байтов с одинаковым значением для всех байтов файла fn, накапливая их в массиве hist[], где индексом массива служит значение байта и возвращает длину файла. При ошибке во входных параметрах возвращает -1, -2,... по типу ошибки (доопределить самостоятельно). В main() предусмотреть вывод времени исполнения функции в тиках. */

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

int TPutBitLong( int x, int y, /* координаты вывода */

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

int term, /* код символа-разделителя тетрад */

int na, /* атрибут цифр */

int ta /* атрибут символа-разделителя */

);

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

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

int TPutOctLong( int x, int y, /* координаты вывода */

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

int term, /* код символа-разделителя триад */

int na, /* атрибут цифр */

int ta /* атрибут символа-разделителя */

);

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

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

int TPutDecLong( int x, int y, /* координаты вывода */

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

int term, /* код символа-разделителя триад */

int na, /* атрибут цифр */

int ta /* атрибут символа-разделителя */

);

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

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

int TPutHexLong( int x, int y, /* координаты вывода */

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

int term, /* код символа-разделителя тетрад */

int na, /* атрибут цифр */

int ta /* атрибут символа-разделителя */

);

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

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

int TPutHist8( int y, /* номер строки вывода на экране */

long hist[8], /* счетчики 8 каналов */

int sym, /* символ гистограммы */

int ca, /* атрибут имени канала */

int ha, /* атрибут гистограммы */

int da, /* атрибут значения счетчика */

int pa /* атрибут доли счетчика в процентах */

);

/* В текстовом режиме начиная со строки y выводит 8 строк гистограммы по следующему шаблону (sym = '*', i - номер канала с 0):

hist[i]!************* 13 35.6 %.

имя гистограмма значение счетчика

канала канала доля счетчика

При необходимости проводит масштабирование и в этом случае выводит дополнительную 9-ю строку по следующему шаблону:

Каждый символ "*" = 3 (коэффициент масштаба)

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

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

int TPutHist( int hist[], /* счетчики каналов */

int hmax, /* количество каналов */

int lines, /* количество строк показа */

int sym, /* символ гистограммы */

int ca, /* атрибут имени канала */

int ha, /* атрибут гистограммы */

int da, /* атрибут значения счетчика */

int pa /* атрибут доли счетчика в процентах */

);

/* В текстовом режиме начиная со строки 0 экрана выводит lines строк гистограммы по следующему шаблону (sym = '*', i - номер канала с 0):

hist[i]!************ 12 17.1 %.

имя гистограмма значение счетчика

канала канала доля счетчика

Реакция на управляющие клавиши:

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

kbPGUP - на (lines-1) строк вверх по массиву hist[];

kbPGDN - на (lines-1) строк вниз по массиву hist[];

kbHOME - показ первых lines строк;

kbEND - показ последних lines строк;

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

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

int TFrameDraw(

int x, int y, /* координаты рамки */

int xend, int yend,

int fsym, /* начальный символ рамки */

int tsym, /* символ-заполнитель ее внутренности */

int sa, /* атрибут "чистого" экрана */

int fa, /* атрибут символа рамки */

int ta /* атрибут символа-заполнителя */

);

/* В текстовом режиме очищает экран и рисует прямоугольную рамку символом fsym с заполнением ее внутренности символом tsym с указанными атрибутами. После этого ожидает нажатия любой клавиши: при нажатии kbESC очищает весь экран и выходит, при любой другой - код этой клавиши становится символом fsym и рисуется новая рамка. При нормальном входе возвращает 0, при ошибке во входных параметрах сразу возвращает -1, -2,... по типу ошибки (доопределить самостоятельно). */

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

int TFrameSize(

int x, int y, /* координаты рамки */

int xend, int yend,

int fsym, /* начальный символ рамки */

int tsym, /* символ-заполнитель ее внутренности */

int fa, /* атрибут символа рамки */

int ta /* атрибут символа-заполнителя */

);

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

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

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

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

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

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

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

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

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

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

int TFrameMove(

int x, int y, /* координаты рамки */

int xend, int yend,

int fsym, /* начальный символ рамки */

int tsym, /* символ-заполнитель ее внутренности */

int fa, /* атрибут символа рамки */

int ta /* атрибут символа-заполнителя */

);

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

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

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

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

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

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

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

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

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

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

int far GStrRunXR(

int left, int top, /* координаты рамки со строкой */

int right, int bottom, /* показа на экране */

char far *text, /* текст строки сообщения */

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

int tcolor, /* цвет текста, */

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

);

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

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

int far GStrRunXL(

int left, int top, /* координаты рамки со строкой */

int right, int bottom, /* показа на экране */

char far *text, /* текст строки сообщения */

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

int tcolor, /* цвет текста, */

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

);

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

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

int far GStrRunYD(

int left, int top, /* координаты рамки со строкой */

int right, int bottom, /* показа на экране */

char far *text, /* текст строки сообщения */

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

int tcolor, /* цвет текста, */

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

);

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

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

int far GStrRunYU(

int left, int top, /* координаты рамки со строкой */

int right, int bottom, /* показа на экране */

char far *text, /* текст строки сообщения */

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

int tcolor, /* цвет текста, */

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

);

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

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

int far GPutBitLong( int x, int y, /* координаты вывода */

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

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

int dcolor, /* цвет цифр */

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

);

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

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

int far GPutOctLong( int x, int y, /* координаты вывода */

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

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

int dcolor, /* цвет цифр */

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

);

/* В графическом режиме выводит число num в 8-системе счисления группами по 3 цифры (триадами), отделяя их друг от друга символом term с указанными цветами и возвращая 0. Разбиение на триады производится справа налево. В неполной триаде всегда выводятся левые нули. При ошибке во входных параметрах возвращает -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, /* цвет штриховки, */

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,... по типу ошибки. */

Задача 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,... по типу ошибки. */

Задача 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,... по типу ошибки (доопределить самостоятельно). */

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]