Ir ao conteúdo
  • Cadastre-se

VisualG Como escolher nomes adequados para variáveis,algoritmo e salvar o arquivo?


Posts recomendados

Como escolher nomes adequados para variáveis, algoritmo e nome para salvar o arquivo no visualg?

 

Esse código abaixo é de um  algoritmo que serve para reservar espaços de uma fileira de um cinema.

As vagas vão de 1 até 10. Dei o nome "lugares" para o vetor que serve para reservar esses lugares, porém

não sei se o nome do vetor é adequado, se ele tem que ficar no plural mesmo porque é um vetor com mais de um espaço.

Outra coisa não sei se o nome do algoritmo é adequado para o código e se salva o arquivo com o mesmo nome do algoritmo.

 

algoritmo "reservaLugarCinema"

Var
   lugares : vetor [1..10] de caractere
   cadeira : inteiro
   r : caractere


procedimento mostrarFileira ()
var
   i : inteiro
inicio

   para i de 1 ate 10 faca
      se lugares[i] = "" então
         escreva ("[B", i, "]")
      senao
         escreva ("[---]")
      fimSe
   Fimpara
fimprocedimento


Inicio

   repita
      limpatela
      mostrarFileira ()
      escreval
      escreva ("Escolha B")
      leia(cadeira)
      se lugares[cadeira] = "" então
         lugares[cadeira] <- "x"
         escreval (" Lugar reservado com sucesso")
      senao
         escreval ("Erro, lugar ocupado.")
      fimSe
      escreval (" Quer continuar[s/n]")
      leia (r)
   ate (r= "n")

Fimalgoritmo

 

 

 

 

Link para o comentário
Compartilhar em outros sites

@Eli Almeidaa Entendo que os nomes devem ser representativos para permitir a identificação do propósito. É como você fez p.ex ao declarar como "lugares", assim é melhor do que chamar de "vetor", "x" ou outro nome genérico fora de contexto. No caso dos contadores mais simples acho que pode ser com uma letra mesmo como fez em lugares[i], está claro que é para pegar o índice do vetor.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Midori , aproveitando o tópico, tenho uma dúvida, esses dois códigos aqui servem para calcular

a média da classe, mas não entendi por que um soma as notas total e divide por 12 em um código

Escreval("MEDIA DA CLASSE: ", Total/12)

e o

outro código tem dividir por 2 e depois tem que dividir por 6 para encontrar a mesma média da classe que o outro código.

Se já calculou a média individual dividindo por 2 e armazenou  no vetor mediaAluno,  não deveria apenas jogar as médias de cada aluno na variável "somaMedia", atráves do vetor mediaAluno, como está abaixo. Só não entendi por que tem que dividir por 6.

 

 

mediaAluno[contador] <- (nota1[contador]+nota2[contador])/2
somaMedia <- somaMedia+mediaAluno[contador]
mediaTurma <- somaMedia/6

 

1º) :
 

Algoritmo "Media da Classe"

Var Nota1 : real

Real Nota2: Real

Total: Real

Nome: Caractere

Conta: Inteiro

Aprov: Inteiro

Inicio

   Para Conta <- 1 ate 6 faca

      Escreva("Nome ", Conta, ": ")

     Leia(Nome)

     Escreva(" Nota 1: ")

     Leia(Nota1)

     Escreva(" Nota 2: ")

    Leia(Nota2)

Se((Nota1 + Nota2)/2 > 7) então

Aprov <- Aprov + 1

FimSe

   Total <- Total + Nota1 + Nota2

FimPara

  Escreval("MEDIA DA CLASSE: ", Total/12)

  Escreval("APROVADOS: ", Aprov/6 * 100, "%")

  Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")

Fimalgoritmo

 

2º) :

Algoritmo "AnáliseDasNotasDaTurma"

Var
   nome : vetor [1..6] de caractere
   nota1 : vetor [1..6] de real
   nota2 : vetor[1..6] de real
   mediaAluno : vetor [1..6] de real
   contador : inteiro
   somaMedia, mediaTurma : real
   alunosAcimaDaMediaDaTurma : inteiro


Inicio

   para contador <- 1 ate 6 faca
      escreval ("Informe o nome do ", contador:1, "º aluno")
      leia(nome[contador])
      escreval (" Informe a 1º nota")
      leia(nota1[contador])
      escreval (" Informe a 2º nota")
      leia(nota2[contador])
      mediaAluno[contador] <- (nota1[contador]+nota2[contador])/2
      somaMedia <- somaMedia+mediaAluno[contador]
   fimPara
   mediaTurma <- somaMedia/6
   limpatela
   escreval("Listagem de alunos :")
   para contador <- 1 ate 6 faca
      escreval (nome[contador]:15, mediaAluno[contador])
      se mediaAluno[contador]> mediaTurma então
         alunosAcimaDaMediaDaTurma <- alunosAcimaDaMediaDaTurma+1
      fimSe
   fimPara
   escreval ("Ao todo temos ", alunosAcimaDaMediaDaTurma:1, " aluno(s) que está acima da média da turma, que é ", mediaTurma:4:2, ".")

FimAlgoritmo

 

 

 

 

Link para o comentário
Compartilhar em outros sites

12 horas atrás, Eli Almeidaa disse:

não entendi por que um soma as notas total e divide por 12 em um código

A média aritmética é a soma dos valores dividido pela quantidade de dados. Esse loop tem 6 ciclos e cada um pega duas notas, por isso tem a divisão por 12 já que essa é a quantidade de notas.

 

12 horas atrás, Eli Almeidaa disse:

outro código tem dividir por 2 e depois tem que dividir por 6 para encontrar a mesma média da classe que o outro código.

A divisão por 2 é para pegar a média de cada aluno. Como são duas notas por aluno, tem a divisão por 2 para testar se a média é maior que 7.

 

E a divisão é por 6 porque é da soma da média e não do total. Se fosse do total a divisão seria por 12 como no código anterior.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Midori , ainda não entendi qual a finalidade dessa parte "total/12" do primeiro código e qual a finalidade dessa outra parte "mediaTurma" no segundo código.

A abordagem do primeiro código é somar todas as notas e dividir pelo total de notas  12? A abordagem do segundo código é somar as médias individuais e dividir pelo total de alunos 6? Esses dois trechos de códigos desempenham o mesmo papel, que é mostrar a média da turma, ou funções diferentes?

Link para o comentário
Compartilhar em outros sites

42 minutos atrás, Eli Almeidaa disse:

ainda não entendi qual a finalidade do primeiro código e qual a finalidade do segundo.

A finalidade dos dois é calcular a média aritmética das notas. E no primeiro além disso ele mostra o percentual de alunos aprovados e reprovados. Já o segundo mostra a quantidade de alunos acima da média e além disso ele usa vetor já que primeiro pede todos os dados e depois mostra uma lista de cada aluno.

 

42 minutos atrás, Eli Almeidaa disse:

A abordagem do primeiro código é somar todas as notas e dividir pelo total de notas (12)?

Primeiro ele vai acumular a soma das notas e depois dividir tudo por 12 já que essa é a quantidade de dados/notas. Lembre-se do calculo da média, um exemplo com 4 alunos,

Aluno | Nota 1 | Nota 2 
A     |    5,3 |   6,5  
B     |    8,2 |   7,0  
C     |    4,5 |   5,0  
D     |    9,0 |   5,5  

 

Calculando como no primeiro código, soma tudo e divide por 8. Logo,

 

5,3 + 6,5 + 8,2 + 7,0 + 4,5 + 5,0 + 9,0 + 5,5 = 51

 

51 / 8 = 6,38

 

A média da turma é 6,38

 

42 minutos atrás, Eli Almeidaa disse:

A abordagem do segundo código é somar as médias individuais e dividir pelo total de alunos 6?

Há uma pequena diferença de método, mas basicamente é o mesmo cálculo. Pegando a tabela que mostrei acima fica assim,

 

(5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2 = 25,5

 

25,5 / 4 = 6,38

 

A média da turma é 6,38. Mesmo resultado.

 

Outra coisa que você pode observar é que se dividir essa expressão por 4 vai chegar no cálculo da média da divisão pela quantidade de dados, p.ex,

 

[(5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2]/4 = 6,38

 

(5,3 + 6,5)/8 + (8,2 + 7,0)/8 + (4,5 + 5,0)/8 + (9,0 + 5,5)/8 = 6,38

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Midori , então poderia usar qualquer um dos dois ? esse :

5,3 + 6,5 + 8,2 + 7,0 + 4,5 + 5,0 + 9,0 + 5,5 = 51

51 / 8 = 6,38, ou esse

(5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2 = 25,5

25,5 / 4 = 6,38. Para fazer o mesmo cálculo da média da classe ?

 

Nesse caso aqui (5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2 = 25,5 , tenho impressão

que ele está fazendo mais divisão do que 5,3 + 6,5 + 8,2 + 7,0 + 4,5 + 5,0 + 9,0 + 5,5 = 51, por que nesse aqui :  (5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2 = 25,5 , ele divide por 2 primeiro e nesse aqui não : 5,3 + 6,5 + 8,2 + 7,0 + 4,5 + 5,0 + 9,0 + 5,5 = 51.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Eli Almeidaa disse:

então poderia usar qualquer um dos dois ?

Poderia sim.

 

O primeiro código p.ex fica assim,

 

Algoritmo "Media da Classe"
Var
    Nota1:  Real
    Nota2:  Real
    Total:  Real
    Media:  Real
    Nome:   Caractere
    Conta:  Inteiro
    Aprov:  Inteiro

Inicio
    Para Conta <- 1 ate 6 faca
        Escreva("Nome ", Conta, ": ")
        Leia(Nome)
        Escreva(" Nota 1: ")
        Leia(Nota1)
        Escreva(" Nota 2: ")
        Leia(Nota2)
        Media <- (Nota1 + Nota2)/2

        Se(Media > 7) então
            Aprov <- Aprov + 1
        FimSe
        Total <- Total + Media
    FimPara

  Escreval("MEDIA DA CLASSE: ", Total/6)
  Escreval("APROVADOS: ", Aprov/6 * 100, "%")
  Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")
Fimalgoritmo

 

1 hora atrás, Eli Almeidaa disse:

Nesse caso aqui (5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2 = 25,5 , tenho impressão

que ele está fazendo mais divisão

Tem mais operações e o resultado final é o mesmo. Esse é o ponto. No primeiro efetou a soma e depois dividiu por 8. Já o segundo soma as duas notas e divide por 2 para calcular a média, por isso depois tem a divisão por 4.

 

Aqui no numerador é a soma de todas as notas e denominar é a quantidade de notas

expressao1.png.4ad10bce744ba087dcbf7eead901c0c6.png

 

Nesta o numerador tem as frações do cálculo da média e o denominador com a quantidade de médias.

 

expressao.png.ed8f65ce1c18a40c6ff1abcc07749467.png

 

Efetuando a operação de divisão de frações vai chegar na primeira expressão com o denominador 8.

 

expressao2.png.8f1c65df064220dcb2f3322bea070b44.png

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Midori , obrigada. Não sei se pode postar no mesmo tópico, essa questão pede para criar um programa que ajude uma loja a gerenciar seu estoque de produtos eletrônicos. Tenho uma dúvida na questão não fala o limite de produtos, com isso, como

vou criar um vetor para esses produtos, se não sei a quantidade de produtos que vão ser cadastradas? Tem como em portugol perguntar ao usuário quantos produtos ele vai cadastrar e só então criar o tamanho do vetor para armazenar os dados?

 

Enunciado:

Você foi designado para criar um programa em Portugol que ajude uma loja a gerenciar seu estoque de produtos eletrônicos. A loja possui um catálogo de produtos, cada um representado por um vetor de registro com as seguintes informações:

Nome do produto (string)

Preço unitário (real)

Quantidade em estoque (inteiro)

Sua tarefa é escrever um programa que realize as seguintes operações através de funções:

Cadastro de Produto: Crie uma função que permita ao usuário cadastrar um novo produto, informando o nome, preço unitário e quantidade em estoque. Os dados devem ser armazenados no vetor de produtos.

Consulta de Estoque: Crie uma função que permita ao usuário consultar o estoque de um produto específico, informando o nome do produto. A função deve retornar a quantidade em estoque desse produto.

Atualização de Estoque: Crie uma função que permita ao usuário atualizar o estoque de um produto existente, informando o nome do produto e a quantidade a ser adicionada ou subtraída do estoque.

Listagem de Produtos: Crie uma função que liste todos os produtos cadastrados, exibindo o nome, preço unitário e quantidade em estoque de cada um.

Link para o comentário
Compartilhar em outros sites

@Eli Almeidaa Acho melhor criar outro tópico caso tenha mais dúvidas sem relação com o assunto desse. Mas como o enunciado não pede para o usuário escolher a quantidade de produtos, entendo que você pode definir isso no seu programa. Se declarar o vetor de registros para 10 elementos, essa será a quantidade máxima de produtos.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!