Professional Documents
Culture Documents
Programao
Comandos e funes
Operadores
IDE
Variveis de memria
Array
Funes
Programao
Exerccios de Lgica
Aqurio
Se Branca
Conclui-se
a outra bola Branca e esta caixa a Branca-Branca
a caixa que est etiquetada Preta-Preta Preta-Branca
a caixa que est etiquetada Branca-Branca Preta-Preta
Se Preta
Conclui-se
a outra bola Preta e esta caixa a Petra-Preta
a caixa que est etiquetada Preta-Preta Branca-Branca
a caixa que est etiquetada Branca-Branca Preta-Branca
Cruzamento dos ponteiros do relgio
Aritmticas:
Somar / Subtrair / Multiplicar / Dividir
Entrada e Saida:
Ler / Gravar / Tela / Impresso / Teclado / Atribuio
Lgicas:
If...Else...EndIf
For...Next
While...End
Do Case...EndCase
Inicio A
Armar Sim
A Esposa
Despertador Resmungar quer $$ ?
Desligar No
Despertador
Casado
Dar-lhe Sim
h mais de
R$ 100,00 5 anos ?
Repetir Bocejar
3 No
vezes
Sacudir a Beijar a
Esposa esposa
Sair da Casado
Sim
Cama h mais de
1 ano ?
Sim No
Acender
a luz Est Escuro ? Beijar a
esposa
No
Sim Ir at o
Voltar para Est Frio ? carro
a cama
No
Possvel Voltar No Est
Fim Ir ao para peg-las Com as
Banheiro Chaves ?
da rotina
Sim
Tomar Dirigir-se
Caf ao escritrio
A Fim
Operadores
Matemticos
+ - * / ** ou ^ %
x := 10 + 20
V V V
V F F
F V F
F F F
Operadores
Lgicos
V V V
V F V
F V V
F F F
Operadores
Lgicos
:= += -= *= /= ^= ou **= %=
x := 10
x := x + 20
o mesmo que: x += 20
i++ equivale a i := i + 1
i := 1
i := 1
equivale a MsgAlert(i) mostra 1
MsgAlert(i++) i := i + 1
i := 1
i := 1 equivale a i := i + 1
MsgAlert(++i) MsgAlert(i) mostra 2
Operadores
Strings
x + y x - y x $ y
Concatenao
cNome := Joo
cSobreNome := Silva
cNomeCompleto := cNome + cSobreNome JooSilva
A - B AB
Pertence
Silva $ cNomeCompleto .T.
SILVA $ cNomeCompleto .F.
Operadores
Especiais
( ) Funcao()
{ } Array, bloco de cdigo
[ ] Array
& Macro
|| Bloco de cdigo
-> Alias de arquivo e var. de memria
SA1->A1_Nome M->A1_Nome
@ Parmetros por referncia
; Quebra de linha
If cCredito == "OK" .And.;
(cEstNeg == "S" .Or. nQtdVenda < nSaldo)
MsgAlert("OK, pode faturar!")
Else
MsgAlert("Sem credito ou estoque insuficiente!")
EndIf
: Objetos oBotao:cCaption := OK
IDE Primeiro Programa
Return
Projeto (.PRJ)
Programa (.PRW) Funo
Funo
Funo
Cadastro
Nome: Jos
Memria
Nome
Jos
Valor
1000
A1_NOME
Jos
D2_VALOR ICMS = Valor * 18 / 100
1000
CPU
Tipos de Variveis de Memria
Notao Hngara:
Caractere Casa 1 cTexto
Numricas 1234.56 nValor
Data CtoD(25/10/05) dData
Lgicas .T. .F. lOk
n X := 1 nX
X numrico
numrico
c X := Jos X agora
cX caracter
caracter
n X := n X + 1 Operao
ERRO
matemtica
!
Tipos de Variveis de Memria
Notao Hngara:
Caractere Casa 1 cTexto
Numricas 1234.56 nValor
Data CtoD(25/10/05) dData
Lgicas .T. .F. lOk
Ver Operadores.PRW
Exercicio
Array, Vetor ou Matriz
cNome4 := Maria
aNomes
Joao Alberto Pedro Maria
aNomes[1]
aNomes[2]
aNomes[3]
aNomes[4]
Array, Vetor ou Matriz
Variveis
Armrio 1 Armrio 2 Armrio 3 Armrio 4
Array
Armrio
Gaveta 1 Joao
Gaveta 2 Alberto
Gaveta 3 Pedro
Gaveta 4 Maria
Array, Vetor ou Matriz
aMatriz[1][1]
aMatriz[1]
aMatriz[1][2]
aMatriz[1][3]
aMatriz[2]
aMatriz[2][1]
aMatriz[2][2]
aMatriz[2][3]
2 25 2 18 2 40 2 33
3 T 3 F 3 T 3 F
Array, Vetor ou Matriz
aNomes := {Joao,
{}
{Joao} Pedro, Maria}
Alberto} Pedro}
Alberto,
AAdd(aNomes, Joao)
AAdd(aNomes, Alberto)
AAdd(aNomes, Pedro)
AAdd(aNomes, Maria)
AAdd(aMatriz, {Joao,25,.T.})
AAdd(aMatriz, {Alberto,18,.F.})
AAdd(aMatriz, {Pedro,40,.T.})
AAdd(aMatriz, {Maria,33,.F.})
aArray := Array(5)
aArray {Nil, Nil, Nil, Nil, Nil}
Ver 050_Array.prw
Exercicio: fazer o sort de um array
Funes
Conjunto de Comandos
Programa.PRW
User Function Teste()
Comandos
Comandos
Comandos
Comandos
Return
Comandos Comandos
If CGC(cCGC) Comandos
continua Comandos
Else If CGC(cCGC)
abandona continua
EndIf Else
Comandos abandona
Comandos EndIf
Comandos Comandos
Return Return
Function CGC(cCGC)
If cCGC OK
.T. ou .F.
.T. ou .F.
lOK := .T.
Else
lOK := .F.
EndIf
Return lOK
Funes
Programao Estruturada
Return Return
Return
Return nICMS
Escpo das Varivies
Local
Visvel somente na funo em que foi criada
Private
Visvel na funo em que foi criada e nas funes seguintes
Public
Visvel em todas as funes, a partir do momento em que foi criada
Static
Visvel somente no programa (PRW)
Escpo das Varivies
Return
u_Func3()
Return
PUBLIC Contedo
User Function Func3()
cVar2 := ABC"
Return
Escpo das Varivies
u_Func3()
Return
PUBLIC Contedo
User Function Func3()
cVar2 := ABC"
Return
Escpo das Varivies
u_Func3()
Return
PUBLIC Contedo
User Function Func3()
cVar3 Public Func2
cVar2 := ABC"
Return
Escpo das Varivies
Return
u_Func3()
Return
PUBLIC Contedo
User Function Func3()
cVar3 Public Func2
cVar2 := ABC"
Return
Escpo das Varivies
u_Func3()
Return
PUBLIC Contedo
User Function Func3()
cVar3 Public Func2
cVar2 := ABC"
Return
Escpo das Varivies
u_Func3()
Return
PUBLIC Contedo
User Function Func3()
cVar3 Public Func2
cVar2 := ABC"
Return
Ver 052_EscopoVar.prw
Passagem de Parmetros
Por Valor
Return nICMS
Passagem de Parmetros
Por Valor
Local x := 1
Local y := 2 x=1
u_Param2(x, y) y=2
MsgAlert(x+y)
Return
x := 50
y := 100
Return
Ver 060_Param.prw
Passagem de Parmetros
Por Valor
Local x := 1
Local y := 2 x=1
u_Param2(x, y) y=2
MsgAlert(x+y)
Return
x := 50 x = 50
y := 100
y = 100
Return
Ver 060_Param.prw
Passagem de Parmetros
Por Valor
Local x := 1
Local y := 2 x=1
u_Param2(x, y) y=2
MsgAlert(x+y)
Return
x := 50
y := 100
Return
Ver 060_Param.prw
Passagem de Parmetros
Por Referncia
Local x := 1
Local y := 2 x=1
u_Param2(@x, y) y=2
MsgAlert(x+y)
Return
x := 50
y := 100
Return
Ver 060_Param.prw
Passagem de Parmetros
Por Referncia
Local x := 1
Local y := 2 x = 50
u_Param2(@x, y) y=2
MsgAlert(x+y)
Return
x := 50 y = 100
y := 100
Return
Ver 060_Param.prw
Passagem de Parmetros
Por Referncia
Local x := 1
Local y := 2 x = 50
u_Param2(@x, y) y=2
MsgAlert(x+y)
Return
x := 50
y := 100
Return
Ver 060_Param.prw
Funes de Caracteres, Nmeros e Datas
Ver 053_Tratamentos.PRW