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.
Diário sobre as diversas coisas de Tecnologia, esportes, educação física e guia para estudos
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
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;
}
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
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.
Faça um procedimento que receba a idade de uma pessoa em dias e retorna essa idade
expressa em anos, meses e dias.
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.
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.
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
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
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
Assinar:
Postagens (Atom)