Tarea-4

  • Uploaded by: Israel Paez Sanchez
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tarea-4 as PDF for free.

More details

  • Words: 1,298
  • Pages: 8
Loading documents preview...
TAREA 4 1 Escriba una función conteo(n) que entregue la cantidad de divisores enteros positivos que tiene un número entero dado n. Escriba un programa de prueba que use la función escrita para encontrar cual número entre 1 y 100 tiene más divisores enteros. FUNSION CONTEO

SCRIP EN MATLAB

function [ m ] = funcion_conteo( n ) m=0; for i=1:n if mod(n,i)==0 m=m+1; end end end

clc, clear a=0; for i=1:100 m=funsion_conteo(i); if m<=a m=a disp(i) end end

2 Escriba una función primo(n) para determinar si un número n dado es primo. Escriba un programa de prueba que mediante la función escrita, encuentre los números primos existentes entre 1 y n, siendo n un dato. FUNSION PRIMO function[p]=funcion_primo(n) j=0; %ponemos un acumulador o contador de divisores for i=1:n if mod(n,i)==0 %condiciones; mod es para reciduos de division j=j+1; %se actualiza el contador o numero totales de divisores end end if j==2 %numero de divisores que j acumula p=1; %el numero es primo else p=0; end end

SCRIP EN MATLAB clear,clc; n=input('ingrese el numero superior: '); for i=1:n if funcion_primo(i)==1 j=j+1; disp(i) end end fprintf('hay %d numeros primos \n',j)

3 Escriba una función primo(n) para determinar si un número n dado es primo. Escriba un programa de prueba que use la función primo y encuentre dos números enteros aleatorios menores que 100 tales que su suma sea también un número primo. FUNSION PRIMO EJERCICIO 2

SCRIP EN MATLAB clc,clear; a=0; %valores de prueba b=0; i=1 ; %contador while funcion_primo(a+b)==0 fprintf('intento numero %d \n',i) a=randi(100) %genero el primer numero aleatorio b=randi(100) %genero el segundo numero aleatorio i=i+1; end fprintf('los numeros enteros menores a 100 cuya suma es primo son %d y %d \n',a,b')

4 Escriba una función divisores(n) que entregue un vector conteniendo todos los divisores enteros positivos que tiene un número entero dado n. Escriba un programa de prueba que use la función escrita para encontrar para cada número entero del 20 al 30, sus divisores enteros FUNSION DIVISORES SCRIP EN MATLAB function [ a ] = funcion_divisores( n ) c=0; for i=1:n if mod(n,i)==0 v(i-c)=i; else c=c+1; end end

clear,clc; for i=20:30 a(i)=funcion_divisores(i); fprintf('los divisores de %d son',i) disp(a) end

end

5 Escriba una función mayor(x) que reciba un vector x y devuelva el mayor valor. Escriba un programa de prueba que genere y almacene en un vector n números aleatorios entre 1 y 100. Use la función escrita y encuentre y muestre el mayor valor generado.

FUNSION MAYOR function [ y ] = mayor( x ) n=length(x); m=0; for i=1:n if m<x(i); m=x(i); end y=m; end

SCRIP EN MATLAB clc,clear n=-1; %Indica valores negativos while n<1 n=input('Ingrese el límite de datos: '); a=1; b=100; r=floor(rand(n,1)*(b+1-a)+a) end g=mayor(r) fprintf('El %d es el número mayor entre la fila de 5 numeros aleatorios \n',g)

6 Escriba una función perfecto(n) que determine si un número entero dado n es un número perfecto. Un número perfecto debe ser igual a la suma de todos sus divisores enteros menores que el valor del número. Ejemplo: 28 = 1 + 2 + 4 + 7 + 14 Escriba un programa de prueba que use la función escrita y encuentre los números perfectos entre 1 y 1000

FUNSION PERFECTO function [y] = funcion_perfecto( n ) c=0; for i=1:(n-1) if mod(n,i)==0 c=c+i; end end if n==c y=1;%ES PERFECTO else y=0;%NO ES PERFECTO end

SCRIP EN MATLAB

funcion_perfecto(28) ans = 1

7 Escriba una función suma(n) que entregue la suma de las cifras de un número dado n. Con esta función escriba un programa que genere 10 números aleatorios entre 1 y 100 y encuentre cual de ellos tiene la mayor suma de sus cifras.

FUNSION SUMA function [ y ] = funcion_suma( x ) i=0; y=0; while x~=0 y=y+mod(x,10); x=(x-mod(x,10))/10; i=i+1; end end

SCRIP EN MATLAB clear, clc; n=input('ingrese la cantidad de aleatorios a generar n='); a=round(100*rand(1,n)+1) s=a(1:n)

8 Escriba una función cuad(n) que determine si el cuadrado de un número natural n dado, es igual a la suma de los primeros n números impares. Ej. 62 = 1+3+5+7+9+11 Escriba un programa de prueba que ingrese un dato desde el teclado, use la función y muestre el resultado en la pantalla.

FUNSION CUADRADO function [cuad] = funsion_cuad( n ) suma=0; i=0; while i
SCRIP EN MATLAB clear,clc; n=input('ingrese el numero superior: '); for i=1:n if funcion_primo(i)==1 j=j+1; disp(i) end end fprintf('hay %d numeros primos \n',j)

disp('la suma es: '); disp(suma); if suma==n^2 disp('si cumple la condicion'); else end end

11 Escriba una función sim(x) que reciba un entero y determine si es simétrico, es decir si los dígitos opuestos alrededor del centro son iguales. Escriba un programa de prueba que genere números aleatorios entre 1 y 10000 hasta obtener un número que sea simétrico

FUNSION SIM function [ y ] = funsion_sim( n ) a=1; cont=0; cont1=0; x=n; while (n>=1) punto=mod(n,10); vect(a)=punto; n=fix(n/10); a=a+1; end a=a-1; b=a; for i=1:a k(i)=vect(a); a=a-1; end a=b; if mod(a,2)==0 mitad=a/2; for i=1:mitad if k(i)==k(a) a=a-1; cont=cont+1; end end if mitad==cont y=1; fprintf('es simetrico el numero %d',x); else y=0; fprintf('no es simetrico el numero %d',x); end else mitad=fix(a/2); for i=1:mitad if k(i)==k(a) a=a-1; cont1=cont1+1; end end if mitad==cont1 y=1 fprintf('es simetrico el numero %d',x); else y=0 fprintf('no es simetrico el numero %d',x); end end

SCRIP EN MATLAB clc,clear n=fix(rand*10000)+1 y=sim(n)

15 Escriba una función fact(n) que reciba un numero entero n y devuelva su factorial. Escriba un programa de prueba que genere un número aleatorio entero menor que 8, use la función y muestre la suma de los factoriales de los primeros k números naturales

FUNSION FACT function [f] = funcion_fact(n) f=1; for i=1:n f=f*i; end end

SCRIP EN MATLAB j=fix(8*rand) a=funcion_fact(j) j1=fix(8*rand) b=funcion_fact(j1) j2=fix(8*rand) c=funcion_fact(j2) j3=fix(8*rand) d=funcion_fact(j3) j4=fix(8*rand) e=funcion_fact(j4) j5=fix(8*rand) f=funcion_fact(j5) j6=fix(8*rand) g=funcion_fact(j6) j7=fix(8*rand) h=funcion_fact(j7) sumafact=a+b+c+d+e+f+g+h

16 Escriba una función suma(n) que reciba un numero entero n y devuelva la suma de sus dígitos. Escriba un programa de prueba que genere números aleatorio entre 1 y 100 hasta que la suma de los dígitos de alguno de ellos sea múltiplo de 7

FUNSION SUMA function [ y ] = suma( n ) y=0; for i=1:n; y=y+i; end end

SCRIP EN MATLAB clear,clc; for a=1:10 for i=fix(100*rand)+1; s=suma(i); if s*(mod(s,7))==0; y=s; fprintf('El numero aleatorio es:%d; la suma de sus digitos es:%d, y es multiplo de 7\n',i,s) end end end

17 Escriba una función sumad(n) que reciba un número entero n y devuelva la suma de sus divisores. Escriba un programa de prueba que ingrese un dato desde el teclado, use la función y muestre el resultado en la pantalla FUNSION SUMAD

SCRIP EN MATLAB

function [ sum ] = funcion_sumad(n) sum=0; for i=1:n if mod(n,i)==0 a(i)=i; sum=sum+a(i); end end end

clear,clc; n=input('ingrese numero') sum=suma(n)

18 Escriba una función mcd(a, b) que reciba dos números enteros a y b, y devuelva el máximo común divisor entre ellos. Escriba un programa de prueba que genere dos números aleatorios entre 1 y 100, use la función y muestre el resultado en la pantalla FUNSION MCD2 function [ m ] = funcion_mcd2( a,b ) m=gcd(a,b); end

SCRIP EN MATLAB clear,clc; a=input('ingrese el numero mayor entero: '); b=input('ingrese el numero menor entero: '); m=funcion_mcd2(a,b); disp('maximo comun divisor'); disp(m)

19 Escriba una función primos(v) que reciba un vector v y entregue otro vector conteniendo los elementos que son números primos. function [ x ] = funcion_primo2( v ) div=0; c=0; n=lenght(v) for i=1:n a=v(i) for j=1:a if mod(a,j)==a div=div+1 end end if div==2 x(i-c)=a else c=c+1 end end

20 Escriba un a función rango(v, a, b) que reciba un vector v, y determine cuantos elementos están enend el rango [a, b] function [ y ] = funcion_rango( v,a,b ) n=length(v); y=[]; for i=1:n [r,p]=min(v(i:n)); t= v(i); v(i)=v(p+i-1); v(p+i-1)=t; end for i=1:n if mod(v(i),1)==0 y=[y,v(i)]; y=i-2; end end end

Related Documents


More Documents from "jose"