Diário sobre as diversas coisas de Tecnologia, esportes, educação física e guia para estudos
quarta-feira, 7 de março de 2012
Vetores Vazios em C
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
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 eretornará 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 eretornará 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 aprimeira letra de cada palavra fique em maiúscula. Para isso, basta subtrair 32 do elementoque deseja alterar para maiúsculo. chrNome[0] = chrNome[0] – 32;Exemplo:Entrada: lab. de linguagem de programacaoSaí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 dealunos 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 dealunos 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");elsequociente();
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");elseprintf("%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 essaidade 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 seuconceito, conforme a tabela a seguir:Nota ConceitoDe 0 a 49 DDe 50 a 69 CDe 70 a 89 BDe 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");elseprintf("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 deinteiros impares que existem entre n1 e n2 (inclusive ambos, se for o caso). A função devefuncionar 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), queretorna a divisão inteira (sem casas decimais) de dividendo por divisor e armazena noparâ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", ÷ndo, &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
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);elsefor (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;}
sexta-feira, 16 de setembro de 2011
Portal™ uma abordagem educativa de Ciência, Tecnologia, Engenharia e Matemática.
Portal™ é um novo jogo single player da Valve. Estabelecido nos misteriosos Laboratórios Aperture Science, Portal é aclamado como um dos novos jogos mais inovadores no horizonte e oferecerá aos jogadores horas de jogabilidade única.[1]
O jogo é projetado para mudar a forma com a qual jogadores se aproximam, manipulam e supõem as possibilidades num dado ambiente.
Jogadores devem resolver quebra-cabeças físicos e desafios abrindo portais para manipular objetos, e eles mesmos, pelo espaço.
A produtora da série Portal™, a Valve, criou uma campanha para utilização do jogo em escolas para o desenvolvimento do raciocínio lógico, ensinando física e melhorando as habilidades de desenvolvimento crítico.
Um dos maiores desafios do ensino de ciências, tecnologia, engenharia e matemática é capturar a imaginação dos alunos para que eles vejam todas as possibilidades.
Utilizando ferramentas interativas como os jogos da série Portal™ para desenhar situações de física, lógica matemática, raciocínio espacial, probabilidade e resolvendo problemas de forma interessante, legal, e divertida que nos leva um passo mais perto de nossa meta, crianças pensativas! [2]
[1] http://store.steampowered.com/app/400/
[2] http://www.learningwithportals.com/
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
Standard ML
Estou aprendendo SML na aula de Linguagens de Programação, intao vou postando algumas coisas e exercicios sobre a linguagem
Página do projeto SML NJ (o copilador mais utilizado)
Wikipédia
Standard ML (SML) é uma linguagem de programação funcional de propósito geral modular com verificação e inferência de tipos em tempo de compilação. É popular entre pesquisadores de linguagem de programação e compiladores.
SML é um descendente moderno da ML (linguagem de programação) utilizado em lógica de funções computáveis (LCF). Distingue-se entre as linguagens utiliada devido sua característica funcional e devido sua especificação formal, dado como escrever regras e semântica operacional na definição da Standard ML
A Página do meu Professor Fernando (muito bom) tem mais informações sobre a materia e sobre o SML
http://homepages.dcc.ufmg.br/~fpereira/classes/dcc024/ementa/
Outros links em inglês
http://u.cs.biu.ac.il/~89-310/
alguns exercicios de SML
Escreva uma função cube, de tipo int -> int que retorne o cubo do seu parametro
fun cube x = x*x*x;
Escreva uma função cuber, de tipo real -> real que retorne o cubo de seu parametro.
fun cuber x:real = x*x*x;
Escreva a funcao fourth, de tipo 'a list -> 'a que retorne o quarto elemento da
lista passada como parametro. Nao se preocupe com a condicao de contorno em que a
lista de entrada possui menos que quatro elementos.
fun fourth a = hd(tl(tl(tl(a) )))
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: 