Уж сколько раз твердили миру, что
"Лесенка"
должна отражать структурную
вложенность языковых конструкций.
Рекомендуется отступ не менее 2-х и
не более 8-и пробелов. Принятого
отступа нужно придерживаться во
всем тексте программы.",
да только все не впрок!
И всегда
найдется программист, который не
хочет/не может/не умеет делать
лесенку в программе на Си. Помогите
инвалиду, который не может ходить
по лесенке -- сделайте ему лифт :).
В данном
случае мы считаем, что в
удобочитаемой программе языковые
конструкции, комментарии и проч.
написаны в стиле K&R (Brian Kernighan &
Dennis Ritchie -- авторы языка Си, а не Kopyta
& Roga :). Описание этого и других
стилей можно найти в [6].
Требуется
написать программу, которая
преобразует текст (синтаксически
верной) программы на Си в
удобочитаемый, расставляя лесенку
и проч. согласно стилю K&R. При
этом, конечно, программа должна
остаться синтаксически верной.
Например:
До
indent |
После
indent |
#include <stdio.h> void main() { printf("Hello, world!\n"); }
|
#include <stdio.h> void main() { printf("Hello, world!\n"); }
|
#include <stdio.h> int i; float r; /* начало программы */ int main() { do { printf('введи целое положительное: '); scanf("%d",&i); if (i<0) { printf("ошибка!\n");} while (i >0); r=3.14*i*i; printf( "Pi*i*i=%f\n",r); return 0; }
|
#include <stdio.h> int i; float r; /* начало программы */ int main() { do { printf("введи целое \ положительное: "); scanf("%d", &i); if (i<0) { printf("ошибка!\n"); } } while (i>0); r=3.14*i*i; printf("Pi*i*i=%f\n",r); return 0; }
|
Все параметры indent можно найти в [6].
Список параметров необходимо
уточнить при составлении
Соглашений о требованиях.
Усложнение
(по
желанию студента):
- при просмотре выделять полужирным и/или цветом
ключевые слова в тексте программы;
- при просмотре выделять цветом внесенные изменения.
Упрощение
(по
желанию студента, со снижением
итоговой оценки): сделать из
программы только безмолвную
утилиту passtair
options infile outfile
|