TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Técnicas De Programação - Linguagem C

Ensaios: Técnicas De Programação - Linguagem C. Pesquise 859.000+ trabalhos acadêmicos

Por:   •  19/11/2013  •  5.219 Palavras (21 Páginas)  •  1.097 Visualizações

Página 1 de 21

TÉCNICAS DE PROGRAMAÇÃO

TPI e TPII

Versão: julho/2003

1

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA MECATRÔNICA

APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO

ELABORAÇÃO: PROF. MARCELO RUDEK

REVISÃO: PROF. MAURÍCIO C. MELLO

PROFa. MARIA A. ROVEREDO

COLABORAÇÃO: GELSON LUIZ CARNEIRO

ADRIANO ZELAZOWSKI PEREIRA

Versão: julho/2003

I

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

1.1. EXEMPLOS ...........................................................................................................................5

1.2. ALGORITMOS EM PORTUGOL ..................................................................................6

1.3. PORTUGOL ......................................................................................................................6

1.4. VARIÁVEIS ...........................................................................................................................7

1.4.1. DECLARAÇÃO DE VARIÁVEIS.............................................................................................7

1.4.1.1. TIPOS DE VARIÁVEIS.......................................................................................................8

1.4.1.2. IDENTIFICADORES DE VARIÁVEIS ...................................................................................8

1.4.2 CONSTANTES ....................................................................................................................10

1.5. ESTRUTURA DO ALGORITMO EM PORTUGOL...................................................................10

1.5.1. COMANDO DE ATRIBUIÇÃO (<-) ......................................................................................10

1.5.2. OPERADORES ARITMÉTICOS ............................................................................................11

1.5.3. ENTRADA E SAÍDA DE DADOS..........................................................................................12

1.5.4. REGRAS PARA ESCREVER ALGORITMOS EM PORTUGOL ....................................................13

1.5.5. EXERCÍCIOS .....................................................................................................................13

1.6. COMANDOS DE CONTROLE ...............................................................................................13

1.6.1. DESVIO CONDICIONAL.....................................................................................................13

1.6.1.1. Operadores Lógicos.....................................................................................................13

1.6.1.2. Operadores Relacionais ...............................................................................................14

1.6.1.3. Desvio Condicional Simples .......................................................................................14

1.6.1.4. Desvio Condicional Composto....................................................................................15

1.6.2. LAÇOS DE REPETIÇÃO (LOOP) ..........................................................................................17

1.6.2.1. Comando: enquanto/faça .............................................................................................18

1.6.2.2. Comando: para / até / faça ...........................................................................................20

2. PROGRAMAÇÃO EM LINGUAGEM C ......................................................................22

2.1. INTRODUÇÃO A PROGRAMAÇÃO EM LINGUAGEM C.....................................22

2.1.1. DECLARAÇÃO DE VARIÁVEIS...........................................................................................22

2.1.2. COMANDO DE ATRIBUIÇÃO: .............................................................................................24

2.1.3. BLOCOS DE COMANDOS:..................................................................................................24

2.2. BORLAND C++ BUILDER............................................................................................25

2.2.1. O AMBIENTE DE DESENVOLVIMENTO ...............................................................................25

2.2.2. A INTERFACE DE DESENVOLVIMENTO ..............................................................................26

3.2.2.1. Barra de Componentes.................................................................................................26

2.2.2.2. Formulário (form)........................................................................................................26

2.2.2.3. Barra de Propriedades..................................................................................................27

2.2.3. A CRIAÇÃO DE PROGRAMAS.............................................................................................27

A) ENTRADA DE DADOS.............................................................................................................28

B) ATRIBUIÇÃO.........................................................................................................................29

C) SAÍDA DE DADOS ..................................................................................................................29

E) OPERADORES RELACIONAIS...................................................................................................29

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

II

a) Abrindo o C++ Builder.........................................................................................................30

b) Adicionando Formulário ......................................................................................................30

c) Inserindo Componentes no Formulário................................................................................30

d) Codificação do Programa .....................................................................................................31

e) Compilando um Programa....................................................................................................32

f) Executando um Programa .....................................................................................................32

g) Salvando o Programa ...........................................................................................................33

2.2.5. EXERCÍCIOS .....................................................................................................................33

2.3. ESCOPO DE VARIÁVEIS .............................................................................................34

2.3.1. VARIÁVEIS LOCAIS ..........................................................................................................34

EXEMPLO..................................................................................................................................34

2.3.2. VARIÁVEIS GLOBAIS ........................................................................................................35

2.4. DESVIO CONDICIONAL EM C.............................................................................................36

2.4.1. DESVIO CONDICIONAL SIMPLES.......................................................................................36

2.4.2. DESVIO CONDICIONAL COMPOSTO ..................................................................................36

2.4.3. IF’S ANINHADOS..............................................................................................................37

2.4.4. EXEMPLO........................................................................................................................37

SOLUÇÃO SEM O USO DE “IF”. ....................................................................................................37

2.4.5. EXERCÍCIO .......................................................................................................................39

2.5. LAÇOS DE REPETIÇÃO EM C..............................................................................................40

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. EXEMPLO........................................................................................................................41

2.5.5 EXERCÍCIOS ......................................................................................................................42

2.6. PROCEDIMENTOS EM C.............................................................................................43

2.6.1. DEFINIÇÃO......................................................................................................................43

2.6.2. EXEMPLO 1 ......................................................................................................................43

2.6.3. PROTÓTIPO ......................................................................................................................46

2.6.4. PARÂMETROS...................................................................................................................47

2.6.5. EXEMPLO 2 ......................................................................................................................47

2.7. FUNÇÂO EM C ...............................................................................................................50

2.7.1. DEFINIÇÃO......................................................................................................................50

2.7.2. DECLARAÇÃO ..................................................................................................................50

2.7.3 PARÂMETROS E RETORNO .................................................................................................50

2.7.4. EXEMPLO 1 ......................................................................................................................51

2.7.5. EXEMPLO 2 ......................................................................................................................53

2.7.6. EXERCÍCIOS .....................................................................................................................55

2.8. INCREMENTOS E DECREMENTOS......................................................................................56

2.8.1. INCREMENTO/DECREMENTO A POSTERIORI .....................................................................56

2.8.2. INCREMENTO/DECREMENTO A PRIORI .............................................................................57

2.8.3. EXERCÍCIO .......................................................................................................................57

2.9. ATRIBUIÇÃO COMPOSTA ..................................................................................................58

2.9.1. EXERCÍCIO .......................................................................................................................58

2.10. ATRIBUIÇÃO MÚLTIPLA.................................................................................................58

2.10.1. EXEMPLO.......................................................................................................................58

2.11. OPERADOR INTERROGAÇÃO (?) .....................................................................................59

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

III

2.12.1. SINTAXE DO COMANDO .................................................................................................59

2.12.2. EXEMPLO.......................................................................................................................59

2.13 COMANDO SWITCH/CASE..................................................................................................60

2.13.1. SINTAXE DO COMANDO..................................................................................................60

2.13.2. EXEMPLO.......................................................................................................................60

2.14. TIMER ..............................................................................................................................61

2.14.1. O COMPONENTE TIMER NO C++ BUILDER .....................................................................61

2.14.2. AS PROPRIEDADES DO TIMER .........................................................................................62

2.14.3. EXEMPLO.......................................................................................................................62

2.14.4. EXERCÍCIO .....................................................................................................................62

3. ESTRUTUAS HOMOGÊNEAS DE DADOS..................................................................63

3.1. MATRIZES UNIDIMENSIONAIS (VETORES).........................................................63

3.1.1. EXEMPLOS .......................................................................................................................63

3.1.2. INDEXAÇÃO .....................................................................................................................63

3.1.3. EXEMPLO........................................................................................................................64

3.1.4. EXERCÍCIO .......................................................................................................................65

3.2. ORDENAÇÃO DE VETORES.................................................................................................65

3.2.1. ALGORITMO DE ORDENAÇÃO (BOLHA).............................................................................65

3.2.2. EXERCÍCIO .......................................................................................................................66

3.3. STRINGS.........................................................................................................................67

3.3.1.EXEMPLO 1.......................................................................................................................67

3.3.2.EXEMPLO 2.......................................................................................................................68

3.3.3. COPIANDO STRINGS .........................................................................................................68

3.3.4. COMPARAÇÃO DE STRINGS ..............................................................................................69

3.3.5. TAMANHO DE STRINGS.....................................................................................................69

3.3.6. COMPARAÇÃO DE ELEMENTOS DA STRING ......................................................................70

3.3.7. CONVERSÃO DE TIPOS......................................................................................................70

3.3.7.1. convertendo valores numéricos para caracter..............................................................71

3.3.7.2. convertendo string para valores numéricos .................................................................71

3.3.8 EXERCÍCIOS ......................................................................................................................72

3.4. MATRIZES......................................................................................................................73

3.4.1. MATRIZES BIDIMENSIONAIS ............................................................................................73

3.4.2. MATRIZES MULTIDIMENSIONAIS ......................................................................................74

3.4.3. MATRIZES DE STRINGS.....................................................................................................74

3.4.4. EXERCÍCIOS .....................................................................................................................76

4. PONTEIROS EM C ...........................................................................................................78

4.1. DEFINIÇÃO ....................................................................................................................78

4.2. DECLARAÇÃO DE UM PONTEIRO.......................................................................................79

4.3. EXERCÍCIOS......................................................................................................................80

4.4. PONTEIROS PARA MATRIZ.................................................................................................82

4.5. VETORES DE PONTEIROS ..................................................................................................85

4.5.1. EXEMPLO 1 ......................................................................................................................85

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

IV

4.5.3. EXEMPLO 2 ......................................................................................................................87

4.5.4. EXERCÍCIOS .....................................................................................................................88

5. ALOCAÇÃO DINÂMICA DE MEMÓRIA ....................................................................89

5.1. INTRODUÇÃO.....................................................................................................................89

5.2. COMANDO DE ALOCAÇÃO .................................................................................................89

5.2.1. EXEMPLO DE ALOCAÇÃO USANDO O COMANDO MALLOC().............................................89

5.2.2. MELHORANDO O USO DE PONTEIROS...............................................................................92

5.3. EXERCÍCIOS......................................................................................................................93

5.4. PORTABILIDADE ................................................................................................................93

5.4.1. EXEMPLO DO USO DE SIZEOF............................................................................................94

5.5. EXERCÍCIOS..................................................................................................................94

6. ARQUIVOS EM C ............................................................................................................99

6.1. PONTEIRO DE ARQUIVO.....................................................................................................99

6.2. ABRINDO ARQUIVOS..........................................................................................................99

6.2.1. ARQUIVOS TIPO TEXTO .................................................................................................100

6.2.2. ARQUIVOS BINÁRIOS .....................................................................................................101

6.3. ABRINDO UM ARQUIVO PARA ESCRITA ...........................................................................101

6.3.1. OBSERVAÇÕES...............................................................................................................102

6.4. ABRINDO UM ARQUIVO PARA LEITURA...........................................................................103

6.5. FECHANDO UM ARQUIVO.................................................................................................103

6.6. COMANDOS DE ESCRITA E LEITURA................................................................................104

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() ................................................................................111

6.9. EXERCÍCIOS COM FPUTS() E FGETS() ..............................................................................112

6.10. LEITURA COM FREAD() .................................................................................................112

6.11. GRAVAÇÃO COM FWRITE() ...........................................................................................113

6.12. GRAVAÇÃO COM FPRINTF() ..........................................................................................113

6.13. LEITURA COM FSCANF()................................................................................................114

6.14. EXERCÍCIOS...................................................................................................................115

7. REGISTROS.....................................................................................................................116

7.1. DEFINIÇÃO......................................................................................................................116

7.2. INICIALIZAÇÃO................................................................................................................116

7.2.1. EXEMPLO 1 ....................................................................................................................117

7.2.2. EXEMPLO 2 ....................................................................................................................117

7.3. ACESSO AOS ELEMENTOS DA ESTRUTURA ......................................................................117

7.4. EXERCÍCIO......................................................................................................................118

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

V

7.5.1.EXEMPLO........................................................................................................................118

7.5.2. EXERCÍCIO .....................................................................................................................119

7.6. USO DE TYPEDEF..........................................................................................................121

7.6.1. EXEMPLO.......................................................................................................................121

7.6.2. EXEMPLO 2 ....................................................................................................................121

7.7. GRAVAÇÃO E LEITURA DE REGISTROS ..........................................................................122

7.7.1 EXEMPLO........................................................................................................................122

7.7.2.EXERCÍCIO......................................................................................................................122

7.8. PONTEIROS PARA REGISTROS .........................................................................................123

7.8.1.EXEMPLO........................................................................................................................123

8. GRÁFICOS EM C............................................................................................................126

8.1. INTRODUÇÃO..............................................................................................................126

8.2. DESENHANDO LINHAS.....................................................................................................126

8.3. USANDO O PAINTBOX......................................................................................................128

8.4. COMPONENTE PANEL......................................................................................................129

8.5. DESENHANDO RETÂNGULOS...........................................................................................130

8.6. DESENHANDO ELIPSES ....................................................................................................131

8.7. DESENHANDO PONTOS (PIXELS).....................................................................................132

8.8. EXEMPLO........................................................................................................................132

8.9 EXERCÍCIOS.....................................................................................................................136

9. LISTAS LINEARES ........................................................................................................137

9.1. FILA ................................................................................................................................137

9.1.1. DEFINIÇÃO.....................................................................................................................137

9.1.2. OBJETIVO.......................................................................................................................137

9.1.3. EXEMPLO.......................................................................................................................137

9.2. FILA CIRCULAR...............................................................................................................140

9.3. PILHA..............................................................................................................................142

9.3.1. DEFINIÇÃO.....................................................................................................................142

9.3.2. EXEMPLO.......................................................................................................................142

9.4. EXERCÍCIOS.....................................................................................................................143

9.5. LISTAS ENCADEADAS ......................................................................................................144

9.6. EXEMPLO........................................................................................................................145

9.7. EXERCÍCIO......................................................................................................................146

9.8. EXEMPLO........................................................................................................................146

9.9. OPERAÇÕES COM LISTA ENCADEADA............................................................................147

9.10. EXEMPLO.......................................................................................................................148

9.11. LISTAS DUPLAMENTE ENCADEADAS ............................................................................150

9.12. EXEMPLO.......................................................................................................................150

9.13. EXEMPLO.......................................................................................................................151

10. RECURSIVIDADE ........................................................................................................154

VI

10.1. INTRODUÇÃO............................................................................................................154

10.2. EXEMPLO...................................................................................................................154

10.3. EXERCÍCIOS...................................................................................................................155

11.EXERCÍCIOS COM VETORES...................................................................................156

12 -EXERCÍCIOS COM MATRIZES ...............................................................................157

13. EVENTOS DE FORMULÁRIO E VARIÁVIES EXTERNAS .................................159

13.1. EXERCÍCIO PROPOSTO .........................................................................................159

13.2. LISTAGEM DO PROGRAMA..................................................................................160

13.2.1. UMEDIA1.CPP ..............................................................................................................160

13.2.2. UMEDIA.CPP ................................................................................................................161

14. ROTINAS DE ORDENAÇÃO ......................................................................................163

15.COMPONENTES DO C++ BUILDER E SUAS PRINCIPAIS PROPRIEDADES .166

15.1. BITBTN ........................................................................................................................166

15.1.1. PRINCIPAIS PROPRIEDADES ..........................................................................................166

15.1.2. EXEMPLO.....................................................................................................................167

15.2 CHECKBOX.................................................................................................................167

15.2.1. PRINCIPAIS PROPRIEDADES ..........................................................................................167

15.2.2. EXEMPLO.....................................................................................................................168

15.3. COMBOBOX...............................................................................................................168

15.3.1. PRINCIPAIS PROPRIEDADES ..........................................................................................168

15.3.2. EXEMPLO.....................................................................................................................169

15.4. LISTBOX......................................................................................................................170

15.4.1. PRINCIPAIS PROPRIEDADES ..........................................................................................170

15.4.2. EXEMPLO.....................................................................................................................170

15.5. PAGECONTROL........................................................................................................171

15.5.1. PRINCIPAIS COMANDOS................................................................................................172

15.5.2. EXEMPLO.....................................................................................................................172

15.6. RADIOBUTTON.........................................................................................................173

15.6.1. PRINCIPAIS PROPRIEDADES ..........................................................................................173

15.6.2. EXEMPLO.....................................................................................................................173

15.7. RADIOGROUP............................................................................................................174

15.7.1. PRINCIPAIS PROPRIEDADES ..........................................................................................174

15.7.2. EXEMPLO.....................................................................................................................174

15.8. SCROLLBAR ..............................................................................................................175

15.8.1. PRINCIPAIS PROPRIEDADES ..........................................................................................176

15.8.2. EXEMPLO.....................................................................................................................176

15.9. SPEEDBUTTON..........................................................................................................177

15.9.1. PRINCIPAIS PROPRIEDADES..........................................................................................177

15.9.2. EXEMPLO.....................................................................................................................177

VII

15.10. STRINGGRID............................................................................................................178

15.10.1. PRINCIPAIS PROPRIEDADES........................................................................................178

15.10.2. EXEMPLO...................................................................................................................179

15.11. TABCONTROL.........................................................................................................179

15.11.1. PRINCIPAIS PROPRIEDADES........................................................................................179

15.11.2. EXEMPLO...................................................................................................................180

1

TP I

TP I - Capítulo 1

2

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. Identificação

1.1. Campus: Curitiba

1.2. Centro: CCET

1.3. Curso: Engenharia Mecatrônica.

1.4. Habilitação: Engenharia de Controle e Automação

1.5 Programa de aprendizagem (PA) : Técnicas de Programação I

1.6 Ano Letivo: 2001 Período:1º e 2° (D & N) Semestre: 1º e 2º (D & N)

1.7 Carga Horária Total: 54 Nº de créditos: 2

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

3

3. Ementa

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.

4. Temas de estudo

- 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.

5. Metodologia

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.

- Apresentação de trabalhos.

c. Recursos e Materiais

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

microcomputadores da Universidade.

6. Procedimetnos de Avaliação

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

4

7. Bibliografia Recomendada

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 (www.erica.com.br);

7. C++ Buider 5 Developer´s Guide; J. Hollinworth, D. Butterfield, et al. Ed. SAMS;

8. Internet

TP I - Capítulo 1

5

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:

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

Ou → chegar ao destino

→ pegar o carro

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;

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

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

resposta: _________

TP I - Capítulo 1

6

1.2. ALGORITMOS EM PORTUGOL

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

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;

• Antecipar a correção;

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

• Permitir que o desenvolvimento seja feita por uma equipe de pessoas.

Uma técnica formal afasta a possibilidade de uma ambiguidade. Ou seja, a partir de

dadas condições iniciais a execução do algoritmo será realizada por um mesmo

"caminho" (sequência de ações), que deve resultar num mesmo estado final. Uma destas

técnicas é o portugol.

1.3. PORTUGOL

Portugol é uma pseudolinguagem que permite ao programador pensar no problema em si

e não no equipamento que irá executar o algoritmo. Devem ser considerados a sintaxe

(em relação à forma) e a semântica (em relação ao conteúdo ou seu significado). Em

portugol a sintaxe é definida pela linguagem e a semântica depende do significado que

quer se dar ao algoritmo.

No portugol e nas linguagens de programação, basicamente têm-se comandos e

variáveis que operacionalizam a execução de um algoritmo. Estes comandos são

TP I - Capítulo 1

7

executados sequencialmente, de forma que um comando só será executado após a

finalização do comando anterior.

A estrutura de um algoritmo em portugol pode ser dada como:

Exemplo:

início

<declarações de variáveis>

<comandos>

fim

1.4. Variáveis

1.4.1. Declaração de Variáveis

Uma variável é um local (área na memória do computador) que armazena um tipo

específico de conteúdo. Uma variável contém um valor que se modifica durante a

execução do programa. A variável possui um identificador (nome), que pode ser

representado da seguinte forma:

TP I - Capítulo 1

8

1.4.1.1. Tipos de Variáveis

Variáveis são componentes das linguagens de programação, que identificam os valores que

estão sendo manipulados pelos programas. Uma variável, como o próprio nome sugere,

contém valores que variam de acordo com a execução do programa. Uma variável deve

possuir um tipo específico. As variáveis em portugol, são divididas em 4 tipos principais,

(embora na linguagem C existam modificações para estes tipos principais).

No portugol, os tipos básicos de variáveis são:

• Inteiro: Qualquer número inteiro (negativo, nulo ou positivo).

Exemplo: -100, 0, 1, 2, 1250.

• Real: Qualquer número real, nulo ou positivo.

Exemplo: -10, -1.5, 11.2, 0,1, 2, 50.

• Caracter: Caracteres alfanuméricos.

Exemplo: casa, Win31, 123, alfa#2, etc...

• Lógico: valor lógico verdadeiro ou falso

Exemplo: x > y ?

Exemplos: inteiro: valor; // a variável valor é do tipo inteiro

real: media; // a variável media é do tipo real

caracter: nome_aluno; // a variável nome_aluno é do tipo caracter

lógico: maior; // a variável maior é do tipo booleano

1.4.1.2. Identificadores de Variáveis

O identificador de uma variável, se refere ao nome de como ela vai ser conhecida no

programa. È importante não esquecer que:

a) Não é possível definir variáveis de diferentes tipos com o mesmo identificador

(nome); O exemplo: real A; inteiro A; causaria erro na programação, mas pode ser

TP I - Capítulo 1

9

usado real A1; inteiro A2; ou normalmente um nome mais significativo, como real

media, inteiro valor, caracter nome, etc.

b) Tomar alguns cuidados em relação à sintaxe da linguagem, por exemplo, não é

possível ter identificador como: caracter ?nome, real valor*, inteiro 1x, .

c) .Letras maiúsculas e minúsculas são tratadas de forma diferente, então Media é

diferente de media, como também de MEDIA.

Cada variável definida no programa usa um local da memória, que é acessada através do

nome dado a variável. O espaço de memória ocupado pelo conteúdo da variável,

depende do tamanho destes tipos de dados, que variam de acordo com o tipo do

processador a com a implementação do compilador. Como referência inicial para este

estudo sobre variáveis, pode-se considerar pelo ANSI C, o seguinte:

• Tipo Inteiro com 2 bytes;

• Tipo real com 4 bytes;

• Tipo caracter com 1 byte;

Exemplo:

Pode-se supor a memória como uma matriz, como a figura abaixo, onde cada célula possui

tamanho de 1 byte (8 bits):

Para armazenar o valor inteiro A= 1, necessita-se de 2 bytes (1 inteiro = 2 bytes na memória*);

Para armazenar o valor real B= 1, necessita-se de 4 bytes (1 real = 4 bytes na memória*);

* no C ANSI; no C++ Builder os tamanhos das variáveis são diferentes.

A B

área ocupada por outros

programas.

TP I - Capítulo 1

10

1.4.2 Constantes

Uma constante é um valor fixo, que não se modifica ao longo do tempo, durante a

execução do programa. Em algoritmos representaremos constantes pelo tipo const,

constante ou #define (eventualmente, na elaboração dos algoritmos, alguns elementos da

linguagem C podem ser escritos no algoritmo).

Exemplo: const M 10;

1.5. Estrutura do Algoritmo em Portugol

1.5.1. Comando de Atribuição (<-)

A sintaxe do comando é dada por:

Exemplos:

a) atribuição de um valor constante inteiro valor;

valor <- 10;

b) atribuição entre variáveis inteiro valor;

inteiro x;

x <- 10;

valor <- x;

c) resultado de expressões: inteiro valor;

inteiro x, y;

x <- 10;

y <- 5;

valor <- x + y * 2;

TP I - Capítulo 1

11

1.5.2. Operadores Aritméticos

Os símbolos das operações básicas são:

• A multiplicação é dada através do operador * (asterisco);

Exemplo: z <- x * y;

• A soma é realizada através do operador + ;

Exemplo: z <- x + y;

• A subtração é dada através do operador -;

Exemplo: z <- x - y;

• A divisão para real será dada por / ;

Exemplo: z <- x / y;

• A divisão para inteiro será dada por div ;

Exemplo: z <- x div y;

• O resto de uma divisão é dada pelo comando mod .

Exemplo: z <- x mod y;

• O cálculo de xy é dado pelo símbolo ^ .

Exemplo: z <- x^y;

• A raiz de uma valor é extraída através do comando raiz() .

Exemplo: z <- raiz(x);

Exemplos

a) Desenvolva um algoritmo em portugol para somar dois valores inteiros (10 + 5)

inicio

inteiro x,y,z;

x <- 10;

y <- 5;

z <- x + y;

fim

Reservar 3 espaços de memória do tipo inteiro,

chamados x, y e z.

Atribuição de valores iniciais às variáveis.

O resultado da soma de x + y será armazenado no

espaço de memória z

TP I - Capítulo 1

12

Obs:

- O incoveniente deste algoritmo é que sempre fornecerá o mesmo resultado, o que não é

interessante. De maneira mais correta, os valores de x e y podem ser fornecidos pelo

usuário, permitindo ao algoritmo que efetue a soma de dois números quaisquer.

- Neste exemplo podemos observar que o resultado da soma de x + y será armazenado em

z. Como o usuário ficará sabendo da resposta ? É necessário usar comandos de escrita,

para apresentar os resultados.

1.5.3. Entrada e Saída de Dados

Na construção de algoritmos, é conveniente que o usuário possa informar dados

externos, para serem operados pelo programa. Assim, um programa pode receber um

dado informado por um operador através de um comando de leitura. Da mesma forma,

pode ser necessário conhecer o resultado de determinada operação executada pelo

computador, então será necessária uma forma de exibir os dados.

Cada linguagem tem uma forma específica para entrada e saída de dados. Em algoritmos

usaremos os comandos genéricos leia() e escreva(), para realizar a interface com o

usuário.

Exemplo:

início

real A, B, C;

leia(A);

leia(B);

c <- A + B;

escreva(C);

fim

Lê os valores fonecidos pelo usuário e

armazena em A e B.

Apresenta a resposta (tela, impressora,

arquivo, etc)

TP I - Capítulo 1

13

1.5.4. Regras para escrever algoritmos em portugol

• Incluir comentários pelo menos nas linhas mais importantes do programa;

• Usar nomes significativos para as variáveis e constantes, que possam identificar o

conteúdo;

• Grifar as palavras chaves do portugol;

• Alinhar os comandos facilita a legibilidade do algoritmo e reduz a possibilidade

de erros.

1.5.5. Exercícios

1 – Desenvolva um algoritmo em portugol para calcular xy. Os valores de x e y serão

fornecidos pelo usuário do programa;

2 – Desenvolva um programa que calcule o volume de uma esfera de raio R, fornecido pelo

usuário. [ V = 4/3 π R3 ]

3 – Desenvolva um programa que transforme um valor de temperatura fornecido pelo usuário,

de Farenheit ( F ) para Graus Celcius ( ºC ). [C = 5/9 (F – 32)]

4 – Desenvolva um algoritmo para calcular a média entre 4 valores fornecidos pelo usuário.

5 – Desenvolva um algoritmo para encontrar as raízes de uma equação do tipo Ax2 + Bx + C.

1.6. Comandos de Controle

Os comandos de controle permitem alterar a direção tomada por um programa (desvio), ou

fazer com que partes específicas de um algoritmo seja executada mais de uma vez (loop).

1.6.1. Desvio Condicional

Muitas vezes será necessário desviar a execução do programa segundo uma condição.

(Exemplo: ir a universidade de carro ou de ônibus ?). Para se testar condições é necessário

utilizar operadores lógicos e relacionais.

1.6.1.1. Operadores Lógicos

TP I - Capítulo 1

14

Os operadores "e", "ou" e "não" permitem realizar a combinação lógica de variáveis do

tipo booleana (lógico).

Para isto utilizam-se as tabelas verdade:

Var1 Var2 E

V V V

V F F

F V F

F F F

Var1 Var2 OU

V V V

V F V

F V V

F F F

Var1 Não

V F

F V

1.6.1.2. Operadores Relacionais

Permitem realizar a comparação de conteúdos das variáveis:

A igualdade é dada por = ; Maior ou igual, pelo símbolo >=;

A desigualdade é dada por <> ; Menor ou igual, pelo símbolo <=;

Maior que, pelo símbolo >; Não !;

Menor que, pelo símbolo <;

1.6.1.3. Desvio Condicional Simples

Para que a execução de um algoritmo seja desviada para uma outra ação, é necessário um

comando de desvio. Este comando é dado pelas palavras reservadas se e fim se. Dentro deste

bloco podemos ter vários comandos de atribuição, operações lógicas e aritméticas, e também

novos blocos de desvio condicional.

se (condição) então

lista de comandos...

fim se

TP I - Capítulo 1

15

Desvio Condicional Simples

início

inteiro A, B;

A <- 100;

B <- 20;

se A > B então

A <- B;

B <- 0;

fim se

fim

Exercícios

1 – Desenvolva um algoritmo em portugol para calcular xy. Os valores de x e y serão

fornecidos pelo usuário do programa, e o maior valor deve estar em x e o menor em y;

2 – Desenvolva um programa que calcule o volume de uma esfera de raio R, fornecido pelo

usuário. Observe que R não pode ser menor que 0 (zero). [ V = 4/3 π R3 ] .

3 – Desenvolva um programa que transforme um valor de temperatura fornecido pelo usuário,

de Farenheit ( F ) para Graus Celcius ( ºC ), ou Graus Celcius para Farenheit, de acordo com

uma opção fornecida pelo usuário. [V = 5/9 (F – 32)]

4 – Desenvolva um algoritmo para encontrar as raízes de uma equação do tipo Ax2 + Bx + C.

Observe que o valor de A não pode ser 0 (zero) e o valor do delta não pode ser menor que 0.

1.6.1.4. Desvio Condicional Composto

Neste caso as condições, verdadeiro ou falso, podem gerar ações através de um único

comando de desvio condicional, adicionando-se o operador senão na estrutura condicional,

como apresentado abaixo:

se (condição) então

lista de comandos...

senão

lista de comandos...

fim se

TP I - Capítulo 1

16

Desvio Condicional Composto

...

se A > B então

A <- B;

B <- 0;

senão

B <- A;

A <- 1;

fim se

...

Exercícios

1 – Desenvolva um algoritmo que apresente como resposta se um valor inteiro fornecido pelo

usuário é par ou ímpar;

2 – Dado o gráfico abaixo, testar se um valor T qualquer fornecido pelo usuário, pertence ao

intervalo T0 ≤ T ≤ T1. Dados T0 = 5, T1 = 10, V0 = 1, V1 = 2;

3 – Dado o gráfico do exercício 2, desenvolva um algoritmo que apresente o valor de V para

um dado valor de T, fornecido pelo usuário.

4 – Modifique os exercícios 3 e 4 do item 1.6.1.3. para utilizar um desvio condicional

composto, se for o caso.

V0

V1

T0 T1 T

V

TP I - Capítulo 1

17

1.6.2. Laços de Repetição (loop)

Uma sequência de ações é repetida por um número específico de vezes, até que uma

condição seja satisfeita. Enquanto a condição for verdadeira, as instruções serão

executadas. O laço de repetição também pode ser chamado de loop.

Exemplo 1:

Durante uma semana, um mês, etc, vc pode realizar a mesma seqüência de ações, como

no exemplo:

1 º Dia

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

Ou → chegar ao destino

→ pegar o carro

2 º Dia

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

Ou → chegar ao destino

→ pegar o carro

.

.

.

N – ésimo Dia

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

Ou → chegar ao destino

→ pegar o carro

Como as ações se repetem durante um período ou até que um evento ocorra (chegar ao

fim de semana) , pode-se melhorar escrita da sequência do exemplo acima, como:

TP I - Capítulo 1

18

Exemplo 2:

Enquanto ( não chegar ao fim de semana) faça

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

Ou → chegar ao destino

→ pegar o carro

Exemplo 3:

Enquanto ( dia < N) faça

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

Ou → chegar ao destino

→ pegar o carro

Então, pode-se observar que as construções dos exemplos 2 e 3, representam as N

repetições do exemplo 1. Em termos práticos da programação, a forma dos exemplos 2 e

3, de escrever ações que se repetem, são corretas. A forma de escrever as ações do

exemplo 1 que se repetem é incorreta, apesar de levar o mesmo resultado, pois imagine

reescrever as mesmas ações para 365 dias, ou mais...

1.6.2.1. Comando: enquanto/faça

Em portugol, escreve-se o comando enquanto / faça, da forma apresentada abaixo.

Note que se forma um bloco de comandos, delimitado ente o início e o fim do loop.

Veja o exemplo:

enquanto (condição) faça

fim enquanto

...

lista de comandos;

...

A “condição “ se refere a um

critério de parada do loop, ou

seja, até quando o loop vai ser

executado.

Um ou mais comandos que

serão executados enquanto a

condição for verdadeira.

TP I - Capítulo 1

19

Suponha os algoritmos abaixo que calculam o valor de x10, sendo x fornecido pelo

usuário. Em termos de programação, pode-se ver a diferença na escrita dos programas a

seguir, com e sem o uso de um laço de repetição (loop):

Exemplo sem loop Exemplo com loop

inicio

inteiro x,y;

leia (x);

y <- x;

y <- y * x;

y <- y * x;

y <- y * x;

y <- y * x;

...

...

...

y <- y * x;

escreva (y);

fim

inicio

inteiro x,y,z;

leia (x);

y <- x;

z <- 1;

enquanto (z < 10) faça

y <- y * x;

z <- z + 1;

fim enquanto

escreva (y);

fim

Exemplos:

a) O problema do loop infinito:

inicio

inteiro I;

I <- 0;

enquanto (I < 5) faça

escreva (I);

fim enquanto

fim

Teste de Mesa

inicio I = 0

1ª iteração I = 0

2ª iteração I = 0

3ª iteração I = 0

... ...

infinitas iterações I = 0

Obs: O programa ficará travado, pois a

condição de saída do loop nunca será

satisfeita

TP I - Capítulo 1

20

b) Corrigindo o problema do loop infinito:

inicio

inteiro I;

I <- 0;

enquanto (I < 5) faça

I <- I + 1;

escreva (I);

fim enquanto

fim

1.6.2.2. Comando: para / até / faça

Em portugol, escreve-se o comando para / até / faça, da forma apresentada abaixo.

Note que se forma um bloco de comandos, delimitado ente o início e o fim do loop.

Veja a sintaxe do comando:

para variável de valor inicial até valor final faça

fim para

Exemplos:

a) Loop para/faça com passo crescente igual a 1.

inicio

inteiro I;

para I de 1 até 5 faça

escreva (I);

fim para

fim

Teste de Mesa

inicio I = 0

1ª iteração I = 1

2ª iteração I = 2

3ª iteração I = 3

4ª iteração I = 4

5ª iteração I = 5

5 < 5 ? sai do loop

...

lista de comandos;

...

Variável que será incrementada

a cada iteração do loop.

Valor final do loop (critério de

parada.

Valor inicial da variável

Teste de Mesa

inicio

1ª iteração I = 1

2ª iteração I = 2

3ª iteração I = 3

4ª iteração I = 4

5ª iteração I = 5

5 < 5 ? sai do loop

Obs: No loop do tipo para/faça o valor da

variável de controle do loop é incrementada

automaticamente de 1 a cada loop.

TP I - Capítulo 1

21

b) Loop para/faça com passo diferente de 1 (incremento):

inicio

inteiro I;

para I de 1 até 5 passo 2 faça

escreva (I);

fim para

fim

c) Loop para/faça com passo decrescente:

inicio

inteiro I;

para I de 5 até 1 passo -2 faça

escreva (I);

fim para

fim

Exercícios:

1 – Escreva um algoritmo para gerar uma PA de razão qualquer, com uma série de 10 termos.

2 – Modifique o exercício 5.1 para uma PA de N termos.

3 – Escreva um algoritmo para gerar a sequência de Fibonacci da forma abaixo, até o

vigésimo termo: 1,1,2,3,5,8,13, ...

4 – Sejam dados P(X1,Y1) e Q(X2,Y2) dois pontos quaisquer no plano. Escreva um algoritmo

que leia os pares de coordenada x e y e calcule a distância entre estes dois pontos.

5 – Escreva um algoritmo que gere uma tabela com a conversão de graus para Fahrenheit para

Celsius e vice versa, com valores variando de 1 em 1 grau, de 0 a 100 graus Celsius.

Teste de Mesa

inicio

1ª iteração I = 1

2ª iteração I = 3

3ª iteração I = 5

5 < 5 ? sai do loop

Obs: No loop do tipo para/faça o valor da

variável de controle do loop é incrementada

automaticamente de 2 em 2 a cada loop.

Teste de Mesa

inicio

1ª iteração I = 5

2ª iteração I = 3

3ª iteração I = 1

1 < 1 ? sai do loop

Obs: No loop do tipo para/faça o valor da

variável de controle do loop é

decrementada automaticamente de 2 em 2 a

cada loop.

Capítulo 2

22

2. PROGRAMAÇÃO EM LINGUAGEM C

2.1. INTRODUÇÃO A PROGRAMAÇÃO EM LINGUAGEM C

2.1.1. Declaração de Variáveis

As diferenças entre os tipos de variáveis do portugol para o C são:

inteiro = int

real = float, double

caracter = char

lógico = bool (normalmente não é necessário tipos booleanos para testes lógicos)

Para alterar a precisão dos valores podem ser utilizados modificadores:

C ANSI Modificadores Exemplos:

char

int

float

double

signed

unsigned

long

short

int x ; (x é um inteiro com sinal - signed)

unsigned int y; (x é um inteiro sem sinal - unsigned)

long z; (z é um inteiro com o dobro do tamanho de um int)

short int v; (v tem o mesmo tamanho de um int)

Exemplos:

a) signed int (ou simplesmente int):

Tipo de variável que se refere a um número inteiro com sinal. Ou seja, se um

variável int ocupa dois bytes na memória, então, o maior valor decimal que pode ser

armazenado neste tipo de variável deve estar entre –32.767 a 32.767.

O primeiro bit (mais significativo) representa o sinal (0 positivo e 1 negativo). Então o

maior valor decimal que pode ser armazenado em 15 bits é 32.767.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 bit de sinal 15 bits de informação

Capítulo 2

23

b) unsigned int;

Tipo de variável que se refere a um número inteiro sem sinal. Ou seja, se um variável

int ocupa dois bytes na memória, então, o maior valor decimal que pode ser

armazenado neste tipo de variável deve estar entre 0 a 65.535.

O primeiro bit (mais significativo) não representa mais o sinal. Então o maior valor

decimal que pode ser armazenado em 16 bits é 65.535.

O tamanho em bytes de cada tipo de variável no C, é apresentado na tabela abaixo.

Tipo Tamanho em Bits Faixa de valores

char 8 -127 a 127

unsigned char 8 0 a 255

signed char 8 -127 a 127

int 16 -32767 a 32767

unsigned int 16 0 a 65.535

signed int 16 mesmo que int

short int 16 mesmo que int

unsigned short int 16 mesmo que unsigned int

signed short int 16 mesmo que short int

long int 32 -2.147.483.647 a 2.147.483.647

signed long int 32 Mesmo que long int

unsigned long int 32 0 a 4.294.967.295

float 32 seis dígitos de precisão

double 64 dez dígitos de precisão

long double 80 dez dígitos de precisão

Fonte: C Completo e Total; Herbert Schildt.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

16 bits de informação

Capítulo 2

24

2.1.2. Comando de atribuição:

O comando de atribuição em linguagem é dado pelo símbolo = (igual).

Exemplo:

float A, B, C;

A = 10;

B = 20;

C = A + B;

2.1.3. Blocos de Comandos:

Os blocos de comando, definidos no portugol pelas palavras início/fim, na linguagem C

serão representados pelas { } (chaves).

Exemplo:

Portugol Linguagem C

início

real A, B, C;

A <- 10;

B <- 20;

c <- A + B;

fim

{

float A, B, C;

A = 10;

B = 20;

C = A + B;

}

Capítulo 2

25

2.2. BORLAND C++ BUILDER

2.2.1. O ambiente de desenvolvimento

O C++ Builder tem um ambiente de desenvolvimento integrado, com as ferramentas

necessárias para a criação dos mais variados programas. Para o desenvolvimento de

aplicações serão usados basicamente, formulários, alguns componentes e suas

propriedades, "units", e bibliotecas.

Um programa escrito em ANSI C é representado por um arquivo que contém o código

fonte e possui extensão “.C” (nomearquivo.c). No C++ Builder o código fonte é escrito

dentro de uma unit e o arquivo gravado possui a extensão ".cpp". O projeto também

tem extensão “.cpp”, e pode conter uma ou mais units, e um ou mais formulários

(forms). Ao ser compilado é gerado um arquivo executável com a extensão “.exe”. O

arquivo com extensão “.h”, armazena as definições dos recursos usados pela unit, e o

arquivo com extensão “.dfm”, contém os recursos usados pelo programa.

Os arquivos “.cpp” são criados pelo programador, e os demais arquivos são criados

automaticamente pelo compilador. Os aquivos destacados em negrito fazem parte do

programa fonte, e serão necessários toda a vez que for preciso modificar o programa.

Os demais são gerados a cada compilação.

Project

unit

form

Os aquivos que fazem parte do

projeto, de um programa em C++

Builder, são:

- unit1.cpp

- project1.cpp

- unit1.h

- unit1.dfm

- unit1.obj

- project1.obj

- project1.res

- project1.bpr

- project1.exe

Capítulo 2

26

2.2.2. A interface de desenvolvimento

Quando se inicia a criação de um programa (opção new aplicattion do menu), são

apresentados ao usuário, a janela do formulário (form), a barra de componentes

(component palette) e a barra de propriedades e eventos (object inspector).

3.2.2.1. Barra de Componentes

A barra de componentes apresenta todos os elementos que podem ser adicionados a um

formulário, para a criação de um programa.

2.2.2.2. Formulário (form)

O formulário (form) é a janela que irá receber os componentes (botões, edits, etc) que

irão operar sobre o programa.

O formulário é a interface entre o programa e o usuário. É o meio pelo qual o usuário

interage com o programa, seja inserindo dados através de uma caixa de texto, seja

executando uma função ao clique de um botão, etc.

caixa de texto

botão

form

rótulo

Capítulo 2

27

2.2.2.3. Barra de Propriedades

Cada componente possui uma lista de propriedades (no object inspector) que pode ser alterada

de acordo com a necessidade do programador. Da mesma forma os eventos podem ser

utilizados para executarem ações durante o uso do programa.

2.2.3. A criação de programas

Enunciado:

Dado o algoritmo que calcula a soma de dois números, elabore um programa em C, que

realize as operações representadas no algoritmo.

Para resolver este problema, primeiramente é necessário conhecer as diferenças entre os

comandos do portugol e da linguagem C, como apresentado a seguir:

Esta janela apresenta as propriedades do

componente com o "foco". As propriedades, ou

eventos podem ser alterados nesta janela,

quando da escrita do programa.

Por exemplo:

a) para alterar o título do formulário, alterar

a propriedade “caption”;

b) para alterar o nome do formulário alterar

a propriedade “name”;

c) para alterar as cores do formulário

alterar a propriedade “color”.

As propriedades podem ser alteradas também

durante a execução do programa, bastando

referenciar o componente e a respectiva

propriedade através do conector "->". Assim,

no programa, pode-se escrever:

Form1->Caption = “programa1”;

Capítulo 2

28

Portugol Linguagem C

inicio

inteiro a,b,c;

leia(a);

leia(b);

c = a + b:

escreva(c);

fim

{

int a,b,c;

a = atoi(Edit1->Text.c_str());

b = atoi(Edit2->Text.c_str());

c = a + b;

Edit3->Text = c;

}

Algumas diferenças ocorrem na leitura, escrita e atribuição de valores, como também em

relação aos operadores relacionais, lógicos e aritméticos, como apresentado a seguir:

a) Entrada de Dados

leia(n); é escrito como n = atoi(Edit1->Text.c_str());

Onde,

Edit1 é o nome do componente EditBox;

Edit1->Text é a propriedade texto de Edit1;

Edit1->Text.c_str() é o formalismo do Builder para leitura de string;

atoi() é a função do C para converter caracteres alfanuméricos (texto) em valor

numérico do tipo inteiro.

Para usar a função atoi() é necessário incluir uma biblioteca do C:

#include <stdlib.h>

Obs:

- Note que Edit1 é o nome do componente e Text é uma das propriedades; esta

especificamente diz respeito ao conteúdo da caixa de texto.

- Note também que Edit1

...

Baixar como  txt (64 Kb)  
Continuar por mais 20 páginas »