Baixe o app para aproveitar ainda mais
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;
Compartilhar