APONTAMENTOS DE EXCEL, VB e MATLAB
|
|
|
- Maria Luiza Mônica da Rocha Vilalobos
- 10 Há anos
- Visualizações:
Transcrição
1 APONTAMENTOS DE EXCEL, VB e MATLAB LABORATÓRIOS DE INFORMÁTICA 1º ANO MESTRADO INTEGRADO EM ENGENHARIA DO AMBIENTE
2 Índice Pág. A. Construção de uma página WEB pessoal 4 1.Noções básicas de Algoritmia e Programação VB O que é um algoritmo? 1.2 Etapas na resolução de um problema 1.3Estrutura geral de um algoritmo 1.4Variáveis 1.5Instruções de atribuição, leitura e escrita 1.6Expressões aritméticas 1.7Instuções de controlo e selecção 1.8Operadores lógicos 1.9Instruções de repetição e de controlo de fluxo 1.10Exercícios Propostos 1.11 Exercícios Resolvidos 2. Introdução ao Microsoft Excel Livro e folha de cálculo 2.2 Fórmulas 2.3 Referência a célula(s) 2.4 Atribuição de nome a uma célula ou range 2.5 Referência a célula(s) de outra Folha de Cálculo 2.6 Funções 2.7 Composição de funções 2.8 Algumas funções intrínsecas do Excel 2.9 Gráficos 2.10 Exercícios propostos 3. Excel e programação VBA Dialog / UserForm 3.2 Eventos 3.3 Procedimentos tipo Sub 3.4 Procedimentos tipo Funções 3.5 Objectos 3.6 Declaração de Variáveis 3.7 Operadores 3.8 Funções de manipulação de texto 3.9 Instruções Condicionais 3.10 Ciclos - 2 -
3 3.11 Exemplo de utilização de procedimentos 3.12 Exercícios propostos 3.13 Exercícios resolvidos 4. Introdução ao Matlab Ficheiros do Matlab: M-ficheiros 4.2 Ambiente de trabalho em MATLAB 4.3 Comandos de visualização e informação 4.4 Comandos para atribuir valores às variáveis 4.5 Gráficos de funções 4.6 Algumas das funções matemáticas elementares 4.7 Funções para manipulação algébrica 4.8 Exercícios 4.9 Matrizes e Vectores em MatLab 4.10 Inicialização de matrizes 4.11 Operações sobre vectores 4.12 Operações sobre matrizes 4.13 Operadores aritméticos, relacionais e lógicos 4.14 Valores booleanos 4.15 Instruções básicas de programação em MatLab Instruções de Controlo Ciclo for Instruções de entrada/saída de dados 4.16 Exercícios propostos 4.17 Exercícios Resolvidos 5. Programação em MatLab introdução Programas (script) 5.2 Funções em MatLab 5.3 Ficheiros de dados em MatLab 5.4 Instruções de Controlo para programação em MatLab 5.5 Outras funções do MatLab 5.6 Gráficos 3-D 5.7 Exercícios de introdução à Programação em MatLab Resolução de Exercícios dos Testes do ano lectivo 2010/
4 A. Construção de uma página WEB pessoal Sugestão: 1º) Usar, por exemplo, o Microsoft Office Publisher (disponível nas salas de aula) ou outro software, para criar e/ou editar um ficheiro Web site com a página pessoal. No Microsoft Publisher, é possível criar páginas HTML (Hypertext Markup Language), mas não é possível abrir e editar as páginas HTML no Publisher depois de criados. Se pretender utilizar o Microsoft Publisher para criar e publicar um Web site, é recomendável que guarde uma cópia de segurança do seu documento como um arquivo(. pub). Utilizando este método, se pretender efectuar quaisquer alterações ao site, edite o arquivo (.pub) que depois pode guardar como um novo documento HTML, e em seguida, voltar a publicá-lo no Publisher. Instruções para colocação de ficheiros com programação associada: Ficheiros EXCEL: Se pretender colocar ficheiros EXCEL associados à sua página Web deve proteger o seu código fonte. Deste modo evita que o seu trabalho seja copiado por outros. O que deve fazer? Abra o livro Excel e aceda ao editor do Visual Basic. No menu Tools, escolha a opção VBAProject properties. No separador Protection da caixa de diálogo assinale Lock project for viewing e escolha uma password. Clique OK e deste modo protege o seu código de ser copiado por qualquer um. Ficheiros MATLAB: Para criar um ficheiro executável a partir de um script escrito no editor do MatLab, considere o seguinte exemplo: Suponhamos que tem um script chamado nome.m (uma palavra só, sem acentos,etc.). Dando na janela de comandos do MatLab a instrução: >> mcc -m nome.m vai criar um ficheiro nome.exe que depois pode ser colocado na sua página WEB. Quando clicar no ficheiro ele só executa e não vai ter acesso ao código
5 2º) Quando cria uma publicação no Publisher, este fica guardado com uma extensão de ficheiro.pub. Depois é necessário publicá-lo em formato HTML. Fazer Save as do ficheiro com o nome ficheiro.html escolhendo o tipo Página Web. Como colocar a sua página pessoal em 3º) Finalmente, quando a sua página Web estiver pronta e para que esta fique disponível ao público, fazer Save as do ficheiro com o nome index.htm escolhendo o tipo Página Web. Arrastar este ficheiro para dentro da pasta public_html da área de trabalho pessoal, \\samba.fe.up.pt\login, armazenada nos servidores centrais da FEUP (geralmente a drive Z:); 4º) Na página pessoal do SIFEUP em administração escolher configurar, Página Web, 5º) Se necessário, no Tools do browser retirar os cookies
6 1. Noções Básicas de Algoritmia e Programação VB 1.1. O QUE É UM ALGORITMO? Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecânicamente num período de tempo finito e com uma quantidade de esforço finita. O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita, embora muitos algoritmos sejam mais complexos. Podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica). Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema. Um programa de computador é essencialmente um algoritmo que diz ao computador os passos específicos e em que ordem eles devem ser executados. 1.2 ETAPAS NA RESOLUÇÃO DE UM PROBLEMA Exemplo Calcular a área de um rectângulo sendo dados os valores do comprimento e da largura. Corpo do ALGORITMO: LEIA (comprimento, largura); area comprimento * largura; ESCREVA (area); Código VB: Private Sub CommandButton1_Click () Dim comprimento, largura, area As Double comprimento = Val(InputBox("Comprimento?")) largura = Val(InputBox("Largura?")) area = comprimento * largura MsgBox (Str(area)) End Sub - 6 -
7 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 ; 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: ou - 7 -
8 1.3 ESTRUTURA GERAL DE UM ALGORITMO: 1.4 VARIÁVEIS Variável é a forma programática de identificar uma zona de memória do computador que pode ser consultada e alterada pelo Programa em execução. Tipos de Variáveis: Variáveis Numéricas Variáveis String Variáveis Booleanas Variáveis Data Variáveis Objecto Variáveis Variant Variáveis Numéricas: Integer: Valores inteiros entre e Long: Valores inteiros entre e Single: Valores Reais de precisão simples entre +/ E-45 Double: Valores Reais de precisão dupla entre e +/ E38 Variáveis String: Uma sequência de caracteres Exemplo de Código VBA: Private Sub CommandButton1_Click() Dim palavra1, palavra2 As String palavra1 = "lenta" palavra2 = "mente" MsgBox (palavra1 + palavra2) End Sub Variáveis Booleanas (Boolean): Só toma dois valores: True False - 8 -
9 1.5 INSTRUÇÕES DE ATRIBUIÇÃO, LEITURA E ESCRITA Instrução de atribuição: Instrução de leitura, atribuição e escrita: Corpo do Algoritmo Leia (x,y); Soma x + y; Escreva (soma); VB x=val( InputBox( Introduza x ) y=val( InputBox( Introduza y )) soma=x+y MsgBox ( Soma= & Str(soma)) 1.6 EXPRESSÕES ARITMÉTICAS Exemplos: area comprimento * largura; soma x + y cos (x)+ y^x; media soma/ 2; As expressões aritméticas envolvem - OPERANDOS - VARIÁVEIS NUMÉRICAS - CONSTANTES NUMÉRICAS - OPERADORES ARITMÉTICOS - FUNÇÕES - PARÊNTESIS - 9 -
10 Laboratórios de Informática MIEA 2012/ INSTUÇÕES DE CONTROLO E SELECÇÃO Instrução condicional simples: Instrução condicional dupla:
11 Laboratórios de Informática MIEA 2012/13 Selecção múltipla: A selecção múltipla permite executar um conjunto de instruções em função do valor de uma variável ou expressão. Por exemplo: 1.8 OPERADORES LÓGICOS
12 1.9 INSTRUÇÕES DE REPETIÇÃO E DE CONTROLO DE FLUXO Ciclo para que se utiliza quando à priori é conhecido o número de vezes que um bloco de instruções deverá ser executado. Quando não é conhecido o número de vezes que um bloco de instruções deverá ser executado utiliza-se o ciclo enquanto ou ciclo repete. Ciclo enquanto: permite executar repetidamente um bloco de instuções enquanto o valor de uma expressão (condição) for verdadeiro. Neste caso, o bloco de instruções pode nunce ser executado
13 Exemplo: Outro exemplo: a 10; a = 10 b - 4; b = - 4 Enquanto b>a or b<0 faça While b > a or b < 0 {b a - 1; b = a 1 Wend Quantas vezes é este ciclo executado? Ciclo Repete: permite executar repetidamente um bloco de instruções até que o valor de uma expressão (condição) seja verdadeiro. Exemplo:
14 1.10 Exercícios propostos: A. Qual o objectivo de cada um destes programas? a) Private Sub CommandButton1_Click( ) Dim média, soma As Double Dim N, i, nota As Integer N = Val(InputBox("Número de disciplinas concluídas")) soma = 0 For i = 1 To N nota = Val(InputBox("Introduza a nota de uma disciplina concluída")) soma = soma + nota Next média = soma / N MsgBox ("Média= " & Str(média)) End Sub b) Private Sub CommandButton1_Click( ) Dim exame As Double Dim nota As Integer Dim classificação As String Do exame = Rnd( ) * 20 MsgBox (exame) nota = Round(exame) If nota < 10 Then classificação = "Reprovado" Else Select Case nota Case 10 To 13 classificação = "Suficiente" Case 14 To 17 classificação = "Bom" Case 18 To 20 classificação = "Muito Bom" End Select End If MsgBox (Str(nota) & " " & classificação) Loop Until nota = 20 End Sub
15 1. Escreva um algoritmo que calcule as raízes reais de uma equação real de 2º grau. 2. a) Escrever um algoritmo que calcule a norma euclidiana de um vector; b) Traduza para Visual Basic o algoritmo anterior. 3. Durante o mês de Janeiro de 2005, registou-se todos os dias, pelas 14 horas, a temperatura da sala de aula. a) Escreva um algoritmo que calcule o valor médio dessas temperaturas. b) Escreva um algoritmo que calcule o desvio padrão dessas temperaturas. c) Escreva um programa em VBA que calcule o valor médio e o desvio padrão dessas temperaturas. 4. Um aluno da FEUP já terminou N disciplinas com notas entre 10 e 20. a) Escreva um algoritmo que calcule a média das N notas e se a média for inferior a 13.5 escreve Suficiente, se for entre 13.5 e inferior e 17.5 escreve Bom e se for superior ou igual a 17.5 escreve Muito Bom. b) Escreva um programa em VBA que calcule a média das N notas e se a média for inferior a 13.5 escreve Suficiente, se for entre 13.5 e inferior e 17.5 escreve Bom e se for superior ou igual a 17.5 escreve Muito Bom. 5. Registou-se, durante N dias, pelas 14 horas, a temperatura do bar da biblioteca. a) Escreva um algoritmo que calcule o máximo dessas temperaturas. b) Escreva um algoritmo que calcule o mínimo dessas temperaturas. c) Escreva um algoritmo que calcule o número de dias em que essa temperatura ultrapassou os 20 graus. d) Escreva um programa em VBA que calcule o máximo e o mínimo dessas temperaturas e que calcule o número de dias em que essa temperatura ultrapassou os 20 graus. 6. a) Escreva um algoritmo que calcule a soma dos quadrados dos números inteiros entre 3000 e 7800, inclusivé. b) Escreva um programa em VBA que calcule a soma dos quadrados dos números inteiros entre 3000 e 7800, inclusivé. 7. a) Escreva um algoritmo que calcule o factorial de um número inteiro positivo. b) Escreva um programa em VBA que calcule o factorial de um número inteiro positivo. 8. a) Escreva um algoritmo que determine se um número inteiro dado é par ou ímpar. b) Escreva um programa em VBA que determine se um número inteiro dado é par ou ímpar
16 9. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 rnd( ) < 1. O valor N = Int ( rnd( )) retorna valores aleatórios inteiros entre 1 e 50. a) Escreva um algoritmo que gere números aleatórios inteiros entre 1 e 50 até que apareça um número aleatório múltiplo de 3. b) Escreva um programa em VBA que gere números aleatórios inteiros entre 1 e 50 até que apareça um número aleatório múltiplo de Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 rnd( ) < 1. Usando esta função simule um jogo em que ganha o jogador A se o resultado da rnd() for superior a 0.6. Caso contrário ganha o jogador B. 11. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 rnd( ) < 1. Usando esta função simule o seguinte jogo de dados equilibrados. Lançam-se 2 dados. Se a soma de pontos for superior a 6 ganha o jogador A. Caso contrário ganha o jogador B. 12. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 rnd( ) < 1. Usando esta função simule o seguinte jogo com um dado é viciado, em que as probabilidades de saída de cada face são as seguinte: P(face 1)= P(face 2)= P(face 3)= P(face 4)= 2 P(face 5)= 2 P(face 6). Lança-se o dado uma vez. Se sair o número 5 ou 6 então ganha o jogador A, senão ganha o jogador B. 13. Registou-se durante todos os dias do ano 2001 e pelas 14 horas, o número de automóveis que entravam no parque da FEUP. a) Escreva um algoritmo que calcule o máximo e o mínimo desses valores e os respectivos dias. b) Escreva um programa em VBA que calcule o máximo e o mínimo desses valores e os respectivos dias. Exemplo: Em 2001, o número máximo de automóveis foi de 500 no dia 21 de Março e o número mínimo foi de 72 no dia 5 de Agosto. 14. Dado um número inteiro positivo: a) Escreva um algoritmo que determine se o número dado é primo ou não. b) Escreva um programa em VBA que determine se o número dado é primo ou não. 15. Define-se número de Armstrong como sendo aquele cuja soma dos cubos dos algarismos que o compoêm é igual ao próprio número. Ex: 153= a) Escreva uma função booleana capaz de determinar se um número natural dado é ou não um número de Armstrong. b) Escreva um programa que procure os primeiros 5 números de Armstrong
17 1.11 Exercícios Resolvidos: A. Escreva um algoritmo que calcule as raízes reais de uma equação real de 2º grau. Sugestão de resposta para o algoritmo pedido: Cabeçalho: Objectivo: Calcular as raízes reais de uma equação real de 2º grau V.Dados: a, real, coeficiente de x 2 ; b, real, coeficiente de x; c, real, termo independente; V. Resultado: x1, real, primeira raíz a calcular; x2, real, segunda raíz a calcular; V. Aux: D, real, discriminante; Corpo: Leia ( a ); Leia ( b ); Leia ( c ); D b 2-4 * a * c; Se D<0 então Escreva( Não tem raízes reais ); Senão 1 ( + )/(2 ); 2 ( )/(2 ); Escreva(x1, x2); B. Considere o seguinte algoritmo de Euclides que permite calcular o máximo divisor comum de dois números naturais, mdc(a,b), definido como maior número inteiro que divide simultaneamente a e b: Cabeçalho: Objectivo: V.Dados: V. Resultado: V. Aux: Corpo: Leia (a, b); r a mod b; Enquanto r 0 faça a b; b r; r a mod b; Escreva ( b ); a) Percorra o algoritmo de Euclides para calcular o máximo divisor comum de 76 e 68, i.e., mdc( 76, 68). Quantas vezes executou o ciclo do enquanto? Qual o mdc( 76, 68) obtido? RESPOSTA: a b r r Verdadeiro Verdadeiro Falso RESPOSTA: Percorreu o ciclo do enquanto 2 vezes e mdc( 76, 68) =
18 b) Preencha o cabeçalho deste algoritmo. Resposta possível: Cabeçalho: Objectivo: Calcular o máximo divisor comum de dois números naturais; V.Dados: a, inteiro, 1º número natural a introduzir; b, inteiro, 2º número natural a introduzir; V. Resultado: b, inteiro, máximo divisor comum entre a e b; V. Aux: r, inteiro, resto da divisão inteira de a por b; C. Considere o seguinte algoritmo: Cabeçalho: Objectivo: V.Dados: V. Resultado: V. Aux: Corpo: Leia ( n ); F 1; Enquanto n 1 faça F F * n; n n-1; Escreva ( F ); a) Percorra o algoritmo para n inicial igual a 5, qual o valor final de F a ser escrito? E qual o valor final da variável n? Percorrer o Algoritmo: n F n *5 1*5*4 1*5*4*3 1*5*4*3*2 1*5*4*3*2*1 Verd Verd Verd Verd Verd Falso O valor final de F a ser escrito é 1*5*4*3*2*1=5!=120 O valor final da variável n é 0. b) Preencha o cabeçalho deste algoritmo. Resposta possível Cabeçalho: Objectivo: Calcular o factorial de um número dado n V.Dados: n, inteiro, nº a introduzir V. Resultado: F, inteiro, factorial de n V. Aux: D. Escreva um algoritmo que ordene por ordem crescente três valores dados: A, B e C. Por exemplo, se A toma o valor 23, B o valor 50 e C for -3, a resposta é:
19 Resposta possível: Cabeçalho: Objectivo: Ordenar por ordem crescente três valores dados: A, B e C; V. Dados: A, real, 1º número a introduzir; B, real, 2º número a introduzir; C, real, 3º número a introduzir; V. Resultado: V. Aux: aux, real, auxiliar para troca. Corpo: Leia (A, B, C); Se B < A então aux B; B A; A aux; Se C < A então aux C; C A; A aux; Se C < B então aux C; C B; B aux; Escreva (A, " <= ", B, " <= ", C); E. Registou-se durante todos os dias do ano 2009 e pelas 14 horas, o número de automóveis que se encontravam no parque da FEUP. Escreva um algoritmo que calcule o máximo e o mínimo desses valores e os respectivos dias. Resposta: Cabeçalho Objectivo: calcular o máximo e o mínimo do número de automóveis que se encontravam no parque da FEUP em cada dia do ano 2009 e pelas 14 horas e os respectivos dias. V. Dados: X, inteiro, nº de automóveis que se encontravam na FEUP em cada dia do ano 2009 e pelas 14 horas; V. Resultado: X_max, inteiro, nº máximo registado; X_min, inteiro, nº mínimo registado; D_max, inteiro, dia em que se registou o nº máximo; D_min, inteiro, dia em que se registou o nº mínimo; V. Aux.: i, inteiro, contador de ciclo; Corpo leia (X); X_max X; X_min X; D_max 1; D_min 1; para i 2 até 365 faça leia (X); se X > X_max então { X_max X; D_max i; se X < X_min então { X_min X; D_min i; Escreva (X_max, D_max, X_min, D_min);
20 2. Introdução ao Microsoft Excel O Excel é uma aplicação que permite trabalhar num ambiente de Folhas de Cálculo para armazenar constantes, utilizar fórmulas, utilizar funções matemáticas, criar gráficos, etc. 2.1 Livro e folha de cálculo No Excel, livro ou workbook é o nome do ficheiro em que se trabalha e onde são guardados os dados. Cada livro pode conter várias folhas de cálculo. A folha de cálculo é o documento utilizado para guardar e manipular dados. Uma folha de cálculo é composta por células organizadas em colunas e linhas e faz sempre parte de um livro. A identificação de uma célula é feita usando a letra da coluna e o número da linha em que a célula se encontra. Por exemplo: D5 célula da coluna "D" linha "5". Os dados inseridos nas células podem ser de vários tipos: valores numéricos ou alfanuméricos, fórmulas e funções. No écran de abertura os separadores de folhas mostram os nomes das folhas. Selecciona-se o separador que representa a folha a visualizar e o nome da folha que está visível encontra-se a negrito. Se os separadores de folhas não estão visíveis: menu Tools Options View seleccionar "Sheet Tabs". 2.2 Fórmulas Uma fórmula pode ser composta por valores, referências a células, funções ou operadores. Uma célula pode guardar uma fórmula e neste caso começa sempre com o sinal =. Operadores aritméticos: +, -, /, *, %, ^ Operadores de comparação: =, >, <, >=, <=, <> Para copiar uma fórmula pode usar copy/paste ou seleccionar a célula origem, clicar no canto inferior direito da célula origem e arrastar para as células de destino se forem imediatamente abaixo ou à direita. Para ver as fórmulas contidas na folha (em vez dos valores): menu Tools Options View activar Formulas 2.3 Referência a célula(s) Uma referência identifica uma célula ou um intervalo ou range de células (isto é, células adjacentes formando um rectângulo). Por exemplo: B2:D3 o conjunto de células (B2, C2, D2, B3, C3, D3) C2:H20 o conjunto de todas as células que se encontram entre a coluna C e a coluna H nas linhas 2 a 20, um total de 6(colunas) 19(linhas) = 114 células
21 Referências relativas e absolutas A distinção entre referência relativa e absoluta a células é importante quando uma fórmula é copiada de uma célula para outra(s). Quando uma fórmula é copiada, as referências relativas são ajustadas automaticamente para a nova localização. Assim, a referência relativa numa fórmula copiada refere-se a células diferentes das referidas na fórmula original. Mas quando se copia uma fórmula, as referências absolutas são copiadas exactamente como aparece na célula origem. A existência de um sinal $ antes da identificação de uma linha/coluna indica uma referência absoluta. Podem também ser utilizadas referências mistas, tais como E$4 ou $E4. Uma fórmula contendo referências mistas quando copiada, é ajustada a coluna ou linha (que não tem o $) e não é alterada a outra parte da referência. 2.4 Atribuição de nome a uma célula ou range É possível atribuir um nome a uma célula ou a um range de células. Este nome é único dentro de um livro. Para atribuir um nome a uma célula/range: 1º Seleccionar a célula/range 2º menu Insert Name Define em Names in workbook: escrever o nome. Quando é atribuído um nome a uma célula ou range, este nome pode ser utilizado sempre que seja necessário utilizar uma referência absoluta a essa célula ou range. 2.5 Referência a célula(s) de outra Folha de Cálculo É possível referir célula(s) que se encontra(m) numa folha de cálculo diferente daquela em que se está a trabalhar. Para isso o endereço da(s) célula(s) referida(s) deve começar pelo nome da folha de cálculo em que esta(s) se encontra(m). Em alternativa pode ser utilizado o seu nome (desde que lhe(s) tenha sido previamente atribuído esse nome). Se a(s) célula(s) a referir se encontra(m) noutro livro, o endereço deve começar pelo nome desse ficheiro. Quando é utilizado um percurso relativo no nome do ficheiro, o Excel assume que a directoria corrente é a directoria do livro workbook que contém a referência. Exemplos: [meulivro.xls]folha_a!b2:b4 ou então[meulivro.xls]nome. 2.6 Funções As funções são utilizadas geralmente numa fórmula. Os valores sobre os quais uma função efectua operações são os chamados argumentos: nomedafunção (argumento1; argumento2,...). Os valores dos argumentos podem ser constantes, referências a células, ranges, funções ou expressões. Quando uma função requer mais do que um argumento e naquelas em que cada argumento possui um significado próprio, a ordem pela qual são indicados os valores dos argumentos é fundamental. Exemplos: Na função SUM é possível utilizar desde 1 até 30 argumentos, tendo todos eles significado idêntico; logo, a ordem dos argumentos (quando são utilizados dois ou mais argumentos) não é significativa. Assim, SUM(B2:D4;F2:G4) e SUM(F2:G4;B2:D4) produzem o mesmo resultado (a soma dos valores das células das duas ranges indicadas nos argumentos). A função IF requer 3 argumentos com significados distintos: o primeiro é obrigatoriamente uma condição (cujo valor é Verdadeiro ou Falso), o segundo é o valor
22 que a célula toma quando a condição é Verdadeira, o terceiro é o valor da célula quando a condição é Falsa; logo, a ordem dos argumentos é significativa. Assim, IF(A1>A2;1;0) e IF(A1>A2;0;1) produzem resultados diferentes (mas IF(A1>A2;1;0) e IF(A1<=A2;0;1) produzem o mesmo resultado). Algumas funções possuem argumentos para os quais se encontram pré-definidos valores por omissão, isto é, valores que são utilizados no caso do utilizador não fornecer valores. Exemplo: A função IF pode ser utilizada com valores apenas para os dois primeiros argumentos; neste caso, o terceiro argumento tem como valor de omissão a constante FALSE. Assim, IF(A1>A2;1) e IF(A1>A2;1; FALSE ) produzem o mesmo resultado. Para inserir uma função numa célula: Seleccionar a célula onde se quer guardar o resultado da função e introduzir o sinal = seguido da definição da função ou Seleccionar a célula onde se quer guardar o resultado da função e menu Insert Function e seguir as instruções do Assistente de Funções 2.7 Composição de funções Quando uma função é aplicada a outra função: = if (sum (b2 : g2) > = 9.5 ; Aprovado ; Reprovado ) = if (count (a1:a10) >=5 ; max (a1:a10) ; min (a1:10)) A descrição das funções intrínsecas do Excel pode ser encontrada no Assistente de Funções ou em HELP. Referem-se de seguida algumas funções. 2.8 Algumas funções intrínsecas do Excel FREQUENCY (matriz_dados, matriz_bin) Calcula a frequência com que os valores ocorrem num intervalo de valores e devolve uma coluna de números. Exemplo: Matriz_dados é uma matriz de ou uma referência a um conjunto de valores, cujas frequências se deseja contar. Se matriz_dados não contiver valores, FREQUENCY devolve zeros. FREQUENCY ignora células em branco e texto. Matriz_bin é uma matriz de ou uma referência a intervalos, nos quais deseja agrupar os valores contidos em matriz_dados. Se matriz_bin não contiver valores, FREQUENCY devolve o número de elementos em matriz_dados
23 FREQUENCY é introduzida como uma fórmula de matriz: seleccione uma célula para escrever e guardar, depois seleccione esta célula e um intervalo de células adjacentes no qual deseja que a distribuição devolvida apareça, clicar F2 seguido de CRTL+SHIFT+ENTER. A matriz devolvida tem mais um elemento que matriz_bin. Esse elemento adicional contém o número de valores que se encontram acima do intervalo mais alto (ver exemplo dado). COUNTIF(intervalo,critério) Calcula o número de células num intervalo que corresponde aos critérios determinados. Intervalo é o intervalo de células a partir do qual se deseja contar células. Critério é o critério (na forma de um número, expressão ou texto) que define quais as células que serão contadas. Critérios podem ser expressos como 52, ">52", "ABC". MATCH(valor_proc, matriz_proc, tipo_corresp) Se o tipo_corresp for 0 esta função devolve a posição relativa de um item numa matriz que coincide com um valor especificado na forma especificada. Valor_proc é o valor utilizado para localizar o valor desejado numa tabela. Matriz_proc é um intervalo contíguo de células que contém possíveis valores de procura. MATCH devolve a posição do valor correspondente em matriz_proc e não o valor propriamente dito. Por exemplo: MATCH("b,{"a","b","c"},0) devolve 2, a posição relativa de "b" na matriz {"a","b","c"}. MATCH não faz distinção entre letras maiúsculas e minúsculas ao fazer corresponder valores de texto. Se MATCH não conseguir localizar um valor correspondente, devolve o valor de erro #N/A. Se tipo_corresp for 0 e valor_proc for texto, valor_proc pode conter os caracteres globais, asterisco (*) e ponto de interrogação (?). Um asterisco coincide com qualquer série de caracteres; um ponto de interrogação coincide com qualquer carácter. Para outros valores de tipo_corresp estudar o help desta função. INDEX (matriz, num_linha, num_coluna) Devolve o valor de um elemento numa matriz, seleccionada pelos índices do número de linha e coluna. A função INDEX apresenta duas formas: de matriz e de referência. A forma de matriz devolve sempre um valor ou uma matriz de valores. Matriz é um intervalo/range de células. Se a matriz for constituída por uma só linha ou coluna, o argumento correspondente a num_linha ou num_coluna é opcional. Se a matriz tiver mais de uma linha e mais de uma coluna e se definir num_linha ou num_coluna como 0 (zero), INDEX (introduzida como fórmula de matriz) devolve a matriz de valores para a coluna ou linha inteira, respectivamente. 2.9 Gráficos Um gráfico pode ser criado na mesma folha em que se encontram os dados ou numa folha de gráfico. Um gráfico está ligado aos dados que o originaram, sendo actualizado sempre que estes são alterados. Os gráficos podem ser criados a partir de um range ou de uma união de ranges. Para criar um gráfico numa folha de cálculo/folha de gráfico: 1º Seleccionar a(s) range(s) que contêm o texto que identifica os eixos e os dados 2º menu Insert Chart 3º seguir as instruções do Assistente de Gráficos
24 Apontamentos de apoio aos exercícios que utilizam o pacote de estatística do Microsoft Excel A instalação básica do Excel não permite, por defeito, o acesso imediato ao pacote de estatística. Assim, é necessário fazer a sua instalação. Abra um livro Excel e siga as sugestões seguintes: 1. Começar por clicar na barra File e seleccionar Options 2. Seleccionar Add-Ins e Analysis ToolPak e clicar OK
25 3. Verifique que se for à barra de Data já tem do lado direito a possibilidade de fazer Análise de Dados: 4. Depois de introduzir dados na folha de cálculo do EXCEL pode, por exemplo, utilizar a análise de dados seleccionando Estatística Descritiva, e seleccionar correctamente a localização dos dados e dos resultados:
26 5. Para construir o histograma deve começar por indicar quais as classes a considerar e depois seleccionar a opção Histograma seleccionar correctamente a localização dos dados e dos resultados
27 - 27 -
28 2.10 Exercícios n k x x 1. A função e é aproximada pelo polinómio Pn ( x) = para valores de x na k! k = 0 vizinhança de 0. Usando uma folha de cálculo Excel construa uma tabela, sendo a primeira coluna valores de x entre -5 e 5 com incremento 0.01 e na segunda coluna os valores do polinómio P ( x ) para n=2, 5 e 7. Calcule o erro relativo com que o polinómio aproxima a função n x e nos diversos pontos e desenhe-o. Que conclusões tira? 2. Uma função f ( x ) é aproximada pelo polinómio de Taylor n k ( k) ( x a) Pn, a ( x) = f ( a) para valores de x na vizinhança de a. k! k= 0 a) Considere f ( x ) = sen( x ) e a=0; b) Considere f ( x ) = ln( x ) e a=1; c) Considere f ( x ) = x e a=4; Usando um livro Excel com três folhas (uma folha para cada alínea) comece por construir uma tabela sendo a 1ª coluna valores de x entre a-2 e a+2 com incremento 0.01 e as colunas seguintes os polinómios Pn, a ( x ) para n=1, 2,..., 7. Para n=2, 5 e 7 calcule e desenhe o erro relativo com que o polinómio aproxima a função f ( x ) nos diversos pontos. 3. Construa um ficheiro Excel com 50 observações da temperatura diária registada num determinado período na cidade do Porto. Coloque os dias na coluna A e o registo das temperaturas com duas casas decimais na coluna B. 1. Calcule a diferença relativamente ao dia anterior (coluna C); no caso de valores desconhecidos o resultado deve ser : 2. Formate as células da coluna C com uma casa decimal; 3. Calcule da média, a mediana e a moda; 4. Calcule a variância; 5. Calcule o desvio padrão; 6. Calcule o mínimo; 7. Calcule o máximo; 8. Calcule a amplitude; 9. Construa uma coluna D em que classifica os dias quentes, se a temperatura for superior a 25 graus, os dias frios, se a temperatura for inferior a 15 graus e os dias amenos, se a temperatura ficar entre 15 e 25 graus. 4. Considere 5 ou 6 classes de temperaturas apropriadas aos dados do exercício anterior. Utilize o package de estatística do Excel para contruir o histograma e estudar os dados. Compare os resultados
29 3 Excel e programação VBA Um computador pode ajudar-nos a resolver problemas, especialmente aqueles que requerem um grande número de cálculos repetitivos. O Excel é um software muito utilizado para a resolução de problemas numéricos em engenharia. Tem como facilidades a criação de comandos Macro que irão dar ordens ao Excel para executar as tarefas repetidas e a possibilidade de escrita de código de programação para resolver problemas específicos. Apontamentos de apoio à instalação da barra de DEVELOPER no Microsoft Excel A instalação básica do Excel não permite, por defeito, o acesso imediato à barra de DEVELOPER. Assim, é necessário fazer a sua instalação. Abra um livro Excel e siga as instruções seguintes: Começar por clicar na barra File e seleccionar Options. Depois clicar na categoria Customize Ribbon na lista das Main Tabs e finalmente OK. 1º Exemplo simples de programação usando o editor de Visual Basic do EXCEL: Na barra do Developer seleccionar Visual Basic
30 Inserir uma janela de comandos (Userform) e um botão de comando Clicar 2 vezes no botão de comando e inserir na janela do editor instruções em VB que irão ser executadas por activação desse botão. Por exemplo: Guardar o trabalho:
31 Activar o botão de comando para executar as instruções: 1º Exemplo simples de programação usando o editor de macros do EXCEL: Como gravar uma Macro? Uma Macro é uma acção ou conjunto de acções que podem ser executadas quantas vezes quantas se quiser apenas com o clicar do rato. Depois de gravar uma Macro esta pode ser editada, caso pretenda efectuar pequenas alterações. Depois de gravada a nova
32 Macro será executada bastanto para tal dar a ordem, ou seja, apenas com um clicar do rato do computador. Na barra do Developer, usando o grupo CODE, clicar em Recor Macro e depois seleccionar OK para começar a gravar. Experimente algumas acções na sua folha de cálculo, tais como inserir dados ou escrever uma fórmula. Finalmente na barra do Developer, usando o grupo CODE, clicar em Stop Recording. Para aprender um pouco sobre a linguagem de programação Visual Basic, veja como ficou a Macro. Tente editar a Macro. Execute a Macro e veja se algo de diferente é executado. O VBA é a linguagem de programação associada ao Excel. Numa linguagem de programação clássica, os dados estão num ficheiro, geralmente com uma formatação rigorosa, ou então pedem-se dados específicos ao utilizador. O Excel tem já a interface com o utilizador e o código apenas se preocupa com o processamento de dados. O Excel tem muitas funcionalidades e pode tornar-se mais genérico sempre que as inexistentes forem programadas. Exemplo de gravação de uma Macro: e não esquecer
33 Esta Macro1( ) pode ser gravada e executada sempre que necessário. Por exemplo, podemos começar uma folha nova e mandar executar esta Macro nessa folha, fazendo simplesmente Macros ajudam-nos a cumprir objectivos que têm que ser repetidos mas não permitem resolver problemas numéricos que envolvem cálculos iterativos. Para isso é necessário escrever um código VBA adaptado à resolução do nosso problema. Para programar, podemos iniciar um código no Excel criando uma macro e em seguida editar o código da macro. Alternativamente podemos escrever o código começando por desenhar um botão de comando tal como veremos mais adiante. O HELP do Excel é uma enorme fonte de informações. Por exemplo, podemos aí encontrar as definições das funções intrínsecas do Excel e também aprender como escrever as nossas funções, funções VBA. 3.1 Dialog / UserForm Pode-se criar dialogs, e inserir graficamente elementos. No VBA, após inserir um "UserForm" (dialog) fica visível uma Toolbox com os diversos tipos de objectos que se podem inserir, por exemplo: Label / Frame para colocar um texto TextBox - uma caixa de texto em que o utilizador pode inserir um valor ListBox / ComboBox - uma lista de opções em que o utilizador pode selecionar uma delas CommandButton / OptionButton / CheckBox - vários tipos de botões, na qual o utilizador pode carregar de forma a executar um conjunto de instruções. Ao inserir uma UserForm, e objectos dentro dela, passa a ser objecto do Excel e permite associar um código. Uma propriedade comum a diferentes objectos é o "Value" tal como nas células
34 3.2 Eventos Cada tipo de objecto tem eventos que podem ser intersectados, sendo criado um procedimento que será chamado quando o evento ocorrer no objecto. Por exemplo, nos botões tem interesse intersectar o evento "Click". Na UserForm tem interesse intersectar o evento "Activate" para efectuar inicializações, e nas listas pode ter interesse intersectar o evento "Change" para efectuar alguma actualização após o elemento da lista ter sido alterado. 3.3 Procedimentos tipo Sub Quando queremos escrever o nosso código de programação é necessário guardá-lo num local associado à nossa folha de trabalho. Os dados do programa podem estar na folha Excel ou então ser introduzidos pelo utilizador e depois a escrita dos resultados feita na folha de trabalho. Podemos colocar o código de programação num procedimento associado ao VBAProject e que é acedido através do editor VBA. O procedimento pode ser executado quer usando a caixa de diálogo das Macros, quer criando uma short-cut através da caixa de diálogo das Macros, quer ainda criando um botão de comando e depois associando-o ao procedimento específico. Um procedimento a que chamamos do tipo Sub é um conjunto de instruções colocadas entre Sub e End Sub que executa acções mas que não retorna um valor específico. Como veremos adiante uma função é um conjunto de instruções colocadas entre Function e End Function que retorna um valor específico executa uma série de instruções. Exemplo de desenvolvimento de um procedimento:
35 e para executar esta instrução basta clicar no botão:
36 Exemplos de instruções são: A=A+10 B=2 Exemplo de declarações de variáveis: Dim A, B As Integer Se para escrever uma instrução é necessário utilizar mais do que uma linha o VBA permite fazer a mudança de linha usando o under scroll ( _ ). Exemplo: Resultado= 1+3*Math.sin(2)+_ 5*Math.cos(3) Mas cuidado, o under scroll não pode ser utilizado, por exemplo, com instruções do tipo MsgBox. Nesse caso será necessário considerar várias MsgBox. Comentários: Por vezes escrevemos centenas ou milhares de linhas de código sendo necessário comentar para mais tarde nos lembrarmos o que um determinado conjunto de instruções faz. Exemplo: Atenção ao modo como se guardam os ficheiros com código VBA associado:
37 ou 3.4 Procedimentos tipo Funções O código está agrupado em funções e procedimentos, que são chamados de outra função ou quando um determinado evento ocorre. Uma função é um processo que permite converter um conjunto de dados de entrada num resultado de saída através de instruções/comandos bem definidos. Um procedimento do tipo função é um conjunto de instruções colocadas entre as instruções iniciadas por Function e End Function. Uma Function é semelhante a uma Sub mas a função pode ainda retornar um valor. Por exemplo a função seguinte converte valores da temperatura em graus Celsius em valores de temperatura Kelvin. Function CelsiusToKelvin (GrausCelsius As Double) As Double Dim ZeroAbsoluto As Double ZeroAbsoluto = CelsiusToKelvin = GrausCelsius + ZeroAbsoluto End Function Uma das vantagens da utilização de funções é a possibilidade de extrair instruções repetidas de código, substituí-las por uma única linha de comando e assim estruturando o programa. Um programa bem estruturado é mais fácil de compreender, manter, alterar e encontrar erros. O utilizador pode criar funções e procedimentos que apenas ele utiliza, para desta forma melhor organizar o código e evitar repetição de comandos
38 Function <nome> ( <args> ) As <tipo> <comandos> <nome>=<valor> End Function Os <args> é uma lista de <var> As <tipo> e o tipo é o tipo de valor de retorno da função. No comando <nome>=<valor> é definido o valor a retornar pela função. 3.5 Objectos Os objectos mais relevantes que permitem editar um documento do Excel são: Sheets("nome") - objecto de acesso a qualquer folha Cells(linha,coluna) - objecto de acesso a qualquer célula na folha actual Range("conjunto") - objecto de acesso a um conjunto de células Selection - objecto de acesso ao conjunto de células selecionado ActiveCell - objecto de acesso à célula activa Todos estes objectos têm propriedades e métodos, sendo ambos acedidos por um ponto a seguir ao nome do objecto, após o qual o Excel mostra todas as propriedades e métodos aplicáveis nesse objecto. Para realçar o mais importante, nas células existe a propriedade "Value" que tem o valor numérico da célula, e o método "Activate" para passar a ser a célula activa, e nos conjuntos existe o "Select" para passar a ser o conjunto seleccionado. Exemplo: Suponhamos que queremos preencher a coluna 6, linhas 1 a 20 com valores aleatórios entre 5 e 6. Então o código a considerar seria simplesmente: Dim i As Integer For i = 1 To 20 Cells(i, 5).Value = Rnd( ) + 5 Next i
39 3.6 Declaração de Variáveis É essencial numa linguagem ter entidades que se podem alterar. Podem-se declarar variáveis internas para uso apenas no código ou utilizar um valor de uma célula como variável. A declaração de uma variável em programação VBA é: Dim <variável> As <tipo> Os tipos mais utilizados são Integer, Double, String, e Boolean, para representar respectivamente um inteiro, um número real, um texto e um valor booleano. Integer são as variáveis do tipo inteiro guardadas em 2 bytes e variam entre e Double (reais de dupla precisão) são as variáveis guardadas como números em vírgula flutuante de 64-bit (8-bytes) e variam desde E308 até E-324 para valores negativos e desde E-324 até E308 para valores positivos. As variáveis do tipo Booleano são guardadas como números de 2 bytes e tomam apenas 2 valores: Verdadeiro ou Falso. Se o tipo de variável não for especificado então o VBA considera o tipo Variant (números de 16-bytes). Este tipo de variáveis ocupa muito espaço e deve ser evitado. Muitos programas VBA que resolvem problemas numéricos utilizam milhares de variáveis usando ciblos que são repetidos milhares de vezes. A nã declaração de variáveis iria tornar o programa extremamente pesado. Aconselha-se a utilização da instrução Option Explicit no início de cada programa/código o que obriga o programador a declarar todas as variáveis. A declaração de variáveis pode ser feita: - dentro de um procedimento e então a variável é utilizada apenas ao nível do procedimento ou - no módulo e fora do procedimento e então a variável passa a ser utilizada ao nível do módulo e por qualquer dos procedimentos. (Não fica disponível para outro módulo.)
40 Exemplo: Option Explicit Sub mensagem_minha( ) Dim mensagem As String mensagem = "Vamos ver este exemplo" MsgBox mensagem End Sub Sub mensagem_tua( ) Dim mensagem As String mensagem = "Qual exemplo?" MsgBox mensagem End Sub Option Explicit Dim mensagem As String Sub mensagem_minha( ) mensagem = "Vamos ver este exemplo" MsgBox mensagem End Sub Sub mensagem_tua( ) mensagem = "Qual exemplo?" MsgBox mensagem End Sub No entanto é necessário ter cuidado uma vez que variáveis declaradas a nível de módulo podem ser modificadas erradamente. Exemplo: Dim x, y As Integer Sub codigo( ) x = 10 y = minha_funcao( ) End Sub Function minha_funcao( ) As Integer minha_funcao=200 * x x = 40 End Function Qual o valor de x e de y após a execução do procedimento/código?
41 3.7 Operadores Exemplo: 3.8 Funções de manipulação de texto Len (string) retorna o número de caracteres da string. InStr([start,]string1,string2[,compare]) retorna a posição da primeira ocorrência de um texto dentro de outro. Ltrim(string), Rtrim(string) e Trim(string) retorna o texto sem deixar espaços à esquerda, à direita ou ambos. Right(string, length) retorna o texto com o número específico de caracteres contados a partir da direita. Left(string,N) retorna os primeiros N caracteres da string Mid(string,start[,length]) retorna o texto contendo um número específico de caracteres de um texto. Asc(string) retorna um inteiro representando o código do caracter correspondendo à primeira letra de um texto. Chr(charcode) retorna um texto contendo o caracter associado ao código específico
42 A função Str(<Integer>) permite converter um inteiro num texto. Exemplo de codificação de uma mensagem: Dim texto, mensagem As String Dim i, n As Integer texto = "Estás bem?" mensagem = "" For i = 1 To Len(texto) n = Asc(Mid(texto, i, 1)) mensagem = mensagem + Chr(n + 20) Next Cells(2, 3) = mensagem As atribuições de valores a variáveis podem ser feitas por valor através do comando: Let x=3 em que x fica com o valor 3 ou y=" LI " em que y fica com o valor LI Existe ainda uma atribuição por referência, destinada a objectos: Dim r As Range Set r =Range("A1:C3") a partir deste comando, utilizar r ou Range("A1:C3") é a mesma coisa. 3.9 Instruções Condicionais Uma instrução condicional em que o primeiro conjunto de instruções só é executado no caso da condição ser verdadeira, é, por exemplo: If <condição> Then <bloco de instruções> Else <bloco de instruções> End If
43 3.10 Ciclos Um ciclo permite executar um bloco de instruções, um determinado número de vezes. Os ciclos podem ser implementados de diversas maneiras, a primeira é dependente de uma condição que enquanto for verdadeira o bloco de instruções é executado: While <condição> < um bloco de instruções > Wend Evidentemente que a condição deve depender de alguma variável alterada pelos comandos, caso contrário existiria um ciclo infinito. A segunda forma utiliza um contador para parar o ciclo: For <contador>=<começo> To <fim> < um bloco de instruções > Next <contador> A terceira forma serve para ser utilizada em conjuntos: For Each <elemento> In <conjunto> < um bloco de instruções > Next <elemento> Por exemplo se o conjunto fosse o "Select", o ciclo seria executado tantas vezes quantas as células que estiverem selecionadas: Dim y As String y = InputBox("Comentário") For Each x In Selection y = y + y If Len(x.Value) < 20 Then x.value = y End If Next x
44 3.11 Exemplo de utilização de procedimentos Como exemplo de utilização de procedimentos vamos considerar o problema das Torres de Hanoi. As Torres de Hanoi são um quebra-cabeças muito antigo e conhecido. Considera-se de um conjunto de N discos de tamanhos diferentes e três pinos verticais, nos quais os discos podem ser encaixados. Cada pino pode conter uma pilha com qualquer número de discos, desde que cada disco não seja colocado acima de outro disco de menor tamanho. Na configuracão inicial todos os discos estão no pino A. O objectivo é mover todos os discos para um dos outros pinos, sempre obedecendo à restrição de não colocar um disco sobre outro menor. Na configuracão final todos os discos estão no pino C. Um algoritmo para resolver este problema é o seguinte: procedimento Hanoi(N, Orig, Dest, Temp) se N = 1 então mover o menor disco do pino Orig para o pino Dest; senão Hanoi(N-1, Orig, Temp, Dest); mover o N-ésimo menor disco do pino Orig para o pino Dest; Hanoi(N-1, Temp, Dest, Orig); fim-se fim
45 Criou-se uma macro em que se a célula activa tiver um valor numérico, esta chama um procedimento TorresHanoi que recursivamente vai resolver o problema. Sub Macro2( ) Sub torres_hanoi(n, origem, temp, destino) If IsNumeric(ActiveCell.Value) Then torres_hanoi ActiveCell.Value, "A", "B", "C" End If End Sub If N = 1 Then ActiveCell.Range("A2").Activate ActiveCell.Value = origem + " para " + destino Else torres_hanoi N - 1, origem, destino, temp ActiveCell.Range("A2").Activate ActiveCell.Value = origem + " para " + destino torres_hanoi N - 1, temp, origem, destino End If End Sub Primeiro, caso apenas se queira mover um só disco, a sub move-o sem utilizar o local auxiliar, caso contrário, move todos os discos mais pequenos para o local auxiliar chamando a função recursivamente, de seguida move o disco maior para o destino, e finalmente chama novamente a função recursivamente para mover os discos mais pequenos do local auxiliar para o destino. O resultado de executar esta sub com a célula com o 3 seleccionada, são as ordens de movimento descritas nas células abaixo: 3 A para C A para B C para B A para C B para A B para C A para C Na configuracão final todos os discos estão no pino C
46 3.12 Exercícios propostos: 1. Gestão de Custos Pretende-se com este trabalho que seja desenvolvida uma aplicação, que permita a gestão de custos correntes de um aluno do MIEA. Os registos de custos (ou receitas), devem ter associados um valor, uma data, uma categoria e um projecto. Devem poder ser inseridos através de uma dialog, assim como devem poder ser adicionadas mais categorias e projectos. Como relatórios, dever-se-á apresentar um relatório por Categoria, por Projecto, para um dado mês ou ano, e os saldos dos Projectos em cada mês ao longo de um ano. Também poderá ser gerado um gráfico da evolução dos projectos,... Exemplo de aplicação: 2. Vencimentos. Considere a folha de cálculo Funcionários referente aos funcionários de uma empresa contendo uma tabela com as seguintes informações de cada funcionário: Código (string); Nome; Categoria (A, B ou C); Vencimento; Número de horas extras; Valor de uma hora extra (1% do vencimento); Total a receber. Os vencimentos das categorias A, B e C são, respectivamente, de 1000, 1500 e
47 O número de horas extras nunca pode ser superior a 20. Faça uma macro que permita inserir ou actualizar registos de empregados, sendo dado o código de cada empregado. Nos locais referentes aos vencimentos, aos valores das horas extras e aos totais a receber, devem ser inseridas fórmulas em vez de valores. 3. Métodos iterativos para cálculo de raízes de equações não lineares Pretende-se determinar a raíz de equações da forma f ( x ) = 0, onde f é uma função contínua numa vizinhança da raiz. Um método iterativo, consiste de um modo geral, numa aproximação inicial x 0, e num processo de obter sucessivamente novas iteradas x n+1 a partir das anteriores x n,... Desta forma, pretende-se obter uma sucessão que convirja para z, solução da equação f(x)=0, também designada por raiz da equação, ou zero da função f. MÉTODO da BISSECÇÃO. Sabendo que no intervalo [a, b] a equação f(x) = 0 tem apenas uma e uma só raiz, podem-se construir intervalos [ a n, b n ] com metade do comprimento dos anteriores, onde se assegura a existência da raiz. O método pode-se esquematizar: Intervalo Inicial : [ a 0, b 0 ] = [ a, b ] Repetir: 1) x n+1 = ( a n + b n ) / 2 2) Se f (x n+1 ) f(a n ) < 0 Então a n+1 = a n ; b n+1 = x n+1 Senão a n+1 = x n+1 ; b n+1 = b n Até que : f(x n+1 ) = 0 ou x n+1 -x n < ε O critério de paragem utilizado é x n+1 -x n < ε onde o valor ε>0 é um valor suficientemente pequeno, o erro absoluto verifica e n+1 < ½ a n - b n = x n+1 - x n < ε. Pode-se determinar facilmente um majorante do erro para uma iterada x n a partir do comprimento do intervalo inicial: e n < ½ a n-1 - b n-1 = (1 / 2) n a 0 - b 0 a) Escrever uma macro em VB tal que dada uma equação f ( x ) = 0 e um intervalo inicial [a, b] que contenha uma raiz dessa equação calcule a raiz e o erro absoluto associado. b) Desenhar no EXCEL a função f ( x ) para encontrar intervalos que contenham uma única raiz e utilize a function desenvolvida para encontrar as raízes da equação. Considere as equações x 4-4 x 3 - x + 5 = 0 e 2 e x - x sin(x+3) = 0 e outras. 4. Cálculo numérico do valor de um integral -- Regra dos Trapézios Composta Trata-se de fazer uma aproximação da função integranda, usando uma spline linear
48 Para simplificar, consideremos que o tamanho desses sub-intervalos é constante = h. Define-se h = ( b - a ) / N, onde N é o número de sub-intervalos ( = número de nós - 1), e temos: x i = a + i h. O valor do integral é igual à soma dos integrais nos sub-intervalos Aplicando a regra dos trapézios simples a cada um desses sub-intervalos, e reparando que há termos que aparecem repetidos na soma, pode simplificar-se a expressão obtendo-se a Regra dos Trapézios Composta: Neste caso, a fórmula do erro da regra dos trapézios composta é dada por Calcule uma aproximação para os integrais descritos abaixo e os respectivos erros usando programação estruturada VB: a) 1 x 2 0 e dx ( ) b) sen dx x ( ) 5. Jogo do Ganso Um jogo simples consiste num tabuleiro contendo um percurso de quadrados e um conjunto de peças coloridas. No início do jogo cada jogador recebe uma peça; todas as peças são inicialmente posicionadas imediatamente antes do primeiro quadrado do percurso. Em cada jogada, os jogadores jogam um par de dados, e movem as suas peças para a frente o número de quadrados correspondente à soma dos pontos obtidos nos dados. A ordem em que os jogadores jogam os dados é sempre a mesma (jogador A, depois jogador B, etc.). A maioria dos quadrados no tabuleiro são 'normais', mas alguns são 'armadilhas'. Considere, por exemplo, o tabuleiro da figura cujos quadrados são numerados de 1 a 48. Há exactamente três armadilhas neste tabuleiro
49 Se a peça de um jogador cai numa armadilha no final do movimento de um jogador, o jogador perde a vez de jogar na jogada seguinte. Ou seja, ele/ela não joga os dados e a sua peça fica nessa jogada sem avançar. O vencedor do jogo é o jogador cuja peça alcança o final do percurso após o último quadrado. Note-se ainda que não há empates no jogo. Dado o número de jogadores, o número de quadrados no percurso e a posição das armadilhas escrever um programa que determine o vencedor do jogo. 6. Jogo do 4 em Linha Pretende-se com este trabalho que seja desenvolvida a interface do jogo do 4 em Linha entre dois jogadores humanos, não sendo pretendido que se implemente o jogador artificial. O jogo do 4 em linha joga-se numa matriz de 7 x 7, inicialmente vazia. Os jogadores jogam de forma alternada, cores diferentes, numa coluna que tenha casas vazias, preenchendo a casa vazia mais baixa. O objectivo do jogo é fazer 4 em linha (horizontal, vertical ou diagonal). Deverá ser feito o teste de fim de jogo, e corrigir as jogadas que são feitas em casas inválidas para a casa correcta da mesma coluna. No caso de vitória, devem ser marcadas as quatro casas em linha. Devem também ser contabilizados os jogos ganhos e empatados por ambas as cores. 7. Jogo do galo Este jogo é muito conhecido e dispensa apresentações. Os jogadores jogam de forma alternada usando símbolos diferentes. Deverá ser feito o teste de fim de jogo, e anular as jogadas que são feitas em casas inválidas. Devem também ser contabilizados os jogos ganhos e empatados por cada jogador. 8. Outros jogos: Dados, mastermind Jogo das cores: Seleccionam-se 3 cores aleatoriamente. Se as 3 cores forem iguais o jogador recebe 10 euros, caso contrário perde 5 euros
50 3.13 Exercícios resolvidos: A. Escreva em VB um procedimento do tipo function para calcular x + 3 f ( x, y, z) = + 3 ( 3z) y + 1 ( ) Resposta: Function f_xyz ( x as Double, y as Double, z as Double ) as Double f_xyz = (x+y)/(2*3*4*(y^2+1)+(3*z)^(1/3) End Function B. Escreveu-se em VB o seguinte procedimento do tipo function Function jogo ( N as Integer, K as Integer ) as String Dim i, soma as Integer soma = 0 For i = 1 to N soma = soma + Int (RND( )*6+1) Next i ( ) if soma / N K Then jogo = " ganha" Else jogo = "perde" End if End Function a) Considere agora este procedimento que chama a função acima descrita: Private Sub CommandButton3_Click( ) Dim X, Y As String X = jogo (1000, 8) Y = jogo (1000, 1) MsgBox(X & Y) End Sub Qual seria o valor das variáveis X e Y? Resposta: X seria perde e Y seria ganha
51 b) E neste outro procedimento qual seria o resultado das variáveis X e Y? Private Sub CommandButton2_Click( ) Dim X, Y As String X = jogo (3, 2) Y = jogo (1, 5) MsgBox(X & Y) End Sub Resposta: A Function jogo simula o lançamento de N dados não viciados, calcula a média dos valores obtidos e se essa média for maior ou igual a K o valor da function é ganha caso contrário é perde. Nesta alínea b) e para determinar o valor de X, o dado é lançado 3 vezes, se a média dos resultados dos 3 lançamentos for maior ou igual a 2 o valor de X será ganha caso contrário o valor de X será perde. Para determinar o valor de Y, o dado é lançado uma única vez vezes, se o resultado do lançamento for 5 ou 6 o valor de Y será ganha e se i resultado do lançamento for 1, 2, 3 ou 4 o valor de Y será perde. C. Qual o objectivo deste procedimento VB? Private Sub CommandButton1_Click( ) Dim Resultado, soma As Double Dim N, i, nota As Integer Dim classificação As String N = Val(InputBox("Número de disciplinas concluídas")) soma = 0 For i = 1 To N nota = Val(InputBox("Introduza a nota de uma disciplina concluída")) soma = soma + nota Next Resultado= soma / N Select Case Resultado Case 10 To 13 classificação = "Suficiente" Case 14 To 17 classificação = "Bom" Case 18 To 20 classificação = "Muito Bom" End Select MsgBox (classificação) End Sub Resposta: O objectivo deste procedimento é: Atribuir uma classificação de Suficiente, Bom ou Muito Bom caso a média das notas das disciplinas concluídas fosse respectivamente entre 10 e 13, entre 14 e 17 ou entre 18 e
52 D. Considere a sucessão de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,... definida de forma recursiva do modo seguinte: = 0, = 1 = +, 2 Escreva uma Function em Vb, Function Fibonacci (n as integer) as integer, com parâmetro de entrada n e que calcula u n, o termo de ordem n da sucessão de Fibonacci. Respostas possíveis: Function Fibonacci (n As Integer) As Integer Dim u_0, u_1 As Double Dim i As Integer u_0 = 0 u_1 = 1 i = 1 Fibonacci = 1 While i < n Fibonacci = u_0 + u_1 i = i + 1 u_0 = u_1 u_1 = Fibonacci Wend End Function Function Fibonacci (n As Integer) As Integer Select Case n Case 0 Fibonacci = 0 Case 1 Fibonacci = 1 Case Is > 1 Fibonacci = Fibonacci (n - 1) + Fibonacci (n - 2) End Select End Function E. Escreveu-se em VB o seguinte procedimento do tipo function para verificar se um número natural é primo. Function verifica(n) As Boolean Dim d As Integer verifica = True While d < N / 2 And verifica = True d = d + 1 Wend End Function a) Esta function está incompleta. Altere ou acrescente instruções a esta function de modo que esta verifique se um número natural N é ou não primo
53 Resposta Possível: Function verifica(n) As Boolean Dim d As Integer verifica = True d = 1 'inicializa d While d < n / 2 And verifica = True d = d + 1 If n Mod d = 0 Then verifica = False Wend End Function ' verifica se n tem divisores b) Escreveu-se um procedimento do tipo Sub, Sub primos( ), para determinar os primeiros K primos, i.e., 2, 3, 5, 7, 11, 13,... chamando a function verifica. Este procedimento está incorrecto. Altere este procedimento garantido que o seu objectivo é determinar os primeiros K primos recorrendo à function verifica. Possível Resposta: Sub primos( ) Dim K, X, i As Integer K = Val(InputBox("Quantos primos quer determinar?")) i = 0 X = 2 While i < K If verifica(x) Then MsgBox ("O número " & X & " é primo") X = X + 1 Wend End Sub Sub primos() Dim K, X, i As Integer K = Val(InputBox("Quantos primos quer determinar?")) i = 0 X = 2 While i < K If verifica(x) Then i = i + 1 ' conta mais um primo encontrado MsgBox ("O número " & X & " é primo") End If ' termina a condição if X = X + 1 Wend End Sub
54 4 INTRODUÇÃO AO MATLAB O MATLAB, Laboratório de Matrizes, é uma ferramenta para computação numérica e visualização gráfica destinado a utilizadores, fundamentalmente das áreas das engenharias e ciências, que precisam de para realizar cálculos matemáticos, desenvolver algoritmos, modelação, simulação, etc. Baseado em matrizes que não requerem dimensionamento, um dos objectivos principais é proporcionar ao utilizador uma solução simples e eficiente de muitos problemas computacionais que envolvem matrizes e vectores. Permite solucionar muitos problemas numéricos com um esforço muito menor do esforço que seria necessário para escrever um programa numa linguagem de programação de alto nível. O MatLab está dotado de um sistema interactivo e duma linguagem de programação. Além de bibliotecas para cálculos aritméticos básicos, oferece ainda um grande número de ferramentas (tool-boxes) para a resolução de problemas específicos da estatística, programação linear, etc. Na FEUP a versão instalada no lectivo 2011/2012 é MATLAB (R2011a). 4.1 Ficheiros do Matlab: M-ficheiros M-Ficheiros são ficheiros com extensão.m que contêm programas (scripts) e funções que podem ser chamados e executados na janela de comandos do MATLAB. programas utilizados para armazenar comandos funções utilizados para armazenar funções e procedimentos. 4.2 Ambiente de trabalho em MATLAB Janela de comando: Existem dois modos de utilização: 1. modo imediato - para entrar variáveis e executar os comandos 2. modo de execução de funções - para executar procedimentos e programas armazenados em M- ficheiros. Neste caso, utiliza-se o comando cd (change directory) para procurar a pasta onde se encontra o M-ficheiro e introduz-se o nome do ficheiro para começar a sua execução. Traço do programa diary <filename> redirecciona a informação de saída para um ficheiro diary on/off activa/ desactiva o traço do programa
55 Janela de edição: para a edição dos M-ficheiros. Esta janela é aberta a partir do Menu File na janela de comandos escolhendo New ou Open: Janela de gráficos: para a visualização e impressão de gráficos.esta janela abre-se automaticamente quando se pede a execução de um gráfico. Por exemplo se na janela de comandos escrever >> x=[-4:0.01:4]; >> y= sin( x ); >> plot(x,y) Irá ser desenhada a função trigonométrica seno de x para x entre -4 e 4 e por incrementos Janela de help: para ajuda, abre-se a partir do Menu Help podendo ser usada em modo interactivo
56 4.3 Comandos de visualização e informação ; coloca-se no final da linha para suprimir a repetição (echo) do comando, coloca-se no final da linha se se deseja a repetição (echo) do comando... coloca-se no final da linha quando o comando é demasiado longo para ser inserido numa única linha % comentário format short visualiza 4 lugares decimais format long visualiza 14 lugares decimais who lista todas as variáveis utilizadas whos lista todas as variáveis utilizadas juntamente com a informação sobre a sua dimensão what lista os ficheiros clear apaga o espaço de trabalho clear variables apaga as variáveis clear x y z apaga apenas as variáveis x, y e z da memória. clear functions apaga as funções clc limpa o display clg limpa o gráfico 4.4 Comandos para atribuir valores às variáveis >> x = 2; >> y = x^2-3*x + 2; >> z = tan( x^2 )-cos(3*y)^2 + 2*x*y; No Matlab letras maiúsculas e minúsculas são diferentes. Evitar utilizar como nomes variáveis que sejam nomes de variáveis intrínsecas do Matlab (por ex: sin, cos, exp, sqrt, etc.). Sempre que o nome de uma função é utilizado para definir uma variável, a função deixa de poder ser utilizada. Algumas das variáveis pré-definidas: ans toma o valor do resultado da última expressão. pi o número π eps a menor diferença entre 2 números: 2^(-52) inf usado para infinito i definido como 1, que é i j o mesmo que i NaN Not-a-Number por exemplo 0/ Gráficos de funções A função plot( ) - gera gráficos em R 2 plot(x,y) desenha um gráfico que passa pelos pontos (x(i),y(i)) plot(y) desenha um gráfico que passa pelos pontos (i,y(i)) plot(x,y, S) S pode ser formado pelo primeiro elemento que identifica a cor da linha e o segundo que identifica o tipo de linha: cor : y amarelo; m magenta, c - azul celeste; r - vermelho; g verde; b - azul ; w branco; k- preto tipo de linha:. ; -; o ; : ; x; -. ; + ; --; * ; s - quadrado; d diamante; v;^ ; <; >; etc. Por exemplo, plot(x1,y1, r*, x2,y2, g, x2,y2, : ) desenha três gráficos com diferentes cores e formatos de linhas
57 Para desenhar o gráfico de uma função de uma variável podemos usar por exemplo: >> x=[-2:0.01:4]; >> y=3.5.^(-x/2).*cos(6*x); >> plot(x,y) >> fplot('3*x^3-26*x+10',[-2,2]) >> hold on >> fplot('x^4',[-2,2],'--r') >> >> hold off >> f=inline('x^2+exp(x)-3*x-4'); >> fplot(f,[-2,2]) 4.6 Algumas das funções matemáticas elementares: abs(x) - valor absoluto de x. acos(x) - arco cujo cosseno é x. asin(x) - arco cujo seno é x. atan(x) - arco cuja tangente é x. cos(x) - cosseno de x. exp(x) - exponencial de x. factorial(x) função factorial. log(x) - logaritmo de x na base e. log10(x) - logaritmo de x na base 10. sin(x) - seno de x. sqrt(x) - raiz quadrada de x. tan(x) - tangente de x
58 4.7 Funções para manipulação algébrica O comando Sym e Syms permite definir variáveis simbólicas para manipulação algébrica. Por exemplo: Syms x y z Algumas das funções mais utilizadas para manipulação algébrica são: compose(f,g) - determina a composta f(g(x)). expand(expr) - expande uma expressão expr. finverse(expr) - determina a função inversa de expr. pretty(expr) - exibe a expressão expr numa forma mais bonita. simple - procura encontrar uma forma mais simples de escrever expr. simplify(expr) - simplifica a expressão expr. solve(expr) determina as soluções da equação expr= 0. subs(expr,x,a) - substitui na expressão expr a variável x por a. Exemplos: >> syms x y z >> y=sin(x); >> z=x^2; >> diff(y) ans = cos(x) >> diff(y+z) ans = 2*x + cos(x) >> syms x y z >> y=sin(x); >> z=x^2; >> compose(y,z) ans = sin(x^2) >> syms f x >> f=x^2+5*x+4; >> solve(f) ans = -4-1 >> >> f=inline('x^2+exp(x)-3*x-4'); >> fplot(f,[-2,2]) >> solve(f) ans = >> >> clear f g x >> clear functions >> syms f g x >> f=x^3; >> g=finverse(f) Warning: finverse(x^3) is not unique. > In sym.finverse at 46 g = x^(1/3)
59 4.8 Exercícios: 1. Calcule as expressões seguintes para diferentes valores de x: sen x a) b) c) x sec ( x ) + e 3 + cos x + 2 sen x 2 4x x 2 ( ) 3 x 2. Calcule para x= 0, 3 e 30 os valores de y e de z y 1 x + 1 = x z = x 2 5π + x Faça os gráficos das funções e calcule as suas derivadas 5 x f ( x) = + 2 x + 1 x ; g( x) x x e h( x) = 3 / = + ; 2 2 x x 1 x 4. Utilize um único gráfico para desenhar as funções f ( x) = sec( x) + cosec( x) e g x 2 3 ( ) = x tg( x ) 5. Faça os gráficos das funções f ( x) = ln( arc cos( x)) + tg(ln( x)) e g x sen x tg x 2 3 ( ) = ( + 1) + ( ) 6. Utilize um único gráfico para desenhar pelo menos duas das três funções 2 x π f ( x) = cos( x) + sen ( x) g( x) = 2 tg( e ) 5sec( x) + 2 tg x h( x) = 2 ( ) + arcsen( x + 1) 2 cos ( x) sen x 7. Considere f ( x) = 3 + cos x + 2 sen x e calcule f(g(x)) e as funções inversas de f(x) e de g(x). g( x) = 1 ( ) 3 2 4x x 2 8. Resolva as equações: a) = 0 b) arcsen 0 2 = 1+ x 3 x x e x c) arctg( x) 2 = x
60 4.9 Matrizes e Vectores em MatLab O MATLAB, Laboratório de Matrizes, é uma ferramenta para computação numérica e visualização gráfica. Um dos objectivos principais é proporcionar ao utilizador uma solução simples e eficiente de muitos problemas computacionais que envolvem matrizes e vectores. Todas as variáveis em MATLAB são tratadas como matrizes (arrays). Um escalar é considerado uma matriz de um por um Inicialização de matrizes: Uma matriz pode ser inicializada de várias formas. Por exemplo:» X = [ 1,2;3,4] %matriz 2 2 inicializada usando o operador concatenação [ ]» Y = [ 1,2,3] %vector linha, matriz 1 3 inicializada usando o operador [ ]» B = [ 1;2;3] %vector coluna, matriz 3 1 inicializada usando o operador [ ]» Z = zeros(1,5) % Inicializa um vector como uma linha com zero Z = » W = zeros(3,1) % Inicializa um vector como coluna com zeros W = 0 0 0» M = ones(2,4) % Inicializa uma matriz de 2 linhas e 4 colunas com uns M = >> A=rand(2,4) % Inicializa uma matriz de 2 linhas e 4 colunas com valores aleatórios % reais entre 0 e 1 A = >> rand(size(a)) % Retorna uma matriz de valores aleatórios com a mesma dimensão % de A ans = >> out = randint(3,3,[0,7]) % Inicializa uma matriz 3 por 3 com valores aleatórios % inteiros entre 0 e 7 out = » size(m) % Devolve a dimensão de uma matriz: # de linhas, # de colunas ans =
61 4.11 Operações sobre vectores: podem ser introduzidos e armazenados como uma matriz de uma única linha ou uma única coluna» V = [1,2,3,4] V = » length(v) % o comprimento de um vector V ans = 4» sum(v) % a soma dos elementos de V ans = 10» mean(v) % a média aritmética dos elementos de V ans = Podem ser criados vectores utilizando o operador : <início : incremento : fim>» XX = 0.2:0.2:1; % um vector com 5 componentes. Se o incremento for igual a um pode ser omitido:» X = 1:20; % um vector com números inteiros desde 1 até 20.» Y = X.^2; % um vector com cada número elevado ao quadrado.» Y(10:20) % visualiza os últimos 11 elementos. ans = » x=1:4:20; % um vector com números inteiros desde 1 to 20, com incremento 4. x = Operações sobre matrizes» A = [ ; ; ];» A(1,3) % selecciona um elemento da matriz ans = 3» A(2:3, 1:2) % selecciona uma sub-matriz ans = Exemplos: Seja X=[10,20,30,40] e = X(2:4) X(:) A(:,3) X(end) B=A(:,2) Representa da 2ª à 4ª componente Vector coluna com todas as componentes de X Representa a 3ª coluna de A Representa a última componente de X B é um vector coluna com a 2ª coluna de A A(:,1)=[ ] Apaga a 1ª coluna de A, A passa a ser uma matriz 2 2 A(3) 3ª componente de A quando os elementos são ordenados por colunas, -3. A(end,:) Representa a última linha de A
62 Outras operações sobre matrizes: inv inversa A. transposta rank característica det determinante eig valores e vectores próprios norm norma rand elementos aleatórios eye matriz identidade rot90 rotação dos elementos da matriz fliplr inverter matrix left-to-right flipud inverter matrix up-and-down diag extrair a diagonal principal tril lower triangular part triu upper triangular part 4.13 Operadores aritméticos, relacionais e lógicos Operadores aritméticos + Adição - Subtracção * Multiplicação / Divisão à direita (a/b=a * b -1 ) \ Divisão à esquerda (a\b=a -1 *b) ^ Potência Operadores aritméticos sobre matrizes.+ Somar por elemento.- Subtrair por elemento.* Multiplicação por elemento./ Divisão por elemento.^ Potência por elemento Exemplos: A = [1 2; 3 4];» A^2 % o quadrado da matriz, A*A ans = » A.^2 % o quadrado de cada elemento da matriz. ans = Operadores Relacionais == igual a ~= não igual a < menor que > maior que <= menor ou igual a >= maior ou igual a Operadores Lógicos ~ negação & conjunção disjunção xor ou exclusivo
63 4.14 Valores booleanos: 1 True; 0 False Exemplos: Seja v1=1; v2= - 4; v3=5 e v4=0 Expressão lógica Resultado v1==1 1 Verdadeiro v1>v2 & v3<v4 0 Falso ~(-2<v1 v1<=5) 0 Falso -5<v2<-3 0 Falso xor (v1>v2, v3<v4) 1 Verdadeiro (v4~=0) && (v3/v4<5) 0 o valor lógico do 2º operando só é analisado se o valor lógico do 1º não for suficiente. Neste caso evita-se a divisão por zero Instruções básicas de programação em MatLab Instruções de Controlo >> if faltas>0.25,passagem=0,end if expression, statements, end >> if faltas<0.25 && nota>=10 passagem=1 else passagem=0 end if expression1 statements1 elseif expression2 statements2 else statements3 end Ciclo for for x=initval:endval, statements, end for x=initval:stepval:endval, statements, end >> k=3; >> for m=1: k, a(m)=1/m; end >> a a =
64 Instruções de entrada/saída de dados Para inicializar variáveis usando a função input escrita na janela de comandos: Var = input( texto ) >> r1=input('introduza uma expressão aritmética: ') Introduza uma expressão aritmética: 5*cos(pi/4) r1 = >> A=input('Introduza uma matriz: ') Introduza uma matriz: [1 2 3; 6 7 8] A = >> leitura=input('introduza um texto: ') Introduza um texto: 'Quer continuar?' leitura = Quer continuar? >> A=input('Introduza uma matriz: \n ') Introduza uma matriz: [1 2 3] A = Armazena o resultado de uma expressão Define uma matriz Define um texto \n (= mudança de linha) Var = input( texto, s ) >> Var = input('texto?\n','s') texto? Estou na aula Var = Estou na aula >> Pergunta=input('O que é isto? ','s') O que é isto? [1 2 3; 6 7 8] Pergunta = [1 2 3; 6 7 8] Instruções de saída : >> x=2*cos(pi/4) x = >> disp(rand(2)); >> fprintf('o valor de Pi é = %f \n',pi) O valor de Pi é = Armazena um texto Interpreta sempre como sendo um texto Instruções sem ; Função disp; Função fprintf
65 4.16 Exercícios propostos: 1. Explique o resultado do seguinte código MatLab: a) prod([eye(2); -3*(0:1)]) b) A= [-3 2-2; ]; A(3, : )=ones(1,3); B=find(A>1) c) S= [ 2, 3, 40]; if mod(s(end),2)==0, S(end)=0, end d) for i = 1: length(s), T(i) = i* norm(s,2); end; T 2. Seja k = <último algarismo do seu número de código da FEUP> Defina um vector X de dimensão N=10+k em que as componentes do vector tomam valores aleatórios inteiros entre 1 e os dois últimos algarismos do seu número de código da FEUP. a) Calcule a norma do vector; b) Calcule a soma dos elementos do vector; c) Calcule a média dos elementos do vector; d) Calcule o produto dos elementos de índice ímpar do vector; e) Determine o índice do primeiro elemento do vector igual ao algarismo das dezenas do seu número da FEUP. Caso não exista deve sair uma mensagem; f) Substitua os elementos ímpares do vector por zero; g) Defina um vector aleatório Y de dimensão N=10+k e calcule Z = X+Y; h) Calcule o produto de um escalar α por Z, i.e., W = α Z 3. Seja A matriz com n n elementos e b um vector com n elementos, para n>3. a) Calcule A -1, a inversa de A, i.e., A A -1 = A -1 A = matriz identidade. b) Resolva a equação Ax=b, i.e., determine o vector x. Deve apresentar pelo menos um exemplo possível e determinado. c) Some os elementos da diagonal principal de A; d) Dada uma B matriz com m n elementos, calcule a soma de A com B; e) Calcule o produto de um escalar β pela matriz A, β A. 4. Escreva as seguintes expressões aritméticas e/ou lógicas em MatLab e indique o resultado atribuindo valores a x, y, k, A e B. a)! cos ( %& ); '( b) ) 3 +, 0; c) )2 <, < 2; d) / (&)(&') ; &01 e) )3.! ; f) 6 7+(20 8 );
66 4.17 Exercícios Resolvidos: A. Escreva em VB ou MATLAB as seguintes instruções de atribuição, considerando todas as variáveis como escalares: a) 9 :! sen(n α) ; ) > A + :! B ; C) D + E FG HIG J ; d) L!/cos( % + ) ; Resposta possível: A. VB Matlab a) r = Sqr(x^2-y^2)*Sin(n*alfa) r = sqrt(x^2-y^2)*sin(n*alfa) b) r1=0.5e-4*ln(x+y^(1/3)) r1=0.5e-4*log(x+y^(1/3)) c) R = Exp(-1/(n+1)) R = exp(-1/(n+1)) d) Pi = Atn(1) * 4 k = x*y/cos(pi/2+n) k = x*y/cos(pi/2+n) B. Escreva as seguintes expressões em MatLab e indique o resultado, começando por atribuir valores a A, B e T. a) ) 3 M, = 0; N7C9+O ()); b) )5, +, > 10 > ; N7C9+O()5) ; c) 7+ Q = 0 +RãM T 1 7+ãM T :1 + 1/Q; N7C9+O (T); Resposta possível: B. MatLab Resultado a) A=3;B=2;P=A<=3 B= =0 P=1 b) A=2;B=0;P5=(A~=B)&abs(A-B)>1.e-4 P5=1 c) T=1; if T==0, f=1;else f= sqrt(1+1/t); end; f f= 2 ou f= C. Explique o resultado do seguinte código MatLab: a) >> D=1+fix(6*rand(1,10)); R=mod(D,3); C=prod(R);C C = 0 Resposta possível: A função rand(1,10) cria uma matriz de 1 linha e 10 colunas com elementos aleatórios entre 0 e 1; a instrução D=1+fix(6*rand(1,10)) vai criar um vector com 10 elementos aleatórios inteiros entre 1 e 6 (ver exercício do Lançamento de dados); a instrução R=mod(D,3) vai criar um vector com 10 elementos que são o resto da divisão inteira de cada elemento de D por 3; a instrução C=prod(R) atribui a C o produto dos elementos de R; C vai tomar o valor 0 se algum dos elementos do vector C for 0; finalmente a instrução C obriga à escrita do valor da variável C
67 b) >> h=0.1; X=[0.5:-h:0]; Y=cos(X).^X; disp(y(end)); 1 Resposta possível: A instrução h=0.1 atribui à variável h o valor 0.1; a instrução X=[0.5:-h:0] cria um vector com elementos começando em 0.5, incremento h e termina em 0, ou seja, X=[0.5, 0.4, 0.3, 0.2, 0.1,0] vai ter 6 elementos; a instrução Y=cos(X).^X vai criar um vector em que cada elemento de é calculado à custa de cada elemento de X usando a função cos(x)^x; a instrução disp(y(end)) escreve a última componente do vector Y, como cos(0)^1 é igual a 1, a resposta será 1. D. Escreva em VB ou MATLAB as seguintes instruções de atribuição, considerando todas as variáveis como escalares: a) 9 cos(u R) ; ) 91 + VW ; C) D 7+ E 0 + XJ; d) L :&Y 1 Y &0' Z + &1 :1 [ ; Resposta: D. VB Matlab a) r = A * Cos(teta - t) r=a*cos(teta-t) b) r1 = Exp(-t * teta) r1=exp(-t*teta) c) Pi = Atn(1) * 4 R=sin(1/(n+1)+n*pi) R = Sin(1 / (n + 1) + n * Pi) d) k = Sqr(x ^ 2 - y ^ 2) / (x + 3 ^ y) + (x - y) / y ^ 2.5 k=sqrt(x^2-y^2)/(x+3^y)+(xy)/y^2.5 E. Escreva as seguintes expressões em MatLab e indique o resultado, começando por atribuir valores a A, b, B e M. a) ) 3 M, = 0 b) )5 ( M > 3) + > 0 c) 7+ \ é ^ú`rab`m c+ 5 M c+ 7 +RãM \ \ 2;N7C9+O (\); Resposta Possível: E. MatLab Resultado a) A=3;B=2;P=A>=3 B= =0 P=1 b) A=2;b=0;P5=(A~=b A>-3)&b>0 P5=0 c) M=70; if mod(m,5)==0 mod(m,7)==0,m=2*m,end M=
68 F. Explique o resultado do seguinte código MatLab: a) >> A= ones(3,2);b=randint(3,2,[2,7]);c=a+b; V=find(C==1) V = Empty matrix: 0-by-1 b) >> S= [ -2, 3, 7]; if mod(prod(s),3)==0, S=10*S; end; S S = Resposta Possível: a) >> A= ones(3,2);b=randint(3,2,[2,7]);c=a+b; V=find(C==1) V = Empty matrix: 0-by-1 A= ones(3,2); Inicializa a matriz A com 3 linhas e 2 colunas e elementos todos iguais a 1; B=randint(3,2,[2,7]); Inicializa a matriz B com 3 linhas e 2 colunas e elementos com valores aleatórios inteiros entre 2 e 7; C=A+B; Constroi a matriz C soma de A com B e os elementos tomam valores aleatórios inteiros entre 3 e 8; V=find(C==1) Constroi um vector V com a localização dos elementos de C cujos valores são exactamente 1. Como todos os elementos de C estão entre 3 e 8 a resposta é vector V vazio. Resposta Possível: b) >> S= [ -2, 3, 7]; if mod(prod(s),3)==0, S=10*S; end; S S = S= [ -2, 3, 7]; Inicializa um vector C com 3 colunas e elementos indicados; prod(s) Faz o produto dos elementos de S, i.e. -2*3*7; mod(prod(s),3) Calcula o resto da divisão inteira prod(s) por 3; if mod(prod(s),3)==0, S=10*S; end; Se o resto da divisão inteira prod(s) por 3 for exactamente 0 então os elementos de S são multiplicados por 10; senão não faz nada; S Escreve o vector S. Como neste exemplo o produto dos elementos de S é múltiplo de 3, o novo vector S tem os elementos iguais a 10 vezes os elementos do vector S inicial
69 5. Programação em MatLab - introdução 5.1 Programas (script) - um conjunto de comandos e instruções em MatLab armazenadas num M-Ficheiro % <program-name> {<specification-statements>} {<executable-statements>} Exemplo 1: Escreva um programa em MatLab que construa o gráfico da função y=sin(x), para x pertencente ao intervalo [0, π] com passo π /8. Grave o programa num ficheiro com o nome PlotSin.m. O Matlab permite rapidamente avaliar funções num largo conjunto de dados. Por exemplo, se X=[-1 0 1], então sin(x) produz o resultado [sin(-1) sin(0) sin( 1)]. Do mesmo modo se X= [0:pi/8:pi] então Y=sin(X) produz um vector Y com a mesma dimensão que X e com os correspondentes valores de sen(x). % PlotSin constroi o gráfico da função y=sin(x) X = 0:pi/16:pi; Y = sin(x); figure(1); clf; hold on; Execute o programa PlotSin na janela de comandos do MATLAB. >> PlotSin O seguinte gráfico será visualizado: axis([ ]); % define os eixos de oordenadas plot([ ],[0,0],[0,0],[ ]); % desenha os eixos plot(x,y); % desenha o gráfico xlabel('x'); ylabel('y'); title('graph of y = sin(x)'); grid; hold off; Comentário: O comando plot requer dois vectores de igual dimensão
70 Exemplo 2: Escreva um programa em MatLab que construa o gráfico do polinómio p(x) = x 5 10 x x 3 50 x Grave o programa num ficheiro com o nome PlotPoly.m % PlotPoly constroi o gráfico do polinómio figure(1);clf; C = [ ]; % define um vector com os coeficientes do polinómio X=[-0.2:0.1:4.2]; % define as abcissas Y=polyval(C,X); % polyval - função que avalia um polinómio axis([ ]); % define os eixos plot([ ],[0,0],[0,0],[ ]); % desenha os eixos plot(x,y); % desenha o gráfico hold on; xlabel('x'); ylabel('y'); title('gráfico de um polinómio'); grid; Execute o programa PlotPoly. O seguinte gráfico será visualizado: Exemplo 3: Escreva um programa em MatLab onde o utilizador pode introduzir uma função para construir o gráfico. Sugestão: A função f pode ser definida como texto, por exemplo, se f= sin(x), então pode ser usado o comando fplot(fun,limits) ou fplot(fun,limits,linespec)
71 % PlotFun constroi o gráfico de uma função f=input('f(x)= ','s'); a= input('limite inferior para x '); b= input('limite superior para x '); figure(1);clf; fplot(f,[a b]); % desenha o gráfico hold on; xlabel('x'); ylabel('y'); title(f); grid; 5.2 Funções em MatLab function [lista de parâmetros de saída] = nome (lista de parâmetros de entrada) {<instruções para declaração de variáveis>} {<instruções de execução>} Exemplo 4 : Implemente a função sraiz para determinar a raíz quadrada positiva de um número positivo pelo método de Newton. Grave esta função no M-ficheiro sraiz.m. function [r]=sraiz(a) % Método de Newton para determinar a raiz quadrada de A p0 = 1; % valor inicial for k=1:50, p1 = (p0+a/p0)/2; disp(p1); if abs(p1-p0)/p1 < eps, break, end; p0 = p1; end r=p1; Executando a função sraiz na janela de comandos do MATLAB, obtém-se: >> sraiz(9)
72 Exemplo 5 : Implemente em Matlab a função f2ramos definida por: h e(f) = g i jh i < 0 k + lmnop(i) jh i 0 Grave esta função no M-ficheiro f2ramos.m function [y]=f2ramos(t) if t<0 y=exp(-t); else y=1+atan(t); end Agora executando a função f2ramos na janela de comandos do MATLAB, obtém-se por exemplo: >> t=-0.5; fprintf('valor de f(%f)=%f \n',t,f2ramos(t)) Valor de f( )= >> t=0.5; fprintf('valor de f(%g)=%g \n',t,f2ramos(t)) Valor de f(0.5)= Aqui foi utilizada a função fprintf(formato, resultados) em que format é um string. Alguns caracteres de conversão, controlos de escrita do texto utilizados no formato são: \t tabelamento (de 4 em 4 caracteres) %d inteiro %f real em vírgula fixa com 6 casas decimais %s texto %e real em vírgula flutuante com 6 casas decimais \n muda de linha %g real na forma mais compacta 0 os espaços são preenchidos por zeros
73 Exemplo 6 : Escreva as seguintes funções MatLab nos ficheiros f.m and G.m. function y = f(x) y = exp(-x./10) + sin(x); function W = G(Z) % Z vector linha com 2 componentes x = Z(1); y = Z(2); W = [x.^2-y.^2 2*x.*y]; Execute as funções f e G na janela de comandos. Obtém-se:» f(pi/2)» G([2 1]) ans = ans = Exemplo 7 : Escreva as seguintes funções MatLab no ficheiro chamada.m. function [y]=chamada(x) y=fa(x)+fb(x); return function [y]=fa(t) if t<0, y=exp(-t); else y=1+atan(t); end return function [y]=fb(t) if t<0, y=exp(-2*t); else y=1+atan(t^2); end return Agora executando a função chamada na janela de comandos do MATLAB, obtém-se por exemplo: >> z=chamada(0)+chamada(1) z =
74 Se introduzir na janela de comandos a seguinte instrução z=chamada(0)+fa(2)+fb(3) obtem-se >> z=chamada(0)+fa(2)+fb(3)??? Undefined function or method 'fa' for input arguments of type 'double'. Porquê? 5.3 Ficheiros de dados em MatLab A instrução save nome_ficheiro lista_variáveis opções guarda variáveis do workspace num ficheiro. Para carregar para o espaço de trabalho as variáveis guardadas num ficheiro utiliza-se a instrução load nome_ficheiro lista_variáveis. Por exemplo: >> clear variables >> a=1;b=sin(a)+exp(a);load fich1 a b >> clear variables >> load fich1 a b;disp(a);disp(b) Instruções de Controlo para programação em MatLab IF ELSEIF ELSE END if (<expresão-lógica#1>), {<instruções executáveis>} elseif (<expresão-lógica#2>), {<instruções executáveis>}. else {<instruções executáveis>} end %Exemplo >> k=4; >> for m = 1:k for n = 1:k if m == n a(m,n) = 2; elseif abs(m-n) == 2 a(m,n) = 1; else a(m,n) = 0; end end end >> a a =
75 5.4.2 Ciclo FOR for variável = expressão {<instruções executáveis>} end Exemplo 7: Exemplo 8: Exemplo 9: for k=1:100, x=sqrt(k); if x>5, break, end end sum1 = 0; for k = 1:1:10000, sum1 = sum1 + 1/k; end» sum1 sum1 = sum2 = 0; for k = 10000:-1:1, sum2 = sum2 + 1/k; end» sum2 sum2 = A instrução break interrompe o ciclo A instrução Pause gera uma pausa na execução do programa Ciclo WHILE Exemplo 11: while <expressão> { <instruções executáveis>} end m = 10; k = 0; while k<=m x = k/10; disp([x, x^2, x^3]); % uma tabela de valores k = k+1; end
76 5.5 Outras funções do MatLab Nota: exemplos de utilização destas funções podem ser estudadas usando o HELP Funções Matemáticas: cos(x) cosine (radians) sin(x) sine (radians) tan(x) tangent (radians) cosd(x) cosine (degrees) sind(x) sine (degrees) tand(x) tangent (degrees) exp(x) exponential exp(x) acos(x) inverse cosine (radians) asin(x) inverse sine (radians) atan(x) inverse tangent (radians) log(x) natural logarithm base e log10(x) common logarithm base 10 sqrt(x) square root abs(x) absolute value round(x) round to nearest integer fix(x) round towards zero floor(x) round towards -ì ceil(x) round towards +ì sign(x) signum function cosh(x) hyperbolic cosine sinh(x) hyperbolic sine tanh(x) hyperbolic tangent acosh(x) inverse hyperbolic cosine asinh(x) inverse hyperbolic sine atanh(x) inverse hyperbolic tangent real(z) real part of complex number z imag(z) imaginary part of complex number z conj(z) complex conjugate of the complex number z angle(z) argument of complex number z rem(p,q) remainder when p is divided by q Funções para Análise de Dados: max maximum value min minimum value mean mean value median median value std standard deviation sort sorting sum sum the elements prod form product of the elements cumsum cumulative sum of elements cumprod cumulative product of elements diff approximate derivatives (differences) hist histogram corrcoef correlation coefficients cov covariance matrix
77 5.6 Gráficos 3-D Exemplo de gráfico de linhas: >> % Exemplo de utilização da função plot3(x,y,z) >> z=[0:0.1:10]; >> x=z.*cos(2*z);y=z.*sin(2*z);plot3(x,y,z); >> title('gráfico de linha 3-D'); grid on Exemplos de outros gráficos 3-D são os chamados gráficos de superfície e de contornos cujos exemplos podem ser consultados usando a facilidade HELP do MatLab
78 5.7 Exercícios de introdução à Programação em MatLab 5 Uma equação do 2º grau tem a forma genérica + + C = 0 com 0. Escreva um programa em MatLab que leia os valores dos parâmetros a, b e c e determine as duas raízes da equação. Nota: as raízes podem ser reais ou complexas. 6 Numa conta a prazo com capitalização automática o valor do juro é acumulado ao capital inicial no final de cada período. Assim, o capital acumulado ao fim de N períodos é dado pela equação qbar` Ta` = qbar` aaca` (1 + R) r onde R é a taxa de juro aplicada (0 < R < 1). Escreva um programa MatLab que tenha como dados o Capital inicial, a taxa de juro anual t e o número de anos N e que calcule o capital acumulado ao fim desses anos. 7 Escreva um programa em MatLab que mande desenhar um gráfico com várias funções sobrepostas. O utilizador deve poder escolher quantas e quais as funções a introduzir para construir o gráfico. 8 Escreva uma função em MatLab para procurar numericamente o limite lim T() & v Para procurar numericamente este limite pode avaliar f(x) para a seguinte sucessão: + w, + w,, + w, para valores de b e n dados sendo h x x Y xh escolhido convenientemente. Experimente para b=5, h=1 e n=10 calculando a) lim & E z{& & Y J b) lim & (7+ ) & 9 A instrução 1+fix(6*rand(1,10)) simula o resultado de fazer dez lançamentos de um dado. Usando uma instrução semelhante, escreva um programa para: a) Contabilizar o número de vezes que em 50 lançamentos saíram valores pares; b) Contabilizar o número de vezes que nos 50 lançamentos, a soma do resultado de dois lançamentos consecutivos foi de exactamente
79 LABORATÓRIOS DE INFORMÁTICA - MIEA RESOLUÇÃO dos Exercícios 1 a 6 do TESTE de 20 de Janeiro Escreva em VB ou MATLAB as seguintes instruções de atribuição, considerando todas as variáveis como escalares: b) : ' +! ' cos( ) ; ), ln E % + J ; C) q A 10& B ; d) /sen ( 1 + 1/R) ; Resposta possível: 1. VB Matlab a) A = Sqr(x ^ 3 + y ^ 3) * Cos(-1 / (n + 1)) A=sqrt(x^3+y^3)*cos(- 1/(n+1)); b) Pi = Atn(1) * 4 B=2.5e5*log(pi/2+n); B = * Log(Pi / 2 + n) c) C = Exp((x + y) ^ (1 / 3)) C=exp((x+y)^(1/3)); d) D = x / Sin(1 + 1 / t) D=x/sin(1+1/t); 2. Escreva as seguintes expressões em MatLab e indique o resultado, começando por atribuir valores a x e y. a) 0 +! 1/; N7C9+O (); b) c) L +!;7+ L < 0 +RãM, 10 > 7+ãM, L 10 > ; N7C9+O(,) ; 3; b9 a 1 Ré Tç } + a; N7C9+O (); Resposta possível: 2. MatLab Resultado a) x=2;y=1;a=x~=0&&y>=1/x;disp(a); A = 1 b) x=2;y=1;k=x+y; B = 3. e-004 if k<0,b=1.e-4;else B=k*1.e-4;end,disp(B); c) x=2;n=3;for i=1:n, x=x+i;end,disp(x); x = 8 3. Em MatLab a instrução randint(30,1, [1,6]) simula o resultado de 30 lançamentos de um dado. Usando esta instrução escreva: a) um script em Matlab para contar o número de vezes que em 30 lançamentos de um dado sai um resultado ímpar; b) um script em Matlab para contar o número de vezes que em 30 lançamentos de um dado a soma dos resultados de 2 lançamentos consecutivos é superior a
80 Resposta possível: 3. MatLab a) X=randint(30,1,[1,6]);R=mod(X,2);disp(sum(R)); b) X=randint(30,1,[1,6]);c=0; for i=1:29,z(i)=x(i)+x(i+1); if z(i)>6,c=c+1;end, end,disp(c); 4. Escreva um algoritmo que determine o valor máximo e o valor mínimo de N números reais a introduzir. Resposta possível: Cabeçalho: Objectivo: Determinar o valor máximo e o valor mínimo de N números reais; V. Dados: N, inteiro, quantidade de números reais; X, real, números reais a introduzir; V. Resultado: Max, real, máximo a calcular; Min, real, mínimo a calcular; V. Aux: i, inteiro, contador de ciclo. Corpo: Leia (N); Leia(X); Max X; Min X; Para i 2 até N faça Leia(X); Se X > Max então Max X; Se X< Min então Min X; Escreva (Max,Min); 5. Considere o seguinte algoritmo que verifica se um número natural N dado é primo ou não: Cabeçalho: Corpo: Objectivo: Leia (N); R Verdadeiro; d 2; V.Dados: Enquanto R =Verdadeiro e d<n faça V. Resultado: se N mod d=0 então R Falso; V. Aux: d d+1; Escreva ( R ); a) Percorra o algoritmo para N=7. Quantas vezes executou o ciclo do enquanto? RESPOSTA: N R d R=Verdadeiro e N mod d=0 d<n 7 Verdadeiro 2 Verdadeiro Falso 3 Verdadeiro Falso 4 Verdadeiro Falso 5 Verdadeiro Falso 6 Verdadeiro Falso 7 Falso RESPOSTA: Percorreu o ciclo do enquanto 5 vezes. b) Preencha o cabeçalho do algoritmo
81 Resposta possível: Cabeçalho: Objectivo: Verificar se um número natural N é primo; V.Dados: N, inteiro, número natural a introduzir; V. Resultado: R, Booleana, toma o valor Verd se N é primo, toma o valor Falso se N não é primo; V. Aux: d, inteiro, divisores possíveis de N; c) Escreva uma função em Vb, Function primo (ByVal N As Integer ) As Boolean que permita determinar se um número inteiro é primo ou não. Resposta possível: Function primo(byval n As Integer) As Boolean Dim R As Boolean Dim d As Integer R = True d = 2 While R = True And d < n If n Mod d = 0 Then R = False End If d = d + 1 Wend primo = R End Function 6. A sequência de Collatz pode ser definida do modo seguinte: inicia-se com qualquer número natural n 0 maior do que 1; o número seguinte na sequência, n i+1, obtem-se do anterior adicionando 1 ao seu triplo se o anterior for ímpar ou dividindo-o por 2 se este for par. Repete-se o processo até se atingir o número 1. Por exemplo, iniciando a processo com o número 52, a sequência será: Escreveu-se em VB a seguinte função que calcula o elemento seguinte da sequência: Function Seguinte (ByVal N as Integer) as Integer Dim NS as Integer If N Mod 2 then NS=3*N+1 NS=N/2 Seguinte=NS End Function a) Esta function está errada. Altere ou acrescente instruções de modo que esta calcule o termo seguinte da sequência
82 Resposta possível a): Function seguinte(byval n As Integer) As Integer Dim NS As Integer If n Mod 2 < > 0 Then NS = 3 * n + 1 Else NS = n / 2 End If seguinte = NS End Function b) Escreva em VB um procedimento do tipo Sub, Sub Collatz( ), que leia um número inicial e escreva a sequência daí em diante até 1, considerando a chamada da função definida anteriormente. Resposta possível b): Sub collatz( ) Dim n As Integer Dim escrita As String n = Val(InputBox("Introduza o valor inicial n")) escrita = Str(n) While n > 1 n = seguinte(n) escrita = escrita + " " + Str(n) Wend MsgBox (escrita) End Sub
83 LABORATÓRIOS DE INFORMÁTICA - MIEA RESOLUÇÃO dos Exercícios 1 a 5 do TESTE de 7 de Fevereiro Escreva em VB ou MATLAB as seguintes instruções de atribuição, considerando todas as variáveis como escalares: c) +! &B [ ; ), 2.5 : ' +! ' ; C) q sen(x9 ); d) R~ ( R + 1/(1 + R)) ; Resposta possível: 1. VB Matlab a) A = x + y * Exp(Sqr(x)) A = x+y*exp(sqrt(x)); b) B= 2.5 * (x ^ 3 + y ^ 3) ^ (1 / 5) B= 2.5*(x^3+y^3)^(1/5); c) Pi = Atn(1) * 4 C = sin(pi*r^2); C = Sin(Pi * r ^ 2) d) D = x * Tan(t + 1 / (1 + t)) D = x*tan(t+1/(1+t)); 2. Escreva em VB ou MATLAB cada bloco de instruções e indique o resultado: a) 10;! 20; 0 +! 1/; N7C9+O (); b) c) d) 3;! ; L +!;7+ L 0 +RãM }L 10 > ; N7C9+O(L) ; 1; 3; b9 a 1 Ré Tç } a; N7C9+O (); M^ 0; 1; 3; N RM < Tç g M^ M^ + ; + 1; N7C9+O (M^); Resposta possível: 2. MatLab Resultado a) x=10;y=20; A=x~=0 && y>=1/x; disp (A); A=1 b) x=-3;y=abs(x); k=x+y; k=0 if k~= 0, k=1.e-4;end, disp(k); c) x=1;n=3; for i=1 : n, x=x*i; end, disp(x); x=6 d) Soma=0; x=1; n=3; while x<n, Soma=Soma+x^2;x=x+1; end, disp(soma); Soma=5-83 -
84 Resposta possível: 2. VB Resultado a) x=10 A=True y=20 A=x< >0 And y>=1/x Msgbox(A) b) x=-3 k=0 y=abs(x) k=x+y if k< >0 Then k=1.e-4 End if Msgbox (k) c) x=1 x=6 n=3 For i=1 To n x=x*i Next i Msgbox(x) d) Soma=0 x=1 n=3 While x<n Soma=Soma+x^2 x=x+1 Wend Msgbox(Soma) Soma=5 3. Considere que mensalmente o número médio de visitantes a um determinado museu varia entre 20 e 120. A instrução do MatLab A=20+100*rand (12,1); cria um vector com 12 componentes que, de acordo com o director do museu, permite simular o número médio mensal de visitantes nos 12 meses do ano de a) Considerando que o preço pago por cada visitante é de 5 euros, escreva um script em Matlab para calcular qual o valor anual arrecadado pelo museu com o pagamento das entradas (a instrução A=20+100*rand (12,1); deve ser utilizada). Resposta possível: A=20+100*rand(12,1); valor=5*sum(a); disp(valor); b)considerando que no início do ano (1 de Janeiro) o stock de postais na loja do museu é de 500 unidades e que cada visitante leva um postal, escreva um script em Matlab para calcular em que mês irão os postais esgotar? Resposta possível: A=20+100*rand(12,1); total=500;i=0; while total>0, i=i+1;total=total-a(i); end, disp(i);
85 c) No início do ano, o director do museu determinou que a próxima encomenda de postais seja feita quando o stock baixar para 50. Utilizando os dados fornecidos, escreva um script em Matlab para determinar para que mês se deve agendar essa encomenda? Resposta possível: A=20+100*rand (12,1);total=500;i=0; while total>50, i=i+1;total=total-a(i); end, disp(i); 4. a) Dado um conjunto de N números inteiros positivos, escreva um algoritmo que calcule quantos desses números são simultaneamente múltiplos de 5 e de 7. Exemplo: para N=6 e dado o conjunto = }2,70,42,35,14,5 o resultado é 2. Cabeçalho: Objectivo: Dado um conjunto de N números inteiros positivos, quantos desses inteiros são simultaneamente múltiplos de 5 e de 7. V.Dados: N, inteiro, dimensão do conjunto; X, inteiro, elementos do conjunto; V. Resultado: conta, inteiro, contador do nº de múltiplos de 5 e de 7; V. Aux: Corpo: Leia (N); conta 0; Para i 1 até N faça Leia(X); Se (X mod 5)=0 e (X mod 7)=0 então conta conta+1; Escreva ( conta ); a) Percorra o seu algoritmo para o exemplo indicado na alínea anterior. RESPOSTA: N conta i X (X mod 5)=0 e (X mod 7)= Falso 2 70 Verdadeiro Falso 4 35 Verdadeiro Falso 6 5 Falso b)escreva um procedimento em VB do tipo Sub, Sub conta_multiplos ( ),que leia um conjunto de números inteiros e calcule quantos desses números são ao mesmo tempo múltiplos de 5 e de
86 Resposta possível: Sub conta_multiplos ( ) Dim N, conta, i, X as integer N=Val(InputBox( N? )) conta=0 For i=1 To N X=Val(InputBox( Introduza X )) If X Mod 5 =0 And X Mod 7=0 Then conta=conta+1 End If Next i Msgbox(conta) End Sub 5. Considere a conjectura de Goldbach, para os números pares: "Todo o número par maior ou igual a 4 é a soma de dois números primos." Exemplos: 8 = 3 + 5; Escreva um procedimento em VB do tipo Sub, Sub Goldbach ( ), que leia um número natural par maior ou igual a 4 e escreva os 2 números primos que verificam a conjectura de Goldbach. O procedimento desenvolvido deve considerar a chamada da função Function verifica (ByVal N As Integer ) As Boolean definida abaixo que verifica se um número inteiro maior do que 1, é primo ou não (não tem que reescrever a função). Resposta possível: Sub Goldbach( ) Dim n, i As Integer Dim gold As Boolean gold = False n = Val(InputBox("Introduza o valor n>=4")) i = 1 While i <= n \ 2 And gold = False i = i + 1 gold = verifica(i) And verifica(n - i) Wend MsgBox ("O número par " & n & ">= 4 é a soma dos primos " & i & " e " & n - i) End Sub
Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA
Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015 Visual Basic VBA Macros Funções Conjunto de instruções que são executadas sempre que se desejar e pela ordem apresentada As funções são
Formador: Carlos Maia
Formador: Carlos Maia Iniciar o MS Excel MS Excel - Introdução 1 Ajuda Se ainda não estiver visível a ajuda do Excel do lado direito do ecrã, basta clicar sobre Ajuda do Microsoft Excel no menu Ajuda,
1. Criar uma nova apresentação
MANUAL DO Baixa da Banheira, 2006 1. Criar uma nova apresentação Para iniciar uma sessão de trabalho no PowerPoint é necessário criar uma nova apresentação para depois trabalhar a mesma. Ao iniciar uma
Alguns truques do Excel. 1- Títulos com inclinação. 2- Preencha automaticamente células em branco
Alguns truques do Excel 1- Títulos com inclinação No Excel é possível colocar o conteúdo das células na vertical. Para além disto, pode-se escolher o grau de inclinação. Para isto, seleccione as células
Microsoft Excel Macro V. Índice 16-) Formulários... 42 17-) Gerando código para o Formulário... 49
Microsoft Excel Macro V Índice 16-) Formulários... 42 17-) Gerando código para o Formulário... 49 16-) Formulários A forma mais comum de comunicação de um sistema com o usuário é por meio de caixas de
Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;
FICHA OBJECTIVO Construir Construir formulários na base de dados Diplomas em Diário da República Um formulário é utilizado, em primeiro lugar, para introduzir, eliminar ou apresentar dados numa base de
Facturação Guia do Utilizador
Facturação Guia do Utilizador Facturação Como se utiliza 2 1 Como se utiliza Todas as opções do sistema estão acessíveis através do menu: ou do menu: O Menu caracteriza-se pelas seguintes funcionalidades:
Folha de Cálculo Introdução à Folha de Cálculo
Introdução à Folha de Cálculo O Excel é uma folha de cálculo capaz de guardar dados, executar cálculos e gerar gráficos. Introdução à Folha de Cálculo Uma folha de cálculo, por exemplo o Excel, permite
Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel
Avançado Trabalhando com VBA Descubra a linguagem de programação do Microsoft Office e torne-se um expert no desenvolvimento de funções, macros e planilhas eletrônicas Nas edições anteriores da revista
GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)
GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1) MICROSOFT OUTLOOK 2003 - OBJECTIVOS OBJECTIVOS: Enumerar as principais funcionalidades do Outlook; Demonstrar a utilização das ferramentas do correio electrónico;
Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc
DOSPrinter Manual do Utilizador Alteração do POC (Decreto de Lei nº. 35/2005) no sispoc Data última versão: 20.03.2006 Versão : 1.1 Data criação: 01.03.2006 Faro R. Dr. José Filipe Alvares, 31 8005-220
Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP. http://eweb.ipportalegre.pt. ged@ipportalegre.
Manual de Utilizador Caderno Recursos da Unidade Curricular Gabinete de Ensino à Distância do IPP http://eweb.ipportalegre.pt [email protected] Índice RECURSOS... 1 ADICIONAR E CONFIGURAR RECURSOS...
Manual do Utilizador. Manual do Utilizador Modelo10 no sisgep. Data última versão: 16.02.2007 Versão : 1.2. Data criação: 26.02.
Manual do Utilizador Modelo10 no sisgep Manual do Utilizador Modelo10 no sisgep Data última versão: 16.02.2007 Versão : 1.2 Data criação: 26.02.2004 Faro R. Dr. José Filipe Alvares, 31 8005-220 FARO Telf.
Boot Camp Manual de Instalação e Configuração
Boot Camp Manual de Instalação e Configuração Conteúdo 3 Introdução 3 Do que necessita 4 Descrição geral da instalação 4 Passo 1: Procurar actualizações 4 Passo 2: Preparar o computador Mac para o Windows
8. Perguntas e Respostas
Arquimedes Manual do Utilizador 185 8. Perguntas e Respostas 8.1. Aparência Para conservar a disposição na qual estão expostas as B.D. no ecrã e para que em posteriores sessões de trabalho tenham a mesma
Catálogo Nacional de Compras Públicas. Manual de Fornecedores
10 de Julho de 2009 Índice 1. Introdução... 3 1.1. Objectivo... 3 2. Fornecedor... 4 2.1. AQs/CPAs... 4 2.2. Contratos... 4 2.3. Grupos AQ/CPA... 5 3. Carregamento e Actualização do Catálogo... 7 3.1.
Validação e Proteção de dados no Excel
Validação e Proteção de dados no Excel 1 2 Introdução O Excel tem um conjunto de ferramentas que permitem a restrição do erro e a proteção dos trabalhos e ficheiros. A validação de dados pode ser configurada
MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira
MICROSOFT ACCESS MICROSOFT ACCESS Professor Rafael Vieira Professor Rafael Vieira - Access - Programa de base de dados relacional funciona em Windows Elementos de uma Base de Dados: Tabelas Consultas Formulários
Manipulação de Células, linhas e Colunas
Manipulação de Células, linhas e Colunas Seleccionar células Uma vez introduzidos os dados numa folha de cálculo, podemos querer efectuar alterações em relação a esses dados, como, por exemplo: apagar,
Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade
Base de dados I O que é? Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade Para que serve? Serve para gerir vastos conjuntos de informação de
Acessos Convergentes. Manual de Configuração e Utilização
Índice 1 Introdução... 4 1.1 Âmbito do Documento... 4 1.2 Acesso... 5 1.3 Autenticação... 5 2 Cliente... 6 2.1 Reencaminhamentos ou redireccionamentos... 6 2.1.1 Novo Plano de Redireccionamento... Error!
FICHA ORIENTADA Nº1. Barra de fórmulas. Área de trabalho T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O
T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O FICHA ORIENTADA Nº1 INTRODUÇÃO À FOLHA DE CÁLCULO CRIAÇÃO DE UMA FOLHA DE CÁLCULO O Microsoft Excel é um programa que faz parte das
Para ver alguma coisa acontecer talvez seja preciso, primeiro, apagar o conteúdo da célula B2.
Macros - Introdução 1 - Gravar uma macro 1. Seleccione Tools Macros Record New Macro... para gravar uma macro. Aceite o nome proposto Macro1. Realize as seguintes acções enquanto está a gravar: - activar
Microsoft Excel. O que é? Para que serve? É um poderoso programa de folha de cálculo.
O que é? É um poderoso programa de folha de cálculo. Para que serve? Serve para facilitar a gestão de vastos conjuntos de informação que involvam principalmente o cálculo de dependências entre os dados
Como produzir e publicar uma apresentação online dinâmica (Prezi)
Como produzir e publicar uma apresentação online dinâmica (Prezi) Este módulo irá ensinar-lhe como produzir e publicar uma apresentação online dinâmica usando o programa Prezi. A produção de uma apresentação
UNIDADE 2: Sistema Operativo em Ambiente Gráfico
UNIDADE 2: Sistema Operativo em Ambiente Gráfico Ambiente de trabalho Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e comunique
TUTORIAL PARA PREPARAÇÃO E IMPORTAÇÃO DE DADOS PARA. Os dados de suas coletas devem ser organizados em uma planilha eletrônica, de modo
TUTORIAL PARA PREPARAÇÃO E IMPORTAÇÃO DE DADOS PARA ESTIMATIVAS DE RIQUEZA DE ESPÉCIES Softwares utilizados: Excel, EstimateS e Statistica. Preparação dos dados Os dados de suas coletas devem ser organizados
Tabelas vista de estrutura
Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista
Estatística no EXCEL
Estatística no EXCEL Prof. Ms. Osorio Moreira Couto Junior 1. Ferramentas... 2 2. Planilha de dados... 3 2.1. Introdução... 3 2.2. Formatação de células... 4 2.3. Inserir ou Excluir Linhas e Colunas...
1. Verificar se a Microsoft.NET Framework 2.0 está instalada. Se não estiver, efectuar o download a partir do link e instalar:
SigmaDoc INSTALAÇÃO/ACTUALIZAÇÃO Para efectuar a actualização, proceder do seguinte modo: 1. Verificar se a Microsoft.NET Framework 2.0 está instalada. Se não estiver, efectuar o download a partir do link
Capítulo 2. VARIÁVEIS DO TIPO INTEIRO
Capítulo 2. VARIÁVEIS DO TIPO INTEIRO OBJETIVOS DO CAPÍTULO Conceitos de: variáveis do tipo inteiro, atribuição, avisos e erros de compilação, erros de execução, comentários dentro do programa-fonte Operadores
Introdução aos Sistemas Informáticos
I 1. Veja o conteúdo do disco rígido abrindo O meu computador, mude de vistas e comente. 2. Se lhe for possível, mude a hora e a data do sistema através do Painel de Controlo para a meia noite do dia 1
MICROSOFT POWERPOINT
MICROSOFT POWERPOINT CRIAÇÃO DE APRESENTAÇÕES. O QUE É O POWERPOINT? O Microsoft PowerPoint é uma aplicação que permite a criação de slides de ecrã, com cores, imagens, e objectos de outras aplicações,
Manual para criar actividades com o Jclic. Versão 1.0. Manual de Luís Vives Traduzido e adaptado por. Milena Jorge
Versão 1.0 Manual de Luís Vives Traduzido e adaptado por [email protected] 1 PROJECTO N.º 2 Criação de uma sopa de letras com conteúdo associado........ 4 Actividade proposta n.º
BARRA DE PROGRESSO EM VBA
BARRA DE PROGRESSO EM VBA Quando elaboramos uma programação em VBA e não sabemos o tempo de execução podemos utilizar uma alternativa para a visualização do progresso da tarefa, uma barra de progressão
Gestor de Janelas Gnome
6 3 5 Gestor de Janelas Gnome Nesta secção será explicado o funcionamento de um dos ambientes gráficos disponíveis no seu Linux Caixa Mágica, o Gnome. Na figura 5.1 apresentamos o GDM, o sistema gráfico
Oficina de Construção de Páginas Web
COMPETÊNCIAS BÁSICAS EM TIC NAS EB1 Oficina de Construção de Páginas Web Criação e Publicação Guião Páginas WWW com o editor do Microsoft Office Word 2003 1. Introdução. 2. Abrir uma página Web. 3. Guardar
Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)
Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) http://curriculum.degois.pt Março de 2012 Versão 1.5 1 Introdução O objectivo deste guia é auxiliar o utilizador
Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL
OBJECTIVOS Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL O objecto DOCMD Este objecto permite o acesso a todas as operações sobre todos os objectos
Trabalho de laboratório Avaliação semestral Exame final MÉDIA PONDERADA CONCEITO
Exercícios de Seletores (estrutura condicional) Exercício 1. [ASCENCIO] A nota final de um estudante é calculada a partir de três notas atribuídas, respectivamente, a um trabalho de laboratório, a uma
Aula 01 Conceitos Iniciais sobre Excel 2010
Aula 01 Conceitos Iniciais sobre Excel 2010 Professor: Bruno Gomes Disciplina: Informática Básica Curso: Gestão de Turismo Sumário da aula: 1. Abrindo o Excel; 2. Conhecendo a Tela do Excel. 3. Inserindo
A p o s t i l a M i c r o s o f t A c c e s s 97
A p o s t i l a M i c r o s o f t A c c e s s 97 Índice a) Access 97 b) Iniciando o Access c) Passo- a- passo d) Tabelas e) Exercício f) Consultas g) Passo- a- passo h) Formulários i) Passo- a- passo j)
Akropole Catequista. Todos os Ficheiros no Akropole Catequista trabalham com uma simples barra de edição, com 4 botões:
Akropole Catequista O Akropole Catequista em três tempos... Este texto é um pequeno manual de introdução ao Akropole Catequista. Umas das características deste programa é o facto deste não necessitar de
MANUAL DE UTILIZAÇÃO DO E-MAIL 12-2008 EQUIPA TIC
MANUAL DE UTILIZAÇÃO DO E-MAIL 12-2008 EQUIPA TIC OPÇÕES DE ACESSO Passo 1 Abrir o browser (Internet Explorer, Firefox ou outro) e escrever na barra de endereços mail.esmcastilho.pt ou email.esmcastilho.pt.
Aplicações de Escritório Electrónico
Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho
Usando o do-file editor Automatizando o Stata
Usando o do-file editor Automatizando o Stata 1 O QUE É O EDITOR DE DO-FILE O Stata vem com um editor de texto integrado, o do-file editor (editor de do-files, em português), que pode ser usado para executar
PAINEL DE ADMINISTRADOR
PAINEL DE ADMINISTRADOR IMPORTANTE: O Painel de administrador APENAS deverá ser utilizado pelo responsável do sistema. são: Nesta aplicação, poderá configurar todo o sistema de facturação. As opções do
MATERIAL DE APRESENTAÇÃO DO SCRATCH
MATERIAL DE APRESENTAÇÃO DO SCRATCH 1 Scratch é uma nova linguagem de programação que permite a criação de histórias, animações, jogos e outras produções. Tudo pode ser feito a partir de comandos prontos
PRINCÍPIOS DE INFORMÁTICA PRÁTICA 07 1. OBJETIVO 2. BASE TEÓRICA. 2.1 Definição de Planilha Eletrônica
PRINCÍPIOS DE INFORMÁTICA PRÁTICA 07 1. OBJETIVO Apresentar a planilha eletrônica MS-Excel e algumas de suas operações básicas, incluindo inserção de fórmulas, utilização de funções da planilha e a criação
LASERTECK SOFTECK FC MANUAL DO USUÁRIO
LASERTECK SOFTECK FC MANUAL DO USUÁRIO 2015 SUMÁRIO 1 INTRODUÇÃO... 3 2 REQUISITOS DO SISTEMA... 3 3 INSTALAÇÃO... 3 4 O QUE MUDOU... 3 5 COMO COMEÇAR... 4 6 FORMULÁRIOS DE CADASTRO... 5 7 CADASTRO DE
Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery
Sistemas Operacionais Curso Técnico Integrado Profa: Michelle Nery Conteúdo Programático CONTAS DE E GRUPOS DE O Microsoft Management Console - MMC Permissões de Segurança de um Console Contas de Usuários
4 Criação de macros e introdução à linguagem VBA
4 Criação de macros e introdução à linguagem VBA Vinicius A. de Souza [email protected] São José dos Campos, 2011. 1 Sumário Tópicos em Microsoft Excel 2007 Introdução à criação de macros...3 Gravação
Neste tópico, você aprenderá a criar facilmente um banco de dados para uma nova empresa e a definir configurações comuns de uma empresa no SAP
Neste tópico, você aprenderá a criar facilmente um banco de dados para uma nova empresa e a definir configurações comuns de uma empresa no SAP Business One, em apenas uma etapa usando um assistente guiado.
DotNetNuke. Gestão de Conteúdos. Módulos - II. Inserção de conteúdos nos módulos. Módulo de Text/HTML. Módulo de Sre-Notícias. Módulo de Sre-Formação
Gestão de Conteúdos DotNetNuke Módulos - II Inserção de conteúdos nos módulos Módulo de Text/HTML Módulo de Sre-Notícias Módulo de Sre-Formação Conteúdos dos módulos Na lição: Módulos-I já foi dito que
Manual de Recibos. Manual de Recibos
Manual de Recibos As aplicações XD dispõe de um módulo de controlo de Contas Correntes de Clientes que tem sido evoluído de forma a satisfazer as diversas necessidades dos seus clientes. As Contas Correntes
Boot Camp Manual de Instalação e Configuração
Boot Camp Manual de Instalação e Configuração Índice 3 Introdução 4 Descrição geral da instalação 4 Passo 1: Verificar se existem actualizações 4 Passo 2: Preparar o computador Mac para o Windows 4 Passo
Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?
Índice Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação? Como efectuar uma operação de confirmação de estimativas? Como aceder ao Serviço de Certificação
Guia rápido de criação e gestão de um espaço no SAPO Campus
Guia rápido de criação e gestão de um espaço no SAPO Campus O SAPO Campus é uma plataforma online, disponível em http://campus.sapo.pt, que permite a comunicação e a colaboração entre membros de uma Instituição
Arquimedes e Controle de Obra
1 1. Arquimedes Servidor. Trabalho em modo multi-utilizador (Novo módulo) 1.1. Servidor de bases de dados do Arquimedes 1.1.1. Bases de dados remotas e locais 1.1.2. Configuração da acessibilidade às bases
Conectar diferentes pesquisas na internet por um menu
Conectar diferentes pesquisas na internet por um menu Pré requisitos: Elaboração de questionário Formulário multimídia Publicação na internet Uso de senhas na Web Visualização condicionada ao perfil A
Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel
Tarefa 18: Criar Tabelas Dinâmicas a partir de 1. Alguns conceitos sobre Tabelas Dinâmicas Com tabelas dinâmicas podemos criar dinâmica e imediatamente resumos de uma lista Excel ou de uma base de dados
Visão Artificial Para a Indústria. Manual do Utilizador
Visão Artificial Para a Indústria Manual do Utilizador Luis Fonseca Carvalho de Matos ( [email protected] ) Julho de 2007 Índice de conteúdos 1. Apresentação......1 1.Conceito de Funcionamento......1 2.
Gestor de ligações Manual do Utilizador
Gestor de ligações Manual do Utilizador 1.0ª Edição PT 2010 Nokia. Todos os direitos reservados. Nokia, Nokia Connecting People e o logótipo Nokia Original Accessories são marcas comerciais ou marcas registadas
O QUE É A CENTRAL DE JOGOS?
O QUE É A CENTRAL? A Central de Jogos consiste de duas partes: Um site na Internet e um programa de computador (Central) que deve ser instalado em sua máquina. No site www.centraldejogos.com.br, você pode
COMO PROGRAMAR SEU TIME
COMO PROGRAMAR SEU TIME 1) INSTALAÇÃO: Instale o simulador da categoria SIMUROSOT da FIRA. O simulador é gratuito e está disponível para download no site da FIRA (www.fira.net) ou no site da competição
Laboratório de Programação I
Laboratório de Programação I Estruturas de Controle: Parte I Fabricio Breve Objetivos Entender as técnicas básicas de solução de problemas Desenvolver algoritmos por meio do processo de refinamento top-down
Como enviar e receber correio eletrónico utilizando o Gmail
Como enviar e receber correio eletrónico utilizando o Gmail Este módulo pressupõe que que já tenha criado uma conta de correio eletrónico no Gmail (caso já não se recorde como deve fazer, consulte o nosso
Associação Educacional Dom Bosco Curso de Engenharia 1º ano
Formatação condicional utilizando o valor da célula O que é? Algumas vezes é preciso destacar os valores, ou seja, como colocar em vermelho ou entre parênteses, os negativos, e de outra cor os positivos,
Manual do Utilizador. Janeiro de 2012.
Janeiro de 2012. Índice 1. Introdução 2 Geral 2 Específico 2 Configurável 2 2. Acesso ao adapro 3 3. Descrição 4 Descrição Geral. 4 Funcionalidades específicas de um processador de textos. 5 Documento
Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br [email protected]
Manual do Gestor da Informação do Sistema
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga
Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?
Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade
2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)
Escola Básica e Secundária de Velas Linhas de Exploração do Quadro de da Disciplina de Tecnologias de Informação e Comunicação (TIC) Oferta de Escola 2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º
Bem-vindo ao nosso mundo virtual! Guia do Portal de Ensino à Distância da Get Training 1
Após uma experiência formativa de mais de 20 anos em formação presencial, e tendo sempre como princípios a inovação e a satisfação do cliente, é com grande satisfação que a Get Training implementa este
Mas para iniciar o uso do CRM é necessário efetuar algumas configurações em primeiro lugar.
Menu CRM O KeyInvoice tem um CRM que lhe permite efetuar, no seu programa de faturação, uma gestão de contatos, podendo converter os mesmos em Oportunidades ou Orçamentos. Este menu inclui ainda uma agenda
INTRODUÇÃO À LINGUAGEM C++
INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem
Licenciatura em Eng.ª Informática Redes de Computadores - 2º Ano - 2º Semestre. Trabalho Nº 1 - Ethereal
1. Objectivos do Trabalho Trabalho Nº 1 - Ethereal Tomar conhecimento com um analisador de pacotes o Ethereal Realizar capturas de pacotes e analisá-los o TCP / UDP o IP o Ethernet o HTTP / DNS 2. Ambiente
Sumário. 1. Propósito 1 2. Tabela de Ferragem 1 3. Criar Tabela de Ferragem 1 4. Conector de Ferragens 7
Ferragens Sumário 1. Propósito 1 2. Tabela de Ferragem 1 3. Criar Tabela de Ferragem 1 4. Conector de Ferragens 7 1. Propósito Para definirmos todos os materiais que devem compor uma estrutura de ferragem,
1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.
Objectivos: Identificar os elementos do Ambiente de trabalho do Microsoft FrontPage Criar um website Fechar um website Abrir um website Modos de visualização de um website Criar, eliminar, abrir e fechar
CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário
CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:
Tutorial :: Introdução ao VHDL em ambiente Design Works
Tutorial :: Introdução ao VHDL em ambiente Design Works Objectivos Familiarização com a linguagem VHDL Familiarização com a construção de modelos em VHDL utilizando o software DesignWorks. Trabalho a realizar
JavaScript (ou JScript)
1. Introdução JavaScript (ou JScript) Uma linguagem como o JavaScript permite criar interfaces interativas na web (permite a interação do usuário). Para desenvolver web sites interativos precisamos de
Primeiros passos das Planilhas de Obra v2.6
Primeiros passos das Planilhas de Obra v2.6 Instalação, configuração e primeiros passos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Preparar inicialização das
Manual do Teclado de Satisfação Online WebOpinião
Manual do Teclado de Satisfação Online WebOpinião Versão 1.2.3 27 de novembro de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação
APOSTILA ZELIO SOFT 2
APOSTILA ZELIO SOFT 2 Prof. Maycon Max Kopelvski Fev/2010 rev.01 Página 1 de 20 1) Clique no ícone para abrir o programa Zelio Soft 2 2) Abrirá a tela inicial do Programa: Clique em Criar um novo programa.
Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos
Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando
MANUAL DA SECRETARIA
MANUAL DA SECRETARIA Conteúdo Tela de acesso... 2 Liberação de acesso ao sistema... 3 Funcionários... 3 Secretaria... 5 Tutores... 7 Autores... 8 Configuração dos cursos da Instituição de Ensino... 9 Novo
E x c e l 5 M a c r o s e V B A
E x c e l 5 M a c r o s e V B A Pretende-se contabilizar os custos com pessoal relativos ao trabalho semanal da empresa Parte Pedra, SA. 1. Inicie o Microsoft Excel. 2. Abra o ficheiro de trabalho Excel_5a.xls.
Passo 3: No diagrama de blocos com o menu de funções aberto (Figura anterior), abra a função express Signal Analysis e escolha Simulate signal.
TUTORIAL INTRODUÇÃO AO LABVIEW 8.2 Passo 1: Inicie o Labview. Você verá esta tela: Passo 2: Selecione blank VI (VI é a sigla de VIRTUAL INSTRUMENT). Fazendo isso você terá acesso a área de trabalho, a
Visual Basic for Applications: # 1
Visual Basic for Applications Introdução É uma linguagem de programação baseada na conhecida linguagem BASIC Está concebida para funcionar em conjunto com diferentes aplicações, de forma a potenciar a
Lição 1 - Criação de campos calculados em consultas
1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas
Informática básica Telecentro/Infocentro Acessa-SP
Informática básica Telecentro/Infocentro Acessa-SP Aula de hoje: Verificando data e hora, desligando o computador, janelas, copiar colar, excluindo um arquivo. Prof: Lucas Aureo Guidastre Verificando data
APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo)
APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo) 1 Índice Aula 1...3 Introdução... 3 Formatações de tabela... 4 Função HOJE... 6 Função SE... 6 Exercícios... 7 Exercício de Fixação...
Manipulando Strings no VBA (Replace, Mid e InStr)
Manipulando Strings no VBA (Replace, Mid e InStr) por Eduardo Vieira Machado (Good Guy) Hoje gostaria de tratar de um assunto bastante atraente no Access e que é muito trabalhado nas empresas - a manipulação
Aula 4 Estatística Conceitos básicos
Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a
Cópia de Segurança e Recuperação Manual do utilizador
Cópia de Segurança e Recuperação Manual do utilizador Copyright 2009 Hewlett-Packard Development Company, L.P. Windows é uma marca comercial registada nos EUA da Microsoft Corporation. As informações aqui
Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores. Projecto de. Arquitectura de Computadores.
Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores Projecto de Arquitectura de Computadores Jogo dos Blocos (variante do Arkanoid) (Versão 1.0) 2008/2009 Índice 1 Objectivo...
