Jump to content

Recommended Posts

Posted
mas voces trabalham com isto ? é que estou a começar e isto estáme a deixar nervoso.. nao pesco nem percebo para que isto serve .

Já programo em Pascal á bastante tempo, apesar de ultimamente ter parado um pouco e ter-me dedicado mais ao estudo de C, e nunca trabalhei com expressões simbólicas.

Acho até que isso não é muito utilizado,e mesmo que seja, devem ser elementos da programação que podem ser contornados com outras instruções.

Cumps

Posted

Pretende-se um programa para calcular o preço em escudos a pagar ou a receber por um cliente de um posto de câmbios, em operaçoes de compra e vebda de divisas, respectivamente, dados o cambio aplicavel e a quantidade de divisas e sabendo que sobre as vendas recai uma taxa de 6 por mil. Alem disso, quando o resultado n for multiplo de 5 de 5 deve ser arrendondado para o multiplo de 5 precendente nas compras e seguinte nas vendas.

no livro está assim o ArrBaixo

function ArrBaixo(n : integer);

Begin

ArrBaixo := n - n Mod 5

end;

alguem percebe isto ? nao me estou a dar mt bem com as funçoes

Posted
Citação
Pretende-se um programa para calcular o preço em escudos a pagar ou a receber por um cliente de um posto de câmbios, em operaçoes de compra e vebda de divisas, respectivamente, dados o cambio aplicavel e a quantidade de divisas e sabendo que sobre as vendas recai uma taxa de 6 por mil. Alem disso, quando o resultado n for multiplo de 5 de 5 deve ser arrendondado para o multiplo de 5 precendente nas compras e seguinte nas vendas.

no livro está assim o ArrBaixo

function ArrBaixo(n : integer);

Begin

ArrBaixo := n - n Mod 5

end;

alguem percebe isto ? nao me estou a dar mt bem com as funçoes

Bem em C e m Pascal a estrutura das funções é muito parecida. Elas servem para simplificar o código e para que a leitura e a própria escrita sejam mais facilitadas.

Imagina que queres escrever isto no ecra:

**************************
Pascal rula muito!
**************************
C rula muito mais!
**************************
 

Normalmente em Pascal, fá-lo-ias desta forma:

begin

writeln('**************************');

writeln('Pascal rula muito!');

writeln('**************************');

writeln('C rula muito mais!');

writeln('**************************');

end.

Ora com as funções poderias fazer isto de forma muito mais simplificada. Imagina que crias uma função para cada linha de asteriscos, visto que é o que dá para simplificar neste caso.Farias desta forma:

Function asteriscos(**************************: char)

Nota: esta função não está correcta, mas dá para exemplificar o objectivo das funções ao utilizador em questão.

Assim:

Function asteriscos(**************************: char);

begin

astericos;

writeln('Pascal rula muito!');

asteriscos:

writeln('C rula muito mais!');

asteriscos;

end.

Resumindo, as funções servem para fazer com que uma determinada tarefa se torne mais simples de escrever e ler ao longo do código e faz com que este não seja tão repetitivo. Assim as funções utilizam-se em códigos extensos de forma a facilitar a programadores a leitura e escrita do código.

As funções podem realizar uma e só uma tarefa. Para diferentes tarefas, diferentes funções---> não te esqueças disto.

Espero ter ajudado.... ;)

Cumps

Posted

Pretende-se um programa para calcular o preço em escudos a pagar ou a receber por um cliente de um posto de câmbios, em operações de compra e venda de divisas, respectivamente, dados o cambio aplicável e a quantidade de divisas e sabendo que sobre as vendas recai uma taxa de 6 por mil. Alem disso, quando o resultado n for múltiplo de 5 de 5 deve ser arredondado para o múltiplo de 5 precedente nas compras e seguinte nas vendas.

Resolução :

Program cambios;

var   cambio : real;
      divisas,escudos : integer;
      op : char;

const
    taxa = 0.006;

function ArrBaixo(n :integer) : integer;
Begin
    ArrBaixo := n -n mod 5
End;

Function ArrCima(n : integer) : Integer;
Begin
    Arrcima := ArrBaixo(n+4);
End;

Function Compra(c : real; q :integer) : Integer;
Begin
    Compra := ArrBaixo(round(c*q))
End;

Function Venda(c : real; q :integer) : Integer;
Begin
    Venda := ArrCima(round(c*q*(1*taxa)))
End;

Procedure Realiza;
Begin
    write('Compra(c) ou Venda(c)');
    read(op);
    write('Cambio ? ');
    read(cambio);
    write('Quantidade? ');
    read(divisas);
    readln;
End;

Procedure Escreve;
Begin
    write('Sao',escudos:2,'$00');
    readln;
end;

Begin
    Realiza;
    If op = 'C' then
        escudos := Compra(cambio,divisas)
    else
    escudos := Venda (cambio, divisas);
    Escreve;
    readln;
End.

Não percebo o porquê disto :

Function Venda(c : real; q :integer) : Integer;
Begin
    Venda := ArrCima(round(c*q*(1*taxa)))

de ter que se multiplicar o 1 pela taxa nem sei de onde surge aquele 1e disto :

Function ArrCima(n : integer) : Integer;
Begin
    Arrcima := ArrBaixo(n+4);

o porque de ser n + 4 e não n +5 ou +3 ..

Posted

Não sei pascal e nem tentei compreender profundamente o programa...

Mas arriscava a dizer q a multiplicação por 1 é para tornar aquilo um numero (float)... Porque uma constante por default é uma cadeia de caracteres 😉

  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.