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

Sr Inovação

Ajuda Pascal estrutura IF[Resolvido]

8 mensagens neste tópico

Olá Pessoal, é primeira vez que escrevo para este forum/comunidade,bem vou directo ao assunto,preciso de alguma ajuda nomeadamente sobre um problema que estou a ter com a estrutura if é que estou a fazer um programa sobre um videoclube.

Eu fez o programa por sub-menus onde introduzimos os filmes um- a - um,na parte onde é para se escolher o género tenho um sub-menu(case of) onde existem  4 opções de escolha(1:write(terror) certo?

Depois de  introduzir alguns dados, fez outro case onde que "pergunta" ao utilizador qual o genero dos 4 existentes quer saber quantos existem na base de dados(array de records)

Eu fiz com a estrutura if  e uma variavel cont para contar os filmes com um dado genero(campo de record) se o caracter introduzido no array for igual ao pedido do utilizador então ele devia "contar  e mostrar os nomes de  todos os filmes que tenha esse campo tenha esse mesmo caracter? mas não está a dá :wallbash:

Como colocar o código aí para um melhor ajuda?

Obrigado desde já

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de mais, bem vindo. :P

Coloca aqui o código com o ciclo que tem o if que te está a dar dores de cabeça.

Outra forma é fazeres print do que estás a tentar contar e do que efectivamente encontraste, e tentar perceber o que há de diferente do que estavas à espera.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para colocar o código aqui  é  preciso algum um software?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui fica o código

Procedure genero;

begin

      writeln('Qual o genero que quer escolher?');

      writeln('1:Terror');

      writeln('2:Accao');

      writeln('3:Romance');

      writeln('4:Comedia');

      readln(sgenr);

    begin

      Case sgenr of

      '1':writeln('Terror');

      '2':writeln('Accao');

      '3':writeln('Romance');

      '4':writeln('Comedia')

    else

      writeln('Escolha errada');

      end;

    for i:=1 to n do

    If(bfilmes[n].genr=sgenr) then

      begin

    cont:=cont+1;

    writeln('O filme ', bfilmes[n].nomfil ,' ‚ do tipo ',bfilmes[n].genr);

end;

writeln('Existem ',cont ,  'filme(s) de ', bfilmes[n].genr);

end;

end;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê lá se bfilmes[n].genr e sgenr são do mesmo tipo.

E se sim, faz writeln de cada um dos valores que estás a comparar para saber se estão OK.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M6 , boa dica mas não resolve o problema , porque se tenho dois filmes de romance e  o ultimo filme que registo que meto em que  o filme é  de terror  e procuro o registos dos filmes de romance o programa "assume" que são todos de terror ou vice-versa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Repara na linha em que escreves a contagem de filmes:  writeln('Existem ',cont ,  'filme(s) de ', bfilmes[n].genr);

Fazes referencia ao filme na posição n, ou seja fazes sempre referência ao filme que está na última posição do array, o que me parece que pode não ser correcto.

Basta que troques para writeln('Existem ',cont ,  'filme(s) de ', sgenr);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M6,eu hoje na minha escola, com a ajuda do professor de química(que percebe  pascal) disse-me precisamente a mesma coisa, a solução foi trocar o indice n por um indice i que verificasse todo o array para  isso tambem utilizei um ciclo for i=1 to n(numero de filmes introduzidos). Portanto o problema já foi resolvido

Obrigado pela a ajuda na mesma  :P 

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