Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pascal.Frb

Pascal - Desenhar reta entre 2 pontos

Recommended Posts

Olá.

 

 

Queria uma ajuda de um trabalho que tenho que fazer e nao estou conseguindo.

Tenho que fazer o programa para que o usuario entre com as cordenadas e imprima a reta, tanto na horizontal, como vertical e na diagonal, podendo serem impressa mais de uma vez uma por cima da outra.

Segue abaixo o enunciado para melhor entendimento:

 

  • O usuário deve entrar com 2 coordenadas x,y para que se desenhe uma reta de caracteres * entre os dois pontos da tela. Deve haver uma moldura na tela entre as coordenadas (1,1) e (80,20). As linhas abaixo da linha 20 serão usadas para cabeçalho e leitura escrita de informações;
  • O usuário deve ter uma opção de criar quantas retas quiser (sobrepostas), limpar a tela das retas anteriores e de sair do programa;

program t2;
 
uses crt;
 
var i,j,x1,y1,x2,y2: byte;
resp:char;
 
 
BEGIN                 {Inicio...}
  repeat
    ClrScr;
    textcolor(15);
    Gotoxy(10,21);
    Writeln('<<<--PROGRAMA SIMULA DESENHO DE RETAS ENTRE 2 PONTOS X,Y-->>>');
    Writeln;
    
      textcolor(15);
      repeat
         gotoxy(1,22);
         write('INFORME A CORDENADA X1: ');
         gotoxy(24,22);
         readln(x1);
      until (x1 > 1) and (x1 < 20);
         writeln;
      repeat
         gotoxy(1,22);
         write('INFORME A CORDENADA Y1: ');
         gotoxy(24,22);
         readln(y1);
      until (y1 > 1) and (y1 < 80);
      repeat
         gotoxy(1,22);
         write('INFORME A CORDENADA X2: ');
         gotoxy(24,22);
         readln(X2);
      until (X2 > 1) and (X2 < 80);
      repeat
         gotoxy(1,22);
         write('INFORME A CORDENADA Y2: ');
         gotoxy(24,22);
         readln(Y2);
      until (Y2 > 1) and (Y2 < 80);
 
      for i:=1 to x1 do begin
 
          for j:=1 to x2 do begin
              gotoxy(i+1,x1);
              write('*');
          end;
              gotoxy(x2,j);
              write('*');
      end;
 
      for i:=1 to y1 do begin
 
         for j:=1 to y2 do begin
            gotoxy(i+1,y1);
            write('*');
         end;
            gotoxy(y2,j);
            write('*');
       end;
       textcolor(9);
       gotoxy(25,24);
       writeln('DESEJA CONTINUAR ? (S/N)');
       resp:=upcase(readkey);
  until resp='N';
END.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho como compilar, como estao as saídas de acordo com seu código fonte?

oq precisa?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho como compilar, como estao as saídas de acordo com seu código fonte?

oq precisa?

 

[]s

 

não esta fazendo as retas como tem que ser. Ou seja, Na horizontal, vertical e diagonal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você usar matriz ao invez de gotoxy acho q você consegue..

se n tiver idéia de como fazer como falei posta ae.. + de uma pensada..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.