Christopher Freire Souza Tópicos Preliminares
Programa Tópicos Preliminares Tipos Primitivos Comando de Atribuição Variáveis Estáticas (Constantes) Variáveis Dinâmicas Expressões Aritméticas Expressões Relacionais Expressões Literais Comandos de Entrada, Saída e Ajuda Blocos (Scripts)
Tipos de Informação (Tipos Primitivos) São os tipos básicos de informação usados para armazenar os dados utilizados pelo programa computacional. Inteiro – Informação numérica que pertença ao conjunto dos números inteiros relativos (negativa, nula ou positiva) Real – Informação numérica que pertença ao conjunto dos números reais (negativa, nula ou positiva) Caracter – Informação composta por um conjunto de caracteres alfanuméricos: numéricos (0...9), alfabéticos (A...Z, a...z) e especiais (por exemplo. #, ?, @, &) Lógico – informação que pode assumir apenas duas situações (verdadeiro ou falso), (aceso ou apagado), (aberto ou fechado)
Comando de Atribuição Um comando de atribuição nos permite fornecer um valor a uma variável, em que o tipo de informação deve ser compatível com o tipo de variável. A uma variável, associa-se um nome serve como referência ao dado armazenado O conteúdo de uma variável pode ser numérico (inteiro e real), caractere, lógico, e outros
Variáveis Na maioria das linguagens de programação, as variáveis precisam ser explicitamente declaradas. Na declaração de uma variável. O seu tipo e seu nome devem ser obrigatoriamente especificados. Reserva-se um espaço na memória para armazenar um dado tipo de informação e associa-se o nome da variável a este espaço Exemplo – Declaração de variáveis inteiro: a; real: x; caracter: s; logico: l; a = 5; x = 8.34; s = ‘c’; l = VERDADEIRO; Exemplo - Declaração de variáveis real: x; caracter: s; logico: l; x = 8.34; s = ‘c’; l = VERDADEIRO; x = ‘Clayton’ s = FALSO
Variáveis Deve-se observar que na linguagem MATLAB: Não é necessário declarar previamente as variáveis A declaração de variáveis é feita implicitamente quando a variável está sendo usada pela primeira vez no programa computacional. Não existe uma ≠ entre números inteiros e reais tratados de uma mesma forma: variáveis numéricas Exemplo – Variáveis no MATLAB a = 5; % variável numérica b = 8.35; % variável numérica s = ‘c’; % caractere l = 1; % variável lógica v = ‘casa’; % seqüência de caracteres (string)
Variáveis As seguintes regras básicas devem ser atendidas no uso de variáveis no MATLAB. Palavra única (sem espaços); Maiúscula Minúscula; Tamanho máximo = 31 caracteres; Nome deve ser iniciado com letra; Palavras-chaves (reservadas da linguagem) não podem ser usadas. Exemplo – Número como Caractere >> A = ‘1’; % caractere >> B = 1; % valor numérico 1 % A e B são diferentes >> function = 10;
Tipos de Variáveis Variáveis Estáticas (Constantes) Variáveis Dinâmicas
Variáveis Estáticas (Constantes) Não sofrem alterações no decorrer do tempo seu valor é o mesmo do início ao final da execução do programa Uma constante pode ser número valor lógico seqüência de caracteres quaisquer com algum significado para o problema em estudo. Numérica, lógica ou literal Pi = 3.1415926535897....
Constante Numérica Sistema decimal número com parte fracionária ou não.
Constante Lógica É um valor lógico Usado em proposições lógicas verdadeiro ou falso Usado em proposições lógicas será visto mais adiante
Constante Literal Pode ser qualquer seqüência de caracteres com algum significado para o problema Letras, dígitos, símbolos especiais Ex.: ‘Seu nome’ ‘12345678’ ‘@A%b*’ ‘05/03/2009’
Variáveis Dinâmicas Uma variável é classificada como dinâmica quando tem a possibilidade de ser alterada em algum instante no decorrer da execução do algoritmo em que é utilizado
Operações entre variáveis Operações aritméticas Operações relacionais Operações lógicas
Operadores Aritméticos Conjunto de símbolos que representam as operações básicas da matemática. Os tipos básicos usados no MATLAB são: Além destes, existem outros importantes operadores que podem ser usados na elaboração de programas computacionais. Soma + Subtração - Multiplicação * Divisão / Potenciação ^ Resto de divisão mod(x,y) Radiciação sqrt(x)
Observação 01: Não é permitido omitir o operador de multiplicação Ex.: AB+C AB é o nome de uma variável? ou é a multiplicação entre os conteúdos de duas variáveis? Observação 02: Por uma questão de uniformidade, na elaboração de algoritmos, não é permitido o uso de outros símbolos para as operações acima, a exemplo de “” e “÷” para multiplicação e divisão, respectivamente.
Prioridades dos Operadores Aritméticos Existe uma ordem que define a precedência (hierarquia) entre os operadores aritméticos, como pode ser visto na tabela abaixo: Parênteses mais internos ^, sqrt *, /, mod +, - Exemplo: 5 + 9 + 7 + 8/4 5 + 9 + 7 + 2 23 Exemplo: 1 + 5 + (2 + 3) * 4 1 + 5 + 5 * 4 1 + 5 + 20 26
Operadores Relacionais Os operadores relacionais são usados para comparar valores de variáveis do mesmo tipo. O resultado produzido por um operador relacional é um (1) ou zero (0). No MATLAB, não existe explicitamente o operador lógico VERDADEIRO ou FALSO. Se o resultado de uma comparação for falso, produz o valor zero. Caso contrário, produz o valor um.
Operadores Relacionais Os operadores relacionais do MATLAB são: < Menor que <= Menor ou igual a > Maior que >= Maior ou igual a == Igual a ~= Diferente de Cuidado!
Operadores e Expressões Relacionais Exemplos: As expressões relacionais são aquelas cujos operadores são relacionais e cujos operandos são relações, variáveis ou constantes do tipo lógico. Exemplo: >> vf = (4*5+3) + 4 == 20/4 + 15; >> vf vf = 0 Exemplo: 2 * 4 == 24 / 3 8 == 8 1 Exemplo: A = 3; B = 2; (A + B) > 3 Expressão Relacional
Operadores Lógicos A Álgebra das Proposições define três conectivos usados na formação de novas proposições a partir de outras já conhecidas. Estes conectivos são os operadores lógicos utilizados na formação de proposições lógicas compostas. No MATLAB, tais operadores são representados pelos seguintes comandos: & e Conjunção | ou Disjunção ~ não Negação
Operadores Lógicos A conjunção (&) de duas proposições é verdadeira se e somente se ambas as proposições são verdadeiras. A disjunção (|) de duas proposições é verdadeira se e somente se, pelo menos uma delas for verdadeira. Dada uma proposição p qualquer, uma outra proposição, chamada negação (~) de p, pode ser formada escrevendo-se “É falso que” antes de p ou, se possível, inserindo a palavra “não” em p.
Tabelas-Verdade Negação ~ Conjunção & Disjunção Não-Exclusiva | A Não A Falso Verdadeiro A B A & B F V A B A ou B F V
Expressões Lógicas É possível ter mais de um operador lógico na mesma expressão. Em alguns casos, conforme os valores envolvidos, a ordem em que são efetuadas as operações lógicas afeta o resultado final. Assim, igualmente ao que acontece nas expressões aritméticas, também existe uma relação de prioridade entre os operadores lógicos. Cuidado: Prioridade maior que soma, subtração, multiplicação, divisão, resto e operações relacionais Teste: ~2^0 Parênteses mais internos ~ & |
Expressões Lógicas As expressões lógicas são aquelas cujos operadores são lógicos ou relacionais e cujos operandos são relações, variáveis ou constantes do tipo lógico. Exemplo: 2 < 5 & 15/3 == 5 v & v v 2 < 5 | 15/3 == 5 v | v 2 < 5 | (~(15/3==5)) v | (~v) v | f
Qual a diferença entre? Operações Aritméticos Operações Relacionais Operações Lógicas
Substituição via Comando de Atribuição Um comando de atribuição pode apagar um valor de uma variável e substituí-lo por um novo, quando uma mesma referência (nome) da variável é aplicada antes e após o igual. Para evitar perder informação quando da troca de valores de duas variáveis, uma terceira variável se faz necessária. Exemplo – Substituição de variáveis b=3; b=b+4; Exemplo – Troca de informação entre variáveis a=2; b=3; aux=a; a=b; b=aux;
Comandos de Entrada, Saída e Ajuda Os algoritmos podem ser “alimentados” com dados para realizar operações e cálculos necessários para alcançar o seu objetivo. Ao final do algoritmo, o resultado deve ser informado ao usuário. É possível, também, obter ajuda sobre a função de um algoritmo, apresentando um cabeçalho que explique o objetivo do algoritmo antes do algoritmo em si. Exemplo: % Este programa soma dois números fornecidos pelo usuário V1 = input(‘Entre com o primeiro valor: ’); V2 = input(‘Entre com o segundo valor: ’); V = V1+V2; fprintf(‘A soma é: ’); disp(V);
Comando de Saída ‘fprintf’ O comando ‘fprintf’, diferentemente do comando ‘disp’ possibilita mostrar texto e dados na tela possibilita imprimir dados em um arquivo Possibilita formatar a saída dos dados A utilização do comando ‘fprintf’ para mostrar texto tem a seguinte forma: fprintf (‘texto’)
Comando de Saída ‘fprintf’ O comando ‘fprintf’ não inicia uma nova linha. Outros comandos podem ser utilizados no comando ‘fprintf’: \n começa uma nova linha; \b Backspace; \t tabulação horizontal
Comando de Saída ‘fprintf’ A utilização do comando ‘fprintf’ pode ser feita para mostrar uma mistura de texto e dados numéricos. Isso acontece, por ex., da seguinte forma: fprintf(‘texto % 5.2f texto adicional’, nome da variável); onde o símbolo ‘%’ marca onde o número entra no texto; ‘5.2f’ é a formatação da variável Tipo de dado (valor da variável – número real) Espaço reservado para variável (5 casas) Espaço reservado para casas decimais (2 casas)
Comando de Saída ‘fprintf’ Outras opções de formato de dados são: e: notação exponencial com letra minúscula E: notação exponencial com letra maiúscula f: notação com ponto fixo i: inteiro s: caractere Exemplo: % Este programa soma dois números fornecidos pelo usuário P1 = input(‘Entre com a nota da prova escrita: ’); P2 = input(‘Entre com a nota da prova prática: ’); AB = (P1+P2)/2; fprintf(‘\nR: média = %6.2f\n’, AB);
Comando de Saída ‘fprintf’ O comando ‘fprintf’ permite inserir mais de uma variável dentro do texto: fprintf(‘texto %...%...’, variável1,variável2); Exemplo: % Este programa soma dois números fornecidos pelo usuário P1 = input(‘Entre com a nota da prova escrita: ’); P2 = input(‘Entre com a nota da prova prática: ’); AB = (P1+P2)/2; fprintf(‘\n Prova escrita: %5.2f \n Prova prática: %5.2f \n média = %6.2f\n’, P1, P2, AB);
Scripts Seqüencia de comandos descritos no M-Editor Acesso direto a variáveis no Workspace Comandos-chave quando da execução de scripts: clear clc Scripts podem ter dentre suas ações a execução de outros scripts
Scripts Exemplo: Calcular a média aritmética de quatro notas semestrais quaisquer fornecidas por um aluno. N1 = input(‘Entre com a nota 1: ’); N2 = input(‘Entre com a nota 2: ’); N3 = input(‘Entre com a nota 3: ’); N4 = input(‘Entre com a nota 4: ’); MA = (N1+N2+N3+N4)/4; disp(‘A media e: ’); disp(MA); Neste exemplo, deve-se observar que o fluxo de execução é de cima para baixo.
Exercício 1 – Calcular a média aritmética de duas notas bimestrais quaisquer fornecidas por um aluno. 2 – Refaça o programa, supondo que cada nota é composta por duas provas (uma escrita e uma didática). 3 – Refaça o programa considerando um ponderador (peso) para as provas didáticas, a ser inserido pelo usuário. Resolução N1 = input(‘Entre com a nota 1: ’); N2 = input(‘Entre com a nota 2: ’); MA = (N1+N2)/2; disp(‘A media e: ’); disp(MA);
Exercício 4 – Elabore um programa que inverta a ordem dos algarismos de um número natural inferior a 1000. Exemplo: 009 → 900 Resolução disp ('Este programa inverte a ordem dos algarismos de um número natural inferior a 1000.') disp ('Exemplo: 123 passa a 321') num=input('Insira número a ser invertido e pressione "Enter": '); unid=mod(num,10); deze=(mod(num,100)-mod(num,10))/10; cente=(num-mod(num,100))/100; numinv=unid*100+deze*10+cente; disp ('O número invertido é: '); disp (numinv);