Para todos aqueles que iniciam na programação, tirando o "Hello World", famoso no C/C++, C# e Java, temos como objeto de estudo o programa "Cálculo Média", escrevi este fonte em ADVPL que monta uma telinha, lê os dados digitados pelo usuário e calcula a média, esta bem simples mas faz o cálculo e possui uma função que imprime se o aluno esta aprovado ou reprovado com base na média.
Caso algum analista com maiores conhecimentos possui um jeito melhor de escrever este programa, compartilhe.
Abraço, abaixo o código do fonte para análise e estudo:
#include 'protheus.ch'
#include 'parmtype.ch'
#include "rwmake.ch"
/*
Exercício 01 – Crie uma Tela e função para solucionar o seguinte problema:
Calcular a média de três notas.
*/
User Function Tela_Media()
Local cTitulo := "***Informe as Notas do Aluno***"
Local nNota1 := 0
Local nNota2 := 0
Local nNota3 := 0
Local oFont1, oFont2
//Definindo as Fontes:
Define Font oFont1 Name "Arial" Size 8,14 Bold
Define Font oFont2 Name "Verdana" Size 10,16 Bold
//Definindo a Tela com os campos:
Define MSDialog oDlg Title "Programa Média Aluno" From 0,0 To 200,500 Pixel
@ 01,16 SAY cTitulo //Irá imprimir a variavél tipo caractere.
@ 12,16 SAY "1º Nota"
@ 20,16 MSGET nNota1 SIZE 030,010 OF oDlg PIXEL PICTURE "@E 999.99"//Campos que receberão os dados
@ 33,16 SAY "2º Nota"
@ 40,16 MSGET nNota2 SIZE 030,010 OF oDlg PIXEL PICTURE "@E 999.99"
@ 53,16 SAY "3º Nota"
@ 60,16 MSGET nNota3 SIZE 030,010 OF oDlg PIXEL PICTURE "@E 999.99"
@ 020,192 SAY TIME() //Imprime o Horário da Maquina
@ 030,192 SAY "Calc. Média 1.0" //Msg a Critério do Desenvolvedor.
@ oDlg:nHeight/2-30,oDlg:nClientWidth/2-105 Button oBtnOk Prompt "&Média" Size 30,15 Pixel Action MsgInfo((nNota1 + nNota2 + nNota3) / 3,"Média Final") Message "Clique aqui para gerar a Média" Of oDlg
@ oDlg:nHeight/2-30,oDlg:nClientWidth/2-70 Button oBtnOk Prompt "&Situação" Size 30,15 Pixel Action U_FMedia1(nNota1,nNota2,nNota3) Message "Clique aqui para Situação" Of oDlg
@ oDlg:nHeight/2-30,oDlg:nClientWidth/2-35 Button oBtnCancel Prompt "&Cancelar" Size 30,15 Pixel Action oDlg:End() Cancel Message "Clique aqui para Cancelar" Of oDlg
Activate MSDialog oDlg Centered
Return
User Function FMedia1(nNota1,nNota2,nNota3) //Função de usuário que será chamada no botão da Tela
If ((nNota1 + nNota2 + nNota3) / 3) >= 6
MsgInfo("Aluno Aprovado!")
Else
Alert("Aluno Reprovado!")
Endif
Return Nil