56
Programação de Computadores Luiz Henrique Silva Engenheiro Eletricista e de Segurança do Trabalho Mestrado em Engenharia Elétrica (UFBA) Doutorando em Engenharia Elétrica (UFBA)

Aula 02 programação_c_alunos

Embed Size (px)

Citation preview

Programação de Computadores

Luiz Henrique SilvaEngenheiro Eletricista e de Segurança do Trabalho

Mestrado em Engenharia Elétrica (UFBA)Doutorando em Engenharia Elétrica (UFBA)

01/05/2023 2

Programação em VBA - Estrutura Sequencial

Visual Basic

Permite a automatização de procedimentos e tarefas repetitivas no dia a dia e cotidiano profissional através da macro.

O que é uma Macro?

Um macro contem uma lista das instruções a realizar para executar uma determina da tarefa. São programas que executam tarefas específicas, automatizando-as. Quando uma macro é ativada, executa uma sequência de instruções.

Gravação de um Macro

Quando uma dada operação envolvendo uma série de ações deve ser utilizada frequentemente, faz sentido tentar automatizar a sua execução.

01/05/2023 3

Programação em VBA - Estrutura Sequencial

A instalação básica do Excel não permite o acesso imediato à barra de desenvolvedor (developer). Assim, é necessário fazer a sua instalação. Portanto, siga as instruções seguintes:

• Começar por clicar na barra Arquivo (File ou Arquivo);

• Selecionar opção (Options ou Opções);

• Depois clicar na categoria personalizar faixa de opções (Customize Ribbon Personalizar

Faixas de Opções);

• Posteriormente vá na lista das Guias principais (Main Tabs) ;

• click em desenvolvedor (Developer ou Desenvolvedor) e finalmente OK.

>> Arquivo>> Opções>> Personalizar faixas de opções>> Desenvolvedor

01/05/2023 4

Programação em VBA - Estrutura Sequencial

Desenvolvedor

01/05/2023 5

Programação em VBA - Estrutura Sequencial

Menu

>> Exibição>> Macros>> Gravar a macro

Nome da Macro

Shortcut key - indicar uma tecla de atalho que permite arrancar automaticamente a macro

Localização em que será armazenado

Descrição das suas funçõesgravação da macro

01/05/2023 6

Programação em VBA - Estrutura Sequencial

Para a gravação da Macro

Lista de Macros

executar dá-se início à sequência de tarefas que foram previamente gravadas

01/05/2023 7

Programação em VBA - Estrutura Sequencial

Ativar o gravador de macros

Desativar o gravador de macros

Operações sobre macros:

• Executar (existem 4 formas diferentes de executar uma macro);

• Editar;

• Alterar;

• Eliminar;

• Atribuir uma tecla de atalho ou um botão.

01/05/2023 8

Programação em VBA - Estrutura Sequencial

Para inserir o script no Visual Basic do Excel sugere-se, por exemplo, que no menu “Developer” insira um botão de comando usando “insert form controls”;

01/05/2023 9

Programação em VBA - Estrutura Sequencial

Clicando agora sobre o botão com a tecla do lado direito do rato escolha “assign macro”

e finalmente “new “ ou “edit” abre a janela de edição VB:

01/05/2023 10

Programação em VBA - Estrutura Sequencial

Nesta janela é possível visualizar a hierarquia dos projetos de VBA ativos.

•Neste caso está visível um projeto que corresponde ao livro com que nos encontramos a trabalhar: VBAProject (Exercícios)

•Na pasta Modules está visível um Ficheiro (módulo) onde são programadas as macros.

Explorador do projeto (Project Explorer)

Explorador do projeto (Properties)

Nesta janela é possível visualizar e alterar um conjunto de propriedades que definem cada objeto que constitui o projeto, neste caso, a folha3.

01/05/2023 11

Estrutura Sequencial

Programa Nome

INICIODeclarações ou Sequência de Instruções (ler, escrever, calcular)FIM

Estrutura Sequencial ou um Módulo em VBA

Sub Macro3()‘ComandosEnd Sub

Programação em VBA - Estrutura Sequencial

Sub vem da palavra em língua inglesa Subscript (Procedimentos). Todo módulo é um conjunto de procedimentos.

01/05/2023 12

Estrutura Sequencial

Além disso, em programas na linguagem VBA não há distinção de onde você inicia a digitação das suas linhas e, assim, usamos essa característica a nosso favor, adicionando espaços em algumas linhas do programa para facilitar sua leitura

Essa adição de espaços em uma linha é chamada tabulação.

Programação em VBA - Estrutura Sequencial

01/05/2023 13

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

A instrução Escrever é utilizada quando deseja-se mostrar informações na tela do computador, ou seja, é um comando de saída de dados.

- Exibe na tela a resposta dada pelo programa ao usuário.- Representado pela função MsgBox ”Texto”.

Poderá retornar apenas uma mensagem:

MsgBox “Tem a certeza que quer sair do programa?”

Forma Geral:

MsgBox “Mensagem”, “Estilo”, “Título”

01/05/2023 14

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

MsgBox “Mensagem ou aviso”, “Estilo”, “Título”

Esta função recebe por argumento a mensagem que se pretende dar ao utilizador (e que é obrigatório definir) e mais uma série de argumentos úteis para facilitar o diálogo que são facultativas de definir. São eles:

§ Mensagem – (obrigatório) , deve-se escrever a mensagem desejada em de forma sucinta, ou seja, breve entre aspas.

§ O Estilo – (opcional) que corresponde ao tipo de botões e de ícone identificativo para mensagem (estão disponíveis botões como “Yes”, “No”, “Cancel”, “OK”, etc e ícones como exclamação, Informação, Questão, Crítico, etc);

01/05/2023 15

Programação em VBA - Estrutura Sequencial

Constante Valor DescriçãovbOKOnly 0 Exibe apenas o botão OK.

vbOKCancel 1 Exibe apenas os botões OK e Cancelar.vbAbortRetryIgnore 2 Exibe os botões Anular, Repetir e Ignorar.

vbYesNoCancel 3 Exibe os botões Sim, Não e Cancelar.vbYesNo 4 Exibe os botões Sim e Não.

vbRetryCancel 5 Exibe os botões Repetir e Cancelar.vbCritical 16 Exibe o ícone Mensagem Crítica.

vbQuestion 32 Exibe o ícone Consulta de Aviso    .vbExclamation 48 Exibe o ícone Mensagem de Aviso    .vbInformation 64 Exibe o ícone Mensagem de Informação.

01/05/2023 16

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

MsgBox “Mensagem ou aviso”, “Estilo”, “Título”

Esta função recebe por argumento a mensagem que se pretende dar ao utilizador (e que é obrigatório definir) e mais uma série de argumentos úteis para facilitar o diálogo que são facultativas de definir. São eles:

§ Mensagem – (obrigatório) , deve-se escrever a mensagem desejada em de forma sucinta, ou seja, breve entre aspas.

§ O Estilo – (opcional) que corresponde ao tipo de botões e de ícone identificativo para mensagem (estão disponíveis botões como “Yes”, “No”, “Cancel”, “OK”, etc e ícones como exclamação, Informação, Questão, Crítico, etc);

§ o Título, que aparece na barra superior azul da caixa;

01/05/2023 17

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

MsgBox “Tem a certeza que quer sair do programa?”, vbYesNo, “Programa de teste”

MsgBox “Tem a certeza que quer sair do programa?”, , “Programa de teste”.

A caixa só é fechada depois de o utilizador “clicar” um dos botões disponíveis. O valor retornado pela função, indica o botão que foi “clicado” pelo utilizador.

Mensagem

Estilo da Mensagem

Título

01/05/2023 18

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

Exercício 01 – Faça um programa em português estruturado e em linguagem VBA para exibir a mensagem:

• Mensagem 01: Bem vindo ao nosso programa!• Mensagem 02: Erro! (com uma mensagem sonora)• Mensagem 03: Deseja escolher a primeira opção?

Explore outras mensagens através de estilos diferentes. Para tal use o comando MsgBox

01/05/2023 19

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

Exercício 01 – Resposta

Sub Execicio01()

' Programa: Execicio01' Data 27 de Setembro' Programador: Luiz Henrique

MsgBox "Bem Vindo ao nosso programa!", "64", "Programa Mensagem"MsgBox "Erro!", "16", "Mensagem"MsgBox "Deseja escolher a primeira opção!", "4", "Programa Mensagem"MsgBox "Deseja sair do programa?", vbYesNo, "Programa Mensagem"

End Sub

01/05/2023 20

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

Cells(i, j) ou Cells(i, j).Value

i = linhaj = Coluna

Escreve na celula ativa

Ex. Cells(1,1) = “Reprovado” Cells(1,1) = 3,14 Range(“A1”) = “Aprovado” Range(“A1”) = 3,14

Range(A1) ou Range(A1).Value

Worksheets("Plan3").Cells(1,1) = “Aprovado”Worksheets("Plan3").Cells(1,1) = 7

Worksheets("Plan3").Range("A1") = 7Worksheets("Plan3"). Range("A1") = “Reprovado”

Escreve na celula da planilha requisitada

A1 = linha1 e coluna1

01/05/2023 21

Programação em VBA - Estrutura Sequencial

Saída de Valores – Função Escrever

Ex. Exibindo uma mensagem em uma célula na tabela do excel.

Sub Verifica_Lucro()

For i = 1 To 21 If Cells(i, 1) >= 7 Then Cells(i, 2) = “Aprovado" Else Cells(i, 2) = “Reprovado" End IfNext

End Sub

Ex. Exibindo uma mensagem relacionada a um dado preenchido na tabela.

Sub verifica_Valor()

If Cells(2, 2) > 10 ThenMsgBox "Valor máximo excedido!"End If

End Sub

01/05/2023 22

Exercício 02 – Faça um programa em VBA para escrever palavras e números em uma planilha do excel.

• Associada a uma célula do excel;• Várias células do excel;

• Associada a uma célula do excel de uma planilha específica;• Várias células do excel de uma planilha específica;

Programação em VBA - Estrutura Sequencial

01/05/2023 23

Exercício 02 – Resposta

Sub Exercicio01()' Programa: Execicio01' Data 27 de Setembro' Programador: Luiz Henrique' Atalho do teclado: Ctrl+b

'Associada a uma célula do excel;

Cells(1, 1) = "Luiz"Cells(1, 2) = 3.14

Range("A2") = "Luiz"Range("B2") = 3.14

Programação em VBA - Estrutura Sequencial

‘Várias células do excel;

For i = 3 To 5 Cells(i, 1).Value = "Lucro bom"Next

01/05/2023 24

Exercício 02 – Resposta

Sub Exercicio01()' Programa: Execicio01' Data 27 de Setembro' Programador: Luiz Henrique' Atalho do teclado: Ctrl+b

‘Associada a uma célula do excel de uma planilha específica;

Cells(1, 1) = "Luiz"Cells(1, 2) = 3.14

Range("A2") = "Luiz"Range("B2") = 3.14.

End Sub

Programação em VBA - Estrutura Sequencial

' Várias células do excel de uma planilha especificada;

For i = 3 To 5 Worksheets("Plan3").Cells(i, 1).Value = "Lucro bom“Next

01/05/2023 25

Variáveis

Uma variável, é um espaço da memória do computador que "reservamos" para guardar informações (dados). Como o próprio nome sugere, as variáveis, podem conter valores diferentes a cada instante de tempo, ou seja, seu conteúdo pode variar de acordo com as instruções do algoritmo.

Programação em VBA - Estrutura Sequencial

Dim (no procedimento)Dim ou Private (no módulo)

Public (no módulo)

Dim – O valor da variável é retido apenas enquanto o procedimento no qual ela foi declarada estiver em execução.Private – O valor fica disponível a todos os procedimentos dentro do módulo onde a variável foi declarada.Public – A variável pode ser acessada pelos procedimentos de vários módulos de uma pasta de trabalho.

01/05/2023 26

Variáveis

A declaração de uma variável em VBA é feita da seguinte maneira:

Dim Nome As Tipo

Programação em VBA - Estrutura Sequencial

Exemplo:

Dim Nome As StringDim Numero As IntegerDim DataDeNascimento As DateDim Contador As Integer

Nome = “Luís Fernandes”Numero = 91Data_de_Nascimento = “19-08-1977”Contador = 25

01/05/2023 27

Variáveis

Regras para escolher um identificador:

1) Um nome de identificador deve começar por uma letra:

2) Ser único dentro do mesmo nível de escopo:

3) Não pode conter um espaço entre caracteres do nome (o único caractere especial válido para batizar variáveis é _ ).

Programação em VBA - Estrutura Sequencial

• Válido: Nome, Valor1, Valor 2, Media, Preco.• Inválido: 1Valor, média ou Preço.

• Inválido: Dim Nome1 StringDim Nome1 Single

• Válido: Dim Nome_Cliente String• Inválido Dim Nome Cliente Single

01/05/2023 28

Variáveis

Palavras-reservadas (palavras-chave) – são identificadores predefinidos que possuem significados especiais para o interpretador do algoritmo.

• Exemplo: For, If, Else, Case, Next, Interger, Single, Double, Dim, Public, Private etc .

• Outras Palavras-Chave: as, byref, byval, case, close, const, date, declare, dim, each, else, empty, false, for, friend, function, get, input, if, is, len, let, lock, next, new, nothing, on, open, option, print, public, private, resume, seek, select, set, static, string, sub, then, to, true, type, variant, with, while, write.

O conteúdo de uma variável pode ser alterado, consultado ou apagado quantas vezes forem necessárias durante o algoritmo.

Programação em VBA - Estrutura Sequencial

01/05/2023 29

Variáveis

As mais utilizadas:

• Booleano – verdadeiro ou Falso.

• Single – variável do tipo real de precisão simples.

• Double – variável do tipo real de precisão dupla.

• Currency – variável do tipo real de elevada precisão. Utilizado para moedas e

operações bancarias de alta precisão.

• Date – variável que armazena datas.

• String – variável que armazena cadeia de caracteres (alfanúmerico).

Programação em VBA - Estrutura Sequencial

01/05/2023 30

Programação em VBA - Estrutura Sequencial

01/05/2023 31

Variáveis

As variáveis em VBA não têm de ser obrigatoriamente explicitadas, embora seja conveniente fazê-lo, pois torna o código de execução mais rápida e mais explícito. Para obrigar essa que a declaração seja feita, deve-se utilizar: Option Explicit.

Ex:Option Explicit

(não permite que repita variáveis e declare as variáveis erradas)

Dim S As String, Nome As StringDim Data_Dia As DateDim Botão As Object

Dim Número1 As IntegerDim Propina As Boolean

Dim Qualquer_Coisa As Variant

Programação em VBA - Estrutura Sequencial

01/05/2023 32

Declaração de constantes

É possível declarar constantes nos programas.

Const Pi As Double = valor

Por exemplo, imagine-se que se está a fazer um programa em que se recorre várias vezes ao valor de Pi e que se necessita de alguma precisão nos cálculos a efetuar. Para evitar ter de escrever o valor de Pi no programa, pode-se declarar a constante “Pi” como tendo o valor 3.1415...

Programação em VBA - Estrutura Sequencial

Const Pi As Double = 3.1415926535897932384626433832795

Perímetro = 2 * Pi * RaioÁrea = Pi * Raio * Raio

01/05/2023 33

Comentário

Uma boa documentação de um programa, conforme, significa inserir comentários apropriados no código de modo a explicar o que cada uma das funções que compõem o programa faz. A documentação de uma função é um pequeno manual que dá instruções precisas e completas sobre o uso da função.

Comentários são introduzidos em programas com o objetivo de documentá-los e de incrementar a sua legibilidade. O programador é responsável por manter seus códigos legíveis e bem documentados para que, no futuro, possa retomá-los e compreendê-los sem muito esforço e sem desperdício de tempo. Na linguagem VBA padrão, os comentários é envolvido pelo símbolo ‘. Um comentário é completamente ignorado quando encontrado pelo compilador e, portanto, não faz diferença alguma no programa executável resultante.

Programação em VBA - Estrutura Sequencial

01/05/2023 34

Comentário

Exemplos:

• MsgBox “Olá Mundo" ‘ esse é o comando para escrever um dado em VBA.

• ‘ Este programa faz a adição de dois números inteiros fixos e mostra o resultado da operação na saída.

TODO PROGRAMA DEVERÁ POSSUIR UM CABEÇALHO‘Programa xxxx‘Autor: Nome_do_Aluno‘Data: 24/08/2016

Programação em VBA - Estrutura Sequencial

01/05/2023 35

Entrada de valores em VBA – Função Ler.

A instrução Ler é utilizada quando deseja-se obter informações do teclado do computador, ou seja, é um comando de entrada de dados. Para simplificar, usa-se a instrução Ler, quando necessita-se que o usuário do algoritmo digite algum dado (para posterior processamento ou tratamento da informação processada).

Utilizado para receber dados digitados pelo usuário.

Note que:

§ Mensagem – (obrigatório) , deve-se escrever a mensagem desejada em de forma sucinta, ou seja, breve entre aspas.

§ o Título – (opcional) que aparece na barra superior azul da caixa;

Programação em VBA - Estrutura Sequencial

Variável = InputBox (“Mensagem ou Aviso”,”título”,” DefaultResponse” , “x pos” , ”y pos”)

01/05/2023 36

Note que:

§ DefaultResponse – (opcional) String expressão exibida na caixa de texto sistema autônomo a resposta padrão se for fornecida nenhuma outra entrada. Se você omitir DefaultResponse, a caixa de texto exibido está vazia

§ Xpos – (opcional) expressão numérica que especifica, em twips, a distância da borda esquerda da caixa de diálogo a partir da borda esquerda da tela. Se você omitir XPos e YPos, a caixa de diálogo é centralizada na tela.

YPos – (opcional) expressão numérica que especifica, em twips, a distância da borda superior da caixa de diálogo da parte superior da tela. Se você omitir XPos e YPos, a caixa de diálogo é centralizada na tela.

Programação em VBA - Estrutura Sequencial

Variável = InputBox (“Mensagem ou Aviso”,”título”,” DefaultResponse” , “x pos” , ”y pos”)

01/05/2023 37

Entrada de valores em VBA – Função Ler.

Programação em VBA - Estrutura Sequencial

Nome = InputBox(“Digite seu nome”, “Cadastro”, “Escreva Aqui”,”100”,”100”)

Mensagem MensagemDefaultResponseNão obrigatório Xpos, Ypos

Não obrigatório

01/05/2023 38

Entrada de valores em VBA – Função Ler.

Programação em VBA - Estrutura Sequencial

Exemplo

Sub Macro3()

Dim Nome As String

Nome = InputBox("Digite seu nome", "Cadastro", "Escreva Aqui", "100", "100")MsgBox "O nome da pessoa é:" & Nome

End Sub

01/05/2023 39

Exercício 03 - Faça um programa em fluxograma e em linguagem VBA para calcular o perímetro e a área de uma circunferência e mostre o resultado da operação para o usuário final. O exercício deve ser resolvido utilizando o comando InputBox e Msgbox.

Exercício 04 - Faça um programa em fluxograma e linguagem VBA para calcular a área e o perímetro de um retângulo sendo dados os valores do comprimento e da largura. O exercício deve ser resolvido utilizando o comando InputBox e Msgbox. Deve ser criado um atalho para compilar a macro através de um botão.

Exercício 05 - Faça um programa em fluxograma e linguagem VBA para calcular a média de duas notas e exiba o resultado dessa operação na tela do computador. O exercício deve ser resolvido utilizando o comando InputBox e Msgbox.

Programação em C - Estrutura Sequencial

01/05/2023 40

Exercício 05 –

Sub Exercicio03()Dim raio As SingleConst Pi As Double = 3.14159Dim Perimetro As SingleDim area As Single

'Resolvendo o exercício usando o InputBox

raio = InputBox("Digite o raio", "Programa", "Escreva Aqui")Perimetro = 2 * Pi * raioarea = Pi * raio * raio

MsgBox "O perímetro é " & Perimetro, "64", "Programa"MsgBox "A area é " & area, "64", "Programa"

End Sub

Programação em C - Estrutura Sequencial

01/05/2023 41

Entrada de valores em VBA – Função Ler.

Programação em VBA - Estrutura Sequencial

Para ler uma célula do excel e gravar o seu conteúdo em uma variável pode-se utilizar a função:

Preco = Range (A1)

Ou

Preco = Ceil (1,1)

Ou

Preco = ActiveSheet.Range("C1").Value

01/05/2023 42

Entrada de valores em VBA – Função Ler.

Programação em VBA - Estrutura Sequencial

Sub Macro3()

Dim preco As IntegerDim Nome As String

preco = Range("A1")Nome = Cells(1, 3)

MsgBox "O conteúdo da celula A1 é?" & Nome1MsgBox "O contéudo da celula 1,3?" & Nome1

End Sub

01/05/2023 43

Entrada de valores em VBA – Função Ler.

Programação em VBA - Estrutura Sequencial

Para ler uma célula do excel e gravar o seu conteúdo em uma variável pode-se utilizar a função:

Nome 1= Range (A1).value Nome 1 = ActiveSheet.Range("C1").Value Nome1 = Cells (A1).value

Para se referir a uma outra planilha

Dim Nome_2 As IntegerNome 1= Worksheets("Plan3").Range("A1").Value

Isso é valido para a planilha corrente ou ativa

01/05/2023 44

Exercício 06 - Faça um programa em fluxograma e em linguagem VBA para calcular o perímetro e a área de uma circunferência e mostre o resultado da operação para o usuário final. O exercício deve ser resolvido de duas formas: utilizando o comando InputBox e lendo o raio informado através de uma tabela do excel. Deve ser criado um atalho para compilar a macro. Exercício 07 - Faça um programa em fluxograma e linguagem VBA para calcular a área e o perímetro de um retângulo sendo dados os valores do comprimento e da largura. O exercício deve ser resolvido de duas formas: utilizando o comando InputBox e lendo o comprimento e a largura informado através de uma tabela do excel. Deve ser criado um atalho para compilar a macro.

Exercício 08 - Faça um programa em fluxograma e linguagem VBA para calcular a média de duas notas de uma lista de alunos e exiba o resultado dessa operação na tela do computador. Posteriormente é necessário informar se o aluno está aprovado ou reprovado. Toda vez que a pessoa colocar uma nota superior a 10 deverá aparecer uma mensagem de alerta. O exercício deve ser resolvido lendo os valores de uma tabela do excel. Deve ser criado um botão para compilar a macro.

Programação em C - Estrutura Sequencial

01/05/2023 45

Exercício 06 –

Sub Exercicio03()Dim raio As SingleConst Pi As Double = 3.14159Dim Perimetro As SingleDim area As Single

'Resolvendo o exercício lendo e escrevendo uma célula do excel

raio = Range("B12")'raio = Cells(12, 2)

Perimetro = 2 * Pi * raioarea = Pi * raio * raio

Cells(14, 2) = PerimetroRange("B13") = areaEnd Sub

Programação em C - Estrutura Sequencial

01/05/2023 46

Expressões Matemáticas , Operadores Aritméticos e Lógicos

Muitas vezes, ao desenvolvermos algoritmos, é comum utilizarmos expressões matemáticas para a resolução de cálculos.

Utilizado para atribuir a variáveis:- Valores pré-definidos- Resultados de expressões

Representados pelo símbolo = (símbolo de uma atribuição). • Significa que a variável do lado esquerdo receberá o resultado expresso no lado direito• Sempre terminada com ponto e vírgula

Programação em C - Estrutura Sequencial

01/05/2023 47

Operações matemáticas

Programação em VBA - Estrutura Sequencial

• Aritméticos: + (soma), - (subtração), / (divisão), * (multiplicação) , ^ (potência), e Mod (resto inteiro).

• Concatenação: &.

• Lógicos: E [And], Não [Not], Ou [Or].

• Operadores Relacionais: =, <, <=, >, >= e <>.

• Atribuição:

Dim resto as integer resto = 120 – 49

Dim salario as double salario = 510.00

Dim cidade as string cidade = 'Blumenau'

01/05/2023 48

Operações matemáticas

Programação em VBA - Estrutura Sequencial

• Funções Matemáticas:

Operação Exemplo Resultado

Raiz quadrada sqr(9.0) 3

Parte inteira int(7.8) 7

Valor absoluto abs(-5) 5

Seno sin(3.7) 0,53

Co-seno cos(4.1) 0,57

Tangente tan(6.8) 0,56

01/05/2023 49

Exemplos de operações matemáticas:

Programação em VBA - Estrutura Sequencial

Algumas expressões aritméticas: 1+2, a-4.0, b*c, valor_1/taxa e num%2.

Exemplo: Expressões válidasExpressão Valor6.4 + 2.1 8.57 - 2 52.0 * 2.0 4.06 / 3 210 % 3 1

Uma restrição ao operador de divisão (/) é que o denominador deve ser diferente de zero. Se alguma operação de divisão por zero for realizada ocorrerá um erro de execução do programa (runtime error), o programa será abortado e a mensagem divide error será exibida.

01/05/2023 50

Operações matemáticasPrecedência nas operações matemáticas:

1º: funções matemáticas 2º: *, / e MOD 3º: + e – 4º: = <> > >= < <= Precedência pode ser alterada com o uso de parênteses

O separador decimal é sempre o ponto (;)

Programação em VBA - Estrutura Sequencial

01/05/2023 51

Operações matemáticas

Nas linguagens de programação e, portanto, nos exercícios de algoritmos que iremos desenvolver, as expressões matemáticas sempre obedecem às regras matemáticas:

1) As expressões dentro de parênteses são sempre resolvidas antes das expressões fora dos parênteses. Quando existem vários níveis de parênteses, ou seja, um parêntese dentro de outro, a solução sempre inicia do parêntese mais interno até o mais externo (de dentro para fora).

Ex: (2+1) + 3 Ex: 3*(4*(2+3))

Programação em VBA - Estrutura Sequencial

3 + 3 = 6 3*(4*5)

3*20 = 60

01/05/2023 52

Atribuição de Valores

Nas linguagens de programação e, portanto, nos exercícios de algoritmos que iremos desenvolver, as expressões matemáticas sempre obedecem às regras matemáticas:

2) Quando duas ou mais expressões tiverem a mesma prioridade, a solução é sempre iniciada da expressão mais à esquerda até a mais à direita.

Ex. 2 + 3 + 5 = 5 + 5 = 10 Ex: (2+3) + 3+ (4+9) = 5 + 3 + 13 = 21

3) Para o desenvolvimento de algoritmos que possuam cálculos matemáticos, as expressões aritméticas devem estar horizontalizadas, ou seja, linearizadas e também não esquecendo de utilizar os operadores corretamente.

Programação em VBA - Estrutura Sequencial

M = (N1+N2) / 2

01/05/2023 53

Expressão Valor Ordem1 + 2 - 3 0 + -24 - 3 * 5 9 * -4 - 2 * 6 / 4 + 1 2 * / - +6 / 2 + 11 % 3 * 4 11 / % * +

Precedência nas operações matemáticas:

Programação em VBA - Estrutura Sequencial

A ordem de precedência dos operadores pode ser quebrada usando-se parênteses: ( ). Os parênteses são, na verdade, operadores de mais alta precedência e são executados primeiro. Parênteses internos são executados primeiro que parênteses externos.

Expressão Valor Ordem 1 + (2 - 3) 0 - + (24 - 3) * 5 105 - * (4 - 2 * 6) / 4 + 1 -1 * - / + 6 / ((2 + 11) % 3) * 4 24 + % / *

01/05/2023 54

Operadores Lógicos

Programação em VBA - Estrutura Sequencial

Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso.

Os operadores lógicos são:

• E / AND Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras;• OR/OU Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira;• NOT Um expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira

inverte para falsa e vice-versa.

01/05/2023 55

Operadores Lógicos

Programação em C - Estrutura Sequencial

A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos(AND, OR e NOT).

Ex.: Suponha que temos três variáveis A = 5, B = 8 e C =1

Expressões Resultado

A = B AND B > C A < B OR B < C A > B NOT A < B AND B > C A >= B OR B = C A <= B NOT

FalsoVerdadeiroVerdadeiroVerdadeiroFalsoFalso

Em VBA:

Operador andOperador orOperador not

01/05/2023 56

Programação em C - Estrutura Sequencial

• Exercício 9Faça um programa em fluxograma e linguagem VBA para calcular uma raiz quadrada e o cubo. O exercício deve ser resolvido de duas formas: utilizando o comando InputBox e lendo os valores de uma tabela do excel. Deve ser criado um botão para compilar a macro.

• Exercício 10Faça um programa em fluxograma e linguagem VBA para calcular a solução de uma equação do segundo grau. O exercício deve ser resolvido de duas formas: utilizando o comando InputBox e lendo os valores de uma tabela do excel. Deve ser criado um botão para compilar a macro.

• Exercício 11Faça um programa em fluxograma e linguagem VBA para reajustar o salário de 50 funcionários de uma empresa. Para tal é necessário criar um critério de reajuste salarial. Deve ser criado um botão para compilar a macro.