Você está na página 1de 8

EXERCCIOS DE MATLAB RESOLVIDOS NA MATRIA PROGRAMAO DE COMPUTADORES 1 DO

CURSO DE ENGENHARIA ELETRNICA E DE TELECOMUNICAO DA PUC MINAS.


LISON BISSOLI

% Ler 2 nmeros inteiros e verificar e imprimir qual deles o maior, ou a


% mensagem valores iguais caso sejam iguais.
clc
clear
numero1 = input('\nInforme o primeiro nmero inteiro: ');
numero2 = input('Informe o segundo nmero inteiro: ');
if (numero1 > numero2)
fprintf('\nO maior nmero : %d\n', numero1);
else
if (numero1 < numero2)
fprintf('\nO maior nmero : %d\n', numero2);
else
fprintf('\nOs dois nmeros inteiros so iguais\n\n');
end
end

% O nmero 3025 possui a seguinte caracterstica:


% 30 + 25 = 55
% 55 = 3055
% Fazer um algoritmo que dado um nmero de 4 dgitos calcule e escreva se
% ele possui ou no esta caracterstica. Resposta esperada: 2025,3025,9801
clc
clear
n = input('\nInforme um nmero de quatro dgitos: ');
if ((n < 1000) || (n > 9999))
error('Nmero informado no vlido');
end;
if (((fix(n/100) + mod(n,100))^2) == n)
fprintf('Nmero informado %d possui a caracterstica solicitada.\n', n);
else
fprintf('Nmero informado %d no possui a caracterstica solicitada.\n', n);
end;

% Nmeros palndromos so 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 dgitos; calcule e escreva
% se este e ou no palndromo.
clear;
clc;

n=input('Informe o nmero: ');


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 nmero %d palndromo.\n', n);
else
fprintf('O nmero %d no palndromo.\n', n);
end;

% Construir um algoritmo para calcular as razes de uma equao 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 no possui razes 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 etria 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 = 'No definida';
end
fprintf('\nCategoria do atleta %s: [%s].\n', nome, classificacao);

% Escreva um programa para ler um nmero N e % imprimir os


% nmeros impares de 1 a N
clc
clear
n = input('Informe um nmero: ');
i = 1;
if (n < 1)
error('Nmero invlido, informe um nmero 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 nmeros % e


% imprimir a soma desses nmeros (flag -1)
clc
clear
soma = 0;
c = 0;
while (c ~= -1)
soma = soma + c;
c = input('Informe qualquer nmero para somar ou -1 para resultado: ');

end
fprintf('Resultado da soma: %d\n', soma);

% Escreva um programa para ler um conjunto de nmeros


% e imprimir a mdia desses nmeros(flag -1)
clc
clear
soma = 0;
cont = -1;
atual = 0;
while (atual ~= -1)
cont = cont + 1;
soma = soma + atual;
atual = input('Informe qualquer nmero para interagir com a mdia ou -1 para resultado: ');
end
if (cont ~= 0)
fprintf('Mdia: %d\n', (soma/(cont)));
else
fprintf('No foram informados nmeros');
end;

% Escreva um programa para ler um nmero imprimir o seu


% fatorial.
clc
clear
n = input('Digite um nmero: ');
cont = 1;
fat = 1;
while (cont<=n)
fat = fat * cont;
cont = cont + 1;
end
fprintf('O fatorial de %d %d: \n', n, fat);

% A srie de fibonacci formada pela sequncia:


% 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
% Escreva um algoritmo que pea um nmero N maior que 2. Gere e
% imprima a srie at este n-simo termo.
clc
clear
n = input('Digite um nmero 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 usurio dois nmeros e imprima a soma deles.
clc
clear
PrimeiroNumero=input('\nInforme o primeiro nmero:');
SegundoNumero=input('Informe o segundo nmero:');
Soma = PrimeiroNumero + SegundoNumero;
fprintf('\nA soma do primeiro e segundo nmero : %6.3f\n',Soma); %6 Casas inteiro, 3
decimais

% Pea ao usurio seu nome


% a. Imprima o nome do usurio (utilize %s no formato)
% b. A varivel pr-definida date contem uma string que informa a data atual
% c. Imprima uma expresso que informe ao usurio 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'));

% Faa um algoritmo que leia uma temperatura em graus Celsius e


% apresente-a convertida em graus Fahrenheit. A frmula de converso :
% 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);

% Faa um algoritmo que calcule a quantidade de litros de combustvel


% gasta em uma viagem, utilizando um automvel que faz 12Km por litro.

% Para obter o clculo, o usurio deve fornecer o tempo gasto na viagem e


% a velocidade mdia durante ela. Desta forma, ser possvel obter a
% distncia percorrida com a frmula DISTANCIA = TEMPO *
% VELOCIDADE. Tendo o valor da distncia, basta calcular a quantidade
% de litros de combustvel utilizada na viagem com a frmula:
% LITROS_USADOS = DISTANCIA / 12. O programa deve apresentar os
% valores da velocidade mdia, tempo gasto na viagem, a distncia
% percorrida e a quantidade de litros utilizada na viagem.
clc
clear
Tempo = input('\nHoras de viagem: ');
VelocidadeMedia = input('Velocidade mdia em KM: ');
LitrosUsados = (Tempo * VelocidadeMedia) / 12;
fprintf('\nLitros de computvel gasta nesta viagem: %5.3f',LitrosUsados);

% Faa um algoritmo que leia dois valores para as variveis A e B e efetue


% a troca dos valores de forma que a varivel A passe a possuir o valor da
% varivel B e a varivel B passe a possuir o valor da varivel 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 aps troca de valores:');
fprintf('\nValor de A: %d',A);
fprintf('\nValor de B: %d\n',B);

% Calcule e imprima o DV de seu CPF. Faa uma pesquisa de como esse nmero formado.
clear
clc
cpf = input('Informe os 9 primeiros dgitos 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


% contrrio aviso o usurio do valor negativo e abandone a execuo do programa
clc
clear
numero1 = input('\nInforme o primeiro nmero positivo: ');
numero2 = input('Informe o segundo nmero positivo: ');
if (numero1 < 0)
fprintf('\nO nmero %f no positivo.\n\n', numero1);
else
if (numero2 < 0)
fprintf('\nO nmero %f no positivo.\n\n', numero2);
else
fprintf('\nSoma: %f\n\n', (numero1 + numero2));
end
end

% Faa um programa que leia um numero e imprima se esse numero Par ou Impar.
clc
clear
numero = input('\nInforme um nmero: ');

if mod(numero, 2) == 0
resultado = 'par';
else
resultado = 'mpar';
end
fprintf('O nmero informado %d %s\n\n', numero, resultado);

% Crie uma calculadora. As opes sero (+,-,X,/). O usurio ir digitar o


% primeiro termo a opo e o segundo termo e o programa ir mostrar o resultado
clc
clear
termo1 = input('\nInforme o primeiro termo: ');
operacao = input('\nInforme a operao [+,-,/,*]','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 no reconhecido.\n');
end

% Desenvolver um algoritmo que leia um numero inteiro e verifique se este e


% divisvel por 5 e por 3 ao mesmo tempo
clc
clear
inteiro = input('\nInforme um nmero inteiro: ');
if ((mod(inteiro, 3) == 0) && (mod(inteiro, 5) == 0))
fprintf('Nmero informado %d divisvel por 3 e por 5\n', inteiro);
else
fprintf('Nmero informado %d no divisvel por 3 e por 5.\n', inteiro);
end;

Você também pode gostar