Hi guys :)

I've just learn programming in turbo pascal, and my teacher made an assignment to make pyramid of numbers as this:

``````1
1 2
1 2 3
3 2 1
2 1
1``````

so far i've only come up as this:

``````uses crt;

var i,j,k : byte;

begin
clrscr;

for i := 1 to 3 do
begin

for j := 3 downto i do
begin
inc (k);
if i = 2 then k:=3;
gotoxy(i+k,j); write(i);
end;

end;

end.``````

this is the output:

``````1
1 2
1  2 3``````

--------------------(2)------------------
And another one:

Make the word : "Hello" to "olleH"

do I have to use arrays on this one?

I'm totally blank on this one , please point me to the right direction..
----------------------------------------

Can anybody help me?

thanks..

What!!??

This thread is two years old.

## All 5 Replies

for the first one, you could use this:

``````uses crt;
var k,i,j:integer;
begin
clrscr;
for i:=1 to k do
begin
for j:=1 to k-i do
write(' ');
for j:=1 to i do
write(j,' ');
writeln;
end;
for i:=k downto k do
begin
for j:=1 to k-i do
write(' ');
for j:=i downto 1 do
write(j,' ');
writeln;
end;
end.``````

for the second one, there are a lot of methods to reach the result.
thirst one I can think of is:

``````var s:string;
i:byte;
begin
for i:=length(s) downto 1 do
write(s[i]);
writeln;
end.``````

as you can see, no explicit <arrays>
strings are actually arrays.
you could also do it with just one variable. the one with the text.

Oh, I see..

So strings are actualy arrays. I just knew that, thanks :)
I thought I had to make make an array manualy, then use some kind of sort algorithm :eek:

And for the piramid that was a brain teaser.. That was briliant, thank you so much salgau_catalin you saved my ass :cheesy:

My teacher made me make an inversed pyramid..

Heres the code, if anyone needs it:

``````uses crt;

const
pert ='Batas diamond: ';

var
i, j, k,bts: Byte;

begin

for i := bts downto 1 do
begin
inc(k);
gotoxy(1, k);
for j := 1 to i do
begin
Write(j);
end;
end;
k :=0;
for i := 1 to bts do
begin
Inc(k);
gotoXY(1,k + bts);
for j := 1 to i do
begin
Write(j);
end;
end;
k := 0;
for i := bts downto 1 do
begin
Inc(k);
gotoxy(k + bts,k);
for j := i downto 1 do
begin
Write(j);
end;
end;
k := 0;
for i := bts downto 1 do
begin
Inc(k);
gotoXY(k + bts,i + bts);
for j := i downto 1 do
begin
Write(j);
end;
end;

end.``````