30
Tipos de dados
Impressão
Formatação da Impressão
Variáveis
Entrada de Dados
31
São nomes usados para se fazer referência a
variáveis, funções, rótulos e vários outros
objetos definidos pelo usuário.
Exemplos:
a, b, peso, i, contaCorrente, saldo, x1, x2...
OBS: A linguagem C écase sensitive, ou seja, as letras maiúsculas diferem das minúsculas.
32 Quando você declara umidentificadordá a ele um tipo. Um tipo de objeto de dados determina como valores de dados são representados, que valores pode expressar, e que tipo de operações você pode executar com estes valores.
1.7E-308a 1.7E+308
(15 casas de precisão)
8 bytes double
3.4E-38 a 3.4E+38 (6 casas de precisão)
4 bytes float
-2147483648 a 2147483647
4 bytes int
-128 a 127
(incluindo letras e símbolos)
1 byte char
Faixa Espaço que ocupa na memória
Tipo
31
São nomes usados para se fazer referência a
variáveis, funções, rótulos e vários outros
objetos definidos pelo usuário.
Exemplos:
a, b, peso, i, contaCorrente, saldo, x1, x2...
OBS: A linguagem C écase sensitive, ou seja, as letras maiúsculas diferem das minúsculas.
34
#include <stdio.h>
int main( )
{
printf
(
"Estou aprendendo a programar em C"
);
return 0;
}
31
São nomes usados para se fazer referência a
variáveis, funções, rótulos e vários outros
objetos definidos pelo usuário.
Exemplos:
a, b, peso, i, contaCorrente, saldo, x1, x2...
OBS: A linguagem C écase sensitive, ou seja, as letras maiúsculas diferem das minúsculas.
36
#include <stdio.h> int main()
{
printf("Caracter A: %c" , 'A'); return 0;
}
#include <stdio.h> int main()
{
printf("Valor inteiro %d e um float %f" ,10 ,1.10); return 0;
37
#include <stdio.h> int main()
{
printf("Minha string: %s", "Entendi tudo!!!! "); return 0;
}
#include <stdio.h> int main() {
printf("Deveria imprimir um float, ");
printf("mas mandei imprimir um inteiro: %d" ,1.10); return 0;
}
38
Impressão de Códigos Especiais
#include <stdio.h>
int main() {
printf("\t\tx\n"); printf("\tx\t\tx\n"); printf("\t\tx\n"); return 0;
} exibe o caractere %
%%
exibe o caractere \ \\
exibe o caractere " \"
emite um sinal sonoro (beep)
\a
leva o cursor para a próxima página \f
executa um retrocesso \b
executa uma tabulação \t
leva o cursor para a próxima linha \n
Ação Código
39 #include <stdio.h>
int main() {
printf("Default: %f \n",3.1415169265); printf("Uma casa: %.1f\n",3.1415169265); printf("Duas casas: %.2f \n",3.1415169265); printf("Tres casas: %.3f \n",3.1415169265); printf("Notacao Cientifica: %e \n",3.1415169265); return 0;
}
Por default, a maioria dos compiladores C exibem os números de ponto flutuante com seis casas decimais.
Para alterar este número podemos acrescentar.n
ao código de formatação da saída, sendono número de casas decimais pretendido.
40 #include <stdio.h>
int main() {
printf("Valor: %d \n",25); printf("Valor: %10d\n",25); return 0;
}
41
1. Fazer um programa que imprima o seu nome.
2. Modificar o programa anterior para imprimir na primeira linha o seu nome, na segunda linha a sua idade e na terceira sua altura.
3. Imprimir o valor 2.346728 com 1, 2, 3 e 5 casas decimais.
42 O nome de uma variável (identificador) é formado por um ou mais caracteres, sendo que:
o primeiro caractere é uma letra ou sublinha ( _ );
os outros caracteres podem ser letras, algarismos ou sublinha ( _ ).
Exemplos:
a) Nomes válidos:L a de op1 V9a Lista_Notas a_2 p56 A1 _2A
b) Nomes Inválidos:x+ t.6 43x &ah $dolar Lista-Notas n! %p
Em C, letras maiúsculas e minúsculas são diferentes. Os seguintes nomes são distintos:
PESO Peso peso peSo
Uma variável não pode ter o mesmo nome de uma palavra-chave de C, como por exemplo:
main, cout, int, float, char, short, return, case, void
43
Declaração de Variáveis
As variáveis só podem armazenar informações ou dados sempre de um mesmo tipo (inteiro, real, caractere ou char).
Na linguagem C, a declaração de variáveis obedece a seguinte sintaxe:
<tipo> <nome_var>; ou
<tipo> <nome_var1>, <nome_var2>, ... ,<nome_varn>;
É importante não esquecer que quando se declara uma variável, um espaço num determinado endereço na memória é alocado para armazenar um dado que obrigatoriamente tem que ser do mesmo tipo que o da variável.
Toda e qualquer variável deve ser declarada e sua declaração deve ser feita antes de sua utilização no
programa. 44
Declaração de Variáveis - Exemplo
Exemplos: int a,b, c; char letra, d, e; float f1; float f2,f3;
Marque as declarações válidas: ( ) int a,
45 O operador de atribuição em C é o sinal de igual =
Sintaxe:
<variavel> = <expressão>;
Exemplos: int a,b,c,d; a = 5; c = 7; b = a; d = a + b + c;
ou int a=5; int c=7; int b,d; b=a; d=a+b+c; 46 4
Resto da divisão Binário
%
1 Inversão do sinal Unário
-1 Manutenção do sinal Unário + 2 Decremento Unário --2 Incremento Unário ++ 3 Divisão Binário / 3 Multiplicação Binário * 5 Subtração Binário -5 Adição Binário + Prioridade Operação Tipo Aritméticos 47
Exemplos:
a = a + b;
a = a + 4;
a = b / 2;
a = 4 * 2 + 3; // qual o valor final de a?
b = 2 * 3 2 * 2; // qual o valor final de b?
a++; // similar a a = a + 1;
b--; // similar a
b = b 1;
48 Diferente
!=
Igual = =
Menor ou igual <= Not (não) ! Menor que < Or (ou) ||
49 Ela é o complemento de printf() e nos permite ler dados formatados da entrada padrão (teclado). Sua sintaxe:
scanf(
"
expressão de controle"
,argumentos);Entendendo o scanf:
...
int
a
;
...
scanf (
%d
, &
a
);
Operador utilizado para obter o endereço de memória da variável.
50 #include <stdio.h>
int main() {
intnum;
printf("Digite um valor: "); scanf("%d",&num);
printf("\nO valor digitado foi %d.",num); return 0;
}
51 #include <stdio.h>
int main() {
intn1,n2,soma;
printf("Digite dois valores: "); scanf("%d",&n1);
scanf("%d",&n2); soma = n1 + n2;
printf("\n%d + %d = %d.",n1,n2,soma); return 0;
}
52
1. Ler uma temperatura em graus Celsius (C) e apresentá-la convertida em graus Fahrenheit. A fórmuapresentá-la de conversão é F = (9*C+160)/5.
2. Calcular e apresentar o volume de uma lata de óleo, utilizando a fórmula: volume = 3.14159*raio*raio*altura.
O comandoifé uma estrutura de decisão que decide se uma sequência de comandos será ou não executada. Sua sintaxe é:
if (<expressão>) {
<sequência de comandos>
}
Ou
if (<expressão>)<único comando>;
A expressão sempre será avaliada logicamente (verdadeiro ou falso), correspondendo ao FALSO o valor zero (==0) e os demais ao VERDADEIRO (!=0).
Exemplo: Programa para determinar o maior de dois números fornecidos pelo usuário.
#include <stdio.h> int main() {
float a, b, maior;
printf("Digite os dois numeros"); scanf("%f %f", &a, &b);
maior = a;
if (b > a) maior = b;
printf("O maior entre numeros %f , %f e' %f ", a, b, maior); return 0;
}
#include <stdio.h> int main() {
float x, y, aux;
printf("Digite os dois numeros"); scanf("%f %f", &x, &y);
printf("Conteudos originais de x e de y: %f , %f \n: ", x, y); if (y < x)
{ aux = x; x = y; y = aux; }
printf("Conteudos de x e de y ordenados: %f , %f: \n", x, y); return 0;
}
O comandoifpode decidir entre duas sequências de comandos qual vai ser a executada, tendo a seguinte sintaxe:
if (<expressão>)
{ // caso a expressão verificada retorne verdadeiro
<sequência de comandos>
} else
{ // caso a expressão verificada retorne falso
<sequência de comandos>
}
Exemplo: Verificar a paridade de um número. #include <stdio.h>
main() {
int x, y;
printf("Digite o numero: "); scanf("%d", &x);
if (x % 2 == 0)
printf("%d e' par \n", x);
else
printf("%d e' impar \n", x); }
Obs.: No exemplo acima não são utilizadas chaves noife no
elsepois há apenas um comando a ser executado. Em casos como esse pode-se ou não utilizar as chaves.
if <condição 1> {
<comandos if1> if <condição 2> {
<comandos if2> }
else {
<comandos else2> }
} else {
<comandos else1> if <condição 3> {
<comandos if3> }
}
1. Qual é a saída do programa. int main()
{
int x = 10, y = 3; if (x < 10)
printf(Saída 1); else
if (y < 4) if (x > 10)
printf(Saída 2); else printf( Saída 3);
return 0;
}
2.Qual é a saída do programa. int main()
{
int a = 2, b = 3, c = 4;
if ((a<3) && ((b !=3) || (c == 4))) printf(saída 1 );
if ((c ==3) || (b ==4)) printf( Saída 2); if ((a < 3) && (b > 4)) printf(Saída 3); else if (a == 2) if (b==5) printf(Saída 4); else printf(Saída 5);
return 0;
Utilizado quando uma determinada variável pode ser igual a diferentes valores que se deseja avaliar
sintaxe: switch (variável) {
case constante1: <comandos> break;
case constante2: <comandos> break;
default:<comandos> }
int main() {
int epoca;
printf("Digite o trimestre do ano em que estamos: "); scanf("%d",&epoca);
switch (epoca) {
case 1: printf("verão"); break;
case 2: printf("outono"); break;
case 3: printf("inverno"); break;
case 4: printf("primavera"); break;
default: printf("período inválido"); }
return 0;
}
Exercícios
1. Faça um programa para ler dois número inteiros, faça a divisão do primeiro pelo segundo(se o segundo for diferente de zero).
2. 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 .
3. 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 para mulheres: (62.1*h)-44.7
4. 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.
5. Fazer um algoritmo para ler dois números e um dos símbolos das operações: +, -, * e /. Imprimir o resultado
da operação efetuada sobre os números lidos. 46
47
while
(enquanto..faça)
do...while
(repita..até)
for
(para..faça)
48
Sintaxe: while(condição) {
<comandos>; }
int main() {
int i;
i=0;
while(i<=10) {
printf("%d\n",i);
i++;
} return 0; }
49
Sintaxe: do {
<comandos>; } while(condição);
int main() {
int i;
i=0;
do {
printf("%d\n",i);
i++;
} while(i<=10); return 0; }
50
Sintaxe:
for(inicialização;condição;incremento) {
<comandos>; }
int main() {
int i;
for(i=0;i<=10;i++) {
printf("%d\n",i); }
return 0;
}
Primeira vez que executa o for: Inicialização
Condição
VERDADEIRO: Bloco de comandos FALSO: sai do for
Demais vezes: Incremento Condição
81
82
O vetor é uma estrutura:
Homogênea Estática
Todas as componentes são de um mesmo tipo
e seu tamanho permanece o mesmo durante
toda a execução do programa.
Vetores
83
A sintaxe em C para declaração de variável do tipo vetor é a seguinte
tipo_primitivo identificador[qtde_elementos];
Exemplo:
// vetor com 5 (0 a 4) elementos do tipo int int dados[5];
Vetores: Declaração
0 1 2 3 4
dados
5 elementos quaisquer do tipoint
Í ndices do vetor
84 Cada um dos elementos de um vetor é referenciado individualmente por meio de um número inteiro entre colchetes após o nome do vetor.
Exemplos:
X = valores[1]; //atribui a x o valor da posição 1 do vetor valores Y = valores[4]; //atribui a x o valor da posição 4 do vetor valores valores[0] = 3.2; // a posição zero do vetor valores recebe o valor 3.2
Vetores: Referência
(Manipulação)
0 1 2 3 4
85
É possível fornecer valores a cada elemento de
um vetor no momento da sua declaração.
Exemplo:
float valores[5]
=
{
3.6,
2.7,
4.2,
7.9,
1.2
}
;
float nros[5]
=
{
0.0
}
; // como fica o vetor????
Vetores: Inicialização
0 1 2 3 4
valores 3.6 2.7 4.2 7.9 1.2
86
Observações:
Os vetores NÃO são automaticamente inicializados!!!
Se houver menos valores do que o número de elementos do vetor , os elementos restantes são inicializados automaticamente com o valor zero.
int n[5] = {32, 64, 27};
A seguinte declaração causa um erro de sintaxe:
int n[5] = {32, 64, 27, 18, 95, 14};
O tamanho do vetores pode ser omitido:
int n[ ] = {1, 2, 3, 4, 5};
Vetores: Inicialização
87
Vetores: Exemplo
Leia um vetor de 10 posições (inteiros) e imprima-o na ordem invertida (da última para a primeira posição).
#include <stdio.h> #include <stdlib.h>
int main() {
int numeros[10],i; for (i=0; i<10;i++){
printf("Digite valor %d: ",i); scanf("%d", &numeros[i]); }
printf("%s%13s\n","Elemento", "Valor"); for (i=9; i>=0; i--)
printf("%8d%13d\n",9-i,numeros[i]); return 0;