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 Biblioteca utilizada #include <stdio.h> linha de comentário /* impressão de uma mensagem simples */ int main() Bloco principal { printf(“\n Mensagem inicial em c! \n”); return 0; } 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 //declaração: int a, b; char c; float d; int e; Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes Memória: Endereço| Conteúdo -----------------------------100 | a 101 | a 102 | b 103 | b 104 | c 105 | d 106 | d 107 | d 108 | d 109 | d 110 | e 111 | e 112 | 113 | 114 | Estrutura de programas em C++ • Variáveis //declaração: int a, b; char c; float d; int e; Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes Memória: Endereço| Conteúdo -----------------------------100 | 00 } 101 | 00 102 | 00 } 103 | 01 104 | 33 (“!”) } 105 | d 106 | d 107 | d 108 | d 109 | d 110 | 00 111 | 02 } 112 | 113 | 114 | Exemplo de uso: a = 0; b = 1; c = “!”; e = 2; 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 Biblioteca utilizada #include <stdio.h> linha de comentário /* impressão de uma mensagem simples */ int main() Bloco principal { printf(“\n Mensagem inicial em c! \n”); return 0; } 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 //declaração: int a, b; char c; float d; int e; Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes Memória: Endereço| Conteúdo -----------------------------100 | a 101 | a 102 | b 103 | b 104 | c 105 | d 106 | d 107 | d 108 | d 109 | d 110 | e 111 | e 112 | 113 | 114 | Estrutura de programas em C++ • Variáveis //declaração: int a, b; char c; float d; int e; Inteiro (int): 2 bytes Caractere (char): 1 byte Ponto flutuante (float): 4 bytes Memória: Endereço| Conteúdo -----------------------------100 | 00 } 101 | 00 102 | 00 } 103 | 01 104 | 33 (“!”) } 105 | d 106 | d 107 | d 108 | d 109 | d 110 | 00 111 | 02 } 112 | 113 | 114 | Exemplo de uso: a = 0; b = 1; c = “!”; e = 2; 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 //declaração: int a[2], b; char c[4]; Inteiro (int): 2 bytes Caractere (char): 1 byte Memória: Endereço| Conteúdo -----------------------------100 | 00 } 101 | 01 102 | 00 } 103 | 02 104 | 00 } 105 | 10 106 | 79 (“O”) 107 | 105 (“i”) 108 | 33 (“!”) 109 | 63 (“?”) Oi!?? 0012FF78 1 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]; 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 int float double 2 bytes 2 bytes 4 bytes 8 bytes 0 – 65535 -35768 – 32767 3.4E-38 – 3.4e+38 1.7E-308 – 1.7E+308 Estrutura de programas em C++ • Variáveis Tipo Tamanho unsigned char 1 byte Valores possíveis 0 - 255 Forma de representação Programador Uso de memória Exemplo:Binário 00 01 10 11 100 Decimal 0 1 2 3 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 + Multiplicação * Módulo % • Exemplos: a = 10; b = a % 5; b = a + (5 * b); m = (a + b + c) / 3; Y = m * x + b; Subtração Divisão / 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>){ if (<condição>){ <comandos> <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 Não • Estrutura de seleção: if - else Exemplo: if (nota >= 70){ cout << “Aprovado!”; } else if (nota >=60){ Não cout << “Em recuperação!”; } else { cout << “Reprovado!”; “Reprovado” } Nota >=70 Sim “Aprovado” Nota >=60 Sim “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 fim Sim 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; } 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 Contador < 30 Sim fim Obtém letra Incrementa contador