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

 

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

14125. COMPUTER CONFIGURATION 37 KB
  UNIT 3. COMPUTER CONFIGURATION I. Practise reading the following words: component unit device interconnected microprocessor register integrated manage improve performance simplify description identify perform support integers arithmetic sine cosine compare superscalar represent equal rapidly area store single software responsibility significance increase trigonometry. II. Before reading the text try to answer these questions: 1. What components ...
14126. CENTRAL PROCESSING UNIT 36 KB
  UNIT 4. CENTRAL PROCESSING UNIT I. Practise reading the following words: execute fundamental circuit tolerances miniaturization standardization automobile configure advent eventually significantly wiring contents architecture primarily discrete differentiate failure whereas desired retrieve deterring issue register directly cycle entire simultaneously access monolithic separate. II. Before reading the text try to answer these questions: 1. What i...
14127. UNIT 5. MOTHERBOARD 35 KB
  UNIT 5. MOTHERBOARD I. Practice reading the following words: motherboard personal circuit electronic controller component either via determine features wireless expansion industry micro architecture proprietary endure accommodate video monitor prior processor universally current Ethernet graphics existing extension firmware rear failure volatile. II. Before reading the text try to answer these questions: 1. What is a motherboard 2. What is a...
14128. UNIT 6. PERIPHERALS 39 KB
  UNIT 6. PERIPHERALS I. Practise reading the following words: attached scanner internal video accessories refers component processing access similarly represents audio converted accommodate typical processor transform electronic capture included Ethernet chat advantage convert item graphics monitor produces permanent transparencies primarily via. II. Before reading the text try to answer these questions: 1. What components does an ordinary PC...
14129. UNIT 7. KEYBOARDS 46 KB
  UNIT 7. KEYBOARDS I. Practise reading the following words: component primary commands virtually obsolete corporate term universal specification equipment status automating layout arrangement area numeric mode isolated modified vendor menu cursor simulate mandatory via economic requirement environment support minimize sacrifice. II. Before reading the text try to answer these questions: 1. What input devices do you know 2. What input devices d...
14130. Основні етапи розвязування задачі з використанням компютера 67.5 KB
  Тема уроку: Основні етапи розвязування задачі з використанням компютера Мета уроку: Дати поняття про основні етапи розвязування задачі з використанням компютера.Тип уроку: Лекційний. Теоретичний матеріал: Зараз важко уявити собі життя людини без компютера. Люди в
14131. Поняття інформаційної моделі 39 KB
  Тема уроку: Поняття інформаційної моделі Мета уроку: Дати поняття про моделювання та створення інформаційних моделей обєктів.Тип уроку: Лекційний. На початку уроку рекомендується провести усне опитування за темою попереднього уроку з метою визначення засвоєного ма...
14132. Величини. Типи даних. Стандартні типи даних. Набір функцій і операцій, введених для кожного зі стандартних типів 83.5 KB
  Тема уроку: Величини. Типи даних. Стандартні типи даних. Набір функцій і операцій введених для кожного зі стандартних типів. Мета уроку: дати поняття величини та типів даних визначити стандартні типи даних їх опис та набір функцій і операцій для кожного зі стандартних ...
14133. Вказівка надання значення. Вказівки введення та виведення. Структура програми на мові програмування Паскаль 60 KB
  Тема уроку: Вказівка надання значення. Вказівки введення та виведення. Структура програми на мові програмування Паскаль. Мета уроку: дати поняття вказівки присвоювання познайомитись з вказівками введення та виведення зі структурою програми на мові Паскаль.Тип уроку:...