Задачи по языку С



         

Пояснения:


Стиль программирования 1.1.

Если изменить условие, то часто удается избавиться от оператора продолжения. Иногда получившаяся программа становится существенно проще. В этой задаче достаточно изменить условие в условном операторе.

while(A) if (!B) C;

Стиль программирования 1.2.

Оператор do...while - это такая конструкция языка С, от которой лучше избавляться. Если можно использовать либо оператор do...while, либо оператор while, то следует всегда предпочитать второй, так как в нем условие проверяется перед каждым выполнением тела цикла. Тот факт, что условие продолжение цикла не проверяется перед первым выполнением тела цикла, служит источником многих ошибок.

В этой задаче операторы do...while и условный - лишние; их можно заменить оператором while.

do { if (A) { B; C: } } while (A) Вначале избавимся от оператора продолжения.
while (A) { B; C; } Затем заменяем операторы do...while и условный на оператор while.

Стиль программирования 1.3.

Насколько трудно разобраться в конструкциях со многими вложенными условными операторами, хорошо известно программистам: когда доходишь до самого внутреннего условия, внешние условия забываешь или упускаешь из виду. Можно, конечно, полностью пояснить условия, но тогда они становятся слишком длинными и непонятными с самого начала. Во всяком случае, лучше всегда придерживаться меры.

Здесь предлагается два способа решения этой проблемы:

if ( a && B && C ) D; else if (!A && B && C ) E; else if (!A && B && !C ) F;

или if (B) if ( A && C ) D; else if (!A && C ) E; else if (!A && !C ) F;

Стиль программирования 1.4

По идее, эта задача строго иерархична:

  • пока есть символы в строке;
  • в зависимости от вида символа используется один из нескольких вариантов:

  • выдается ALPHA;
  • выдается DIGIT;
  • выдается OTHER.

Это легко записать на языке С:

while ( (c=getchar())!='\n') { if ( c>='a' && c<='z' ) return (ALPHA); else if ( c>='0' && c<='9' ) return (DIGIT); else if ( c!=' ' && c!='\t' ) return (OTHER); } return (EOL);




Содержание  Назад  Вперед