Buscar

Algoritmos_Computacionais_06


Continue navegando


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.