View Full Version : Alinhamento : Pascal


Jammin @
07-11-2007, 15:26
O obejctivo é aparecer umas frases mas divididas em colunas ou seja neste caso a coluna de CHR mas eu substitui isso por xxx so para testar:

program multi;
uses wincrt;
var x,h:integer;
begin
for x:=1 to 5 do
writeln('xxx');
begin
for h:=1 to 5 do
gotoxy(30,0);
writeln('xxx');
end;
end.

O erro e que aparece:

xxx xxx
xxx
xxx
xxx
xxx


e era suposto aparecer:
xxx xxx
xxx xxx
xxx xxx
xxx xxx
xxx xxx


Qual é o erro pessoal?

HecKel
07-11-2007, 16:27
Tu fazes writeln em cada ciclo, no segundo ciclo fazes o mesmo..., o que acontece que isso vá sempre passando para baixo.

Se no segundo ciclo fizeres apenas write vais ficar com o texto "sobreposto" pois o gotoxy é fixo, a meu ver deveria variar consoante a posição do for.

Jammin @
07-11-2007, 18:17
então devo meter um gotoxy(0,0) no primeiro ciclo right?

r3pek
07-11-2007, 18:28
O obejctivo é aparecer umas frases mas divididas em colunas ou seja neste caso a coluna de CHR mas eu substitui isso por xxx so para testar:


O erro e que aparece:

xxx xxx
xxx
xxx
xxx
xxx


e era suposto aparecer:
xxx xxx
xxx xxx
xxx xxx
xxx xxx
xxx xxx


Qual é o erro pessoal?

então devo meter um gotoxy(0,0) no primeiro ciclo right?

não.
o código correcto devia ser este.

program multi;
uses wincrt;
var x,h:integer;
begin
for x:=1 to 5 do
writeln('xxx');
for h:=1 to 5 do begin
gotoxy(30,h);
writeln('xxx');
end;
end.

percebeste a diferença?

Jammin @
07-11-2007, 21:42
Sim, mas eu quero o comando CHR e se o meter as letras já não aparecem =/

r3pek
08-11-2007, 00:10
Sim, mas eu quero o comando CHR e se o meter as letras já não aparecem =/

tao como keres isso exactamente

Jammin @
08-11-2007, 18:50
É a tabela dos caracteres com os atalhos o stor mandoume organizala por colunas como so cabem 23 linhas
do genero

...

for i:=1 to 23 do
writeln(' ',i,' ',chr(i));

...

ate 255 so que nao aparece os caracteres correspondentes

xBoShY
09-11-2007, 10:29
O que tu queres é:
program chr_table;
uses wincrt;
var x,y:integer;

begin
clrscr();
for x:= 1 to 12 do
for y:= 1 to 22 do
begin
gotoxy((x-1)*8, y); /* Espaço entre colunas: 3 */
writeln(i, ' ', chr(i)); /* Formato: 255 C */
end;
end.

Não procurei por problemas de sintaxe e muito menos testei... já não toco em pascal à pelo menos 6 anos =)

Jammin @
09-11-2007, 18:15
BRigado pela ajuda mas so aparece 1 carrada de zeros...

dbu
10-11-2007, 18:29
So aparecem zeros porque a variavel "i" nem está declarada, como ele disse em cima, não procurou por problemas no código, devias ter visto tu isso.

Jammin @
10-11-2007, 18:33
Sim mas a verdade e que ainda estou a tentar corrigir o outro codigo o que ainda não consegui pois continua a não me aparecer o caracter correspondente

Jammin @
10-11-2007, 18:58
Pensei fazer de trás para a frente e já percebi que o raciocinio é esse, mas tenho aqui um erro que estou a olhar a meia hora po pc e não descubro deve ser por tar a queimar

program multi;
uses wincrt;
var x,h:integer;
begin
for x:=1 to 255 do
begin
gotoxy(75,x);
writeln('',x,' ',chr(x));
begin
for h:=23 to 46 do
gotoxy(30,0);
writeln(h,' ',chr(h));
end;
end;
end.

Resultado:
http://img69.imageshack.us/img69/5542/semttulora7.jpg
Eu sei que deve ser algo no ciclo FOR mas não estou a ver o que seja

orgasmics
10-11-2007, 19:08
nao percebi o que querias fazer.. e pascal.. upa upa nao percebo nada disso!
mas.. nao será pelo facto do writeln impor um "\n" no fim da string impondo uma mudança de linha?
cumps

Jammin @
10-11-2007, 19:09
O stor a mim e a outro mandou-nos arrumar a tabela por termos tido a melhor nota no modulo.. aos outros deixou fazer com o write mas ficava tudo desarrumado...

program multi;
uses wincrt;
var x,h:integer;
begin
for x:=1 to 255 do
begin
gotoxy(75,x);
writeln('',x,' ',chr(x));
begin
for h:=207 to 231 do
gotoxy(68,0);
h:=x-48;
writeln(h,' ',chr(h));
end;
end;
end.

Assim ja ta tudo bem excepto escrever as 23 linhas na coluna ao lado começa 207 e depois nada ou seja continua igual.