Exemplos registros e funções

423 visualizações

Publicada em

Registros e funções

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
423
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Exemplos registros e funções

  1. 1. Exercício: Defina uma struct de um carro. Crie um modelo de carro, preencha seus dados e exiba eles através de uma função que recebe esse tipo de struct. Primeiro criamos a nossa struct,que será tipo CARRO, em seguida uma função que recebe um dado do tal tipo CARRO, que vamos chamar de ‘car’. Então, quando passamos uma struct do tipo CARRO para a função, ele é vista dentro da função como a struct de nome ‘car’, bastando acessar diretamente suas variáveis e exibi-las. Dentro da main(), criamos uma variável, ou struct do tipo CARRO, de nome ‘fusca’. A única coisa, talvez, diferente é a maneira com a qual inicializamos nossa struct: temos que preencher todos os termos da struct, na ordem. Veja como ficou nosso código C #include <stdio.h> typedef struct carro { char modelo[30]; float potenciaMotor; int anoFabricacao, numPortas; }CARRO; void Exibe(CARRO car) { printf("Modelo: %sn", car.modelo); printf("Motor: %.1fn", car.potenciaMotor); printf("Ano: %dn", car.anoFabricacao); printf("%d portasn", car.numPortas); } int main(void) { CARRO fusca = {"Fuscao preto", 1.5, 74, 2}; Exibe(fusca); return 0; } 1. Escreva um aplicativo em C mostra todos os números ímpares de 1 até 100. Essa é bem simples.Basta percorrermos os números de 1 até 100, e fazer um teste condicional IF dentro do laço WHILE, para exibir somente aqueles números que são ímpares, ou seja, aqueles números que deixam resto 1 quando divididos por #include <stdio.h> int main() { int count = 1; while(count <= 100) { if(count%2 == 1) printf("%d ",count); count++; } } Escreva um aplicativo em C que recebe inteiro e mostra os números pares e ímpares (separados, em duas colunas), de 1 até esse inteiro.
  2. 2. Como o primeiro número é ímpar (1), os ímpares serão exibidos primeiro. Após cada ímpar damos o espaço de um TAB (t), e na mesma linha imprimimos o par,e logo em seguinte o caractere new line (n). #include <stdio.h> int main() { int num, count = 1; printf("Digite um numero: "); scanf("%d", &num); printf("IMPARES tPARESn"); while(count <= num) { if(count%2 == 1) printf(" %d t",count); else printf(" t %dn", count); count++; } } Escreva um programa que pergunte ao usuário quantos alunos tem na sala dele. Em seguida, através de um laço while, pede ao usuário para que entre com as notas de todos os alunos da sala, um por vez. Por fim, o programa deve mostrar a média, aritmética, da turma. Para resolver este exercício, vamos precisar de várias variáveis de apoio. A variável 'total' vai receber o número total de alunos em uma sala. A variável 'count' será a que vai mudar dentro do laço WHILE. E ela começa do primeiro aluno e termina no último. A cada iteração do laço while, pedimos uma nota, que é somada a variável do tipo float 'soma'. A média aritmética é dada por essa soma (de todas as notas), dividida pelo número de alunos na sala. Assim, nosso programa em C fica: #include <stdio.h> int main() { int total, count = 1; float nota, soma=0.0; printf("Numero de alunos na sala: "); scanf("%d",&total); while(count <= total) { printf("Nota do aluno %d: ",count); scanf("%f",&nota); soma = soma + nota; count++; } printf("Media da turma: %.2f", soma/total); }
  3. 3. Achar o maior, menor, média e organizar números ou seqüências são os algoritmos mais importantes e estudados em Computação. Em C não poderia ser diferente. Em nosso curso, obviamente, também não será diferente. Escreva um programa em C que solicita 10 números ao usuário, através de um laço while, e ao final mostre qual destes números é o maior. Vamos usar a nossa velha e conhecida variável 'count' pra contar de 1 até 10 no laço while. Inicialmente, também, criamos a variável 'maior', que irá armazenar o maior número. Inicializamoselacomvalor0. A cada iteraçãodo laço while pedimos um número ao usuário, e armazenamos sempre na variável 'num'. Em seguida fazemos uma comparação com o teste condicional IF ELSE para saber se esse número digitado é maior que o 'maior'. Se for, é porque esse número é o maior que já foi digitado, então fazemos com a variável 'maior' receba o valor desse 'num'. Caso o 'num' não seja maior que 'maior', nada acontece e 'maior' continua armazenando o maior número. Veja como ficou nossa solução em C: #include <stdio.h> int main() { int maior=0, num, count=1; while (count <= 10) { printf("Digite o numero %d: ", count); scanf("%d", &num); if( num > maior) maior=num; count++; } printf("Maior: %d", maior); } Escreva um programa que lê o tamanho do lado de um quadrado e imprime um quadrado daquele tamanho com asteriscos. Seu programa deve funcionar para quadrados com lados de todos os tamanhos entre 1 e 20. Por exemplo, para lado igual a 5: Note que sempre existirão'lado*lado' asteriscos. Vamos usar o while para imprimir todos os 'lado*lado' asteriscos. Note também que a cada 'lado' asteriscos, ocorre uma quebra da linha. No exemplodolado=5:quandochegamosnoasteriscode número5, não imprimimossomente '*', mas '*n' O mesmo para o asterisco de número 10, pro de número 15, ...e pro de número 20 Ou seja,apóso asterisco múltiplo de 5 ser impresso na tela, devemos colocar uma quebra da linha. Comochamamos númerosque sãomúltiplosde 'lado'?Ora,pelo módulo(ouresto da divisão)
  4. 4. #include <stdio.h> int main() { int lado, count=1; printf("Lado do quadrado: "); scanf("%d", &lado); while( count <= lado*lado) { if(count % lado == 0) printf("*n"); else printf("*"); count++; } } Lendo e Escrevendo Strings em C Exemplo: Programa que pede o nome e sobrenome em C Crie um aplicativo em C que peça ao usuário seu nome, armazene em uma String, peça o sobrenome, armazene em outra string e exiba o nome do usuário de maneira formal ( Sobrenome, Nome). #include <stdio.h> // Curso C Progressivo: www.cprogessivo.net // O melhor curso de C! Online e gratuito ! // Apostila online, tutorial completo sobre // a linguagem de programação C ! int main() { char nome[21], sobrenome[21]; printf("Primeiro nome: "); scanf("%s", nome); printf("Ultimo sobrenome: "); scanf("%s", sobrenome); printf("Ola senhor %s, %s. Bem-vindo ao curso C Progressivo.n", sobrenome, nome); return 0; } Exemplo de código: Programa em C que pede os dados cadastrais completos Crie um aplicativo em C que peça o nome do usuário,sua idade e data de nascimento. #include <stdio.h> // Curso C Progressivo: www.cprogessivo.net // O melhor curso de C! Online e gratuito ! // Apostila online, tutorial completo sobre // a linguagem de programação C ! int main(void) { char nome[31], sobrenome[31], nascimento[11]; int idade; printf("Nome: ");
  5. 5. gets(nome); printf("Sobrenome: "); gets(sobrenome); printf("Idade: "); scanf("%d", &idade); fflush(stdin); printf("Data de nascimento: "); gets(nascimento); printf("nNome completo: %s %sn", nome, sobrenome); printf("Idade: %dn", idade); printf("Data de nascimento: "); puts(nascimento); return 0; } Funções Questão 0, 1, 2 e 3: Programa que calculas raízes de equação do segundo grau, até as complexas, em C As questões 0,1, 2 e 3 vão ensinar você a construir,passo a passo,um programa que recebe os coeficientes de uma equação do 2º grau,e devolver as raízes dele. #include <stdio.h> #include <math.h> int positivo(float n); int nulo(float n); float delta(float a, float b, float c); int main() { float a, b, c, raiz1, raiz2; int continuar; do { system("cls || clear"); printf("Programa que acha as raizes de uma equacao do 2o grau: ax^2 + bx + c = 0nn"); printf("Entre com os coeficientes a, b, e c: "); scanf("%f", &a); scanf("%f", &b); scanf("%f", &c); if( nulo(a)) printf("'a' deve ser diferente de zero."); else { //Se delta for maior ou igual a zero, as raizes sao reais if( positivo( delta(a,b,c) ) || nulo( delta(a,b,c) ) ) { raiz1 = ( (-1)*b + sqrt(delta(a,b,c)) )/(2*a); raiz2 = ( (-1)*b - sqrt(delta(a,b,c)) )/(2*a); printf("Raiz 1: %.2fnRaiz 2: %.2f", raiz1, raiz2); } else { //Precisamos exibir a parte real e a parte imaginária separadamente //raiz 1
  6. 6. printf("%.2f + i.%.2fn", (-1)*b/(2*a), sqrt((-1)*delta(a,b,c))/(2*a) ); //raiz 2 printf("%.2f - i.%.2fn", (-1)*b/(2*a), sqrt((-1)*delta(a,b,c))/(2*a) ); } } printf("nnCalcular mais raizes?n1. Continuarn0. Sairn"); scanf("%d", &continuar); } while(continuar); } int positivo(float n) { if(n > 0) return 1; else return 0; } int nulo(float n) { if(n == 0) return 1; else return 0; } float delta(float a, float b, float c) { return ((b*b) - (4*a*c)); } Crie uma função em linguagem C que receba 2 números e retorne o maior valor. float maior2(float num1, float num2) { if(num1 >= num2) return num1; else return num2; } Crie uma função em linguagem C que receba 2 números e retorne o menor valor. float menor2()2(float num1, float num2) { if(num1 <= num2) return num1; else return num2; }
  7. 7. Crie uma função em linguagem C que receba 3 números e retorne o maior valor, use a função da questão 4. float maior3(float num1, float num2, float num3) { if( maior2(num1, num2) >= num3) return (maior2(num1, num2)); else return num3; } Crie uma função em linguagem C que receba 3 números e retorne o menor valor, use a função da questão 5. float menor3(float num1, float num2, float num3) { if( menor2(num1, num2) <= num3) return (menor2(num1, num2)); else return num3; }

×