[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