Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grupo
203036_31
Presentado a Tutor(a)
Presentado por
Bogotá 2020
Introducción
En desarrollo de la fase 5 vamos a tener un marco teórico para poder indagar y realizar la mejor
opción para problema a desarrollar, vamos a trabajar con estructuras repetitiva FOR- WHILE,
Estructuras tipo CASE, Lógica de vectores, adicional contamos con apoyo de videos y paginas a
consultar,
Para poder resolver esta parte del problema Utilizaremos parte del paso 4 practica 2, más la
información contenida en este trabajo, para empezar a organizar el código fuente
Para esta actividad de reconocimiento del curso, se debe desarrollar ÚNICAMENTE el paso
denominado Construcción individual
Problema
Establecer el orden de la matriz donde va a contener los barcos, puede elegir entre 8 a 10
filas y entre 8 a 10 columnas.
El usuario debe poder indicar la casilla sobre la cual desea verificar si hay un barco o no
(disparar)
Tener la opción de rendirse en el juego
Decidir que barcos ubicar, nombrados así: porta-aviones (5 casillas), acorazado (4
casillas) y lancha (3 casillas)
Leer las reglas de la puntuación con la que se valorará su desarrollo (las define como
programador)
Cuando el usuario termine de hundir los barcos o haya decidido no continuar con el juego, el
aplicativo debe:
Indicar la cantidad de disparos hechos
Nombre de los barcos hundidos
Puntos logrados
1. En función del desarrollo de la práctica 2 y del problema planteado en el curso, consulte y lea
información concreta que le permita construir la solución del problema (teorías, conceptos,
manuales, videos, ejercicios resueltos, entre otros)
Realice un resumen de dicha información de manera que logre construir un marco teórico que
soporte posteriormente la solución que plante
Para el desarrollo de la actividad vamos a revisar los temas de la unidad 2 sentencias de control
de flujo
Sentencias de control de flujo que podemos utilizar
El intérprete de scripts procesa las sentencias de forma secuencial, empezando por la primera
sentencia del bloque del programa. Este flujo secuencial se puede controlar mediante sentencias
condicionales que realicen ramificaciones e iteraciones. La ramificación se controla con una
sentencia IF que dirige la ejecución por una vía de acceso determinada. La iteración se controla
mediante sentencias de bucle (loop) que ejecutan una o varias sentencias de forma repetitiva.
Recursión es el proceso de una función que se llama a sí misma de forma directa o indirecta
mediante una segunda función.
Tabla 1. Sentencia If
Parte Descripción
IF Palabra clave que comienza la estructura de control.
Condición Expresión numérica o de cadena de caracteres que se evalúa como
verdadera (uno) o falsa (cero).
Sentencias-verdadero Sentencia o sentencias que se realizan cuando la condición es
verdadera.
ELSE (Opcional) Palabra clave que comienza el flujo de control False.
Sentencias-falso Sentencia o sentencias que se realizan si la condición es falsa.
Ejemplo
Parte Descripción
For Palabra clave que comienza la estructura de control del bucle.
Sentencia-inicial Sentencia que hay que ejecutar antes del bucle.
Condición Expresión numérica o de cadena de caracteres que se evalúa como
verdadera (uno) o falsa (cero). Una función que devuelve un resultado
entero. El bucle sigue ejecutándose mientras esta condición es
verdadera.
Sentencia- Una sentencia que se ejecutará al final de cada iteración.
actualización
Sentencias-bucle Sentencia o sentencias que se realizan cuando la condición es
verdadera.
Ejemplo
For ( i=0; i<3; i=I+1) waitforscreen(1000);
For ( i=0; i<3; i=i+1)
{
sendString(userid);
if (waitforstring ("Inicio de sesión finalizado") > 0)
{
success = true;
break;;
}
}
Sentencia Return
Utilice la sentencia Return para realizar una devolución desde una función o para
finalizar el bloque principal del programa. La ejecución del programa se reanuda en la
sentencia a continuación del punto en el que se llamó a una función o sale del script si
está en el bloque principal del programa. Se puede asociar un valor opcional a la sentencia
return.
Una sentencia RETURN que no esté dentro de una definición de función terminará el
script
RETURN [valor-retorno];
La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque
repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se
ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que
está en la parte superior.
Representación gráfica:
https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?
punto=12&codigo=85&inicio=0
Ejemplo
import java.util.Scanner;
public class EstructuraRepetitivaDoWhile1 {
public static void main(String[] ar) {
Scanner teclado=new Scanner(System.in);
int valor;
do {
System.out.print("Ingrese un valor entre 0 y 999 (0 finaliza):");
valor=teclado.nextInt();
if (valor>=100) {
System.out.println("Tiene 3 dígitos.");
} else {
if (valor>=10) {
System.out.println("Tiene 2 dígitos.");
} else {
System.out.println("Tiene 1 dígito.");
}
}
} while (valor!=0);
}
}
https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?
punto=12&codigo=85&inicio=0
Con la estructura de control CASE podemos evaluar una variable y realizar acciones dependiendo
del valor de esta. La diferencia con el IF consiste en que el número de posibilidades de la
evaluación de esta variable no tiene por qué ser sí o no, pudiendo hacer cosas para un número
indeterminado de valores.
Ejemplo
SELECT CASE (variable)
CASE (valor1):
(acción para caso valor1)
CASE (valor3):
(acción para caso valor2)
CASE (valor3):
(acción para caso valor3)
CASE ELSE:
(acción en caso de que no se cumpla ningún anterior caso)
END SELECT
Funciona así, primero se evalúa la variable, si esa variable tiene como valor el valor1 realizamos
las acciones asociadas al valor1. Si tiene el valor2, ejecutamos las acciones relacionadas con este
valor3. Así con cuantos valores deseemos. Por último tenemos un ELSE para realizar acciones en
caso de que no hubiesen sido ninguno de los valores anteriores. Este ELSE es opcional.
Veamos con un ejemplo esta sentencia muy sencillito. Lo primero que hace es solicitar un
número y luego informa del día de la semana con el que corresponde. Si el número no es del uno
al siete informa de ello también.
dim dia
dia = inputbox ("dime un dia de la semana")
SELECT CASE dia
CASE 1:
msgbox("El dia es LUNES")
CASE 2:
msgbox("El dia es MARTES")
CASE 3:
msgbox("El dia es MIERCOLES")
CASE 4:
msgbox("El dia es JUEVES")
CASE 5:
msgbox("El dia es VIERNES")
CASE 6:
msgbox("El dia es SABADO")
CASE 7:
msgbox("El dia es DOMINGO")
CASE ELSE:
msgbox("Tiene que ser un dia de la semana en número, del 1 al 7")
END SELECT
Lógica de Vectores
Elementos de un vector.
http://isaproglog.blogspot.com/2014/10/vectores.html
Acceso a Vectores.
http://isaproglog.blogspot.com/2014/10/vectores.html
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'. El lenguaje C es un ejemplo típico que utiliza este
modo de indexación.
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 se permite que los
índices puedan ser negativos e incluso de cualquier tipo escalar (también cadenas de caracteres).
Recorrido
Recorrer un vector significa acceder a todos y a cada uno de sus elementos desde el principio
hasta el final o viceversa.
Se puede acceder a los elementos de un vector para introducir datos (leer) en él o bien para ver su
contenido (escribir).
A la operación de acceder a todos los elementos para efectuar una acción determinada se
denomina recorrido del vector.
Esta operación se realiza usando estructuras repetitivas, cuya variable de control I, se utiliza
como subíndice del vector (por ejemplo V(i). El incremento del contador del bucle producirá el
tratamiento sucesivo de los elementos del vector
Asignación
Si se quiere asignar valores a todos los componentes del vector, se debe recurrir a las estructuras
repetitivas.
http://isaproglog.blogspot.com/2014/10/vectores.html
Operación de Lectura
Ejemplo:
http://isaproglog.blogspot.com/2014/10/vectores.html
Escritura
http://isaproglog.blogspot.com/2014/10/vectores.html
videos apoyo
https://youtu.be/VcKrCJFGvkk
https://youtu.be/aEyEcH7SEmE
https://youtu.be/FZ0R-ubCLu4
https://youtu.be/1RBZOdF0hik
https://youtu.be/khV_CqgfF14
https://youtu.be/B5qV0ItFkLQ
Seleccione por lo menos tres elementos del código que desarrollo para la práctica 2, cópielos y
describa como los usaría en la construcción de la solución del problema
Paso a paso
Seleccionar equipo A o B
Ejecutar el juego
Organizar los barcos horizontalmente y verticalmente
1.
2.dat_busc = input('ingrese el valor del dato que desea buscar;');%solicita y almacenar dato que
se quiere buscar.
[pf,pc]=find(R==dat_busc);%determina cordenadas del dato.
[v_rep,cont_v] = size(pf);%determine numero de veces que se repite
3.
Este código lo podemos ejecutar para hacer repetitivo los disparos hasta que halla un ganador
Conclusiones
En desarrollo del paso 5 aporte individual nos apoyamos con estructuras para utilizar en matlab
para el desarrollo del problema a resolver
Aportamos ideas para poder construir el algoritmo para desarrollo del problema apoyados en paso
4 practica 2
Investigamos sobre estructuras FOR- WHILE, Estructuras tipo CASE, Lógica de vectores,
Bibliografía
https://www.ibm.com/support/knowledgecenter/es/SSDKXQ_6.3.0/com.ibm.itm.doc_6.2.2/termi
nal_scriptflowcontrol_r.htm
https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?
punto=12&codigo=85&inicio=0
http://isaproglog.blogspot.com/2014/10/vectores.html
https://www.sqlshack.com/es/sentencia-case-en-sql/