kemey написав:HetmanNet написав:kemey написав:Задача така: потрібно щоб користувач ввів висоту рівнобедреного трикутника, а програма намалювала цей трикутник. Розв'язок ось(знайшла в інтернеті, все працює):
#include <iostream>
using namespace std;
int main()
{
int h;
cin >> h;
for (int i = 0; i<h; i++)
{
for (int j = 1; j < h - i; j++)
cout << ' ';
for (int j = h - 2*i; j <= h; j++)
cout << '*';
cout << endl;
}
system("pause");
return 0;
}
Хтось може пояснити такий код, ламаю голову вже який день
Не розумію толком як функціонують два вкладених цикли, які в першому циклі.
Раджу в IDEшці поставити точку зупинки перед ними і потім пройтися покроково..
може я не так пояснила, не можу зрозуміти як програма вимальовує ті символи ,щоб намалювати трикутник,за те відповідають ті вкладені цикли, поясніть хтось!)
Почнемо з того що перший цикл робить відступами, їх кількість дуже проста: "(ширина_піраміди - 1 )/2 - номер_строки".. строки нумеруються з 0.. тобто на 0 це 10.. на 1 це 9.. і т.д.
Зробивши відступ у строчці першим циклом другий ставить *, кількість визначає по принципу "номер_строки * 2 + 1".. тобто на 0 це 1, на 1 це 3, на 2 це 5.. і т.д.
Після того як завершує ставити * робить перехід на наступну, тобто строчка завершується малюватися після останньої в ній *.
Раджу взяти аркуш у клітинку та уявивши що то екран самій по програмі намалювати вручну.