Реферат по предмету "Разное"


Алгоритмы обработки символьной информации

Алгоритмы обработки символьной информацииВ Паскале используют следующие типы данных для работы с текстом: 1. Символьный тип Char. Значением переменной этого типа может быть один символ: буква, цифра, знак препинания. 2. Строковый String[количество символов] . Значением переменной этого типа может быть последовательность символов. Значения переменных задаются в апострофах.  a:=' f ' ; b:='+' ; c:='5' t:='Литерная величина' ; f:=' ' ; (пустая строка) Для данных символьного и литерного типов применимы операции сцепки (соединения, конкатенации) и сравнения (, =, =, ). Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Так, строка "стол" меньше строки "стул", строка "teacher" больше строки "pupil", а строка "А" меньше строки "АВ".Процедуры Delete(Str, N,M) Удаляет M символов из строки Str, начиная с позиции N. Insert(SubS, S, N) Вставляет подстроку SubS в строку S, начиная с позиции N. Str(X, S) Переводит число Х в строку символов S содержащую цифры. Val(S , X, Code) Переводит строку S содержащую цифры в целое число. Параметр Code содержит признак ошибки преобразования (если Code = 0, ошибки нет). Функции A:=Chr(X) присваивает переменной А символ с порядковым номером Х. A:=Copy(S , N, M) присваивает переменной А фрагмент строки S, начиная с позиции N и длиной M символов. N:=Length(S) Присваивает переменной N количество символов в строке S. N:=Ord(X) Присваивает переменной N порядковый номер символа X в таблице кодов символов. N:=Pos(SubS, S) Присваивает переменной N номер позиции, начиная с которой в строке S располагается подстрока SubS (если значение функции равно нулю, то S не содержит SubS). ^ Пример 1. Составить программу осуществляющую вырезку из слова ИНТЕГРАЛ букв так, что бы из них получилось слово ТОРТ.Program n1;Uses crt;var a,b,c,d:string;BeginClrscr;a:='информатика';b:='';c:=copy(a,8,1);d:=copy(a,4,2);b:=c+d+c;writeln(b);readln;End.(Самостоятельно) 2. Получите из слова "ИНТЕГРАЛ" слова "ГАНТЕЛИ" , "РЕНТГЕН", "ТИГР" , "АГЕНТ".^ Пример 3. Сравнить длину двух строк введенных с клавиатуры.Program n2;Uses crt;var a,b:string;m,n:Integer;BeginClrscr;Writeln('ВВеди первую строку ');Readln(a);Writeln('ВВеди вторую строку ');Readln(b);m:=Length(a);n:=length(b);if (m=n) then writeln('Строки равны');if (m>n) then writeln('Первая больше');if (mreadln;End.Пример 4. Составить программу, подсчитывающую количество букв «А» в слове (слово ввести с клавиатуры)Program n4;Uses crt;var a,b,c:string;i,k:Integer;BeginClrscr;Writeln('ВВеди строку ');Readln(a);b:='А';k:=0;for i:=1 to length(a) dobeginc:=copy(a[i],1,1);if (c=b) then k:=k+1;end;Writeln(k);readln;End.Пример 5. Составить программу, осуществляющую переворот слов.Program n5;Uses crt;var a,b,c:string;i,k:Integer;BeginClrscr;Writeln('ВВеди строку ');Readln(a);b:='';for i:=length(a) downto 1 dobeginc:=copy(a[i],1,1);b:=b+c;end;a:=b;Writeln(a);readln;End.Пример 6. Составить программу заменяющую все буквы "А" на "О" в слове, введенном с клавиатуры.Program n6;Uses crt;var a,с,d:string;i,k:Integer;BeginClrscr;Writeln('ВВеди строку ');Readln(a);d:='';for i:=1 to length(a) dobeginс:=copy(a[i],1,1);if (с'A') then d:=d+с else d:=d+'O';end;a:=d;Writeln(a);readln;End.Пример 7. Составить программу , удаляющую букву «А» из данного текста(текст ввести с клавиатуры )Program n7;Uses crt;var a,b:string;i,n:Integer;BeginClrscr;Writeln('ВВеди слово ');Readln(a);n:=length(a);for i:=1 to n dobeginb:=copy(a[i],1,1);if (b='A') and (n>0) then begindelete(a,i,1);if (i>0) then i:=i-1;n:=n-1;end;end;Writeln(a);readln;End.(Самостоятельно) 8. Дан текст , представляющий собой алгебраическое выражение, проверить в нем парность скобок . Результат сообщить .9. Составить программу, подсчитывающую количества парных букв. Результат сообщить .^ 10. Составить программу исправляющую ошибки в правописании "ЖИ" и "ШИ" .11. Для оформления заголовков и логически важных слов , символы текста при печати чередуют с пробелами , т.е. раздвигают текст. Написать программу, которая выполняет такую операцию.12. По общим правилам оформления машинописных работ и служебных документов после знака препинания (. , : ;) ставится пробел. Составьте программу добавляющую недостающие пробелы.^ 13. Из данного текста удалить все буквы "С" которые предшествуют букве "Т"14. Составьте программу подсчитывающую количество слогов в слове. (Подсчитайте количество гласных букв , это и будет кол-во слогов)^ Пример 15. Вычислите сумму цифр натурального числа N.Program n15;Uses crt;var a,b:string;s,i,x,code:Integer;n:longint;BeginClrscr;Writeln('ВВеди число ');Readln(n);str(n,a);s:=0;for i:=1 to length(a) dobeginb:=copy(a[i],1,1);val(b,x,code);s:=s+x;end;Writeln(s);readln;End.(Самостоятельно) 16. Дан текст, содержащий две цифры меньше 10 и знак + (- , * , /) между ними. Составить программу находящую значение этого арифметического выражения. ^ 17. Вычеркните из слова все буквы стоящие на четных местах.18. Выясните, какая из букв "А" или "B" встречается в слове раньше.Program n18;Uses Crt;var a,c:string;i:integer;Flag:boolean;beginClrscr;Writeln('ВВеди строку ');readLn(a);Flag:=false;i:=1;while (ibeginc:=copy(a,i,1);if (c='A') or (c='B') then flag:=true;i:=i+1;end;if (c='A') then writeln('Раньше А') else writeln('Раньше В');readln;end.^ 19. Определить количество слов в заданном тексте.Если слова в тексте разделены одним пробелом, то задача сводится к подсчету числа пробелов. Количество слов при этом равно числу пробелов плюс 1. Если же число пробелов между соседними словами произвольное, как обычно и бывает, то алгоритм усложняется. Вариант 1Program n19;   Uses Crt;   Var Text   : String;  {заданный непустой текст}   i, Number : Integer; {Number - количество слов в тексте}   ^ Letter   : Char;   {текущая буква }BEGIN ClrScr;  WriteLn('Введите текст :'); ReadLn(Text);  Number:=1;  For i:=1 to Length(Text) do {цикл по буквам текста}beginLetter:=Text[i];If (Letter = ' ' ) then Number:=Number+1;end;  WriteLn('О т в е т : количество слов в тексте равно ', Number);END.^ 20. Заданную последовательность слов переупорядочить в алфавитном порядке (то есть выполнить лексикографическое упорядочение). Program N20;  Uses Crt;  Var W   : Array[1..10] of String; {массив слов}   Tmp   : String; {Tmp - вспомогательная переменная}   i, j, N : Integer;   {NWords - количество слов}^ BEGIN  ClrScr;  Write('Количество слов в тексте - ');  ReadLn(N);  For i := 1 to N do   begin Write(i, '-ое слово : ');   ReadLn(W[i]);   end;  For i := 1 to N-1 do {лексикографическое упорядочение слов}   For j := i+1 to N do   If W[i]>W[j] then   beginTmp := W[i]; W[i]:=W[j]; W[j]:=Tmp   end;  WriteLn;  WriteLn('О т в е т');  WriteLn('Лексикографически упорядоченный массив слов:');  For i := 1 to N do Write(W[i], ' ');  ^ WriteLn; ReadLnEND.Задачи для самостоятельного решения.7.1. Подсчитать количество запятых в заданном тексте. 7.2. Подсчитать, сколько раз в заданном тексте встречается заданный символ. 7.3. Определить долю пробелов в заданной строке. 7.4. Проверить, является ли заданное слово названием  времени года на русском языке. 7.5. Заменить в заданном тексте буквосочетание "min" на "max". 7.6. В заданном тексте подсчитать общее количество букв  "x" и "y". 7.7. В заданном тексте везде букву "а" заменить на букву "б",  а букву "б" - на букву "а". 7.8. Удвоить каждую букву в заданном тексте. 7.9. В заданном слове каждую букву "б" заменить буквосочетанием "ку". 7.10. Вычеркнуть из заданного слова все буквы "а". 7.11. Подсчитать, сколько раз в заданном слове встречается буквосочетание "аб". 7.12. Заданную строку А переписать в обратном порядке в строку В. 7.13. Выяснить, есть ли в заданном предложении буква "ы". 7.14. Выяснить, верно ли, что в заданном предложении P есть все буквы, входящие в заданное слово S. 7.15. Определить количество предложений в заданном тексте (предложение заканчивается либо точкой, либо вопросительным или восклицательным знаком). 7.16 Определить долю гласных букв в заданном тексте на русском (английском) языке. 7.17. Определить, является ли одно заданное слово обращением другого заданного слова. 7.18. Из заданного текста удалить те его части, которые заключены в кавычки (вместе с кавычками). 7.19. Каждые n символов во введенном тексте отделить знаком "!". 7.20. Выяснить, верно ли, что в заданном предложении есть пара соседствующих одинаковых символов. 7.21. Найти хотя бы одно слово, которое встречается  в каждом из трех заданных предложений. 7.22. Отредактировать заданное предложение,  удаляя из него все слова с чётными номерами. 7.23. В заданном предложении указать слово, в котором доля гласных (A, E, I, O, U - строчных или прописных) максимальна. 7.24. Дан текст из цифр и строчных латинских букв, за которым следует точка. Определить, каких букв - гласных (A, E, I, O, U) или согласных - больше в этом тексте. 7.25. В заданную упорядоченную в лексикографическом (алфавитном) порядке последовательность слов вставить новое заданное слово так, чтобы лексикографический порядок сохранился. 7.26. В заданной последовательности слов найти все слова, начинающиеся с заданной приставки. 7.27. В заданной последовательности слов найти все слова, имеющие заданное окончание. 7.28. Найти самое длинное и самое короткое слово в заданном предложении. 7.29. В заданном тексте подсчитать наибольшее количество подряд идущих пробелов. 7.30. Для каждого из слов заданного предложения указать, сколько раз оно встречается в предложении. 7.31. Найти самое длинное симметричное слово заданного предложения. 7.32. Из заданного текста выбрать и напечатать те символы, которые встречаются в нём ровно один раз. 7.33. Определить частоту вхождения в текст каждой буквы русского алфавита. 7.34. Дана последовательность слов, в которой слова разделены запятыми, а за последним словом - точка. Напечатать:   а) эту же последовательность слов, но в обратном порядке;   б) все различные слова, указав для каждого из них число его вхождений в последовательность. 7.35*. Отредактировать заданное предложение, удаляя из него все лишние пробелы. 7.36*. Из заданного предложения удалить те слова, которые уже встречались в предложении раньше. 7.37*. Преобразовать заданное десятичное, натуральное число в римскую систему счисления. 7.38*. Преобразовать число, заданное в римской системе счисления, в число десятичной системы.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Оптимізація ранньої діагностики та вторинної профілактики раку грудної залози у загальній лікувальній
Реферат Влияние физических факторов на здоровье человека
Реферат Путешествие по России
Реферат Kansas
Реферат Пешеходные туристские путешествия по Санкт-Петербургу
Реферат Внешняя политика России в царствование Александра III (1881-1894 гг.)
Реферат Election 2000 Essay Research Paper The 2000
Реферат Confucianism Essay Research Paper Confucianism the philosophical
Реферат Symbolism In The Birthmark Essay Research Paper
Реферат Отчет по первичной ознакомительной практике
Реферат Современные инженерно-технические средства безопасности
Реферат Комплексный экономический анализ деятельности ООО "Сыктывкарские тепловые сети"
Реферат Асе элементы Ряда урана радиоактивны. Это означает, что они излучают какой-ибо вид лучей
Реферат Історія виникнення алкоголю
Реферат История развития банкротства в России