• Nenhum resultado encontrado

1.2 Biblioteca Padrão do C++ C++ evoluiu do C C evoluiu de outras duas linguagens de programação, BCPL e B

N/A
N/A
Protected

Academic year: 2021

Share "1.2 Biblioteca Padrão do C++ C++ evoluiu do C C evoluiu de outras duas linguagens de programação, BCPL e B"

Copied!
6
0
0

Texto

(1)

1

Capítulo 1 – Introdução a Computadores

e Programação C++

Índice

1.1 História do C e C++ 1.2 Biblioteca Padrão do C++ 1.3 Java

1.4 Outras Linguagens Alto Nível 1.5 Programação Estruturada

1.6 A Tendência Chave de Software: Tecnologia de Objetos 1.7 O Básico de um Típico Ambiente C++

1.8 Tendências de Hardware

1.9 História da Internet 1.10 História do WWW (World Wide Web)

1.11 Notas Gerais Sobre C++ 1.12 Introdução a Programação C++

1.13 Um Programa Simples: Imprimindo uma Linha de Texto 1.14 Outro Programa Simples: Adicionando Dois Inteiros 1.15 Conceitos de Memória

2

Capítulo 1 – Introdução a Computadores

e Programação C++

Outline 1.16 Aritmética

1.17 Tomada de Decisão: Operadores de Igualdade e Relacionais 1.18 Pensando Sobre Objetos: Introdução a Tecnologia de Objetos e UML (Unified Modeling Language)

3

1.1 História do C e C++

• C++ evoluiu do C

– C evoluiu de outras duas linguagens de programação, BCPL e B

• ANSI C

– Estabeleceu padrões para programação C mundialmente

• C++ “melhora” o C

– Fornece recursos para programação orientada a objetos • Objetos são componentes de software reusáveis que modelam

“coisas” do mundo real

• Programas orientados a objetos são fáceis de entender, corrigir e modificar

4

1.2 Biblioteca Padrão do C++

• Programas C++

– Construídos a partir de peças chamadas classes e funções

• Biblioteca padrão do C++ (C++ standard library)

– Fornece uma rica coleção de classes e funções existentes para todos programadores usar

5

1.3 Java

• Java é usado para

– Criar páginas web com conteúdo interativo e dinâmico – Desenvolver aplicações empresariais em larga escala – Melhorar a funcionalidade de servidores web – Fornecer aplicações para dispositivos de consumo como

celulares, pagers e assistentes digitais (palms)

• Java How To Program

– Livro que acompanhou o desenvolvimento do Java pela Sun – Ensina alunos o essencial sobre gráficos, imagens, animação,

áudio, vídeo, base de dados, redes, multithreading e computação colaborativa

6

1.4 Outras Linguagens Alto Nível

• Outras linguagens alto nível

– FORTRAN

• Usada em aplicações científicas e de engenharia – COBOL

• Usada para manipular grandes volumes de dados – Pascal

(2)

7

1.5 Programação Estruturada

• Programação estruturada

– Abordagem disciplinada para escrever programas – Código claro, fácil de testar e depurar, e fácil de modificar

• Multitasking

– Várias atividades rodam em paralelo

8

1.6 A Tendência Chave de Software: Tecnologia

de Objetos

• Objetos

– Componentes de software reusáveis que modelam itens do mundo real

– Unidades de software com significado

• Objetos de dado, objetos de tempo, objetos de pagamento, objetos de contabilidade, objetos de áudio, objetos de vídeo, objetos de arquivo, objetos de registro, etc.

• Qualquer nome pode ser representado como um objeto – Mais entendíveis, melhor organizados e mais fáceis de

manter do que programação procedimental – Favorece a modularidade

9

1.7 O Básico de um Típico Ambiente C++

Fases de programas C++:

• Edição

• Pré-processamento

• Compilação

• Link

• Carga

• Execução

Carregador Memória Primária O programa é criado em um editor e armazenado no disco. O Pré-processador processa o código. Carregador coloca o programa na memória.

A CPU lê cada instrução e a executa, possivelmente armazenando novos valores à medida que o programa avança. Compilador O Compilador cria códigoobjeto e o armazena no

disco. O Linker liga o código objeto com as bibliotecas, cria um arquivo executável e o armazena no disco. Editor Pré-processador Linker CPU Memória Primária . . . . . . . . . . . . Disco Disco Disco Disco Disco 10

1.8 Tendências de Hardware

• A cada ano ou dois, computadores aproximadamente

dobram

– A quantidade de memória que contém • Memória é usada para executar programas

– A quantidade de armazenamento secundário que contém • Armazenamento secundário (como armazenamento em disco) é

usado para guardar programas e dados ao longo do tempo – A velocidade de seu processador

• A velocidade com que computadores executam seus programas

11

1.9 História da Internet

• A Internet permite

– Comunicação rápida e fácil via e-mail – Conexão internacional de computadores em rede

• Computação de pacotes

– Transfere dados digitais via pequenos pacotes – Permite múltiplos usuária a mandar e receber dados

simultaneamente

• Não há controle centralizado

– Se uma parte da Internet falhar, as demais partes podem continuar operando

• Largura de banda

12

1.10 História do WWW (World Wide Web)

• World Wide Web

– Permite usuários a localizar e ver documentos multimídia sobre praticamente qualquer tema

– Torna informações acessíveis de maneira instantânea e conveniente mundialmente

– Torna possível que indivíduos e pequenos negócios tenham divulgação mundial

(3)

13

1.11 Notas Gerais Sobre C++

• Curso voltado para programadores iniciantes

• Clareza de programação é destacada

• C e C++ são linguagens portáveis

– Programas escritos em C e C++ podem rodar em vários computadores diferentes

14

1.12 Introdução a Programação C++

• Linguagem C++

– Facilita uma abordagem disciplinada e estruturada para projeto de programas de computador

• Em seguida estão vários exemplos

– Os exemplos ilustram várias características importantes do C++

– Cada exemplo é analisado um comando por vez

Índice 15 1. Comentários 2. Carrega <iostream> 3. main 3.1 Imprime “Bem-vindo ao C++\n" 3.2 sai (return 0) Saída do Programa 1 // Fig. 1.2: fig01_02.cpp 2 // Um primeiro programa em C++ 3 #include <iostream> 4 5 int main() 6 { 7 std::cout << “Bem-vindo ao C++!\n"; 8

9 return 0; // indica que o programa terminou corretamente 10}

Bem-vindo ao C++!

Diretiva do pré-processador

Mensagem ao pré-processador do C++. Linhas começando com # são diretivas do pré-processador.

#include <iostream> diz ao pré-processador

para incluir o conteúdo do arquivo <iostream>, que inclui operações de entrada/saída, como impressão de texto na tela..

Comentários

Escritos entre /* e */ ou antecedidos de //. Melhoram a leitura do programa e não causam qualquer ação do computador.

Programas C++ contém uma ou mais funções, uma delas devendo ser a função main

Parênteses são usados para indicar uma função.

int significa que main “retorna" um valor inteiro.

Mais detalhes no Capítulo 3. Um abre chave { começa o corpo de toda função e um fecha chave } termina. Imprime a string de caracteres contida entre as aspas. Toda a linha, incluindo std::cout, o operador <<, a string “Bem-vindo ao C++!\n" e o

ponto-e-vírgual (;), é chamada de um statement, ou comando.

Todos os comando devem terminar com um ponto-e-vírgula.

return é um modo de sair de uma

função.

return 0, neste caso, significa que

o programa terminou normalmente.

16

1.13 Um Programa Simples:

Imprimindo uma Linha de Texto

• std::cout

– Objeto padrão de saída de fluxo de dados (Standard output stream object)

– “Conectado” com a tela

– std:: especifica um "namespace" o qual cout pertence • std:: pode ser removido através do uso do comando using

• <<

– Operador de inserção de fluxo (stream)

– O valor à direita do operador (operando direito) é inserido no stream de saída (que é conectado à tela)

– std::cout << “Welcome to C++!\n”;

• \

– Caractere de fuga (Escape character) – Indica um caractere “especial”

17

1.13 Um Programa Simples:

Imprimindo uma Linha de Texto

• Existem múltiplas formas de imprimir um texto

– Em seguida, mais exemplos Seq:uência de Fuga Descrição

\n Quebra de linha. Posiciona o cursor da tela para o

começo da próxima linha.

\t Tabulação horizontal. Move o cursor da tela para o

próximo tabular.

\r Retorno. Posiciona o cursor da tela para o começo

da linha atual, sem avançar para a próxima linha.

\a Alerta. Dispara o sinal sonoro do sistema.

\\ Barra invertida. Usado para imprimir a barra invertida

\" Aspas duplas. Usado para imprimir o caractere aspas character. Índice 18 1. Carrega<iostream> 2. main 2.1 Imprime “Bem-vindo" 2.2 Imprime “ao C++!" 2.3 newline 2.4 sai (return 0) Saída do Programa Bem-vindo ao C++! 1 // Fig. 1.4: fig01_04.cpp

2 // Imprimindo uma linha com múltiplos statements 3 #include <iostream> 4 5 int main() 6 { 7 std::cout << “Bem-vindo "; 8 std::cout << “ao C++!\n"; 9

10 return 0; // indica que o programa terminou com sucesso 11}

Se o caractere de nova linha '\n' não for especificado, o texto continua na mesma linha.

(4)

Índice 19 1. Carrega<iostream> 2. main 2.1 Imprime “Bem-vindo" 2.2 newline 2.3 Imprime “ao" 2.4 newline 2.5 newline 2.6 Imprime "C++!" 2.7 newline 2.8 sai (return 0) Saída do Programa 1 // Fig. 1.5: fig01_05.cpp

2 // Imprimindo múltiplas linhas com um único statement 3 #include <iostream> 4 5 int main() 6 { 7 std::cout << “Bem-vindo\nao\n\nC++!\n"; 8

9 return 0; // indica que o programa terminou com sucesso 10}

Bem-vindo ao C++!

Múltiplas linhas podem ser imprimidas com um único comando.

20

1.14 Outro Programa Simples:

Adicionando Dois Inteiros

• Variáveis

– Local na memória onde um valor pode ser armazenado para ser utilizado pelo programa

– Deve ser declarado com um nome e tipo de dado antes de ser utilizado

– Alguns tipos de dados mais comuns são: • int – números inteiros

• char – caracteres

• double – números com ponto flutuante – Exemplo: int myvariable;

• Declara uma variável chamada myvariable de tipo int – Exemplo: int variable1, variable2;

• Declara duas variáveis, cada uma de tipo int

21

1.14 Outro Programa Simples:

Adicionando Dois Inteiros

• >> (operador de extração de stream)

– Quando usado com std::cin, espera o usuário entrar com um valor e o armazena na variável à direita do operador – O usuário digita um valor e pressiona a tecla Enter (ou

Return) para enviar o dado ao computador – Exemplo:

int myVariable; std::cin >> myVariable;

• Espera a entrada de dados do usuário e armazena o valor em

myVariable

• = (operador de atribuição)

– Atribui um valor a uma variável – Operador binário (possui dois operandos) – Exemplo:

sum = variable1 + variable2;

Índice 22 • Carrega <iostream> 2. main 2.1 Inicializa variáveis integer1, integer2, e sum 2.2 Imprime “Entre com o primeiro inteiro" 2.2.1 Lê entrada 2.3 Imprime "Entre com o segundo inteiro" 2.3.1 Lê entrada 2.4 Adiciona variáveis e coloca o resultado em sum

2.5 Imprime “A soma é " 2.5.1 Imprime sum 2.6 sai (return 0) Saída do Programa 1 // Fig. 1.6: fig01_06.cpp 2 // Programa adição 3 #include <iostream> 4 5 int main() 6 {

7 int integer1, integer2, sum; // declaração 8

9 std::cout << “Entre com o primeiro inteiro\n"; // prompt 10 std::cin >> integer1; // lê um inteiro 11 std::cout << “Entre com o segundo inteiro\n"; // prompt 12 std::cin >> integer2; // lê um inteiro 13 sum = integer1 + integer2; // atribuição da soma 14 std::cout << “A soma e’ " << sum << std::endl; // imprime a soma 15

16 return 0; // indica que o programa terminou com sucesso 17}

Entre com o primeiro inteiro 45

Entre com o segundo inteiro 72

A soma e’ 117

Note como std::cin é usado para capturar a entrada do usuário.

Variáveis podem ser enviadas à saída usando

std::cout << variableName.

std::endl descarrega o buffer e

imprime uma quebra de linha.

23

1.15 Conceitos de Memória

• Nomes de Variáveis

– Correspondem a locais na memória do computador – Toda variável tem um nome, um tipo, um tamanho e um

valor

– Sempre que um novo valor é colocado em uma variável, ele substitui o valor anterior, ou seja, o valor anterior é destruído – Ler variáveis da memória não altera o seus valores

• Uma representação visual

integer1 45

24

1.16 Aritmética

• Cálculos Aritméticos

– Use * para multiplicação e / para divisão – Divisão inteira trunca o resto

• 7 / 5 resulta em 1

– O operador Módulo retorna o resto • 7 % 5 resulta em 2

• Precedência de Operadores

– Alguns operadores aritméticos agem antes de outros (isto é, multiplicação antes da adição)

• Certifique-se de usar parênteses quando necessário – Exemplo: Ache a média de três variáveis a, b e c

(5)

25

1.16 Aritmética

• Operadores Aritméticos:

• Regras de precedência de operadores:

Operação C++ Operador

aritmético Expressãoalgébrica Expressão C++

Adição + f + 7 f + 7

Subtração - p – c p - c

Multiplicação * bm b * m

Divisão / x / y x / y

Módulo % r mod s r % s

Operador(es) Operação(ões) Ordem de avaliação(precedência)

() Parênteses Avaliado primeiro. Se os parênteses estão aninhados, a

expressão no par mais interno é avaliada primeiro. Se existem vários pares de parênteses “no mesmo nível”, estes são avaliados da esquerda para direita.

*, /, or % Multiplicação Divisão Módulo

Avaliado em segundo. Se existem vários, estes são avaliados da esquerda para direita.

+ or - Adição

Subtração Avaliado por último. Se existem vários, estes sãoavaliados da esquerda pra direita.

26

1.17 Tomada de Decisão: Operadores de

Igualdade e Relacionais

• Estrutura if

– Testa condições de verdade ou falsidade. Se a condição é satisfeita, há execução, caso contrário a execução é ignorada

• Operadores de igualdade e relacionais

– Menor precedência que operadores aritméticos

• Tabela de operadores relacionais em seguida

27

1.17 Tomada de Decisão: Operadores de

Igualdade e Relacionais

28

1.17 Tomada de Decisão: Operadores de

Igualdade e Relacionais

• Comandos using

– Elimina a necessidade de usar o prefixo std:: – Permite escrever cout diretamente em vez de std::cout – Para usar estas funções sem o prefixo std::, escrevas os

seguintes comandos no topo do programa

using std::cout; using std::cin; using std::endl; Índice 29 1. Carrega <iostream> 2. main 2.1 Inicializa num1 e num2 2.1.1 Lê os dados 2.2 Expressões if 1 // Fig. 1.14: fig01_14.cpp 2 // Usando expressões if, operadores 3 // relacionais, e operadores de igualdade 4 #include <iostream>

5

6 using std::cout; // programa usa cout 7 using std::cin; // programa usa cin 8 using std::endl; // programa usa endl 9

10int main() 11{

12 int num1, num2; 13

14 cout << “Entre com dois inteiros, e irei lhe dizer\n" 15 << “as relacoes que eles satisfazem: "; 16 cin >> num1 >> num2; // lê dois inteiros 17

18 if ( num1 == num2 )

19 cout << num1 << " e’ igual a " << num2 << endl; 20

21 if ( num1 != num2 )

22 cout << num1 << " e’ diferente de " << num2 << endl; 23

24 if ( num1 < num2 )

25 cout << num1 << " e’ menor que " << num2 << endl; 26

27 if ( num1 > num2 )

28 cout << num1 << " e’ maior que " << num2 << endl; 29

30 if ( num1 <= num2 )

As expressões if testam a verdade da condição. Se for

true, o corpo da expressão if

é executada. Senão, o corpo é ignorado.

Para incluir múltiplos comandos no corpo, delimite-o com chaves {}.

Entre com dois inteiros, e irei lhe dizer as relacoes que eles satisfazem: 3 7

3 e’ diferente de 7 3 e’ menor que 7

Note o comando using.

Índice 30

2.3 sai (return 0)

Saída do Programa

34 if ( num1 >= num2 )

35 cout << num1 << " is greater than or equal to " 36 << num2 << endl;

37

38 return 0; // inidica que o programa terminou com sucesso 39}

Entre com dois inteiros, e irei lhe dizer as relacoes que eles satisfazem: 3 7 3 e’ diferente de 7

3 e’ menor que 7 3 e’ menor ou igual a 7

Entre com dois inteiros, e irei lhe dizer as relacoes que eles satisfazem: 22 12 22 e’ diferente de 12

22 e’ maior que 12 22 e’ maior ou igual a 12

Entre com dois inteiros, e irei lhe dizer as relacoes que eles satisfazem: 7 7 7 e’ igual a 7

7 e’ menor ou igual a 7 7 e’ maior ou igual a 7

(6)

31

1.18 Pensando Sobre Objetos: Introdução a

Tecnologia de Objetos e

UML (Unified Modeling Language)

• Orientação a Objetos

– Meio natural de pensar sobre o mundo e escrever programas de computador

– Atributos – propriedades de objetos • Tamanho, forma, cor, peso, etc. – Comportamento – ações

• Uma bola rola, quica, enche e murcha • Objetos também podem executar ações – Herança

• Novas classes de objetos absorvem características de classes existentes

– Proteção de informações

• Normalmente, objetos não sabem como outros objetos estão implementados

32

1.18 Pensando Sobre Objetos: Introdução a

Tecnologia de Objetos e

UML (Unified Modeling Language)

• Abstração – visualizar todo o cenário

– Ver uma foto ao invés de um grupo de pontos coloridos – Pensar em termos de casas e não tijolos

• Classe – unidade de programação

– Classes servem como a “planta de projeto” de objetos • Objetos são criados a partir de uma classe – Classes contém funções

• Usadas para implementar comportamento – Classes contém dados

• Usados para implementar atributos – Classes são reutilizáveis

33

1.18 Pensando Sobre Objetos: Introdução a

Tecnologia de Objetos e

UML (Unified Modeling Language)

• Unified Modeling Language (UML)

– Usada para modelar sistemas orientados a objetos e ajudar com o seu projeto

– Linguagem gráfica complexa e rica em propriedades

34

Exercício 1

• Escrever um programa que imprima as seguintes

figuras em um espaço 9 x 9

– Quadrado – Elipse – Flecha – Losângulo

• Escrever um programa que ler dois inteiros e

determina e imprime se o primeiro é múltiplo do

segundo

Referências

Documentos relacionados

O trabalho mostra o estudo anatomopatológico dos encéfalos em 114 casos da forma crónica da doen- ça de Chagas. Em 70,1% dos casos, os encéfalos apresentavam aspecto ma-

entre as classes, sendo que a parte pode existir sem o todo;.. ● Representada por uma linha

Os níveis de exposição encontrados em discotecas eram sem dúvida os mais extremos, chegando a alcançar concentrações de 106,31 µg/m 3 , (aproximadamente cem vezes

Transferência parcial ou total da atividade para instituições de transição 1 - O Banco de Portugal pode determinar a transferência parcial ou total de direitos

Os seguintes benefícios econômicos: aumento da vida útil do duto em até 20 anos, redução dos danos ambientais decorrentes de vazamentos, redução no custo com inibidor de

Apenas foram submetidos aos protocolos de provocação e/ou dessensibilização com AAS, os pacientes com asma controlada e, portanto, os pacientes que tinham asma grave não

‘ O crime de insubmissão previsto no artigo 183 do CPM (‘deixar de apresentar-se o convocado à incorporação, dentro do prazo que lhe foi marcado ...’) aplica-se apenas aos

Frente a este contexto, a Construtora e Incorporadora B abandonou o modo adaptativo de formulação de estratégias (caracterizado por mudanças incrementais) e realizou mudanças