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 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", ÷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);
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;
}
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: