Обработка текстовой информации

Основные принципы, позволяющие осуществить ввод информации, ее обработку, вывод результатов на экран. Простейшие текстовые диалоги с пользователем, их алгоритм. Основные методы обеспечения максимальной информативности обработки текстовой информации.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.11.2015
Размер файла 247,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

ФГАОУ ВПО «УрФУ им. Первого Президента России Б.Н. Ельцина»

Кафедра информационных технологий и автоматизации проектирования

КУРСОВАЯ РАБОТА

по дисциплине «Программирование»

Тема: «Обработка текстовой информации»

Вариант 27

Выполнил Студент: Пищёта Е.А.

Группа: М-130701

Принял: Сердюк Ю.В.

Екатеринбург

2014

Оглавление

Введение

1. Отчет о решении задачи

1.1 Постановка задачи, исходные выражения и исходные данные, таблица принятых обозначений переменных

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

1.3 Код программы

1.4 Результаты решения задачи

1.5 Краткий анализ результата

Заключение

Введение

Современные средства программирования позволяют решать самые разнообразные задачи, связанные с обработкой различной информацией. Мощные инструменты разработаны для анализа и обработки текста, это связано с особой важностью этого вида данных.

В рамках данной работы будут рассмотрены принципы, позволяющие осуществить ввод информации, ее обработку, вывод результатов на экран; организованы простейшие текстовые диалоги с пользователем; сделаны попытки обеспечить максимальную информативность.

информация диалог обработка экран

1. Отчет Постановка задачи

1.1 Постановка задачи, исходные выражения и исходные данные, таблица принятых обозначений переменных

С помощью текстового редактора создать файл, длина которого не превышает 700 символов (длинна строки текста не должна превышать 70 символов). Имя файла должно иметь расширение TXT. Написать программу которая: выводит текст на экран дисплея, определяет количество предложений текста и количество слов, начинающихся с гласных букв в каждом предложении. По нажатию произвольной клавиши поочередно выделяет каждое предложение текста а в выделеном предложении все слова, начинающиеся с гласных букв.

Таблица принятых обозначений переменных

Имя

Тип

Краткое описание назначения

*text

Char

Формальный параметр в процедурах - содержит исходный текст.

name

Char

Содержит имя файла

NumbOfProps

Int

Количество предложений в тексте

NumbOfWord

Int

Количество слов начинающихся с гласной буквы

leftpos

Int

Левая граница выделяемого предложения

rightpos

Int

Праваяграница выделяемого предложения

WordLeftPos

Int

Левая граница выделяемого слова

WordRightPos

Int

Правая граница выделяемого слова

length

Int

Длина исходного текста.

i, j

Int

Параметры цикла for

WordPos

Int

Позиция начла поиска слова

PropPos

Позиция начла поиска предложения

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

· Начало

1. Открыть файл text.txt на чтение

Если открытие файла прошло успешно, то:

1. Начать исполнение:

1. Переместить текущую позицию потока в конец;

2. Определить текущую позицию указателя позиции файла и присвоить соответствующее значение переменной length;

3. Динамически выделить память text

4. Переместить текущую позицию потока в начало;

5.Заполнить массив text;

6. Добавить в конец массива text символ окончания текста “\0”;

7.Определить количество предложений

8.Определить количество слов начинающихся с гласных

9.Пока i<количество найденных слов начинающихся с гласных

1.Выполнить процедуру поиска начал и концов слов

2.Вывести текст до текущего предложения

3.Вывести текущее предложение до текущего слова

5.Вывести текущее слово

6.Вывести текущее предложение после текущего слова

7.Вывести текст после текущего предложения

8.Вывести число обозначающее количество найденых предложений

9.Вывести число обозначающее количество найденых слов

10 i=i+1;

10.очистить динамически выделенную память и закрыть текстовые файлы

· Конец

1.3 Текст Программы

#include <stdio.h>

#include <alloc.h>

#include <string.h>

#include <ctype.h>

#include <conio.h>

void baneblade(char *text0,int *leftpos0,int *rightpos0,int *WordLeftPos0,

int *WordRightPos0,int *WordPos0,int *PropPos0);

void main (void)

{

char name[80];

char *text;

int i,j,length,leftpos,rightpos,WordLeftPos,WordRightPos,NumbOfWord,NumbOfProps,WordPos,PropPos;

FILE *f;

clrscr();

printf("\n enter file name ");

scanf("%s",name);

f=fopen(name,"r");

if (f==0)

printf("\nFILE NOT FOUND\n");

else

{

/*выделение памяти под текст*/

fseek(f,0,SEEK_END);

length=ftell(f);

text=(char*)malloc((length+1)*sizeof(char));

fseek(f,0,SEEK_SET);

printf("\n");

for(i=0;i<length;i++)

fscanf(f,"%c",&text[i]);

*(text+length)='\0';

/*определение количества слов начинающихся с гласной*/

i=0;

NumbOfWord=0;

NumbOfProps=0;

while(*(text+i)!='\0')

{

if(((*(text+i)=='a')||(*(text+i)=='e')

||(*(text+i)=='i')||(*(text+i)=='o')

||(*(text+i)=='u')||(*(text+i)=='y')

||(*(text+i)=='A')||(*(text+i)=='E')

||(*(text+i)=='I')||(*(text+i)=='O')

||(*(text+i)=='U')||(*(text+i)=='Y'))&&(i==0))

{

NumbOfWord++;

}

else

{

if(((*(text+i)=='a')||(*(text+i)=='e')

||(*(text+i)=='i')||(*(text+i)=='o')

||(*(text+i)=='u')||(*(text+i)=='y')

||(*(text+i)=='A')||(*(text+i)=='E')

||(*(text+i)=='I')||(*(text+i)=='O')

||(*(text+i)=='U')||(*(text+i)=='Y'))&&(isalpha(*(text+i-1))==NULL))

{

NumbOfWord++;

}

}

/*определение количества предложений*/

if((*(text+i)=='.')||(*(text+i)=='?')||(*(text+i)=='!'))

{

if((*(text+i)=='.')&&(*(text+i+1)!='\0'))

{

if(isupper(*(text+i+2))!=NULL)

{

NumbOfProps++;

}

}

else

{

NumbOfProps++;

}

}

i++;

}

PropPos=0;

WordPos=0;

leftpos=0;

rightpos=0;

j=0;

while(j<NumbOfWord)

{

baneblade(text,&leftpos,&rightpos,&WordLeftPos,&WordRightPos,&WordPos,&PropPos);

getch();

clrscr();

/*печать текста до текущего предложения*/

for(i=0;i<leftpos;i++)

printf("%c",*(text+i));

/*выделение текущего предложения до текущего слова*/

textbackground(WHITE);

textcolor(BLACK);

for(i=leftpos;i<WordLeftPos;i++)

if(*(text+i)!='\n')

cprintf("%c",*(text+i));

else

printf("%c",*(text+i));

textmode(LASTMODE);

/*выделение текущего слова*/

textbackground(GREEN);

textcolor(YELLOW);

for(i=WordLeftPos;i<WordRightPos;i++)

cprintf("%c",*(text+i));

textmode(LASTMODE);

/*выделение текущего предложения после текущего слова*/

textbackground(WHITE);

textcolor(BLACK);

for(i=WordRightPos;i<rightpos;i++)

if(*(text+i)!='\n')

cprintf("%c",*(text+i));

else

printf("%c",*(text+i));

textmode(LASTMODE);

/*печать предложений после текущего предложения*/

for(i=rightpos;i<length;i++)

printf("%c",*(text+i));

printf("\n\nNumber of listings found: %3d\n",NumbOfProps);

printf("\nNumber of found words beginning with a vowel: %3d\n",NumbOfWord);

j++;

}

}

getch();

fclose(f);

free(text);

}

void baneblade(char *text0,int *leftpos0,int *rightpos0,

int *WordLeftPos0,int *WordRightPos0,int *WordPos0,int *PropPos0)

{

int i,j;

/*Определение границ выделения текущего слова*/

i=*WordPos0;

if(((*(text0+i)=='a')||(*(text0+i)=='e')

||(*(text0+i)=='i')||(*(text0+i)=='o')

||(*(text0+i)=='u')||(*(text0+i)=='y')

||(*(text0+i)=='A')||(*(text0+i)=='E')

||(*(text0+i)=='I')||(*(text0+i)=='O')

||(*(text0+i)=='U')||(*(text0+i)=='Y'))&&(i==0))

{

*WordLeftPos0=i;

}

else

{

while(((*(text0+i)!='a')&&(*(text0+i)!='e')

&&(*(text0+i)!='i')&&(*(text0+i)!='o')

&&(*(text0+i)!='u')&&(*(text0+i)!='y')

&&(*(text0+i)!='A')&&(*(text0+i)!='E')

&&(*(text0+i)!='I')&&(*(text0+i)!='O')

&&(*(text0+i)!='U')&&(*(text0+i)!='Y'))||(isalpha(*(text0+i-1))!=NULL))

{

i++;

}

*WordLeftPos0=i;

}

while(isalpha(*(text0+i))!=NULL)

{

i++;

}

*WordRightPos0=i;

*WordPos0=i;

/*Определение границ выделения текущего предложения*/

if((*WordPos0)>(*PropPos0))

{

/*определение левой границы*/

i=*PropPos0;

while(isalpha(*(text0+i))==NULL)

{

i++;

}

*leftpos0=i;

do

{/*проверка на знак окончания предложения*/

if((*(text0+i)=='.')||(*(text0+i)=='?')||(*(text0+i)=='!'))

{/*проверка на сокращение слова*/

if((*(text0+i)=='.')&&((*(text0+i+1)!='\0')&&(*(text0+i+1)!='.')))

{

j=i;/*пребирать символы до тех пор пока не будет найдена буква*/

while(isalpha(*(text0+j))==NULL)

{

j++;

}

/*если буква заглавная то установить правую границу предложения,если нет то продолжить поиск границы*/

if(isupper(*(text0+j))!=NULL)

{

*rightpos0=i;

*PropPos0=i;

break;

}

}

else

{

if(*(text0+i)=='.')

{

*rightpos0=i;

*PropPos0=i;

break;

}

}

if((*(text0+i)=='?')||(*(text0+i)=='!'))

{

*rightpos0=i;

*PropPos0=i+1;

break;

}

}

i++;

}while(*(text0+i)!='\0');

}

}

1.4 Тест

Исходный текст:

The Emperor. of Mankind is the immortal ruling monarch of the

Imperium of Man, and is described by the Imperial Ecclesiarchy

and the Imperial Cult as the Father, Guardian and God of

humanity...

The Chaos Gods and the daemons of the Warp refer to him as

"the Anathema" for he is the greatest embodiment of universal Order

in the galaxy today? He has sat immobile, his body slowly crumbling,

within the Golden Throne of Terra for over 10,000 standard years!

Although once a living man, his shattered, decaying body can no

longer support life, and it is kept intact only by the cybernetic.

Mechanisms of the Golden Throne and a potent mind itself sustained

by the daily sacrifice of thousands of lives.

1.5 Результат

Заключение

В рамках данной работы было разработано консольное приложение, позволяющее выполнять такие операции с текстом, как:

1. Загрузка текстовой информации из файла.

2. Вывод полученного текста в массив, а затем на экран.

3. Анализ текста, выявление слов в тексте.

4. Анализ слова текста

5. Вывод на экран преобразованного текста.

Размещено на Allbest.ru


Подобные документы

  • Программы работы с текстами: MS-DOS Editor, Word Pad, блокнот, word, текстовый процессор. Редакторы для обработки документов. Стили форматирования. Двоичное кодирование текстовой информации в компьютере. Операции технологического процесса ее обработки.

    курсовая работа [324,0 K], добавлен 25.04.2013

  • Характеристика средств обработки текстовой информации, способы редактирования и форматирования документов. Порядок создания списков и таблиц, проверка орфографии и синтаксиса текста. Выбор формата файла. Работа в табличном процессоре Microsoft Excel.

    курсовая работа [411,1 K], добавлен 27.04.2013

  • Анализ перспектив развития средств обработки текстовой и графической информации. Выбор программного обеспечения обработки информации, технических средств, периферийных устройств. Исследование особенностей работы с программой деловой графики MS Visio.

    курсовая работа [616,2 K], добавлен 04.05.2013

  • Обработка текстовой информации на компьютере. Знакомство с текстовым процессором Microsoft Word. Создание, форматирование текстовых документов, выполнение операций с фрагментами текста. Копирование, перемещение, удаление. Создание и редактирование таблиц.

    лабораторная работа [672,8 K], добавлен 19.12.2013

  • Основные допечатные процессы подготовки издания. Технологическая схема компьютерной подготовки текстовой информации. Выбор варианта оформления, формата, гарнитуры и кегля. Основные правила компьютерного набора. Верстка в программе Adobe InDesig.

    курсовая работа [250,5 K], добавлен 22.01.2015

  • Средства и технологии обработки текстовой информации: MS-DOS Editor, Word Pad, Блокнот, Microsoft Word. Двоичное кодирование текстовой информации в компьютере. Рассмотрение разновидностей кодовых таблиц для русских букв: Windows, MS-DOS, КОИ-8, Мас, ISO.

    курсовая работа [644,5 K], добавлен 27.04.2013

  • Понятие информации и основные принципы ее кодирования, используемые методы и приемы, инструментарий и задачи. Специфические особенности процессов кодирования цифровой и текстовой, графической и звуковой информации. Логические основы работы компьютера.

    курсовая работа [55,8 K], добавлен 23.04.2014

  • Назначение, классификация и экономическая целесообразность использования устройств ввода текстовой и графической информации. Обзор и сравнительный анализ программ распознавания образов Acrobat Reader и ASDee. Охрана труда при работе на компьютере.

    дипломная работа [4,3 M], добавлен 23.07.2010

  • Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.

    реферат [14,5 K], добавлен 06.12.2011

  • Информатика - технология сбора, хранения и защиты информации. Обработка текстовой информации, специализированное и прикладное программное обеспечение. Технические средства; базы данных; автоматизированные информационные системы; антивирусные средства.

    реферат [24,6 K], добавлен 09.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.