Está en la página 1de 15

Universidad Autónoma de Baja California

FACULTAD DE INGENIERÍA MEXICALI

Programación y Métodos numéricos

Nombre: Leonardo Gutierrez Cabrales 1188423

Docente: Jonathan Leo Sanchez Britton

Práctica: Práctica 5 Funciones y Arreglos

Segundo semestre tronco común


Grupo: 633

Fecha de entrega: 07/10/2022

º
Objetivo:
Elaborar programas con funciones y arreglos unidimensionales y bidimensionales

utilizando el software Octave para la solución de problemas, con organización y

honestidad.

Resultado:
2) Hacer un programa que guarde números pares en una matriz de 3 x
3. Imprima la suma de todos los números y los elementos de la
diagonal principal. Utilice la función diag.
clear;

clc;

a=input("Ingrese el valor 1x1 matriz");

y=rem(a,2);

if y==0

a==a;

else

a=0;

endif

b=input("Ingrese el valor 1x2 matriz");

y=rem(b,2);

if y==0

b==b;

else

b=0;

endif

c=input("Ingrese el valor 1x3 matriz");

y=rem(c,2);

if y==0

c==c;

else

c=0;

º
endif

d=input("Ingrese el valor 2x1 matriz");

y=rem(d,2);

if y==0

d==d;

else

d=0;

endif

e=input("Ingrese el valor 2x1 matriz");

y=rem(e,2);

if y==0

e==e;

else

e=0;

endif

f=input("Ingrese el valor 2x3 matriz");

y=rem(f,2);

if y==0

f==f;

else

f=0;

endif

g=input("Ingrese el valor 3x1 matriz");

y=rem(g,2);

if y==0

g==g;

else

g=0;

endif

h=input("Ingrese el valor 3x2 matriz");

y=rem(h,2);

if y==0

º
h==h;

else

h=0;

endif

i=input("Ingrese el valor 3x3 matriz");

y=rem(i,2);

if y==0

i==i;

else

i=0;

endif

x=[a b c ; d e f; g h i]

y=sum(x);

z=sum(x,2);

suma=sum(z);

diagonal=diag(x);

Sumadiag=sum(diagonal);

fprintf("Tu suma de elementos---> %d\n",suma);

fprintf("Suma de diagonal es---> %d\n",Sumadiag);

º
º
Ejecucion:

4) Realice un programa que permita jugar al gatito, al solicitar la


posición elegida por el jugador debe verificar si este vacío, si es así
entonces ocuparlo para el primer jugador con un 1, después seguirá el
otro jugador, se solicita posición y si está vacío se coloca un 2 y así
sucesivamente, una vez que un jugador tenga las 3 posiciones
requeridas para ganar se mostrará mensaje. Puede que ningún
jugador gane.
clear;
clc;
tablero = zeros(3,3);
figure
plot([.5 3.5],[-1.5 -1.5], 'k','linewidth',2);

º
hold on
plot([.5 3.5],[-2.5 -2.5], 'k','linewidth',2)
plot([1.5 1.5],[-.5 -3.5], 'k','linewidth',2)
plot([2.5 2.5],[-.5 -3.5], 'k','linewidth',2)
hold off
axis off
move= input('Ingrese movimiento del jugador 1 [r,c] ')
r = move(1);
c = move(2);
tablero(r,c) = 1;
text(c,-r,'1','horizontalalignment','center','fontsize',20)
for turno = 1:4
move = input('Ingrese movimiento del jugador 2 [r,c] ');
r = move(1);
c = move(2);
tablero(r,c) = -1;
text(c,-r,'2','horizontalalignment','center','fontsize',20)
result = [sum(tablero), sum(tablero) ];
result(1) = tablero(1,1) + tablero(1,2) + tablero(1,3);
result(2) = tablero(2,1) + tablero(2,2) + tablero(2,3);
result(3) = tablero(3,1) + tablero(3,2) + tablero(3,3);
result(4) = tablero(1,1) + tablero(2,1) + tablero(3,1);
result(5) = tablero(2,1) + tablero(2,2) + tablero(2,3);
result(6) = tablero(1,3) + tablero(2,3) + tablero(3,3);
result(7) = tablero(1,1) + tablero(2,2) + tablero(3,3);

º
result(8) = tablero(1,3) + tablero(2,2) + tablero(3,1);
if any(result == -3)
disp('Jugador 2 gana')
break
endif
move = input('Ingresa el movimiento del jugador 1 [r,c] ');
r = move(1);
c = move(2);
tablero(r,c) = 1;
text(c,-r,'1','horizontalalignment','center','fontsize',20)
result = [sum(tablero), sum(tablero) ];
result(1) = tablero(1,1) + tablero(1,2) + tablero(1,3);
result(2) = tablero(2,1) + tablero(2,2) + tablero(2,3);
result(3) = tablero(3,1) + tablero(3,2) + tablero(3,3);
result(4) = tablero(1,1) + tablero(2,1) + tablero(3,1);
result(5) = tablero(2,1) + tablero(2,2) + tablero(2,3);
result(6) = tablero(1,3) + tablero(2,3) + tablero(3,3);
result(7) = tablero(1,1) + tablero(2,2) + tablero(3,3);
result(8) = tablero(1,3) + tablero(2,2) + tablero(3,1);
if any(result == 3)
disp('Jugador 1 gana')
break
endif
endfor
if all(result ~= 3) && (sum(sum(abs(board))) == 9)

º
disp('Empate')
endif

º
Ejecución:

º
6) Hacer un programa que pida el año de nacimiento de una persona y
lo mande a una función para que imprima si nació en año bisiesto o no.
clc;
a=input("escribe tu año de nacimiento: ");
bisiesto(a)
(function)
function a=bisiesto(x)
if (rem(x,400)=0) || ( rem(x,4)==0 && rem(x,100)~=0)
disp ("es bisiesto");
else
disp ("no es bisiesto");
endif
endfunction

º
Ejecución:

º
8) Hacer un programa que solicite los valores de la base menor, la
base mayor y la altura de un trapecio, enviarlos a una función que
calcule y muestre el área de dicho trapecio.
clc;
clear;
B=input("Ingrese la medida de Base mayor");
b=input("Ingrese la medida de Base menor");
h=input("Ingrese la altura");
y=areatrapecio(B,b,h)
(function)
function y=areatrapecio(B,b,h)
y=((B+b)/2)*h;
endfunction

º
Ejecución:

º
✓ Conclusión:
Esta práctica fue de utilidad en un contexto de sentencias mas
diversas, principalmente en el área de matrices, se usó de forma mas
complementaria como podemos a llegar a resolver problemas acordes
a los comandos que tengamos. En mi opinión manejar matrices con
lenguajes de programación te saca de un apuro porque son muy
complicadas de hacerlas en mano, implementarlas en lenguajes de
código soluciona muchos problemas.También se llegó a la importancia
de ahorrarnos mucho código con el uso de funciones, ya que con ella
podemos usarla en distintas hojas script que nos requieran los
códigos, podemos ejecutar funciones de formas muy breves
guardándolas dentro de comando function.

También podría gustarte