netlib.narod.ru< Назад | Оглавление | Далее >

1.11. Итоги

Итак, мы рассмотрели то, что можно было бы назвать ядром языка Си. Описанных «кирпичиков» достаточно, чтобы создавать полезные программы значительных размеров, и было бы чудесно, если бы вы, прервав чтение, посвятили этому какое-то время. В следующих упражнениях мы предлагаем вам создать несколько более сложные программы, чем рассмотренные выше.


Упражнение 1-20


Напишите программу detab, заменяющую символы табуляции во вводимом тексте нужным числом пробелов (до следующей позиции табуляции). Предполагается, что позиции табуляции расставлены на фиксированном расстоянии друг от друга, скажем, через n позиций. Как лучше задавать n — в виде значения переменной или в виде именованной константы?



Упражнение 1-21


Напишите программу entab, заменяющую последовательности из нескольких пробелов минимальным числом табуляций и робелов таким образом, чтобы вид напечатанного текста не изменился. Используйте теже позиции табуляции, что и в предыдущем упражнении. В случае, когда до очередной позиции табуляции требуется один пробел, что лучше — пробел или табуляция?



Упражнение 1-22


Напишите программу, печатающую ввводимые символы так, чтобы строки занимали не более n позиций. Это значит, что любая строка, длина которой превышает n, должна печататься с переносом на следующие строки. Переносить строки следует после последнего символа, отличного от символа-разделителя, который расположен левее n-й позиции. Позаботьтесь о том, чтобы ваша программа вела себя разумно в случае очень длинных строк, а также когда до n-й позиции не встречается ни одного символа пробела или табуляции.



Упражнение 1-23


Напишите программу, убирающую все комментарии из любой программы на Си. Не забудьте должным образом обработать строки символов и строковые константы. Комментарии в Си не могут быть вложены друг в друга.



Упражнение 1-24


Напишите программу, проверяющую Си-программы на элементарные синтаксические ошибки вроде несбалансированности скобок всех видов. Не забудьте о кавычках (одиночных и двойных), управляющих последовательностях (\n, \t и т.д.) и комментариях. Это сложная программа, если писать ее для общего случая.



netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz