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

 

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

81578. Энергетический обмен в нервной ткани. Значение аэробного распада глюкозы 129.8 KB
  На долю головного мозга приходится 23 от массы тела. Следовательно 100 г мозга потребляет в 1 мин 37 мл кислорода а весь головной мозг 1500 г 555 млкислорода. Газообмен мозга значительно выше чем газообмен других тканей в частности он превышает газообмен мышечной ткани почти в 20 раз. Интенсивность дыхания для различных областей головного мозга неодинакова.
81579. Биохимия возникновения и проведения нервного импульса. Молекулярные механизмы синаптической передачи 109.17 KB
  Молекулярные механизмы синаптической передачи Большинство исследователей придерживаются мнения что явления электрической поляризации клетки обусловлены неравномерным распределением ионов К и Nпо обе стороны клеточной мембраны. Мембрана обладает избирательной проницаемостью: большей для ионов К и значительно меньшей для ионов N. При определенных условиях резко повышается проницаемость мембраны для ионов N. Объясняется это тем что количество ионов N выкачиваемых из клетки с помощью натриевого насоса не вполне точно уравновешивается...
81580. Медиаторы: ацетилхолин, катехоламины, серотонин, γ-аминомаслянная кислота, глутаминовая кислота, глицин, гистамин 107.74 KB
  γАминомасляная кислота выполняет в организме функцию ингибирующего медиатора центральной нервной системы. Действие ГАМК в ЦНС осуществляется путём её взаимодействия со специфическими ГАМКергическими рецепторам Глутаминовая кислота является нейромедиаторной аминокислотой одним из важных представителей класса возбуждающих аминокислот. Эндогенные лиганды глутаминатных рецепторов глутаминовая кислота и аспарагиновая кислота.
81581. Нарушения обмена биогенных аминов при психических заболеваниях. Предшественники катехоламинов и ингибиторы моноаминооксидазы в лечении депрессивных состояний 108.33 KB
  Предшественники катехоламинов и ингибиторы моноаминооксидазы в лечении депрессивных состояний. Например резерпин понижающее артериальное давление средство специфически тормозит процесс переноса катехоламинов в специальные гранулы нейронов и тем самым делает эти амины доступными действию эндогенной МАО. Многие антидепрессанты вещества снимающие депрессию увеличивают содержание катехоламинов в синаптической щели т. К таким веществам в частности относятся имипрамин блокирует поглощение норадреналина нервными волокнами амфетамин...
81582. Физиологически активные пептиды мозга 109.08 KB
  Нейропептиды осуществляют контроль за экспрессией вторичных клеточных мессенджеров, цитокинов и других сигнальных молекул, а также за запуском генетических программ апоптоза, антиапоптозной защиты, усиления нейротрофического обеспечения. Такие регуляторные (модуляторные) влияния устраняют общую дезинтеграцию во взаимодействии сложных и часто разнонаправленных молекулярно-биохимических механизмов
81583. Предмет и задачи биологической химии. Обмен веществ и энергии, иерархическая структурная организация и самовоспроизведение как важнейшие признаки живой материи 106.91 KB
  Обмен веществ и энергии иерархическая структурная организация и самовоспроизведение как важнейшие признаки живой материи. Она изучает химическую природу веществ входящих в состав живых организмов их превращения а также связь этих превращений с деятельностью клеток органов и тканей и организма в целом. Из этого определения вытекает что биохимия занимается выяснением химических основ важнейших биологических процессов и общих путей и принципов превращений веществ и энергии лежащих в основе разнообразных проявлений жизни. Важнейшим...
81584. Гетеротрофные и аутотрофные организмы: различия по питанию и источникам энергии. Катаболизм и анаболизм 106.04 KB
  Живые клетки постоянно нуждаются в органических и неорганических веществах а также в химической энергии которую они получают преимущественно из АТФ АТР. Гетеротрофы например животные и грибы зависят от получения органических веществ с пищей. Так как большая часть этих питательных веществ белки углеводы нуклеиновые кислоты и липиды не могут утилизироваться непосредственно они сначала разрушаются до более мелких фрагментов катаболическим путем. Процесс обмена веществ определяется двумя сопряженными процессами: анаболизма и...
81585. Многомолекулярные системы (метаболические цепи, мембранные процессы, системы синтеза биополимеров, молекулярные регуляторные системы) как основные объекты биохимического исследования 103.39 KB
  Метаболическая цепь состоящая из реакций протекающих внутри одной системы называется внутренней. Следствием такого пересечения является возникновение метаболической сети биологической системы. Молекулярные регуляторные системы системы направленные на поддержание гомеостаза.
81586. Уровни структурной организации живого. Биохимия как молекулярный уровень изучения явлений жизни. Биохимия и медицина (медицинская биохимия) 105.42 KB
  Биохимия как молекулярный уровень изучения явлений жизни. Жизнь имеет следующие уровни организации: Молекулярный уровень отражает особенности химизма живого вещества а также механизмы и процессы передачи генной информации Клеточный и субклеточный уровни отражают особенности специализации клеток а также внутриклеточные структуры. Организменный и органнотканевый уровни отражают признаки отдельных особей их строение физиологию поведение а также строение и функции органов и тканей живых существ Популяционновидовой уровень ...