Beruflich Dokumente
Kultur Dokumente
Sumário
Parte 01 Expressões
Parte 02 Operadores
Parte 03 Comandos
Parte 04 Exercícios
Expressões
Definição de Expressões
Operadores
Designam o tipo de operação a ser realizada
Operandos
Indicam os valores necessários para as operações
Resultados
É o valor produzido pela avaliação da expressão
Classificação de Expressões
Simples
Expressões que envolvem apenas um operador
Compostas
Expressões que envolvem mais de um operador
Notação de Expressões
a = !b; // Expressão
prefixada
a = a + b; // Expressão infixada
a = b++; // Expressão
posfixada
Tipos de Expressões
9. EFEITOS
1. LITERAIS 5. BOOLEANAS
COLATERAIS
3. ARITMÉTICAS 7. CONDICIONAIS
11. CATEGÓRICAS
8. CHAMADAS DE
4. RELACIONAIS
FUNÇÕES
Literais
Estáticas
Avaliadas em tempo de compilação
Dinâmicas
Avaliadas em tempo de execução
Agregação
a == b
a != b
1 <= a <= 3
a > b
Expressões Booleanas
int i = 10, j = 2;
int a = j | c;
int b = j << c;
int b = j >> c;
Expressões Condicionais
a*b; // *(a, b)
a*b+c/d; // +(*(a, b), /(c, d))
!a // !(a)
d&&c; // &&(d,c)
Efeitos Colaterais
x = 3.2 * ++c;
#include <stdio.h>
int main(){
FILE *pFile;
int c;
pFile = fopen(“myfile.txt”, “r”);
c = fgetc(pFile);
}
Introduzir indeterminismos
Efeitos Colaterais
#include <stdio.h>
int main(){
int x = 2, y = 4;
int z;
z = (y = 2 * x + 1) + y;
printf(“%d %d %d”, x, y, z)
}
*q = *q + 3;
float *p = null;
p = (float *) malloc sizeof(float));
int num = 9, den = 5;
float f = (float) num / den;
Categóricas
Pré-existentes
Normalmente são operadores unários ou binários
Composição de Operadores
Programador cria novos operadores com base nos já existentes
Precedência de Operadores
“
Normalmente, os operadores de uma linguagem de
programação são ordenados por grau de precedência.
Operações cujos operadores possuem maior precedência são
”
realizadas antes das operações relacionadas aos operadores
de menor precedência.
F.M. Varejão (2004)
Precedência de Operadores
a[i] = i++;
x = a + b - c;
a = b = c;
Tabela Resumo
Primitivos
Não podem ser divididos em subcomandos
Compostos
Formados por dois ou mais subcomandos
Tipos de Comandos
4. COMANDOS
1. ATRIBUIÇÕES
CONDICIONAIS
7. COMANDOS DE
2. COMANDOS 5. COMANDOS DESVIO
SEQUENCIAIS ITERATIVOS INCONDICIONAL
3. COMANDOS 6. CHAMADAS DE
COLATERAIS PROCEDIMENTO
Atribuições
int i = 4;
i:integer;
i := 4;
Tipos de Atribuições
Atribuição Simples
Atribuição Composta
Sequenciais
❏ Sequência de comandos a serem executados:
▪ Normalmente, estão associados ao conceito de bloco
{
int n = 1;
if (n < 5) {
int m = n * 2;
}
}
Colaterais
val altura = 2
and largura = 3
and comprimento = 5
Condicionais
if (x > 0) {
x = x + 1;
}
if (x > 0) {
x = x + 1;
} else {
x = x - 1;
}
switch (nota) {
case 10:
case 9:
printf(“Excelente!!”);
break;
case 8:
case 7: printf(“Bom”);
default: printf(“Estudar mais”)
}
Atenção!
for ( i in range(1,11)):
print “Valor = %d\n” % i
Controlados por Lógica
❏ Baseados em uma ou mais expressões booleanas
while i < 10 do
write (‘Valor = ’, i, ‘ \n’);
i := i + 1;
end;
Controlados por Lógica
Pré-Teste
Cláusula verificada antes da execução do corpo
Pós-Testes
Cláusula verificada após a execução do corpo
Controlados por Lógica
❏ O exemplo abaixo escrito em C exemplifica o while:
Desvios Irrestritos
Saltos no fluxo do programa através de um rótulo
Escapes
Permitem sair do bloco ao qual pertencem
Exceções
Ocorrências não previstas durante a execução do bloco
Quatro comandos em C
break
continue
return
goto
goto