A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagens de Programação

Apresentações semelhantes


Apresentação em tema: "Linguagens de Programação"— Transcrição da apresentação:

1 Linguagens de Programação
Prof. Miguel Elias Mitre Campista Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

2 Introdução à Programação em C++ (Continuação)
Parte III Introdução à Programação em C++ (Continuação) Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista 2

3 Relembrando da Última Aula...
Definição de classes e objetos Primeiros exemplos de programação orientada a objetos Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

4 Repetição Controlada por Contador
Variável contadora 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

5 Nono Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

6 Nono Exemplo utilizando Classes em C++
Função que utiliza variável contadora e acumuladora Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

7 Nono Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

8 Nono Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

9 Nono Exemplo utilizando Classes em C++
Declaração das variáveis contadora e acumuladora Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

10 Nono Exemplo utilizando Classes em C++
Inicialização das variáveis Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

11 Nono Exemplo utilizando Classes em C++
Executa o laço de repetição 5 vezes Acumula e incrementa as variáveis respectivas Calcula a média ao final do laço de repetição Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

12 Nono Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

13 Nono Exemplo utilizando Classes em C++
shell>$ g++ -c gradebook.cpp –o gradebook.o shell>$ g++ -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 2 Total das 5 notas eh: 6 Media eh: 1 Entre com a nota 3 Total das 5 notas eh: 11 Media eh: 2 shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

14 Variáveis Não-inicializadas ou Truncadas
Variáveis não inicializáveis 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

15 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

16 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.: Surgidos da divisão de dois inteiros Valores de ponto flutuante em geral são apenas aproximações Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

17 Décimo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

18 Décimo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

19 Décimo Exemplo utilizando Classes em C++
Biblioteca para definir a precisão da saída numérica Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

20 Décimo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

21 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

22 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

23 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

24 Décimo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

25 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 Total das 5 notas eh: 4 Media eh: 1.33 Total das 5 notas eh: 6 Media eh: 2.00 shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

26 Conversão de Tipos Operador de Coerção Unário Promoção
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 de um valor (p. ex., int) em outro tipo de dado (p. ex., double) para realizar um cálculo Conversão implícita Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

27 Formatação de Números de Ponto Flutuante
Manipulador de fluxo parametrizado setprecision Especifica o número de dígitos de precisão para exibir à direita do ponto decimal 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 × 103) Manipulador de fluxo showpoint Força a exibição do ponto decimal Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

28 Décimo Primeiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

29 Décimo Primeiro Exemplo utilizando Classes em C++
Função para processar os resultados de um exame de uma turma Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

30 Décimo Primeiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

31 Décimo Primeiro Exemplo utilizando Classes em C++
Declaração e inicialização das variáveis locais Determina se esse aluno foi aprovado ou reprovado e incrementa a variável apropriada Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

32 Décimo Primeiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

33 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 Aprovados 10 Reprovados 0 Prova estava mole! shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

34 Operadores de Incremento e Decremento
Operador de incremento ++ Incrementa um ao valor da variável Exemplo c++ Operador de decremento -- Decrementa um do valor da variável c-- Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

35 Décimo Primeiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

36 Décimo Primeiro Exemplo utilizando Classes em C++
Operadores de incremento Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

37 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; } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

38 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; } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

39 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; } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

40 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++); Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

41 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++); Uso do ponto e vírgula no lugar do corpo corpo do for Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

42 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

43 Décimo Segundo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

44 Décimo Segundo Exemplo utilizando Classes em C++
Função para exibir a progressão de um investimento Função para calcular os juros Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

45 Décimo Segundo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

46 Décimo Segundo Exemplo utilizando Classes em C++
Emprego de um construtor Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

47 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

48 Décimo Segundo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

49 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

50 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

51 Décimo Segundo Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

52 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: Entre com o numero de anos: 10 A progressao eh: Ano Total shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

53 Leitura de Caracteres do Teclado
Uso da função cin.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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

54 Décimo Terceiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

55 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

56 Décimo Terceiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

57 Décimo Terceiro Exemplo utilizando Classes em C++
Inicialização das variáveis no construtor Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

58 Décimo Terceiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

59 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

60 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

61 Décimo Terceiro Exemplo utilizando Classes em C++
Entradas podem ser em letras maiúsculas ou minúsculas Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

62 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

63 Décimo Terceiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

64 Décimo Terceiro Exemplo utilizando Classes em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

65 Décimo Terceiro Exemplo utilizando Classes em C++
shell>$ g++ -c gradebook.cpp –o gradebook.o 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 b c ^Z Numero de alunos que receberam cada um dos conceitos: A: 3 B: 2 C: 1 shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

66 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 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

67 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

68 Uso do manipulador de fluxo boolalpha
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

69 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>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

70 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. ? Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

71 Exemplo 1: Cadastro Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

72 Exemplo 1: Cadastro Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

73 Exemplo 1: Cadastro Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

74 Exemplo 1: Cadastro Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

75 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. ? Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

76 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

77 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

78 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

79 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

80 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

81 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

82 Exemplo 2: Agenda Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

83 Exemplo 2: Agenda Arquivo Makefile
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

84 Leitura Recomendada Capítulos 4 e 5 do livro
Deitel, “C++ How to Program”, 5th edition, Editora Prentice Hall, 2005 Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista 84


Carregar ppt "Linguagens de Programação"

Apresentações semelhantes


Anúncios Google