Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Elementos de Programação PDF
Apostila Elementos de Programação PDF
EDIÇÃO Nº 1 - 2007
SUMÁRIO
Apresentação
programador.
é uma tarefa ampla, através de uma abordagem cada vez mais multidisciplinar e
exigindo do profissional uma visão cada vez mais integrada de todos os elementos
envolvidos.
O principal objetivo deste curso é você obter esta “visão ampla” (alguns
foi revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante.
acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax,
dificuldade.
Carta do Professor
Caro aluno,
É com esta mensagem que eu desejo iniciar este novo módulo. Você estar
aqui, significa que já superou os primeiros passos na programação de computadores
e concluiu que não é tão complexa como os “outros” comentavam. Na verdade,
assim como outras atividades em nossa vida, a programação de computadores
tornou-se uma ciência “elegante”, ou seja, possui uma maturidade que nos favorece
aprender e criar soluções poderosas.
Nas primeiras duas aulas deste curso, faremos um avanço na lógica de
programação, aprendendo a trabalhar com arrays e também sobre registros. Esses
dois assuntos ampliam a forma como trabalhamos com variáveis em nossos
programas e permite soluções específicas para problemas estruturados mais
complexos. A terceira aula é que possui uma característica especial: você terá o
primeiro contato com uma nova abordagem na construção de programas, a
programação orientada a objetos. Esse assunto recebe uma “aura” de grande
importância diante dos desafios atuais, mas amplifica as preocupações dos
iniciantes em programação, já que fornece um novo enfoque na interpretação e
construção de programas.
Bom estudo!
Cronograma de Estudo
Acompanhe no cronograma abaixo os conteúdos das aulas, e atualize as
Plano de Estudos
Ementa
Continuidade do curso de Lógica de Programação. Arrays, vetores e matrizes.
Trabalhar com registros. Programação orientada a objetos, aspectos iniciais e
elementos fundamentais. Introdução à UML e representação gráfica de soluções
baseadas em objetos. Programação Visual e componentes gráficos para a
construção de sistemas.
Objetivos da Disciplina
• Geral
Continuar os conhecimentos sobre lógica de programação;
Compreender as bases da programação orientada a objetos;
Obter uma visão geral sobre a notação UML;
Conhecer o processo e os componentes na programação visual de sistemas
• Específicos
Aprender como trabalhar com estruturas de programação, com parte das
soluções baseadas em programação estruturada;
Conhecer os elementos principais do desenvolvimento de sistemas orientados
a objetos, principalmente no que se refere às formas diferentes para a
composição de soluções baseadas em computador;
Entender e conhecer como um programa orientado a objeto emprega os
elementos programação e quais seus benefícios em relação à programação
estruturada;
Aprender os componentes básicos para a modelagem de sistemas usando a
UML.
.
Aula 1
MANIPULAÇÃO DE ARRAYS
Objetivos da aula
Conteúdos da aula
Mas uma variável pode armazenar apenas um valor por vez, e haverá casos
que você precisará armazenar um grande volume de dados na memória. Nesse
cenário, o volume de trabalho e as dificuldades para manipular um grande volume
de dados, apenas com variáveis, é uma atividade que exigirá um esforço e uma
lógica que dificultaria ainda mais o seu trabalho.
Por exemplo, considere que você precisa trabalhar com uma lista de cinco
funcionários da empresa, o pseudocódigo usando variáveis seria:
2 ARRAYS
Array é uma estrutura de dados que representa uma variável em memória, que
será composta de um conjunto de elementos do mesmo tipo e representada por um
único nome.
Para representar um array em pseudocódigo, a linha de comando é a seguinte:
Sendo:
NotasBimestrais[2] 6,5
NotasBimestrais[3] 7
3 ARRAYS MULTIDIMENSIONAIS
Até agora vimos como trabalhar com um grande volume de dados usando
arrays unidimensionais (ou vetores). Mas em alguns casos, apenas uma dimensão
não é suficiente para representar adequadamente a informação no algoritmo. Além
disso, é comum desejarmos associar as informações para a comparação de dados.
Veja o exemplo que podemos ter (tabela 1):
Vendas[1,2] 2500,00
Vendas[2,1] 1100,00
Vendas[2,2] 2200,00
4.1 PROBLEMA
4.2 SOLUÇÃO
4.3 PROCEDIMENTO
4. Declare as variáveis:
variavel inteiro idades [ 10 ] , contar , total , acima , abaixo
acima <- 0
abaixo <- 0
proximo
7. Após receber a entrada de todas as idades, vamos obter a média das
idades. Insira o seguinte pseudocódigo:
// Calculando a média
fimse
fimse
proximo
9. Finalmente, vamos apresentar os resultados usando os seguintes
comandos:
escrever "Total das Idades: ", total, "\n"
total <- 0
acima <- 0
abaixo <- 0
proximo
// Calculando a média
fimse
fimse
proximo
fim
SÍNTESE
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________
___________________________________________________________________
_______________
Aula 2
Objetivos da aula
Conteúdos da aula
Como vimos na aula anterior, um array pode armazenar dados com os mesmos
tipos (por exemplo: tipos numéricos ou texto), em uma forma de matriz, mas há
necessidade de armazenamento de informações, usando a mesma abordagem de
um array, com tipos de dados diferentes. A construção de uma estrutura de dados,
na forma de matriz, que permite o armazenamento de diferentes tipos de dados em
seus elementos é conhecida como variável composta heterogênea.
É importante ressaltar que esse tipo de estrutura de dados também é
conhecido como “registro” e cada um de seus elementos são chamados de
“campos”. Esse tipo de abordagem busca associar à composição de um registro de
informações, por exemplo: um cadastro de clientes. A figura 7 mostra os campos
para que sejam registradas informações sobre um cliente.
Cadastro de Clientes
Nome
Endereço
Bairro Campos
Cidade
Estado
Idade
Salvar Cancelar
FIM REGISTRO
IDENTIFICADOR[índice].Campo [Valor]
2.1 PROBLEMA
2.2 SOLUÇÃO
2.3 PROCEDIMENTO
Fim
Reg_Alunos: REGISTRO
FIM REGISTRO
Fim
Ler Aluno[Contador].Nome
Ler Aluno[Contador].Nota1
Ler Aluno[Contador].Nota2
Ler Aluno[Contador].Nota3
Ler Aluno[Contador].Nota4
Ler Aluno[Contador].Faltas
Próximo
18. Agora vamos realizar os cálculos necessários.
Insira as instruções acima da palavra “Próximo” no laço anterior (Item 5),
considerando que vamos efetuar o cálculo a cada entrada de dados.
Aluno[Contador].Media (Nota1+Nota2+Nota3+Nota4)/4
SE Aluno[Contador].Media >= 7 E Aluno[Contador].Faltas <= 10 ENTÃO
Aluno[Contador].Situacao “Aprovado”
Senão
Aluno[Contador].Situacao “Reprovado”
FIMSE
19. Agora vamos imprimir a lista de alunos:
Contador 0
Para Contador 0 até 39 passo
Escrever “\nAluno: “,Aluno[Contador].Nome,
Aluno[Contador].Media, Aluno[Contador].Situacao
Próximo
20. Observe que, na instrução “Escrever”, há um texto a ser apresentado na
tela com a seguinte composição: “\nAluno: “. Os caracteres \n, no texto,
serão interpretados como uma quebra de linha, ou seja, antes de
apresentar na tela a informação, será realizada uma quebra de linha.
Também observe que a instrução não cabe no leiaute da apostila, por isso o
símbolo , ao final da primeira linha da instrução “Escrever”, significando
que é uma linha contínua.
SÍNTESE
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
Aula 3
PROGRAMAÇÃO ORIENTADA A
OBJETOS
Objetivos da aula
Conteúdos da aula
Prezado(a) aluno(a),
É com grande satisfação que lhe dou boas-vindas a
um assunto tão instigante: a programação orientada a objetos.
Procuraremos, nessa aula, oferecer-lhe uma visão geral do método
de programação e buscaremos fazer com que perceba as vantagens
de sua adoção. Espero que você se sinta motivado a absorver estes
assuntos tão relevantes para suas atividades como profissional.
Novamente, bem-vindo(a) e bons estudos.
2 O DESAFIO DA OOP
3 A HISTÓRIA DA OOP
http://heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html
http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_TOC.html
4 TERMINOLOGIA
4.2 ENCAPSULAMENTO
4.3 OBJETOS
4.4 MENSAGENS
4.5 MÉTODOS
4.6 CLASSES
4.7 HERANÇA
4.8 POLIMORFISMO
Microsoft, cuja versão atual, baseada em .NET, oferecia formas de construção que
se utilizavam de conceitos baseados em objetos, mas não havia na linguagem
suporte aos padrões que a OOP oferece. Esse tipo de linguagem e método de
programação é conhecido como programação orientada a eventos.
As linguagens mais populares que suportam efetivamente a programação
orientada a objetos são: Java (Pura), C++ (Híbrida), SmallTalk (Pura), Object Pascal
(Pura) e C# (Pura). As linguagens consideradas “puras”, no suporte à OOP,
nasceram com base nos padrões da OOP e as linguagens consideradas “híbridas”
são linguagens que nasceram no modelo de programação estruturada e evoluíram
para suportar os recursos da OOP.
SÍNTESE
• Reutilizável;
• Mais fácil de manter;
• Mais simples de depurar.
Como o próprio nome sugere, a programação orientada a objetos é baseada
no conceito de software objeto e busca manter total similaridade aos conceitos de
objetos do mundo real (caneta, mesa, cadeira, etc.). Dessa forma, os objetos
compartilham algumas características com outros objetos, devido às suas
propriedades e comportamentos. As propriedades, também conhecidas como
estados do objeto, são implementadas pelas variáveis e o comportamento do objeto
é desenvolvido pelos seus métodos.
A reunião dos métodos e propriedades de um objeto é denominada
abstração de dados, pois o usuário do objeto não precisa saber como as
propriedades e os métodos foram construídos, ele precisa saber apenas como
utilizá-los.
Considerando que uma aplicação poderá conter vários objetos, esses podem
relacionar-se uns com os outros. A comunicação que ocorre entre os objetos é
realizada por mensagens que, por sua vez, são realizadas pelo uso do objeto, da
execução de um método associado ao objeto, e da passagem de informações para
que o método seja executado adequadamente.
À medida que os objetos são construídos, poderá haver similaridades e a
OOP oferece o uso de classes para criar estruturas pré-construídas. É fazendo uso
desse mecanismo de classes que podemos nos utilizar dos recursos de reuso que o
método nos oferece. Além disso, o agrupamento de classes com características
comuns é utilizado pela OOP para criar uma hierarquia de classes e com isto
estabelecer uma lógica de reuso. As práticas de extensões, sobreposições e de
herança se utilizam dessa hierarquia para a construção de novos objetos que,
futuramente, se beneficiarão de qualquer mudança que ocorrer na classe superior.
A conseqüência no uso dessas práticas implementa um dos principais
recursos da OOP: o polimorfismo, ou seja, o objeto possui um comportamento
diferente de acordo com o contexto em que é utilizado.
Esses são os principais conceitos da OOP que você precisa levar para as
futuras linguagens de desenvolvimento que oferecem suporte ao método.
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
2) O que é encapsulamento?
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
Aula 4
INTRODUÇÃO A UML
Objetivo da Aula
Conteúdo da Aula
Prezado(a) aluno(a),
Como vimos na aula passada, a OOP é uma
poderosa abordagem para a construção de sistemas,
trazendo novos conceitos, métodos e práticas na construção de
sistemas. Nesse sentido, a representação visual das soluções
orientadas a objetos também precisa de um novo conjunto de
práticas para atender às particularidades dessa nova implementação.
Nesta aula você aprenderá os conceitos básicos da
representação visual de sistemas orientados a objetos, chamada UML.
Espero que você perceba a importância da modelagem de
aplicações usando UML e receba este primeiro contato como uma
alavanca para obter maior conhecimento e domínio da programação
orientada a objetos.
Desejo-lhe uma excelente aula.
Diante do que você leu nos tópicos anteriores, podemos então resumir os
seguintes benefícios na modelagem de aplicações:
• Os modelos ajudam na visualização de como o sistema é ou deverá ser;
• Os modelos permitem a especificação da estrutura do programa ou do
comportamento de um sistema;
• Os modelos fornecem guias e orientações para a construção de um
sistema;
• Os modelos documentam as decisões que foram tomadas para o sistema;
• Os modelos fornecem uma linguagem comum que poderá ser utilizada por
vários profissionais, contendo vários pontos de vista, mas mantendo uma
visão ampla do sistema todo.
Agora que você percebeu a importância da modelagem de aplicações, vamos
conhecer, na próxima seção, a linguagem de modelagem de aplicações mais
utilizadas na atualidade.
2 O QUE É UML?
Os autores da UML sugerem que uma aplicação pode ser descrita fazendo-se
uso de cinco visões, conforme menciona Bezerra (2002), e cada visão enfatiza
aspectos diferentes do sistema a ser construído. São elas:
• Visão de casos de uso: descrevem as necessidades do sistema
estritamente do ponto de vista externo, apresentando o grau de
É importante ressaltar que nem todas as visões precisam ser utilizadas. Seu
uso depende do tamanho do projeto, complexidade e exigências nas especificações
funcionais do sistema.
4.1.2 Violet
4.1.3 EclipseUML
SÍNTESE
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________
REFERÊNCIAS
TOM PENDER. Livro UML – a bíblia. Rio de Janeiro: Campus / Elsevier, 2004.