Técnicas de Programação - Apostila completa em c++

Técnicas de Programação - Apostila completa em c++

(Parte 1 de 9)

TÉCNICAS DE PROGRAMAÇÃO TPI e TPII

Versão: julho/2003

Versão: julho/2003

1. INTRODUÇÃO À PROGRAMAÇÃO: ALGORITMOS5
1.1. EXEMPLOS5
1.2. ALGORITMOS EM PORTUGOL6
1.3. PORTUGOL6
1.4. VARIÁVEIS7
1.4.1. DECLARAÇÃO DE VARIÁVEIS7
1.4.1.1. TIPOS DE VARIÁVEIS8
1.4.1.2. IDENTIFICADORES DE VARIÁVEIS8
1.4.2 CONSTANTES10
1.5. ESTRUTURA DO ALGORITMO EM PORTUGOL10
1.5.1. COMANDO DE ATRIBUIÇÃO (<-)10
1.5.2. OPERADORES ARITMÉTICOS1
1.5.3. ENTRADA E SAÍDA DE DADOS12
1.5.4. REGRAS PARA ESCREVER ALGORITMOS EM PORTUGOL13
1.5.5. EXERCÍCIOS13
1.6. COMANDOS DE CONTROLE13
1.6.1. DESVIO CONDICIONAL13
1.6.1.1. Operadores Lógicos13
1.6.1.2. Operadores Relacionais14
1.6.1.3. Desvio Condicional Simples14
1.6.1.4. Desvio Condicional Composto15
1.6.2. LAÇOS DE REPETIÇÃO (LOOP)17
1.6.2.1. Comando: enquanto/faça18
1.6.2.2. Comando: para / até / faça20
2. PROGRAMAÇÃO EM LINGUAGEM C2
2.1. INTRODUÇÃO A PROGRAMAÇÃO EM LINGUAGEM C2
2.1.1. DECLARAÇÃO DE VARIÁVEIS2
2.1.2. COMANDO DE ATRIBUIÇÃO:24
2.1.3. BLOCOS DE COMANDOS:24
2.2. BORLAND C++ BUILDER25
2.2.1. O AMBIENTE DE DESENVOLVIMENTO25
2.2.2. A INTERFACE DE DESENVOLVIMENTO26
3.2.2.1. Barra de Componentes26
2.2.2.2. Formulário (form)26
2.2.2.3. Barra de Propriedades27
2.2.3. A CRIAÇÃO DE PROGRAMAS27
A) ENTRADA DE DADOS28
B) ATRIBUIÇÃO29
C) SAÍDA DE DADOS29
E) OPERADORES RELACIONAIS29

I 2.2.4. PASSOS PARA CRIAR UMA APLICAÇÃO EM C...................................................................29

a) Abrindo o C++ Builder30
b) Adicionando Formulário30
c) Inserindo Componentes no Formulário30
d) Codificação do Programa31
e) Compilando um Programa32
f) Executando um Programa32
g) Salvando o Programa3
2.2.5. EXERCÍCIOS3
2.3. ESCOPO DE VARIÁVEIS34
2.3.1. VARIÁVEIS LOCAIS34
EXEMPLO34
2.3.2. VARIÁVEIS GLOBAIS35
2.4. DESVIO CONDICIONAL EM C36
2.4.1. DESVIO CONDICIONAL SIMPLES36
2.4.2. DESVIO CONDICIONAL COMPOSTO36
2.4.3. IF’S ANINHADOS37
2.4.4. EXEMPLO37
SOLUÇÃO SEM O USO DE “IF”37
2.4.5. EXERCÍCIO39
2.5. LAÇOS DE REPETIÇÃO EM C40
2.5.1. LOOP PARA/FAÇA (FOR)40
2.5.2. LOOP ENQUANTO/FAÇA (WHILE)40
2.5.3. LOOP FAÇA/ENQUANTO (DO/WHILE)41
2.5.4. EXEMPLO41
2.5.5 EXERCÍCIOS42
2.6. PROCEDIMENTOS EM C43
2.6.1. DEFINIÇÃO43
2.6.2. EXEMPLO 143
2.6.3. PROTÓTIPO46
2.6.4. PARÂMETROS47
2.6.5. EXEMPLO 247
2.7. FUNÇÂO EM C50
2.7.1. DEFINIÇÃO50
2.7.2. DECLARAÇÃO50
2.7.3 PARÂMETROS E RETORNO50
2.7.4. EXEMPLO 151
2.7.5. EXEMPLO 253
2.7.6. EXERCÍCIOS5
2.8. INCREMENTOS E DECREMENTOS56
2.8.1. INCREMENTO/DECREMENTO A POSTERIORI56
2.8.2. INCREMENTO/DECREMENTO A PRIORI57
2.8.3. EXERCÍCIO57
2.9. ATRIBUIÇÃO COMPOSTA58
2.9.1. EXERCÍCIO58
2.10. ATRIBUIÇÃO MÚLTIPLA58
2.10.1. EXEMPLO58
2.1. OPERADOR INTERROGAÇÃO (?)59

I 2.12. NÚMEROS ALEATÓRIOS ..................................................................................................59

2.12.1. SINTAXE DO COMANDO59
2.12.2. EXEMPLO59
2.13 COMANDO SWITCH/CASE60
2.13.1. SINTAXE DO COMANDO60
2.13.2. EXEMPLO60
2.14. TIMER61
2.14.1. O COMPONENTE TIMER NO C++ BUILDER61
2.14.2. AS PROPRIEDADES DO TIMER62
2.14.3. EXEMPLO62
2.14.4. EXERCÍCIO62
3. ESTRUTUAS HOMOGÊNEAS DE DADOS63
3.1. MATRIZES UNIDIMENSIONAIS (VETORES)63
3.1.1. EXEMPLOS63
3.1.2. INDEXAÇÃO63
3.1.3. EXEMPLO64
3.1.4. EXERCÍCIO65
3.2. ORDENAÇÃO DE VETORES65
3.2.1. ALGORITMO DE ORDENAÇÃO (BOLHA)65
3.2.2. EXERCÍCIO6
3.3. STRINGS67
3.3.1.EXEMPLO 167
3.3.2.EXEMPLO 268
3.3.3. COPIANDO STRINGS68
3.3.4. COMPARAÇÃO DE STRINGS69
3.3.5. TAMANHO DE STRINGS69
3.3.6. COMPARAÇÃO DE ELEMENTOS DA STRING70
3.3.7. CONVERSÃO DE TIPOS70
3.3.7.1. convertendo valores numéricos para caracter71
3.3.7.2. convertendo string para valores numéricos71
3.3.8 EXERCÍCIOS72
3.4. MATRIZES73
3.4.1. MATRIZES BIDIMENSIONAIS73
3.4.2. MATRIZES MULTIDIMENSIONAIS74
3.4.3. MATRIZES DE STRINGS74
3.4.4. EXERCÍCIOS76
4. PONTEIROS EM C78
4.1. DEFINIÇÃO78
4.2. DECLARAÇÃO DE UM PONTEIRO79
4.3. EXERCÍCIOS80
4.4. PONTEIROS PARA MATRIZ82
4.5. VETORES DE PONTEIROS85
4.5.1. EXEMPLO 185

I 4.5.2. EXERCÍCIO .......................................................................................................................87

4.5.3. EXEMPLO 287
4.5.4. EXERCÍCIOS8
5. ALOCAÇÃO DINÂMICA DE MEMÓRIA89
5.1. INTRODUÇÃO89
5.2. COMANDO DE ALOCAÇÃO89
5.2.1. EXEMPLO DE ALOCAÇÃO USANDO O COMANDO MALLOC()89
5.2.2. MELHORANDO O USO DE PONTEIROS92
5.3. EXERCÍCIOS93
5.4. PORTABILIDADE93
5.4.1. EXEMPLO DO USO DE SIZEOF94
5.5. EXERCÍCIOS94
6. ARQUIVOS EM C9
6.1. PONTEIRO DE ARQUIVO9
6.2. ABRINDO ARQUIVOS9
6.2.1. ARQUIVOS TIPO TEXTO100
6.2.2. ARQUIVOS BINÁRIOS101
6.3. ABRINDO UM ARQUIVO PARA ESCRITA101
6.3.1. OBSERVAÇÕES102
6.4. ABRINDO UM ARQUIVO PARA LEITURA103
6.5. FECHANDO UM ARQUIVO103
6.6. COMANDOS DE ESCRITA E LEITURA104
6.6.1. FPUTC()104
6.6.2. FGETC()107
6.6.3. EXERCÍCIO COM FPUTC() E FGETC()109
6.7. GRAVAÇÃO DE STRINGS COM FPUTS()110
6.8. LEITURA DE STRINGS COM FGETS()1
6.9. EXERCÍCIOS COM FPUTS() E FGETS()112
6.10. LEITURA COM FREAD()112
6.1. GRAVAÇÃO COM FWRITE()13
6.12. GRAVAÇÃO COM FPRINTF()113
6.13. LEITURA COM FSCANF()114
6.14. EXERCÍCIOS115
7. REGISTROS116
7.1. DEFINIÇÃO116
7.2. INICIALIZAÇÃO116
7.2.1. EXEMPLO 1117
7.2.2. EXEMPLO 2117
7.3. ACESSO AOS ELEMENTOS DA ESTRUTURA117
7.4. EXERCÍCIO118

IV 7.5. MATRIZES DE ESTRUTURAS ............................................................................................118

7.5.1.EXEMPLO118
7.5.2. EXERCÍCIO119
7.6. USO DE TYPEDEF121
7.6.1. EXEMPLO121
7.6.2. EXEMPLO 2121
7.7. GRAVAÇÃO E LEITURA DE REGISTROS122
7.7.1 EXEMPLO122
7.7.2.EXERCÍCIO122
7.8. PONTEIROS PARA REGISTROS123
7.8.1.EXEMPLO123
8. GRÁFICOS EM C126
8.1. INTRODUÇÃO126
8.2. DESENHANDO LINHAS126
8.3. USANDO O PAINTBOX128
8.4. COMPONENTE PANEL129
8.5. DESENHANDO RETÂNGULOS130
8.6. DESENHANDO ELIPSES131
8.7. DESENHANDO PONTOS (PIXELS)132
8.8. EXEMPLO132
8.9 EXERCÍCIOS136
9. LISTAS LINEARES137
9.1. FILA137
9.1.1. DEFINIÇÃO137
9.1.2. OBJETIVO137
9.1.3. EXEMPLO137
9.2. FILA CIRCULAR140
9.3. PILHA142
9.3.1. DEFINIÇÃO142
9.3.2. EXEMPLO142
9.4. EXERCÍCIOS143
9.5. LISTAS ENCADEADAS144
9.6. EXEMPLO145
9.7. EXERCÍCIO146
9.8. EXEMPLO146
9.9. OPERAÇÕES COM LISTA ENCADEADA147
9.10. EXEMPLO148
9.1. LISTAS DUPLAMENTE ENCADEADAS150
9.12. EXEMPLO150
9.13. EXEMPLO151
10.1. INTRODUÇÃO154
10.2. EXEMPLO154
10.3. EXERCÍCIOS155
1.EXERCÍCIOS COM VETORES156
12 -EXERCÍCIOS COM MATRIZES157
13. EVENTOS DE FORMULÁRIO E VARIÁVIES EXTERNAS159
13.1. EXERCÍCIO PROPOSTO159
13.2. LISTAGEM DO PROGRAMA160
13.2.1. UMEDIA1.CPP160
13.2.2. UMEDIA.CPP161
14. ROTINAS DE ORDENAÇÃO163
15.1. BITBTN166
15.1.1. PRINCIPAIS PROPRIEDADES166
15.1.2. EXEMPLO167
15.2 CHECKBOX167
15.2.1. PRINCIPAIS PROPRIEDADES167
15.2.2. EXEMPLO168
15.3. COMBOBOX168
15.3.1. PRINCIPAIS PROPRIEDADES168
15.3.2. EXEMPLO169
15.4. LISTBOX170
15.4.1. PRINCIPAIS PROPRIEDADES170
15.4.2. EXEMPLO170
15.5. PAGECONTROL171
15.5.1. PRINCIPAIS COMANDOS172
15.5.2. EXEMPLO172
15.6. RADIOBUTTON173
15.6.1. PRINCIPAIS PROPRIEDADES173
15.6.2. EXEMPLO173
15.7. RADIOGROUP174
15.7.1. PRINCIPAIS PROPRIEDADES174
15.7.2. EXEMPLO174
15.8. SCROLLBAR175
15.8.1. PRINCIPAIS PROPRIEDADES176
15.8.2. EXEMPLO176
15.9. SPEEDBUTTON177
15.9.1. PRINCIPAIS PROPRIEDADES177
15.10. STRINGGRID178
15.10.1. PRINCIPAIS PROPRIEDADES178
15.10.2. EXEMPLO179
15.1. TABCONTROL179
15.1.1. PRINCIPAIS PROPRIEDADES179

VII 15.1.2. EXEMPLO...................................................................................................................180

1 TP I

TP I - Capítulo 1 i. O PROGRAMA DE APRENDIZAGEM (P.A.)

Este programa de aprendizagem explora o estudo de algoritmos e programação em linguagem C. Para aprovação neste semestre o aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação de algoritmos e programas elementares.

As técnicas de programação serão vistas através da utilização de uma pseudolinguagem em português, denominada "Portugol". Assim, o aluno poderá escrever algoritmos e aplicar as técnicas de desenvolvimento para serem usadas com qualquer linguagem de programação. Para este P.A., será utilizada a linguagem C padrão, em ambiente Windows.

Na seção seguinte será apresentado o conteúdo programático de Técnicas de Programação I (TP I).

1.1Campus: Curitiba
1.2Centro: CCET
1.3Curso: Engenharia Mecatrônica.
1.6 Ano Letivo: 2001Período:1º e 2° (D & N) Semestre: 1º e 2º (D & N)
1.7 Carga Horária Total: 54Nº de créditos: 2

1. Identificação 1.4. Habilitação: Engenharia de Controle e Automação 1.5 Programa de aprendizagem (PA) : Técnicas de Programação I 1.8 Carga Horária Semanal: 3 aulas Aulas Teóricas: 0 Aulas Práticas: 3 1.9 Disciplina ou grupo de disciplinas que originou o PA: Aspectos Formais da Computação e Algoritmos 1.10 Professor Responsável: Marcelo Rudek

2. Aptidões e competências / habilidades a serem desenvolvidas pelos alunos

- Conhecer estruturas de dados, e suas representações através de algoritmos, para aplicar em ferramentas de programação.

- Conhecer técnicas atuais de programação para aplicação em desenvolvimento de sistemas usados em controle e automação de processos;

- Conhecer a linguagem de programação “C” para o desenvolvimento de programas elementares. - Desenvolver habilidades de trabalho em equipe.

TP I - Capítulo 1

Introdução sobre algoritmos. Metodologia de desenvolvimento de programas. Modularidade e abstração. Introdução a linguagem de programação (C). Tipos de dados básicos e estruturados.

- Conceitos de algoritmos e estruturas de dados: Conceituação sobre a construção de programas. Introdução sobre fundamentos da computação e descrição do funcionamento dos computadores.

- Portugol: Introdução ao portugol para o desenvolvimento de algoritmos, declaração de variáveis, desvio condicional, laços de repetição.

- Programas em C: Apresentação dos comandos básicos da linguagem C, variáveis, desvio condicional, laços de repetição, estruturas homogêneas de dados – vetores e matrizes.

O objetivo é a aprendizagem através da prática. As aulas são em laboratório, onde pode ser apresentada a teoria, e imediatamente o tema pode ser comprovado pelos alunos. Isto torna a aula mais dinâmica e participativa. Esta metodologia permite atingir as aptidões técnicas e de trabalho em grupo, propostas neste programa de aprendizagem.

a. Procedimentos do Professor

As aulas serão práticas em laboratório. Todas as aulas estarão previamente disponíveis na página do curso na internet, de forma que o aluno possa consultar o tema da aula, dias antes da apresentação em sala, ou rever a aula posteriormente.

b. Atividades dos alunos

- Resolução de exercícios,trabalhos individuais e em equipes. - Pesquisa bibliográfica com utilização da INTERNET.

c. Recursos e Materiais

Serão utilizados livros da área, compilador da linguagem C, internet e microcomputadores da Universidade.

Avaliações somativas incluindo trabalhos, participação dos alunos nos questionamentos e exercícios de aula, provas escritas e no computador, e trabalho final do semestre.

TP I - Capítulo 1

1. Algoritmos e Estruturas de Dados; Guimarães e Lages, LTC – Livros Técnicos e

Científicos. 2. Estruturas de Dados Usando C; A. Tanenbaum; Makron Books 3. Dominando Algoritmos com C; Kyle Loundon; Ed. Ciência Moderna. 4. C Completo e Total; Hebert Schildt; Makron Books; 5. C A Linguagem de Programação Padrão Ansi; Brian W. Kerninghan, Dennis M.

Ritchie; Editora Campus; 6. C++ Builder 5 – Guia Prático; César A Mateus. Ed. Érica (w.erica.com.br); 7. C++ Buider 5 Developers Guide; J. Hollinworth, D. Butterfield, et al. Ed. SAMS; 8. Internet

TP I - Capítulo 1

1. INTRODUÇÃO À PROGRAMAÇÃO: ALGORITMOS

Várias definições de algoritmos estão presentes na literatura (ver bilbliografia indicada). De forma geral um algoritmo pode ser definido como:

Um algoritmo representa de forma estruturada, um padrão de comportamento de eventos ou sequência de ações, que levam a um resultado esperado.

Resumindo: algoritmo = como definir o problema, esquematizar, exercício do raciocínio; técnicas de programação = como operacionalizar, recursos, exercício da implementação.

1.1. Exemplos a) Seqüência de ações para chegar ao trabalho/universidade:

Ou → chegar ao destino
→ pegar o carro

Acordar → levantar → tomar café → pegar o ônibus

Note que, para cada ação acontecer, é necessário que a ação imediatamente anterior tenha sido executada. Note também que, cada ação pode conter outros eventos associados (outros algoritmos).

b) Manuais de montagem e utilização de equipamentos;

1, 5, 9, 13, 17, 21, 25

c) Qual o padrão de comportamento utilizado para gerar a sequência abaixo? resposta: _

TP I - Capítulo 1

Como no item 1 "um algoritmo é de forma geral, uma descrição passo a passo de

1.2. ALGORITMOS EM PORTUGOL como um problema pode ser solucionado. A descrição deve ser finita, e os passos devem ser bem definidos sem ambiguidades" [Terada] . A razão da existência do algoritmo vem da dissonância entre um estado desejado e aquele observado na realidade. Algoritmo não é a solução de um problema, mas é o meio de obtê-la. A resolução de um problema envolve vários parâmetros que devem ser organizados através de alguma técnica formal.

As técnicas de desenvolvimento estruturado de algoritmos, tem o objetivo de: • Facilitar o desenvolvimento de algoritmos;

• Facilitar o seu entendimento pelos operadores;

• Facilitar manutenção e modificações;

(Parte 1 de 9)

Comentários