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

 

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

41726. Исследование электрической цепи с последовательным и параллельным соединениями приёмников электрической энергии 349.01 KB
  Проверка на опыте особенностей последовательного и параллельного соединения резисторовэ,и при этом образуется неразветвленная цепь или участок цепи. Для последовательного соединения характерно то что во всех этих резисторах возникает одинаковый ток а падения напряжения на них пропорциональны сопротивлениям: Каждое сопротивление может быть найдено по формулам: Падение напряжения на всем участке цепи равно сумме падений напряжений на каждом резисторе: Эквивалентное сопротивление участка цепи равно сумме сопротивлений каждого резистора: Если же к концам участка вместо трех резисторов подключить эквивалентный...
41727. Органолептическая оценка качества сырья и приготовление полуфабрикатов из мяса и домашней птицы 101.48 KB
  Организация рабочего места используемые технологическое оборудование посуда инвентарь из мясного цеха Органолептическая оценка мяса. Признаки свежести мяса. Полуфабрикаты из мяса приготовление котлетной массы.
41728. Решение оптимизационных задач с помощью надстройки Excel «Поиск решения» 21.87 MB
  Ниже перечислены основные правила которыми следует руководствоваться чтобы создать качественную модель на основе электронных таблиц: необходимо четко обозначить все переменные; следует четко обозначить входы модели переменные решения и параметры; надо указать критерии эффективности и выходные переменные; не следует жестко привязывать значения параметров к формулам параметры должны храниться в отдельных ячейках рабочего листа для удобства документирования и анализа; если это возможно надо отделять переменные представляющие...
41729. Построение графиков функций 88.96 KB
  5x2cosx Создание приложений.5x2cosx end; Функции описывающие переход от вещественных координат к экранным по оси Х function xex:rel:integer; begin xe:=roundxxmin dx10; end; по оси Y function yey:rel:integer; begin ye:=Form1. № вар F1x F2x F3x F4x 1 2 3 4 5 1 cosx 2cosx cos2x Cosx 2 2 sinx 2sinx sin2x sinx 2 3 Expx 2Expx Exp2x Expx 2 4 cosx0.5x 2cosx2x cos2x4x 3xCosx 2 5 6 3xsinx x 3 –cosx 3 x3cosx xcosx 3 7 8 9 Expx Expx 2 Expx1 Exp2x 10 Expx2x...
41730. Создание статического и динамического изображения 550.85 KB
  Ход работы Создал канал уровень который пропорционален уровню продукта в емкости рисунок 2.1 а Создал генератор синусоидального сигнала и произвёл его привязку к созданному каналу рисунок 2. а б Рисунок 2.1 – Процесс создания канала Уровень и генратора Синусоида Создал экран с расположением на нем тренда строящего зависимость уровня...
41731. Складання програми сортування обєктів 64.74 KB
  Складання програми сортування об’єктів Мета роботи: Складання програми сортування об’єктів за кольором. Завдання на лабораторну роботу: Скласти програму сортування кольорових об’єктів з використанням датчика кольору для визначення кольору об’єктів та двох тактильних датчиків для калібрування робота. Програма мусить виконувати наступні функції: Керування сервоприводом для подавання об’єктів на виявлення кольору об’єкту. Керування механізмом що містить відділення для об’єктів сортування за допомогою сервопривода.
41732. Исследование затянутых болтов 362.76 KB
  Метрические резьбы делятся на крупную и пять мелких. Крепежные резьбы выполняются однозаходными треугольного профиля. По направлению винтовой линии резьбы делятся на правые и левые. Крепежные резьбы должны обладать большой прочностью на сдвиг поэтому их профиль принят треугольным.
41734. Ввод формул в Ехсеl 791.04 KB
  Ввод формул Ввести формулу в ячейку можно двумя способами: вручную или указав ссылки на ячейки. Ручной ввод формул означает что вы просто активизируете ячейку в которую хотите ввести формулу и вводите в ней знак равенства = а затем саму формулу. Если знак равенства пропустить выражение введенное в ячейку или строку формул будет интерпретироваться как текстовое значение и просчитано не будет. По мере ввода формул программа Excel выделяет каждую ссылку на ячейку другим цветом.