Тестовые наборы данных и реакции




Отчет

По лабораторной работе № 1 “ Поиск битового образа”

курса “Основы информатики”

Студента группы А1-05

Гельмана Ю. В.

 

 

Москва 2011

Содержание

 

1. Формулировка задачи  
2. Представление данных и ограничения  
3. Описание функций программы  
3.1. Иерархическая схема  
3.2. Прототипы функций  
4. Алгоритм решения задачи  
5. Тестовые наборы данных и реакции  
6. Исходный текст программы  
7. Описание тестирования программы  
8. Анализ работы по решению задачи  

 

Формулировка задачи

 

Составить алгоритм и написать на языке Си программу, осуществляющую следующие действия.

Вводится последовательность строк символов не длиннее 16 символов. Каждая строка считается числом (кодом) в двоичной системе и после ввода преобразуется в unsigned int. Допустимые символы в строке: "0", "1". Первая строка длиной не более 5 символов (битов) задает битовый образ для поиска в последующих строках. Максимальное количество строк равно 8. Для каждой входной строки, начиная со 2-й, попытаться найти битовый образ, задаваемый 1-й строкой (а не подстроку в строке символов), и подсчитать количество вхождений образа в 16-битовое слово (unsigned int). Сформировать также статистическую информацию.

Предусмотреть режимы ввода/вывода: только экран и клавиатура, ввод из текстового файла и вывод в текстовый файл с отображением диалога на экране.


 

Представление данных и ограничения

 

Таблица 2.1. Данные и ограничения

Имя константы или переменной Вид Тип Глобальная или локальная в функции Область допустимых значений Особые ситуации и реакции на них
dlina константа int глобальная   Максимальная длинна строки - берется с запасом, т.к. в строку могут входит дополнительные символы, такие как конец строки и т.д.
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 Битовый образ первой строки.

 

 


 

 

Описание функций программы

Иерархическая схема

 

main - основная функция

printf - стандартный форматный вывод

scanf - стандартный форматный ввод

readwritefile – ввод и первичная обработка необходимых значений из файла

fopen – открытие файла для чтения

fgets – считывание символа из файла

strlen – нахождение длинны строки

printf - стандартный форматный вывод

printf - стандартный форматный вывод

fclose – закрытие файла

readwritecons - ввод и первичная обработка необходимых значений с клавиатуры

printf - стандартный форматный вывод

scanf - стандартный форматный ввод

fgets – считывание символа

mask – создание маски битового образа

raschet – подсчет количества вхождений битового образа в каждую из строк

printf - стандартный форматный вывод

vivod – вывод данных на экран или в файл

printf - стандартный форматный вывод (14 вызовов)

fopen – открытие файла для записи

fclose – закрытие файла

 

printf - стандартный форматный вывод

scanf - стандартный форматный ввод

 

 


 

Прототипы функций

 

Void readwritefile(b, l, m)

/*****

Вход: Значение ‘f’ переменной k.
Действие: Считывает из файла строки в массив char d[dlina]. Длину строки записывает в массив int l[8]. Преобразует строки d в соответствующую ей ячейку массива int b[8]. Считает количество строк m.
Выход: Массивы b, l и переменная m.

*****/

;

Void readwritecons(b, l, m);

/*****

Вход: Значение ‘c’ переменной k.
Действие: Считывает с клавиатуры строки в массив char d[dlina]. Длину строки записывает в массив int l[8]. Преобразует строки d в соответствующую ей ячейку массива int b[8]. Считает количество строк m.
Выход: Массивы b, l и переменная m.

*****/

;

Void mask(l, maska);

/*****

Вход: Длинна первой строки(битовый образ).
Действие: Создает число из всех единиц единиц, количество которых равно количеству цифр в двоичной записи первого числа (маску).
Выход: Переменная maska.

*****/

;

Void raschet(b, l, c, m, maska);

/*****

Вход: Массивы b, l, maska и переменная m.
Действие: Подсчитывает количество вхождений образа в строки и записывает в массив с.
Выход: Массив с.

*****/

;

Void vivod(b, l, c, m, k);

/*****

Вход: Массивы b, l, c и переменнst m и k.
Действие: Выводит все полученные в ходе вычислений данные на экран или в файл.
Выход: Нет.

*****/

;

 


 

 

Алгоритм решения задачи

«с»
main:
«f»
Вход
readwritefile
readwritecons
scanf  
Mask
Выход
raschet
vivod

 

 

Тестовые наборы данных и реакции

Таблица 5.1. Тест реакции для чисел.

№ теста Входные данные Результат работы программы Результат проверки
    B Vsevo vvedeno 3 strok i 17 simvolov. Minimalnaia dlinna stroki 4, maksimalnaia - 7. Kod pervoi stroki - 5. Kod stroki 2 - 85. 2 vhogdenii obraza. Kod stroki 3 - 37. 1 vhogdenii obraza. Maksimalnoe vhogdenie obraza 2 ras v stroke 2. верно
    Vsevo vvedeno 7 strok i 69 simvolov. Minimalnaia dlinna stroki 5, maksimalnaia - 16. Kod pervoi stroki - 21. Kod stroki 2 - 85. 2 vhogdenii obraza. Kod stroki 3 - 74. Net vhogdenii obraza. Kod stroki 4 - 61680. Net vhogdenii obraza. Kod stroki 5 - 43690. 6 vhogdenii obraza. Kod stroki 6 - 469. 2 vhogdenii obraza. Kod stroki 7 - 381. Net vhogdenii obraza. Maksimalnoe vhogdenie obraza 6 ras v stroke 5.Maksimalnoe vhogdenie obraza 6 ras v stroke 5. верно
    Vsevo vvedeno 4 strok i 37 simvolov. Minimalnaia dlinna stroki 5, maksimalnaia - 16. Kod pervoi stroki - 21. Kod stroki 2 - 85. 2 vhogdenii obraza. Kod stroki 3 - 74. Net vhogdenii obraza. Kod stroki 4 - 65535. Net vhogdenii obraza. Maksimalnoe vhogdenie obraza 2 ras v stroke 2. верно

 

 


 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-01-14 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: