Ir ao conteúdo
  • Cadastre-se

Iniciante Programação ( Ajuda )


Ir à solução Resolvido por Lindemberg_santos,

Posts recomendados

Pessoal, criei meu primeiro programinha  :rolleyes:,  mas estou com uma dúvida em relação ao programa, vamos lá:

 

Na print que postei, onde tem:    NomeLindemberg

                                                          Serie1°B

                                                          Media10

 

Queria deixar separados, assim>                         

                                                   

                                                 Nome  Lindemberg

                                                 Serie   1°B

                                                 Media  10

 

        o que devo adicionar para esse espaçamento?

 

 

 Vamos ao Programa:  

 Program Calc_media ;    Var      nota1, nota2, nota3:Integer;serie, nome:string[20];media:real;  Begin   writeln('Informe o nome do aluno');   readln(nome);   writeln('Informe a serie do aluno');   readln(serie);   writeln('Informe a primeira nota');   readln(nota1);   writeln('Informe a segunda nota');   readln(nota2);   writeln('Informe a terceira nota');   readln(nota3);   // Calc_Media   media := (nota1+nota2+nota3) /3;   // Resultado   writeln('Nome',nome);      writeln('Serie',serie);      writeln('Media',media :4:1);    End.

post-738847-0-23987400-1412005505_thumb.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá Lindemberg_santos.

 

Pelo que eu entendi, basta alinhar apenas as Strings (textos) que estão antes das variáveis.

writeln('Nome  ',nome);writeln('Serie ',serie);writeln('Media ',media :4:1);

Ou seja, apenas foram colocados espaços com a finalidade de todos terem o mesmo tamanho...

Daí será precisa ajustar a exibição da variável "media". Sugiro deixar ":0:1". Ficando mais ou menos assim:

writeln('Nome  ',nome);writeln('Serie ',serie);writeln('Media ',media :4:1);

PS: A título de curiosidade, essa formatação :X:Y  funciona da seguinte forma:

x = "insere espaços a esquerda, até que a String (o que está sendo exibido) contenha no mínimo "X" caracteres". No seu exemplo, se o valor original que vai aparecer fosse "2.5"., colocando esse "4", o Pascal vai adicionar "1" espaço a esquerda, ficando " 2.5" (original tem 3, logo inserir 1 espaço para dar 4), entendeu?

y = "quantidade de casas decimais". Nem preciso explicar, né?

Obs.: esse definição é pessoal, estou utilizando as minhas palavras...


PS2: As variáveis não-numérias também aceitam essa formatação, ex.:

writeln('Nome  ',nome:10);

No caso, estou definindo que o conteúdo de "nome" vai ser exibido com pelo menos 10 caracteres, sendo que será adicionado espaços a esquerda... beleza?

 

 

 

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

Olá Simon, compreendi tudo que o Sr falou, mas a minha pergunta ficou meio confusa mesmo, vou tentar te explicar melhor

 

 

Como pode ver no print que mostrei os nomes estão colados assim:  NomeLindemberg,   Serie1°, eu queria deixar eles separados, assim: Nome Lindemberg,  Serie 1°.                                    (Estão colados)  

                              (Agora estão separados)

 

Gostaria de separalos no pascal como no exemplo acima, o que devo colocar para separar os nomes?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olia Lindemberg_santos.

Minha jusgestão de alteração deixaria mais ou menos assim

writeln('Nome  ',nome);writeln('Serie ',serie);writeln('Media ',media:0:2);

Obs.: veja que em "nome" tem 2 espaços depois. Em "Serie" e "media" tem 1 espaço. Assim a coluna onde aparece dos dados ficam alinhados pela esquerda...

Em fim, para dá espaço entre um texto e uma variável, basta "imprimir um espaço"... :)

Original

'Nome'

Com espaços

'Nome  '

Percebes?


No aguado.

Link para o comentário
Compartilhar em outros sites

  • Solução

Muito obrigado Simon, explica muito bem, aprendi de verdade :D:D:D:lol::lol::D

dfeuew.png

UPDATE

Melhorei o programa, olha só: :D:D:D:D:D:D

mkk80i.png

Program Calc_media_Aluno ;    Var      nota1, nota2, nota3:Integer;serie, nome:string[20];media:real;  Begin   writeln('Informe o nome do aluno');   readln(nome);   writeln('Informe a serie do aluno');   readln(serie);   writeln('Informe a primeira nota');   readln(nota1);   writeln('Informe a segunda nota');   readln(nota2);   writeln('Informe a terceira nota');   readln(nota3);   // Calc_Media   media := (nota1+nota2+nota3) /3;      // Condição e informações do aluno      IF media>=7 then    Begin      write('Nome: ',nome); write('  '); write('Serie: ',serie); write('  Aprovado media ',media: 0:1);    end   Else    Begin      write('Nome: ',nome); write('  '); write('Serie: ',serie); write('  Reprovado media ',media: 0:1);    end;  End.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá Lindemberg_santos

 

Só uns adendos...
 

   IF media>=7 then    Begin      write('Nome: ',nome); write('  '); write('Serie: ',serie); write('  Aprovado media ',media: 0:1);    end   Else    Begin      write('Nome: ',nome); write('  '); write('Serie: ',serie); write('  Reprovado media ',media: 0:1);    end;  End.

Não necessariamente você precisa deixar os comandos na mesma linha...
Ex.:

write('Nome: ',nome);write(' ');write('Serie: ',serie);write(' Aprovado media ',media: 0:1);

Ou seja, quem define se a linha vai descer na hora de imprimir é o "ln", no caso dos writeln...beleza? Mas da forma que você escreveu fica mais fácil para ler...!!! (acho mais recomendado do seu jeito)


Aproveitando... dá para simplesmente imprimir tudo num comando só, ex.:

write('Nome: ',nome,' Serie: ',serie,' Aprovado media ',media:0:1);

Cada comando é separado por uma ",".  Daí, apenas coloca os espaços nas Strings (textos entre as aspas), ou seja, como o espaço está dentro das aspas, o Pascal entende que é para ser impresso...

Mas se tiver fora, ele ignora, veja:

write('Nome: ',      nome         ,' Serie: ',serie,       ' Aprovado media ',media:0:1);

Esse espaços entre a variável nome é ignorada (apenas estética para o código fonte), assim como esses antes do ' Aprovado media '. :)

 

 

Outra coisa, mas porque está utilizando  :0:1? Geralmente a média tem tem duas casas decimais... ai no caso seria :0:2... mas isso é só uma opinião... você pode usar o que achar mais conveniente...
 

No aguardo.

Link para o comentário
Compartilhar em outros sites

Olá, estava sem nada para fazer, do nada veio essa ideia:

 

Fiquei todo embananado ( me desculpem sou iniciante ) 

 

 

 

 

 

Program Times_Adivinhe ;

  Var
    Time1, Time2, Time3: String;
 Begin
    Time1:= Flamengo;
    Time2:= Vasco;
    Time3:= Botafogo;
    
    writeln('Tente advinhar uns dos meus 3 times de futbol');
    
    IF Time1 and Time2 and Time3 then
    Begin
    writeln('voce acertou');
    
 
    Else 
    writeln('voce nao acertou');
    end;
     
    
 End.
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

Esse conteúdo não é referente a esse tópico, já que se trata de outro problema. Neste caso, por favor, abra um novo, ok?

 

Abraços

 

 

 

Olá, estava sem nada para fazer, do nada veio essa ideia:

 

Fiquei todo embananado ( me desculpem sou iniciante ) 

 

 

 

 

 

Program Times_Adivinhe ;

  Var
    Time1, Time2, Time3: String;
 Begin
    Time1:= Flamengo;
    Time2:= Vasco;
    Time3:= Botafogo;
    
    writeln('Tente advinhar uns dos meus 3 times de futbol');
    
    IF Time1 and Time2 and Time3 then
    Begin
    writeln('voce acertou');
    
 
    Else 
    writeln('voce nao acertou');
    end;
     
    
 End.

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...