- •1. Формулировка задачи
- •2. Представление данных и ограничения
- •3. Описание функций программы
- •3.1. Иерархическая схема
- •3.2. Прототипы функций
- •4. Алгоритм решения задачи
- •5. Тестовые наборы данных и реакции
- •6. Исходный текст программы
- •Описание тестирования программы
- •Анализ работы по решению задачи
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ
«МИФИ»
Факультет автоматики и электроники
Кафедра электроники
Отчет
По лабораторной работе № 1 “ Поиск битового образа”
курса “Основы информатики”
студента группы А1-05
Гельмана Ю. В.
Москва 2011
Содержание
1. |
Формулировка задачи |
3 |
2. |
Представление данных и ограничения |
4 |
3. |
Описание функций программы |
5 |
3.1. |
Иерархическая схема |
5 |
3.2. |
Прототипы функций |
6 |
4. |
Алгоритм решения задачи |
7 |
5. |
Тестовые наборы данных и реакции |
12 |
6. |
Исходный текст программы |
13 |
7. |
Описание тестирования программы |
18 |
8. |
Анализ работы по решению задачи |
24 |
1. Формулировка задачи
Составить алгоритм и написать на языке Си программу, осуществляющую следующие действия.
Вводится последовательность строк символов не длиннее 16 символов. Каждая строка считается числом (кодом) в двоичной системе и после ввода преобразуется в unsigned int. Допустимые символы в строке: "0", "1". Первая строка длиной не более 5 символов (битов) задает битовый образ для поиска в последующих строках. Максимальное количество строк равно 8. Для каждой входной строки, начиная со 2-й, попытаться найти битовый образ, задаваемый 1-й строкой (а не подстроку в строке символов), и подсчитать количество вхождений образа в 16-битовое слово (unsigned int). Сформировать также статистическую информацию.
Предусмотреть режимы ввода/вывода: только экран и клавиатура, ввод из текстового файла и вывод в текстовый файл с отображением диалога на экране.
2. Представление данных и ограничения
Таблица 2.1. Данные и ограничения
Имя константы или переменной |
Вид |
Тип |
Глобальная или локальная в функции |
Область допустимых значений |
Особые ситуации и реакции на них |
dlina |
константа |
int |
глобальная |
20 |
Максимальная длинна строки - берется с запасом, т.к. в строку могут входит дополнительные символы, такие как конец строки и т.д. |
b[8] |
массив |
unsigned int |
глобальная |
unsigned int |
Двоичные коды строк. |
l[8] |
массив |
unsigned int |
глобальная |
l[i]<=16 |
Длинны строк. |
c[7] |
массив |
unsigned int |
глобальная |
unsigned int |
Количество вхождений образа в строки. |
maska |
переменная |
unsigned int |
глобальная |
unsigned int |
Начальное число, вводимое пользователем. Выход за ОДЗ невозможен. |
m |
переменная |
unsigned int |
глобальная |
От 2 до 8 |
Количество строк. |
d[dlina] |
промежуточная переменная |
char |
Readwritefile Readwritecons |
char |
Числа в виде строк символов. |
r |
промежуточная переменная |
int |
Readwritefile Readwritecons |
int |
Счетчик значения двоичного разряда в 10-ой СС. |
e |
промежуточная переменная |
int |
raschet |
int |
Текущая обрабатываемая строка. |
obr |
промежуточная переменная |
int |
raschet |
2^5 |
Битовый образ первой строки. |