SlideShare uma empresa Scribd logo
1 de 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)
17/11/2016 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.
17/11/2016 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
17/11/2016 4
Programação em VBA - Estrutura Sequencial
Desenvolvedor
17/11/2016 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ções
gravação da macro
17/11/2016 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
17/11/2016 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.
17/11/2016 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”;
17/11/2016 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:
17/11/2016 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.
17/11/2016 11
Estrutura Sequencial
Programa Nome
INICIO
Declarações ou Sequência de Instruções (ler, escrever, calcular)
FIM
Estrutura Sequencial ou um Módulo em VBA
Sub Macro3()
‘Comandos
End Sub
Programação em VBA - Estrutura Sequencial
Sub vem da palavra em língua inglesa Subscript (Procedimentos). Todo módulo é um
conjunto de procedimentos.
17/11/2016 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
17/11/2016 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”
17/11/2016 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);
17/11/2016 15
Programação em VBA - Estrutura Sequencial
Constante Valor Descrição
vbOKOnly 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.
17/11/2016 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;
17/11/2016 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
17/11/2016 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
17/11/2016 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
17/11/2016 20
Programação em VBA - Estrutura Sequencial
Saída de Valores – Função Escrever
Cells(i, j) ou Cells(i, j).Value
i = linha
j = 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") = 7
Worksheets("Plan3"). Range("A1") = “Reprovado”
Escreve na celula da planilha requisitada
A1 = linha1 e coluna1
17/11/2016 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 If
Next
End Sub
Ex. Exibindo uma mensagem
relacionada a um dado preenchido
na tabela.
Sub verifica_Valor()
If Cells(2, 2) > 10 Then
MsgBox "Valor máximo excedido!"
End If
End Sub
17/11/2016 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
17/11/2016 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
17/11/2016 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
17/11/2016 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.
17/11/2016 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 String
Dim Numero As Integer
Dim DataDeNascimento As Date
Dim Contador As Integer
Nome = “Luís Fernandes”
Numero = 91
Data_de_Nascimento = “19-08-1977”
Contador = 25
17/11/2016 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 String
Dim Nome1 Single
• Válido: Dim Nome_Cliente String
• Inválido Dim Nome Cliente Single
17/11/2016 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
17/11/2016 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
17/11/2016 30
Programação em VBA - Estrutura Sequencial
17/11/2016 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 String
Dim Data_Dia As Date
Dim Botão As Object
Dim Número1 As Integer
Dim Propina As Boolean
Dim Qualquer_Coisa As Variant
Programação em VBA - Estrutura Sequencial
17/11/2016 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
17/11/2016 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
17/11/2016 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
17/11/2016 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”)
17/11/2016 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”)
17/11/2016 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 Mensagem
DefaultResponse
Não obrigatório Xpos, Ypos
Não obrigatório
17/11/2016 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
17/11/2016 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
17/11/2016 40
Exercício 05 –
Sub Exercicio03()
Dim raio As Single
Const Pi As Double = 3.14159
Dim Perimetro As Single
Dim area As Single
'Resolvendo o exercício usando o InputBox
raio = InputBox("Digite o raio", "Programa", "Escreva Aqui")
Perimetro = 2 * Pi * raio
area = Pi * raio * raio
MsgBox "O perímetro é " & Perimetro, "64", "Programa"
MsgBox "A area é " & area, "64", "Programa"
End Sub
Programação em C - Estrutura Sequencial
17/11/2016 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
17/11/2016 42
Entrada de valores em VBA – Função Ler.
Programação em VBA - Estrutura Sequencial
Sub Macro3()
Dim preco As Integer
Dim Nome As String
preco = Range("A1")
Nome = Cells(1, 3)
MsgBox "O conteúdo da celula A1 é?" & Nome1
MsgBox "O contéudo da celula 1,3?" & Nome1
End Sub
17/11/2016 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 Integer
Nome 1= Worksheets("Plan3").Range("A1").Value
Isso é valido para a
planilha corrente ou ativa
17/11/2016 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
17/11/2016 45
Exercício 06 –
Sub Exercicio03()
Dim raio As Single
Const Pi As Double = 3.14159
Dim Perimetro As Single
Dim 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 * raio
area = Pi * raio * raio
Cells(14, 2) = Perimetro
Range("B13") = area
End Sub
Programação em C - Estrutura Sequencial
17/11/2016 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
17/11/2016 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'
17/11/2016 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
17/11/2016 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álidas
Expressão Valor
6.4 + 2.1 8.5
7 - 2 5
2.0 * 2.0 4.0
6 / 3 2
10 % 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.
17/11/2016 50
Operações matemáticas
Precedê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
17/11/2016 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
17/11/2016 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
17/11/2016 53
Expressão Valor Ordem
1 + 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 + % / *
17/11/2016 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.
17/11/2016 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
Falso
Verdadeiro
Verdadeiro
Verdadeiro
Falso
Falso
Em VBA:
Operador and
Operador or
Operador not
17/11/2016 56
Programação em C - Estrutura Sequencial
• Exercício 9
Faç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 10
Faç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 11
Faç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.

Mais conteúdo relacionado

Mais procurados

03 - Introdução a lógica de programação parte 3 - v1.1
03 - Introdução a lógica de programação parte 3 - v1.103 - Introdução a lógica de programação parte 3 - v1.1
03 - Introdução a lógica de programação parte 3 - v1.1César Augusto Pessôa
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeansSliedesharessbarbosa
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interaçãoHumberto Cepep
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Strutseduan
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_javasamuelthiago
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu algLeandro Santos
 

Mais procurados (10)

03 - Introdução a lógica de programação parte 3 - v1.1
03 - Introdução a lógica de programação parte 3 - v1.103 - Introdução a lógica de programação parte 3 - v1.1
03 - Introdução a lógica de programação parte 3 - v1.1
 
Apostila matlab
Apostila matlabApostila matlab
Apostila matlab
 
apostila matlab
apostila matlabapostila matlab
apostila matlab
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeans
 
Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interação
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 

Destaque

It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...
It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...
It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...Victoria Redman
 
Bat dang thuc amgm
Bat dang thuc amgmBat dang thuc amgm
Bat dang thuc amgmHùng Sỹ
 
Covered with Icing
Covered with IcingCovered with Icing
Covered with Icingcnoble512
 
Diversified Health & Fitness Brands
Diversified Health & Fitness BrandsDiversified Health & Fitness Brands
Diversified Health & Fitness BrandsAndrew Barnett
 
Kids collection In Chennai
Kids collection In ChennaiKids collection In Chennai
Kids collection In Chennaisaree123
 
งานนำเสนอ สรุปประเด็น
งานนำเสนอ สรุปประเด็นงานนำเสนอ สรุปประเด็น
งานนำเสนอ สรุปประเด็นAnn Pawinee
 
лекция № 3 ока мочевыдел
лекция № 3 ока мочевыделлекция № 3 ока мочевыдел
лекция № 3 ока мочевыделlali100226
 
я шагаю по Москве
я шагаю по Москвея шагаю по Москве
я шагаю по МосквеYana Mazurova
 
บทท 5 คอมพิวเตอร์เพื่อการเรียนรู้
บทท   5 คอมพิวเตอร์เพื่อการเรียนรู้บทท   5 คอมพิวเตอร์เพื่อการเรียนรู้
บทท 5 คอมพิวเตอร์เพื่อการเรียนรู้Ann Pawinee
 

Destaque (13)

It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...
It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...
It will be lifechanging: living and working in Arnhem Land. Jawun Program, Mi...
 
Fall into Fitness
Fall into FitnessFall into Fitness
Fall into Fitness
 
Bat dang thuc amgm
Bat dang thuc amgmBat dang thuc amgm
Bat dang thuc amgm
 
Covered with Icing
Covered with IcingCovered with Icing
Covered with Icing
 
Finally Fitness
Finally FitnessFinally Fitness
Finally Fitness
 
Diversified Health & Fitness Brands
Diversified Health & Fitness BrandsDiversified Health & Fitness Brands
Diversified Health & Fitness Brands
 
Kids collection In Chennai
Kids collection In ChennaiKids collection In Chennai
Kids collection In Chennai
 
งานนำเสนอ สรุปประเด็น
งานนำเสนอ สรุปประเด็นงานนำเสนอ สรุปประเด็น
งานนำเสนอ สรุปประเด็น
 
All4
All4All4
All4
 
лекция № 3 ока мочевыдел
лекция № 3 ока мочевыделлекция № 3 ока мочевыдел
лекция № 3 ока мочевыдел
 
pgu
pgupgu
pgu
 
я шагаю по Москве
я шагаю по Москвея шагаю по Москве
я шагаю по Москве
 
บทท 5 คอมพิวเตอร์เพื่อการเรียนรู้
บทท   5 คอมพิวเตอร์เพื่อการเรียนรู้บทท   5 คอมพิวเตอร์เพื่อการเรียนรู้
บทท 5 คอมพิวเตอร์เพื่อการเรียนรู้
 

Semelhante a Aula 02 programação_c_alunos

Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)UNASP
 
1214 visual basic
1214 visual basic1214 visual basic
1214 visual basicElvis Reis
 
Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010Sula Souza
 
Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010Sula Souza
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...Dextra Sistemas / Etec Itu
 
Apostila minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1Apostila   minicurso de vba iii - 2020.1
Apostila minicurso de vba iii - 2020.1JOAOAURELIOKENPIMENT
 

Semelhante a Aula 02 programação_c_alunos (20)

Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)Curso de Macros en Excel (VBA)
Curso de Macros en Excel (VBA)
 
Excel VBA: Aula 8
Excel VBA: Aula 8Excel VBA: Aula 8
Excel VBA: Aula 8
 
Curso de Excel VBA
Curso de Excel VBACurso de Excel VBA
Curso de Excel VBA
 
Macro br
Macro brMacro br
Macro br
 
1214 visual basic
1214 visual basic1214 visual basic
1214 visual basic
 
Apostila 20 matlab
Apostila 20 matlabApostila 20 matlab
Apostila 20 matlab
 
Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010
 
Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010Curso excel avançado 2007 e 2010
Curso excel avançado 2007 e 2010
 
4 ambiente vbe
4 ambiente vbe4 ambiente vbe
4 ambiente vbe
 
EscmaScript
EscmaScriptEscmaScript
EscmaScript
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Vba excel
Vba excelVba excel
Vba excel
 
Visualg2_manual.pdf
Visualg2_manual.pdfVisualg2_manual.pdf
Visualg2_manual.pdf
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
A programação básica
A programação básicaA programação básica
A programação básica
 
A programacao basica
A programacao basicaA programacao basica
A programacao basica
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
 
Introdução ao Abaqus
Introdução ao Abaqus Introdução ao Abaqus
Introdução ao Abaqus
 
Aula2
Aula2Aula2
Aula2
 
Apostila minicurso de vba iii - 2020.1
Apostila   minicurso de vba iii - 2020.1Apostila   minicurso de vba iii - 2020.1
Apostila minicurso de vba iii - 2020.1
 

Último

Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxDianaSheila2
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 

Último (20)

Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptx
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 

Aula 02 programação_c_alunos

  • 1. 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)
  • 2. 17/11/2016 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.
  • 3. 17/11/2016 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
  • 4. 17/11/2016 4 Programação em VBA - Estrutura Sequencial Desenvolvedor
  • 5. 17/11/2016 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ções gravação da macro
  • 6. 17/11/2016 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
  • 7. 17/11/2016 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.
  • 8. 17/11/2016 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”;
  • 9. 17/11/2016 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:
  • 10. 17/11/2016 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.
  • 11. 17/11/2016 11 Estrutura Sequencial Programa Nome INICIO Declarações ou Sequência de Instruções (ler, escrever, calcular) FIM Estrutura Sequencial ou um Módulo em VBA Sub Macro3() ‘Comandos End Sub Programação em VBA - Estrutura Sequencial Sub vem da palavra em língua inglesa Subscript (Procedimentos). Todo módulo é um conjunto de procedimentos.
  • 12. 17/11/2016 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
  • 13. 17/11/2016 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”
  • 14. 17/11/2016 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);
  • 15. 17/11/2016 15 Programação em VBA - Estrutura Sequencial Constante Valor Descrição vbOKOnly 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.
  • 16. 17/11/2016 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;
  • 17. 17/11/2016 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
  • 18. 17/11/2016 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
  • 19. 17/11/2016 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
  • 20. 17/11/2016 20 Programação em VBA - Estrutura Sequencial Saída de Valores – Função Escrever Cells(i, j) ou Cells(i, j).Value i = linha j = 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") = 7 Worksheets("Plan3"). Range("A1") = “Reprovado” Escreve na celula da planilha requisitada A1 = linha1 e coluna1
  • 21. 17/11/2016 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 If Next End Sub Ex. Exibindo uma mensagem relacionada a um dado preenchido na tabela. Sub verifica_Valor() If Cells(2, 2) > 10 Then MsgBox "Valor máximo excedido!" End If End Sub
  • 22. 17/11/2016 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
  • 23. 17/11/2016 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
  • 24. 17/11/2016 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
  • 25. 17/11/2016 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.
  • 26. 17/11/2016 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 String Dim Numero As Integer Dim DataDeNascimento As Date Dim Contador As Integer Nome = “Luís Fernandes” Numero = 91 Data_de_Nascimento = “19-08-1977” Contador = 25
  • 27. 17/11/2016 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 String Dim Nome1 Single • Válido: Dim Nome_Cliente String • Inválido Dim Nome Cliente Single
  • 28. 17/11/2016 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
  • 29. 17/11/2016 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
  • 30. 17/11/2016 30 Programação em VBA - Estrutura Sequencial
  • 31. 17/11/2016 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 String Dim Data_Dia As Date Dim Botão As Object Dim Número1 As Integer Dim Propina As Boolean Dim Qualquer_Coisa As Variant Programação em VBA - Estrutura Sequencial
  • 32. 17/11/2016 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
  • 33. 17/11/2016 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
  • 34. 17/11/2016 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
  • 35. 17/11/2016 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”)
  • 36. 17/11/2016 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”)
  • 37. 17/11/2016 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 Mensagem DefaultResponse Não obrigatório Xpos, Ypos Não obrigatório
  • 38. 17/11/2016 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
  • 39. 17/11/2016 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
  • 40. 17/11/2016 40 Exercício 05 – Sub Exercicio03() Dim raio As Single Const Pi As Double = 3.14159 Dim Perimetro As Single Dim area As Single 'Resolvendo o exercício usando o InputBox raio = InputBox("Digite o raio", "Programa", "Escreva Aqui") Perimetro = 2 * Pi * raio area = Pi * raio * raio MsgBox "O perímetro é " & Perimetro, "64", "Programa" MsgBox "A area é " & area, "64", "Programa" End Sub Programação em C - Estrutura Sequencial
  • 41. 17/11/2016 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
  • 42. 17/11/2016 42 Entrada de valores em VBA – Função Ler. Programação em VBA - Estrutura Sequencial Sub Macro3() Dim preco As Integer Dim Nome As String preco = Range("A1") Nome = Cells(1, 3) MsgBox "O conteúdo da celula A1 é?" & Nome1 MsgBox "O contéudo da celula 1,3?" & Nome1 End Sub
  • 43. 17/11/2016 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 Integer Nome 1= Worksheets("Plan3").Range("A1").Value Isso é valido para a planilha corrente ou ativa
  • 44. 17/11/2016 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
  • 45. 17/11/2016 45 Exercício 06 – Sub Exercicio03() Dim raio As Single Const Pi As Double = 3.14159 Dim Perimetro As Single Dim 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 * raio area = Pi * raio * raio Cells(14, 2) = Perimetro Range("B13") = area End Sub Programação em C - Estrutura Sequencial
  • 46. 17/11/2016 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
  • 47. 17/11/2016 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'
  • 48. 17/11/2016 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
  • 49. 17/11/2016 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álidas Expressão Valor 6.4 + 2.1 8.5 7 - 2 5 2.0 * 2.0 4.0 6 / 3 2 10 % 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.
  • 50. 17/11/2016 50 Operações matemáticas Precedê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
  • 51. 17/11/2016 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
  • 52. 17/11/2016 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
  • 53. 17/11/2016 53 Expressão Valor Ordem 1 + 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 + % / *
  • 54. 17/11/2016 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.
  • 55. 17/11/2016 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 Falso Verdadeiro Verdadeiro Verdadeiro Falso Falso Em VBA: Operador and Operador or Operador not
  • 56. 17/11/2016 56 Programação em C - Estrutura Sequencial • Exercício 9 Faç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 10 Faç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 11 Faç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.

Notas do Editor

  1. O VBA constitui uma ferramenta poderosa nas mãos de programadores experimentados mas pode, ao mesmo tempo, ser muito útil a um utilizador normal, mesmo inexperiente. De fato, no dia a dia da utilização destas aplicações, defrontamo-nos com a necessidade de repetir a mesma tarefa várias vezes ao dia ou, de em certas ocasiões, ter que repetir uma determinada tarefa uma série de vezes de seguida. Seja escrever ou formatar um certo texto, seja executar uma série de comandos ou escolher opções de menus, seja ainda realizar a formatação complexa de um documento, são inúmeras as ocasiões em que dava jeito poder automatizar essas tarefas repetitivas. É aqui que entra o VBA, permitindo a construção daquilo que se designa vulgarmente por macros. O que é a Macro? Uma macro contem uma lista das instruções a realizar para executar uma determinada tarefa. No fundo, é um programa escrito em VBA, que indica a uma aplicação como o Excel quais os passos a dar para atingir um objetivo específico. Pode-se dizer que um macro não é mais que uma descrição formalizada das tarefas que se pretende automatizar. Uma macro é um programa escrito em VBA, que indica a uma aplicação Office quais os passos a dar para realizar uma dada tarefa. • Um macro é uma descrição formalizada das ações que se pretende automatizar. • As macros incluem instruções que interagem com elementos da aplicação.
  2. Clicando em OK inicia-se o processo de gravação da macro, ou seja, todas as tarefas que forem realizadas daqui para a frente vão ser convertidas automaticamente em código Visual Basic.
  3. O objetivo das macros é programar funções típicas do Microsoft Excel de forma a facilitar a execução de tarefas repetitivas. A criação de uma Macro é semelhante à gravação de uma cassete, inicia-se a gravação e realiza-se a tarefa pretendida que é convertida automaticamente em código de Visual Basic (VB). A tarefa pode ser, por exemplo, abrir um determinado ficheiro de resultados, escolher algumas colunas e realizar um determinado tipo de gráfico. Com a utilização da macro podemos repetir este conjunto de tarefas o número de vezes que for necessário poupando bastante tempo no caso de estarmos a analisar uma grande quantidade de resultados.
  4. Variáveis A variáveis são posições na memória que o computador reserva para armazenar os dados manipulados pelo programa. Estas posições devem ser reservadas (declaradas) no início do programa, a partir daí ficam disponíveis para receberem qualquer conteúdo. Este conteúdo pode ser alterado quando necessário (daí o nome variável, pois o conteúdo pode variar). Durante a execução de algoritmos e programas podemos usar compartimentos de memória para armazenamento de informações. Como valores podem ser atribuídos e sobrescritos nesses compartimentos e, portanto, podem variar durante a execução do algoritmo ou programa, esses compartimentos de memória são chamados de variáveis. Além disso, podemos atribuir um nome simbólico a um endereço de um compartimento de memória. Esse nome simbólico é conhecido como identificador ou nome da variável. O identificador de uma variável pode ser escolhido pelo(a) desenvolvedor(a)/programador(a) de modo a refletir de alguma forma o seu conteúdo. Nas aulas anteriores, temos usado diversas variáveis para armazenar valores que são números inteiros, como num1 , soma e produto , por exemplo. Nos nossos programas, podemos usar outros tipos de dados além de inteiros, como já mencionamos e veremos mais adiante.
  5. Mas, ao alterar o conteúdo da variável, a informação anterior é perdida, ou seja, sempre "vale" a última informação armazenada na variável. Uma variável armazena 'apenas' um conteúdo de cada vez.
  6. Uma variável que conterá números fracionários, pode ser declarada com o tipo de dado Single, Double ou Currency. Uma variável que contém valor lógico (verdadeiro ou falso) pode ser declarada com o tipo de dados Boolean. Uma variável que contém uma referência a um objeto do MS Excel pode ser declarada com tipo de dados Object. Uma variável Variant permite o armazenamento de qualquer tipo de dado.
  7. Um passo importante na definição de variáveis é a opção “Option Explicit”. Este comando deve ser sempre utilizado, principalmente quando os programas apresentam uma complexidade grande, uma vez que obrigam a que não existam variáveis com a mesma denominação e que todas as variáveis utilizadas sejam declaradas, isto é, seja dito ao computador de que tipos são. Option Explicit- Esta declaração explícita de variáveis previne igualmente erros ortográficos de programação, como no exemplo abaixo. Ex. Numero = 36 Raiz = Sqr(Numro) Foi iniciada uma variável “Numero” com o valor de 36 e pretende-se saber a sua raiz quadrada (utilizando a função “Sqr”, intrínseca do VBA, e que devolve a raiz quadrada de um número). Mas por erro do programador, omitiu-se uma letra na chamada da função “Sqr”, utilizando-se uma variável “Numro”. Neste caso, o valor de “Raiz” vai ser igual a 0, uma vez que a variável “Numro” não foi inicializada, tendo sido assumido que tinha o valor 0 (raiz quadrada de zero é igual a zero). O programa correu perfeitamente sem devolver nenhuma mensagem de erro, uma vez que não foi feita nenhuma operação ilegal, pois a opção de definição explícita de variáveis não foi activada. No caso de ter sido activada, o programa não correria, avisando prontamente que a variável “Numro” não tinha sido declarada, evitando-se assim erros deste tipo.
  8. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  9. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  10. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  11. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  12. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  13. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  14. Expressão de controle indica que tipo de dados devem ser lidos na variável.
  15.  Multiplicação *  r = n1 * n2   Divisão /  r = n1 / n2   Adição +  r = n1 + n2   Subtração –  r = n1 – n2   Potenciação ^  r = b ^ e   Divisão (retorna o resto) Mod  r = n1 Mod n2   Divisão (retorna o quoc. inteiro) \  r = n1 \ n2
  16. Os operadores de multiplicação (*), divisão (/) e módulo (MOD) tem precedência sobre os operadores de adição (+) e subtração (-). Entre operadores de mesma precedência as operações são efetuadas da esquerda para a direita.
  17. (%) chamado operador de módulo cujo significado é o resto da divisão inteira. (--) Decremento (++) Incremento Observação: a++ é similar a a = a + 1; b-- é similar a b = b -1; Funções trigonométricas do ângulo arco, em radianos: sin(arco); // seno cos(arco); // coseno tan(arco); // tangente asin(arco); // arco-seno acos(arco); // arco-coseno atan(arco); // arco-tangente Funções diversas: log(num); // Logaritmo natural (base e) log10(num); // Logaritmo decimal (base 10) pow(base, exp); // Potenciacao: pow(3.2,5.6)=3.25.6. sqrt(num); // Raiz quadrada: sqrt(9.0)=3.0. Funcoes de arredondamento: ceil(num) ; // Exemplo: ceil(3.2) == 3.0; floor(num) ; // Exemplo: floor(3.2) == 4.0; Para utilizar uma destas funções introduza a linha de comando #include <math.h> no cabeçalho de seu programa. A partir deste momento você poderá, dentro de qualquer rotina, utilizar qualquer função da biblioteca math.h.