Linguagens de Programação

Documentos relacionados
Parte IV. Linguagens de Programação. Relembrando da Última Aula... Repetição Controlada por Contador. Nono Exemplo utilizando Classes em C++

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Capítulo 7. Expressões e Sentenças de Atribuição

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem C: Introdução

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Introdução à Programação

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Introdução a Programação de Jogos

3. Linguagem de Programação C

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Programação Orientada a Objetos para Redes de Computadores

Programação Aplicada à Engenharia

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Linguagens de Programação

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Introdução à Linguagem C

Programação estruturada

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Linguagens de Programação

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Algoritmos II prof. Daniel Oliveira

Disciplina: Introdução à Engenharia da Computação

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 2

Algoritmos e Técnicas de

Lição 4 Fundamentos da programação

Princípios de Desenvolvimento de Algoritmos MAC122

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Capítulo 2 Operadores. A função scanf()

Tipos Primitivos, estruturas de iteração e decisão.

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

3.1 - Funções para manipular dados de entrada e saída padrão

Introdução à Programação Orientada a Objetos em C++

INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++

Introdução à Computação MAC0110

INSTRUÇÕES DE REPETIÇÃO

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Estruturas de Dados. Módulo 2 Expressões. 9/8/2005 (c) Marco A. Casanova - PUC-Rio 1

Paradigmas de Linguagens

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Variáveis primitivas e Controle de fluxo

Laboratório de Programação II

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação Estruturada

Linguagens de Programação

Disciplina de Algoritmos e Programação

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

Linguagens de Programação

PROCESSAMENTO DA INFORMAÇÃO LAÇOS E REPETIÇÕES. Prof. Dr. Francisco Isidro Massetto

Decisões e Repetições

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Computação I (MAB120) DCC/UFRJ

Estrutura do programa

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Algoritmos: Conceitos Fundamentais

ITENS FUNDAMENTAIS Programando em C++

Linguagem de Programação C

Tipos de Dados Simples (Continuação)

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Introdução à Linguagem C Variáveis e Expressões

Preparatório OBI. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula 01 Introdução a C++

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

Estruturas de Repetição

Programação I A Linguagem C. Prof. Carlos Alberto

Linguagem C Princípios Básicos (parte 1)

Instruções, dados e expressões

Aula 10: Introdução a Vetores e Matrizes

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

GEQ Prof. Paulo R. Coelho. Lista para prova

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores. Fundamentos de Sobrecarga de Operadores. Sobrecarga de Operadores

Laços de repetição for, while, do-while

Orientação a Objetos e Java

Algoritmos. Conceitos e Comandos

Aula 4 - Operadores. Prof. Laura Silva de Assis. Engenharia de Computação 2 o Período

Aula 4: Introdução à Linguagem C++

Programação Aplicada à Engenharia

Noções de algoritmos - Aula 1

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Transcrição:

Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel

Parte IV Introdução à Programação em C++ (Continuação)

Relembrando da Última Aula... Definição de classes e objetos Primeiros exemplos de programação orientada a objetos

Repetição Controlada por Variável contadora Contador Usada para contar ocorrências de um determinado evento ou para controlar laços de repetição Ex.: Indica qual entre as dez notas está sendo inserida Variável acumuladora Usada para acumular a soma de vários valores Em geral, é previamente iniciada do zero Do contrário, incluiria o valor anterior armazenado nessa posição da memória

Nono Exemplo utilizando Classes em C++

Nono Exemplo utilizando Classes em C++ Função que utiliza variável contadora e acumuladora

Nono Exemplo utilizando Classes em C++

Nono Exemplo utilizando Classes em C++

Nono Exemplo utilizando Classes em C++ Declaração das variáveis contadora e acumuladora

Nono Exemplo utilizando Classes em C++ Inicialização das variáveis

Nono Exemplo utilizando Classes em C++ Executa o laço de repetição 5 vezes Calcula a média ao final do laço de repetição Acumula e incrementa as variáveis respectivas

Nono Exemplo utilizando Classes em C++

Nono Exemplo utilizando Classes em C++ shell>$ g++ -Wall -c gradebook.cpp o gradebook.o shell>$ g++ -Wall -c principal.cpp o principal.o shell>$ g++ -o ex9 gradebook.o principal.o shell>$./ex9 Warning: Nome Programacao de Computadores e Sistemas Distribuidos excede o limite maximo de 25 caracteres... Nome limitado aos primeiros 25 caracteres: Programacao de Computador Nome do curso 1 eh: Programacao de Computador Nome do curso 2 eh: CompI Entre com a nota 1 Entre com a nota 1 Entre com a nota 1 Entre com a nota 1 Entre com a nota 2 Total das 5 notas eh: 6 Media eh: 1 Entre com a nota 2 Entre com a nota 2 Entre com a nota 2 Entre com a nota 2 Entre com a nota 3 Total das 5 notas eh: 11 Media eh: 2 shell>$

Variáveis Não-inicializadas ou Variáveis não inicializadas Truncadas Contém valores indefinidos Não inicializar contadores e acumuladores pode provocar erros de lógica Divisão de inteiros e truncamento Divisão de inteiros Divisão de dois inteiros leva a resultado truncado Uma fração do quociente resultante é perdida Assumir que a divisão de inteiros arredonda (em lugar de truncar) pode gerar resultados incorretos

Repetição Controlada por Sentinela Também conhecida por repetição indefinida Usar um valor de sentinela Indica o final da entrada de dados Um valor de sentinela não pode ser um valor de entrada válido É também conhecido por valor de sinal, valor fictício ou valor de flag

Repetição Controlada por Sentinela Números de ponto flutuante Um número real com um ponto decimal O C++ fornece os tipos de dados float e double Os números double podem ter maior magnitude e mais detalhes Isso é chamado de precisão Valores de ponto flutuante são tratados como valores double por padrão Ex.: Resultado da divisão de dois inteiros Valores de ponto flutuante em geral são apenas aproximações Calculados com aproximações em série: n = Σ2 -i

Exemplo de Aproximação de Ponto Flutuante

Décimo Exemplo utilizando Classes em C++

Décimo Exemplo utilizando Classes em C++

Décimo Exemplo utilizando Classes em C++ Biblioteca para definir a precisão da saída numérica

Décimo Exemplo utilizando Classes em C++

Décimo Exemplo utilizando Classes em C++ A variável average agora é double O while executa desde que grade não seja igual ao valor de sentinela -1

Décimo Exemplo utilizando Classes em C++ Calcula a nota média usando static_cast<double> para executar uma conversão explícita da variável total. No resultado da divisão prevalece o tipo double

Décimo Exemplo utilizando Classes em C++ Define a precisão do número de ponto flutuante Fixa o número de casas decimais que são impressas

Décimo Exemplo utilizando Classes em C++

Décimo Exemplo utilizando Classes em C++ shell>$ g++ -c gradebook.cpp o gradebook.o shell>$ g++ -c principal.cpp o principal.o shell>$ g++ -o ex10 gradebook.o principal.o shell>$./ex10 Warning: Nome Programacao de Computadores e Sistemas Distribuidos excede o limite maximo de 25 caracteres... Nome limitado aos primeiros 25 caracteres: Programacao de Computador Nome do curso 1 eh: Programacao de Computador Nome do curso 2 eh: CompI Entre com a nota ou -1 para sair: 2 Entre com a nota ou -1 para sair: 1 Entre com a nota ou -1 para sair: 1 Entre com a nota ou -1 para sair: -1 Total das 5 notas eh: 4 Media eh: 1.33 Entre com a nota ou -1 para sair: 2 Entre com a nota ou -1 para sair: 2 Entre com a nota ou -1 para sair: 2 Entre com a nota ou -1 para sair: -1 Total das 5 notas eh: 6 Media eh: 2.00 shell>$

Conversão de Tipos Operador de Coerção Unário Cria uma cópia temporária de seu operando com um tipo de dado diferente Conversão explícita Converte tipos numéricos e tipos de classes relacionados (polimorfismo) Ex.: static_cast< double > ( total ) Cria uma cópia do ponto flutuante temporária de total Promoção Conversão implícita Conversão de um valor (p. ex., int) em outro tipo de dado (p. ex., double) para realizar um cálculo

Formatação de Números de Ponto Flutuante Manipulador de fluxo parametrizado setprecision Especifica o número de dígitos de precisão Junto com o fixed está relacionado com o número de casas decimais A precisão-padrão é de seis dígitos Manipulador de fluxo não parametrizado fixed Indica que os valores de ponto flutuante devem ser enviados para a saída no formato de ponto fixo Em oposição à notação científica (3.1 10 3 ) Manipulador de fluxo showpoint Força a exibição do ponto decimal

Décimo Primeiro Exemplo utilizando Classes em C++

Décimo Primeiro Exemplo utilizando Classes em C++ Função para processar os resultados de um exame de uma turma

Décimo Primeiro Exemplo utilizando Classes em C++

Décimo Primeiro Exemplo Declaração e inicialização das variáveis locais utilizando Classes em C++ Determina se esse aluno foi aprovado ou reprovado e incrementa a variável apropriada

Décimo Primeiro Exemplo utilizando Classes em C++

Décimo Primeiro Exemplo utilizando Classes em C++ shell>$ g++ -c gradebook.cpp o gradebook.o shell>$ g++ -c principal.cpp o principal.o shell>$ g++ -o ex11 gradebook.o principal.o shell>$./ex11 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Entre o resultado (1 = aprovado, 2 = reprovado): 1 Aprovados 10 Reprovados 0 Prova estava mole! shell>$

Operadores de Incremento e Operador de incremento ++ Decremento Incrementa um ao valor da variável Exemplo c++ Operador de decremento -- Decrementa um do valor da variável Exemplo c--

Décimo Primeiro Exemplo utilizando Classes em C++

Décimo Primeiro Exemplo utilizando Classes Operadores em de incremento C++

Sentença de Repetição (for) Apresenta todos os requisitos de uma repetição controlada por contador Declaração e inicialização do contador Expressão de condição de contorno Operador de incremento Pode ser usada no lugar do while inicialização; while (expressão){ bloco; incremento; } for(inicialização; expressão; incremento) { bloco; }

Sentença de Repetição (for) Apresenta todos os requisitos de uma repetição controlada por contador Declaração e inicialização do contador Expressão de condição de contorno Operador de incremento Pode ser usada no lugar do while Ex.: for(int i = 0, j = 0; i + j <= 10; i++, j++) { cout << i << j << endl; }

Sentença de Repetição (for) O corpo do for pode ser inserido na parte de incremento Requer o uso da vírgula int soma = 0; for(int i = 0; i <= 10; i++) { soma = soma + i; }

Sentença de Repetição (for) O corpo do for pode ser inserido na parte de incremento Requer o uso da vírgula int soma = 0; for(int i = 0; i <= 10; i++) { soma = soma + i; } int soma = 0; for(int i = 0; i <= 10; soma += i, i++);

Sentença de Repetição (for) O corpo do for pode ser inserido na parte de incremento Requer o uso da vírgula int soma = 0; for(int i = 0; i <= 10; i++) { soma = soma + i; } int soma = 0; for(int i = 0; i <= 10; soma += i, i++); corpo do for Uso do ponto e vírgula no lugar do corpo

Sentença de Repetição (for) O corpo do for pode ser inserido na parte de incremento Requer o uso da vírgula int soma = 0; for(int i = 0; i <= 10; i++) { soma = soma + i; } int soma = 0; for(int i = 0; i <= 10; soma += i, i++); Esse formato pode prejudicar a legibilidade do código

Décimo Segundo Exemplo utilizando Classes em C++

Décimo Segundo Exemplo utilizando Classes em C++ Função para exibir a progressão de um investimento Função para calcular os juros

Décimo Segundo Exemplo utilizando Classes em C++

Décimo Segundo Exemplo utilizando Classes em C++ Emprego de um construtor

Décimo Segundo Exemplo utilizando Classes em C++ Biblioteca matemática para cálculo dos juros Função para cálculo dos juros, uso da função pow

Décimo Segundo Exemplo utilizando Classes em C++

Décimo Segundo Exemplo utilizando Classes em C++ Define uma largura de 21 caracteres e justifica o texto à direita. Caso o texto tenha mais que 21 caracteres, a coluna é expandida para atender essa largura

Décimo Segundo Exemplo utilizando Classes em C++ Define o formato de saída dos resultados Emprego do for e inicialização da variável contadora ano

Décimo Segundo Exemplo utilizando Classes em C++

Décimo Segundo Exemplo utilizando Classes em C++ shell>$ g++ -c gradebook.cpp o gradebook.o shell>$ g++ -c principal.cpp o principal.o shell>$ g++ -o ex12 gradebook.o principal.o shell>$./ex12 Entre com o interesse: 0.05 Entre com o valor principal: 1000.0 Entre com o numero de anos: 10 A progressao eh: Ano Total 1 1050.00 2 1102.50 3 1157.63 4 1215.51 5 1276.28 6 1340.10 7 1407.10 8 1477.46 9 1551.33 10 1628.89 shell>$

Leitura de Caracteres do Teclado Uso da função cin.get() Função istream::get int get() Função lê um caractere do teclado e retorna o valor lido O valor de retorno pode ser armazenado também em uma variável int cout << O caractere (" << 'a' << ") tem valor " << static_cast< int > ( 'a' ) << endl; O caractere (a) tem valor 97

Décimo Terceiro Exemplo utilizando Classes em C++

Décimo Terceiro Exemplo utilizando Classes em C++ Função para entrada de notas pelo teclado Função para exibir um sumário das notas Contadores para contabilizar os conceitos

Décimo Terceiro Exemplo utilizando Classes em C++

Décimo Terceiro Exemplo utilizando Classes em C++ Inicialização das variáveis no construtor

Décimo Terceiro Exemplo utilizando Classes em C++

Décimo Terceiro Exemplo utilizando Classes em C++ Uso da função cin.get() para leitura de caractere do teclado. O caractere lido é atribuído à variável grade

Décimo Terceiro Exemplo utilizando Classes em C++ Após a inicialização da variável grade, ela é comparada ao EOF. Em sistemas UNIX, o EOF pode ser um Ctrl+d e em WINDOWS, o Ctrl+z

Décimo Terceiro Exemplo utilizando Classes em C++ Entradas podem ser em letras maiúsculas ou minúsculas

Décimo Terceiro Exemplo utilizando Classes em C++ Evita que caracteres diferentes dos permitidos sejam considerados pelo programa. Ex.: ao teclar ENTER um caractere especial é lido do teclado

Décimo Terceiro Exemplo utilizando Classes em C++

Décimo Terceiro Exemplo utilizando Classes em C++

Décimo Terceiro Exemplo shell>$ g++ utilizando -c gradebook.cpp o gradebook.o Classes em C++ shell>$ g++ -c principal.cpp o principal.o shell>$ g++ -o ex13 gradebook.o principal.o shell>$./ex13 Warning: Nome Programacao de Computadores e Sistemas Distribuidos excede o limite maximo de 25 caracteres... Nome limitado aos primeiros 25 caracteres: Programacao de Computador Nome do curso 1 eh: Programacao de Computador Nome do curso 2 eh: CompI Entre com o conceito. Entre com o caractere EOF para finalizar. a a a b b c ^Z Numero de alunos que receberam cada um dos conceitos: A: 3 B: 2 C: 1 shell>$

Operadores Lógicos And (&&), Or ( ), Not (!) Manipulador de fluxo boolalpha Exibe o valor de cada expressão booleana true ao invés de 1 false ao invés de 0

Uso do manipulador de fluxo boolalpha

shell>$ g++ gradebook.cpp o ex14 shell>$./ex14 Logico AND (&&) falso && falso: false falso && verdadeiro: false verdadeiro && falso: false verdadeiro && verdadeiro: true Logico OR ( ) falso falso: false falso verdadeiro: true verdadeiro falso: true verdadeiro verdadeiro: true Logico NOT (!)!falso: true!verdadeiro: false shell>$

Exemplo 1: Cadastro Escreva uma agenda em C++ para armazenar em memória três cadastros contendo nome, telefone e endereço. Cada um dos cadastros deve ser um objeto da classe Cadastro. A classe Cadastro ainda deve oferecer uma função para exibição dos dados de cada cadastro.?

Exemplo 1: Cadastro

Exemplo 1: Cadastro

Exemplo 1: Cadastro

Exemplo 1: Cadastro

Exemplo 2: Agenda Escreva uma agenda em C++ para armazenar em memória três cadastros contendo nome, telefone e endereço. Uma classe Agenda deve ser criada e nela três cadastros devem ser inseridos. Cada cadastro é um objeto da classe Cadastro.?

Exemplo 2: Agenda

Exemplo 2: Agenda

Exemplo 2: Agenda

Exemplo 2: Agenda

Exemplo 2: Agenda

Exemplo 2: Agenda

Exemplo 2: Agenda

Exemplo 2: Agenda Arquivo Makefile

Leitura Recomendada Capítulos 4 e 5 do livro Deitel, C++ How to Program, 5th edition, Editora Prentice Hall, 2005