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
Download

Estrutura de programas em C++