Руководство полного чайника по программированию на языке Си


Теперь треугольник должен быть равнобедренным


/* Треугольник из звездочек */ /* Теперь треугольник должен быть равнобедренным */

#include

/* nstars - сколько звездочек напечатать */ /* nspaces - сколько пробелов напечатать перед звездочками */

void drawOneLine(int nspaces, int nstars){ int i; /* номер печатаемой звездочки, счетчик */ /* он же - номер печатаемого пробела */

for(i=0; i < nspaces; i++) putchar(' '); for(i=0; i < nstars; i++) putchar('*'); putchar('\n'); }

/* n (номер строки) ...* 1 ..*** 2 .***** 3 ******* 4

Всего строк: LINES Число звездочек в n-ой строке: n*2 - 1 Число пробелов спереди (обозначены точкой): LINES - n

Все эти числа подсчитываются с картинки...

Их мы будем передавать в функцию drawOneLine в точке _вызова_, а не вычислять в самой функции. Функция для того и заведена, чтобы не вычислять ничего КОНКРЕТНОГО - все параметры ее переменные, и должны ПЕРЕДАВАТЬСЯ в нее из точки вызова.

В качестве параметра в точке вызова можно передавать не только значение переменной, но и значение выражения, то есть формулы.

*/ void main(){ /* ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ */ int LINES = 25; /* всего строк. Это описание переменной сразу с ее инициализацией */ int nline; /* номер строки */

/* ВЫПОЛНЯЕМЫЕ ОПЕРАТОРЫ (ДЕЙСТВИЯ) */ for(nline=1; nline <= LINES; nline++) drawOneLine(LINES - nline, /* число пробелов --> nspaces */ nline*2 - 1 /* число звездочек --> nstars */ ); }




- Начало -  - Назад -  - Вперед -