Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
33
Добавлен:
02.06.2015
Размер:
165.38 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Вечерне-заочный факультет

ОБРАБОТКА СИМВОЛЬНЫХ ДАННЫХ

Отчет по лабораторной работе №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();

}

Выводы: После ввода строки со скобками, программа выводит данную строку на экран. Затем выводит на экран строку, удаляя все символы, заключенные в скобки, вместе со скобками.

Соседние файлы в папке лабы отчеты