Buscar

MATLAB - 20 Exercícios básicos resolvidos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

EXERCÍCIOS DE MATLAB RESOLVIDOS NA MATÉRIA PROGRAMAÇÃO DE COMPUTADORES 1 DO 
CURSO DE ENGENHARIA ELETRÔNICA E DE TELECOMUNICAÇÃO DA PUC MINAS. 
 
ÁLISON BISSOLI 
 
 
 
% Ler 2 números inteiros e verificar e imprimir qual deles é o maior, ou a 
% mensagem “valores iguais” caso sejam iguais. 
clc 
clear 
numero1 = input('\nInforme o primeiro número inteiro: '); 
numero2 = input('Informe o segundo número inteiro: '); 
 
if (numero1 > numero2) 
 fprintf('\nO maior número é: %d\n', numero1); 
else 
 if (numero1 < numero2) 
 fprintf('\nO maior número é: %d\n', numero2); 
 else 
 fprintf('\nOs dois números inteiros são iguais\n\n'); 
 end 
end 
 
 
% O número 3025 possui a seguinte característica: 
% 30 + 25 = 55 
% 55² = 3055 
% Fazer um algoritmo que dado um número de 4 dígitos calcule e escreva se 
% ele possui ou não esta característica. Resposta esperada: 2025,3025,9801 
clc 
clear 
n = input('\nInforme um número de quatro dígitos: '); 
if ((n < 1000) || (n > 9999)) 
 error('Número informado não é válido'); 
end; 
 
if (((fix(n/100) + mod(n,100))^2) == n) 
 fprintf('Número informado %d possui a característica solicitada.\n', n); 
else 
 fprintf('Número informado %d não possui a característica solicitada.\n', n); 
end; 
 
 
% Números palíndromos são aqueles que escritos da direita para esquerda 
% ou da esquerda para direita tem o mesmo valor. Exemplo:929, 44, 97379. 
% Fazer um algoritmo que dado um numero de 5 dígitos; calcule e escreva 
% se este e ou não palíndromo. 
 
clear; 
clc; 
 
n=input('Informe o número: '); 
 
n1 = fix(n/10000); 
r = mod(n,10000); 
n2 = fix(r/1000); 
r = mod(r,1000); 
n3 = fix(r/100); 
r = mod(r,100); 
n4 = fix(r/10); 
n5 = mod(r,10); 
 
if (n1 == n5) && (n2 == n4) 
 fprintf('O número %d é palíndromo.\n', n); 
else 
 fprintf('O número %d não é palíndromo.\n', n); 
end; 
 
 
% Construir um algoritmo para calcular as raízes de uma equação do 2º grau, 
% sendo dados (lidos) os valores dos coeficientes A, B e C. 
 
clear; 
clc; 
a = input('Informe valor de a: '); 
b = input('Informe valor de b: '); 
c = input('Informe valor de c: '); 
delta = (b^2)-(4*a*c); 
if (delta < 0) 
 fprintf('%dx²+ %dx + %d não possui raízes reais.\n',a,b,c); 
elseif(delta == 0) 
 resultado1 = (b*-1)/(2*a); 
 fprintf('%dx²+ %dx + %d é igual a %0.2f.\n',a,b,c,resultado1); 
else 
 resultado1 = ((b*-1)+sqrt(delta))/(2*a); 
 resultado2 = ((b*-1)-sqrt(delta))/(2*a); 
 fprintf('\n%dx²+ %dx + %d é igual a [%0.2f,%0.2f].\n\n',a,b,c,resultado1,resultado2); 
end; 
 
 
% Um determinado clube de futebol pretende classificar seus atletas em 
% categorias e para isto ele contratou um programador para criar um 
% programa que executasse esta tarefa. Para isso o clube criou uma tabela 
% que continha a faixa etária do atleta e sua categoria. Construa um 
% programa que solicite o nome e a idade de um atleta e imprima a sua 
% categoria. A tabela está demonstrada abaixo: 
% 
% IDADE CATEGORIA 
% De 05 a 10 Infantil 
% De 11 a 15 Juvenil 
% De 16 a 20 Junior 
% De 21 a 25 Profissional 
 
clear; 
clc; 
 
nome = input('Nome do atleta..: ','s'); 
idade = input('Idade do atleta.: '); 
 
if ((idade>=5) && (idade<=10)) 
 classificacao = 'Infantil'; 
elseif ((idade>=11) && (idade<=15)) 
 classificacao = 'Juvenil'; 
elseif ((idade>=16) && (idade<=20)) 
 classificacao = 'Junior'; 
elseif ((idade>=21) && (idade<=25)) 
 classificacao = 'Profissional'; 
else 
 classificacao = 'Não definida'; 
end 
fprintf('\nCategoria do atleta %s: [%s].\n', nome, classificacao); 
 
 
 
% Escreva um programa para ler um número N e % imprimir os 
% números impares de 1 a N 
 
clc 
clear 
n = input('Informe um número: '); 
i = 1; 
if (n < 1) 
 error('Número inválido, informe um número maior ou igual a 1.'); 
end; 
while (i <= n) 
 fprintf('\n%d',i); 
 i = i + 2; 
end 
 
 
% Escreva um programa para ler um conjunto de números % e 
% imprimir a soma desses números (flag -1) 
 
clc 
clear 
 
soma = 0; 
c = 0; 
 
while (c ~= -1) 
 soma = soma + c; 
 c = input('Informe qualquer número para somar ou -1 para resultado: '); 
end 
fprintf('Resultado da soma: %d\n', soma); 
 
 
% Escreva um programa para ler um conjunto de números 
% e imprimir a média desses números(flag -1) 
 
clc 
clear 
 
soma = 0; 
cont = -1; 
atual = 0; 
 
while (atual ~= -1) 
 cont = cont + 1; 
 soma = soma + atual; 
 atual = input('Informe qualquer número para interagir com a média ou -1 para resultado: '); 
end 
 
if (cont ~= 0) 
 fprintf('Média: %d\n', (soma/(cont))); 
else 
 fprintf('Não foram informados números'); 
end; 
 
 
% Escreva um programa para ler um número é imprimir o seu 
% fatorial. 
 
clc 
clear 
n = input('Digite um número: '); 
cont = 1; 
fat = 1; 
while (cont<=n) 
 fat = fat * cont; 
 cont = cont + 1; 
end 
fprintf('O fatorial de %d é %d: \n', n, fat); 
 
 
% A série de fibonacci é formada pela sequência: 
% 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 
% Escreva um algoritmo que peça um número N maior que 2. Gere e 
% imprima a série até este n-ésimo termo. 
 
clc 
clear 
n = input('Digite um número maior que 2: '); 
f1=1; 
f2=1; 
fn=1; 
 
 while (n > 2) 
 f1=f2 
 f2=fn; 
 fn=f1+f2; 
 n=n-1; 
end 
fprintf('\n O valor do termo solicitado é %d:',fn); 
 
 
% Escreva um programa que solicite ao usuário dois números e imprima a soma deles. 
clc 
clear 
PrimeiroNumero=input('\nInforme o primeiro número:'); 
SegundoNumero=input('Informe o segundo número:'); 
Soma = PrimeiroNumero + SegundoNumero; 
fprintf('\nA soma do primeiro e segundo número é: %6.3f\n',Soma); %6 Casas inteiro, 3 
decimais 
 
 
% Peça ao usuário seu nome 
% a. Imprima o nome do usuário (utilize %s no formato) 
% b. A variável pré-definida date contem uma string que informa a data atual 
% c. Imprima uma expressão que informe ao usuário o dia de hoje. 
clc 
clear 
NomeUsuario = input('\n\nInforme seu nome: ','s'); 
fprintf('\nCaro %s \nInformamos que hoje é dia 
%s\n\n',NomeUsuario,datestr(date,'dd/mm/yyyy')); 
 
 
% Faça um algoritmo que leia uma temperatura em graus Celsius e 
% apresente-a convertida em graus Fahrenheit. A fórmula de conversão é: 
% C = (F – 32) * ( 5 / 9), na qual F é a temperatura em Fahrenheit e C é a 
% temperatura em Celsius. Teste o programa calculando e imprimindo o 
% valor em Celsius do valor em Fahrenheit encontrado. 
 
clc 
clear 
InformadoC = input('\nGraus Celsius: '); 
CalculadoF = (InformadoC * 1.8 + 32); 
fprintf('Graus F: %3.2f\n', CalculadoF); 
InformadoF = input('\nGraus Fahrenheit: '); 
CalculadoC = (InformadoF - 32) * ( 5 / 9 ); 
fprintf('Graus C: %3.2f\n', CalculadoC); 
 
 
% Faça um algoritmo que calcule a quantidade de litros de combustível 
% gasta em uma viagem, utilizando um automóvel que faz 12Km por litro. 
% Para obter o cálculo, o usuário deve fornecer o tempo gasto na viagem e 
% a velocidade média durante ela. Desta forma, será possível obter a 
% distância percorrida com a fórmula DISTANCIA = TEMPO * 
% VELOCIDADE. Tendo o valor da distância, basta calcular a quantidade 
% de litros de combustível utilizada na viagem com a fórmula: 
% LITROS_USADOS = DISTANCIA / 12. O programa deve apresentar os 
% valores da velocidade média, tempo gasto na viagem, a distância 
% percorrida e a quantidade de litros utilizada na viagem. 
 
clc 
clear 
 
Tempo = input('\nHoras de viagem: '); 
VelocidadeMedia = input('Velocidade média em KM: '); 
LitrosUsados = (Tempo * VelocidadeMedia) / 12; 
fprintf('\nLitros de computível gasta nesta viagem: %5.3f',LitrosUsados); 
 
 
% Faça um algoritmo que leia dois valores para as variáveis A e B e efetue 
% a troca dos valores de forma que a variávelA passe a possuir o valor da 
% variável B e a variável B passe a possuir o valor da variável A. 
% Apresente os valores trocados. 
 
clear 
clc 
 
A = input('\nInforme o valor para A: '); 
B = input('Informe o valor para B: '); 
 
%Troca de valores 
X = A; 
A = B; 
B = X; 
 
fprintf('\nResultado após troca de valores:'); 
fprintf('\nValor de A: %d',A); 
fprintf('\nValor de B: %d\n',B); 
 
 
 
% Calcule e imprima o DV de seu CPF. Faça uma pesquisa de como esse número é formado. 
clear 
clc 
cpf = input('Informe os 9 primeiros dígitos de seu CPF: ','s'); 
 
soma = 0; 
 
for d = 1:9 
 numero = cpf(d:d)-'0'; 
 soma = soma + (numero * (11 - d)); 
end; 
 
resto = mod(soma, 11); 
 
if resto <= 1 
 cpf = strcat(cpf,'0'); 
else 
 cpf = strcat(cpf,(int2str(11 - resto))); 
end; 
 
soma = 0; 
 
for d = 1:10 
 numero = cpf(d:d)-'0'; 
 soma = soma + (numero * (12 - d)); 
end; 
 
resto = mod(soma, 11); 
 
if resto <= 1 
 cpf = strcat(cpf,'0'); 
else 
 cpf = strcat(cpf,(int2str(11 - resto))); 
end; 
 
fprintf('CPF: %s\n', cpf); 
 
 
% Calcular a soma de dois valores apenas se ambos forem positivos caso 
% contrário aviso o usuário do valor negativo e abandone a execução do programa 
 
clc 
clear 
numero1 = input('\nInforme o primeiro número positivo: '); 
numero2 = input('Informe o segundo número positivo: '); 
 
if (numero1 < 0) 
 fprintf('\nO número %f não é positivo.\n\n', numero1); 
else 
 if (numero2 < 0) 
 fprintf('\nO número %f não é positivo.\n\n', numero2); 
 else 
 fprintf('\nSoma: %f\n\n', (numero1 + numero2)); 
 end 
end 
 
 
% Faça um programa que leia um numero e imprima se esse numero é Par ou Impar. 
 
clc 
clear 
numero = input('\nInforme um número: '); 
if mod(numero, 2) == 0 
 resultado = 'par'; 
else 
 resultado = 'ímpar'; 
end 
fprintf('O número informado %d é %s\n\n', numero, resultado); 
 
 
% Crie uma calculadora. As opções serão (‘+’,’-‘,’X’,’/’). O usuário irá digitar o 
% primeiro termo a opção e o segundo termo e o programa irá mostrar o resultado 
 
clc 
clear 
 
termo1 = input('\nInforme o primeiro termo: '); 
operacao = input('\nInforme a operação [+,-,/,*]','s'); 
termo2 = input('\nInforme o segundo termo: '); 
 
switch operacao 
 case '+' 
 fprintf('\nResultado: %f\n', termo1+termo2); 
 case '-' 
 fprintf('\nResultado: %f\n', termo1-termo2); 
 case '*' 
 fprintf('\nResultado: %f\n', termo1*termo2); 
 case '/' 
 fprintf('\nResultado: %f\n', termo1/termo2); 
 otherwise 
 fprintf('\nOperador não reconhecido.\n'); 
end 
 
 
% Desenvolver um algoritmo que leia um numero inteiro e verifique se este e 
% divisível por 5 e por 3 ao mesmo tempo 
 
clc 
clear 
 
inteiro = input('\nInforme um número inteiro: '); 
 
if ((mod(inteiro, 3) == 0) && (mod(inteiro, 5) == 0)) 
 fprintf('Número informado %d é divisível por 3 e por 5\n', inteiro); 
else 
 fprintf('Número informado %d não é divisível por 3 e por 5.\n', inteiro); 
end;

Continue navegando