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

 

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

494. Статистические оценки параметров распределения. Несмещенные, эффективные и состоятельные оценки 157.5 KB
  Несмещенные, эффективные и состоятельные оценки. Числовые характеристики вариационных рядов. Выборочная дисперсия и выборочное среднее квадратическое отклонение. Исправленная выборочная дисперсия. Обычные, начальные и центральные эмпирические моменты.
495. Актуальные проблемы реформы местного самоуправления 909 KB
  Конституция Российской Федерации и проблемы развития компетенционных возможностей местного самоуправления. Реформа местного самоуправления: проблемы реализации. Проблемы законодательного обеспечения реформы местной власти.
496. Разработка и анализ алгоритма сортировки посредством выбора на основе разработки шаблона функции C++ 186 KB
  Основные классы методов сортировки. Исследование метода сортировки посредством выбора на основе шаблона функций C++. Анализ результатов тестирования рассматриваемого алгоритма, вывод о приоритетах и недостатках данного алгоритма и методах его реализации.
497. Водоснабжение и водоотведение 206 KB
  Водопровод жилого здания включает следующие элементы: ввод и водомерный узел, водопроводную сеть, запорную, водоразборную, регулирующую и предохранительную арматуру.
498. Фирма как несовершенный конкурент 233 KB
  Несовершенная конкуренция. Максимизация прибыли монополией. Олигополия. Модель ломаной кривой спроса. Монополия и ценовая дискриминация.
499. Мой мобильный телефон Nokia N8 245 KB
  Возможности предоставляемые Symbian. Типичная картонная упаковка синего цвета без каких-либо дизайнерских штрихов. Герметичность корпуса (пыль). Возможность просмотра видео без предварительного конвертирования.
500. Водоснобжение 5- этажного жилого дома 209 KB
  Гарантированный напор в точке подключения ввода составляет 30м. Расстояние от стены здания до водопроводной линии составляет 25 метров. Глубину промерзания грунта для Новгорода принимаем равной 1,3м.
501. Модель OSI, сетевые протоколы 108.5 KB
  Изучение модели OSI, архитектуры и функционирования транспортных протоколов. На начальном этапе на компьютер, с установленной операционной системой семейства Windows, устанавливается программа-анализатор трафика WireShark 1.6.5.
502. Токсикология как наука 239.5 KB
  Химические вещества, используемые в промышленности и сельском хозяйстве, которые при определенных ситуациях могут вызывать массовые отравления. Стойкие отравляющие вещества. Нервно-паралитические яды. Качества характеризующие боевую эффективность ипритов.