Buscar

C++ parte1

Prévia do material em texto

1 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
Sintaxe C++:
tipos e declarações,
operadores e 
instruções de controle
2 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● A linguagem C++ foi concebida por Bjarne Stroustrup, no 
AT&T Bell Laboratories, por volta de 1980 com nome de “C 
with Classes”
● A motivação de Bjarne era uma solução mais eficiente que o 
Modula 67 para simulações baseadas em eventos 
● O nome C++ (“see plus plus”) foi sugerido por Rick Mascitti:
– C+ seria um erro de compilação
– D não, porque a linguagem seria uma evolução da linguagem C
– C++ porque “++” é o operador de incremento e assim faria sugestão à natureza 
evolucionária da nova linguagem
Introdução à C++
Bjarne Stroustrup em 2007
Fonte: Wikipedia.org 
3 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Uma padronização da especificação (ANSI) iniciou-se em 1989 
e em 1998 o padrão ISO/IEC 14882 foi ratificado
● Revisões da linguagem foram lançadas em 2003 (C++03), 2011 
(C++11), em 2014 (C++14) 
– Melhorias ao núcleo da linguagem (suporte multithreading, programação 
genérica, etc.) e mudanças significativas na biblioteca padrão
● Principais características:
– Mantêm como subconjunto a linguagem C e assim a compatibilidade com a 
mesma (compiladores C++ compilam código C, ao menos as versões iniciais do 
C)
– É multi paradigma: procedimental, programação modular, orientado a objetos
– É uma linguagem de propósito geral com um viés para a programação de sistemas
Introdução à C++
4 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Referencia C++
5 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Codeblocks IDE
6 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Estrutura de um programa em C++
Insira um #include para cada arquivo
de cabeçalho para acessar 
as bibliotecas que for usar
Para tornar o espaço de nomes std 
o padrão
Isso evita escrever sempre
std::cout
 
Todo comando finaliza com ; 
 
 
7 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
● O comando cout: é utilizado para mostrar informações no 
console (saída padrão) em modo texto 
● cout é o stream de saída padrão
● Sintaxe:
– cout << “texto”;
– cout << var;
– cout << var * (2 + 4 );
– cout << “texto“ << var << “texto”;
– cout << “Resultado= “<< res << “\n”;
– cout << “Resultado= “<< res << endl;
caractere especial para
 salto de linha
 
palavra-chavepara
 salto de linha
 
Saída de dados
8 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Somando 2 números
 
● Vamos construir um programa para somar dois números:
● O que acham dessa solução?
9 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Somando 2 números
 
– Não é definida uma solução geral para o problema de somar 2 
números! Sempre faz-se a soma de 12 com 5!!
– Observe um algoritmo válido para este problema no próximo slide
 
10 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Somando 2 números
 
● Em descrição narrativa (linguagem natural):
1. Obtém o primeiro número (entrada)
2. Obtém o segundo número (entrada)
3. Soma os dois números obtidos (processamento)
4. Apresenta a soma resultante (saída)
11 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Somando 2 números
 
● Observe que as entradas numero1 e numero2 podem ser 
valores quaisquer que o usuário irá informar! Não se 
sabe!
● Observe que esses dados virão do teclado do computador 
e precisarão ser armazenados temporariamente 
● Esses dados ocuparão um lugar na memória do 
computador
● Em um programa damos nomes para esses
 locais na memória 
– É o que chamamos de variável ...
12 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Variável: conceito
 
● Uma variável pode ser vista como uma caixa com um 
rótulo ou nome para um conteúdo que será de um dado tipo
● Observe o exemplo da variável fator, abaixo:
 I
N
T
E
 I
R
O
13 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Variável: conceito
 
● Uma variável pode ser vista como uma caixa com um 
rótulo ou nome para um conteúdo que será de um dado tipo
● O conteúdo de uma variável não é algo fixo, permanente. 
Seu conteúdo pode ser alterado diversas vezes durante a 
execução do programa
● O nome da variável serve como um apelido de alto nível 
(nível de programação) para um endereço de memória onde 
se encontra seu conteúdo 
● O tipo de uma variável define a faixa de valores possível 
para a variável e tem relação com o tamanho gasto em 
memória para armazenar seu conteúdo (tipo de dados)
14 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Declaração: regras para nomes de 
variáveis/identificadores
● Nomes de variáveis devem começar com letra (“_” é um 
letra) e serem seguidos por letras e dígitos, sem espaços
● Pode conter números a partir do 2º caractere
● Não pode haver duas variáveis com o mesmo nome, no 
mesmo escopo de programação 
– Escopo global (variáveis declaradas fora de funções)
– Escopo local (variáveis declaradas dentro de blocos)
● Não podem ser palavras reservadas do C++ 
 Ex: main, int, include, return, if, else, while, for ,etc.
● C++ é case sensitive, isto é, diferencia maiúsculas e 
minúsculas
15 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Verifique os identificadores que tem nomes 
inválidos:
Declaração: regras para nomes de 
variáveis/identificadores
16 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Tipos embutidos do C++
 
● Variáveis e constantes podem ser declaradas como sendo 
dos seguintes tipos embutidos do C++:
– char
– bool
– int (e variações)
– float, double, long double 
17 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
● Variáveis e constantes podem ser declaradas como sendo dos 
seguintes tipos embutidos do C++:
– char: armazena um caractere alfanumérico
– bool: armazena dois valores possíveis: true ou false
– int (e variações): para números inteiros
– float, double, long double: para números reais 
Tipos embutidos do C++
18 /73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Sintaxe para declaração de variáveis
● Sintaxe de declaração:
<tipo da variável> var1, var2 … , varN;
● Exemplos: 
int numero1, numero2;
char c;
bool chegou;
float salario;
double pi;
19 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Comentários em Código
 
● Comentários são declarações que não são compiladas
● É um meio de inserir informação textual sobre o programa
● Comentário de linha inicia com //
● Comentário de várias linhas iniciam com /* e finaliza com */
20 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Exemplos de Declaração de Variáveis
 
Variável global
Variáveis locais
(dentro de main())
21 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Operador de Atribuição 
 
= é o operador para atribuir um valor a uma variável:
22 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Comando de entrada de dados
 
● O comando cin é utilizado para capturar entradas de dados, 
via o dispositivo de entrada padrão (teclado)
● Após o <enter> o valor digitado será armazenado na 
variável informada
23 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● cin é o stream de entrada padrão
● Use cin seguido de >> para ler do teclado: 
Entrada de dados
24 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Comando de entrada de dados
 
● Exemplo:
25 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Operadores aritméticos
 
Operador Descrição Exemplo 
+ soma a + b
- subtração a - b
* multiplicação a * b
/ divisão a / b
/ divisão inteira
(se os dois operandos 
são inteiros)
int x, y;
…
x = 5;
y = 2;
cout << x / 2; // exibirá 2
% módulo da divisão
 
int x = 5
…
cout << x % 2; // exibirá 1
26 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Operadores aritméticos
 Operador Descrição Exemplo
++
Operador 
de 
incremento
++ como único 
operador
 
int x = 1;
x++; //x = 2
x = 1;
++x; //x = 2
Obs.: pós-fixado 
(++ com mais de 
um operador)
int a = 5, b;
b = a++; //b = 5 e a = 6 
Obs.: pré-fixado 
(++ com mais de 
um operador)
int a = 5, b;
b = ++a; //a = 6 e b = 6 
--
Operador 
de 
decremento
int x = 1;
x--; //x = 0
 
--x; //x = -1
Obs.: pós-fixado 
(-- com mais de 
um operador)
int a = 5, b;
b = a--; //b = 5 e a = 4 
Obs.: pré-fixado 
(-- com mais de 
um operador)
int a = 5, b;
b = --a; //a = 4 e b = 4
27 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Calculando potência e raízes
 
● A biblioteca padrão oferece inúmeras funções matemáticas. 
Para usá-las é preciso incluir o arquivo cabeçalho, assim: 
 #include <math.h> ou #include<cmath> 
● Exemplo 1: raiz
28 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Calculando potência e raízes
 
● Exemplo 2: potência
29 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
Vamos agora definir o algoritmo Soma!
30 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
Vamos agora definir o algoritmo Soma!
31 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Precedência de operadores
 
● Sem uso de parênteses serão executadas as operações na 
seguinte ordem:
 1º) ++ e -- 
 2º) * / e %
 3º) + e - 
● Para mudar a precedência usamos parênteses: “(“ e “)”
32 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Precedência de operadores
 
● Exemplos:
 y = a + b * c; // y = a + (b * c);
 y = a + b% c; // y = a + (b * c); 
 y = a * b% c; // y = (a * b) % c; // left-to-right 
 
 
33 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Exercícios de fixação
 
1) Para cada um dos enunciados, faça fluxograma e C++:
a) Faça um algoritmo que calcule a área de um retângulo a partir da 
medida de seus lados (a, b). 
b) Calcular o perímetro e a área de um quadrado cujo lado é 
informado pelo usuário. 
c) Faça um algoritmo que calcule a conversão do valor de uma 
temperatura de graus Celsius para graus Fahrenheit. A fórmula de 
conversão é F = (9 * Cº + 160) / 5, sendo F a temperatura em 
Fahrenheit e C a temperatura em Celsius.
d) Complete o algoritmo da Soma para também realizar: subtração, 
multiplicação e divisão. 
e) Solicitar ao usuário as 4 notas bimestrais do alunos. Calcular e 
escrever a média das notas.
34 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Expressões em linha
 
● Observe que é preciso descrever expressões matemáticas 
linearizadas:
35 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Exercícios de fixação: continuação
 
2) Escreva para cada expressão matemática abaixo o comando 
equivalente em C++:
a) resultado = 2 + 3 * { 23 - 12 + [ { ( 123 / 34 ) + 10 } / 2 - 1 * ( 45 - 12 ) ] / 3 }
 
b)
c)
F
ED
C
BA
X



 
H
HH
X
HY
2
34
3
452 


 
36 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Quanto de memória memória cada tipo de dados ocupa 
é algo definido pela implementação (compilador + 
características da máquina)
● Os tipos fundamentais:
– tipo booleano (bool)
– Tipo caractere (char)
– Tipos inteiros (int e variações)
– Tipos em ponto flutuante (float, double, long double)
 
Tipos no C++
Tipos integrais Tipos 
aritméticos
37 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Ausência de informação:
– tipo void
● Para enumerar constantes inteiras:
– Tipo enumeração (enum) (*) 
● Outros tipos construídos a partir dos anteriores:
– Tipo ponteiro (int*) 
– Tipo vetor ou array (char [])
– Tipo referência (double&)
– Estruturas de dados e classes (*) 
 
Tipos no C++
(*) São os chamados de tipos definidos pelo usuário (programador) em oposição a todos 
os demais tipos chamados de tipos embutidos que já estão definidos
38 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Tipo bool: valores true ou false
● Usado para manter o resultado de operações lógicas
● Exemplos:
Tipo booleano
39 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Conversão implícita – de bool para tipo inteiro:
– true : é igual 1
– false : é igual 0
● Conversão implícita – de inteiro para bool:
– diferente de zero: é igual a true
– Igual a zero: é igual a false
● Exemplos:
 
Tipo booleano
// bool(7) é true, b será true
// int(true) é 1, i será 1
40 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Tipo char: mantém um caractere do conjunto de caracteres da 
implementação 
● Tipicamente, uma implementação define o tipo char com 8 bits
Exemplo:
● É seguro assumir que um determinado conjunto de caracteres 
inclui: 
– Os dígitos decimais
– Os 26 caracteres da língua Inglesa
– Alguns caracteres de pontuação
 
Tipo caractere
41 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Todo caractere de um conjunto de caracteres tem um número 
inteiro associado 
● No conjunto de caracteres ASCII, por exemplo, o char 'b' tem 
valor inteiro igual a 98
● A notação int(c) dá o valor inteiro correspondente do 
caractere c
● Exemplo:
 
Tipo caractere
42 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Formas:
– int: ou int 'plano', representação com sinal (= signed int)
– signed int: representação com sinal
– unsigned int: representação sem sinal 
● Tamanhos (em ordem crescente):
– short int ou apenas short
– int (unsigned int ou apenas unsigned; signed int ou apenas signed)
– long int ou apenas long
Tipos inteiros
43 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Em três formas:
– Inteiro decimal 
Exemplo:
– Inteiro octal: um 0 antes do número
Exemplo:
– Inteiro hexadecimal: um 0x antes do número e as letras de a .. f 
ou A .. F
Exemplo:
Literais inteiros
44 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Como para inteiros os tipos para ponto flutuante 
permitem escolhas em 3 tamanhos:
– float (precisão simples)
– double (precisão dupla)
– long double (precisão estendida)
● O significado exato de precisão 'simples', 'dupla' e 
'estendida' é definido pela implementação
Tipos ponto flutuante
45 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Por padrão o literal é do tipo double
● Um literal do tipo float deve ser marcado com os sufixos 
f ou F
● Não são permitidos espaços em branco no meio do literal
Exemplos:
Contra-exemplo: (Veja os espaços.. erro de compilação!)
Literais ponto flutuante
46 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Os tamanhos são expressos em relação ao char (tamanho relativo: 
1)
● O tamanho de um objeto pode ser obtido através do operador sizeof
● Aspectos relativos à implementação são possíveis de serem 
conhecidos (em <limits>)
Exemplo: 
Tipos e tamanho 
47 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
● Exemplo: 
Tipos e tamanho 
48 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
 
1) Copie, compile e execute o programa anterior em seu 
computador. Relate os tamanhos em bytes para um char , 
para um bool e para um int.
2) No mesmo programa, utilize o tipo char para fazer aritmética 
e observe o resultado para:
a) atribua 255 à variável c do tipo char
b) apresente o valor inteiro do caractere no monitor usando: int(c)
c) caso tenha ocorrido um valor negativo, discuta com o professor e entenda o que ocorreu…
d) se não ocorreu valor negativo então atribua 256 à c e repita b) e c) 
3) Observe a relação de tamanhos do slide a seguir. Comprove 
esta relação definindo variáveis dos tipos mencionados e 
exibindo o tamanho dessas entidade em bytes no monitor.
Exercícios de Fixação
49 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Em termos de tamanho são garantidas as relações 
abaixo:
● Suponha N como char, short int, int ou long int
● Lembre-se que tipo de dados distintos podem ser 
usados em uma expressão aritmética e que conversões 
possíveis serão realizadas
Tipos e tamanho 
50 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
1) Codifique um programa em C++ para mostrar em vídeo o tamanho 
relativo (ao char) para os seguintes tipos:
char, char *, unsigned char, signed char
short, short*, unsigned short, unsigned short*
int, int*, unsigned int, unsigned int*
long, long*, unsigned long, unsigned int*
typedef unsigned int* uint_p
2) Usando o exemplo de código do slide que usa funções de <limits>, 
 codifique um programa em C++ para mostrar os valores máximo 
e mínimo dos tipos: 
 char, short, int, long, float, double e long double
3) Identifique o tamanho em bytes para os tipos do exercícios 2).
Exercício de fixação
51 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● A palavra-chave const faz do objeto declarado 
uma constante
● Constantes declaradas devem ser inicializadas e 
não terão seus valores alterados em seu escopo
– Valores constantes
Exemplos:
 
 
–
Constantes 
// model é uma constante
// v[i] é constante
//erro: constante não inicializada
// um ponteiro para uma constante
52 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Uma operação relacional retorna true ou false
● Operadores: 
Operadores relacionais
53 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Uma operação lógica retornará true ou false
● Operadores: 
Operadores lógicos
54 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Uma operação lógica retornará true ou false
● Tabela verdade dos operadores: 
Operadores lógicos
55 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Sintaxedo IF :
if (condicao){
 // bloco de instruções
}
 Exemplo:
Instruções de controle
se condicao é igual a true
bloco de instruções 
será executado
56 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Sintaxe do IF..ELSE :
if (condicao){
 // bloco de instruções 1
}else{
 // bloco de instruções 2
}
 Exemplo:
Instruções de controle
se condicao é true
bloco de instruções 1
será executado
senão condicao é false e o
bloco de instruções 2
será executado
57 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Use IF’s aninhados para testar condições sucessivas
● Sintaxe:
if (condicao1){
 // bloco de instruções 1
}else{
 if (condicao2){
 // bloco de instruções 2 
 }else{
 if (condicao 3) {
 // bloco de instruções 3 
 }else{
 // bloco de instruções 4 
 }
 }
} 
 
Instruções de controle
58 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● IF’s aninhados:
● Exemplo:
 
Instruções de controle
59 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● IF’s aninhados:
● Exemplo (reescrito de modo mais conciso):
 
Instruções de controle
60 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Escolha múltipla com switch é baseada em expressão 
inteira
● break é necessário quando não devem ser executados os 
blocos situados abaixo
 Exemplo:
Instruções de controle
// desnecessário
// quando nenhuma das constantes acima tem o valor de val
// bloco de instruções para val == 1 aqui
// bloco de instruções para val == 2 aqui
// bloco de instruções para outros valores de val
61 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Se várias constantes devem executar o mesmo 
bloco break pode ser omitido
 Exemplo:
Instruções de controle
// trecho de um switch 
// o bloco acima é executado para todos os 8 casos
// bloco de instruções para quando a variável for igual a: ; , *, /, +, – , (, ), ou =
62 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● switch torna o programa mais legível e pode 
também gerar código mais eficiente que ifs 
aninhados
 Exemplo:
Instruções de controle
// bloco de instruções para val == 1 aqui
// bloco de instruções para val == 1 aqui
// bloco de instruções para val == 1 aqui
// bloco de instruções para valores diferentes de val
63 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Variáveis podem ser definidas em condições
● O escopo dessas variáveis é o bloco em que a 
condição é definida
 Exemplo:
Instruções de controle
64 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Variáveis podem ser definidas em condições
● O escopo dessas variáveis é o bloco em que a 
condição é definida
 Exemplo:
Exercícios de fixação
65 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Exercícios de Fixação 
1) Faça um programa em C++ para calcular e reajustar o salário de 
um funcionário. Sabe-se que o percentual de aumento é o mesmo 
da tabela a seguir:
2) O custo ao consumidor de um carro novo é a soma do custo de 
fábrica com a porcentagem do distribuidor e com os impostos, 
ambos aplicados ao curso de fábrica. Sabe-se que as 
porcentagens são as mesmas que estão na tabela a seguir. Faça 
um programa que recebe o custo de fábrica de um carro, calcule 
e exiba o preço ao consumidor.
 
66 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Exercícios de fixação
 3) Faça um programa que exiba o menu de opções de uma 
calculadora simplificada, calcule e exiba ao usuário a 
resposta. Seu programa deve informar ao usuário, caso a 
opção escolhida seja inválida, isto é, inexistente no menu:
1. Somar 
2. Subtrair
3. Multiplicar
4. Dividir
 
67 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Loop while testa a condição de permanência no início
● Observe que a variável de controle da condição deve 
ser alterada dentro do loop!
 Exemplo:
Instruções de controle
int i = 1;
while (i <= 12) {
 // … comandos 
 i++;
}
68 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● do while testa a condição de permanência no 
loop ao final
● O bloco será executado no mínimo uma vez
 Exemplo :
Instruções de controle
int i = 1;
do{
 // … comandos 
 i++;
}while (i <= 12) 
69 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Use a instrução break para sair do switch ou de 
loops (for, while ou do..while) onde é invocada 
 Exemplo:
Instruções de controle
// vai para a instrução após o while
#include<iostream>
int main(int args, char** argc){
int i = 1;
do{
 // … comandos 
 if (i % 2 == 0)
 break;
 i++; 
}while (i <= 12);
std::cout << " valor de i " << i << std::endl;
}
70 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● Use a instrução continue para ir para o final do loop, desconsiderando as 
instruções seguintes
● continue faz avaliar novamente a condição do loop 
● Exemplo:
 
Instruções de controle
// vai para while(...)
#include<iostream>
int main(int args, char** argc){
 int i = 1;
char op;
do{
 std::cout << "Digite ('1'. para parar ou <Enter> para continuar): ";
 op = std::cin.get();
 //std::cin >> op; 
 if (op == '1')
 break;
 i++; 
 if ((i >= 5) && (i <= 7))
 continue; 
 std::cout << "Testa i: "<< i << std::endl;
}while (i <= 10);
std::cout << " valor de i " << i << std::endl;
}
71 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
● A instrução goto é usado em casos onde a 
eficiência é importante
– Para sair de um loop aninhado em aplicações de tempo 
real, p. ex. 
Instruções de controle
 
 // vai para o 
// rótulo found
72 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
Resolva empregando os 2 comandos de repetição: while 
e do-while:
1) Leia as notas das provas dos m alunos de uma classe,calcule e exibe a média da turma. 
2) Conte quantos números são divisíveis por 3, entre 1 e N, 
sendo N um número qualquer fornecido pelo usuário.
3) Escreva um algoritmo que lê um número desconhecido 
de valores, um de cada vez, e conta quantos deles estão 
em cada um dos intervalos: [0, 25], ]25,50], ]50,75], ]
75,100] 
Exercícios de fixação
73 / 73Notas de aula da disciplina: Algoritmos e Programação Procedimental Daniela Costa Terra Ouro Branco, fereveiro, 2018
4) Observe o somatório abaixo. 
 Leia do usuário o valor de n, calcule e exiba o resultado da 
série acima.
5) Suponha um programa que exiba o menu de opções abaixo ao 
usuário. Faça um programa parar resolver os exercícios de 1) à 4), 
anteriores, de acordo com a opção selecionada pelo usuário. 
Observe que uma estrutura de repetição é necessária pois o usuário 
poderá escolher as opções até quando desejar sair do programa 
(opção 5). A opção escolhida deve ser utilizada na condição de 
permanência no loop. 
1- questão1 2-questão2 3- questão3 4-questão4 5-SAIR 
Exercícios de Fixação
+ 1
 n
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73

Outros materiais

Materiais relacionados

Perguntas Recentes