1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

pascal duvida

Discussão em 'Programação' iniciada por dio_123, 14 de Janeiro de 2009. (Respostas: 11; Visualizações: 1901)

  1. dio_123

    dio_123 Power Member

    estou a criar um programa para entrega do modulo mas tenho uma duvida
    onde esta a vermelho (na caixa abaixo) quero que md*pt esse pt seja percentagem
    (md vezes pt%) mas nao tou conseguir fazer isso?

    desde ja agradeço

     
  2. alfinete

    alfinete Power Member

    em pt les pt e divides por 100,e depois multiplicas a conta final, penso que sera isso.

    do tipo

    percentagem :real;

    readln(pt);
    percentagem = pt/100 ; ou percentagem = pt/100 ; ja não lembro qual o certo , um da resto ou da o resultado da divisão , ja a uns 8 anos que nam mexo em pascal

    mf:=md*percentagem ;
     
  3. cristiano09

    cristiano09 What is folding?

    dio_123 , utilizas que programa para pascal ?

    Um bom programa para trabalhar em pascal é o PascalZim , é free e diz caso faças alguma coisa mal onde tá o erro ..

    Nesse programa até podias ter posto mf:=md*(pt/100)

    Assim escusavas de ter posto mais uma variável no programa , gastas assim menos RAM .
    Lembra-te que nas avaliações dos módulos quanto mais curto e menos variáveis tiver o programa , melhor . Também tou a dar pascal em programação ..

    Espero ter sido útil .

    Cumps
     
  4. dio_123

    dio_123 Power Member

    O programa que uso é o dev-pascal que tambem possue uma função que permite ver onte está o erro.(pascalzim nunca houvi falar mas já que referiste vou exprimentar)
    ontem quando estava a procura de coisas de pascal tambem li isso que quantos menos variaveis tiver melhor e o programa e a sua eficiencia.

    Estou num curso profisional e a avalição é por modulos e o trabalho que tenho de entregar e um programa que calcule a avalição final do modulo. Esse programa tem de ter todas as estruturas que aprendi. (case, for , if while, repeat) O problema é que tentei usar a estrutura for para testes e nao consegui a estrutura while tentei usar para que so desse para por valores entre 1 a 20 mas nao funcionou. Ou seja a estruturas que neste momento esta no programa é o if (o case vai para o final, se tiver entre 0 e 10 tera de repetir o modulo e se tiver entre 10 e 20 parabens passou no modulo.

    Problema actual onde vou usar a estrutura for e a estrutura while? queria que me dessem uma opiniao.


     
  5. dio_123

    dio_123 Power Member

    como faço para que no meu programa só seja possivel introduzir valores de 1 a 20 no testes?
     
  6. Cambalinho

    Cambalinho Power Member

    penso que podes fazer assim:
    100%->20
    então
    x%->y
    ou seja, utilizas a percentagem final para converter num valor de 1 a 20.
    e para fazeres esse calculo usas a regra de 3 simples.
    (100/X) = (20/Y) <=> y = (20 * x)/100
    X é a percentagem do teste.
    Y é o valor do teste.
    penso que é esta a formula.
    espero ter ajudado.
     
  7. cristiano09

    cristiano09 What is folding?

    Deixa me ver se percebi .
    Queres um programa que use todas as estruturas que aprendeste , sobre notas de testes ?
    Porque não fazes vários programas com 1 estrutura ?

    Por exemplo, um programa com IF , outro programa com While , outro programa com Case of, etc .. ?
    Se for assim percebo muito bem o que o teu professor(a) pediu . Eu também estou num curso profissional , sei bem o que é .
    E é capaz de ser como te estou a dizer , um programa com estruturas diferentes.

    Por exemplo:

    Por exemplo, neste programa utilizei o for , o repeat e o if .

    Tenta levar este programa ..
    Espero ter ajudado .

    Cumps ;)
     
  8. blackcupra

    blackcupra Power Member

    tenta isto

    writeln('introdusa valor');
    readln(x);
    if(x<0) and (x>20)then
    begin
    writeln('erro');
    end
    else
    depois continuas ...;)
     
  9. cristiano09

    cristiano09 What is folding?

    ... já tinha posto o repeat , anyway ..

    Podes usar ou o repeat ou o if , tem apenas a diferença que no if podes dizer "Número inválido" ou "Erro" , enquanto que no repeat ele repete a leitura da variavel se ela for maior que 20 ou menor que 0 , como podes ver no programa que eu fiz ..

    Cumps :p
     
  10. dio_123

    dio_123 Power Member

    agradeço desde já pelas as vossas ajudas
    o programa está actualmente assim.

    duvida que nao percebo no programa de puser a nota do teste 12.5 o programa desaparece se puser 12 continua porque??

    só falta a estrutura while que nao faço a minima ideia onde usar a estrutura case ao esta no programa mas sei onde vou usar.
    vai ficar tipo isto
    case a of
    10...20:writeln('parabens passaste ao modulo');
    0..9:writeLn('infelismente teras de fazer teste ao modulo');
    end;

    cristiano09 trabalho de final do modulo é o programa onde constara todas as estruturas no seu interior.



    PHP:
    Program cl;
    uses crt;
    var 
    cont,cont1,quantos,soma,soma1,v,n,pt,pct1,pct2,f,ff,n1,n2,n3,per,dcn,nse,ntf,contf,vf:integer;
        
    nome string;
        
    md,ptd,mf,nf2,mf2,m2m,m22m,mtt,pct10,pct20,somaf,mediaf,pf,pdf:real;
        
    palavra,apalavra:string[3];

    {
    apresentação}
    {==========================================================================================}
    begin
    textcolor
    (15);
    Writeln('********************************************************************************');
    textcolor(14);
    Writeln('|                                Bem Vindo                                     |');
    textcolor(15);
    Writeln('********************************************************************************');
    textcolor(12);
    {=========================================================================================}

    {
    Quantas disciplinas quer e qual o nome do utilizador}
    {===================================================================================}
    writeln('Quantas Disciplinas pertendes calcular a nota?');
               
    readln(dcn);
               
    soma:=0;
               For 
    cont:=1 to dcn do
               
    begin
               textcolor
    (9)  ;
    writeln('introduza o seu nome');
    textcolor(15);
    readln(nome);
    textcolor(11);
    writeln('Qual a nota do saber estar?');
    repeat
    readln
    (nse);
    writeln('Introduza entre 0 e 20');
    until (nse>=0) and (nse<=20);
    begin
    textcolor
    (14);
      
    writeln('Quantos testes realizaste neste modulo?');
        
    readln(quantos);
        if 
    quantos=1 then
        begin
        textcolor
    (9);
        
    writeln('introduza a nota do seu  teste') ;
        
    readln(n1);
        while (
    n1>0) and (n1<20) do
        
    begin
        textcolor
    (9);
        
    writeln('qual a percentagem do teste');
       
    readln(per);
         
    ptd:=(per/100);
         
    mf:=ptd*n1;
         
    textcolor(9);
         
    writeln('A tua media final dos testes e ',mf:4:1);
        
    end;
        
    end;
            if 
    quantos=2 then
        begin
        textcolor
    (10);
        
    writeln('introduza a nota dos 2 testes');
        
    readln(n2,n3);
        
    nf2:=n2+n3;
        
    textcolor(10);
    writeln('A perencentagem dos ',quantos,'testes tem o mesma percentagem?');
    textcolor(12);
    writeln(' sim ou nao');
    readln(palavra);
    clrscr;
    if  
    palavra'sim' then  
      begin 
      textcolor
    (11);
         
    writeln('Qual a percentagem dos  ',quantos,' testes que realizastes');
         
    readln(pt);
         
    ptd:=(pt/100);
         
    mf2:=ptd*nf2;
         
    textcolor(11);
        
    writeln(' A tua media  final dos testes e ',mf2:4:1);
        
    readln;
      
    end 
    else  
      
    begin 
      textcolor
    (9);
     
    writeln('Qual a percentagem do primeiro teste ');
     
    readln(pct1);
     
    writeln('E a percentagem do segundo teste');
     
    readln(pct2);
        
    pct10:=pct1/100;
        
    pct20:=pct2/100;
        
    m2m:=n2*pct10;
        
    m22m:=n3*pct20;
        
    mtt:=m2m+m22m ;
        
    textcolor(9);
        
    writeln('A tua media final dos testes e',mtt:4:1);
    end;
    end;
    readln;
    end;
    clrscr;

     
    writeln('Quantas  fichas realizastes');
               
    readln(ntf);
               
    somaf:=0;
               For 
    contf:=1 to ntf do
               
    begin
                           writeln
    ('Introduza o valor da ficha ',contf);
                           
    readln(vf);
                           
    writeln('Digite a peercentagem da ficha ',contf);
                           
    readln(pf);
                           
    pdf:=pf/100;
                           
    somaf:=somaf+(vf*pdf);
                           
    End;
               
    mediaf:=somaf;
               
    writeln('A media e da ficha e ',mediaf:4:2);
    writeln('');
    writeln('') ;
    writeln('')  ;
    textcolor(8);
    Writeln('********************************************************************************');
    Writeln('|                               Fim                                            |');
    Writeln('********************************************************************************');
    end;
    readln;
    end.
     
    Última edição: 24 de Janeiro de 2009
  11. cristiano09

    cristiano09 What is folding?

    Bem , o que te digo é para fazeres uma lista de opções , ou seja .. fazes várias opçoes com o case of , e em cada opcão fazes diferentes programas com várias estruturas de controlo . Assim mostras o case , if , while , for , etc ..

    Qualquer coisa é so dizer ;)

    Cumps
     
  12. base de dados stand de automoveis

    Boas !!
    Estou em fase de iniciação ao sistema de base de dados em pascal.
    E foi me sugerido um projeto sobre uma base de dados do sistema audi.
    Como devo fazer ??
     

Partilhar esta Página