Ir para conteúdo
Fórum Script Brasil
  • 0

Algoritmo Em Portugol


Guest Jander Rodrigues

Pergunta

Guest Jander Rodrigues

aí pessoal, estou começando a aprender algoritmo, e queria ver se estou indo no caminho certo. Meu professor passou o seguinte exercício e eu responde ele logo abaixo.

Uma universidade deseja fazer um levantamento a respeito de seu concurso vestibular. Para cada curso foram registrados:

• código do curso;

• número de vagas;

• número de candidatos do sexo masculino;

• número de candidatos do sexo feminino.

Faça um algoritmo que calcule e escreva:

• código do curso, o número de candidatos por vaga de cada curso, o percentual de candidatos (sexo masculino) em cada curso;

• o curso com maior percentual de candidatas (sexo feminino) e o código do curso correspondente (suponha que não haja empate);

• número total de candidatos e a média de candidatos (feminios e masculinos, somados) por curso

Início do Algoritmo

declare curso, vagas, mulher, homem inteiro

declare menoshomem, perchom real

menorperchom = 101

leia curso, vagas, mulher, homem

enquanto curso <> 0

perchom <= (homem/vagas)*100

se perchom < menorperchom

então menorpechom = perchom

cursomulher = curso

cand = cand + 1

tcurso = tcurso +1

medcand = cand/tcurso

escreva curso, vagas, perchom, cursomulher, cand, medcand

Fim do Algoritmo

alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

vamos por partes:

• código do curso;

• número de vagas;

• número de candidatos do sexo masculino;

• número de candidatos do sexo feminino.

isso aqui voce já fez, mas não implementou a leitura dentro do laco.

• código do curso, o número de candidatos por vaga de cada curso, o percentual de candidatos (sexo masculino) em cada curso;

o código do curso, assim como os outros dados citados acima, deve ser lido no fim do laco novamente, antes disso todas as operacões deve ser feita.

- esse item pede pra voce exibir o código do curso:

ele já foi lido, então não há cálculo algum é só exibir

- número de canditados por vaga:

só fazer o cálculo: (homem+mulher)/vagas

- percentual de candidatos (sexo masculino) em cada curso:

assim: (homem/(homem+mulher))*100

• o curso com maior percentual de candidatas (sexo feminino) e o código do curso correspondente (suponha que não haja empate);

Isso voce só mostra depois que sair do laco. Por que isso? por que só ai voce guarante que todos os cursos forão comparados.

Então voce já percebeu para esses dois dados voce deve ter uma variável específica.

Como pode ser feito? o curso com maior percentual de candidatas será o que tem menor percentual de homens.

Voce já calcula o percentual de homens, agora basta voce testar se o curso possui o menor percentual. Ex:

.
.
.
meperhomem = 101; //isso fora do laco, na declaracao
.
.
.
se perchom < meperhomem então //isso dentro do laco
   meperhomem = perchom;
   mapermulher = 100 - meperhomem;
   codcurso = curso;
fim_se
.
.
.
• número total de candidatos e a média de candidatos (feminios e masculinos, somados) por curso
isso também deverá ser mostrado depois que sair do laco. - número total de candidatos crie uma variável específica que vai acumular o total de candidatos a cada curso lido. Ex:
.
.
.
totalcand = 0;
.
.
.
totalcand = totalcand + (homem + mulher);
.
.
.

- média de candidatos (feminios e masculinos, somados) por curso

crie uma variável que irá contar quantos cursos foram lidos e divida total de candidatos por esse contador.

Link para o comentário
Compartilhar em outros sites

  • 0

aí brother, nem sei como agradecer pelas dicas, você me motivou a estudar mais e tentar fazer o código certo. Veja ele aí depois que li suas instruções. Será que agora é isso mesmo?

Fiz um teste de mesa e deu certo. Mas talvez eu tenha errado em algo. To aprendendo agora. Valeu pela força.

Abraços Fraternais!

Algoritmo
  declare curso, vagas, mulheres, homens, codcurso, totalcand, totalcurso inteiro
  declare candvagas, perchom, meperhomem, mapermulher real
  meperhomem = 101
  totalcand = 0
  totalcurso = 0
  enquanto curso <> 0 faça
    leia curso, vagas, mulheres, homens
    candvagas <= (homens + mulheres)/vagas
    perchom <= (homens/(homens + mulheres))*100
    se perchom < meperhomem
      então meperhomem <= perhomem
          codcurso <= curso
          mapermulher <= 100 – meperhomem
    fim se
    totalcand <= totalcand + (homens + mulheres)
    totalcurso <= totalcurso + 1
    escreva curso, candvaga, perchom
  fim enquanto
  escreva codcurso, mapermulher
  escreva totalcand, totalcand/totalcurso
fim algoritmo

Editado por Micheus
Adicionado o delimitador de código [code] [/code] e identado o código para melhor visualização. Lembre-se de utilizá-los também. ;-)
Link para o comentário
Compartilhar em outros sites

  • 0

seu algoritmo tem alguns errinhos, mas a lógica está correta.

vamos a eles.

ah, use a tag CODE para melhor visualização de seu algoritmo.

Algoritmo
   declare curso, vagas, mulheres, homens, codcurso, totalcand, totalcurso inteiro
   declare candvagas, perchom, meperhomem, mapermulher real
   meperhomem = 101
   totalcand = 0
   totalcurso = 0

// qual o conteudo de curso na primeira execução do laço?
   enquanto curso <> 0 faça
      leia curso, vagas, mulheres, homens
      candvagas <= (homens + mulheres)/vagas
      perchom <= (homens/(homens + mulheres))*100

      se perchom < meperhomem então 
         meperhomem <= perhomem // essa variavel está com nome errado não?
         codcurso <= curso
         mapermulher <= 100 – meperhomem
      fim se

      totalcand <= totalcand + (homens + mulheres)
      totalcurso <= totalcurso + 1
      escreva curso, candvaga, perchom
   fim enquanto
   escreva codcurso, mapermulher
   escreva totalcand, totalcand/totalcurso
fim algoritmo
proponho a leitura antes do laco e no fim do laço, pois mesmo voce atribuindo um valor para curso passar pela primeira execução do laço se voce digitar "0" para curso ele só sairá do laço depois de fazer todos os cálculos para curso = 0.
Algoritmo
   declare curso, vagas, mulheres, homens, codcurso, totalcand, totalcurso inteiro
   declare candvagas, perchom, meperhomem, mapermulher real
   meperhomem = 101
   totalcand = 0
   totalcurso = 0

   leia curso, vagas, mulheres, homens
   enquanto curso <> 0 faça
      candvagas <= (homens + mulheres)/vagas
      perchom <= (homens/(homens + mulheres))*100

      se perchom < meperhomem então 
         meperhomem <= perchom
         codcurso <= curso
         mapermulher <= 100 – meperhomem
      fim se

      totalcand <= totalcand + (homens + mulheres)
      totalcurso <= totalcurso + 1
      escreva curso, candvaga, perchom
      leia curso, vagas, mulheres, homens
   fim enquanto

   escreva codcurso, mapermulher
   escreva totalcand, totalcand/totalcurso

fim algoritmo

Link para o comentário
Compartilhar em outros sites

  • 0

aí Kandrade, agradeço bastante por sua ajuda. Realmente estou me esforçando para entender a matéria. Veja um outro exemplo e minha resposta:

2. Faça um Algoritmo que calcule e escreva o valor de S dado pelo seguinte somatório:

S = 1/225 - 2/196 + 4/169 - 8/144 + ... + 16384/1

Algoritmo
declare S, I, Y, numerador, denominador real
  S = 0
  I = 0
  Y =15
  numerador = pot(-2, i)
  denominador = y*y 
enquanto y < 1 faça
        S <= S + numerador/denominador
        I <= I +1 
        Y <= Y -1
    fim enquanto
escreva S
fim algoritmo

Valeu pela ajuda velho, realmente estou começando a entender a matéria com sua ajuda aqui no fórum. :P

Link para o comentário
Compartilhar em outros sites

  • 0
aí Kandrade, agradeço bastante por sua ajuda. Realmente estou me esforçando para entender a matéria. Veja um outro exemplo e minha resposta:

2. Faça um Algoritmo que calcule e escreva o valor de S dado pelo seguinte somatório:

S = 1/225 - 2/196 + 4/169 - 8/144 + ... + 16384/1

e seu algoritmo está correto?

Link para o comentário
Compartilhar em outros sites

  • 0
e seu algoritmo está correto?

Uai, boa pergunta. Eu não sei, mas fiz ele em C dessa maneira e o resultado deu 0. Não tenho as respostas, apenas fiz ele de acordo com meu raciocínio (bem provavel então que esteja errado, hehe).

Não é dessa forma que faz não? Pensei que era. Nesse caso, como que faço o teste de mesa? Acho que não tem como.

Abraços,

Jander Rodrigues'' :unsure:

Link para o comentário
Compartilhar em outros sites

  • 0
Não é dessa forma que faz não? Pensei que era. Nesse caso, como que faço o teste de mesa? Acho que não tem como.

a execucão do algoritmo é sequencial.

voce vai passando passo-a-passo pelo algoritmo e atualizando as variáveis de acordo com as instrucões.

pelo pouco que vi tem alguns errinhos.

faca o teste de mesa, ai voce perceberá o que está errado.

:P

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --andre --
aí brother, nem sei como agradecer pelas dicas, você me motivou a estudar mais e tentar fazer o código certo. Veja ele aí depois que li suas instruções. Será que agora é isso mesmo?

Fiz um teste de mesa e deu certo. Mas talvez eu tenha errado em algo. To aprendendo agora. Valeu pela força.

Abraços Fraternais!

Algoritmo
  declare curso, vagas, mulheres, homens, codcurso, totalcand, totalcurso inteiro
  declare candvagas, perchom, meperhomem, mapermulher real
  meperhomem = 101
  totalcand = 0
  totalcurso = 0
  enquanto curso <> 0 faça
    leia curso, vagas, mulheres, homens
    candvagas <= (homens + mulheres)/vagas
    perchom <= (homens/(homens + mulheres))*100
    se perchom < meperhomem
      então meperhomem <= perhomem
          codcurso <= curso
          mapermulher <= 100 – meperhomem
    fim se
    totalcand <= totalcand + (homens + mulheres)
    totalcurso <= totalcurso + 1
    escreva curso, candvaga, perchom
  fim enquanto
  escreva codcurso, mapermulher
  escreva totalcand, totalcand/totalcurso
fim algoritmo

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...