Programação Estruturada - Introdução à linguagem...
Transcript of Programação Estruturada - Introdução à linguagem...
![Page 1: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/1.jpg)
Programacao Estruturada
Introducao a linguagem C
Professores Emılio Francesquini e Carla Negri Lintzmayer
2018.Q3
Centro de Matematica, Computacao e Cognicao
Universidade Federal do ABC
![Page 2: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/2.jpg)
Programacao estruturada
![Page 3: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/3.jpg)
O que e programacao estruturada
Tecnica/paradigma de programacao que visa o desenvolvimento de
algoritmos por meio de estruturas de controle visando clareza e
qualidade
• Estrutura sequencial
• Estrutura condicional
• Estrutura de repeticao
• Modularizacao
Exemplos de linguagens que suportam o paradigma estruturado:
Pascal, Ada, Java, C, C++.
1
![Page 4: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/4.jpg)
A linguagem C
![Page 5: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/5.jpg)
Sobre a linguagem C
• Criada em 1972 por Dennis Ritchie
• The C Programming Language, Kernighan e Ritchie
• Linguagem compilada, de proposito geral, estruturada,
imperativa, procedural
• Varias especificacoes (ANSI, C89, C99, C11)
• Neste curso nos concentraremos na especificacao ANSI.
2
![Page 6: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/6.jpg)
Programas em C
• Um programa em C e conjunto de um ou mais arquivos textos,
contendo declaracoes e operacoes da linguagem (codigo fonte)
• Consiste em uma ou mais funcoes
• A unica obrigatoria e denominada main()
3
![Page 7: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/7.jpg)
Programas em C
1 #include <stdio.h>
2
3 int main() {
4 printf("Hello world!\n");
5 return 0;
6 }
4
![Page 8: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/8.jpg)
Variaveis
![Page 9: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/9.jpg)
Variaveis
Definicao
Variaveis sao locais onde armazenamos valores.
Toda variavel e caracterizada por um nome, que a identifica em
um programa, e por um tipo, que determina o que pode ser
armazenado naquela variavel.
• Durante a execucao do programa, um pedacinho da memoria
corresponde as variaveis
• Em C, existem 5 tipos basicos de variaveis: char, int, float,
double e void1.
1Estritamente falando, void nao e um tipo, mas sim uma palavra reservada
utilizada para marcar a ausencia dos outros tipos
5
![Page 10: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/10.jpg)
Declarando uma variavel em C
Comando de declaracao
tipo variavel nome variavel;
Exemplos corretos:
• int soma;
• float preco abacaxi;
• char resposta;
Exemplos incorretos (por que?):
• soma int;
• float preco abacaxi
6
![Page 11: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/11.jpg)
Variaveis inteiras
Variaveis inteiras
Utilizadas para armazenar valores inteiros, como 13 ou 1102 ou 24.
Abaixo temos os tipos da linguagem C que servem para
armazenar inteiros:
int Inteiro cujo comprimento depende do processador. E
o mais utilizado. Em processadores de 32 bits (4
bytes) pode armazenar valores entre -2.147.483.648 e
2.147.483.647.
unsigned int Inteiro cujo comprimento depende do processador e
que armazena somente valores positivos. Em
processadores de 32 bits pode armazenar valores
entre 0 e 4.294.967.295.
Pergunta: Como fica o caso dos processadores de 64 bits?7
![Page 12: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/12.jpg)
Variaveis inteiras
long int Inteiro que ocupa 64 bits (8 bytes) em computadores
Intel de 64 bits, e pode armazenar valores entre
aprox. −9× 1018 e aprox. 9× 1018
unsigned long int Inteiro que ocupa 64 bits em computadores
Intel de 64 bits, e armazena valores entre 0 e aprox.
18× 1018
short int Inteiro que ocupa 16 bits (2 bytes) e pode armazenar
valores entre -32.768 e 32.767
unsigned short int Inteiro que ocupa 16 bits e pode armazenar
valores entre 0 e 65.535
8
![Page 13: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/13.jpg)
Variaveis inteiras
Exemplos de declaracao de variaveis inteiras:
• int numVoltas;
• int ano;
• unsigned int quantidadeChapeus;
Exemplos invalidos:
• int int numVoltas;
• unsgned int ano;
9
![Page 14: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/14.jpg)
Declarando varias variaveis
Voce pode declarar varias variaveis de um mesmo tipo em uma
linha.
Basta separar as variaveis por vırgula:
• int numVoltas, ano;
• unsigned int val1, val2, val3, val4;
10
![Page 15: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/15.jpg)
Variaveis do tipo caractere
Variaveis caracteres
Utilizadas para armazenar uma letra ou outro sımbolo existente em
textos. Ex: ’a’, ’3’, ’,’, ’+’.
Exemplos de declaracao:
• char umaLetra;
• char S ou N;
11
![Page 16: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/16.jpg)
Variaveis de tipo ponto flutuante
Variaveis de ponto flutuante
Armazenam valores reais, mas possuem problemas de precisao pois
ha uma quantidade limitada de memoria para armazenar um
numero real. Ex: 2.1345 ou 9098.123.
Abaixo temos os tipos da linguagem C que servem para
armazenar numeros de ponto flutuante:
float Utiliza 32 bits, e na pratica tem precisao de
aproximadamente 6 casas decimais (depois do
ponto). Pode armazenar valores entre 3.4× 10−38 e
3.4× 1038
double Utiliza 64 bits, e na pratica tem precisao de
aproximadamente 15 casas decimais. Pode armazenar
valores entre 1.7× 10−308 e 1.7× 10308
12
![Page 17: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/17.jpg)
Variaveis de tipo ponto flutuante
Exemplos de declaracao:
• float salario, resultado;
• double cotacaoDolar;
13
![Page 18: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/18.jpg)
Regras para nome de variavel em C
• Deve comecar com uma letra (maiuscula ou minuscula) ou
subscrito ( )
• Nunca pode comecar com um numero
• Pode conter letras maiusculas, minusculas, numeros e
subscrito
• Nao pode conter os sımbolos { ( + - * / \ ; . , ?
• Letras maiusculas e minusculas sao diferentes:
1 int c, C;
14
![Page 19: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/19.jpg)
Regras para nome de variavel em C
As seguintes palavras ja tem um significado na linguagem C (sao
reservadas) e por esse motivo nao podem ser utilizadas como nome
de variaveis:
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
15
![Page 20: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/20.jpg)
Atribuicao
![Page 21: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/21.jpg)
Atribuindo valores a variaveis
Comando de atribuicao
nome variavel = valor;
ou
nome variavel = express~ao;
Exemplos:
1 int a;
2 float c;
3 a = 5;
4 c = 67.89505456;
5 a = 3 + 5;
Atribuir um valor de uma expressao para uma variavel significa
calcular o valor daquela expressao e entao copiar aquele valor para
a variavel (nessa ordem). 16
![Page 22: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/22.jpg)
Atribuicao
• O sinal de igual (=) no comando de atribuicao e chamado de
operador de atribuicao
• Veremos outros operadores mais adiante
A esquerda do operador
de atribuicao deve existir
somente o nome de uma
variavel
=
A direita, deve haver uma
expressao cujo valor sera
calculado e armazenado na
variavel
17
![Page 23: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/23.jpg)
Variaveis e constantes
Constantes
Sao valores previamente determinados e que, por algum motivo,
devem aparecer dentro de um programa
• Constantes tambem possuem um tipo
• Os tipos permitidos sao exatamente os mesmos das variaveis,
mais o tipo string, que corresponde a uma sequencia de
caracteres
• Exemplos de constantes:
1 85, 0.10, 'c', "Hello, world!"
18
![Page 24: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/24.jpg)
Expressoes simples
Uma constante e uma expressao e, como tal, pode ser atribuıda a
uma variavel (ou ser usada em qualquer outro lugar onde uma
expressao seja valida)
Exemplos:
1 int a;
2 a = 10;
3 char b;
4 b = 'F';
5 double c;
6 c = 3.141592;
19
![Page 25: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/25.jpg)
Expressoes simples
Uma variavel tambem e uma expressao e pode ser atribuıda a
outra variavel
Exemplo:
1 int a, b;
2 a = 5;
3 b = a;
20
![Page 26: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/26.jpg)
Expressoes simples
1 int a, b, c;
2
3 a = 5 + 5 + 10;
4 b = 6;
5 c = a + b;
6 a = c + 4;
Qual e o valor de a, b e c?
21
![Page 27: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/27.jpg)
Exemplos de atribuicao
A declaracao de uma variavel sempre deve ocorrer antes de seu uso
1 int a, b;
2 float f;
3 char h;
4
5 a = 10;
6 b = -15;
7 f = 10.0;
8 h = 'A';
9
10 a = b;
11 f = a;
12 a = (b + a);
Qual o valor final na variavel a? 22
![Page 28: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/28.jpg)
Exemplos errados de atribuicao
1 int a, b;
2 float f, g;
3 char h;
4
5 a b = 10;
6 b = -15
7 d = 90;
Quais sao os erros?
23
![Page 29: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/29.jpg)
Estrutura de um programa em C
![Page 30: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/30.jpg)
Estrutura basica de um programa em C
1 Declaracao de bibliotecas usadas
2
3 Declaracao de variaveis
4
5 int main() {
6 Declaracao de variaveis
7
8 Comandos
9
10 return 0;
11 }
24
![Page 31: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/31.jpg)
Estrutura basica de um programa em C
1 #include <stdio.h>
2
3 int main() {
4 int a;
5 int b, c;
6
7 a = 7 + 9;
8 b = a + 10;
9 c = b - a;
10
11 return 0;
12 }
25
![Page 32: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/32.jpg)
Exercıcios
![Page 33: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/33.jpg)
Exercıcio 1
Qual o valor armazenado na variavel a no fim do programa?
1 int main() {
2 int a, b, c, d;
3
4 d = 3;
5 c = 2;
6 b = 4;
7 d = c + b;
8 a = d + 1;
9 a = a + 1;
10
11 return 0;
12 }
26
![Page 34: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/34.jpg)
Exercıcio 2
Qual erro existe neste programa?
1 int main () {
2 int a, b;
3 double c, d;
4 int g;
5
6 d = 3.0;
7 c = 2.4142;
8 b = 4;
9 a = 5 * b;
10 d = b + 90;
11 e = c * d;
12 a = a + 1;
13
14 return 0;
15 }27
![Page 35: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/35.jpg)
Expressoes e operadores aritmeticos
![Page 36: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/36.jpg)
Expressoes
• Vimos que constantes e variaveis sao expressoes
• Uma expressao tambem pode ser um conjunto de operacoes
aritmeticas, logicas ou relacionais utilizadas para fazer
“calculos” sobre os valores das variaveis.
Exemplo de expressao:
1 a + b
Calcula a soma de a e b.
28
![Page 37: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/37.jpg)
Expressoes aritmeticas
• Os operadores aritmeticos sao: +, -, *, /, %
• expressao + expressao : Calcula a soma de duas expressoes.
Ex: 10 + 15;
• expressao - expressao : Calcula a subtracao de duas
expressoes.
Ex: 5 - 7;
• expressao * expressao : Calcula o produto de duas expressoes.
Ex: 3 * 4;
29
![Page 38: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/38.jpg)
Expressoes aritmeticas
• expressao / expressao : Calcula a divisao de duas expressoes.
Ex: 4 / 2;
• expressao % expressao : Calcula o resto da divisao (inteira) de
duas expressoes.
Ex: 5 % 2;
• - expressao : Inverte o sinal da expressao.
Ex: -5;
30
![Page 39: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/39.jpg)
Expressoes aritmeticas
Mais sobre o operador resto da divisao %:
• Quando computamos “a dividido por b”, isto tem como
resultado um valor p e um resto r < b que sao unicos tais que
a = p ∗ b + r
• Ou seja, a pode ser dividido em p partes inteiras de tamanho
b, e sobrara um resto r < b.
Exemplos:
5%2 tem como resultado o valor 1.
15%3 tem como resultado o valor 0.
1%5 tem como resultado o valor 1.
19%4 tem como resultado o valor 3.
31
![Page 40: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/40.jpg)
Expressoes aritmeticas
No exemplo abaixo, quais valores serao impressos?
1 #include <stdio.h>
2
3 int main() {
4 printf("%d\n", 29 % 3);
5 printf("%d\n", 4 % 15);
6
7 return 0;
8 }
32
![Page 41: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/41.jpg)
Expressoes aritmeticas
Mais sobre o operador de divisao /:
• Quando utilizado sobre valores inteiros, o resultado daoperacao de divisao sera inteiro. Isto significa que a partefracionaria da divisao sera desconsiderada.
• 5/2 tem como resultado o valor 2.
• Quando pelo menos um dos operandos for ponto flutuante,entao a divisao sera fracionaria. Ou seja, o resultado sera adivisao exata dos valores.
• 5.0/2 tem como resultado o valor 2.5.
33
![Page 42: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/42.jpg)
Expressoes aritmeticas
No exemplo abaixo, quais valores serao impressos?
1 #include <stdio.h>
2
3 int main() {
4 int a = 5, b = 2;
5 float c = 5.0, d = 2.0;
6
7 printf("%d\n",a/b);
8 printf("%f\n", a/d);
9 printf("%f\n", c/d);
10
11 return 0;
12 }
34
![Page 43: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/43.jpg)
Expressoes aritmeticas
• As expressoes aritmeticas (e todas as expressoes) operam
sobre outras expressoes.
• E possıvel compor expressoes complexas como por exemplo:
a = b * ((2/c) + (9 + d*8));
• Qual o valor da expressao 5 + 10 % 3?
• E da expressao 5 * 10 % 3?
35
![Page 44: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/44.jpg)
Precedencia
• Precedencia e a ordem na qual os operadores serao avaliados
quando o programa for executado. Em C, os operadores sao
avaliados na seguinte ordem:
• * e /, na ordem em que aparecerem na expressao.
• %
• + e -, na ordem em que aparecerem na expressao.
• Exemplo: 8 + 10*6 e igual a 68.
36
![Page 45: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/45.jpg)
Alterando a precedencia
• (expressao) tambem e uma expressao, que calcula o resultadoda expressao dentro dos parenteses primeiro.
• 5 + 10 % 3 e igual a 6
• (5 + 10) % 3 e igual a 0
• Voce pode usar quantos parenteses desejar dentro de uma
expressao.
• Use sempre parenteses em expressoes para deixar claro em
qual ordem a expressao e avaliada!
37
![Page 46: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/46.jpg)
Operadores ++ e −−
![Page 47: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/47.jpg)
Incremento(++) e decremento(−−)
• E muito comum escrevermos expressoes para
incrementar/decrementar o valor de uma variavel por 1.
1 a = a + 1;
2 a = a - 1;
• Em C, o operador unario ++ e usado para incrementar de 1 o
valor de uma variavel.
1 a++;
• O operador unario −− e usado para decrementar de 1 o valor
de uma variavel.
1 a--;
38
![Page 48: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/48.jpg)
Exercıcios
![Page 49: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/49.jpg)
Exercıcio
Crie um programa que computa e imprime a soma, a diferenca, a
multiplicacao e divisao dos dois numeros do tipo double.
39
![Page 50: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/50.jpg)
Informacoes extras
![Page 51: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/51.jpg)
Informacoes extras: incremento(++) e decremento(−−)
Ha uma diferenca quando estes operadores sao usados a esquerda
ou a direita de uma variavel e fazem parte de uma expressao
maior:
• ++a: Neste caso o valor de a sera incrementado antes e so
depois o valor de a e usado na expressao.
• a++: Neste caso o valor de a e usado na expressao, e so
depois e incrementado.
• A mesma coisa acontece com o operador −−.
40
![Page 52: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/52.jpg)
Informacoes extras: incremento(++) e decremento(−−)
O que o programa abaixo imprime?
1 #include <stdio.h>
2
3 int main() {
4 int a = 5, b;
5
6 b = ++a;
7 printf("b: %d\n", b);
8 printf("a: %d\n", a);
9
10 b = a++;
11 printf("b: %d\n", b);
12 printf("a: %d\n", a);
13
14 return 0;
15 }41
![Page 53: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/53.jpg)
Informacoes extras: atribuicoes simplificadas
Uma expressao da forma
1 a = a + b;
Pode ser simplificada como
1 a += b;
A variavel a qual o valor e atribuıdo faz parte da expressao.
42
![Page 54: Programação Estruturada - Introdução à linguagem Cprofessor.ufabc.edu.br/~e.francesquini/2018.q3.pe/files/aulas/03.intro... · Programa˘c~ao Estruturada Introdu˘c~ao a linguagem](https://reader033.fdocumentos.com/reader033/viewer/2022053101/605e5f7992def174191d9254/html5/thumbnails/54.jpg)
Informacoes extras: atribuicoes simplificadas
Comando Exemplo Corresponde a:
+= a += b; a = a + b;
-= a -= b; a = a - b;
*= a *= b; a = a * b;
/= a /= b; a = a / b;
%= a %= b; a = a % b;
43