18533

Символьные последовательности

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 3. Тема Символьные последовательности Если для решения задачи достаточно просмотреть исходный текст один раз то обычно текст вводится и обрабатывается посимвольно и не хранится целиком в памяти в виде массива. В программе используется перем

Русский

2013-07-08

18.96 KB

21 чел.

Лабораторная работа № 3.

Тема «Символьные последовательности»

Если для решения задачи достаточно просмотреть исходный текст один раз, то обычно текст вводится и обрабатывается посимвольно и не хранится целиком в памяти (в виде массива). В программе используется переменная типа char, которой поочередно присваиваются значения символов исходного текста. Ввод и обработка символов происходит до тех пор, пока не встретится признак конца текста или количество введенных символов не достигнет заданной длины текста.

Процессы обработки последовательностей символов можно представить такими же схемами, как и процессы обработки числовых последовательностей (см. описание предыдущей лабораторной работы). Только переменной будет присваиваться при вводе не число, а очередной символ.

Функции getchar и putchar

Функции getchar и putchar служат соответственно для ввода и вывода одного символа. Для посимвольного ввода/вывода текстов лучше использовать эти функции, нежели scanf и printf.

Функция getchar() не имеет аpгументов. Она получает очеpедной поступающий с клавиатуpы символ и сама возвpащает его значение выполняемой пpогpамме.

Пpимеp вызова функции getchar:

char ch;

ch=getchar();

Функция putchar имеет один аpгумент - это символ, который требуется вывести на экран.

Пpимеpы вызова функции putchar:

putchar (ch); /* ch - переменная типа char */

putchar ('S');

putchar ('\n'); /* перевод строки */

Определения функций getchar и putchar содержатся в файле stdio.h.

Пример.

Задача. Дан текст произвольной длины, оканчивающийся точкой. Проверить, есть ли в тексте сочетания "ВА".

Программа:

#include <stdio.h>

main()

{char s; /* текущий символ текста */

char prs; /* предыдущий символ */

short net=1; /* признак, имеется ли "ВА" в тексте */

/* net=1, если "ВА" нет*/

/* net=0, если "ВА" есть*/

printf ("\nВведите текст.\n");

s=getchar(); /* чтение первого символа */

if (s!='.')

{ do

{ prs=s; s=getchar();

if (prs=='В' && s=='А') net=0;

}

while (s!='.');

}

if (net) printf ("В тексте нет 'ВА'.\n");

else printf ("В тексте есть 'ВА'.\n");

}

Тесты для проверки программы.

№ теста

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

Ожидаемый результат

1

МОСКВА, БЕРЛИН, ВАРНА .

В тексте есть 'ВА'.

2

ПЭВМ IBM PC .

В тексте нет 'ВА'.

3

.

В тексте нет 'ВА'.

Порядок выполнения работы.

1. Получить у преподавателя задание.

2. Составить схему и программу на Си и подобрать тесты для проверки программы на ЭВМ.

3. Отладить программу и показать результаты тестирования преподавателю.

4. Оформить и сдать отчет по лабораторной работе.

Задания для самостоятельного выполнения:

  1.  Дан текст произвольной длины, оканчивающийся точкой. Текст состоит из слов разделенных пробелами. Подсчитать количество слов, оканчивающихся буквой А.
  2.  Дан текст произвольной длины, оканчивающийся «;». Проверить есть ли в тексте скобки.
  3.  Дан текст произвольной длины, оканчивающийся «;». Подсчитать количество цифр в тексте.
  4.  Дан текст произвольной длины, оканчивающийся точкой. Подсчитать количество сочетаний «:=».
  5.  Дан текст произвольной длины, оканчивающийся точкой. Текст состоит из слов разделенных пробелами. Подсчитать количество слов в данном тексте.
  6.  Дан текст произвольной длины, оканчивающийся точкой. Текст состоит из слов разделенных пробелами. Подсчитать количество слов, начинающихся с буквы К.
  7.  Дан текст произвольной длины, оканчивающийся точкой. Подсчитать количество сочетаний «СА».
  8.  Дан текст произвольной длины, оканчивающийся точкой. Подсчитать количество цифр и символов (пробелы, тире, точка с запятой и т.д.) в тексте.
  9.  Дан текст произвольной длины, оканчивающийся точкой. Найти порядковый номер первой запятой.
  10.  Дан текст произвольной длины, оканчивающийся точкой. Подсчитать количество букв в тексте.
  11.  Дан текст произвольной длины, оканчивающийся «;». Подсчитать количество заглавных букв в тексте.
  12.  Дано скобочное выражение, оканчивающееся точкой с запятой. Проверить правильность расстановки скобок в выражении.
  13.  Дано скобочное выражение, оканчивающееся точкой с запятой. Подсчитать количество уровней вложенности скобок в выражении.
  14.  Дана строка символов. Признак конца - символ '\n' ( перевод строки). Удалить лишние пробелы, т.е. если подряд следует несколько пробелов, оставить только один.
  15.  Дана строка символов. Признак конца - символ '\n' (перевод строки). Удалить последовательности символов, заключенные в фигурные скобки.

 

А также другие работы, которые могут Вас заинтересовать

34762. Синергетика как новое мировоззрение 26.5 KB
  Даже если бы новацией было только название появление синергетики было бы оправдано. Предложенное Хакеном выразительное название нового междисциплинарного направления привлекало к этому новому направлению гораздо больше внимания чем любое правильное но скучное и понятное лишь узкому кругу специалистов название. Предложенное им название сочтенное пуристами чрезмерно зазывным и рекламным оказалось особенно для нематематиков намного более привлекательным чем существовавший до Тома вариант теория особенностей дифференцируемых...
34763. Диалектика случайности и необходимости, содержания и формы, единичного и общего, возможности и действительности 52.5 KB
  вещь явление в их всеобщей закономерной связи; отражение преимущественно внутренних устойчивых повторяющихся всеобщих отношений действительности основных направлений её развития: выражение такой ступени движения познания в глубь объекта когда вскрываются его сущность закон; способ превращения возможности в действительность при котором в определенном объекте при данных условиях имеется только одна возможность превращающаяся в действительность. отражение в основном внешних несущественных неустойчивых единичных связей...
34764. Причинные связи. Категории причины и следствия. Проблема причинности в медицине 47.5 KB
  Категории причины и следствия. в схеме показано что причинноследственная связь направлена от причины к порожденному ею следствию. Имеется в виду что причины вызывают не любые а определенные соответствующие им следствия. Графическая модель такого соотношения выглядит следующим образом: Некоторые причины вызывают многочисленные долго развивающиеся следствия например катастрофические стихийные бедствия такие как ураганы землетрясения или взрыв атомной бомбы над Хиросимой в 1945 году.
34765. Теория познания, ее предмет и основные принципы. Критика агностицизма 37.5 KB
  Критика агностицизма Теория познания есть общая теория уясняющая саму природу познавательной деятельности человека в какой бы области науки искусства или житейской практики она ни осуществлялась. Агностицизм от греческого ágnōstos недоступный познанию философское учение согласно которому не может быть окончательно решен вопрос об истинности познания получена объективная характеристика окружающей человека действительности. Позиция Агностицизм разделялась в истории философии представителями идеализма в особенности субъективного а в...
34766. Знание как гносеологический таксон. Условие адекватности, обоснованности, убежденности. Мнение. Вера знание 24 KB
  Условие адекватности обоснованности убежденности. Стандартная трактовка того что ктото знает чтото включает в себя следующие три условия: условие истинности адекватности условие убежденности условие обоснованности. Условие убежденности веры приемлемости если S знает Р то S убежден верит в Р Когда я говорю например что знаю что в России есть президент то я верю что он действительно существует. Условие обоснованности S знает Р когда может обосновать свое убеждение в Р Это условие позволяет отграничить знание от...
34767. Научное познание и его специфические признаки. Методы научного познания 46 KB
  Методы научного познания. Так в зависимости от роли и места в процессе научного познания можно выделить методы формальные и содержательные эмпирические и теоретические методы исследования и изложения и т. Выделяют также качественные и количественные методы методы непосредственного и опосредованного познания оригинальные и производные и т. В этом плане все методы научного познания по степени общности и сфере действия могут быть разделены на пять основных групп: Философские методы среди которых наиболее древними являются диалектический и...
34768. Здоровье как ценность, философия здоровья человека 28.5 KB
  В большинстве стран был принят целый ряд юридических документов государственных масштабов по экологическому контролю за деятельностью промышленных и других предприятий по охране окружающей среды и здоровья человека. сформировался культ здоровья и здорового образа жизни как поощряемого и престижного способа существования. Культ здоровья и здорового образа жизни является жизненно важным делом лишь для очень небольшого количества людей в основном энтузиастов.
34769. Проблема жизни и смерти в духовном опыте человека. Философия о смысле жизни, смерти и бессмертии. Право на смерть 67.5 KB
  Философия о смысле жизни смерти и бессмертии. В чем смысл жизни Постановка проблемы В жизни каждого нормального человека рано или поздно наступит момент когда он задается вопросом о конечности своего индивидуального существования. Наличием такого знания в духовном опыте человека в значительной степени и объясняется острота с которой перед ним встает вопрос о смысле и цели жизни.
34770. Понятие истины. Объективность истины. Принципы: корреспонденции, когеренции и прагматизма. Гносеологическая, логическая и онтологическая формы истины 42.5 KB
  Объективность истины. Гносеологическая логическая и онтологическая формы истины. Абсолютные истины складываются на основе относительных.