Baixe o app para aproveitar ainda mais
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
Compartilhar