Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
● Revisão
● Expressões aritméticas
● Conversão de tipos
● Exercícios
● Saída de dados
● Entrada de dados
2
Na aula passada
Expressões
Exemplo
a+b
Calcula a soma de a e b
3
Expressões Aritméticas
Os operadores aritméticos são: +,-,*,/
<expressao> + <expressao>: Soma
Ex: a = a + b;
<expressao> - <expressao>: Diferença
Ex: a = a - b;
<expressao> * <expressao>: Produto
Ex: a = a * b;
<expressao> / <expressao>: Divisão
Ex: a = a / b;
<expressao> % <expressao>: Resto da divisão inteira
Ex: a = a % b;
- <expressao>: Inverte o sinal
Ex: a = -b;
4
Criando expressões
● Operadores aritméticas (e todos os demais) juntam
várias expressões.
● Podemos formar expressões complexas
combinando vários operadores
Exemplo: a = -b + 2 + c - (9 + d * 8)
Ordem de avaliação
● Qual o valor da expressão 5 + 10 % 3?
● E da expressão 5 * 10 % 3?
5
Precedência
Precedência define a ordem em que os operadores serão
calculados quando o programa for executado.
Regras de precedência
Em C, os operadores são calculados na seguinte ordem:
1. *, % e /, na ordem em que aparecerem na expressão
2. + e -, na ordem em que aparecerem na expressão
6
Alterando a precedência
Parenteses
Para alterar a precedência devemos usar parênteses:
(<expressao>) é uma expressão com o valor da
expressão interna
Exemplo: 5 + 10 % 3 retorna 6, mas (5 + 10) % 3 retorna 0
Regra de paridade:
● número de parênteses ( que abrem deve ser igual
ao número de parênteses ) que fecham expressões
Operadores de incremento
Algumas operações muito comuns tem atalhos em C:
● Incremento de variável: somam uma unidade a uma
variável
Exemplo: c++
● Decremento de variável: diminuem uma unidade de
uma variável
Exemplo: c−−
9
Incremento(++) e Decremento(−−)
Imprime 11
10
Incremento(++) e Decremento(−−)
11
Incremento(++) e Decremento(−−)
Imprime 10
12
Incremento(++) e Decremento(−−)
13
Incremento(++) e Decremento(−−)
Imprime 121
Atenção: Devemos evitar utilizar expressões confusas
como essas.
14
Atribuições simplificadas
Atalhos
Podemos simplificar algumas expressões comuns em C:
● Uma expressão da forma
a = a + b;
● podem ser escritas de maneira equivalente como
a += b;
15
Atribuições simplificadas
16
Conversão de tipos
Expressões não tem somente um valor, mas também tem um tipo
associado.
Se ambos os operandos de uma operação aritmética binária são do
mesmo tipo, o resultado terá o mesmo tipo. Por exemplo:
3 + 5 é 8, e o tipo é int
3.5 + 2.25 é 5.75, e o tipo é float
17
Conversão de tipos
Valores podem ser convertidos de um tipo para outro
implicitamente. Em expressões envolvendo operadores binários com
operandos de tipos diferentes, os valores dos operandos são
convertidos para o mesmo tipo antes da operação ser executada:
tipos mais simples são “promovidos” para tipos mais complexos.
Portanto, o resultado da avaliação de uma expressão com operandos
de tipos diferentes será o tipo do operando mais complexo.
int main() {
int a, b;
printf("Entre uma fracao (numerador e denominador): ")
scanf("%d %d", &a, &b);
19
Conversão de tipos
Em atribuições, o valor da expressão do lado direito é convertido
para o tipo da variável do lado esquerdo da atribuição. Isto pode
causar promoção ou “rebaixamento” de tipo. O “rebaixamento” pode
causar perda de precisão ou mesmo resultar em valores errados.
Em operações de atribuição, atribuir um int em um float causará a
conversão apropriada, e atribuir um float em um int causará
truncamento.
Por exemplo:
float a = 3; é equivalente a a = 3.0
int a = 3.1415; é equivalente a a = 3 (truncado)
21
Um uso da conversão de tipos
O operador de divisão / possui dois modos:
● Inteiro: se os dois argumentos forem inteiros
Exemplo: a expressão 10 / 3 vale 3.
● Ponto flutuante: se pelo menos um argumento for flutuante
Exemplo: a expressão 1.5 / 3 vale 0.5.
23
Exercício em sala
printf("Ola Pessoal!");
Saída: Ola Pessoal!
printf("Ola Pessoal!
Saída: Ola Pessoal!
Ola Pessoal
25
Escrevendo o conteúdo de uma
variável na tela
● Podemos imprimir também o conteúdo de uma variável
utilizando printf.
● Utilizamos símbolos especiais no texto para representar um
trecho deve substituído por uma variável
● Passamos uma lista de variáveis ou constantes a serem
substituídas, separadas por vírgula.
Exemplo:
printf(“%d”, 10);
imprime 10
Exemplo:
int a = 12;
printf(“O valor é %d”, a);
imprime O valor é 12
27
Formatos inteiros
A letra d pode ser substituída pelas letras u e l, ou as
duas, quando desejamos escrever variáveis do tipo
unsigned ou long, respectivamente.
Exemplo:
printf ("%d", 4000000000);
escreve -294967296 na tela, enquanto que
printf ("%u", 4000000000);
escreve 4000000000.
28
Formatos ponto flutuante
%f - escreve um ponto flutuante na tela
Exemplo:
printf(“%f”, 10.0);
imprime 10.000000
29
Formatos ponto flutuante
%e - escreve um ponto flutuante na tela, em notação
científica
Exemplo:
printf(“%e”, 10.02545);
imprime 1.002545e+01
30
Formatos ponto flutuante
A letra f pode ser substituída pelas letras lf, para
escrever um double ao invés de um float
Exemplo
printf ("%6.2lf", 10.0);
imprime <espaço> 10.00
31
Formato caracter
%c - escreve uma letra
Exemplo
printf ("%c", ‘A’);
imprime A
32
Formato string
%s - escreve uma string
Exemplo
printf ("%s", “Meu primeiro programa”);
imprime Meu primeiro programa
33
A função scanf
● Realiza a leitura de um texto a partir do teclado.
● Parâmetros:
○ Uma string, indicando os tipos das variáveis que
serão lidas e o formato dessa leitura.
○ Uma lista de variáveis.
● Aguarda que o usuário digite um valor e atribui o
valor digitado à variável.
34
A função scanf
O programa abaixo é composto de quatro passos:
1. Cria uma variável n;
2. Escreve na tela Digite um número:
3. Lê o valor do número digitado
4. Imprime o valor do número digitado
35
A função scanf
36
Formato de leitura de variável
Os formatos de leitura são muito semelhantes aos
formatos de escrita utilizados pelo printf. A tabela a
seguir mostra alguns formatos possíveis de leitura
37
Um parêntese: Comentários
O código fonte pode conter comentários direcionados
unicamente ao programador. Estes comentários devem
estar delimitados pelos símbolos /* e */, e são ignorados
pelo compilador. Ou // (comentário de uma única linha)
39
Detalhes importantes
● Caso tenha algum erro e você o conserte-o você é
obrigado a compilar o programa novamente para
que este tenha efeito.
40
A função main()
41
Bibliotecas
● Programas que possuem a especificação das
funções pré-definidas da linguagem.
● As bibliotecas que serão usadas devem ser os
primeiros comandos de um programa em C.
#include <nome_da_biblioteca.h>
int main() {
<açoes>
return 0;
}
42
Bibliotecas (alguns exemplos)
● stdio.h: biblioteca de funções de entrada e saída
(leitura e escrita de dados).
● stdlib.h é um arquivo cabeçalho da biblioteca de
propósito geral padrão da linguagem de programação
C. Ela possui funções envolvendo alocação de memória,
controle de processos, conversões e outras.
● math.h: biblioteca de funções matemáticas
(potenciação, raiz quadrada, funções
trigonométricas, etc.).
● string.h: biblioteca de funções para manipulação
de conjunto de caracteres (por exemplo, palavras).
43
Exercícios 3.0 - URI (início)
44