[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [obm-l] 3 Questões de Programação - Linguagem C!



1)

#include <stdio.h>
int main() {
  int n;
  printf("digite n: ");
  scanf("%d", &n);
  printf("%d m = %d0 dm  ou %d00 cm ou %d000 mm\n",n,n,n,n);
  /* ou printf("%d m = %d dm  ou %d cm ou %d mm\n",n,10*n,100*n,1000*n);
  return 0;
}

2)
#include <stdio.h>
int soma(int a, int b) { return (a+b); }
int dif(int a, int b) { return (a-b); }
int main() {
  int a,b;
  printf("digite a e b: ");
  scanf("%d %d", &a, &b);
  printf("A soma e': %d\n A diferenca e': %d\n", soma(a,b), dif(a,b));
  return 0;
}

3)

int razao(float a, float b, float *q) {
  if (b == 0) { *q = 0; return 0; }
  else
    *q = a / b;
  return 1;
}

Detalhe: nunca compare ingualdade em um float usando ==. Crie uma função especial para isto, e determine uma precisao, isto é:
a = b se, e somente se, a está no intervalo [b-epsilon, b+epsilon], onde epsilon > 0 é um real arbitrario (que é a sua precisao).
Um exemplo seria:
#define eps 0.001
int flt_eq(float a, float b) {
  return ((a >= (b - eps)) && (a <= (b + eps)));
}

então, na hora de comparar floats, vc faria:
if(flt_eq(num, 0)) {
  /* instrucoes se num for 0 (ou tao proximo quanto a sua precisao eps permita) */
}
else {
  /* se a distancia de de num a 0 for maior que eps */
}


Abraço,
Bruno


On 2/11/06, João Vitor <jvgp@terra.com.br> wrote:
Olá pessoal...
Gostaria de saber se alguem da lista sabe programar em linguagem C.
 
Eu fiz todos os programas aqui listados..e gostaria de poder ver algumas outras possibilidades de programar uma mesma tarefa.
 
Aí vai:
 
1) Fazer um programa em "C" que pergunta um valor em metros e imprime  o correspondente em centímetros, decímetros e milímetros.
 
2) Faça um programa em "C" que lê dois números e utiliza uma função chamada "soma" e outra função chamada "subtração" para imprimir a soma e a diferença entre os dois inteiros. Ambas funções devem receber dois inteiros como parâmetro e retornar um número inteiro como resultado.
 
3) Fazer uma função em "C" que retorna a razão entre dois números. A função deve retornar pelo comando "RETURN" o valor 1 se a operação foi possível e o valor 0 se a operação não foi possível (divisão por zero, por exemplo). O resultado da divisão deve retornar por um parâmetro de referência.
 
 
Vlw
Abraços!
João Vitor
Fortaleza - Ceará



--
Bruno França dos Reis
email: bfreis - gmail.com
gpg-key: http://planeta.terra.com.br/informatica/brunoreis/brunoreis.key
icq: 12626000

e^(pi*i)+1=0