while [RESOLVIDO]

1. while [RESOLVIDO]

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 24/10/2016 - 10:20h

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7


  


2. Re: while [RESOLVIDO]

felipe silva
lipman

(usa Debian)

Enviado em 24/10/2016 - 10:44h

SheilaLuna escreveu:

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7



Poste o que fez até agora!


3. Re: while

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 24/10/2016 - 10:46h

lipman escreveu:

SheilaLuna escreveu:

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7



Poste o que fez até agora!



#include<stdio.h>
#include<stdlib.h>


using namespace std;

int main(){
int ta, a, r;
r=0;

printf("informe o total de alunos: ");
scanf("%i", &ta);

for(a=1; a<=ta; a++){

printf ("Informe a nota");
scanf("%i", &a);
}

system ("pause");
return 0;


}



4. Re: while [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 24/10/2016 - 10:58h

Para se resolver qualquer tipo de problema com programação, o ideal é resolvê-lo antes sem utilizá-la.
Se é um cálculo ou coisa do gênero, resolva ele na mão e se atente aos passos. Se é um problema maior e de grande complexidade, enumere e descreva os procedimentos necessários para que o objetivo se concretize.

Seu problema atual é calcular média. Como se calcula a média de um conjunto de números? Soma de todos os elementos divido pela quantidade de elementos. Ótimo, agora tente compreender o funcionamento e utilidade de um laço (for, while, do while) e como utilizá-lo nesse cálculo.


5. Re: while [RESOLVIDO]

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 24/10/2016 - 13:09h

thinomar escreveu:

Para se resolver qualquer tipo de problema com programação, o ideal é resolvê-lo antes sem utilizá-la.
Se é um cálculo ou coisa do gênero, resolva ele na mão e se atente aos passos. Se é um problema maior e de grande complexidade, enumere e descreva os procedimentos necessários para que o objetivo se concretize.

Seu problema atual é calcular média. Como se calcula a média de um conjunto de números? Soma de todos os elementos divido pela quantidade de elementos. Ótimo, agora tente compreender o funcionamento e utilidade de um laço (for, while, do while) e como utilizá-lo nesse cálculo.


Ainda sim não estou conseguindo.



6. Re: while [RESOLVIDO]

Marcos Antonio da Silva
Marcos_Ant

(usa Ubuntu)

Enviado em 24/10/2016 - 13:45h

Cara, pelo que entendi no seu for() vc está usando a variável "a" como contador do número de loops que o for() vai ter... só que dentro do for() vc está fazendo um " scanf("%i", &a) ", ou seja, está sobrescrevendo o valor de "a".

Isso vai inutilizar o loop do for(). E nesse trecho de código aí não está a conta da média.... só a leitura das notas.

Minha dica é primeiro criar uma variável só para usar de contador do for(), vc pode usar ela dps em outro for() ou outra finalidade mas não alterar o valor dela dentro do próprio laço como vc esta fazendo. Aquela variável "r" vc ainda não utilizou... pode ser ela msm.


7. Re: while

thinomar
thinomar

(usa Linux Mint)

Enviado em 24/10/2016 - 14:15h

Defina um caracter para encerrar o laço, para quando a pessoa digitá-lo, parar de pegar a entrada. Vou usar esse caracter como sendo o "x".
A lógica é essa:
definir variaveis
entrada: inteiro
quantidade: inteiro
soma: ponto flutuante
media: ponto flutuante

enquanto entrada for diferente de "x"
ler do teclado para entrada
se entrada for numerico
soma = soma + entrada
quantidade = quantidade + 1

media = soma / quantidade
imprimir media



8. Re: while [RESOLVIDO]

Savio Nascimento
saviounix

(usa Debian)

Enviado em 24/10/2016 - 16:30h

SheilaLuna escreveu:

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7


Boa tarde SHEILALUNA,

Estou um pouco enrolado aqui no estágio, portanto não pude detalhar muito o código.
Creio que isso resolverá seu problema.
Caso tenha dúvidas com os códigos, é só perguntar que eu e os demais usuários aqui do VOL poderemos ajudá-la.

Tem duas versões do programa, uma simples e uma um pouquinho mais complexa que você poderá comparar depois.

Código
// Resolvido usando vetor de 'float', que armazena as notas
// Ajustável a qualquer quantidade de alunos, bastando mudar a
// 'constante' totAlunos para o valor desejado.


#include <stdio.h>
#include <stdlib.h>

#define totAlunos 3

int main(void){
float notas[totAlunos];
float media = 0.0;
int contador;

for(contador = 0; contador < totAlunos; contador++){
printf("\nDigite a nota do %d.o aluno: ", (contador+1));
scanf("%f", &notas[contador]);

media += notas[contador];
}

printf("\n\nMedia final eh: %.2f\n\n", (media/totAlunos));

return 0;

}

_________________________________________________________________

// Resolvido usando variáveis específicas, que armazenam as notas
// Modo mais fácil de compreensão.

#include <stdio.h>
#include <stdlib.h>

int main(void){
float a1, a2, a3;
float media = 0.0;

printf("\nDigite a nota do 1.o aluno: ");
scanf("%f", &a1);

printf("\nDigite a nota do 2.o aluno: ");
scanf("%f", &a2);

printf("\nDigite a nota do 3.o aluno: ");
scanf("%f", &a3);

media = (a1 + a2 + a3) / 3;

printf("\n\nMedia final eh: %.2f\n\n", media);

return 0;

}


Espero que tenha ajudado,

Att[]
Savio


9. Re: while [RESOLVIDO]

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 24/10/2016 - 16:36h

saviounix escreveu:

SheilaLuna escreveu:

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7


Boa tarde SHEILALUNA,

Estou um pouco enrolado aqui no estágio, portanto não pude detalhar muito o código.
Creio que isso resolverá seu problema.
Caso tenha dúvidas com os códigos, é só perguntar que eu e os demais usuários aqui do VOL poderemos ajudá-la.

Tem duas versões do programa, uma simples e uma um pouquinho mais complexa que você poderá comparar depois.

Código
// Resolvido usando vetor de 'float', que armazena as notas
// Ajustável a qualquer quantidade de alunos, bastando mudar a
// 'constante' totAlunos para o valor desejado.


#include <stdio.h>
#include <stdlib.h>

#define totAlunos 3

int main(void){
float notas[totAlunos];
float media = 0.0;
int contador;

for(contador = 0; contador < totAlunos; contador++){
printf("\nDigite a nota do %d.o aluno: ", (contador+1));
scanf("%f", ¬as[contador]);

media += notas[contador];
}

printf("\n\nMedia final eh: %.2f\n\n", (media/totAlunos));

return 0;

}

_________________________________________________________________

// Resolvido usando variáveis específicas, que armazenam as notas
// Modo mais fácil de compreensão.

#include <stdio.h>
#include <stdlib.h>

int main(void){
float a1, a2, a3;
float media = 0.0;

printf("\nDigite a nota do 1.o aluno: ");
scanf("%f", &a1);

printf("\nDigite a nota do 2.o aluno: ");
scanf("%f", &a2);

printf("\nDigite a nota do 3.o aluno: ");
scanf("%f", &a3);

media = (a1 + a2 + a3) / 3;

printf("\n\nMedia final eh: %.2f\n\n", media);

return 0;

}


Espero que tenha ajudado,

Att[]
Savio




Mais neste caso não tem uma quantidade determinada o programa tem que entrar no loop depois que for informado a quantidade de alunos e pedir a mesma quantidade de notas Exemplo se for informado que te 7 alunos deve pedir 7 notas e depois soma-las e dar a media se for informado 4 alunos deve pedir 4 notas e soma-las e dar a media isso entrando em um loop no while


10. Re: while [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/10/2016 - 16:37h

Você pode ou não pode usar variáveis com índice?
Se puder usar terá algo como nota[0], nota[1] e nota[2] que são as três notas.
nota[3] não aparece por questões da linguagem C.
Daí usa-se um loop for() de 0 a 2 ou de 0 a menor que 3.
E um scanf() apenas.

Seria melhor deixar todas as variáveis como float, principalmente a da média.
Você poderá somar as variáveis em media dentro do for().
Ao sair do for() divide-se por 3.

Se não puder, então usará variáveis como a, b, c e media.
Então soma-se media=a+b+c e divide-se por 3.
Não tenho certeza se é necessário dividir por 3.0 ao invés de 3 para forçar o programa a interpretar como float.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



11. Re: while [RESOLVIDO]

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 24/10/2016 - 16:47h

SheilaLuna escreveu:

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7


Olá, boa tarde.

Pelo código que você postou, o que te falta é manter uma soma total das notas. Como o enunciado do exercício não diz nada a respeito de manter um registro das notas já digitadas, tudo o que você precisa é ter uma variável que vai manter uma soma total enquanto você digita outras notas. Usando o que você já começou, pergunta-se quantos alunos tem na sala e aí um loop pergunta a nota dos alunos. A medida que as notas são digitadas, um total é incrementado. Ao final, dividimos o total obtido pelo número de alunos, efetivamente obtendo uma média.


/* media.c
*
* (C) 2016 - Enzo Ferber, <enzoferber@gmail.com>
*/
#include <stdio.h>

int main(void)
{
int i, alunos;
float nota, nota_final = 0.0;

printf("Numero de alunos: "); scanf("%d", &alunos);
for(i = 0; i < alunos; i++) {
printf("Nota do aluno %d: ", i + 1);
scanf("%f", &nota);
nota_final += nota;
}

printf("Media da sala de %d alunos: %.2f\n", alunos, nota_final/alunos);
return 0;
}



Explicando:

1) perguntamos quantos alunos são. Armazenamos o valor na variável alunos.
2) iteramos alunos vezes e,
2.1) em cada iteração i,
2.2) perguntamos uma nota e armazenamos em nota, uma variável do tipo float
2.3) somamos a nota atual ao somatório total de nota, mantido em nota_final e inicializada como zero,
3) ao final do loop, imprimimos a média, simplesmente fazendo nota_final / alunos

Uma saída possível:


$ ./media
Numero de alunos: 5
Nota do aluno 1: 10
Nota do aluno 2: 9
Nota do aluno 3: 8
Nota do aluno 4: 7
Nota do aluno 5: 6
Media da sala de 5 alunos: 8.00


[]'s
Enzo Ferber


$ indent -kr -i8 src.c

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.



12. Re: while [RESOLVIDO]

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 24/10/2016 - 19:14h

EnzoFerber escreveu:

SheilaLuna escreveu:

Bom Dia tenho uma dificuldade neste exercício com while se alguém puder me ajudar.
EX: Dada as notas dos alunos de uma turma informe a media da turma .
Total de alunos: 3
1º Nota 7
2º nota 7
3º nota 7

media = 7


Olá, boa tarde.

Pelo código que você postou, o que te falta é manter uma soma total das notas. Como o enunciado do exercício não diz nada a respeito de manter um registro das notas já digitadas, tudo o que você precisa é ter uma variável que vai manter uma soma total enquanto você digita outras notas. Usando o que você já começou, pergunta-se quantos alunos tem na sala e aí um loop pergunta a nota dos alunos. A medida que as notas são digitadas, um total é incrementado. Ao final, dividimos o total obtido pelo número de alunos, efetivamente obtendo uma média.


/* media.c
*
* (C) 2016 - Enzo Ferber, <enzoferber@gmail.com>
*/
#include <stdio.h>

int main(void)
{
int i, alunos;
float nota, nota_final = 0.0;

printf("Numero de alunos: "); scanf("%d", &alunos);
for(i = 0; i < alunos; i++) {
printf("Nota do aluno %d: ", i + 1);
scanf("%f", ¬a);
nota_final += nota;
}

printf("Media da sala de %d alunos: %.2f\n", alunos, nota_final/alunos);
return 0;
}



Explicando:

1) perguntamos quantos alunos são. Armazenamos o valor na variável alunos.
2) iteramos alunos vezes e,
2.1) em cada iteração i,
2.2) perguntamos uma nota e armazenamos em nota, uma variável do tipo float
2.3) somamos a nota atual ao somatório total de nota, mantido em nota_final e inicializada como zero,
3) ao final do loop, imprimimos a média, simplesmente fazendo nota_final / alunos

Uma saída possível:


$ ./media
Numero de alunos: 5
Nota do aluno 1: 10
Nota do aluno 2: 9
Nota do aluno 3: 8
Nota do aluno 4: 7
Nota do aluno 5: 6
Media da sala de 5 alunos: 8.00


[]'s
Enzo Ferber


$ indent -kr -i8 src.c

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.



Ainda não deu certo




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts