Mostrando postagens com marcador C. Mostrar todas as postagens
Mostrando postagens com marcador C. Mostrar todas as postagens

quarta-feira, 7 de março de 2012

Vetores Vazios em C

Fala galera tudo bom?
vou passar um questionamento de C que fiz ao professor da minha disciplina

Opa tudo bom?
Eu estou com uma dúvida em C que está me tirando o sono, já pensei, procurei e não encontrei como verificar se uma posição do vetor está vazio ou ainda não foi declarado, em java, php e python e bem simples mais em C ainda não achei

Observe que não existe, a princípio a posição vazia.
Minha sugestão: ao iniciar o vetor, coloque um valor inválido, exemplo -1. Desta forma, você pode verificar se a posição é igual a -1, ou seja, ainda não tem valor válido.

Outra resposta sobre vetores de char

Vamos supor um array de char de 10 posicoes. O nome dele será vetor:

char vetor[10];

/* Nesse momento, o espaço (10 chars) foi alocado na area de memoria estática. */
/* Neste instante, quando será o conteúdo do array? LIXO. */

/* De praxe, você deve inicializar essa área de memória com um conteúdo que, para você, é o "VAZIO". Abaixo, vou inicializar cada posição com 'espacos em branco' */

memset(vetor, ' ', 10); /* 1o.parametro: o endereço da primeira posição; 2o.parâmetro: qual o char que preencherá cada posição; 3o. parâmetro: quantos bytes serão preenchidos) */

/* Aí, para saber se uma posição está vazia, é só ver o seu conteudo: */
if(vetor[3] == ' ')
{
// Está vazia!
}

/****************************/

Enfim: você inicializa as posições do array com o que quer você considere como vazio. Aí você usa o vetor, grava valores em suas posições. Para saber se uma posição do array está vazia, faça um simples teste como o acima.

terça-feira, 28 de fevereiro de 2012

Recursividade

Em Ciência da computação, a recursividade é a definição de uma subrotina (função ou método) que pode invocar a si mesma. A grande vantagem da recursão está na possibilidade de usar um programa de computador finito para definir, analisar ou produzir um estoque potencialmente infinito de sentenças, designs ou outros dados.
Wikipédia

Então vamos usar um fatorial para exemplificar
uma função em c que calcule o fatorial de um numero x sem recursividade

int fatorial (int x){
int i;
i = x - 1;
for (i; i!=1; i--)
x = x * i;
return x;
}

Então podemos considerar que:

fatorial de 5 é igual a 5 multiplicado pelo fatorial de 4;
fatorial de 4 é igual a 4 multiplicado pelo fatorial de 3;
fatorial de 3 é igual a 3 multiplicado pelo fatorial de 2 que é 2


fatorial de x = x * fatorial de ( x -1 );

Logo em C a função fatorial recursiva fica.


int fatorial (int x){
if(x<2)
return x;
return fatorial(x-1) * x;
}

segunda-feira, 24 de outubro de 2011

Vetores em C

/* Fazer um programa para contar o número de espaços em brancos de uma string.  */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
char s[20];
int i, quant;
quant = 0;
printf("Digite uma string: ");
scanf("%[^\n]",s);
printf("String digitada: %s\n",s);
 
for (i=0; s[i] != '\0' ;i++){
char ch;
ch = s[i];
if (ch == ' '){
quant += 1;
}
}
 
printf("Quantidade de espacos digitados: %d",quant);
return 0;
}




/* Refaça o programa anterior criando uma função que receberá como parâmetro a string e
retornará o número de espaços em branco que a string contem.   */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int emBranco (char s[]) {
int i = 0, quant = 0;
for (i=0; s[i] != '\0' ;i++){
char ch;
ch = s[i];
if (ch == ' '){
quant += 1;
}
}
 
printf("Quantidade de espacos digitados: %d",quant);
return 0;
}
int main(){
char s[25];
int i, quant;
quant = 0;
printf("Digite uma string: ");
scanf("%[^\n]",s);
printf("String digitada: %s\n",s);
emBranco(s);
 
 
return 0;
}




/* Fazer um programa para contar o número de vogais numa cadeia de caractere.  */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
char s[40];
int numVogais, i;
char *vogais;
printf("Digite uma string: ");
scanf("%[^\n]",s);
vogais = "aeiouAEIOU";
numVogais = 0;
for (i = 0; s[i] != '\0'; i++) {
char ch;
int j;
ch = s[i];
for (j = 0; vogais[j] != '\0'; j++) {
if (vogais[j] == ch) {
numVogais += 1;
break;
}
}
}
printf("Quantidade de vogais digitados: %d",numVogais);
 
 
return 0;
}




/* Refaça o programa anterior criando uma função que receberá como parâmetro a string e
retornará o número de vogais que a string contem.   */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int countVogais (char s[]) {
char *vogais;
int numVogais, i;
 
vogais = "aeiouAEIOU";
numVogais = 0;
for (i = 0; s[i] != '\0'; i++) {
char ch;
int j;
ch = s[i];
for (j = 0; vogais[j] != '\0'; j++) {
if (vogais[j] == ch) {
numVogais += 1;
break;
}
}
}
return numVogais;
}
 
 
 
int main()
{
char s[40];
int valor;
printf("Digite uma string: ");
scanf("%[^\n]",s);
valor=countVogais(s);
printf("Quantidade de vogais digitados: %d",valor);
 
 
return 0;
}



/*Escrever um programa para ler uma string (com mais de uma palavra) e faça com que a
primeira letra de cada palavra fique em maiúscula. Para isso, basta subtrair 32 do elemento
que deseja alterar para maiúsculo. chrNome[0] = chrNome[0] – 32;
Exemplo:
Entrada: lab. de linguagem de programacao
Saída: Lab. De Linguagem De Programacao  */
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
char s[40];
int i;
 
printf("Digite uma string: ");
scanf("%[^\n]",s);
printf("String digitada: %s\n",s);
 
for (i=0; s[i] != '\0' ;i++){
char ch;
ch = s[i];
if (ch == s[0]){
s[i] = s[i] - 32;
}
 
if (ch == ' '){
s[i+1] = s[i+1] - 32;
}
}
printf("String digitada concertada: %s",s);
 
 
return 0;
}

Vetores númericos

/*Dada um tabela contendo a idade de 10 alunos, faça um algoritmo que calcule o número de
alunos com idade superior a média.
*/
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int v[10];
int i, soma, count;
float media;
soma = 0;
count = 0;
 
for (i=0; i < 10; i++){
printf("Digite a nota %d\n",i+1);
scanf("%d", &v[i]);
soma = soma + v[i];
}
media = ((float)soma)/ 10.0;
 
for (i=0; i < 10; i++){
if (media < ((float)v[i])){
count = count + 1;
}
}
 
printf("Media: %f\n", media);
printf("Quantidade de Alunos com nota maior que a media: %d\n", count);
 
 
return 0;
}




/*Dada um tabela contendo a idade de 10 alunos, faça um algoritmo que calcule o número de
alunos com idade superior a média.
*/
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int v1[10], v2[10];
int i, soma1, soma2;
 
soma1 = 0;
soma2 = 0;
 
for (i=0; i < 10; i++){
printf("Digite o valor do vetor1 na posicao %d\n",i+1);
scanf("%d", &v1[i]);
soma1 = soma1 + v1[i];
}
printf("A Soma dos valores do primeiro vetor e: %d\n\n", soma1);
 
for (i=0; i < 10; i++){
printf("Digite o valor do vetor2 na posicao %d\n",i+1);
scanf("%d", &v2[i]);
soma2 = soma2 + v2[i];
}
printf("A Soma dos valores do primeiro vetor e: %d\n\n", soma2);
 
printf("A Soma Total e: %d\n", soma1+soma2);
 
 
return 0;
}

Mais um pouco de Funções

/*Escreva uma função que receba como parâmetro 
um valor n inteiro e positivo e que calcule 
a seguinte soma: S := 1 + 1/2 + 1/3 + 1/4 + ... + 1/n. 
A função deverá retornar o valor de S.  */
#include <stdio.h>
#include <stdlib.h>
 
 
int  soma(int n){
float i, s;
s=0;
for (i=1; i<=n; i++){
s= s + 1/i ;
}
printf ("o valor de S e %f",s);
 
}
 
int main()
{
int n;
printf("Entre com o parametro\n");
scanf("%d", &n);
soma(n);
return 0;
}
 




/*Faça um programa que apresente o seguinte “Menu” para o usuário: 
     Escolha uma opção de cálculo para dois números: 
              1) Soma 
              2) Produto 
              3) Quociente 
              4) Sair 
              Opção:__  
O “Menu” acima deve ser apresentado para o usuário enquanto ele não escolher a opção 4 
(sair do programa). O usuário fornecerá 2 números se escolher as opções de cálculo 1, 2 
ou 3. Para cada opção de cálculo deve existir (obrigatoriamente) uma função definida 
(soma, produto e quociente dos dois números fornecidos pelo usuário). O resultado do 
cálculo deve ser escrito na tela.  */
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
 
int soma()
{
int a, b;
printf("Entre dois valores \n");
scanf("%d %d", &a,&b);
printf("O resultado da soma de %d + %d = %d",a,b, a+b);            
return 0;
}
 
int produto()
{
int a, b;
printf("Entre dois valores \n");
scanf("%d %d", &a,&b);
printf("O resultado da multiplicacao de %d * %d = %d",a,b, a*b);            
return 0;
}
 
int quociente()
{   
float a,b;
printf("Entre dois valores \n");
scanf("%f %f", &a,&b);
printf("O resultado da multiplicacao de %f / %f = %f",a,b, a/b);            
return 0;
}
 
 
int main(){
int a, b, operador;
float c;
 
printf("Entre com o Operador 1.+(soma) 2.*(Produto) 3./(Quociente) 4. (Sair)");
scanf("%d",&operador);
switch (operador)
{
case 1:
soma();
break;
case 2:
produto();
break;
case 3:
if (b == 0)
printf("Não existe divisão por 0");
else
quociente();
break;
case 4:       
printf("Até mais");
break;
default:
printf("Operador invalido");
break;
}
return 0;
}



/*Agora com o seguinte “Menu”
   Escolha uma opção de cálculo para um número:
   a) Fatorial
   b) Exponencial
   c) Raiz quadrada
   d) Sair
   Opção: __
 Nas opções “b” e “c” pode - se utilizar funções predefinidas do C.  */
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void sair(){
char confirm[3];
printf("Tem Certeza?");
scanf("%s",confirm);
if (confirm == 'sim')
printf("Tem dsadsadsaCerteza");
else
printf("%s", confirm);
}
 
int main(){
int operador;
 
 
printf("Entre com uma opcao\n1.(Quer Namorar com o Guilherme)\n2.(Quer Passar o resto da vida com o Guilherme)\n3.(Nao Consegue viver mais sem o Guilherme)\n4.(Sair)");
scanf("%d",&operador);
switch (operador)
{
case 1:
int n,a;
printf("Entre o valor do fatorial\n");
scanf("%d", &n);
a = fatorial(n);
printf("O resultado do fatorial de %d e %d\n",n , a);
break;
case 2:
exponencial();
 
break;
case 3:
raiz();
 
break;
case 4:
sair()
break;
default:
printf("Operador invalido");
break;
}
 
return 0;
}

segunda-feira, 10 de outubro de 2011

Exercicios de funções parte II

/*5.  Faça uma função que receba a idade de uma pessoa em anos, meses e dias e retorna essa
idade expressa em dias. */
#include <stdio.h>
#include <stdlib.h>
 
 
int convertedias(int anos, int meses, int dias){
int dias2;
dias2 = (anos * 365) + (meses * 30) + dias;
printf("Sua idade em dias e %d\n", dias2);
}
 
int main()
{
int anos, meses, dias;
printf("Informe a idade em anos, meses e dias\n");
scanf("%d %d %d", &anos, &meses, &dias);
convertedias(anos, meses, dias);
return 0;
}






/*6.  Faça  uma função que  recebe  a  média final  de  um  aluno  por  parâmetro  e  retorna  o  seu
conceito, conforme a tabela a seguir:
Nota     Conceito
De 0 a 49       D
De 50 a 69    C
De 70 a 89    B
De 90 a 100        A
 */
#include <stdio.h>
#include <stdlib.h>
 
 
int  conceito (int media){
if (media >= 0 && media <= 49)
printf("Conceito D");
else if (media <= 69)
printf("Conceito C");
else if (media <= 89)
printf("Conceito B");
else if (media <= 100)
printf("Conceito A");
else
printf("Valor de entrada incorreto");
 
}
 
int main()
{
int media;
printf("Entre com a media\n");
scanf("%d", &media);
conceito(media);
return 0;
}






/*7. Escrever uma função  int  contaimpar (int n1, int n2) que retorna o número de
inteiros impares que existem entre n1 e n2 (inclusive ambos, se for o caso). A função deve
funcionar inclusive se o valor de n2 for menor que n1.   */
#include <stdio.h>
#include <stdlib.h>
 
 
int  contaimpar (int n1, int n2){
int i, asw;
asw = 0;
int vect[0];
if (n1 <= n2){
for (i=n1; i<=n2; i++){
if (i%2 != 0){
asw++;}
}}
else{
for (i=n1; i>=n2; i--){
if (i%2 != 0){
asw++;}
}}
 
 
printf ("Quantida de impares e %d",asw);
}
 
int main()
{
int n1, n2;
printf("Entre com os valores\n");
scanf("%d %d", &n1, &n2);
contaimpar(n1,n2);
return 0;
}




/* 8.  Escrever uma função int divisão (int dividendo, int divisor, int * resto), que
retorna  a  divisão  inteira  (sem  casas  decimais)  de  dividendo  por  divisor  e  armazena  no
parâmetro resto, passado por referência, o resto da divisão.
int r, d;
d = divisao(5, 2, &r);
printf("Resultado:%d Resto:%d", d, r); Resultado:2 Resto:1   */
 
#include <stdio.h>
#include <stdlib.h>
 
 
int divisao(int dividendo, int divisor, int *resto){
 
*resto = dividendo%divisor;
return dividendo/divisor;
 
}
 
int main(){
int r, d, divisor, dividendo;
printf("Entre com o Dividendo e o Divisor\n");
scanf("%d %d", &dividendo, &divisor);
d = divisao(dividendo, divisor, &r);
printf("Resultado:%d Resto:%d", d, r);
}

terça-feira, 27 de setembro de 2011

Exemplo Procedimentos e Funções

Escreva um procedimento que receba como parâmetro dois valores inteiros n1 e n2 e
imprima o intervalo fechado entre eles, do menor para o maior.
Por exemplo: se n1 = 2 e n2 = 5, o procedimento irá imprimir 2, 3, 4, 5.
#include <stdio.h>
#include <stdlib.h>
 
void completa(int n1, int n2){
int i;
if (n1<=n2)
for (i=n1; i<=n2; i++)
printf("%d", i);
else
for (i=n2; i<=n1; i++)
printf("%d", i);
}
 
int main()
{
int n1, n2;
printf("Entre com dois valores\n");
scanf("%d %d",&n1, &n2);
completa(n1,n2);
return 0;
}



Faça um procedimento que receba a idade de uma pessoa em dias e retorna essa idade
expressa em anos, meses e dias.



#include <stdio.h>
#include <stdlib.h>
 
void transforma(int dias){
int meses, anos;
anos = dias / 365;
meses = dias / 30;
if (dias >= 365)
dias = dias % 365;
meses = meses % 12;
if (dias >= 30)
dias = dias % 30;
printf("A idade e %d anos, %d meses e %d dias", anos, meses, dias);
}
 
int main()
{
int dias;
printf("Entre com a quantidade de dias\n");
scanf("%d",&dias);
transforma(dias);
return 0;
}






Faça um procedimento que receba por parâmetro o  tempo de duração de um experimento
expresso em segundos e imprima na tela esse mesmo tempo em horas, minutos e
segundos.



#include <stdio.h>
#include <stdlib.h>
 
void converte(int seg){
int horas, minutos;
minutos = seg / 60;
horas = seg / 3600;
if (seg >= 3600)
seg = seg % 3600;
minutos = minutos % 60;
if (seg >= 60)
seg = seg % 60;
printf("O tempo do experimento e %d horas, %d minutos e %d segundos", horas, minutos, seg);
}
 
int main()
{
int seg;
printf("Entre com o tempo do experimento em segundos\n");
scanf("%d",&seg);
converte(seg);
return 0;
}






Faça uma função que receba por parâmetro o raio de uma esfera e calcula o seu volume: V = (4 * PI * R3) /3. 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int volume(raio){
 
float pi, vol, r3;
r3=pow((float)raio,3);
pi = 3.14159265;
vol = ((4.0 * pi * r3)/3.0);
 
printf("Volume da esfera de raio %d e %f", raio, vol);
}
 
int main()
{
int raio;
printf("Entre com o raio da esfera\n");
scanf("%d",&raio);
volume(raio);
return 0;
}

quinta-feira, 8 de setembro de 2011

Exercicios de C, Laços de Repetição

   1:  //1. Fazer um algoritmo que imprima todos os números pares no intervalo 1-100.
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:   
   5:  int main()
   6:  {
   7:      int i;
   8:      for(i=2; i<=100; i=i+2)
   9:     {
  10:          printf("%d\n",i);
  11:     }
  12:      return 0;
  13:  }




   1:  //2. Fazer um algoritmo que imprima todos os números de 100 até 1. 
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:   
   5:  int main()
   6:  {
   7:      int i;
   8:      for(i=100; i>=1; i--)
   9:     {
  10:          printf("%d\n",i);
  11:     }
  12:      return 0;
  13:  }





   1:  // Dada uma dívida de 10000 reais que cresce a juros de 2,5% ao mês e uma aplicação de 
   2:  //1500 reais com rendimento de 4% ao mês, escrever um algoritmo que determina o número 
   3:  //de meses necessários para pagar a dívida. 
   4:  #include <stdio.h>
   5:  #include <stdlib.h>
   6:   
   7:  int main()
   8:  {
   9:      float divida, juros, aplicacao, rendimento;
  10:      int meses;
  11:      meses = 0;
  12:      divida = 10000;
  13:      juros = 0.025;
  14:      aplicacao = 1500;
  15:      rendimento = 0.04;
  16:   
  17:      while (divida > aplicacao) {
  18:          divida = (divida * juros) + divida;
  19:          aplicacao = (aplicacao * rendimento) + aplicacao;
  20:          meses ++;
  21:      }
  22:      printf("Quantidade de meses para liquidar a divida e %d\n",meses);
  23:      printf("Sua divida esta em %f\n",divida);
  24:      printf("Sua aplicacao esta em %f\n", aplicacao);
  25:      return 0;
  26:  }





   1:  /* Fazer um programa para calcular e mostrar os N primeiros termos da série de Fibonacci. O 
   2:  número N é fornecido pelo usuário. A série de Fibonacci é gerada da seguinte forma: 
   3:   f1 = f2 = 1; 
   4:   f3 = f1 + f2 = 2; 
   5:   f4 = f2 + f3 = 3;.... 
   6:  O primeiro e segundo termos valem 1 e os seguintes são calculados somando os dois termos 
   7:  anteriores.*/
   8:  #include <stdio.h>
   9:  #include <stdlib.h>
  10:   
  11:  int main()
  12:  {
  13:      int fibo,conta=0,a=0,b=1,i;
  14:      printf("Entre com a quantidade de numeros de fibonacci que deseja criar\n");
  15:      scanf("%d",&fibo);
  16:   
  17:            for(i = 0; i < fibo; i++)
  18:             {
  19:                 conta = (a + b);
  20:                 printf("%d\n",conta);
  21:                 a = b;
  22:                 b = conta;
  23:              }
  24:      return 0;
  25:  }

sexta-feira, 26 de agosto de 2011

Exemplos de Codicionais em C

Todos os exercicios da Apostila de Algoritmos da UFJF Capitulo 3, Condicionais 1. Ler dois números inteiros e informar se o primeiro é maior, menor ou igual ao segundo. 1: */ exercicio 1 /*  
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:   
   5:  int main()
   6:  {
   7:      int a, b;
   8:   
   9:      printf("Entre com dois inteiros \n");
  10:      scanf("%d %d", &a, &b);
  11:   
  12:      if (a > b)
  13:   
  14:          printf("O primeiro e maior que o segundo. %d > %d", a , b);
  15:      else
  16:          if (a == b)
  17:              printf("O Primeiro e igual ao segundo. %d = %d", a, b);
  18:          else
  19:              printf("O Primeiro e menor que o segundo %d<%d", a, b);
  20:   
  21:      return 0;
  22:  }


2. Faça um programa para ler dois números inteiros, faça a divisão do primeiro pelo segundo (somente se o segundo for diferente de zero).
 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      float a, b;
   7:   
   8:      printf("Entre com dois inteiros \n");
   9:      scanf("%f %f", &a, &b);
  10:   
  11:      if (b != 0)
  12:          printf("A divisao %f / %f = %f", a,b,a/b);
  13:      else
  14:          printf("Impossivel divisao por 0");
  15:   
  16:      return 0;
  17:  }
  18:   
  19:  //opção com números inteiros como pede o exercicio
  20:  /*
  21:  
  22:  #include <stdio.h>
  23:  #include <stdlib.h>
  24:  
  25:  int main()
  26:  {
  27:      int a, b;
  28:  
  29:      printf("Entre com dois inteiros \n");
  30:      scanf("%d %d", &a, &b);
  31:  
  32:      if (b != 0)
  33:          printf("A divisao %d / %d = %d", a,b,a/b);
  34:      else
  35:          printf("Impossivel divisao por 0");
  36:  
  37:      return 0;
  38:  }
  39:  */


3. Ler um número inteiro e informar se ele é divisível por 2.

   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:   
   8:      printf("Entre com um numero inteiro \n");
   9:      scanf("%d", &a);
  10:   
  11:      if ( a % 2 == 0 )
  12:          printf("O numero %d e par", a);
  13:      else
  14:          printf("O numero %d nao e par", a);
  15:   
  16:      return 0;
  17:  }




4. Altere o algoritmo anterior para que seja informado se o número é divisível por 2 e por 3 simultaneamente.

   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:   
   8:      printf("Entre com um numero inteiro \n");
   9:      scanf("%d", &a);
  10:   
  11:      if ( a % 2 == 0)
  12:      if (a % 3 == 0)
  13:      printf("O numero %d e divisivel por 2 e 3 ao mesmo tempo", a);
  14:          else
  15:      printf("O numero %d e par mais nao e divisivel por 3 ao mesmo tempo", a);
  16:      else
  17:          if (a % 3 == 0)
  18:              printf("O numero %d nao e par mais e divisivel por 3", a);
  19:          else
  20:              printf("O numero %d nao e par nem divisivel por 3", a);
  21:      return 0;
  22:  }



5. Altere o algoritmo anterior para que seja informado se o número é divisível por 2 e por 3, mas que não seja divisível por 5. 
 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:   
   8:      printf("Entre com um numero inteiro \n");
   9:      scanf("%d", &a);
  10:   
  11:      if ( a % 2 == 0)
  12:          if (a % 3 == 0)
  13:              if (a % 5 == 0)
  14:                  printf("O numero %d e divisivel por 2,3 e 5", a);
  15:              else
  16:                  printf("O numero %d e divisivel por 2 e 3 ao mesmo tempo e nao e divisivel por 5", a);
  17:          else
  18:              if (a % 5 == 0)
  19:                  printf("O numero %d e divisivel por 2 e 5 e nao e por 3", a);
  20:              else
  21:                  printf("O numero %d e divisivel por 3 e 5 e nao e por 2", a);
  22:      else
  23:          if (a % 5 == 0)
  24:              printf("O numero %d e divisivel por 5 e nao e por 2 e 3", a);
  25:          else
  26:              printf("O numero %d nao e divisivel por 2 e 3 ou 5", a);
  27:      return 0;
  28:  }




6. Faça um programa para ler dois números reais e verificar se ambos são maiores que zero. Caso positivo, informar “Valores são válidos”. Caso contrário, informar “Valores inválidos”. 
 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      float a, b;
   7:   
   8:      printf("Entre com dois inteiros \n");
   9:      scanf("%f %f", &a, &b);
  10:   
  11:      if (a > 0 && b > 0)
  12:          printf("Valores são válidos");
  13:      else
  14:          printf("Valores inválidos");
  15:   
  16:   
  17:      return 0;
  18:  }
  19:   



7. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um programa que calcule seu peso ideal, utilizando as seguintes fórmulas: para homens: (72.7*h)58 e para mulheres: (62.1*h)44.7 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:      float b,c;
   8:   
   9:      printf("Entre com o sexo 1.Masculino ou 2.Feminino \n");
  10:      scanf("%d", &a);
  11:      printf("Entre com sua altura no formato [1.86] \n");
  12:      scanf("%f", &b);
  13:   
  14:      switch (a)
  15:      {
  16:      case 1:
  17:          c=(72.7 * b) - 58;
  18:          printf("Seu peso ideal e: %f",c);
  19:          break;
  20:      case 2:
  21:          c=(62.1*b)-44.7;
  22:          printf("Seu peso ideal e: %f",c);
  23:          break;
  24:      default:
  25:          printf("Sexo invalido");
  26:      }
  27:   
  28:      return 0;
  29:  }
  30:   

8. Faça um programa que leia 3 comprimentos (x, y e z) e responda se eles formam um triângulo, ou seja, se  x < y + z e y < x + z e z < x + y. 
 
   1:   
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:   
   5:  int main()
   6:  {
   7:      int x,y,z;
   8:   
   9:      printf("Entre com tres valores inteiros \n");
  10:      scanf("%d %d %d", &x, &y, &z);
  11:   
  12:      if ((x < (y + z)) && (y < (x + z)) && (z < (x + y)))
  13:   
  14:          printf("Os valores %d, %d e %d formam um triangulo", x,y,z);
  15:      else
  16:          printf("Os valores %d, %d e %d NAO formam um triangulo", x,y,z);
  17:      return 0;
  18:  }
  19:   




   1:  /*
   2:  Desenvolver um algoritmo para ler o número do dia da semana e imprimir o seu respectivo
   3:  nome por extenso. Considerar o número 1 como domingo, 2 para segunda etc. Caso o dia
   4:  não exista (menor que 1 ou maior que 7), exibir a mensagem “Dia da semana inválido".
   5:  */
   6:  #include <stdio.h>
   7:  #include <stdlib.h>
   8:   
   9:  int main()
  10:  {
  11:      int a;
  12:      printf("Entre um valor de 1 a 7 \n");
  13:      scanf("%d", &a);
  14:      switch (a)
  15:      {
  16:      case 1:
  17:          printf("O dia 1 e Domingo");
  18:          break;
  19:      case 2:
  20:          printf("O dia 2 e Segunda");
  21:          break;
  22:      case 3:
  23:          printf("O dia 3 e Terca");
  24:          break;
  25:      case 4:
  26:          printf("O dia 4 e Quarta");
  27:          break;
  28:      case 5:
  29:          printf("O dia 5 e Quinta");
  30:          break;
  31:      case 6:
  32:          printf("O dia 6 e Sexta, Its Friday");
  33:          break;
  34:      case 7:
  35:          printf("O dia 7 e Sábado");
  36:          break;
  37:      default:
  38:          printf("Dia da semana inválido");
  39:      }
  40:   
  41:      return 0;
  42:  }
  43:   




   1:  /*
   2:  Fazer um algoritmo para ler dois números e um dos símbolos das operações: +,- * e /.
   3:  Imprimir o resultado da operação efetuada sobre os números lidos.
   4:  */
   5:  #include <stdio.h>
   6:  #include <stdlib.h>
   7:   
   8:  int main()
   9:  {
  10:      int a, b, operador;
  11:      float c;
  12:      printf("Entre dois valores \n");
  13:      scanf("%d %d", &a,&b);
  14:      printf("Entre com o Operador 1.+(soma) 2.-(subtracao) 3.*(multiplicacao) 4./ (divisao)");
  15:      scanf("%d",&operador);
  16:        switch (operador)
  17:      {
  18:      case 1:
  19:          printf("O resultado da soma de %d + %d = %d",a,b, a+b);
  20:          break;
  21:      case 2:
  22:          printf("O resultado da subtracao de %d - %d = %d",a,b, a-b);
  23:          break;
  24:      case 3:
  25:          printf("O resultado da multiplicacao de %d * %d = %d",a,b, a*b);
  26:          break;
  27:      case 4:
  28:          if (b == 0)
  29:          printf("Não existe divisão por 0");
  30:          else
  31:          c = (float)a/(float)b;
  32:          printf("O resultado da divisao de %d / %d = %f",a,b, c);
  33:          break;
  34:      default:
  35:          printf("Operador invalido");
  36:          break;
  37:      }
  38:   
  39:  return 0;
  40:  }
  41:   






   1:  /*
   2:  Os funcionários de uma empresa receberam um aumento de salário: técnicos (código = 1),
   3:  50%; gerentes (código = 2), 30%; demais funcionários (código = 3), 20%. Escrever um
   4:  algoritmo para ler o código do cargo de um funcionário e o valor do seu salário atual, calcular
   5:  e imprimir o novo salário após o aumento.
   6:  */
   7:  #include <stdio.h>
   8:  #include <stdlib.h>
   9:   
  10:  int main()
  11:  {
  12:      int b;
  13:      float a, c;
  14:      printf("Informe o valor atual do salario \n");
  15:      scanf("%f",&a);
  16:      printf("Entre com o codigo do funcionario \ntecnicos (codigo = 1) 50 por cento de aumento;\ngerentes (codigo = 2), 30 por cento de aumento;\ndemais funcionarios (codigo = 3), 20 por cento de aumento");
  17:      scanf("%d",&b);
  18:        switch (b)
  19:      {
  20:      case 1:
  21:          c = a + (a*0.50);
  22:          printf("Apos o aumento o novo salario do tecnico e %f ",c);
  23:          break;
  24:      case 2:
  25:          c = a + (a * 0.30);
  26:          printf("Apos o aumento o novo salario do gerente e %f ",c);
  27:          break;
  28:      case 3:
  29:          c = a + (a* 0.20);
  30:          printf("Apos o aumento o novo salario do funcionario e %f ",c);
  31:          break;
  32:      default:
  33:          printf("Funcionario invalido");
  34:          break;
  35:      }
  36:   
  37:  return 0;
  38:  }
  39:   




   1:  /*
   2:  Desenvolver um algoritmo para ler o valor inteiro da idade de uma pessoa e imprimir uma
   3:  das mensagens: se idade < 13: Criança, se 13 = idade < 20: Adolescente, se 20 = idade <
   4:  60: Adulto e se idade = 60: Idoso.
   5:  */
   6:  #include <stdio.h>
   7:  #include <stdlib.h>
   8:   
   9:  int main()
  10:  {
  11:     int a;
  12:     printf("Entre com a Idade\n");
  13:     scanf("%d",&a);
  14:     if (a < 13)
  15:     printf("Crianca");
  16:     else if (a < 20)
  17:          printf("Adolescente");
  18:          else if (a < 60)
  19:          printf("Adulto");
  20:              else
  21:              printf("Idoso");
  22:  return 0;
  23:  }
  24:   

quinta-feira, 25 de agosto de 2011

Imprimir o valor 2.346728
com 1, 2, 3 e 5 casas decimais



#include <stdio.h>

int main ()
{
         printf("Uma casa:  %.1f \n", 2.346728);
         printf("Duas casas:  %.2f \n", 2.346728);
         printf("Tres casas:  %.3f \n", 2.346728);
         printf("Cinco casas:  %.5f \n", 2.346728);
         return 0;
}

Ler uma temperatura em graus Celsius e apresentá-la convertida em graus Fahrenheit. A
fórmula de conversão: F ← (9*C+160)/5 


#include <stdio.h>
#include <math.h>

int main ()
{
    float c=0,f=0;
    printf ("Digite a temperatura em Graus Celsius:");
    scanf("%f",&c);
    f=(9 * c + 160) / 5;
    printf("A temperatura em Graus Fahrenheit e: %f \n",f);

    return 0;
}
Construir um algoritmo para ler 5 valores inteiros, calcular e imprimir a soma desses valores.


#include <stdio.h>
int main ()
{
    int n1,n2,n3,n4,n5,soma;
	printf("Digite cinco valores inteiros: ");
	scanf("%i",&n1);
	scanf("%i",&n2);
	scanf("%i",&n3);
	scanf("%i",&n4);
	scanf("%i",&n5);
	soma = n1 + n2 + n3 + n4 + n5;
	printf("\n%i + %i + %i + %i + %i = %i",n1,n2,n3,n4,n5,soma);
    return 0;
}

Licenciatura da Computação (Licomp)

Sou Aluno do curso de Licenciatura de Computação (Licomp) da UFJF e também ajudo a gerenciar o conteúdo do colalicomp um site com os exercícios do curso

Como tem a materia de algoritmos esse periodo eu resolvi postar todos os algoritmos resolvidos da apostila aqui
Esse semestre vamos ver C
como eu já programo em C/C++, Python, PHP resolvi fazer para ter registro e ajudar quem procurar
PS: Quase todos feitos por mim
PS2: A Apostila para quem quiser e essa