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' (перевод строки). Удалить последовательности символов, заключенные в фигурные скобки.

 

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

84256. Репродукция вирусов. Развитие вирулентного и умеренного фагов. Понятие о лизогенной культуре 78.28 KB
  На этой стадии происходит прикрепление вируса к поверхности клетки. Внутрь клетки проникает лишь нуклеиновая кислота. Инъецированная нуклеиновая кислота фага прежде всего вызывает полную перестройку метаболизма зараженной клетки. Выход фагов из клетки.
84258. Способы питания микроорганизмов 33.22 KB
  Пищей обычно называют вещества которые попав в живой организм служат либо источником энергии необходимой для процессов жизнедеятельности либо материалом для построения составных частей клетки. Голофитный способ живые существа используют питательные вещества всасывая их в виде относительно небольших молекул из водного раствора. Чтобы проникнуть в клетку питательные вещества должны находиться в растворенном состоянии и иметь соответствующий размер молекул. Однако это не означает что микроорганизмы не используют высокомолекулярные...
84259. Химический состав микробной клетки 33.69 KB
  Связанная вода входит в состав коллоидов клетки и с трудом высвобождается из них. С потерей связанной воды нарушаются клеточные структуры и наступает гибель клетки. При удалении свободной воды гибели клетки не происходит.
84260. Механизмы поступления питательных веществ в клетку 32.25 KB
  ЦПМ регулирует не только поступление веществ в клетку но и выход из нее воды разнообразных продуктов обмена и ионов что обеспечивает нормальную жизнедеятельность клетки. Существует несколько механизмов транспорта питательных веществ в клетку: простая диффузия облегченная диффузия и активный транспорт. Транспорт веществ через цитоплазматическую мембрану схематично изображен на рис.
84261. Пищевые потребности и типы питания микроорганизмов 42 KB
  В зависимости от источника углерода микроорганизмы делятся на: автотрофы сами себя питающие которые используют углерод из неорганических соединений углекислого газа и карбонатов; гетеротрофы питаются за счет других используют углерод из органических соединений. В зависимости от источника энергии различают: фототрофы микроорганизмы которые в качестве источника энергии используют энергию солнечного света; хемотрофы энергетическим материалом для этих микроорганизмов являются разнообразные органические и неорганические вещества....
84262. Понятие о конструктивном и энергетическом обмене 38.76 KB
  Из веществ среды перенесенных в клетку собираются строительные блоки из которых формируются биополимеры клетки и синтезируются белки жиры углеводы нуклеиновые кислоты и другие клеточные компоненты. Обмен веществ можно рассматривать как сумму двух явлений: катаболизма энергетического обмена представляющего собой ферментативное расщепление крупных органических молекул с выделением свободной энергии которая запасается в виде макроэргических связей в молекулах АТФ; анаболизма конструктивного обмена представляющего собой синтез...
84263. Энергетический метаболизм, его сущность. Макроэргические соединения. Типы фосфорилирования 35.11 KB
  Энергия образуемая при энергетическом обмене трансформируется в энергию макроэргических связей молекул АТФ. Процесс образования АТФ называется фосфорилированием. Механизм образования АТФ у разных групп микроорганизмов неодинаков. Фотофосфорилирование образование АТФ при поглощении квантов света молекулами хлорофилла.
84264. Энергетический метаболизм хемоорганогетеротрофов, использующих процессы брожения 35.13 KB
  Образование молекул АТФ при брожении происходит путем субстратного фосфорилирования. Основными стадиями гликолиза являются присоединение фосфатных групп от молекулы АТФ и превращение во фруктозо16дифосфат. При этом образуется свободная энергия достаточная для образования 4 молекул АТФ.