Informatika-laboratornye / лабы отчеты / лаб7
.docФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Вечерне-заочный факультет
ОБРАБОТКА СИМВОЛЬНЫХ ДАННЫХ
Отчет по лабораторной работе №7
по дисциплине
«Информатика»
Вариант 3
Выполнил:
студент гр. ИТ-11
Бибанаев В.А.
Проверил:
Малышева А.В.
Киров 2015
Лабораторная работа №7
Тема: Обработка символьных данных
Цель: выработка умений решения на компьютере обработки символьных данных на языке Си, отладка и тестирование программы.
Задание (вариант №3): В тексте удалить символы, заключенные в скобки вместе со скобками
Выполнение задания:
1. Математическая постановка
Исходные данные:
stroka[100] – массив символьных данных на
stroka[i] - i-ый символ массива
Допустимые значения вводимых данных согласно условию задачи:
stroka – любые символы, вводимые с клавиатуры
Результат:
stroka – исправленный массив (без содержимого скобок)
2. Разработка алгоритма.
3. Разработка программы
3.1Таблица идентификаторов
Имя переменной |
Тип переменной |
Пояснение |
Спецификации формата |
|
|
Алгоритм |
Программа |
|
|||
Исходные данные |
Ввод |
Вывод |
|
||
stroka[100] |
stroka |
char |
исходный массив данных |
- |
- |
stroka[i] |
stroka[i] |
char |
i-тый символ строки |
- |
- |
lenght |
lenght |
char |
символьная переменная длины строки |
- |
- |
open_sk |
open_sk |
char |
символьная переменная |
- |
- |
close_sk |
close_sk |
char |
символьная переменная |
- |
- |
t |
t |
int |
временная переменная |
- |
- |
Результаты |
|
||||
stroka[i] |
stroka[i] |
int |
выходная строка |
- |
- |
3.2 Содержание результатов работы программы на экране
3.3 Текст программы:
//____________________________________________________________
//
// Лабораторная работа №7 Обработка символьных данных
// Выполнил: Бибанаев В.А.
//_____________________________________________________________
#include<stdio.h>
#include<string.h>
main()
{
char stroka[100], *open_sk, *close_sk, *lenght; //символьный массив и указатели
int i, t=0; //переменные для циклов
printf("Laboratornay rabota 7 Obrabotka simvolnyh dannyh \n");
printf("Vipolnil: Bibanaev V.A. Variant 3 \n");
printf("\n");
printf( "Vvod stroki: " );
gets( stroka ); //ввод символьного массива
printf("\n")
printf( "Vasha stroka: " );
puts( stroka ); //вывод введенного символьного массива
printf("\n");
printf("Stroka bez skobok: ");
lenght = strchr( stroka, '\0' ); //подсчет кол-ва символов до конца строки
open_sk = strchr( stroka, '(' ); //подсчет кол-ва символов до первого знака “(“
close_sk = strchr(stroka, ')' ); //подсчет кол-ва символов до первого знака “)”
while ( open_sk != NULL && close_sk != NULL )//цикл подсчета символов до всех скобок…
{ //…пока не закончится строка
for( i = t; i < open_sk-stroka; i++ ) //цикл вывода на экран символов до встречи…
{ //первого символа открытой скобки
putchar( stroka[i] ); // вывод на экран символов
}
for( i = close_sk - stroka + 1; i < open_sk - stroka; i++ ) //цикл вывода на экран символов…
{ //начиная после символа закрытая скобка
putchar( stroka[i] ); // вывод на экран символов
}
t = i; //запоминаем номер в массиве последнего обработанного символа
open_sk = strchr( open_sk + 1, '(' ); //подсчет кол-ва символов до первого знака ‘(‘…
// …начиная с последнего найденного
close_sk = strchr( close_sk + 1, ')' ); // подсчет кол-ва символов до первого знака ‘)’…
// …начиная с последнего найденного
}
for( i = t; i < lenght - stroka; i++ ) //цикл вывода на экран символов…
{ //…начиная после последнего символа закрытая скобка
putchar( stroka[i] ); // вывод на экран символов
}
printf("\n");
printf("\n");
printf("End - Prees Enter"); //для выхода нажать Ентер
getchar();
}
Выводы: После ввода строки со скобками, программа выводит данную строку на экран. Затем выводит на экран строку, удаляя все символы, заключенные в скобки, вместе со скобками.