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

 

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

48327. Сущность, принципы и функции бюджетного учета в Украине 284 KB
  Через бюджет государство аккумулирует денежные средства для финансирования приоритетных направлений производства социального развития активизирует мероприятия по увеличению поступлений в бюджеты всех уровней. Для обеспечения своевременного и полного поступления доходов бюджета своевременного ассигнования мероприятий предусмотренных в бюджете целевого направления и эффективного использования средств бюджета как в сфере материального производства так и непроизводственной сфере требуется правильная организация учета исполнения бюджета и...
48328. ОХОРОНА ПРАЦІ 1018 KB
  Охорона праці - це система правових соціальноекономічних організаційно-технічних санітарно-гігієнічних і лікувально-профілактичних заходів і засобів спрямованих на збереження здоровя і працездатності людини в процесі праці. Предметом охорони праці як науки є вивчення умов праці спрямоване на забезпечення не тільки повної безпеки працюючих але і на створення оптимальних комфортних умов для підвищення їх працездатності. До предмету праці також відносяться: працююча людина виробничі колективи процес праці виробниче середовище...
48329. Аудит. Конспект лекцій 2.71 MB
  Реформування системи бухгалтерського обліку, розвиток податкового обліку, впровадження в практику Міжнародних стандартів фінансової звітності визначили значні зміни вимог до аудиту
48330. Воспалительные заболевания гортани, причины, последствия, профилактика 14.67 KB
  Ларингит - воспаление гортани, связанное, как правило, с простудным заболеванием либо с такими инфекционными заболеваниями, как корь, скарлатина, коклюш. Развитию заболевания способствуют переохлаждение, дыхание через рот, запылённый воздух, перенапряжение гортани.
48331. Обчислювальна техніка та програмне забезпечення ПК 615.5 KB
  Інформатика і інформаційні технології Поняття про інформацію та її обробка на ПЕОМ Структура і класифікація технічних засобів інформаційних систем Персональний компютер і його архітектура самост. Слід довідатися про імена людей чиї роботи та винаходи стали основними віхами в історії розвитку обчислювальних пристроїв та машин які функціональні принципи були взяті за основу при створенні персональних комп’ютерів. Структура і класифікація технічних засобів...
48332. Моделювання електронних систем курс лекцій 6.34 MB
  Курс «Моделювання електронних систем» є продовженням курсу «Моделювання в електроніці» та викладається магістрам з електронних систем денної та заочної форми навчання по кафедрі Електронних систем ЗДІА. Даний курс базується на дисциплінах “Твердотіла електроніка”, “Теорія електричних та електронних кіл”, “Аналіз електронних схем”, “Автоматизація схемотехнічного проектування”.
48335. КОНСТИТУЦИОННОЕ ПРАВО РОССИЙСКОЙ ФЕДЕРАЦИИ 342.5 KB
  Системы конституционного права. Соотношение Конституции России и конституционного права. Место конституционного права в системе Российского права. Соотношение конституционного права РФ и международного права