netlib.narod.ru | < Назад | Оглавление | Далее > |
Итак, мы рассмотрели то, что можно было бы назвать ядром языка Си. Описанных «кирпичиков» достаточно, чтобы создавать полезные программы значительных размеров, и было бы чудесно, если бы вы, прервав чтение, посвятили этому какое-то время. В следующих упражнениях мы предлагаем вам создать несколько более сложные программы, чем рассмотренные выше.
Упражнение 1-20 |
Напишите программу detab, заменяющую символы табуляции во вводимом тексте нужным числом пробелов (до следующей позиции табуляции). Предполагается, что позиции табуляции расставлены на фиксированном расстоянии друг от друга, скажем, через n позиций. Как лучше задавать n — в виде значения переменной или в виде именованной константы? |
Упражнение 1-21 |
Напишите программу entab, заменяющую последовательности из нескольких пробелов минимальным числом табуляций и робелов таким образом, чтобы вид напечатанного текста не изменился. Используйте теже позиции табуляции, что и в предыдущем упражнении. В случае, когда до очередной позиции табуляции требуется один пробел, что лучше — пробел или табуляция? |
Упражнение 1-22 |
Напишите программу, печатающую ввводимые символы так, чтобы строки занимали не более n позиций. Это значит, что любая строка, длина которой превышает n, должна печататься с переносом на следующие строки. Переносить строки следует после последнего символа, отличного от символа-разделителя, который расположен левее n-й позиции. Позаботьтесь о том, чтобы ваша программа вела себя разумно в случае очень длинных строк, а также когда до n-й позиции не встречается ни одного символа пробела или табуляции. |
Упражнение 1-23 |
Напишите программу, убирающую все комментарии из любой программы на Си. Не забудьте должным образом обработать строки символов и строковые константы. Комментарии в Си не могут быть вложены друг в друга. |
Упражнение 1-24 |
Напишите программу, проверяющую Си-программы на элементарные синтаксические ошибки вроде несбалансированности скобок всех видов. Не забудьте о кавычках (одиночных и двойных), управляющих последовательностях (\n, \t и т.д.) и комментариях. Это сложная программа, если писать ее для общего случая. |
netlib.narod.ru | < Назад | Оглавление | Далее > |