Post on 03-Jan-2016
description
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 utilizadasint 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;
Memória:Endereço| Conteúdo------------------------------100 | a 101 | a 102 | b103 | b104 | c105 | d106 | d107 | d108 | d109 | d110 | e111 | e112 |113 |114 |
Inteiro (int): 2 bytesCaractere (char): 1 bytePonto flutuante (float): 4 bytes
Estrutura de programas em C++
• Variáveis
//declaração:int a, b;char c;float d;int e;
Memória:Endereço| Conteúdo------------------------------100 | 00 101 | 00102 | 00103 | 01104 | 33 (“!”)105 | d106 | d107 | d108 | d109 | d110 | 00111 | 02112 |113 |114 |
Inteiro (int): 2 bytesCaractere (char): 1 bytePonto flutuante (float): 4 bytes
Exemplo de uso:
a = 0;b = 1;c = “!”;e = 2;
}
}
}
}
CaractereCó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 utilizadasint 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;
Memória:Endereço| Conteúdo------------------------------100 | a 101 | a 102 | b103 | b104 | c105 | d106 | d107 | d108 | d109 | d110 | e111 | e112 |113 |114 |
Inteiro (int): 2 bytesCaractere (char): 1 bytePonto flutuante (float): 4 bytes
Estrutura de programas em C++
• Variáveis
//declaração:int a, b;char c;float d;int e;
Memória:Endereço| Conteúdo------------------------------100 | 00 101 | 00102 | 00103 | 01104 | 33 (“!”)105 | d106 | d107 | d108 | d109 | d110 | 00111 | 02112 |113 |114 |
Inteiro (int): 2 bytesCaractere (char): 1 bytePonto flutuante (float): 4 bytes
Exemplo de uso:
a = 0;b = 1;c = “!”;e = 2;
}
}
}
}
CaractereCó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];
Memória:Endereço| Conteúdo------------------------------100 | 00 101 | 01102 | 00103 | 02104 | 00105 | 10106 | 79 (“O”)107 | 105 (“i”)108 | 33 (“!”)109 | 63 (“?”)Inteiro (int): 2 bytes
Caractere (char): 1 byte
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];
}
}
}
Oi!??0012FF781
Estrutura de programas em C++
• Variáveis– Tamanhos de alguns tipos de dadosTipo Tamanho Valores possíveisunsigned char 1 byte 0 - 255char 1 byte -128 - 127unsigned int 2 bytes 0 – 65535int 2 bytes -35768 – 32767float 4 bytes 3.4E-38 – 3.4e+38double 8 bytes 1.7E-308 – 1.7E+308
Estrutura de programas em C++
• VariáveisTipo Tamanho Valores possíveis
unsigned char 1 byte 0 - 255
Programador
Uso de memória
Forma de representação
Exemplo:Binário Decimal 00 0
01 1 10 2 11 3100 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!”;
}
Nota >=70
“Aprovado”
Sim
Não
...
Nota >=60
“Recuperação”
fim
Sim
Não
“Reprovado”
Estrutura de programas em C++
• Comandos• Estrutura de repetição: whileFormato 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++
• Comandos• Estrutura de repetição: whileFormato 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úmero < máximo
Incrementa número
Incrementa contador
fim Sim
Não
Leitura de número
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
Contador < 30
Obtém letra
Incrementa contador
fim Sim
Não