Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

babylon

quanto a exercicios de C! [+Alguns q eu ja fiz]

Recommended Posts

Aew galera beleza?

Seguinte estava resolvendo estes exericios de C e me bateu uma duvia quanto a resolução de alguns, tipo alguns eu ja fiz e ate msm estou postando a resposta deles tb paa vcs verem se estão corretos e ate msm me ajuda quanto aos demais outos que eu não fiz. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Bom então la vai:

 

1) Elabore um algoritmo para o cálculo do máximo divisor comum entre 2 números.

2) Implemente um algoritmo que leia três números e apresente sua média.

3) Implemente um algoritmo leia “n” números digitados e apresente sua média (Pode-se utilizar algum flag ou ler previamente o valor de n).

4) Dados “n” números, lidos pelo algoritmo, calcule a média entre o maior e o menor número da seqüência fornecida.

5) Crie um algoritmo que dado um número inteiro e uma razão, calcule a somatória dos primeiros 5 termos da Progressão Aritmética, determinada por estes números.

6) Implemente um algoritmo que exiba os primeiros “n” termos da PA de razão 2 e termo inicial 4.

7) Dado o algoritmo abaixo, analise-o e constate o resultado da execução do mesmo.

 

main()

{

int i=1,j=2,k=3,l=4;

i++;

k=++i;

l=j++;

++j;

printf(“%d %d %d %d”,i,j,k,l);

}

 

8) Elabore um programa que solicite 2 números e uma operação matemática elementar (+-*/) e a execute.

9) Elabore um programa que informe se um número lido é primo.

10) Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer no plano, P(x1, y1) e P(x2, y2), escreva a distância entre eles. A fórmula que efetua tal cálculo é:

 

 

 

11) Escreva um algoritmo que calcule o valor (aproximado) de cos(x), dado pela aproximação abaixo:

 

 

 

O programa deve ler o valor de x, e realizar a aproximação somando os 4 primeiros termos.

 

 

 

Resolução dos que eu ja fiz:

 

 

2

 

 

#include <stdio.h>

#include <stlib.h>

void main {

int num1, num2, num3

float media media = 0

printf ("Digite 3 numeros")

scanf ("%d %d %d", &num1, &num2, &num3)

if (media != 0)

media = num1 + num2 + num3

printf ("A media é" "%f" &media)

 

3

 

 

#include <stdio.h>

#include <stlib.h>

void main {

int num1, x x=0

float media media = 0

printf ("Digite um numero")

scanf ("%d", &num)

while (num != 0)

if (num % 2 = 0)

media = num + media

x++

media = media / x

printf ("A media é" "%f" &media)

 

7

 

 

i == 2

k == 3

l == 3

j = =4

 

8

 

 

#include <stdio.h>

#include <stlib.h>

void main {

int num1, num2, operacao operacao = 0

char opescolha

printf ("Digite um numero")

scanf ("%d", &num)

prinf ("Digite um numero sendo 1- Soma, 2- Subtração, 3- Multiplicação, 4- Divisão)

swicth opescolha

case 1:

operacao = num 1 + num 2

printf ("A soma é" "%d" operacao)

case 2:

operacao = num 1 - num 2

printf ("A subtração é" "%d" operacao)

case 1:

operacao = num 1 * num 2

printf ("A multiplição é" "%d" operacao)

case 1:

operacao = num 1 / num 2

printf ("A divisão é" "%d" operacao)

else

printf ("Escolha invalida")

 

 

 

Bom se alguem puder me ajuda quanto aos outros (pelo que eu sei nem existe formula 100% para se calcular numeros primos neh e tem como exercicio... =/) e msm quanto as respostas destes aqui (usando FOR, WHILE ou DO WHILE)....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos por etapas...

 

1- Não entendi essa do máximo divisor comum, não quer dizer aquele lance lá do mínimo múltiplo comum?

 

2- Não acredito que esteja certo esse algoritmo... o certo seria:

#include <stdio.h>
#include <stlib.h>
int main() {
  int num1, num2, num3;
  float media = 0;
  printf ("Digite 3 numeros");
  scanf ("%d %d %d", &num1, &num2, &num3);
  media = (num1 + num2 + num3) / 3;
  printf ("A media é %f", media);
  return 0;
}
PS. você notou que você esqueceu total e completamente de todo e qualquer tipo de "ponto e vírgula" que são obrigatórios nos programas em C, certo?

 

3- Também receio que esteja errado:

#include <stdio.h>
#include <stlib.h>
#define FLAG 10
int main()
{
  int num1 = 0, x = 0;
  float media = 0;
  while(x++ < FLAG)
  {
	printf("Digite um numero\n");
	scanf ("%d", &num1);
	media += num1;
  }
  media /= FLAG;
  printf ("A media é %f", media);
  return 0;
}

4- Basta ler os numeros, manter as variáveis maior e menor definidas para zero, e quando ler o primeiro numero, defini-lo para as variáveis maior e menor também... Então você vai lendo mais números até terminar o loop (vide a resolução anterior...), e vai verificando: se o número for maior que a variável maior, atribui ele para a variável. Se for menor que a variável menor, atribui ele para a variável. Depois você só faz a média entre as duas variáveis.

 

5- Lembra a fórmula da progressão né? An = A1 + R * (n - 1);

Dá uma desenvolvida aí... E pra soma agora não lembro direito como era, acho que era algo como SOMA DOS N TERMOS = (a1 + an)*n / 2;

Dá uma pesquisada que tu descobre.

 

6- Vide resolução anterior... A diferença é que agora a PG é fixa a soma que é dinâmica mas sabendo as fórmulas fica barbada.

 

7- No final todo mundo fica com valor 3. Lembre-se que quando ++ vem na frente, primeiro incrementa a variável depois usa ela na expressão. Quando vem atrás, primeiro pega o valor original pra usar na expressão depois incrementa a variável.

 

8- Você está lendo apenas um número, em uma variável inexistente (num; as variáveis disponíveis são num1 e num2). Não se usa espaço em nomes de variáveis, reveja as operações. Você não fechou as aspas no printf que pede a operação. Não se separa o texto do printf, você escreve uma grande string com os formats e depois passa nos outros parâmetros as variáveis. Reveja as minhas soluções anteriores pra entender como é. Novamente tu esqueceu os pontos-e-vírgula. Reveja seus ifs e outros bagulhos, lembre-se que pra executar várias instruções tem que envolver em chaves.

 

9- Existem vários tópicos sobre números primos aqui no fórum, dê uma pesquisada.

 

10- Esqueceu de postar a tal fórmula. Qualquer coisa, usa essa fórmula que uso nos meus jogos: distância = deltax + deltay. Os deltas são os módulos de x1 - x2 e y1 - y2.

 

11- Essa aqui passo...

Qualquer coisa tem funções que calculam seno e cosseno na biblioteca math.h. hehe.

 

Falopa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Máximo divisor comum != mínimo múltiplo comum.

MDC é o maior inteiro que divide os dois números.

MMC é o menor múltiplo dos dois números (menor potencia dos fatores primos comuns).

 

 

6) Implemente um algoritmo que exiba os primeiros “n” termos da PA de razão 2 e termo inicial 4.

 

Não tem PG e não precisa calcular soma.É só um for.

 

7- No final todo mundo fica com valor 3. Lembre-se que quando ++ vem na frente, primeiro incrementa a variável depois usa ela na expressão. Quando vem atrás, primeiro pega o valor original pra usar na expressão depois incrementa a variável.

 

Não fica todo mundo igual a 3.

i = 3 , j = 4, k=3 , l=2

Quando se faz b = a++, b recebe o valor de a original e só depois disso a é incrementado. Se for b = ++a, as duas variáveis ficam com o mesmo valor.

 

 

No 8 você esqueceu dos breaks em cada case.

 

10 e 11 são fáceis,já que as fórmulas são dadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

help!

 

Faça uma função recursiva, em linguagem C, que calcule o valor da série S

descrita a seguir para um valor n>0 a ser fornecido como parâmetro para a

mesma: S = 1 + 1/1! + 1/2! + 1/3! + 1 /n!.

 

Estou encontrando problema para chegar a uma solução, alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Máximo divisor comum != mínimo múltiplo comum.

MDC é o maior inteiro que divide os dois números.

MMC é o menor múltiplo dos dois números (menor potencia dos fatores primos comuns).

Dessa eu não sabia :P

 

6) Implemente um algoritmo que exiba os primeiros “n” termos da PA de razão 2 e termo inicial 4.

 

Não tem PG e não precisa calcular soma.É só um for.

Perdão escrevi errado...

 

7- No final todo mundo fica com valor 3. Lembre-se que quando ++ vem na frente, primeiro incrementa a variável depois usa ela na expressão. Quando vem atrás, primeiro pega o valor original pra usar na expressão depois incrementa a variável.

Não fica todo mundo igual a 3.

i = 3 , j = 4, k=3 , l=2

Quando se faz b = a++, b recebe o valor de a original e só depois disso a é incrementado. Se for b = ++a, as duas variáveis ficam com o mesmo valor.

Que ótimo, eu copiei todo o código umas duas vezes para o bloco de notas, fui fazendo passo a passo e nas duas vezes deu todo mundo três, agora copiei todos denovo, fiz denovo, e deu certo como tu postou. Bom... deixa pra lá ^^

 

Tchau tchau!

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

help!

 

Faça uma função recursiva, em linguagem C, que calcule o valor da série S

descrita a seguir para um valor n>0 a ser fornecido como parâmetro para a

mesma: S = 1 + 1/1! + 1/2! + 1/3! + 1 /n!.

 

Estou encontrando problema para chegar a uma solução, alguém pode me ajudar?

Por que não abre outro tópico filho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele abriu. Abaixo do topico dele tem outro topico sobre a mesma coisa...

Povo usa google mas não usa busca em fórum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

help!

 

Faça uma função recursiva, em linguagem C, que calcule o valor da série S

descrita a seguir para um valor n>0 a ser fornecido como parâmetro para a

mesma: S = 1 + 1/1! + 1/2! + 1/3! + 1 /n!.

 

Estou encontrando problema para chegar a uma solução, alguém pode me ajudar?

Por que não abre outro tópico filho?

 

Desculpe, mas é que sou novo, estou apenas iniciando, você poderia me dar dica sobre esse problema?

veja o q fiz.

#include <stdio.h>

 

long int fatfrac(float n) {

int fat,frac=0, i;

if (n == 0)

return 1;

else {

if (n>0)

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

fat = n*fatfrac(n-1);

frac = frac + fat;

return frac;

}

}

 

int main(void) {

 

int n;

float s2;

printf("Digite o número:");

scanf("%d", &n);

s2=fatfrac(n);

printf("\nA soma dos números de 1 a %d e: %2.5f ",n,s2);

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

E mesmo alguém falando p/ abrir outro tópico você insiste em postar algo que não tem absolutamente nada a ver com o topico, mesmo existindo um topico sobre a mesma coisa postado há 3 dias e na primeira página do forum...

 

Mesmo você tendo aberto um tópico pra isso,que é onde você deveria postar... É só correr os olhos e ler a pagina ou ir no perfil e clicar no link...

 

Organização em fóruns é bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.