terça-feira, 29 de novembro de 2011

9.5. Reajuste por faixa salarial

Tamo de volta!!!


9.5. Reajuste por faixa salarial

Já criamos um sistema para reajustar salários. Porém, no dia-a-dia, você pode ser obrigado a criar um sistema que reajuste os salários, considerando determinadas faixas salariais.

O LOOP que criaremos agora é daqueles perigosos, que se infinitos, podem travar o sistema. Para impedirmos que isto aconteça, precisaremos criar um FLAG, qualquer palavra ou número, que sendo digitada, finalize o sistema.

Vamos criar o sistema observando os seguintes critérios:

SALÁRIO                                                                                       REAJUSTE

MENOR/IGUAL A R$ 545,00                                                               30%
ENTRE R$ 545,00 E R$ 1.000,00                                                          20%
ENTRE R$ 1.000,00 E R$ 2.000,00                                                         5%
ACIMA DE R$ 2.000,00                                                                        Sem aumento.

Então, se o salário do funcionário for menor/igual a R $545,00, vamos reajustá-lo em 30%. Caso o salário seja maior que R$ 545,00 e menor/igual a R$ 1.000,00, aumentaremos em 20%. Para salários maiores que R$ 1.000,00 e menores/igual a R$ 2.000,00, o reajuste será de 5%. Finalmente, se o salário for maior que R$ 2.000,00, não haverá reajuste. O cara vai reclamar, mas fazer o que? Foi o chefe quem mandou.

Para terminar a execução do nosso sistema, vamos definir a palavra “FIM” em letras maiúsculas.

Uma consideração importante neste exemplo é sobre a declaração da variável. Perceba que o salário é numérico, porém, a palavra FIM não. Por isto, declaramos a variável Sal como Variant, que pode receber os dois tipos.

Mãos à obra.




CÓDIGO PARA COPIAR


Sub ReajusteFaixaSalarial()

'Declaramos a variável que receberá o valor do salário. Ela será do tipo Variant, pois
'receberá tanto valores numéricos como letras.
Dim Sal As Variant

'Começamos um LOOP que só será finalizado, quando digitarmos a palavra FIM.
Do
'Abrimos uma CAIXA DE ENTRADA para receber o valor que será armazenado na variável.
Sal = InputBox("Digite o salário!", "REAJUSTE POR FAIXA SALARIAL")
    'Começamos um LOOP que impedirá a entrada de valores menores que zero.
    Do While Sal <= 0
    MsgBox "Digite um valor maior que 0(Zero)!!!"
    Sal = InputBox("Digite o salário!", "REAJUSTE POR FAIXA SALARIAL")
    Loop

'Agora é só fazer as verificações e pronto.
If Sal <= 545 Then
MsgBox "Salario reajustado:  " & FormatCurrency(Sal * 1.3)
ElseIf Sal > 545 And Sal <= 1000 Then
MsgBox "Salario reajustado:  " & FormatCurrency(Sal * 1.2)
ElseIf Sal > 1000 And Sal <= 2000 Then
MsgBox "Salario reajustado:  " & FormatCurrency(Sal * 1.05)
ElseIf Sal > 2000 Then
MsgBox "Não há reajuste para este salário!"
End If
Loop Until Sal = "FIM"

End Sub


Agora é fazer os testes. Deixo com você!


Para acessar o curso completo Clique aqui

domingo, 13 de novembro de 2011

9.4. Reajuste salarial

9.4. Reajuste salarial

Neste próximo código, veremos na prática a diferença de formatação dos LOOPS da estrutura DO WHILE/UNTIL – LOOP. Vamos usar duas formatações diferentes para tornar clara a compreensão.





CÓDIGO PARA COPIAR

Sub ReajusteSalarial() 'EXCELECIA.BLOG@GMAIL.COM
Dim Salario As Double
Dim Reajuste As Double
'Esta formatação, não exige que a variável SALARIO possua algum valor. Isto, por que
'ela ordena que o código seja executado primeiro(LEMBRA DO CAPITAL NASCIMENTO!), sendo a verificação realizada depois,
'ou seja, faça tudo quantas vezes for preciso, até que o salário digitado seja maior que 0(Zero)
Do
    'Nesta caixa de entrada vamos digitar o salário
    Salario = InputBox("Digite o valor do salário: ", "REAJUSTE SALARIAL")
    If Salario < 0 Then
    MsgBox "Não é permitido digitar um salário menor que 0(Zero)"
    End If
Loop Until Salario > 0
Reajuste = -1
'Esta estrutura, exige que a variável reajuste possua algum valor, pois do contrário o LOOP
'não se iniciará. Ela diz: Faça enquanto Reajuste for menor que 0(Zero), porém, como você
'já percebeu, a INPUTBOX ainda não foi aberta para digitarmos o valor do reajuste e é por isto
'que forçamos a variável como Reajuste = -1 para entrarmos no LOOP. Aqui fica claro a diferença
'entre as duas formatações de LOOP utilizadas.
Do While Reajuste < 0
'Nesta caixa, digitaremos o reajuste
Reajuste = InputBox("Digite o valor do reajuste: ", "REAJUSTE SALARIAL")
    If Reajuste < 0 Then
    MsgBox "Não é permitido reajuste menor que 0 (Zero)"
    End If
Loop
'Agora vamos fazer os cálculos. Como você sabe, para encontrarmos um número que será ajustado em
'X por cento, precisamos primeiro transformar este percentual em número índice. Por que? Por que números
'percentuais são apenas representativos, por exemplo: 10% de 100 = 10, porém, 10% de 1000 = 100, ou seja
'queremos apenas, a 10ª parte de um número qualquer. Então para reajustarmos nosso salário, precisamos
'dividir o reajuste por 100(daí percentual) e somar 1. Por que? Imagine, se dividirmos 10/100, teriamos
'0,10. Quando multiplicarmos o valor do salário por este índice, teremos a 10ª parte dele, porém, se
'somarmos ao índice 1, teremos 1,10, assim qualquer número multiplicado a este índice terá o proprio
'valor(por causa do 1) e mais a 10ª parte(0,10).
Reajuste = Reajuste / 100 + 1
'Finalmente, é só pegar o valor do salário que foi digitado na INPUTBOX e multiplica-lo pelo índice
'de reajuste.
Salario = (Salario * Reajuste)
'Exibimos o resultado.
MsgBox Salario
End Sub


Aperte F5. Agora digite o salário de R$ 310,00 para ser reajustado, teclando ENTER para continuar.




Vamos reajustá-lo em 30%.





O cálculo será realizado e o valor imprimido em uma MSGBOX. Moleza!!!





Para acessar o curso completo Clique aqui