Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по ЯП(1 сем).docx
Скачиваний:
28
Добавлен:
10.05.2015
Размер:
297.9 Кб
Скачать

1.6 Задание 6. Обработка текстовой информации

1.6.1 Цель работы

Научиться обрабатывать текстовую информацию.

1.6.2 Задача

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

1.6.3 Решение

1. Проходимся по тексту 2 раз: 1- «запоминаем» концы предложения, 2 – запоминаем «координаты» слова.

2. Сравниваем.

1.6.4 Исходный код

function z=a6(x, sdf) %a- текст b-заданное слово

a=[];

for i=1:length(x)

if x(i)=='.' || x(i)=='!' || x(i)=='?'

a(end+1)=i;

end

end

b=strfind(x, sdf); %Координаты начала слов.

c(1:length(a))=0; %Массив с предложениями и кол-вом слов в каждом

ch=1;

for i=1:length(b) %Сравниваем координаты:

if b(i)<a(ch)

c(ch)=c(ch)+1;

end

if (i+1<=length(b)) && (b(i+1)>a(ch))

ch=ch+1;

end

end

sh=min(c);

lol=0;

for i=1:length(c) %Ищем число предложений

if c(i)==sh

lol=lol+1;

end

end

z=lol;

Однопроходный алгоритм:

function z=a6b(x, sdf)

% ИСХ: х - текст, sdf - заданное слово

% РЕЗ: z - число предложений

k=1; %Счетчик

m=[]; %Создаем массив, в котором будет хранится число слов в каждом предложении

while x>0

[a,x]=strtok(x,' '); %Делим предложение на слова, анализируем 1-ое слово

b=strfind(a, sdf);

if length(b)>0 %Если слово есть, то флагу присваиваем 1, иначе - 0.

q=1;

else

q=0;

end

if k>numel(m) %Если вышли за размеры(началось след. предложение), то создаем новый элемент.

m(k)=0;

end

m(k)=m(k)+q; %Прибавляем к элементу 1 или 0.

if a(end) == '!' || a(end) == '?' || a(end) == '.' %"Ищем" предложения

k=k+1;

end

end

ch=min(m); %Узнаем самое маленькое число повторений

pr=0;

for i=1:length(m) %Считаем число предложений с минимальным числом слов

if m(i)==ch

pr=pr+1;

end

end

z=pr; %Выводим число

1.6.5 Пример работы

1

2

Заключение

Таким образом, в ходе проделанной работы были изучены основы программирования в среде Matlab и выполнены следующие задачи:

  • программирование формул и построение по ним графиков;

  • вывод рекуррентной формулы, вычисление частичных сумм,

  • построение предельных графиков;

  • работа с одномерными массивами и выполнение различных операций над ними;

  • работа с двумерными массивами и матрицами и выполнение различных операций над ними;

  • работа со встроенными функциями Matlab

  • обработка и анализ текста;

  • В полном объеме выполнен типовой расчет по Языкам программирования за 1 курс.

В результате были получены следующие навыки:

  • Развитие алгоритмического мышления.

  • Опыт в программировании.

Список используемой литературы:

1) Конспекты лекций

2) А.Шень Программирование: теоремы и задачи 2-е изд., М.:МЦНМО, 2004

3) Методические указания по выполнению лабораторных работ. Информатика ( часть 3. №0902 Москва. 2009.)

4) Встроенная справочная служба в среду программирования Матлаб