Другие языки программирования и технологии

ЗАДАЧА ПАСКАЛЬ СРОЧНО

Нужно решить задачу, понимаю как, но сам на паскале особо не работаю, поэтому не знаю, как это записать на нём.

Напишите Программу, которая печатает показанный ниже треугольник 10 на 10. Все звёздочки (*) должны печататься единственным оператором write('*'). Т.е. не должно быть операторов вида write ('*********')

Могу ошибаться, но я бы создал цикл for, в котором печатался символ n раз и каждый раз n уменьшалось бы на 1, а после того, как символ печатается n раз, реализовать перевод строки.

Один человек уже предлагал решение, за что я ему очень благодарен, но во-первых там треугольник был перевёрнутый, а во-вторых там нужно выравнивание по центру. Вот его решение:

program triangle;
var
i,g:integer;
begin
for i:=1 to 10 do begin
for g:=1 to i do write('*');
writeln
end
end.

Спасибо!
Паскаль го#но, забей болт, скажи училке "мимо, мимо"
КС
Кирилл Савенков
504
Лучший ответ
Антон Скоморохов впринципе согласен, но мне надо
Дмитрий Коротков Сам ты это самое, что назвал. А Паскаль - нормальный язык. Если у тебя руки кривые, то дело не в языке программирования, а в тебе самом.
Юрий Васильев Паскаль - лютая годнота для обучения программированию. Он был создан как язык для обучения, и идеально для него подходит.
С таким подходом у вас не получится, т.к. нельзя вывести строку со смещением в половину знакоместа. Могу предложить следующий вариант: во-первых, выводите на "звездочку", а "звездочку+пробел" и, во-вторых, до вывода звездочек выводите нужное число пробелов (в первой строке ноль, во второй один и т.д.). Примерно вот так:
var
i,j,g:integer;
begin
for i:=1 to 10 do begin
for j:=0 to i-1 do Write(' ');
for g:=i to 10 do write('* ');
writeln;
end;
end.

И да, не слушай Elliot
С таким подходом у вас не получится, т.к. нельзя вывести строку со смещением в половину знакоместа. Могу предложить следующий вариант: во-первых, выводите на "звездочку", а "звездочку+пробел" и, во-вторых, до вывода звездочек выводите нужное число пробелов (в первой строке ноль, во второй один и т.д.). Примерно вот так:
var
i,j,g:integer;
begin
for i:=1 to 10 do begin
for j:=0 to i-1 do Write(' ');
for g:=i to 10 do write('* ');
writeln;
end;
end.

И да, не слушай Elliot
Юрий Васильев
Юрий Васильев
23 484
С таким подходом у вас не получится, т.к. нельзя вывести строку со смещением в половину знакоместа. Могу предложить следующий вариант: во-первых, выводите на "звездочку", а "звездочку+пробел" и, во-вторых, до вывода звездочек выводите нужное число пробелов (в первой строке ноль, во второй один и т.д.). Примерно вот так:
var
i,j,g:integer;
begin
for i:=1 to 10 do begin
for j:=0 to i-1 do Write(' ');
for g:=i to 10 do write('* ');
writeln;
end;
end.

И да, не слушай Elliot
С таким подходом у вас не получится, т.к. нельзя вывести строку со смещением в половину знакоместа. Могу предложить следующий вариант: во-первых, выводите на "звездочку", а "звездочку+пробел" и, во-вторых, до вывода звездочек выводите нужное число пробелов (в первой строке ноль, во второй один и т.д.). Примерно вот так:
var
i,j,g:integer;
begin
for i:=1 to 10 do begin
for j:=0 to i-1 do Write(' ');
for g:=i to 10 do write('* ');
writeln;
end;
end.

И да, не слушай Elliot
AR
Andrian Romaniuc
334
С таким подходом у вас не получится, т.к. нельзя вывести строку со смещением в половину знакоместа. Могу предложить следующий вариант: во-первых, выводите на "звездочку", а "звездочку+пробел" и, во-вторых, до вывода звездочек выводите нужное число пробелов (в первой строке ноль, во второй один и т.д.). Примерно вот так:
var
i,j,g:integer;
begin
for i:=1 to 10 do begin
for j:=0 to i-1 do Write(' ');
for g:=i to 10 do write('* ');
writeln;
end;
end.

И да, не слушай Elliot
while True:
False