Jump to content

Resolução De Exercicio


Fixe
 Share

Recommended Posts

Peço desculpa é que tenho mesmo muita dificuldade a programação:

Mas voltando ao exercicio veija lá se estou a ir no bom caminho e ajudeme e modo a fazer o exercicio todo.

Obrigado pela ajuda e peço desculpa o incomodo.

#include <stdio.h>

main()

{

int x, y, n, i;

printf("Introduza Um N Valido""\n");

scanf("%d", &n);

for (n = 0; j < n; n = n + 1)

{

for (i = 0; i < n; n++)

{

printf("\n");

}

}

}

O código que tenho até agora

Link to comment
Share on other sites

  • Replies 95
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

A ver se te dou uma ajuda, sem te dar o código todo. Só assim se aprende a programar .

Vamos por partes, como tu próprio disseste.

#include <stdio.h>
main()
{
   int x, y, n, i;
   printf("Introduza Um N Valido""\n");
   scanf("%d", &n);                                       //estás a ler o n. Tudo bem
   for (n = 0; j < n; n = n + 1)                       // n=0; Aqui estás a escrever 0 por cima do valor que acabaste de ler... Perdes o valor.
   {                                                               // j<n: j não está declarado nem o usas em mais lado nenhum... 
      for (i = 0; i < n; n++)                             
      {
         printf("\n");
      }
   }
}

Lês o n, e depois tens de executar algo n vezes ( neste caso ler um inteiro do teclado ).  Experimenta começar por aqui. Ler um n do teclado e escrever "ola" n vezes.

Link to comment
Share on other sites

ahh ok ok é isso por partes é assim mesmo, então veija lá se faço então assim:

#include <stdio.h>
main()
{
int x, y, n, i;
printf("Introduza Um N Valido""\n");
scanf("%d", &n);
for (x = n; x < n; x = x + 1)
{
		scanf("d", &x);	   
		}
		printf("\n");
	}

assim já estou a ler o meu x que vai depois no ciclo for tomar os valores do n, correcto, veija lá estou a pensar bem, se sim então partimos para a próxima fase.

Link to comment
Share on other sites

#include <stdio.h>
main()
{
   int x, y, n, i;
   printf("Introduza Um N Valido""\n");
   scanf("%d", &n);
   for (x = n; x < n; x = x + 1)
   {
         scanf("d", &x);      
   }
   printf("\n");
}

Pega numa folha e começa a correr o teu programa à mão.

n x y i

? ? ? ?

Primeira intrução:

   scanf("%d", &n);

imaginemos que pões o valor 3

n x y i

3 ? ? ?

for (x = n; x < n; x = x + 1)

Aqui vamos por partes:

x = n:

n x y i

3 3 ? ?

x < n ? não, logo sai do ciclo.

O ciclo for funciona da seguinte maneira

for(instrução inicial;condição;instrução executada todos os ciclos)

ou seja,

for(i=0;i<5;i=i+1)
{
  faz_qualquer_coisa;
}

é o mesmo que teres

i=0;
enquanto  (i<5)
{
   faz_qualquer_coisa;
   i=i+1;
}
Link to comment
Share on other sites

ahhh certo certo, ou seja ao código fica então assim:

#include <stdio.h>
main()
{
int n, i;
printf("Introduza Um N Valido""\n");
scanf("%d", &n);
for (i = 0; i < 5; i = i + 1)
{
		printf("%d", &i);	 
		}
		printf("\n");
	}

ele assim imprime então os valores que eu introduzo por exemplo 2 e ele apresentame muitos números mas eu não quero isso, mas portanto ele recebe o n.

Link to comment
Share on other sites

acho que existe uma melhor maneira de explicar o for :

for (inicalização; condição; incremento) {

}

for (x=0; x<5; x=x+1) {
   ... xpto ...
}

=

x=0;
if (x<5) {
  ... xpto ...
  x=x+1;
  «volta ao if»
}

nota que tanto os blocos inicalização, condição e incremento do for são código executável

isto é, podem alterar os valores de variaveis e/ou chamar funções, etc ...

podes mesmo ter mais do que uma instrução em cada bloco :

for (x=0, y=0; ... ; ...)

na inicialização do for tanto o x como o y são atribuidos o valor 0

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

#include <stdio.h>
main()
{
   int n, i;
   printf("Introduza Um N Valido""\n");
   scanf("%d", &n);
   for (i = 0; i < 5; i = i + 1)
   {
         printf("%d", &i);    
   }
   printf("\n");
}

Ainda não é bem isso. Troca o 

printf("%d", &i);

por

printf("%d", i);

O & significa "endereço de". Para já, tudo o que precisas saber é que o scanf precisa do & e o printf não. Quando falares de apontadores vais perceber porquê.

Corre o teu programa e quando fôr para ler o n põe 3. Vê o resultado e tenta chegar a uma conclusão.

Link to comment
Share on other sites

Já percebi portanto o ciclo for, apresentado apresenta os numeros todos começando no 0 até a 4, ou seja 5 numeros já percebi, agora no contexto do nosso exercicio, uma parte já está, agora vamos para  asegunda parte que será ver se os numeros inseridos da sequencia quais são pares, e agora  que me lembrei ele apresenta sempre 01234 memso que eu insira 24242.

Link to comment
Share on other sites

o ciclo for executa quantas vezes o n for inserido, até haver a introdução de 0, porque aqui ele não pode fazer a soma.

Ou seja neste caso acho eu fica assim

#include <stdio.h>
main()
{
int n, i;
printf("Introduza Um N Valido""\n");
scanf("%d", &n);
for (i = 0; i < n; i = i + 1)
{
		printf("%d", i);	 
		}
		printf("\n");
	}

ou se calhar ate nem é assim, mas portanto o cérne da questão é que o exercicio é este:

Dadas n sequências de pelo menos n números inteiros positivos não-nulos calcular a soma dos números pares de cada sequência.Uma dada sequência está terminada se n valores foram introduzidos, ou caso ocorra a introdução de um zero.Notar que n é fornecido pelo utilizador não pode ser superior 5.

Link to comment
Share on other sites

main()
{
   int n, i;
   printf("Introduza Um N Valido""\n");
   scanf("%d", &n);
   for (i = 0; i < n; i = i + 1)
   {
         printf("%d", i);    
   }
   printf("\n");
}

Já lá vamos.

Agora, tu não queres imprimir o número n vezes. Queres ler uma sequência de n números (eu sei que são n sequências, mas vamos por partes).

Acrescenta um scanf("%d",&x) antes do printf, e muda o printf("%d",i) para printf("%d",x). Não te esqueças de declarar o x.

Link to comment
Share on other sites

pseudo-codigo:

saber o valor de n // já está feito

para cada n sequência // já está feito

  inicializar a soma

  se ainda não lemos n números da sequência a processar

    pedir um número

    se o número é par

      adicionar à soma

  se já lemos n números

    apresentar a soma

...

força, o pior já está feito

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Vela amigo fica assim:

main()
{
int x,n, i;
int soma=0;

printf("Introduza Um N Valido""\n");
scanf("%d", &n);
for (i = 0; i < 5; i = i + 1)
{
	scanf("%d",&x);	 	 
printf("%d", x);	 
		}
		printf("\n");

		if (x%2==0){
		soma=+x;
		printf("A soma da sequencia e", "%d",soma);

	}
}


só que a soma eu acho que estou a fazer mal porque ele não está a fazer a soma

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • 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.