430 likes | 564 Views
Estrutura de programas em C++. Conceitos básicos Código fonte Bibliotecas de recursos Compilação e ligação Estrutura geral Cabeçalho: comentários, bibliotecas e definições Bloco principal (em geral: int main() ) Blocos auxiliares (classes, rotinas ou funções).
E N D
Estrutura de programas em C++ • Conceitos básicos • Código fonte • Bibliotecas de recursos • Compilação e ligação • Estrutura geral • Cabeçalho: comentários, bibliotecas e definições • Bloco principal (em geral: int main() ) • Blocos auxiliares (classes, rotinas ou funções)
Estrutura de programas em C++ • Exemplo de estrutura geral #include <stdio.h> /* impressão de uma mensagem simples */ int main() { printf(“\n Mensagem inicial em c! \n”); return 0; }
Estrutura de programas em C++ • Exemplo de estrutura geral #include <stdio.h> /* impressão de uma mensagem simples */ int main() { printf(“\n Mensagem inicial em c! \n”); return 0; } Biblioteca utilizada linha de comentário Bloco principal
Estrutura de programas em C++ • Outro exemplo de estrutura geral /* Nome: imprime.cpp */ /* Autor: Sandro Rigo */ /* Data de criação: 18/09/2004 */ /* Descrição: teste simples de impressão... */ // bibliotecas básicas : entrada e saída #include <stdio.h> // protótipos de rotinas ou classes utilizadas // estruturas de dados e variáveis // definições utilizadas int main() { // trecho do programa principal //....... return 0; } //definições de rotinas auxiliares
Estrutura de programas em C++ • Inclusão de bibliotecas • Indicação de módulos a serem utilizados • Uso da diretiva “#include” (para o pré-processador) • Formato geral: • #include <nome> (busca arquivo ”nome” no diretório padrão) • #include “nome” (busca arquivo ”nome” no diretório atual)
Estrutura de programas em C++ • Inclusão de bibliotecas • Exemplos //para suporte em operações de e/s de “streams” #include <iostream> // para inclusão de biblioteca particular #include “minha_biblioteca.h”
Estrutura de programas em C++ • Inclusão de bibliotecas • Lista completa (Standard C++ Library Reference) (a ser vista durante o curso) <algorithm> · <bitset> · <complex> · <deque> · <exception> · <fstream> · <functional> · <iomanip> · <ios> · <iosfwd> · <iostream> · <istream> · <iterator> · <limits> · <list> · <locale> · <map> · <memory> · <numeric> · <ostream> · <queue> · <set> · <sstream> · <stack> · <stdexcept> · <streambuf> · <string> · <strstream> · <utility> · <valarray> · <vector> <cassert> · <cctype> · <cerrno>· <cfloat>· <ciso646> · <climits> · <clocale> · <cmath> · <csetjmp> · <csignal> · <cstdarg> · <cstddef> · <cstdio> · <cstdlib> · <cstring> · <ctime> · <cwchar> · <iso646.h>· <wchar.h>
Estrutura de programas em C++ • Bloco de código • Bloco principal • Indica um nome (main, _tmain) • Indica um tipo de dado de retorno (int) • Pode receber parâmetros • Início e fim delimitados por chaves ( “{“ e “}” )
Estrutura de programas em C++ • Variáveis • Posições de memória referenciadas no programa • Declaradas com nome e tipo de dados • Opcionalmente recebem valor inicial • Exemplos: • int valor; // variável do tipo inteiro com nome “valor” • Int total = 0; // variável “total”, inicializada com “0” • Formato geral: • <tipo> <nome>; • <tipo> <nome> = <valor inicial>; • <tipo> <nome>, <nome2>, ... <nome_n>; • <tipo> <nome> =<valorinicial>, <nome2> =<valorinicial2>;
Estrutura de programas em C++ • Variáveis • Memória: • Endereço| Conteúdo • ------------------------------ • | a • | a • | b • | b • | c • | d • | d • | d • | d • | d • | e • | e • | • | • | //declaração: int a, b; char c; float d; int e; Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes
Estrutura de programas em C++ • Variáveis • Memória: • Endereço| Conteúdo • ------------------------------ • | 00 • | 00 • | 00 • | 01 • | 33 (“!”) • | d • | d • | d • | d • | d • | 00 • | 02 • | • | • | Exemplo de uso: a = 0; b = 1; c = “!”; e = 2; //declaração: int a, b; char c; float d; int e; } } } Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes } Caractere Código ASCII
Estrutura de programas em C++ • Conceitos básicos • Código fonte • Bibliotecas de recursos • Compilação e ligação • Estrutura geral • Cabeçalho: comentários, bibliotecas e definições • Bloco principal (em geral: int main() ) • Blocos auxiliares (classes, rotinas ou funções)
Estrutura de programas em C++ • Exemplo de estrutura geral #include <stdio.h> /* impressão de uma mensagem simples */ int main() { printf(“\n Mensagem inicial em c! \n”); return 0; }
Estrutura de programas em C++ • Exemplo de estrutura geral #include <stdio.h> /* impressão de uma mensagem simples */ int main() { printf(“\n Mensagem inicial em c! \n”); return 0; } Biblioteca utilizada linha de comentário Bloco principal
Estrutura de programas em C++ • Outro exemplo de estrutura geral /* Nome: imprime.cpp */ /* Autor: Sandro Rigo */ /* Data de criação: 18/09/2004 */ /* Descrição: teste simples de impressão... */ // bibliotecas básicas : entrada e saída #include <stdio.h> // protótipos de rotinas ou classes utilizadas // estruturas de dados e variáveis // definições utilizadas int main() { // trecho do programa principal //....... return 0; } //definições de rotinas auxiliares
Estrutura de programas em C++ • Inclusão de bibliotecas • Indicação de módulos a serem utilizados • Uso da diretiva “#include” (para o pré-processador) • Formato geral: • #include <nome> (busca arquivo ”nome” no diretório padrão) • #include “nome” (busca arquivo ”nome” no diretório atual)
Estrutura de programas em C++ • Inclusão de bibliotecas • Exemplos //para suporte em operações de e/s de “streams” #include <iostream> // para inclusão de biblioteca particular #include “minha_biblioteca.h”
Estrutura de programas em C++ • Inclusão de bibliotecas • Lista completa (Standard C++ Library Reference) (a ser vista durante o curso) <algorithm> · <bitset> · <complex> · <deque> · <exception> · <fstream> · <functional> · <iomanip> · <ios> · <iosfwd> · <iostream> · <istream> · <iterator> · <limits> · <list> · <locale> · <map> · <memory> · <numeric> · <ostream> · <queue> · <set> · <sstream> · <stack> · <stdexcept> · <streambuf> · <string> · <strstream> · <utility> · <valarray> · <vector> <cassert> · <cctype> · <cerrno>· <cfloat>· <ciso646> · <climits> · <clocale> · <cmath> · <csetjmp> · <csignal> · <cstdarg> · <cstddef> · <cstdio> · <cstdlib> · <cstring> · <ctime> · <cwchar> · <iso646.h>· <wchar.h>
Estrutura de programas em C++ • Bloco de código • Bloco principal • Indica um nome (main, _tmain) • Indica um tipo de dado de retorno (int) • Pode receber parâmetros • Início e fim delimitados por chaves ( “{“ e “}” )
Estrutura de programas em C++ • Variáveis • Posições de memória referenciadas no programa • Declaradas com nome e tipo de dados • Opcionalmente recebem valor inicial • Exemplos: • int valor; // variável do tipo inteiro com nome “valor” • Int total = 0; // variável “total”, inicializada com “0” • Formato geral: • <tipo> <nome>; • <tipo> <nome> = <valor inicial>; • <tipo> <nome>, <nome2>, ... <nome_n>; • <tipo> <nome> =<valorinicial>, <nome2> =<valorinicial2>;
Estrutura de programas em C++ • Variáveis • Memória: • Endereço| Conteúdo • ------------------------------ • | a • | a • | b • | b • | c • | d • | d • | d • | d • | d • | e • | e • | • | • | //declaração: int a, b; char c; float d; int e; Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes
Estrutura de programas em C++ • Variáveis • Memória: • Endereço| Conteúdo • ------------------------------ • | 00 • | 00 • | 00 • | 01 • | 33 (“!”) • | d • | d • | d • | d • | d • | 00 • | 02 • | • | • | Exemplo de uso: a = 0; b = 1; c = “!”; e = 2; //declaração: int a, b; char c; float d; int e; } } } Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes } Caractere Código ASCII
Estrutura de programas em C++ • Variáveis • Vetores: estrutura unidimensional • Declaradas com nome e tipo de dados • Opcionalmente recebem valor inicial • Adicionalmente recebem número de elementos • Exemplos: • int valor[10]; // vetor (tipo inteiro) com nome “valor” e 10 elementos • Int total[3] = {0, 1, 2}; // vetor (tipo inteiro) com nome “total” e inicializado com os valores “0”, “1”, “2” • Formato geral: • <tipo> <nome> [ <tamanho> ]; • <tipo> <nome> [ <tamanho> ] = { <valor>, <valor1>, ...<valorN>};
Estrutura de programas em C++ • Variáveis • Memória: • Endereço| Conteúdo • ------------------------------ • | 00 • | 01 • | 00 • | 02 • | 00 • | 10 • | 79 (“O”) • | 105 (“i”) • | 33 (“!”) • | 63 (“?”) Exemplo de uso: a[0] = 1; a[1] = 2; b = 10; c[0] = ‘O’; c[1] = ‘i’; c[2] = ‘!’; c[3] = ‘?’; cout<< c; cout<< c[3]; cout <<endl; cout<< a; cout <<endl; cout<< a[0]; //declaração: int a[2], b; char c[4]; } } } Inteiro (int): 2 bytes Caractere (char): 1 byte Oi!?? 0012FF78 1
Estrutura de programas em C++ • Variáveis • Tamanhos de alguns tipos de dados Tipo Tamanho Valores possíveis unsigned char 1 byte 0 - 255 char 1 byte -128 - 127 unsigned int 2 bytes 0 – 65535 int 2 bytes -35768 – 32767 float 4 bytes 3.4E-38 – 3.4e+38 double 8 bytes 1.7E-308 – 1.7E+308
Estrutura de programas em C++ • Variáveis Tipo Tamanho Valores possíveis unsigned char 1 byte 0 - 255 Forma de representação Programador Uso de memória Exemplo:Binário Decimal 00 0 01 1 10 2 11 3 100 4 (3bits) ou 0 (2bits)
Estrutura de programas em C++ • Comandos • Sempre terminam com ponto e vírgula (“;”) • Podem ser colocados na mesma linha • Exemplos: • cout << “mensagem!”; • count << “mensagem !”; cin >> valor; • Agrupados em blocos com chaves (“{“ e “}”)
Estrutura de programas em C++ • Comandos • Expressões: atribuição • Permite armazenar em uma variável um resultado de uma expressão • Formato geral: <variável> = <expressão>; • Exemplo: a = 10; b = 5; b = a + (5 * b);
Estrutura de programas em C++ • Comandos • Expressões: operadores aritméticos • Resumo: Adição + Subtração - Multiplicação * Divisão / Módulo % • Exemplos: a = 10; b = a % 5; b = a + (5 * b); m = (a + b + c) / 3; Y = m * x + b; Precedência: () mais interno, esq. para dir. */% da esquerda para direita +- do esquerda para direita
Estrutura de programas em C++ • Comandos • Expressões: operadores relacionais e de igualdade • Resumo: Igualdade >, <, >=, <= (maior, menor, maior ou igual, menor ou igual) Relacionais ==, != (igual, diferente) • Exemplos: (a > b) (a maior que b) (b != a) (b diferente de a) (a <= b) (a menor ou igual a b)
Estrutura de programas em C++ • Comandos • Expressões: operadores relacionais e de igualdade • Estrutura de seleção: if - else Formato geral: if (<condição>){ <comandos> } • if (<condição>){ • <comandos> • } else{ • <comandos> • } • if (<condição>){ • <comandos> • } else • if (condição){ • <comandos> • } else • if (condição){ • <comandos> • }
Estrutura de programas em C++ • Comandos • Expressões: operadores relacionais e de igualdade • Estrutura de seleção: if - else Exemplo: if (valor == 15){ cout <, “valor igual a quinze!”; }
Estrutura de programas em C++ • Comandos • Expressões: operadores relacionais e de igualdade • Estrutura de seleção: if - else Exemplo: if (nota >= 70){ cout << “Aprovado!”; } else{ cout << “Reprovado!”; }
Estrutura de programas em C++ • Comandos • Estrutura de seleção: if - else Exemplo: if (nota >= 70){ cout << “Aprovado!”; } else if (nota >=60){ cout << “Em recuperação!”; } else { cout << “Reprovado!”; }
Estrutura de programas em C++ ... • Comandos • Estrutura de seleção: if - else Exemplo: if (nota >= 70){ cout << “Aprovado!”; } else if (nota >=60){ cout << “Em recuperação!”; } else { cout << “Reprovado!”; } Não Nota >=70 Sim “Aprovado” Não Nota >=60 Sim “Reprovado” “Recuperação” fim
Estrutura de programas em C++ • Comandos • Estrutura de repetição: while Formato geral: while ( <condição> ){ <comandos> } Exemplo: cin >> nro; contador = 0; while ( nro < valor_maximo){ nro = nro + 1; contador = contador + 1; }
Estrutura de programas em C++ Leitura de número • Comandos • Estrutura de repetição: while Formato geral: while ( <condição> ){ <comandos> } Exemplo: cin >> nro; contador = 0; while ( nro < valor_maximo){ nro = nro + 1; contador = contador + 1; } Inicialização de contador Não número < máximo Sim fim Incrementa número Incrementa contador
Uso de vetores • Declaração • Definição de tipo, nome e tamanho • Opcional: inicialização de valores • Indexação: início sempre em zero • Exemplos char letras[30], c; int i=0; while (i<30){ cout<<“digite uma letra:”; cin>>c; letras[i] = c; i = i + 1; }
Contador < 30 Uso de vetores • Declaração • Definição de tipo, nome e tamanho • Opcional: inicialização de valores • Indexação: início sempre em zero • Exemplos char letras[30], c; int i=0; while (i<30){ cout<<“digite uma letra:”; cin>>c; letras[i] = c; i = i + 1; } Inicializa contador Não Sim fim Obtém letra Incrementa contador