SlideShare una empresa de Scribd logo
1 de 7
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.
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);
}
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)
#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: ");
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
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;
}
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;
}

Más contenido relacionado

La actualidad más candente

Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5engenhariadecomputacao
 
Caderno de exercicios algoritmos-v.1.3
Caderno de exercicios   algoritmos-v.1.3Caderno de exercicios   algoritmos-v.1.3
Caderno de exercicios algoritmos-v.1.3Débora Inocêncio
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasdiogoa21
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para FaçaEder Samaniego
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Lista funcões e recursividade
Lista funcões e recursividadeLista funcões e recursividade
Lista funcões e recursividadeAnielli Lemes
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 

La actualidad más candente (20)

Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Lista Exercicios 05
Lista Exercicios 05Lista Exercicios 05
Lista Exercicios 05
 
Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5
 
Caderno de exercicios algoritmos-v.1.3
Caderno de exercicios   algoritmos-v.1.3Caderno de exercicios   algoritmos-v.1.3
Caderno de exercicios algoritmos-v.1.3
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
C++
C++C++
C++
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
Linguagem C - Entrada e Saída
Linguagem C - Entrada e SaídaLinguagem C - Entrada e Saída
Linguagem C - Entrada e Saída
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula 05 Vetores
Aula 05  VetoresAula 05  Vetores
Aula 05 Vetores
 
Lista funcões e recursividade
Lista funcões e recursividadeLista funcões e recursividade
Lista funcões e recursividade
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 

Destacado

1 diodos_transistores word
1  diodos_transistores word1  diodos_transistores word
1 diodos_transistores wordCarla Lee
 
Pim 1 -_finalizado
Pim 1 -_finalizadoPim 1 -_finalizado
Pim 1 -_finalizadoCarla Lee
 
Resolução leithold - vol. 01 e 02
Resolução   leithold - vol. 01 e 02Resolução   leithold - vol. 01 e 02
Resolução leithold - vol. 01 e 02Claudia Sá de Moura
 
Fundamentos da Física, Vol 1 mecanica - Halliday
Fundamentos da Física, Vol 1 mecanica - HallidayFundamentos da Física, Vol 1 mecanica - Halliday
Fundamentos da Física, Vol 1 mecanica - HallidayAndressa Kuibida
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (7)

Java3
Java3Java3
Java3
 
1 diodos_transistores word
1  diodos_transistores word1  diodos_transistores word
1 diodos_transistores word
 
Pim 1 -_finalizado
Pim 1 -_finalizadoPim 1 -_finalizado
Pim 1 -_finalizado
 
Resolução leithold - vol. 01 e 02
Resolução   leithold - vol. 01 e 02Resolução   leithold - vol. 01 e 02
Resolução leithold - vol. 01 e 02
 
Fundamentos da Física, Vol 1 mecanica - Halliday
Fundamentos da Física, Vol 1 mecanica - HallidayFundamentos da Física, Vol 1 mecanica - Halliday
Fundamentos da Física, Vol 1 mecanica - Halliday
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a Exemplos registros e funções

Similar a Exemplos registros e funções (20)

Algoritmos em c #1
Algoritmos em c #1Algoritmos em c #1
Algoritmos em c #1
 
Ap vetores
Ap vetoresAp vetores
Ap vetores
 
Lista c
Lista cLista c
Lista c
 
Modulo02
Modulo02Modulo02
Modulo02
 
apostila C++
apostila C++apostila C++
apostila C++
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdf
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05
 
Aula01
Aula01Aula01
Aula01
 
Java8
Java8Java8
Java8
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
 
Lab inf 1_ aula_4
Lab  inf 1_ aula_4Lab  inf 1_ aula_4
Lab inf 1_ aula_4
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Algop - aula 07
Algop - aula 07Algop - aula 07
Algop - aula 07
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Palestra python
Palestra pythonPalestra python
Palestra python
 

Último

LEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurançaLEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurançaGuilhermeLucio9
 
Treinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção IndividualTreinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção Individualpablocastilho3
 
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdfLivro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdfSamuel Ramos
 
Tecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade AnhangueraTecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade AnhangueraGuilhermeLucio9
 
Eletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante TamandaréEletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante TamandaréGuilhermeLucio9
 
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICADESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICAPabloVinicius40
 
A Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboralA Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboralFranciscaArrudadaSil
 

Último (7)

LEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurançaLEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurança
 
Treinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção IndividualTreinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção Individual
 
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdfLivro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
 
Tecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade AnhangueraTecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade Anhanguera
 
Eletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante TamandaréEletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante Tamandaré
 
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICADESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
 
A Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboralA Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboral
 

Exemplos registros e funções

  • 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. 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. 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. #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. 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. 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. 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; }