Alinhamento : Pascal

Jammin @

Power Member
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?
 
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.
 
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.

Código:
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?
 
É 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
 
O que tu queres é:
Código:
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 =)
 
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
 
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:
semttulora7.jpg

Eu sei que deve ser algo no ciclo FOR mas não estou a ver o que seja
 
Última edição:
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
 
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.
 
Última edição:
Back
Topo