Академический Документы
Профессиональный Документы
Культура Документы
1.
1. Conceitos
ConceitosBásicos
Básicos
1.1
1.1Algoritmos
AlgoritmoseeProgramas
Programas
1.2
1.2Linguagens
Linguagensde deProgramação
Programação
1.3
1.3Processo
ProcessodedeDesenvolvimento
Desenvolvimentode
deProgramas
Programas
1.4
1.4Estilo
EstiloeeQualidade
Qualidadede
deProgramas
Programas
2.
2. Tipos
Tiposde
deDados
Dados
2.1
2.1Tipos
Tiposde
deDados
DadosPrimitivos
Primitivos
2.2
2.2Tipos
TiposString
Stringde
deCaracteres
Caracteres
2.3
2.3Tipos
TiposOrdinais
OrdinaisDefinidos
Definidospelo
peloUsuário
Usuário
2.4
2.4Tipos
TiposArray
Array
2.5
2.5Tipos
TiposRegistro
Registro
2.6
2.6Tipos
TiposPonteiro
Ponteiro
Prof. Reverton 2
PARADIGMAS de Linguagem | Programação
3.
3.Expressões
ExpressõeseeInstruções
InstruçõesdedeAtribuição
Atribuição
3.1
3.1Expressões
ExpressõesAritméticas
Aritméticas
3.2
3.2Conversões
Conversõesde deTipo
Tipo
3.3
3.3Expressões
ExpressõesRelacionais
RelacionaiseeBooleanas
Booleanas
3.4
3.4Instruções
Instruçõesde
deAtribuição
Atribuição
4.
4.Estruturas
EstruturasdedeControle
Controle
4.1
4.1Estruturas
EstruturasCondicionais
Condicionais
4.2
4.2Estruturas
Estruturasde
deRepetição
Repetição
5.
5. Subprogramas
Subprogramas
5.1
5.1Fundamentos
Fundamentos
5.2
5.2Métodos
Métodosde
dePassagem
PassagemdedeParâmetros
Parâmetros
5.3
5.3Sobrecarga
Sobrecargade
deSubprogramas
Subprogramas
Prof. Reverton 3
PARADIGMAS de Linguagem | Programação
6.
6.Programação
ProgramaçãoEstruturada
Estruturada
6.1
6.1Caracterização
Caracterização
6.2
6.2Linguagens
LinguagensImperativas
Imperativas(Basic,
(Basic,Pascal,
Pascal,C)
C)
7.7. Práticas
Práticasde
deProgramação:
Programação:Programação
ProgramaçãoEstruturada
Estruturada
7.1
7.1Exemplos
ExemplosdedeProgramas
Programas(Basic,
(Basic,Pascal,
Pascal,C)
C)
7.2
7.2Implementações
ImplementaçõesPráticas
Práticas
8.
8. Programação
ProgramaçãoOrientada
OrientadaaaEventos
Eventos
8.1
8.1Conceitos
ConceitosFundamentais
Fundamentais
8.2
8.2Caracterização
Caracterização
8.3
8.3Linguagens
LinguagensOrientadas
OrientadasaaEventos
Eventos(Delphi,
(Delphi,Visual
Visual
Basic)
Basic)
Prof. Reverton 4
PARADIGMAS de Linguagem | Programação
9.
9. Práticas
Práticasde
deProgramação:
Programação:Programação
ProgramaçãoOrientada
Orientadaaa
Eventos
Eventos
9.1
9.1Exemplos
ExemplosdedeProgramas
Programas(Delphi,
(Delphi,Visual
VisualBasic)
Basic)
9.2
9.2Implementações
ImplementaçõesPráticas
Práticas
10.
10. Tipos
TiposAbstratos
Abstratosde
deDados
Dados
10.1
10.1Fundamentos
Fundamentosde deAbstração
Abstração
10.2
10.2Encapsulamento
Encapsulamento
10.3
10.3Métodos
MétodosdedeAcesso
AcessoaaDados
Dados(public,private
(public,privateee
protected)
protected)
10.4
10.4Exemplos
ExemplosdedeAbstração
Abstraçãode
deDados
Dadosem
emJava
Java
Prof. Reverton 5
PARADIGMAS de Linguagem | Programação
11.
11. Programação
ProgramaçãoOrientada
OrientadaaaObjetos
Objetos
11.1
11.1Conceitos
ConceitosFundamentais
Fundamentais
11.2
11.2Caracterização
CaracterizaçãoeeComparação
Comparação
11.3
11.3Linguagens
LinguagensOrientadas
OrientadasaaObjetos
Objetos(Smalltalk,
(Smalltalk,C++,
C++,
Java,
Java,C#)
C#)
12.
12. Práticas
Práticasde
deProgramação:
Programação:Orientação
OrientaçãoaaObjetos
Objetos
12.1
12.1Exemplos
Exemplosde deProgramas
Programas(Smalltalk,
(Smalltalk,C++,
C++,Java,
Java,C#)
C#)
12.2
12.2Implementações
ImplementaçõesPráticas
Práticas
Prof. Reverton 6
PARADIGMAS de Linguagem | Programação
Que
Queprogramas
programasnós
nósvamos
vamosprecisar
precisarpara
paratrabalhar
trabalhar??
➔
➔VISUALG
VISUALG (freeware)
(freeware)––construção
construçãodedealgoritmos
algoritmos
➔ PASCALZIM (freeware)
➔ PASCALZIM (freeware)––turbo
turbopascal
pascalfor
forwindows
windows
➔ VISUAL BASIC 6 (microsoft – academic aliance) - OE
➔ VISUAL BASIC 6 (microsoft – academic aliance) - OE
Metodologia
Metodologiade
detrabalho:
trabalho:
➔
➔Aulas
Aulasexpositivas.
expositivas.
➔ Laboratório de programação.
➔ Laboratório de programação.
➔ Trabalhos e apresentações.
➔ Trabalhos e apresentações.
➔ Avaliação bimestral.
➔ Avaliação bimestral.
Prof. Reverton 7
PARADIGMAS de Linguagem | Programação
INTRODUÇÃO
INTRODUÇÃO
OOque
queéé“paradigma
“paradigmade
delinguagem
linguagem| |programação”?
programação”?
ÉÉaaescolha
escolhaque
quefazemos
fazemosdentro
dentrodas
dasferramentas
ferramentaseetécnicas
técnicas
existentes
existentespara
paraaaconstrução
construçãode
deprogramas
programasdedecomputador.
computador.
Quais
Quaisferramentas?
ferramentas?
●
●Linguagens
Linguagensde
deProgramação
Programação(VB,
(VB,Delphi,
Delphi,Java,
Java,PHP,
PHP,(…))
(…))
● Diagramação (argoUML, DBDesigner, EA,(...))
● Diagramação (argoUML, DBDesigner, EA,(...))
● Geradores de documentação.
● Geradores de documentação.
● Gerenciamento e Controle de versões. (CVS, Clearcase)
● Gerenciamento e Controle de versões. (CVS, Clearcase)
● Gerenciadores de BD. (MySQL, SQL Server, ACCESS,
● Gerenciadores de BD. (MySQL, SQL Server, ACCESS,
Oracle).
Oracle).
Prof. Reverton 8
PARADIGMAS de Linguagem | Programação
Algoritmos
AlgoritmoseeProgramas
Programas
Algoritmo
Algoritmoééaarepresentação
representaçãoestruturada,
estruturada,informal,
informal,que
queutiliza
utiliza
alguma
alguma técnica
técnica de
de escrita,
escrita, para
para aa resolução
resolução dede um um
determinado
determinadoproblema
problemacomputacional.
computacional.
Para
Para oo estudo
estudo dos
dos algoritmos
algoritmos avançados
avançados utilizaremos
utilizaremos oo
visualg:
visualg:
Procedimento = É uma seqüência finita de instruções que
podem ser executadas por um agente computacional.
Prof. Reverton 9
PARADIGMAS de Linguagem | Programação
PROGRAMAÇÃO
PROGRAMAÇÃO
program
program idéia;
idéia;
uses
uses Crt;
Crt;
var
var
nome
nome :: string;
string;
begin
begin
write('Informe
write('Informe seu
seu nome
nome :: ');
');
readln(nome);
readln(nome);
write('Olá
write('Olá ',nome,'
',nome,' tudo
tudo bem
bem !');
!');
end.
end.
Linguagem Pascal
Prof. Reverton 11
PARADIGMAS de Linguagem | Programação
Início Fim
Prof. Reverton 12
PARADIGMAS de Linguagem | Programação
Prof. Reverton 13
PARADIGMAS de Linguagem | Programação
Prof. Reverton 14
PARADIGMAS de Linguagem | Programação
Prof. Reverton 15
PARADIGMAS de Linguagem | Programação
Algoritmo de Euclides
➔
Especifica como calcular o MDC (Máximo Divisor Comum)
de dois números inteiros positivos m e n.
Prof. Reverton 16
PARADIGMAS de Linguagem | Programação
Algoritmo de Euclides
algoritmo
algoritmo "MDC"
"MDC"
var
var
x,y,m,n,r
x,y,m,n,r :: inteiro
inteiro
inicio
inicio
leia(m)
leia(m)
xx <-
<- mm
leia(n)
leia(n)
yy <-
<- nn
repita
repita
rr <-
<- xx mod
mod yy
xx <-
<- yy
yy <-
<- rr
ate
ate rr == 00
escreva("MDC
escreva("MDC == ", ", x)
x)
fimalgoritmo
fimalgoritmo
Prof. Reverton 17
PARADIGMAS de Linguagem | Programação
Algoritmo de Euclides
Private
Private Sub Sub Command1_Click()
Command1_Click()
Dim
Dim m,m, n,
n, rr AsAs Integer
Integer
mm == Int(num1.Text)
Int(num1.Text)
nn == Int(num2.Text)
Int(num2.Text)
rr == mdc.calcula(m,
mdc.calcula(m, n) n)
MsgBox
MsgBox r, r, vbInformation,
vbInformation, "MDC
"MDC de
de
"" && mm && "" ee "" && nn
End
End Sub
Sub
Prof. Reverton 18
PARADIGMAS de Linguagem | Programação
Algoritmo de Euclides
Function
Function calcula(ByVal
calcula(ByVal xx As
As Integer,
Integer, ByVal
ByVal yy As
As
Integer)
Integer) As As Integer
Integer
On
On Error
Error GoTo
GoTo erro
erro
Dim
Dim rr AsAs Integer
Integer
Do
Do
rr == xx Mod
Mod yy
xx == yy
yy == rr
Loop
Loop Until
Until rr == 00
calcula
calcula == xx
Exit
Exit Function
Function
erro:
erro:
MsgBox
MsgBox Err.Description
Err.Description
Exit
Exit Function
Function
End
End Function
Function
Prof. Reverton 19
PARADIGMAS de Linguagem | Programação
Algoritmo de Euclides
Prof. Reverton 20
PARADIGMAS de Linguagem | Programação
Subalgoritmos
São
São trechos
trechos de
de algoritmos
algoritmos que
que efetuam
efetuam umum
ou
ou mais
mais cálculos
cálculos determinados.
determinados. AoAo invés
invés de
de
escrever
escrever um
um algoritmo
algoritmo grande,
grande, escrevem-se
escrevem-se
vários
vários algoritmos
algoritmos menores,
menores, os
os quais,
quais, não
não
isoladamente,
isoladamente, masmas em
em conjunto,
conjunto, resolvem
resolvem
oo problema
problema proposto.
proposto.
Prof. Reverton 21
PARADIGMAS de Linguagem | Programação
Subalgoritmos
-- Eles
Eles reduzem
reduzem oo tamanho
tamanho do
do algoritmo.
algoritmo.
-- Facilitam
Facilitam aa compreensão
compreensão ee visualização
visualização do
do
algoritmo.
algoritmo.
-- São
São declarados
declarados no
no início
início do
do algoritmo
algoritmo ee
podem
podem ser
ser chamados
chamados emem qualquer
qualquer ponto
ponto
após
após sua
sua declaração.
declaração.
-- Eles
Eles podem
podem ser
ser Funções
Funções que
que retorna
retorna algum
algum
valor
valor ou
ou Procedimento
Procedimento (Subrotina)
(Subrotina) que
que não
não
retorna
retorna nada.
nada.
Prof. Reverton 22
PARADIGMAS de Linguagem | Programação
Funções
Uma
Uma função
função éé um
um instrumento
instrumento (Estático)
(Estático) que
que
tem
tem como
como objetivo
objetivo retornar
retornar um
um valor
valor ou
ou
uma
uma informação.
informação.
AA chamada
chamada de
de uma
uma função
função éé feita
feita através
através da
da citação
citação
do
do seu
seu nome
nome seguido
seguido opcionalmente
opcionalmente de de seus
seus
argumentos
argumentos iniciais
iniciais entre
entre parênteses.
parênteses.
inicio
leia(m)
leia(n)
md <- mdc(m,n)
escreva("MDC = ", md)
fimalgoritmo
Prof. Reverton 23
PARADIGMAS de Linguagem | Programação
Criando Funções
AA criação
criação de
de uma
uma Função
Função deve
deve ser
ser declarada,
declarada, com
com os
os
demais
demais objetos,
objetos, no
no início
início do
do programa.
programa.
Este
Este tipo
tipo de
de subalgoritmo
subalgoritmo sempre
sempre retornam
retornam um
um ee
apenas
apenas umum valor
valor ao
ao algoritmo
algoritmo que
que lhe
lhe chamou
chamou
funcao <identificador> ([var]<parâmetros>) <tipo
de retorno>
var
<declaração de variáveis locais>
inicio
<lista de comandos>
retorne <variável de retorno>
fimfuncao
Prof. Reverton 24
PARADIGMAS de Linguagem | Programação
Criando Funções
AA criação
criação de
de uma
uma Função
Função deve
deve ser
ser declarada,
declarada, com
com os
os
demais
demais objetos,
objetos, no
no início
início do
do programa.
programa.
Este
Este tipo
tipo de
de subalgoritmo
subalgoritmo sempre
sempre retornam
retornam um
um ee
apenas
apenas umum valor
valor ao
ao algoritmo
algoritmo que
que lhe
lhe chamou
chamou
funcao <identificador> ([var]<parâmetros>) <tipo
de retorno>
var
<declaração de variáveis locais>
inicio
<lista de comandos>
retorne <variável de retorno>
fimfuncao
Prof. Reverton 25
PARADIGMAS de Linguagem | Programação
Exemplo
ALGORITMO
ALGORITMO "Funções
"Funções Personalizadas"
Personalizadas"
var
var
Valor_1,Valor_2,
Valor_1,Valor_2, soma:
soma: real
real
funcao
funcao FSoma(Recebe_valor1,
FSoma(Recebe_valor1, Recebe_valor2:
Recebe_valor2:
Real):Real
Real):Real
var
var
total
total :: real
real
Inicio
Inicio
total<-Recebe_valor1+Recebe_valor2
total<-Recebe_valor1+Recebe_valor2
retorne
retorne total
total
fimfuncao
fimfuncao
Prof. Reverton 26
PARADIGMAS de Linguagem | Programação
Exemplo
Inicio
Inicio
Escreva
Escreva ("Valor_1
("Valor_1 :: ")
")
Leia
Leia (Valor_1)
(Valor_1)
Escreva
Escreva ("Valor_2
("Valor_2 :: ")
")
Leia
Leia (Valor_2)
(Valor_2)
Soma
Soma <-
<- FSoma(Valor_1,Valor_2)
FSoma(Valor_1,Valor_2)
Escreva
Escreva ("Soma
("Soma das
das vaiáveis
vaiáveis éé ",
", soma)
soma)
fimalgoritmo
fimalgoritmo
Prof. Reverton 27
PARADIGMAS de Linguagem | Programação
Procedimento
ÉÉuma
umasub-rotina
sub-rotinaque
queefetua
efetuaum
umprocessamento
processamentomas
masnão
não
retorna
retornavalor.
valor.
procedimento
procedimento <identificador>
<identificador> ([var]<parâmetros>)
([var]<parâmetros>)
var
var
<declaração
<declaração dede variáveis
variáveis locais>
locais>
inicio
inicio
<lista
<lista de
de comandos>
comandos>
fimprocedimento
fimprocedimento
Prof. Reverton 28
PARADIGMAS de Linguagem | Programação
Procedimento - exemplo
ALGORITMO
ALGORITMO "Procedimento"
"Procedimento"
var
var
A,B,C,D,CONT,AUX:Inteiro
A,B,C,D,CONT,AUX:Inteiro
Procedimento
Procedimento TROCA(var
TROCA(var x,
x, y:
y: inteiro)
inteiro)
var
var
Aux
Aux :: inteiro
inteiro
INICIO
INICIO
Aux
Aux <-
<- xx
xx <-
<- yy
yy <-
<- Aux
Aux
FIMProcedimento
FIMProcedimento
Prof. Reverton 29
PARADIGMAS de Linguagem | Programação
Procedimento - exemplo
inicio
inicio
leia
leia (A,B,C,D)
(A,B,C,D)
Enquanto
Enquanto NAO((A<=B)
NAO((A<=B) ee (B<=C)
(B<=C) ee (C<=D))
(C<=D)) faca
faca
se
se (D<C)
(D<C) entao
entao
TROCA(D,C)
TROCA(D,C)
fimse
fimse
se
se (C<B)
(C<B) entao
entao
TROCA(C,B)
TROCA(C,B)
fimse
fimse
se
se B<A
B<A entao
entao
TROCA(A,B)
TROCA(A,B)
fimse
fimse
fimenquanto
fimenquanto
escreva
escreva (A,"
(A," ",B,"
",B," ",C,"
",C," ",D) ",D)
fimalgoritmo
fimalgoritmo Prof. Reverton 30
PARADIGMAS de Linguagem | Programação
Prof. Reverton 31
PARADIGMAS de Linguagem | Programação
Linguagens de Programação
ummétodo
ÉÉum métodopadronizado
padronizadopara
paraexpressar
expressarinstruções
instruçõespara
para
um
umcomputador.
computador.
ÉÉum
umconjunto deregras
conjuntode regrassintáticas
sintáticaseesemânticas
semânticasusadas
usadas
para
paradefinir
definirum
umprograma
programade
decomputador.
computador.
OOconjunto
conjuntode
depalavras
palavras(tokens),
(tokens),compostos
compostosde
deacordo
acordocom
com
essas
essasregras,
regras,constituem
constituemoocódigo
códigofonte
fontede
deum
umsoftware.
software.
Compilação
Compilação&&Interpretação
Interpretação Análise
Análiselexicográfica
lexicográfica
compilador
(scanner)
(scanner)
Um
Umcompilador
compiladorééumumprograma
programa Análise
Análisesintática/semântica
de
decomputador
computador(ou
(ouumumgrupo
grupodede sintática/semântica
(parser)
(parser)
programas)
programas)que,
que,aapartir
partirde
deum
um
código Gerador
Geradorde
decódigo
códigofonte
fonteescrito
escritoem
emumauma código
intermediário
linguagem intermediário
linguagemcompilada,
compilada,cria
criaumum
programa
programasemanticamente
semanticamente
equivalente,
equivalente,porém
porémescrito
escritoem
em Código
Códigonão
nãootimizado
otimizadopara
para
arquitetura X
outra
outralinguagem,
linguagem,código
códigoobjeto.
objeto. arquitetura X
tabela
tabelade desímbolos
símbolos,,guarda
guardapara
paracada
cadaidentificador
identificador
((símbolo
símbolo))usado
usadononoprograma
programaasasinformações
informações
correspondentes,
correspondentes,taistaiscomo
comonatureza
natureza(variável,constante,
(variável,constante,
procedimento,
procedimento,...),
...),tipo,
tipo,endereço,
endereço,espaço
espaçoocupado,
ocupado,etc.
etc.
Prof. Reverton 34
PARADIGMAS de Linguagem | Programação
Linguagens de Programação
Análise
Análiselexicográfica
lexicográfica
● A análise léxica é a primeira
(scanner)
(scanner) fase do compilador.
compilador
Análise
Análisesintática
sintática
Análise semântica
Análise semântica
● A função do analisador léxico,
(parser)
(parser) também denominado scanner, é
Gerador
ler o código fonte, caracter a
Geradorde
decódigo
código caracter, buscando a separação
intermediário
intermediário
e identificação dos elementos
componentes do programa
fonte, denominados símbolos
léxicos ou tokens.
Prof. Reverton 35
PARADIGMAS de Linguagem | Programação
Linguagens de Programação
Por exemplo, considere o trecho de programa Pascal:
if x>0 then
modx := x
else
modx := (-x)
Prof. Reverton 36
PARADIGMAS de Linguagem | Programação
Prof. Reverton 37
PARADIGMAS de Linguagem | Programação
Linguagens de Programação
Análise
Análiselexicográfica
lexicográfica A análise sintática deve
(scanner)
(scanner) reconhecer a estrutura
compilador
Análise
Análisesintática
sintática global do programa, por
Análise semântica
Análise semântica
(parser)
(parser)
exemplo, verificando que
programas, comandos,
Gerador
Geradorde
decódigo
código
intermediário
intermediário
declarações, expressões, etc
têm as regras de
composição respeitadas.
Linguagens de Programação
Prof. Reverton 39
PARADIGMAS de Linguagem | Programação
Linguagens de Programação
<comando-if>
<comando-if> ::=
::=
IF
IF <expressão>
<expressão> THEN
THEN <comandos>
<comandos>
{{ ELSIF
ELSIF <expressão>
<expressão> THEN
THEN <comandos>
<comandos> }}
[[ ELSE
ELSE <comandos>
<comandos> ]]
END
END IF
IF ;;
Prof. Reverton 40
PARADIGMAS de Linguagem | Programação
Linguagens de Programação
Análise
Análiselexicográfica
lexicográfica
●
As análises léxica e sintática,
(scanner)
(scanner) não estão preocupadas com o
compilador
Análise
Análisesintática
sintática significado ou semântica dos
Análise semântica
Análise semântica
(parser)
(parser)
programas que elas processam.
Gerador
Geradorde
decódigo
código
intermediário
intermediário
●
Analisador semântico prove
métodos pelos quais as
estruturas construídas pelo
analisador sintático possam ser
avaliadas ou executadas
Um exemplo de tarefa própria do analisador semãntico é a checagem de
tipos de variáveis em expressões
Prof. Reverton 41
PARADIGMAS de Linguagem | Programação
Prof. Reverton 42
PARADIGMAS de Linguagem | Programação
✔
Falta de experiência do cliente.
✔
Dúvidas sobre os requisitos do sistema.
✔
Falta de clareza sobre as funcionalidades
do sistema.
Prof. Reverton 44
PARADIGMAS de Linguagem | Programação
ANÁLISE DE REQUISITOS
Suponha que....
Você foi contratado para desenvolver um sistema
para uma grande empresa. Depois de 6 meses de
desenvolvimento, sendo, análise, implementação,
testes, etc. Você descobre que o cliente está
frustrado e desmotivado a usar o software porque
não atendeu aos REQUISITOS que ele imaginou
quando decidiu construir o software.
O QUE ACONTECEU?
Prof. Reverton 45
PARADIGMAS de Linguagem | Programação
Falta de tempo
Prof. Reverton 46
PARADIGMAS de Linguagem | Programação
ENTENDA O PROBLEMA
●
●Estude
Estude
● Escreva
● Escreva
● Analise
● Analise
● Entenda
● Entenda
FERRAMENTAS
FERRAMENTASQUE
QUETEMOS
TEMOSPARA
PARAISSO:
ISSO:
--Papel
Papeleelápis
lápis
--Editor
Editorde
detexto
texto
--Templates
Templates(modelos)
(modelos)
--Métodos
Métodos
Prof. Reverton 47
PARADIGMAS de Linguagem | Programação
CASO DE USO
OOQUE
QUEÉÉ??
ÉÉuma
umadescrição
descriçãotextual
textualdas
dasfunções/módulos
funções/módulos(requisitos)
(requisitos)de
de
um
umsistema.
sistema.
Prof. Reverton 48
PARADIGMAS de Linguagem | Programação
Questões chave:
●
O que o sistema vai fazer?
●
Quem vai usá-lo?
●
Como será usado?
●
O que o sistema não vai fazer?
●
O que está dentro e o que está fora do sistema?
Prof. Reverton 49
PARADIGMAS de Linguagem | Programação
Conceitos
Ator
É o papel executado por objetos externos ao
sistema e que interagem com ele para a
execução de uma tarefa.
Caso de uso
Uma unidade coerente de funcionalidades,
Caso de uso provida pelo sistema, constituída de uma
seqüência de mensagens trocadas entre o
sistema e os atores (usuários), e de ações
executadas pelo sistema em decorrência
dessas mensagens.
Prof. Reverton 50
PARADIGMAS de Linguagem | Programação
Conceitos
<<inclui>>
Caso de uso
Cenário
Uma instância de um caso de uso
Interação entre o ator e o caso de uso.
Prof. Reverton 51