Обработка текстовой информации
Основные принципы, позволяющие осуществить ввод информации, ее обработку, вывод результатов на экран. Простейшие текстовые диалоги с пользователем, их алгоритм. Основные методы обеспечения максимальной информативности обработки текстовой информации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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