PASO5_JULY VARGAS

Encabezado: Paso 5: Construcción Individual Paso 5: Construcción Individual Presentado por July Estefania Vargas Macia

Views 628 Downloads 7 File size 502KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Encabezado: Paso 5: Construcción Individual

Paso 5: Construcción Individual

Presentado por July Estefania Vargas Macias Dirigido a: Tutor: Steven Bedoya

Universidad Nacional Abierta Y A Distancia Escuela De Ciencias Básicas, Tecnología E Ingeniería Software Para Ingeniería Grupo: 203036_6 2020

Encabezado: Paso 5: Construcción Individual

PASO 5: CONSTRUCCIÓN INDIVIDUAL MARCO TEÓRICO (Información para solución del problema planteado) JUEGO BATALLA NAVAL

También llamado juego de barquitos es un juego de estrategia y de suerte que involucra a dos participantes. Al comenzar cada jugador posiciona sus barcos en el primer tablero, de forma secreta, invisible al oponente. Cada uno ocupa, según sus preferencias, una misma cantidad de casillas, horizontal y/o verticalmente, las que representan sus naves. Ambos participantes deben ubicar igual número de naves, por lo que es habitual, antes de comenzar, estipular de común acuerdo la cantidad y el tamaño de las naves que se posicionarán en el tablero. Una vez todas las naves han sido posicionadas, se inicia una serie de rondas. En cada ronda, cada jugador en su turno «dispara» hacia la flota de su oponente indicando una posición (las coordenadas de una casilla), la que registra en el segundo tablero. Si esa posición es ocupada por parte de un barco contrario, el oponente cantará ¡Averiado! (¡Toque!, ¡Tocado! o ¡Impacto!) si todavía quedan partes del barco (casillas) sin dañar, o ¡Hundido! si con ese disparo la nave ha quedado totalmente destruida (esto es, si la acertada es la última de las casillas que conforman la nave que quedaba por acertar). El jugador que ha tocado un barco en su anterior jugada volverá a disparar hasta que falle. Si la posición indicada no corresponde a una parte de barco alguno, cantará ¡Agua! El juego puede terminar con un ganador o en empate: •



Ganador: quien destruya primero todas las naves de su oponente será el vencedor (como en tantos otros juegos en los que se participa por turnos, en caso de que el participante que comenzó la partida hunda en su última jugada el último barco de su oponente que quedaba a flote, el otro participante tiene derecho a una última posibilidad para alcanzar el empate, a un último disparo que también le permita terminar de hundir la flota contraria, lo que supondría un empate). empate: si bien lo habitual es continuar el juego hasta que haya un ganador, el empate también puede alcanzarse si, tras haber disparado cada jugador una misma cantidad de tiros fija y predeterminada (como una variante permitida en el juego), ambos jugadores han acertado en igual número de casillas contrarias.

Encabezado: Paso 5: Construcción Individual

SENTENCIAS DE CONTROL DE FLUJO MATLAB Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Quiere decir, que permite que unas condiciones se lleven a cabo cuando el programador lo desee, ya sea un número determinado de veces o hasta un cierto error, etc. Las estructuras de control tienen un único punto de entrada y un único punto de salida, por lo que están estructuradas. Se pueden clasificar en:



Estructuras de bifurcación

Se utilizan cuando en el programa se debe decidir en qué situación se tiene que cumplir una cierta condición. Su estructura básica es el condicional IF. Para cuando se quieren realizar operaciones cuando no se cumple la condición, se utiliza ELSE. En Matlab se escribe:

Si se quieren incluir más condiciones en caso de la negación inicial se puede utilizar el ELSEIF de este modo:

Ejemplo:

Por último, si se quiere poner un grupo de acciones para cada uno de los valores de una expresión, se puede utilizar el SWITCH, de esta manera:

Encabezado: Paso 5: Construcción Individual



Estructuras repetitivas

Se utilizan cuando hay que repetir más de una vez un grupo de instrucciones. Hay dos tipos fundamentales: 1. Bucle FOR: Una variable tomará valores desde un número inicial, hasta uno final, con un determinado paso (que es la distancia entre dos valores). En Matlab, el paso por defecto es de valor 1, pero se puede cambiar. Cada vez que la variable cambie su valor, se realizarán las operaciones que se hayan programado después. El bucle FOR se utiliza cuando se sabe previamente el número de interacciones que se van a realizar. Los parámetros iniciales, final y el paso pueden ser variables previamente definidas. El paso puede ser negativo, siempre que el valor inicial sea mayor que el final. El bucle FOR se escribe en Matlab del siguiente modo:

Ejemplo:

2. Bucle WHILE: Se da una condición que se tiene que evaluar, que se realizará siempre que sea verdadera. En el momento en el que la condición sea falsa, cesará. Por tanto, no se conoce de antemano el número de interacciones a realizar. Las variables utilizadas tienen que estar inicializadas antes del bucle, que cumplan la condición la primera vez por lo menos y cambiar de valor en cada iteración dentro del bucle (de lo contrario se producirá un bucle infinito). En Matlab, se escribe como:

Encabezado: Paso 5: Construcción Individual

Ejemplo:



Sentencias break continue

Se utiliza para manipular el comportamiento normal de los bucles, ya sean for, if o while, y así saltarse algunas repeticiones. La sentencia BREAK permite terminar el bucle de golpe. Al llegar a una instrucción BREAK, el programa sale del bucle y continúa ejecutando el resto de los comandos. Ejemplo:

La sentencia CONTINUE se utiliza para saltarse alguna iteración dentro de un bucle for o while, saltándose dentro de la iteración todos los comandos hasta el final, hasta la siguiente iteración.

Encabezado: Paso 5: Construcción Individual

PSEINT Las sentencias o estructuras de control de flujo permiten cambiar y controlar la ejecución del programa. Pueden ser condicionales e iterativas o de repetición. •

Condicional simple (SI-Entonces)

Con la estructura de control condicional si-entonces se evalúa una condición, y dependiendo del resultado, verdadero o falso, se ejecuta un bloque de instrucciones u otro. Ejemplo:

Encabezado: Paso 5: Construcción Individual



Selección múltiple

Con esta estructura también se evalúa una variable, pero se pueden incluir varias opciones, es decir, se pueden tomar varios caminos con la misma estructura, no únicamente dos, como con la estructura si-entonces. Cada opción tiene su bloque de instrucciones a ejecutar.



Bucle o ciclo mientras

Esta estructura de control repetitiva permite que mientras se cumpla una condición, se ejecute un bloque de instrucciones determinado.

Encabezado: Paso 5: Construcción Individual •

Bucle o ciclo repetir

Esta estructura de control repetitiva es muy parecida a la anterior, pero mientras en la anterior la condición se evalúa al principio de la estructura, en ésta se hace al final. Aquí se repite un bloque de instrucciones hasta que se cumple una condición determinada.



Bucle o ciclo Para

Es otra estructura de control repetitiva pero en este caso la propia estructura inicializa una variable que se va a usar de contador, además, va sumándole la cantidad paso y por último incluye el valor final que debe tomar la variable para salir del bucle.

Encabezado: Paso 5: Construcción Individual

LÓGICA DE VECTORES Un vector es un arreglo unidimensional, es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo. Elementos de un vector.

Acceso a vectores

FORMAS DE INDEXAR LOS ELEMENTOS. Existen tres formas de indexar los elementos de un vector: ✓ Indexación base-cero (0): en este modo el primer elemento del vector será la componente cero ('0') del mismo, es decir, tendrá el índice '0'. En consecuencia, si el vector tiene 'n' componentes la última tendrá como índice el valor 'n-1'. ✓ Indexación base-uno (1): en esta forma de indexación, el primer elemento de la matriz tiene el índice '1' y el último tiene el índice 'n' (para una matriz de 'n' componentes). ✓ Indexación base-n (n): este es un modo versátil de indexación en la que el índice del primer elemento puede ser elegido libremente, en algunos lenguajes de programación

Encabezado: Paso 5: Construcción Individual

se permite que los índices puedan ser negativos e incluso de cualquier tipo escalar (también cadenas de caracteres). OPERACIÓN DE LECTURA Implica acceder a los elementos de un vector para introducir datos. Ejemplo:

MATRICES Y ARREGLOS Un arreglo es una estructura de datos o más, un espacio de memoria que permite almacenar una colección de elementos, todos del mismo tipo. Conviene imaginar un arreglo como una secuencia contigua de celdas o casillas en cada una de las cuales se puede guardar un elemento de la colección

Como se visualiza en la imagen este arreglo de siete casillas cada una de las cuales se puede guardar un dato. La dimensión o tamaño es la cantidad de casillas que lo conforman. Cada una de las casillas de un arreglo tiene asociado un numero que la identifica de manera única. A este numero se le llama índice o dirección. Los lenguajes de programación permiten que el programador declare arreglos de cualquier tipo y prácticamente de cualquier tamaño.

MATLAB Todas las variables de MATLAB son arreglos multidimensionales, sin importar el tipo de datos. Una matriz es un arreglo bidimensional. Ejemplo: Para crear un arreglo con cuatro elementos en una fila única, separe los elementos con una coma (,) o un espacio. a = [1 2 3 4] a = 1×4 1

2

3

4

Encabezado: Paso 5: Construcción Individual

Este tipo de arreglo es un vector fila. Para crear una matriz con varias filas, separe las filas con punto y coma. a = [1 2 3; 4 5 6; 7 8 10] a = 3×3 1 4 7

2 5 8

3 6 10

Otra forma de crear una matriz es usando una función, como ones, zeros o rand. Por ejemplo, cree un vector columna de ceros de 5 por 1. z = zeros(5,1) z = 5×1 0 0 0 0 0 PSEINT Ejemplo

Encabezado: Paso 5: Construcción Individual

Video apoyo para el desarrollo del juego Código desarrollado en Pseint Link: https://www.youtube.com/watch?v=LNAHYhup33s

SECCIONES DE CÓDIGO DE LA PRÁCTICA 2

Primer Elemento m=input(prompt); Vmin=input("Indicar valor mínimo para la matriz: "); Vmax=input("Indicar Valor máximo para la matriz: "); varValores= randi([Vmin Vmax],m,m); clc xn=input("¿Desea ver la matriz creada?(1=si // enter / 0=no: "); if xn==1 fprintf("Matriz creada.\n\n") varValores end varValores_old= varValores;

Descripción: Para escoger el tamaño del tablero de 8 a 10 filas y columnas. Guardar los valores para la matriz original. for i=1:cont clc fprintf("Matriz Creada\n\n") varValores_old xn=input("Desea modificar el valor de la posición ("+tmp(i,1)+","+tmp(i,2)+"? (1=si/0=no)\n\n"); if xn==1 var=input("Asigne nuevo valor: "); varValores(tmp(i,1),tmp(i,2))=var; fprintf("se ha modifiado "+i+" de "+cont+" posiciones \n\n");

Descripción: Donde el usuario puede indicar la casilla (posición) sobre la cual desea verificar si hay un barco o no y disparar. fprintf("El "+var+" aparece repetido en las siguientes posiciones:\n\n") tmp=zeros(2,2); cont=0;

Descripción: Donde se le puede indicar al usuario la cantidad de disparos hechos y puntos logrados.

Encabezado: Paso 5: Construcción Individual

REFERENCIAS BIBLIOGRÁFICAS •

Balbi, Daniel (2018). Batalla Naval. Recuperado el 4 de junio de 2020 de: https://www.youtube.com/watch?v=LNAHYhup33s



Wikidot.com(2020). Guía Matlab para “noobs”. Recuperado el 4 de junio de 2020 de: http://guiamatlabnoobs.wikidot.com/estructuras-de-control



Wikidot.com(2020). Guía Matlab para “noobs”. Recuperado el 4 de junio de 2020: http://guiamatlabnoobs.wikidot.com/estructuras-de-control



Terepebernal (2020). Algoritmos en Pseudocodigo con Pseint lo más básico. Recuperado el 4 de junio de 2020 de: https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-masbasico/#:~:text=Sentencias%20o%20estructuras%20de%20Control%20de%20Flujo %20en%20PSeInt,e%20iterativas%20o%20de%20repetici%C3%B3n.



Blogger (2014). Programación Lógica. Recuperado el 4 de junio de 2020 de: http://isaproglog.blogspot.com/2014/10/vectores.html



The MathWorks, Inc.(2020). Matrices y Arreglos. Recuperado el 4 de junio de 2020 de: https://la.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html



Kathery Correa (2017). Arreglos y Matrices. Recuperado el 4 de junio de 2020 de: https://es.slideshare.net/KatheryCorreaQuiroz/arreglos-y-matrices-74731081



Wikipedia (2020). Batalla Naval (juego). Recuperado el 4 de junio de 2020 de: https://es.wikipedia.org/wiki/Batalla_naval_(juego)#:~:text=Desarrollo%20del%20j uego,Una%20vez%20todas&text=En%20cada%20ronda%2C%20cada%20jugador,Toca do!%20o%20%C2%A1Impacto!)



Heiver Cuesta (2012). Matrices con Pseint. Recuperado el 4 de junio de 2020 de: https://es.scribd.com/doc/98059129/Matrices-con-PseInt