Jump to content

Recommended Posts

Posted (edited)

Boas tardes,

Tenho um projecto para a escola,cujo a função é inserir dados,apartir desses dados preciso da moda, mediana , media , nota mais alta , nota mais baixa , desvio padrao , sair, tudo isto num menu de switch.tenho que fazer num do while... e as funçoes que podem estar disponiveis de inicio é só inserir dados ou sair, só depois podem estar disponiveis as outras opçoes... alguem me pode ajudar? aqui está o inicio do meu programa...

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

int main(int argc, char *argv[])
{

   char op;
   do 
   {
        printf ("\n\n\n Menu \n\n\n");
        printf ("\n\n\n1-Introduzir classificaçoes\n\n\n");
        printf ("\n\n\n2-Mediana\n\n\n");
        printf ("\n\n\n3-Moda\n\n\n");
        printf ("\n\n\n4-Media\n\n\n");
        printf ("\n\n\n5-Nota Mais Alta\n\n\n");
        printf ("\n\n\n6-Nota Mais Baixa\n\n\n");
        printf ("\n\n\n7-Desvio Padrao\n\n\n");
        printf ("\n\n\n8-Sair\n\n\n");

        switch (op)
        {
            case 1:printf("Introduzir classificações\n");
                  break;
            case 2:printf("Mediana\n");
                 break;
            case 3:printf("Moda\n");
                 break; 
            case 4:printf("Media\n");
                  break;
            case 5:printf("Nota Mais Alta\n");
                  break;
            case 6:printf("Nota Mais Baixa \n");
                  break;
            case 7:printf("Desvio Padrao\n");
                  break;
            case 8:printf("Sair");
                 break;
            default: ("Opcao invalida");
            }
        }while ((op<=1) && (op >=7));


 system("PAUSE"); 
 return 0;
}
Edited by pmg
GeSHi adicionado
Posted

Escreve as funções espcificas e substitui os printf dentro do switch pela funcao respectiva.

Alem disso, condiciona os printf do menu consoante tenhas ou nao dados.

Vais precisar dum contador para o numero de dados e dum array (possivelmente obtido com malloc) para os dados propriamente ditos.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted
int main(int argc, char *argv[])
{

   char op;
   do
   {
        printf ("\n\n\n Menu \n\n\n");
        printf ("\n\n\n1-Introduzir classificaçoes\n\n\n");
        printf ("\n\n\n2-Mediana\n\n\n");
        printf ("\n\n\n3-Moda\n\n\n");
        printf ("\n\n\n4-Media\n\n\n");
        printf ("\n\n\n5-Nota Mais Alta\n\n\n");
        printf ("\n\n\n6-Nota Mais Baixa\n\n\n");
        printf ("\n\n\n7-Desvio Padrao\n\n\n");
        printf ("\n\n\n8-Sair\n\n\n");

        switch (op)
        {
           ...
}

Primeira dica: o switch op vai-te ver qual é o valor da tua variável op, comparando-o com os valores que tens nos vários cases. Antes de comparares precisas ler esse valor do teclado, certo?

do
   {
        printf ("\n\n\n Menu \n\n\n");
        ...
        printf ("\n\n\n8-Sair\n\n\n");

        switch (op)
        {
            case 1:printf("Introduzir classificações\n");
                  break;
            ...
            case 8:printf("Sair");
                 break;
            default: ("Opcao invalida");
            }
        }while ((op<=1) && (op >=7));

Tu queres fazer imprimir o menu, ler a opção do teclado, e executar a função correspondente, enquanto a opção for diferente de 8, certo?

Posted

O que é que não percebeste?

Vamos lá tentar outra vez...

switch (op)

vai testar a variável op para um dos valores listados nos vários cases seguintes. Ora antes de tentares saber qual é o valor que está no op, tens que lhe atribuir algum valor. Supostamente tens de ler do teclado esse valor (introduzido por quem estiver a usar a o programa). Para leres esse valor do teclado tens de usar uma das funções de leitura, como o scanf ou o getc entre outras.

Posted (edited)

já tenho isto o que me falta?

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

int main(int argc, char *argv[])
{

   int op,c[20],i;
   do
   {
        printf ("\n Menu \n");
        printf ("\n1-Introduzir classificaçoes\n");
        printf ("\n2-Mediana\n");
        printf ("\n3-Moda\n");
        printf ("\n4-Media\n");
        printf ("\n5-Nota Mais Alta\n");
        printf ("\n6-Nota Mais Baixa\n");
        printf ("\n7-Desvio Padrao\n");
        printf ("\n8-Sair\n");
        printf ("Qual a opcao ->");
        scanf  ("%d",&op);

        switch (op)
        {
            case 1:printf("Introduzir classificações\n");
            for(i=0;i<10;i++)
            {
                             printf("\nAluno n. %d -> ",i+1);
                             scanf ("%d",&c[i]);
            }                
                  break;
            case 2:printf("Mediana\n");
                 break;
            case 3:printf("Moda\n");
                 break;
            case 4:printf("Media\n");
                  break;
            case 5:printf("Nota Mais Alta\n");
                  break;
            case 6:printf("Nota Mais Baixa \n");
                  break;
            case 7:printf("Desvio Padrao\n");
                  break;
            case 8:printf("Sair\n");
                 break;
            default: ("Opcao invalida");
            }
        }while ((op>=1) && (op <=7));


 system("PAUSE");
 return 0;
}
Edited by pmg
GeSHi adicionado
Posted

o que te falta ?

em 7 dias adicionaste estas linhas no código

int op,c[20],i; // <----------------
...
scanf("%d",&op); // <----------------
...
case 1:
printf("Introduzir classificações\n");
for(i=0;i<10;i++) { // <----------------
printf("\nAluno n. %d -> ",i+1); // <----------------
scanf ("%d",&c[i]); // <----------------
} // <----------------
..

o que me parece que falta é :

- vontade

- interesse

- estudo

  • Vote 2
IRC : sim, é algo que ainda existe >> #p@p
Posted

o que me parece que falta é :

- vontade

- interesse

- estudo

😁 acordaste mal disposto

Agora, voltando ao assunto, não vou fazer a aplicação por ti. Tu é que sabes que comportamento a tua aplicação tem agora e qual é o comportamento que tu queres. Quando tiveres dúvidas concretas (enunciados inteiros não entram na categoria dúvidas concretas), pergunta e nós damos uma maozinha.

Posted (edited)

😁 acordaste mal disposto

Acho que nao 😛

nao pecebi muito bem podem fazer com exemplo sff?

	 switch (op)
	 {
		 //....
		 case 2:printf("Mediana\n");
			 calcMediana(c);

			  break;
		 ;
Edited by pikax
  • Vote 1

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted (edited)

ora aqui está uma pessoa aplicada no estudo de uma linguagem de programação ... no entanto tenho uns reparos ao teu código:

m****
/* a declaração do ponteiro para ponteiro para ponteiro para ponteiro para o tipo "m", necessita do nome da variável */

*******, fodas
/* aqui tens o nome da variável "fodas", no entanto o tipo não está bem definido,
  sei que são bastantes referências mas não dizes o tipo de dados final.
tens também o separados ',' que é desnecessário neste caso */

msm m**** fuck fuck fuck
/* não podes usar nome de tipos separados, deveria ser "msm_m" e não "mam m"
e a declaração de mais do que uma variável deverá ser feita com o separador ',' */

/* um reparo final, deverás colocar o caracter ';' no fim de cada declaração */
Edited by HappyHippyHippo
  • Vote 2
IRC : sim, é algo que ainda existe >> #p@p
Posted

Boa tarde,

Nesta comunidade o respeito cultiva-se, estima-se, é obrigatório de acordo com as regras de utilização do fórum e está na base da cooperação saudável.

Espero com isto ter deixado claro que não são nem serão tolerados insultos em qualquer tópico.

Em caso de duvida basta consultar as regras: http://www.portugal-a-programar.pt/guidelines/

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.