18
Universidad Nacional de Trujillo Programación en Matlab Mg. Marcelino Torres Villanueva 1 12. - Estructuras Repetitivas 1) while …. End while condicion Instrucciones end 2) for for v = vi : inc: vf Instrucciones end donde : vi: valor inicial inc: incremento vf: valor final Si el incremento es de 1 en 1, se omite el incremento for v=vi:vf Instrucciones end Contador: Es una variable comienza con valor inicial y se incrementa en un valor constante. Inicializamos C=0; Y en el proceso C=C+Valor_constante; 12.1.- Ejemplos While…end Ejemplo mientras 01 Ejecución

Repaso Matlab

Embed Size (px)

DESCRIPTION

Repaso matlab

Citation preview

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 1

    12. - Estructuras Repetitivas

    1) while . End while condicion Instrucciones end

    2) for

    for v = vi : inc: vf Instrucciones

    end donde : vi: valor inicial inc: incremento vf: valor final

    Si el incremento es de 1 en 1, se omite el incremento for v=vi:vf Instrucciones end

    Contador: Es una variable comienza con valor inicial y se incrementa en un valor constante. Inicializamos C=0; Y en el proceso

    C=C+Valor_constante; 12.1.- Ejemplos Whileend Ejemplo mientras 01 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 2

    Ejemplo mientras 02 Ejecucin Ejemplo mientras 03 Ejecucin 12.2.- Ejemplos de procesos repetitivos for Ejemplo for 01 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 3

    Ejemplo for 02 Ejecucin Ejemplo for 03 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 4

    Ejemplo repetitivo 01 Ejecucin Ejemplo repetitivo 02

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 5

    Ejecucin Acumulador: Variable que comienza con un valor inicial que generalmente es cero y se incrementa una cantidad variable Inicializamos S = 0 Y en el proceso de suma S = S + valor_a_sumar; Ejemplo repetitivo 03 Ejecucin Ejemplo repetitivo 04 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 6

    Ejemplo repetitivo 05 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 7

    Ejemplo repetitivo 06 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 8

    Ejemplo repetitivo 07 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 9

    Multiplicador: Variable que comienza con un valor inicial que generalmente es uno y se multiplica una cantidad variable Inicializamos P = 1; Y en el proceso de multiplicacin

    P = P * valor_a_multiplicar; Ejemplo repetitivo 08 Ejecucin Ejemplo repetitivo 09 Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 10

    Ejemplo 10 Calcular la suma de los n trminos de la siguiente serie: s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 +...... 1/n. Ejecucin Ejemplo 11 Ingresar n nmeros, calcular el mximo y el mnimo de ellos.

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 11

    Ejecucin Ejemplo 12 Realizar un programa que escriba los n trminos de la serie de Fibonacci: 1, 1, 2, 3, 5, 8, 13,....... Ejecucin

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 12

    Ejemplo 13 Calcular la sumatoria: s = 1 + x + x 2/2! + x3 /3! + x4 /4! + ........ + xn /n! Se debe ingresar x real y n entero positivo. Ejecucin

    Ejercicios Resueltos 1.- Programa para ingresar un nmero y reportar todos sus divisores

    clc n=input('ingrese numero :'); disp('Los divisores son '); for i=1:n if rem(n,i)==0 fprintf('%d ',i); end end

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 13

    2.- Ingresar un nmero y reportar si es perfecto. Un nmero es perfecto si es igual a la suma de divisores menores que el

    clear all clc n=input('Ingrese numero :'); s=0; for i=1:n-1 if rem(n,i)==0 s= s+i; end end if n==s disp('es perfecto'); else disp('no es perfecto'); end

    3.- Ingresar un nmero y reportar si es primo.

    clear all clc n=input('Ingrese numero :'); cd=0; for i=1:n if rem(n,i)==0 cd= cd+1; end end if cd==2 disp('es primo'); else disp('no es primo'); end

    4.- Escribir un programa que descomponga un nmero N en todos sus factores correspondientes. Ej.:

    27 = 3*3*3 180 = 2*2*3*3*3

    clear all clc n=input('Ingrese numero :'); d=2; while n>1 if rem(n,d)==0 fprintf('%d ',d); n=n/d; else d=d+1; end end

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 14

    5.- Ingresar 2 nmeros y calcular su mximo comn divisor

    clc clear all n1=input('Primer numero :'); n2=input('Segundo numero :'); d=2; mcd=1; while d

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 15

    8.- Ingresar un nmero y reportarlo al revs

    clc; n=input('Ingrese numero :'); x=n; disp('El numero al reves es :'); while x>0 dig= rem(x,10); fprintf('%d',dig); x=fix(x/10); end

    9.- Ingresar un nmero y reportar si es capica

    clc; n=input('Ingrese numero :'); x=n; inv=0; while x>0 dig= rem(x,10); inv=inv*10+dig; x=fix(x/10); end if n==inv disp('el numero es capicua'); else disp('el numero no es capicua'); end

    10.- Ingresar un nmero en base 10 y convertirlo a base 2

    clc; n=input('Ingrese numero :'); x=n; b2=0;p=1; while x>0 r= rem(x,2); b2=b2+r*p; p=p*10; x=fix(x/2); end fprintf('el numero en base 2 es : %d ',b2);

    11.- Ingresar un nmero en base 2 a base 10

    clc; b2=input('Ingrese numero en base 2:'); x=b2; n=0;p=1; while x>0 r= rem(x,10); n=n+r*p; p=p*2; x=fix(x/10); end fprintf('el numero en base 10 es : %d ',n);

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 16

    Ejercicios Propuestos 1) Ingresar un numero N entero positivo y reportar la suma de los nmeros desde 1

    hasta N.

    2) Ingresar N nmeros enteros positivos y reporte la suma de pares.

    3) Reportar la suma de los N trminos de la serie:

    1, 4, 7, 10, 13..

    4) Hacer un programa para calcular el valor de XN. X real y N entero. (No usar el

    operador ^).

    5) Determinar la suma de los N trminos de la serie:

    X + X2 + X3 + X4 + .

    6) Hacer un programa que dado un valor de x, calcule el valor de la funcin:

    f(x) = 1 x + x2/2! x3/3! + x4/4! x5/5! +

    Tenga en cuenta solo los trminos de la serie que en valor absoluto son mayores o

    iguales a 0.001

    7) Reportar los N trminos de la serie:

    17, 15, 18, 16, 19, 17, 20, 18, 21,

    8) Hacer un programa que reporte los trminos de la sucesin:

    2, 5, 7, 10, 12, 15, 17. 1800

    Adems debe imprimir la suma de los trminos.

    9) Sea n un entero positivo. Si n es par, divdalo entre 2, sino lo es, multiplquelo por 3

    y smele 1. Realice este proceso hasta que el nmero que alcance sea 1. Realice un

    programa en C que implemente dicho proceso. Imprima los nmeros que van

    obteniendo. Por Ejemplo:

    Para n = 10 la sucesin generada es: 10 5 16 8 4 2 1

    10) Como parte de un experimento un bilogo requiere tomar la temperatura exterior

    de un lugar cada hora por un periodo de 6 horas. Realice un programa que reciba

    como datos las temperaturas tomadas y determine la mayor y la menor.

    11) Generar un nmero aleatorio entre 1 y 100 y trate de adivinarlo. El resultado debe

    orientar segn el resultado con los mensajes, alto y bajo. Al final debe mostrar

    el nmero de intentos en los que adivino el nmero.

    12) Generar n notas aleatoriamente y reportar el promedio, la nota mayor y la nota

    menor.

    13) Hacer un programa que simule varios lanzamientos de un dado hasta obtener un

    seis. Muestre los puntajes del dado mientras se vayan generando y muestre al final

    cuantos lanzamientos fueron necesarios efectuar.

    14) Hacer un programa que genere nmeros aleatorios entre 300 y 1000 hasta obtener

    un nmero mltiplo de 7. Se debe mostrar los nmeros generados, su suma, el mayor

    y el menor.

    15) Hacer un programa que genera la nota de n alumnos y que imprima cada nota y al

    costado tantos asteriscos como indique la nota.

    16) Escribir un programa que lea 3 nmeros enteros positivos a, b, n>0, calcule la

    sumatoria de :

    1! 2! 3! 4! (n+1)!

    - + - + .....

    A A + B A + 2B A + 3B A + nB

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 17

    17) Escriba un programa que lea 2 nmeros X1 y X2 tal que X10 y que imprima los n trminos de

    la serie:

    4, 12, 24, 40, 60........ Debe imprimir tambin la suma de los n trminos.

    19) Escribir un programa que lea un nmero entero n>0 y que imprima los n trminos de

    la serie:

    4, 9, 15, 23, 34, 49,..... Debe imprimir tambin la suma de los n trminos

    20) Escribir un programa que calcule e imprima el valor de los n trminos de la serie:

    2, 1, 1, 2, 8, 64.......Tambin se debe imprimir la suma de los n trminos

    21) Escribir un programa que calcule e imprime los N trminos de la sumatoria

    4/2 9/1 + 15/1 23/2 + 34/8 49/64 + .

    Debe imprimir como mnimo k trminos por lnea. Tambin debe calcular la suma de

    los N trminos

    22) Escribir un programa que permita leer dos nmeros y reporte si son amigos.

    Se dice que dos nmeros son amigos si cada uno de ellos es igual a la suma de los

    divisores (menores que el nmero) del otro. Ejemplo: 220 y 284 son amigos.

    23) Escribir un programa para ingresar 3 nmeros y reporte su mximo comn divisor y

    su mnimo comn mltiplo.

    24) Escribir un programa que para reducir un quebrado a su mnima expresin.

    Ejemplos: 15/25 = 3/5 y 18/60 = 9/30 = 3/10

    25) Escribir un programa que convierta un nmero de base b (entre 2 y 9) a un nmero

    de base 10.

    26) Convertir un numero de base n a un nmero de base m .

    27) Escribir un programa que determine todos los nmeros primos que se encuentran

    entre 2 nmeros n1 y n2.

    28) Escribir un programa que permita mostrar en pantalla los N primeros nmeros

    primos.

    29) Escribir un programa que permita mostrar todos los nmeros perfectos menores

    que 1000.

    30) Escribir un programa que permita ingresar un nmero entero y reporte si es un

    Cubo Perfecto. Un nmero es un cubo perfecto y es igual a la suma de sus dgitos al

    cubo. Ejemplo 153 es cubo Perfecto porque 13 + 53+ 33 = 153.

    31) Ingresar un nmero entero positivo y reportar el producto de sus dgitos y el mayor

    de sus dgitos.

    32) Ingresar N nmeros de 2 dgitos y determinar cul de ellos tiene la suma de

    dgitos mayor

    33) Escribir un programa que permita leer nmeros enteros diferentes de cero y que al

    finalizar imprima:

    a.- El nmero mayor y el nmero menor.

    b.- El total de nmeros ledos.

    c.- La cantidad de nmeros positivos y nmeros negativos.

    El programa termina cuando se ingresa el cero.

    34) Escribir un programa que lea las edades de personas y calcule la edad mayor, la

    edad menor y la edad promedio.

    El programa termina cuando se ingresa una edad menor o igual que cero.

  • Universidad Nacional de Trujillo Programacin en Matlab

    Mg. Marcelino Torres Villanueva 18

    35) Dado un numero entero positivo N, dibujar el siguiente triangulo:

    Si N=5 saldr

    1

    12

    1 2 3

    1 2 3 4

    1 2 3 4 5

    36) Dado un numero entero positivo N,dibujar en la pantalla el siguiente triangulo:

    Si N=4

    ****

    ***

    **

    *

    37) Dado un numero entero positivo N, dibujar el siguiente cuadrado:

    Ingrese N: 4

    1 2 3 4

    2 3 4 1

    3 4 1 2

    4 1 2 3