0% acharam este documento útil (0 voto)
18 visualizações32 páginas

Ip 04

Lista programação C

Enviado por

jctmf
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações32 páginas

Ip 04

Lista programação C

Enviado por

jctmf
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 32

Introdução à Programação

Linguagem C
Roteiro
● Função printf
● Função scanf
● Conversão de tipos
● Operador sizeof
● Operador de endereço
● Operadores aritméticos
● Condicionais
Códigos de Impressão - printf
Códigos de formatação Significado
para printf()

%c Caracter
%d Inteiro decimal com sinal
%i Inteiro decimal com sinal
%u Inteiro decimal sem sinal
%x Inteiro hexadecimal sem sinal (letras minúsculas)

%X Inteiro hexadecimal sem sinal (letras maiúsculas)

%o Octal sem sinal


%f Ponto flutuante em decimal (float)
%lf %le Ponto flutuante em decimal, ou notação científica
(double)
%e %E Notação científica (e minúsculo, E maiúsculo)
%hd %hi %ho %hu %hx Tipo short (decimal com sinal, decimal com sinal, octal,
sem sinal, hexadecimal)
%s String de caracteres
int main(void) { //Includes omitidos
int a = 15; unsigned int b = 10;
char c = 'A'; short int d = 12;
double e = 1.5e-2; float f = 1995.89;
printf("\t%s\n", "Este programa faz vários testes com a função printf");
printf("%c equivale ao número %d\n", c, c);
printf("%i em hexadecimal é %X\n", a, a);
printf("%u em octal é %o\n", b, b);
printf("%hd em hexadecimal é %hx\n", d, d);
printf("%.4lf em decimal equivale a %.4lE em notação científica\n", e, e);
printf("%.2f em decimal equivale a %.3e em notação científica\n", f, f);
system(''PAUSE'');
return 0;
}
Saída
Printf – Formatando a Saída
● É possível estabelecer o tamanho mínimo para a
impressão de um campo
int main(void) { //Includes omitidos
printf("%37s\n", "IFPE");
printf("%37s\n", "Análise e Desenvolvimento de Sistemas");
printf("%4d\n%4d\n%4d\n%4d\n", 1, 10, 100, 1000);
printf("%8.2f\n%8.3f\n", 1.5, 100.545);
system(''PAUSE'');
return 0;
}
Utilizando a função scanf
int main(void) { //Includes omitidos
int i; char c; double d;

printf("\t%s\n\n", "Este programa faz vários testes com a função scanf");


printf("Informe um caracter: ");
scanf("%c", &c);

printf("\nCaracter informado foi: \'%c\'\n\n", c);


printf("Informe um número inteiro em decimal: ");
scanf("%d", &i);
printf("O número informado foi: %d\n\n", i);
//continua...
Utilizando a função scanf
//continuação...
printf("Informe um número em hexadecimal: ");
scanf("%x", &i);
printf("%i em hexadecimal é %X\n\n", i, i);
printf("Informe um número em octal: ");
scanf("%o", &i);
printf("%i em octal é %o\n\n", i, i);
printf("Informe um número real: ");
scanf("%lf", &d);
printf("O número informado foi: %lf (%le em notação científica)\n\n", d, d);
system(''PAUSE'');
return 0;
}
Saída
Cast - Conversão de tipos
int main(void) {
float f = 3.5;
int i = (int) f;

printf("i: %d\n", i);


i = 5/2; //Divisão inteira
printf("i: %d\n", i);
f = (float) 5/2; //Divisão real
printf("f: %.1f\n", f);
system(''PAUSE'');
return 0;
}
Operador sizeof
● Sizeof

– Retorna o tamanho da variável em bytes


– Exemplos
● sizeof(int) resulta em 4
● sizeof(char) resulta em 1

● float f = 10.0; sizeof(f) resulta em 4


Exercício

● Escreva um programa que imprime o


tamanho em bytes de variáveis dos tipos
char, short int, int, float e double
Operador de Endereço – &
● Toda variável ocupa uma área de memória e seu
endereço é o primeiro byte por ela ocupado
– Quando usamos & precedendo uma variável
estamos falando do endereço desta variável
na memória

int main(void) {
int i = 0;

printf("valor: %d\tendereço: %X\n", i, &i);


system(''PAUSE'');
return 0;
}
Operadores Aritméticos
Operador Ação
> Maior que
>= Maior ou igual que
< Menor que
<= Menor ou igual que
== Igual a
!= Diferente de
&& Condição ''E''
II Condição ''OU''
! Negação
Operadores
● Em C, o resultado de uma expressão
resultará 0 se for avaliada como falsa, e
resultará 1 no caso de ser avaliada como
verdadeira
– Em C, considera-se o valor ZERO como
sendo FALSO e qualquer número
DIFERENTE DE ZERO como sendo
VERDADEIRO.
int main(void) { //Includes omitidos
int verdadeiro, falso;

verdadeiro = (5 < 10);


falso = (2 != 2);
printf("verdadeiro %d\n", verdadeiro);
printf("falso %d\n", falso);
system(''PAUSE'');
return 0;
}
int main(void) { //Includes omitidos
printf("(5 <= 10 && 1 == 1)? %d\n", (5 <= 10 && 1 == 1));
printf("(5 <= 10 && 1 != 1)? %d\n", (5 <= 10 && 1 != 1));
printf("(5 == 10 || 1 != 1)? %d\n", (5 == 10 || 1 != 1));
printf("(5 != 10 || 1 != 1)? %d\n", (5 != 10 || 1 != 1));
printf("!(5 > 10)? %d\n", !(5 > 10));
printf("!(5 < 10)? %d\n", !(5 < 10));
system(''PAUSE'');
return 0;
}
Condicionais

■ if
■ if – else
■ switch – case
■ ?:
int main(void) { //Includes omitidos
int num1, num2;
scanf("%d%d", &num1, &num2); //Lê dois números inteiros

if (num1 == num2) //Operador IGUAL


printf("Os números são iguais\n");

if (num1 != num2) //Operador DIFERENTE


printf("Os dois números são diferentes\n");

if (num1 > num2) //Operador MAIOR


printf("%d é maior que %d\n", num1, num2);
if (num1 < num2) //Operador MENOR
printf("%d é menor que %d\n", num1, num2);

if (num1 >= num2) { //Operador MAIOR OU IGUAL


//Mais de um comando dentro do if, utilizar chaves
printf("%d é maior ou igual que %d\n", num1, num2);
printf("Mais uma mensagem\n");
}

if (num1 <= num2) { //Operador MENOR OU IGUAL


printf("%d é menor ou igual que %d\n", num1, num2);
printf("Mais uma mensagem\n");
}

system("PAUSE");
return (EXIT_SUCCESS);
}
O que fizemos basicamente
Início

num1, num2

num1 == num2
Não
Sim num1 != num2
Os número são iguais
Os número são diferentes

Fim
Poderíamos ter feito
Início

num1, num2

num1 == num2
Sim Não

Os número são iguais Os número são diferentes

Fim
Condicionais
● Se e senão
if (numero1 == numero2) {
printf("Os dois números são iguais\n");
} else {
printf("Os dois números são diferentes\n");
}
● Se e senão se
if (numero1 > numero2) {
printf("O primeiro número é maior\n");
} else if (numero1 < numero2){
printf("O primeiro número é menor\n");
} else {
printf("Os números são iguais\n");
}
Diagrama de blocos
Início

num1, num2

num1 > num2


Não
Sim
num1 < num2
O 1o número é maior Sim Não

O 1o número é menor Os números são iguais

Fim
Exercício
● Escreva um programa C que leia dois
números do teclado, realize e imprima na
tela a divisão do primeiro pelo segundo
– Obs1: Deve-se evitar divisões por zero
usando os recursos do comando if – else
– Obs2: Escreva também o diagrama de
blocos
Exercício
● Escreva um programa C que leia três
números do teclado, e imprima na tela o
maior entre eles
– Escreva também o diagrama de blocos
Condicionais
● Operador Condicional ?

printf("Os dois números são %s\n", numero1 == numero2 ? "iguais" : "diferentes");

maior = numero1 > numero2 ? numero1 : numero2;

printf("Maior: %d\n", maior);


Switch Case
● Forma de se substituir o comando if – else
ao se executar vários testes
● Diversas vezes precisamos determinar se
um valor encontra-se numa lista de valores
– Apesar de podermos usar uma sequência de
if's, isto pode confundir o entendimento do
programa
Switch Case

● Switch Case lista cada valor de interesse que


uma variável ou expressão pode assumir
– Uma ação pode ser tomada para cada valor
Switch Case
switch (<variável>) { ● “variável” deve ser uma variável
case <valor 1> :
do tipo inteiro ou caractere;

<instruções>;
● “break” serve para terminar a
sequência de comandos em
[break;] execução
case <valor 2> : – por serem opcionais, se
< instruções>; forem suprimidos
permitem que o “case”
[break;]
a seguir seja
[default : executado, sem haver
qualquer quebra na
< instruções>;]
seqüência do
} processamento.
int a, b, operacao;
printf("Informe dois números inteiros positivos:");
scanf("%d%d", &a, &b);
printf("1.Adição\t 2.Subtração\t 3.Multiplicação\t 4.Divisão\t 5.Resto:");
scanf("%d", &operacao);
switch (operacao) {
case 1: printf("%d + %d = %d\n", a, b, a + b);
break; //Impede que os próximos casos sejam executados
case 2: printf("%d - %d = %d\n", a, b, a - b); break;
case 3: printf("%d * %d = %d\n", a, b, a * b); break;
case 4: printf("%d / %d = %d\n", a, b, a / b); break;
case 5: printf("%d %% %d = %d\n", a, b, a % b); break;
default: printf("Operação desconhecida\n"); //Outro caso (opcional)
}
Diagrama de Blocos
Início

a, b, op

op == 1 a+b break
Sim
Não
op == 2 a-b break
Sim
Não
op == 3 a*b break
Sim
Não
op == 4 a/b break
Sim
Não
op == 5 a%b break
Sim
Não
Operação desconhecida Fim

Você também pode gostar