Curso
: C / C++ |
Carga
Horária : 160 horas (100
horas na Grande Porte TI e 60 horas de
projetos) |
Objetivo: Capacitar o
aluno no desenvolvimento de programas,
usando os paradigmas procedural e orientado
à objetos, na Linguagem C e C++.
Conteúdo Programático: |
| Conteúdo
Programático: |
1.
Introdução à programação
em C/C++
| 1.1.
|
Constantes |
| 1.2.
|
Variáveis
e tipos de dados |
| 1.3.
|
Comentários |
| 1.4.
|
Operadores
aritméticos |
| 1.5.
|
Operadores
relacionais |
| 1.6.
|
Operadores
lógicos |
| 1.7.
|
Entrada
e Saída básicos |
| 1.8.
|
Programas
simples em C++ |
|
2.
Estruturas algorítmicas
| 2.1. |
Técnicas
de solução de problemas
|
| 2.2. |
Desvio
Condicional "if" e "if...else"
|
| 2.3. |
Estruturas
de repetição "while",
"do...while" e "for"
|
| 2.4. |
Desvio
condicional múltiplo "switch"
|
| 2.5.
|
Controle de fluxo "break"
e "continue" |
| 2.6. |
Operadores
lógicos para expressões
condicionais complexas |
|
3.
Funções e Recursividade
| 3.1. |
Planejamento de funções |
| 3.2. |
Passagem
de parâmetros e retorno da função |
| 3.3. |
Modularização
com funções |
| 3.4. |
Funções
comuns nas bibliotecas do C++ |
| 3.5. |
Geração
de números aleatórios |
| 3.6. |
Funções
recursivas |
|
4.
Vetores
| 4.1. |
Declaração, iniciação
e referenciamento |
| 4.2. |
Passagem
de vetores como parâmetros de
função |
| 4.3. |
Algoritmos
de busca e ordenação |
| 4.4. |
Declaração
e manipulação de vetores
multi-dimensionais |
|
5.
Ponteiros
| 5.1. |
Definição de ponteiros |
| 5.2. |
Uso
de ponteiros para passagem de argumentos
por referência |
| 5.3. |
Uso
de ponteiros para funções |
|
6.
Classes
| 6.1.
|
Como
usar diretivas de pré-compilação
para evitar múltiplas inclusões |
| 6.2.
|
Escopo
de classe e acesso a seus membros
através do nome, referência
ou ponteiro para um objeto |
| 6.3. |
Construtores
com argumentos padrão |
| 6.4. |
Destrutores
|
| 6.5. |
Uso
de construtores e destrutores |
| 6.6. |
Atribuição de dados
entre objetos membros de uma classe |
| 6.7.
|
Objetos
e funções constantes
"const" |
| 6.8. |
Objetos
compostos de outros objetos |
| 6.9. |
Funções
"friend" e classes "friend" |
| 6.10. |
Uso
do ponteiro "this" |
| 6.11. |
Criação
e destruição dinâmica
de objetos com os operadores "new"
e "delete" |
| 6.12. |
Uso
de dados e funções estáticas
("static") |
| 6.13. |
Recipientes
de dados ("containers")
|
| 6.14. |
Iteradores
para obtenção de elementos
de recipientes de dados |
|
7.
Sobrecarga de operadores
| 7.1. |
Sobrecarga
de operadores para tornar um programa
mais legível |
| 7.2. |
Sobrecarga
de operadores que trabalham com objetos
de uma classe |
| 7.3. |
Diferença
entre sobrecarga unária e binária
de operadores |
| 7.4.
|
Conversão
de objetos de uma classe para outra
classe |
|
8.
Programação orientada à
objetos
| 8.1. |
Derivação
de classes ("inheritance")
|
| 8.2. |
Mecanismo
de herança para reutilização
de software |
| 8.3. |
Noção
de classe base, classes derivadas
e os relacionamentos entre elas |
| 8.4. |
Uso
da palavra-chave "protected"
|
| 8.5. |
Uso de construtores e destrutores
na hierarquia de herança |
| 8.6. |
Diferenças
entre herança pública,
protegida e privada |
| 8.7.
|
Uso
de herança para personalizar
softwares existentes |
|
9.
Polimorfismo
| 9.1. |
O que é polimorfismo e para
que serve |
| 9.2. |
Uso
de funções "virtuais"
|
| 9.3.
|
Classes
concretas e abstratas |
| 9.4. |
Funções
puramente virtuais para criação
de classes abstratas |
| 9.5. |
Determinação
do tipo de um objeto em tempo de execução
|
| 9.6. |
Eliminação
apropriada de objetos através
de Destrutores Virtuais |
|
10.
Templates
| 10.1.
|
Parametrização de funções
através de "templates"
|
| 10.2. |
Parametrização
de classes através de "templates"
|
| 10.3. |
Distinção
entre classes e funções
"template" e suas especializações
|
| 10.4. |
Sobreposição
de funções "template"
|
| 10.5. |
Relação entre "template",
"friend", "inheritance"
e membros "static" |
|
11.
C++ Fluxo de Entrada/Saída
| 11.1. |
Uso
do fluxo de E/S em C++ |
| 11.2. |
Formatação
de E/S |
| 11.3. |
Hierarquia
de classes de fluxo de E/S |
| 11.4. |
Uso
de manipuladores de fluxo |
| 11.5.
|
Obtenção do estado de
sucesso ou falha em operações
de E/S |
| 11.6.
|
Conexão
de fluxos de saída e fluxos
de entrada |
|
12.
Tratamento de exceções
| 12.1. |
O
que são exceções
e quando usá-las |
| 12.2. |
Uso
de "try", "catch"
e "throw" para detectar,
tratar e indicar exceções,
respectivamente |
| 12.3. |
Processamento
de exceções não
tratadas |
| 12.4. |
Declaração
de novas classes de exceção
|
| 12.5. |
Empilhamento e tratamento de exceções
em escopo de funções
|
| 12.6. |
Hierarquia
padrão de exceções |
|
13.
Processamento de arquivos
| 13.1. |
Criação,
leitura, escrita e atualização
de arquivos |
| 13.2. |
Processamento
de arquivo seqüencial e aleatório |
| 13.3.
|
Uso
de operações de E/S
não-formatadas de alto-desempenho
|
| 13.4. |
Processamento
de arquivos com dados formatados e
não-formatados |
|
14.
Classe string e processamento de fluxos
de strings
| 14.1. |
Classe
"string" da biblioteca padrão
(STL) |
| 14.2. |
Atribuição,
concatenação, comparação,
busca e substituição
de "strings" |
| 14.3. |
Busca,
substituição e inserção
de caracteres em uma "string"
|
| 14.4.
|
Conversão
de "string" em estilo C
para C++, e vice-versa |
| 14.5. |
Uso
de iteradores de "string" |
|