• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gurzi

átomo

13 mensagens neste tópico

alguem já ouviu falar de átomos e expressoes simbolicas? estou a ler isto dum livro so de pascal e nao estou apanhar !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas vocês trabalham com isto ? é que estou a começar e isto esta-me a deixar nervoso.. nao pesco nem percebo para que isto serve .

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ah bom é que já me estava assustar lol e voces usam mt functions ? é que por tudo e por nada o livro que estou a ler utilizar function blablabla :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
um numero é um float?

Tipo um numero pode ser um real, irracional, natural... decimal...

Logo, o float é um numero e um número pode ser mta coisa! ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e o porque de o ArrBaixo(n+4) porque o 4 ? e nao 5 ?ou nao 3 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu penso que se trata dos arredondamentos!

tipo 2,5 é 3 mas

2,4 já é 2

tas a ver a lógica

penso qu seja disso para arredondar os nums!

Espero que ajude

PEACE

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora