Upload
gustavo-gorjao-laranjeira
View
215
Download
0
Embed Size (px)
Citation preview
Pearson Education Slide 1
Pearson Education Slide 2
Capítulo 1
Criado por Frederick H. Colclough, Colorado Technical University
Fundamentos do C++
Pearson Education Slide 3
Objetivos do Estudo Introdução ao C++
Origens, Programação Orientada a Objetos, Terminologia
Variáveis, Expressões e Declarações deAtribuição
Entrada/Saída de Terminal Estilo de Programa Bibliotecas e Namespaces
Pearson Education Slide 4
Introdução ao C++ Origens da Lingugem C++
Linguagens de Baixo Nível Máquina, assembly
Linguagens de Alto Nível C, C++, ADA, COBOL, FORTRAN
C++ e Programação Orientada a Objetos Terminologia do C++
Programas e funções Entrada/Saída básica (E/S) com cin e cout
Pearson Education Slide 5
Amostra de Programa em C++
Painel 1.1página 3
Pearson Education Slide 6
Variáveis em C++ Identificadores em C++
Palavras-chave/reservadas vs. identificadores Distinção entre maiúsculas/minúsculas e validade dos Identificadores Nomes com significado!
Variáveis Um local na memória para armazenar dados
para um programa Todas devem ser declaradas antes de serem
usadas em um programa
Pearson Education Slide 7
Tipos de Variáveis Tipos Simples
Painel 1.2
página 6
Pearson Education Slide 8
Declarações de Variáveis Inicializando variáveis em declarações de atribuição
Resulta ‘indefinida’ se você não declarar! int meuValor = 0;
Declarações de atribuição Lvalues (lado esquerdo) & Rvalues (lado direito)
Lvalues devem ser variáveis Rvalues podem ser qualquer expressão Exemplo:
distancia = velocidade * tempo;Lvalue: ‘distancia’Rvalue: ‘velocidade * tempo’
Pearson Education Slide 9
Declarações de Variáveis : Abreviada Notações
AbreviadasPainel página 9
Pearson Education Slide 10
Regras de Declarações de Variáveis Compatibilidade de Atribuição
Má Combinação de Tipos Regra Geral: Não se pode armazenar o valor de um
tipo em uma variável de outro tipo intVariavel = 2.99; // 2 é atribuído a intVariavel!
Somente a parte inteira “encaixa” Chamada “implícito” ou “conversão automática de tipo”
Literais 2, 5.75, “Z”, “Olá Mundo” Considerados “constantes”: não podem mudar de valor
Pearson Education Slide 11
Literais Literais
Exemplos: 2 // Constante Literal int 5.75 // Constante Literal double “Z” // Constante Literal char “Olá Mundo” // Constante Literal string
Não podem mudar de valor durante a execução Chamados de “literais” porque você
“literal-mente os digita” em seu programa!
Pearson Education Slide 12
Seqüências de Escape
Conjunto de caracteres “Extendidos” Contrabarra, \ precedendo um caracter
Instrui o compilador: Um ‘caracter de escape’especial está vindo
O caractere seguinte é tratado comouma ‘seqüência de escape’
Painel 1.3 no próximo slide
Pearson Education Slide 13
Seqüências de Escape (cont.)
Painel 1.3 Página 12
Pearson Education Slide 14
Constantes Dando nomes a constantes
Constantes estão “OK”, mas fornecem poucosignificado.
Ex.: Ver 24 em um prg, não nos diz nada sobreo que ele representa
Em vez disso, utilize constantes nomeadas Nome significativo para representar o dado
const int NUMERO_DE_ESTUDANTES = 24; Chamada de ‘constante declarada’ ou ‘nomeada’ Agora use seu nome sempre que precisar no prg Vantagem: mudanças de valor resultam em um conserto
Pearson Education Slide 15
Operadores Aritméticos Operadores
Aritméticos Padrão Regras de
Precedência – Regras Padrões
Painel 1.4página 13
Pearson Education Slide 16
Precisão Aritmética Precisão dos Cálculos
Consideração MUITO importante! Expressões em C++ podem não ser avaliadas
como esperado! ‘Operandos de ordem maior’ determinam o tipo
de ‘precisão’ aritmética apresentada Armadilha comum!
Pearson Education Slide 17
Exemplos de Presisão Aritmética Exemplos:
17 / 5 é igual a 3 em C++! Ambos os operandos são inteiros Um divisão de inteiro é executada!
17.0 / 5 é igual a 3.4 em C++! O operando de ordem maior é do ‘tipo double’ Uma divisão com precisão ‘double’ é executada!
int intVariavel1 =1, intVariavel2=2;intVariavel1 / intVariavel2;
Executa uma divisão de inteiro! Resulta: 0!
Pearson Education Slide 18
Precisão Aritmética Individual Cálculos feitos “um-a-um”
1 / 2 / 3.0 / 4 executa 3 divisões separadas. Primeiro 1 / 2 é igual a 0 Então 0 / 3.0 é igual a 0.0 Então 0.0 / 4 é igual a 0.0!
Assim, não é necessariamente suficiente mudar somente ‘um operando’ em uma expressão grande
Devem-se ter em mente todos os cálculos individuais que serão executados durante aoperação!
Pearson Education Slide 19
Conversões de Tipo (Casting) Casting para Variáveis
Pode-se adicionar ‘.0’ às literais para forçar a precisão aritmética, mas e quanto às variáveis?
Não podemos usar ‘meuInteiro.0’! static_cast<double>intVariavel Explicitamente “converte” intVariavel para o tipo double O resultado da conversão é usado
Exemplo de expressão:doubleVariavel = static_cast<double>intVariavel1 / intVariavel2; Casting força a divisão de precisão dupla entre duas
variáveis do tipo inteiro!
Pearson Education Slide 20
Conversões de Tipo (Casting) Dois Tipos
Implícita – também chamada “Automática” Feita PARA você, de forma automática
17 / 5.5Esta expressão causa uma ‘conversão de tipoimplícito’, convertendo o 17 17.0
Conversão de Tipo Explícita O programador especifica a conversão com o
operador de conversão (double)17 / 5.5A mesma expressão acima usando
uma con-versão explícita (double) meuInteiro / meuDoubleUso mais comum; Operador de conversão sobre a variável
Pearson Education Slide 21
Operadores Abreviados Operadores de Incremento e
Decremento Somente notação abreviada Operador de Incremento, ++
intVariavel ++; é equivalente aintVariavel = intVariavel + 1;
Operador de Decremento, --intVariavel--; é equivalente a intVariavel = intVariavel – 1;
Pearson Education Slide 22
Operadores Abreviados : Duas Opções Pós-Incremento
intVariavel++ Usa o valor atual da variável, ENTÃO incrementa-a
Pré-Incremento++intVar
Incrementa a variável primeiro, ENTÃO usa o novo valor
“Uso” é definido como qualquer “contexto”
Nenhuma diferença se “sozinho” na expressão:intVariavel++; e ++intVariavel; resultado idêntico
Pearson Education Slide 23
Pós-Incremento em Ação Pós-Incremento em Expressões:
int n = 2,valorProduzido;
valorProduzido = 2 * (n++);cout << valorProduzido << endl;cout << n << endl;
Este código produzirá a saída:43
Desde que tenha sido usado pós-incremento
Pearson Education Slide 24
Pré-Incremento em Ação Agora Usando Pré-incremento:
int n = 2,valorProduzido;
valorProduzido = 2 * (++n);cout << valorProduzido << endl;cout << n << endl;
Este código produzirá a saída:63
Porque foi usado pré-incremento
Pearson Education Slide 25
Entrada e Saída de Terminal Objetos E/S cin, cout, cerr Definidos em C++ na Biblioteca chamada
<iostream> Devem conter essas linhas junto ao início do
código: #include <iostream>
using namespace std; Instrui o C++ a usar a biblioteca apropriada,
assim podemos usar os I/O Objetos E/S cin, cout, cerr
Pearson Education Slide 26
Saída de Terminal O que pode ser apresentado como saída?
Qualquer dado pode ser apresentado Variáveis Constantes Literais Expressões (as quais podem conter tudo acima)
cout << numeroDeJogos << “ Jogos realizados.”;2 valores serão apresentados:
‘valor’ da variável numeroDeJogos e astring “Jogos realizados.”
Cascata: múltiplos valores em um cout
Pearson Education Slide 27
Separando Linhas de Saída Novas linhas na saída
Lembre-se: ‘\n’ é a seqüência de escape de caractere de ‘nova linha’
Segundo Método: objeto endl Exemplos:
cout << “Olá Mundo\n”; Envia a string “Olá Mundo” para a tela e a
seqüênciade escape ‘\n’, pulando para a próxima linha
cout << “Olá Mundo” << endl; Apresenta o mesmo resultado
Pearson Education Slide 28
Formatando a Saída Formatando valores numéricos para a saída
Valores podem não ser mostrados como você espera!cout << “O preço é R$” << preco << endl;
Se preco (declarado double) tem o valor 78.5, vocêpode obter: O preço é R$ 78.500000 ou: O preço é R$ 78.5
Precisamos dizer explicitamente ao C++ comoapresentar os números em seu programa!
Pearson Education Slide 29
Formatando Números ‘Fórmula Mágica’ para forçar tamanhos decimais:
cout.setf(ios::fixed);cout.setf(ios::showpoint);cout.precision(2);
Estas linhas forçam todos os comandos cout’s: Terem exatamente dois dígitos após o ponto decimal
Exemplo:cout << “O preço é R$ << preco << endl;
Agora o resultado será: O preço é R$ 78.50
Modifique a precisão ‘como você precisar’!
Pearson Education Slide 30
Saída de Erro Saída com cerr
cerr é utilizado como cout Fornece o mecanismo para distinguir entre
uma saída regular e uma saída de erro Redireciona a saída
A maioria dos sistemas permite que cout and cerr sejam ‘redirecionados’ para outros dispositivos
Ex.: Impressora, Arquivo, Terminal de erros, etc.
Pearson Education Slide 31
Entrada usando cin cin para entrada, cout para saída Diferenças:
‘>>’ as setas apontam para a direção oposta Pense nelas como ‘apontando na direção para onde os dados vão’
Objeto ‘cin’ usado em vez de ‘cout’ Nenhuma literal é permitida para cin
Deve entrar ‘para uma variável’ cin >> num;
Aguarda na tela por um valor digitado O valor digitado é ‘atribuído ’ à num
Pearson Education Slide 32
Solicitando uma Entrada: cin and cout Sempre ‘solicita’ ao usuário uma entrada
cout << “Entre com o número de dragões: “;cin >> numeroDeDragões;
Nenhum ‘\n’ em cout. O cursor ‘aguarda’ namesma linha por uma entrada digitada:
Entre com o número de dragões : ____
Underscore acima mostra onde a entrada serádigitada
Cada cin tem um cout solicitando dados Faça Entradas/Saídas amigáveis ao usuário
Pearson Education Slide 33
Estilo de Programa Ponto principal: Faça programas fáceis
de ler e modificar Comentários, dois métodos:
// Duas barras indicam que a linha inteira deve ser ignorada /*Delimitadores indicam que tudo entre eles deve ser ignorado*/ Ambos os métodos são usados com frequência
Nomeando Indentificadores MAIÚSCULAS para constantes maisbaixoParaMaisAlto para variáveis Mais importante: NOMES SIGNIFICATIVOS!
Pearson Education Slide 34
Bibliotecas Bibliotecas Padrão em C++ #include <Nome_Biblioteca>
Diretiva para ‘adicionar’ o conteúdo do arquivode biblioteca em seu programa.
Chamado ‘directiva de pré-processor’ Executa antes do compilador e simplesmente
‘copia’ o arquivo de biblioteca em seu programa
C++ tem muitas bibliotecas Entrada/Saída, matemática, strings, etc.
Pearson Education Slide 35
Namespaces Namespaces definidos:
Coleção de definições de nomes Por ora: interesse no namespace ‘std’
Todas as bibliotecas-padrão que usaremos colocam suasdefinições no namespace std
Exemplos:#include <iostream>using namespace std;
Inclui bibliotecas-padrão inteiras de definições de nomes
#include <iostream>using std::cin;using std::cout;
Pode especificar exatamente os objetos que precisamos
Pearson Education Slide 36
Resumo 1 C++ faz diferença entre maiúsculas e
minúsculas Use Nomes Significativos
Para variáveis e constantes Variáveis devem ser declaradas antes do
uso Também devem ser inicializadas
Cuidado na manipulação numérica Precisão, parênteses, ordem das operações
#include C++ bibliotecas necessárias
Pearson Education Slide 37
Resumo 2 Objeto cout
Usado para saída de terminal Objeto cin
Usado para entrada de terminal Objeto cerr
Usado para mensagens de erros Use comentários para ajudar na
compreen-são do seu programa
Não exagere nos comentários