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++
Parte III Introdução à Programação em C++ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista 2

3 Relembrando da Última Aula...
Classificação das linguagens de alto nível Linguagens podem ser imperativas As imperativas podem ser estruturadas ou não As estruturadas podem ser: Procedurais ou Orientadas a objetos Noções básicas de linguagens de alto nível utilizando a abordagem procedural Lua Perl Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

4 Linguagem de Programação C++
Linguagem Imperativa, estruturada e orientada a objetos Oferece: Reuso Modularidade Rapidez de desenvolvimento Correção de código Facilidade de compreensão e modificação Baixo custo de desenvolvimento Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

5 Linguagem de Programação C++
Estruturada Classes e funções C++ standard library Coleção de classes e funções existentes Abordagem de construção de blocos de programação para criar novos programas Possível com a característica de modularidade e reuso Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

6 Linguagem de Programação C++
Simplificação de projetos Possibilita enfoque estruturado para o desenvolvimento de programas para computadores Programas em C++ processam informações e exibem resultados C++ permite apenas tradução Compilador: g++ (Programas *.cpp ou *.cc) Compila o código g++ <arq-codigo> -o <arq-compilado> -Wall É possível usar o gcc? Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

7 Linguagem de Programação C++
Primeiros programas em C++ Exibição de mensagens Obtenção de informações do usuário Execução de cálculos aritméticos Tomada de decisões Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

8 Linguagem de Programação C++
Primeiros programas em C++ Exibição de mensagens Obtenção de informações do usuário Execução de cálculos aritméticos Tomada de decisões Como ficariam esses programas em C++? Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

9 Primeiro Exemplo em C++
Programa simples: Imprime uma linha do texto Ilustra vários recursos importantes da linguagem C++ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

10 Primeiro Exemplo em C++
Programa: HelloWorld.cpp // Primeiro exemplo em C++ // Autor: Miguel Campista #include <iostream> int main () { std::cout << “Hello, world!”; return 0; } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

11 Primeiro Exemplo em C++
Programa: HelloWorld.cpp // Primeiro exemplo em C++ // Autor: Miguel Campista #include <iostream> int main () { std::cout << “Hello, world!”; return 0; } Diretiva do pré-processador para incluir o arquivo de cabeçalho de fluxo de entrada e saída Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

12 Primeiro Exemplo em C++
Programa: HelloWorld.cpp // Primeiro exemplo em C++ // Autor: Miguel Campista #include <iostream> int main () { std::cout << “Hello, world!”; return 0; } Operador de inserção de fluxo Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

13 Primeiro Exemplo em C++
Programa: HelloWorld.cpp // Primeiro exemplo em C++ // Autor: Miguel Campista #include <iostream> int main () { std::cout << “Hello, world!”; return 0; } O ”std::” é necessário sempre que se usa uma função definida por uma diretiva de pré-processador. No caso, o “#include<iostream>” Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

14 Primeiro Exemplo em C++
Programa: HelloWorld.cpp Compilação: g++ HelloWorld.cpp –o hello // Primeiro exemplo em C++ // Autor: Miguel Campista #include <iostream> int main () { std::cout << “Hello, world!”; return 0; } shell>$ g++ HelloWorld.cpp –o hello shell>$ ./hello Hello, world! shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

15 Diretivas de Pré-processador
São processadas pelo pré-processador antes da compilação Começam com # Ex.: #include <iostream> Instrui o pré-processador a incluir o arquivo de cabeçalho de fluxo de entrada/saída <iostream> Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

16 Comentários Explicam os programas a outros programadores
Melhoram a leitura do programa São ignorados pelo compilador Comentário de uma única linha Inicia-se com // Ex.: //Impressão de texto Comentário de múltiplas linhas Inicia com /* e termina com */ Ex.: /*Impressão de texto*/ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

17 Comentários Comentário /* * Primeiro exemplo em C++
* Autor: Miguel Campista */ #include <iostream> int main () { std::cout << “Hello, world!”; // Imprime na tela return 0; } Comentário Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

18 Espaços em Branco Linhas em branco e caracteres de espaço em branco e de tabulação São usados para tornar os programas mais fáceis de ler São ignorados pelo compilador Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

19 Uso de IDENTAÇÃO e COMENTÁRIOS tornam o código mais legível!!!
Espaços em Branco Linhas em branco e caracteres de espaço em branco e de tabulação São usados para tornar os programas mais fáceis de ler São ignorados pelo compilador Uso de IDENTAÇÃO e COMENTÁRIOS tornam o código mais legível!!! Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

20 Recomendações Programas devem começar com comentário
Descrição do propósito do programa, do autor, da data e da hora Programas devem incluir todos os arquivos de cabeçalho necessários Ausência do <iostream> em um programa que realiza I/O faz com que o compilador emita mensagem de erro Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

21 Função main É a primeira função a ser executada
Mesmo que não seja a primeira encontrada no código Existe em todo programa C++ Todo programa deve possuir precisamente uma função main Deve “retornar” um valor Dependendo do valor retornado, o programa pode conter erro ou não Exemplo int main() Essa função main retorna um número inteiro Corpo delimitado por chaves ({}) Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

22 Namespace std O uso do “std::”
Especifica que se deve usar um nome que pertence ao “namespace” std Pode ser removido por meio de instruções using Objeto de fluxo de saída padrão (standard output stream object) do namespace std std::cout Está “conectado” à tela É definido no arquivo de cabeçalho de fluxo de entrada/saída <iostream> Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

23 Operador de inserção de fluxo <<
O valor à direita (operando da direita) é inserido no operando da esquerda. Ex.: std::cout << "Hello"; Insere a string "Hello" na saída-padrão Exibe na tela Caracteres de escape Caractere precedido por "\" Indica uma saída de caractere “especial” Ex.: "\n" O cursor se move para o início da linha seguinte na tela Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

24 Erros de Sintaxe A sintaxe especifica as regras para a criação dos programas Erros ocorrem quando o compilador encontra violações de sintaxe Nesse caso, o compilador emite uma mensagem de erro Ex.: Omissão do “;” no fim de uma sentença em C++ Mas, diretivas de pré-processador não terminam em “;”! Os erros de sintaxe são também chamados de… Erros de compilador, erros em tempo de compilação ou erros de compilação Recebem esses nomes pois são detectados na compilação Enquanto todos os erros de sintaxe não forem corrigidos o programa não pode ser executado Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

25 Intrução return Uma das várias formas de sair de uma função
Quando usada no fim da função main O valor 0 indica que o programa terminou com sucesso Ex.: return 0; Caso o código faça tratamento de erro Valores diferentes de 0 podem ser retornados Ex.: se arquivo não abriu return -1; fim do se Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

26 Caracteres Especiais Caractere Significado \n
Nova linha. Posiciona o cursor de tela para o início da próxima linha \t Tabulação horizontal. Move o cursor de tela para a próxima parada de tabulação \r Retorno do cursor. Posiciona o cursor da tela no início da linha atual sem avançar para a próxima linha \a Alerta. Aciona o aviso sonoro do sistema \\ Barras invertidas. Utilizadas para imprimir um caractere de barra invertida \’ Aspas simples. Utilizadas para imprimir um único caractere de aspas simples \” Aspas duplas. Utilizadas para imprimir um caractere de aspas duplas Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

27 Segundo Exemplo em C++ Uso de Variáveis
Local na memória em que pode ser armazenado um valor Tipos de dados comuns int – números inteiros char – caracteres double – números de ponto flutuante Declare as variáveis com um nome e um tipo de dado antes de usar int integer1; int integer2; int sum; Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

28 Segundo Exemplo em C++ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

29 Declaração de variáveis inteiras
Segundo Exemplo em C++ Declaração de variáveis inteiras Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

30 Operador de extração de fluxo para obter entrada do teclado
Segundo Exemplo em C++ Operador de extração de fluxo para obter entrada do teclado Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

31 Segundo Exemplo em C++ O manipulador de fluxo “std::endl” gera uma nova linha e, em seguida, esvazia o buffer de saída Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

32 Segundo Exemplo em C++ Operações de inserção de fluxo por concatenação, encadeamento ou em cadeia Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

33 Segundo Exemplo em C++ shell>$ g++ ex2.cpp –o ex2 shell>$ ./ex2
Entre com o primeiro inteiro: 1 Entre com o primeiro inteiro: 2 A soma eh: 3 shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

34 Variáveis Diversas variáveis do mesmo tipo podem ser declaradas em uma mesma sentença Lista separada por vírgula int integer1, integer2, sum; Nome de variáveis Deve ser composto por identificadores válidos Série de caracteres Letras, dígitos, sublinhados Não pode iniciar com dígito Faz distinção entre letras maiúsculas e minúsculas Case sensitive Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

35 Variáveis Recomendações
Inserção de espaço após as vírgulas torna os programas mais legíveis Declaração de uma variável por linha permite inserção de comentários descritivos Algumas implementações do C++ impõem restrições ao comprimento máximo dos identificadores Utilize identificadores até 31 caracteres para facilitar portabilidade de código Abreviações dos identificadores podem diminuir a legibilidade do programa Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

36 Variáveis Recomendações
Identificadores que iniciem com sublinhados e sublinhados duplos devem ser evitados Compiladores C++ podem utilizar nomes semelhantes para propósitos internos Palavras “intencionadas” como “object” devem ser evitadas Ainda que “object” não seja uma palavra-chave em C++, pode vir a se tornar Emprego de linhas em branco entre uma declaração e sentenças adjacentes devem ser usadas Aumenta o destaque das declarações e torna o programa mais legível Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

37 Objeto de Fluxo de Entrada
std::cin do namespace std Em geral está conectado ao teclado Operador de extração de fluxo “>>” Espera o usuário inserir um valor e pressionar a tecla Enter (Return) Armazena o valor na variável à direita do operador Converte o valor no tipo de dado da variável Ex.: std::cin >> numero1; Lê um inteiro digitado no teclado Armazena o inteiro na variável numero1 Programas devem validar a correção dos valores de entrada Informações errôneas não devem afetar os cálculos de um programa Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

38 Operador de Atribuição =
Atribui o valor da variável da direita à variável da esquerda Operador binário (dois operandos) Ex.: soma = numero1 + numero2; Acrescenta os valores numero1 e numero2 Armazena o resultado em soma O uso de espaços em ambos os lados de um operador binário destaca o operador Isso torna o programa mais legível Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

39 Manipulador de Fluxo “std::endl”
Gera um nova linha Esvazia o buffer de saída Alguns sistemas armazenam dados de saída até que um determinado limiar seja atingido O std::endl força os dados de saída armazenados a serem exibidos no momento de sua chamada Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

40 Operações de Inserção de Fluxo Concatenadas
Múltiplas operações de inserção de fluxo em uma única sentença A operação de inserção de fluxo sabe como gerar cada tipo de dado. Ex.: std::cout << “A soma eh: " << numero1 + numero2 << std::endl; Gera “A Soma eh: " Em seguida, gera a soma de numero1 e numero2 Posteriormente, gera uma nova linha e esvazia o buffer de saída Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

41 Organização das Variáveis na Memória
Nomes das variáveis Correspondem ao local real na memória do computador Cada variável tem um nome, tipo, tamanho e valor Quando um novo valor é inserido na variável, esse valor sobrescreve o anterior Gravar na memória é destrutível Ler variáveis da memória não é destrutível Ex.: soma = numero1 + numero2; O valor de soma é sobrescrito Os valores de numero1 e numero2 permanecem intactos Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

42 Organização das Variáveis na Memória
Pilha de execução Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

43 Organização das Variáveis na Memória
Declaração das variáveis soma numero2 numero1 Pilha de execução Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

44 Organização das Variáveis na Memória
Realização da operação soma 32 numero2 12 numero1 20 Pilha de execução Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

45 Operadores Aritméticos
+,-, *, /, % Divisão (/) A divisão de um inteiro trunca o restante 7 / 5 retorna o valor 1 Módulo da divisão (%) O operador módulo retorna o resto da divisão 7 % 5 retorna o valor 2 O operador módulo só pode ser usado com operandos inteiros Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

46 Operadores Aritméticos
Operação em C++ Operador Aritmético em C++ Expressão Algébrica Expressão em C++ Adição + a+b a + b Subtração - a-b a – b Multiplicação * ab ou a.b a * b Divisão / a/b ou a÷b a / b Módulo % a mod b a % b Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

47 Precedência de Operadores Aritméticos
Algumas linguagens de programação utilizam os operadores “**” ou “^” para representar a exponenciação C++ não suporta esses operadores de exponenciação Ao invés disso, ele utiliza funções matemáticas Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

48 Precedência de Operadores Aritméticos
Operação(ções) Ordem de avaliação Expressão em C++ ( ) Parênteses Avaliados primeiro. Se os parênteses estão aninhados, a expressão no par mais interno é avaliada primeiro. Se houver vários pares de parênteses no mesmo nível, eles são avaliados da esquerda para direita * / % Multiplicação, Divisão e Módulo Avaliados em segundo lugar. Se houver vários, eles são avaliados da esquerda para direita + - Adição e Subtração Avaliados por último. Se houver vários, eles são avaliados da esquerda para direita Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

49 Estruturas de Controle em C++
Condição A expressão pode ser tanto true quanto false Pode ser formada usando operadores de igualdade ou relacionais Estrutura: if Se a condição for true, o corpo do bloco if será executado Caso contrário, não if (condição) { corpo; } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

50 Estruturas de Controle em C++
Chaveamento Uma variável é comparada com diferentes casos Substitui estruturas do tipo if aninhados Estrutura: switch-case Se a variável corresponder a um dos casos, o corpo do caso será executado, inserção do break Caso contrário, o caso default é executado switch (variável) { case 1: corpo; break; case 2: default: } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

51 Estruturas de Controle em C++
Laço Enquanto a expressão for verdadeira o bloco é executado Estrutura: while, for, do-while Se a condição for true, o corpo do bloco while, for, do-while será executado Caso contrário, sai do bloco do { corpo; } while (condição); while (condição) { corpo; } for (condição-inicial; condição-contorno; incremento) { corpo; } Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

52 Operadores de Igualdade ou Relacionais
Operador algébrico de igualdade ou relacional Operadores relacionais > < >= <= Operadores de igualdade = == != Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

53 Operadores de Igualdade ou Relacionais
Erros comuns Operadores como ==, !=, <=, >= não podem ter espaços em branco entre eles Inversão do par de símbolos =!, =<, => representa erro de sintaxe Alternância entre o símbolo de igualdade (==) com o símbolo de atribuição (=) causa problemas no código Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

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

55 Terceiro Exemplo em C++
Uso do namespace std dispensa o prefixo std Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

56 Terceiro Exemplo em C++
Entrada de dois inteiros em apenas uma sentença Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

57 Terceiro Exemplo em C++
Uso da estrutura do-while Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

58 Terceiro Exemplo em C++
shell>$ g++ ex3.cpp –o ex3 shell>$ ./ex3 Entre com os dois numeros inteiros positivos: 1 2 1 != 2 Soma eh: 3 shell>$ Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

59 Funções em C++ Declaração de funções
Exige tipo da variável de retorno e dos parâmetros de entrada Deve ser sempre incluída antes da função main Declaradas antes ou apenas os seus protótipos Inseridas em arquivos de protótipos ou bibliotecas tipo nome-da-funcao (tipo arg1, tipo arg2, ..., tipo argn) Corpo da função end Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista 59

60 Exemplo 1: Fatorial Escreva um programa em C++ para calcular o número fatorial de um inteiro passado pelo usuário ? Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

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

62 Exemplo 1: Fatorial com fatorial.h
Arquivo principal Arquivo: fatorial.h Arquivo: fatorial.cpp Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

63 Exemplo 2: Inserção em Lista Encadeada
Escreva um programa em C++ para inserir elementos no início de uma lista encadeada ? Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

64 Exemplo 2: Inserção em Lista Encadeada
Arquivo principal Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

65 Exemplo 2: Inserção em Lista Encadeada
Arquivo: lista-encad.h Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

66 Arquivo: lista-encad.cpp
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista

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


Carregar ppt "Linguagens de Programação"

Apresentações semelhantes


Anúncios Google