Fórum Alinhar Exibição de Resultados #561575

26/08/2016

0

Olá !

Bom, minha situação é a seguinte, um exercício foi a mim proposto, executei-o com êxito sem problema, o funcional do programa está ok. Porém em termos estéticos não estou conseguindo fazer o que tenho em mente. Abaixo listarei em (modo console) pois a implementação Orientada a Objeto ainda estou terminando, porém faltam esses ajustes ; como sai o resultado, como eu gostaria que estivesse e o código para que se possível alguém pudesse me ajudar agradecerei.

Como está a apresentação do Programa :

[url]http://i.imgur.com/B641Zcn.png[/url]


Como eu gostaria que ficasse (Fiz a modificação da imagem no PAINT) :

[url]http://i.imgur.com/N7RmnBR.png[/url]


Bom, nessa segunda imagem, o que eu também gostaria (dentro mesmo do modo console pois orientado objeto já sei como fazer) era a questão do "R$" também não consegui arranjar um jeito para que o mesmo aparece-se ao lado ali dos respectivos valores.


Abaixo está o CÓDIGO para análise :

const MAX=5;
Type produto=record  
nome:string;  
preco:real;
End; 
 
tipo_produto=array[1..MAX] of produto;  
var
produtos:tipo_produto;

procedure Leitura(var produtos:tipo_produto);
var
i:integer;
Begin
for i := 1 to MAX do
Begin          
Write(' Nome do Produto  : ');
readln(produtos[i].nome);         
Write(' Preco do Produto : ');
readln(produtos[i].preco);
Writeln;
End;
writeln;
writeln;

writeln('----- LISTAGEM DE PRODUTOS -----');
for i := 1 to MAX do
Begin	
writeln;
writeln(  '   Produto  '                         ,                                            '        Preco      '); 
writeln(  produtos[i] . nome                       ,                                            produtos[i] . preco:0:2);   
End
End;

Begin
Leitura(produtos);
readln();
End.




Desde já agradeço qualquer tipo de ajuda.
André Moutinho

André Moutinho

Responder

Posts

26/08/2016

Natanael Ferreira

Você pode utilizar a Format para formatar a string com tamanho fixo.

Teste o código assim:

uses
  SysUtils;

const
  MAX = 2;

Type
  produto = record
    nome: string;
    preco: real;
  End;

  tipo_produto = array [1 .. MAX] of produto;

var
  produtos: tipo_produto;

procedure Leitura(var produtos: tipo_produto);
var
  i: integer;
Begin
  for i := 1 to MAX do
  Begin
    Write(' Nome do Produto  : ');
    readln(produtos[i].nome);
    Write(' Preco do Produto : ');
    readln(produtos[i].preco);
    Writeln;
  End;
  Writeln;
  Writeln;

  Writeln('----- LISTAGEM DE PRODUTOS -----');
  for i := 1 to MAX do
  Begin
    Writeln;
    Writeln('   Produto  ', '        Preco      ');
    Writeln('   ', Format('%-17s', [produtos[i].nome]), 'R$ ' , produtos[i].preco:0:2);
  End
End;

Begin
  Leitura(produtos);
  readln;

End.
Responder

Gostei + 0

26/08/2016

André Moutinho

Você pode utilizar a Format para formatar a string com tamanho fixo.

Teste o código assim:

uses
  SysUtils;

const
  MAX = 2;

Type
  produto = record
    nome: string;
    preco: real;
  End;

  tipo_produto = array [1 .. MAX] of produto;

var
  produtos: tipo_produto;

procedure Leitura(var produtos: tipo_produto);
var
  i: integer;
Begin
  for i := 1 to MAX do
  Begin
    Write(' Nome do Produto  : ');
    readln(produtos[i].nome);
    Write(' Preco do Produto : ');
    readln(produtos[i].preco);
    Writeln;
  End;
  Writeln;
  Writeln;

  Writeln('----- LISTAGEM DE PRODUTOS -----');
  for i := 1 to MAX do
  Begin
    Writeln;
    Writeln('   Produto  ', '        Preco      ');
    Writeln('   ', Format('%-17s', [produtos[i].nome]), 'R$ ' , produtos[i].preco:0:2);
  End
End;

Begin
  Leitura(produtos);
  readln;

End.


Então, estou usando o PascalZIM para escrever em console mode, e ele não reconhece o SysUtils, assim como o Format.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar