Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACION Y ALGORITMOS
Nombre de la Tarea
Estrategias para combatir la
inseguridad con base en BIG DATA
Unidad #
6y7
Índice
INTRODUCCION......................................................................................................................... 3
PROBLEMAS PLANTEADOS......................................................................................................4
CONCLUSIONES....................................................................................................................... 23
BIBLIOGRAFIA.......................................................................................................................... 25
Pag 2
Unidad #: Trabajo de aplicación
Programación y algoritmos
INTRODUCCION
Si bien es cierto, hoy en día existen lenguajes populares y utilizados en ciencia de datos tales
como R o Python, las bases que nos ofrecen los lenguajes como C o C++ para el manejo de los
algoritmos y las estructuras básicas de datos nos dan una comprensión y herramientas de
lógica que nos ayudarán de manera complementaria en el ámbito profesional.
Elemento clave como las declaraciones condicionales, los bucles, las funciones, las estructuras
de datos son concepto de vital importancia para entender y aplicar una vez se tienen
interiorizados.
Pag 3
Unidad #: Trabajo de aplicación
Programación y algoritmos
PROBLEMAS PLANTEADOS
Imprimir en pantalla la tabla de multiplicar del número que ingrese el usuario hasta el 10, por
ejemplo, si el usuario teclea el número 15, se debe presentar: 15 * 1 = 15 15 * 2 = 30 15 * 3 =
45 15 * 4 = 60 15 * 5 = 75 15 * 6 = 90 15 * 7 = 105 15 * 8 = 120 15 * 9 = 135 15 * 10 = 150 El
proceso para desarrollar la tabla de multiplicar debe ser utilizando algunos de las funciones de
repetición (for, while o do while)
Algoritmo tablaMultiplicar
numero <- 0 // Defino una variable que almacenará el número a multiplicar
resultado <- 1 // Defino una variable que almacenará el resultado
Escribir ' Escribir el número a multiplicar'
Leer numero
Para i<-1 Hasta 10 Con Paso PASO Hacer // Este es el ciclo principal
resultado <- numero*i // La operación a realizar
Escribir numero,' X ',i,' Es igual a : ',resultado
i <- i+1
FinPara
FinAlgoritmo
Pag 4
Unidad #: Trabajo de aplicación
Programación y algoritmos
Diagrama de flujo
Código C++
#include <iostream>
Pag 5
Unidad #: Trabajo de aplicación
Programación y algoritmos
numero = 0;
resultado = 1;
cout << " Escribir el número a multiplicar" << endl;
cin >> numero;
for (i=1;i<=10;i+=paso) {
resultado = numero*i;
cout << numero << " X " << i << " Es igual a : " << resultado << endl;
i = i+1;
}
return 0;
}
Pantalla de ejecución
Pag 6
Unidad #: Trabajo de aplicación
Programación y algoritmos
Elevar un numero a una potencia determinada, por ejemplo, 5 elevado a la cuarta potencia es
igual a: 5*5*5*5 = 625. Debes utilizar una función iterativa, recursiva o ambas en este programa.
Algoritmo planteado a nivel de Pseudocódigo
Algoritmo potenciaDeNumero
base <- 0 // Defino variable que almacenará la base
exponente <- 0 // Defino variable que almacena el exponente
resultado <- 1
Escribir 'Indicar la base ..:'
Leer base
Escribir 'Indicar el exponente .. :'
Leer exponente
Si exponente=0 Entonces
resultado <- 1
SiNo
Si exponente=1 Entonces
resultado <- base
SiNo
Para i<-1 Hasta exponente Con Paso PASO Hacer
resultado <- resultado*base
i <- i+1
FinPara
FinSi
FinSi
Escribir 'La potencia del numero [',base,'] elevado a la [',exponente,'] es : ',resultado
FinAlgoritmo
Pag 7
Unidad #: Trabajo de aplicación
Programación y algoritmos
Diagrama de flujo
Código C++
#include<iostream>
using namespace std;
int main(int argc, char** argv) {
float base;
float exponente;
float i;
float paso;
float resultado;
base = 0;
exponente = 0;
resultado = 1;
cout << "Indicar la base ..:" << endl;
cin >> base;
Pag 8
Unidad #: Trabajo de aplicación
Programación y algoritmos
Pag 9
Unidad #: Trabajo de aplicación
Programación y algoritmos
Pag 10
Unidad #: Trabajo de aplicación
Programación y algoritmos
Pag 11
Unidad #: Trabajo de aplicación
Programación y algoritmos
Código C++
#include <iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input
loop */
Pag 12
Unidad #: Trabajo de aplicación
Programación y algoritmos
Pantalla de ejecución
Pag 13
Unidad #: Trabajo de aplicación
Programación y algoritmos
Una tienda de ropa está realizando un inventario del almacén y los datos que requiere son el id
del artículo y la cantidad existente. Utiliza un árbol binario para ingresar a una estructura
dinámica el id del artículo y la cantidad. La salida que debe generar el programa es: Id del
artículo 1, cantidad Id del artículo 2, cantidad Id del artículo 3, cantidad La cantidad de artículos
ingresados puede o no ser solicitados al usuario y la manera de ingresar los datos al árbol
binario puede ser directa en el código o solicitada al usuario.
Algoritmo a nivel de pseudocódigo
// Esta es una función predefinida que me permite recorrer el árbol es imprimirlo
Funcion printTree (node)
Escribir 'Imprime el arbol'
FinFuncion
// Función predefinida para adicionar un nodo
Funcion resp <- addNode (id,qtyInput,node)
Escribir 'Adiciona el nodo'
FinFuncion
// Algoritmo principal
Algoritmo gestionArbolBinario
resp <- falso
option <- 0
idTemp <- 0
qtyTemp <- 0
tree <- null
Repetir
Escribir ' GESTION DE ARBOLES BINARIOS (0 - Para salir)'
Escribir ' Ingreso de inventario'
Escribir ' 1. Ingresar producto y cantidad '
Escribir ' 2. Imprimir inventario '
Leer option
Segun option Hacer
Pag 14
Unidad #: Trabajo de aplicación
Programación y algoritmos
opcion_1:
Escribir 'Ingrese el id del producto'
Leer idTemp
Escribir 'Ingrese la cantidad en existencia'
Leer qtyTemp
resp <- addNode(idTemp,qtyTemp,tree)
Si resp=false Entonces
Escribir 'Ese producto ya fue ingresado'
SiNo
Escribir 'Producto ingresado correctamente'
FinSi
opcion_2:
printTree(tree)
De Otro Modo:
Escribir 'Opción incorrecta'
FinSegun
Hasta Que option<>0
Escribir 'lista final de inventario'
printTree(tree)
FinAlgoritmo
Pag 15
Unidad #: Trabajo de aplicación
Programación y algoritmos
Diagrama de flujo
Pag 16
Unidad #: Trabajo de aplicación
Programación y algoritmos
Código C++
#include <iostream>
#include <random>
#include <stdio.h>
#include <conio.h>
struct bstNode {
int idProduct;
int qty;
struct bstNode *left; // Apuntador hacia la izquierda
struct bstNode *right; // Apuntador hacia la derecha
};
// Un Nodo actual por defe
Pag 17
Unidad #: Trabajo de aplicación
Programación y algoritmos
if (root == NULL){
node newNode = new(struct bstNode); // Creamos un nuevo nodo de tipo node
newNode->idProduct = id; // Almacenamos el id del producto
newNode->qty = qtyInput; // Almacenamos la cantidad
newNode->left = NULL; // Por defecto el lno izquier es Nulo
newNode->right = NULL; // Por defecto el nodo derecho es Nulo
root = newNode;
answer = true;
}else{
if (id < root->idProduct){ // En este caso comparo el ID porque voy a ordenar por
ID y comparo si es menor ai Id de la raiz
addNode(id,qtyInput,root->left);
}else if(id>root->idProduct){
addNode(id,qtyInput,root->right);
} else{
answer = false; // Significa que llegó a un id repetido
}
}
return answer;
}
// Imprimir el arbol en Orden del ID de producto
void printTree(node root){
if (root != NULL){
printTree(root->left); // Primero buscamos el nodo izquierdo
cout <<"ID: "<<root->idProduct<<","<<"Existencia: "<< root->qty<<endl; // Se
imprime la raiz
printTree(root->right); // Luego buscamos el derecho
}
}
Pag 18
Unidad #: Trabajo de aplicación
Programación y algoritmos
switch (option){
case 1: // Se adicionarán nodos de inventario
do{
cout << "Ingrese el id del producto (0 - Para Salir)" << endl;
Pantallas de ejecución
Muestra un menú
Ingresando productos
Pag 21
Unidad #: Trabajo de aplicación
Programación y algoritmos
Pag 22
Unidad #: Trabajo de aplicación
Programación y algoritmos
CONCLUSIONES
A partir de lo visto durante este ciclo y de la participación en los foros, mis conclusiones son:
Los algoritmos se han convertido en una herramienta muy importante, no solo pata programar,
sino también para mejorar nuestra capacidad de análisis y diseño de soluciones a problemas de
cualquier tipo.
Los modelos y teorías que conforman los paradigmas y en los que nos basamos para dar
solución a determinados problemas, son importantes dado que son regularmente el resultado
de prácticas más utilizadas en áreas del conocimiento.
Estos se orientan en controlar la ejecución de los pasos de los algoritmos, con lo cual los
programas pueden tomar decisiones. Estas decisiones se construyen por medio de las
Estructuras selectivas, en las que se define un conjunto de alternativas de flujo, y de las cuales
solo se podrá elegir una, realizando a evaluación de una o más condiciones.
Luego procederemos con la ejecución del algoritmo. Todas las alternativas finalizan en un paso
común, y posteriormente continuaremos el programa de manera secuencial.
Las estructuras condicionales nos permiten plantear la solución o las soluciones a un problema,
buscando considerar los distintos casos o escenarios que se pueden presentar. De esta
manera, podemos utilizar un algoritmo distinto para enfrentar cada caso que pueda existir en la
problemática analizada.
Pag 23
Unidad #: Trabajo de aplicación
Programación y algoritmos
Si se quieren validar por ejemplo reglas del negocio en un formulario ingresado por un usuario,
es muy práctico hacerlo con arreglos porque lo que hacemos es traer los datos desde un
archivo físico y, una vez disponible la información en un arreglo una lista será mucho más fácil y
rápido trabajar sobre este.
Los grafos son estructuras muy importantes en las que podemos almacenar grandes volúmenes
de datos e información y adicionalmente permiten entender las relaciones entre estos.
Los grafos están compuestos por nodos en los que podemos encontrar diferentes tipos de
datos y estos pueden estar relacionados o conectados de diferentes maneras o por diferentes
aristas.
BIBLIOGRAFIA
Pendiente
Pag 25