Prévia do material em texto
* * * Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre Algoritmos Computacionais Introdução à Programação em MATLAB Prof. Alexandre Silva alexandre.silva@area1fte.edu.br * * * Introdução Programa voltado para executar cálculos matemáticos e de engenharia Principalmente operações envolvendo matrizes Contém funções pré-definidas, o que torna o trabalho mais fácil Por exemplo: as funções média aritmética, desvio padrão já vêm inseridas em uma biblioteca * * * * * * Janela de comandos Command Window Inserir comandos interativos a partir do marcador >> Os comandos serão executados imediatamente Por exemplo, cálculo da área de um círculo com 2,5m de raio area = pi*2.5^2 * * * * * * Comandos Básicos Comandos em minúsculo clc: limpa a janela de comandos Variáveis Não precisa declarar Inicialmente são numéricas Símbolo de atribuição = Lembrar regras: não começar com números, não ter espaço em branco nem caracteres especiais Ex: area, gerada no exercício anterior, é criada como uma variável e pode-se usar seu valor a qualquer momento * * * Entrada de Dados via teclado Função input: exibe um marcador na Janela de Comandos e espera o usuário digitar uma resposta Ex: raio = input(‘Digite o valor do raio de um círculo: ’); Agora calcule a área deste círculo e armazene na variável area * * * Observação! Para dados caracteres, deve-se colocar ,’s’ ao final do comando de input Ex: nome = input(‘Digite o nome do usuário: ’, ‘s’); * * * Saída de Dados Exibe um ou mais valores de variáveis juntamente com texto relacionado e permite ao programador controlar a maneira como os valores serão exibidos na janela de comandos. fprintf(‘O valor da area foi de %f \n‘, area); Observação: %f valor fracionário; %d valor inteiro; %s cadeia de caracteres; %c um caracter Exercício: Mostre o nome digitado do exercício anterior * * * Exemplo: Calcule a média entre dois números quaisquer e apresente o resultado. Comandos: nota1 = input('Digite a primeira nota do aluno: '); nota2 = input('Digite a segunda nota do aluno: '); media = (nota1+nota2)/2; fprintf(‘A media do aluno e: %.2f \n', media); \n quebra de linha! * * * Calcule a média entre dois números quaisquer e apresente o resultado. Comandos: nome = input(‘Digite o nome do aluno’, ‘s’); nota1 = input('Digite a primeira nota do aluno: '); nota2 = input('Digite a segunda nota do aluno: '); media = (nota1+nota2)/2; fprintf(‘O aluno %s ficou com media : %.2f \n', nome, media); * * * Ambiente Embutido no MATLAB Permite criar programas Executar programas previamente escritos Linguagem de Programação Interpretada Só é executada dentro do MATLAB (a não ser que se adquira módulo separado) Extensão .m (Arquivo M) * * * Abrir janela/editor para escrever programas Menu Arquivo Novo Arquivo M (Menu File New M-File) Observação para Salvar arquivo Mesmo Lugar do diretório corrente (Current Directory) para execução * * * Comandos Básicos O programa começa com a primeira instrução Não tem o termo início O programa termina com a última instrução Não tem o termo fim (do programa) %: símbolo de comentário * * * Exemplo: Digite os comandos abaixo em uma janela de arquivo M e salve como mediaaluno % Calcule a média entre dois números quaisquer e apresente o resultado. clc; nota1 = input('Digite a primeira nota do aluno: '); nota2 = input('Digite a segunda nota do aluno: '); media = (nota1+nota2)/2; fprintf(' \n A media do aluno e: %.2f \n', media); Para executar, não se esqueça de selecionar a pasta (o diretório) em que está o programa * * * Exercício Comente o que está acontecendo em cada etapa do algoritmo fprintf(‘Vamos multiplicar dois números? \n’); n1=input(‘Digite o primeiro numero: ’); n2=input(‘Digite o segundo numero: ’); multi=n1*n2; fprintf(‘%d vezes %d = %d\n’, n1, n2, multi); * * * Implemente Informe a idade atual (aproximada) de uma pessoa a partir do ano de nascimento Calcule a média entre dois números quaisquer e apresente o resultado Qual a média ponderada entre duas notas quaisquer sabendo que o peso da primeira nota é 6 e o da segunda é 4? Apresente o resultado. Qual é o salário de um funcionário que recebeu 15% de aumento. * * * Leia uma determinada hora, discriminada em hora, seus minutos e segundos e converta tudo para segundos. Quantos segundos correspondem à hora lida? Dada uma temperatura em Celsius, qual é a sua correspondente em Fahrenheit? Para converter Celsius em graus Fahrenheit, multiplicar o valor em Celsius por 9, dividir por 5 e somar 32. Exemplo: 20ºC = 68ºF =>(20 x 9 ÷ 5 + 32 = 68). * * * Dado o valor em de memória em MegaBytes, mostre o valor correspondente em Bytes, sabendo que 1 Kbyte corresponde a 1024 Bytes e que 1 MBytes corresponde a 1024 KBytes. Dado o valor em de memória em KiloBytes, mostre o valor correspondente em Bytes, sabendo que 1 Kbyte corresponde a 1024 Bytes. * * * Aplicação – estrutura condicional Operador Relacional ~= diferente Operadores lógicos & E | Ou ~ negação * * * Opção 1 if (condição) bloco de comandos end Opção 2 if (condição) bloco de comandos else bloco de comandos end Opção 3 if (condição) bloco de comandos elseif (condição) bloco de comandos else bloco de comandos end end * * * Exemplo Opção 1: Elabore um algoritmo que leia uma idade e se essa idade for igual ou maior que 18, informe que a pessoa já tem maioridade. idade = input(‘Digite a idade de uma pessoa: ’); if (idade >= 18) fprintf(‘Voce ja tem maioridade’); end * * * Elabore um algoritmo que leia um número e imprima uma mensagem informando se ele é positivo. Uma loja deseja mandar uma correspondência a um dos seus clientes anunciando um bônus especial. Escreva um algoritmo que leia o nome desse cliente e o valor das suas compras e, calcule um bônus de 10% se o valor das compras for menor que R$ 500.000,00. * * * Exemplo Opção 2: Elabore um algoritmo que leia uma idade e se essa idade for igual ou maior que 18, informe que a pessoa já tem maioridade, senão informe que ela ainda não tem maioridade. idade = input(‘Digite a idade de uma pessoa: ’); if (idade >= 18) fprintf(‘Voce ja tem maioridade’); else fprintf(‘Voce nao tem maioridade’); end * * * Elabore um algoritmo que leia um número e imprima uma mensagem informando se ele é positivo ou negativo. Uma loja deseja mandar uma correspondência a um dos seus clientes anunciando um bônus especial. Escreva um algoritmo que leia o nome desse cliente e o valor das suas compras e, calcule um bônus de 10% se o valor das compras for menor que R$500.000,00 e de 15 %, caso contrário. O algoritmo deve imprimir o nome do cliente e o bônus cedido. * * * Exemplo Opção 3: Elabore um algoritmo que leia uma idade e se essa idade for igual ou menor que 2, informe que ainda é uma criança, se tiver mais de 2 e menos de 18, informe que ela ainda não tem maioridade, caso contrário, informe que a pessoa já tem maioridade idade = input(‘Digite a idade de uma pessoa: ’); if (idade <= 2) fprintf(‘Voce ainda e crianca’); elseif ((idade > 2) & (idade > 18)) fprintf(‘Voce nao tem maioridade’); else fprintf(‘Voce ja tem maioridade’); end end * * * Elabore um algoritmo que leia um número e imprima uma mensagem informando se ele é positivo, negativo ou igual a zero. Informe se a temperatura da cidade está quente, agradável ou fria (quente: acima de 35º; fria: abaixo de 15º; agradável: intervalo entre quente e fria) * * * Um posto de gasolina vende quatro tipos de gasolina, de acordo com a tabela que segue. Escreva algoritmo que leia um número que represente o tipo de gasolina e o número de litros comprados por um cliente e imprima o valor a ser pago. * * * Elabore um algoritmo que, receba três valores que representarão os lados de um triângulo e verifique se os valores formam um triângulo e classifique esse triângulo como: Eqüilátero – três lados iguais; Isósceles – dois lados iguais; Escaleno – três lados diferentes. Lembre-se de que, para formar um triângulo: Nenhum dos ladospode ser igual a zero e um lado não pode ser maior do que a soma dos outros * * * Dada uma hora em segundos, retorne o correspondente em horas, minutos e segundos Sabendo-se que o comando mod(x,y) retorna o resto da divisão inteira de x por y e floor(x), retorna o menor inteiro antecessor de x.