Este documento presenta un taller sobre redes que incluye preguntas y respuestas sobre temas como mascaras de subred, direcciones IP, conversión entre sistemas numéricos y cálculo de subredes y hosts válidos. El taller fue impartido por el profesor Dewar Rico de la Universidad Francisco de Paula Santander para los estudiantes Yasmin Martínez y Juan Camilo Jaimes.
Este documento describe la implementación de un árbol binario de búsqueda en Java. Define una clase Nodo que representa cada nodo del árbol y una clase ABB que contiene métodos para insertar nodos, recorrer el árbol de diferentes formas (preorden, inorden y posorden), y eliminar nodos. También incluye un método main que prueba las operaciones del árbol binario de búsqueda.
Rangos de IPs Públicas y Privadas
•Se llaman privadas o reservadas, ya que estos rangos se utilizan para conectar a varios computadores y/o dispositivos dentro de una LAN.
Este documento contiene 15 consultas SQL de ejemplo sobre tablas de estudiantes, autores y libros. Las consultas realizan funciones como listar datos, filtrar por criterios específicos, sumar valores y calcular promedios.
Este documento explica las matrices y los punteros en C. Brevemente, define una matriz como una estructura de datos que almacena un conjunto de datos del mismo tipo bajo un nombre común, identificados por uno o más índices. Define un puntero como una variable que contiene una dirección de memoria, como la dirección de otra variable. Luego describe operaciones básicas con punteros como asignación, incremento/decremento, suma/resta y comparación. Finalmente, introduce conceptos como matrices unidimensionales, cadenas de caracteres y punteros a funciones.
Una pila es una estructura de datos que sigue el principio LIFO (último en entrar, primero en salir), donde los elementos se agregan y eliminan de la parte superior de la pila. Existen dos formas de implementar una pila en C++: mediante un vector estático, que limita el tamaño máximo, o mediante nodos dinámicos enlazados, que permite un tamaño variable. Las operaciones básicas de una pila son crear, apilar, desapilar y consultar la cima.
Las listas enlazadas son estructuras de datos dinámicas en las que cada nodo apunta al siguiente. Existen listas simples, doblemente enlazadas y circulares. Las listas permiten insertar nodos de forma dinámica y recorrerlos de forma secuencial, a diferencia de los arrays donde el acceso es aleatorio pero la inserción requiere redimensionar.
Este documento presenta un taller sobre redes que incluye preguntas y respuestas sobre temas como mascaras de subred, direcciones IP, conversión entre sistemas numéricos y cálculo de subredes y hosts válidos. El taller fue impartido por el profesor Dewar Rico de la Universidad Francisco de Paula Santander para los estudiantes Yasmin Martínez y Juan Camilo Jaimes.
Este documento describe la implementación de un árbol binario de búsqueda en Java. Define una clase Nodo que representa cada nodo del árbol y una clase ABB que contiene métodos para insertar nodos, recorrer el árbol de diferentes formas (preorden, inorden y posorden), y eliminar nodos. También incluye un método main que prueba las operaciones del árbol binario de búsqueda.
Rangos de IPs Públicas y Privadas
•Se llaman privadas o reservadas, ya que estos rangos se utilizan para conectar a varios computadores y/o dispositivos dentro de una LAN.
Este documento contiene 15 consultas SQL de ejemplo sobre tablas de estudiantes, autores y libros. Las consultas realizan funciones como listar datos, filtrar por criterios específicos, sumar valores y calcular promedios.
Este documento explica las matrices y los punteros en C. Brevemente, define una matriz como una estructura de datos que almacena un conjunto de datos del mismo tipo bajo un nombre común, identificados por uno o más índices. Define un puntero como una variable que contiene una dirección de memoria, como la dirección de otra variable. Luego describe operaciones básicas con punteros como asignación, incremento/decremento, suma/resta y comparación. Finalmente, introduce conceptos como matrices unidimensionales, cadenas de caracteres y punteros a funciones.
Una pila es una estructura de datos que sigue el principio LIFO (último en entrar, primero en salir), donde los elementos se agregan y eliminan de la parte superior de la pila. Existen dos formas de implementar una pila en C++: mediante un vector estático, que limita el tamaño máximo, o mediante nodos dinámicos enlazados, que permite un tamaño variable. Las operaciones básicas de una pila son crear, apilar, desapilar y consultar la cima.
Las listas enlazadas son estructuras de datos dinámicas en las que cada nodo apunta al siguiente. Existen listas simples, doblemente enlazadas y circulares. Las listas permiten insertar nodos de forma dinámica y recorrerlos de forma secuencial, a diferencia de los arrays donde el acceso es aleatorio pero la inserción requiere redimensionar.
Este documento presenta una introducción al lenguaje SQL y su sublenguaje de definición de datos (DDL). Explica los conceptos básicos de las tablas, columnas y tipos de datos, e introduce las instrucciones SQL para crear, modificar y eliminar tablas.
Este documento describe las diferencias entre estructuras de datos lineales y no lineales. Las estructuras lineales como listas, pilas y colas tienen una relación uno a uno entre elementos, mientras que las estructuras no lineales como árboles y grafos tienen relaciones uno a muchos, muchos a uno o muchos a muchos. Se explican los tipos y aplicaciones de listas, pilas, colas, árboles y grafos.
El documento explica las diferencias entre las direcciones IPv4 e IPv6. IPv4 usa direcciones de 32 bits, limitando el número disponible a 4.3 mil millones, mientras que IPv6 usa direcciones de 128 bits permitiendo un número casi infinito de 3.4 x 10^38 direcciones disponibles. También describe cómo IPv4 divide las direcciones en clases A, B, C, D y E dependiendo del tamaño de la red, y cómo IPv6 representa las direcciones de 128 bits como ocho grupos de cuatro dígitos hexadecimales.
Este documento describe diferentes métodos para ordenar arreglos, incluyendo métodos directos como el intercambio directo, inserción directa y selección directa, así como el método avanzado de ordenación rápida (QuickSort). Define arreglos y cómo declararlos, inicializarlos y acceder a ellos. Explica cada método de ordenación con ejemplos de código.
Fundamentos de redes: 6.3 Direccionamiento de red IPv4 Francesc Perez
El documento contiene preguntas sobre conceptos básicos de direccionamiento IP como clases de direcciones, máscaras de subred, direcciones de red y broadcast. Algunas preguntas identifican qué direcciones pueden asignarse a hosts, cuáles son direcciones privadas o públicas, y cómo calcular el número de subredes y hosts posibles a partir de una dirección y máscara dada.
Los árboles B+ son una mejora de los árboles B que permiten acceso aleatorio y secuencial rápido a datos. En los árboles B+, todas las claves se almacenan en las hojas para facilitar el recorrido secuencial, y pueden duplicarse en nodos internos. Las operaciones de búsqueda, inserción y eliminación siguen procesos similares a los árboles B, pero manejan la duplicidad de claves.
Este documento presenta los conceptos fundamentales del modelo relacional de bases de datos, incluyendo la terminología como relaciones, atributos, tuplas y dominios. Explica las propiedades de las relaciones, claves y restricciones de integridad. También describe el propósito y actualización de las vistas.
Método de ordenación por inserción directatavo_3315_
El documento describe el algoritmo de ordenación por inserción directa. El algoritmo ordena un arreglo insertando cada elemento en su posición correcta mediante comparaciones. En cada pasada, se analiza un elemento y se desplaza por la parte ordenada del arreglo hasta encontrar su lugar. Cuando todos los elementos han sido analizados, el arreglo está completamente ordenado. El algoritmo es estable y tiene una complejidad de O(n^2) en el peor caso y O(n) en el mejor caso.
The document compares differences between correlated and nested subqueries, weak and strong entity sets, char and varchar data types in SQL Server, and SQL Server 2005 and 2008. A correlated subquery runs once for each outer query row and references the outer row, while a nested subquery runs once and does not reference the outer row. A weak entity set lacks a primary key while a strong entity set has one. Char occupies a fixed length while varchar occupies variable length plus 2 bytes for the length. SQL Server 2005 introduced XML datatype while 2008 encrypted entire databases and separated date and time datatypes.
Los tablespaces en Oracle son espacios de almacenamiento donde se guardan los objetos de la base de datos como tablas e índices. Existen diferentes tipos de tablespaces como los temporales, de solo lectura y de deshacer cambios. Los tablespaces se pueden manipular creando, eliminando o cambiando su tamaño y estado entre online y offline.
La clase nodo define la estructura de un nodo al incluir los atributos Dato y Liga, y los constructores para inicializarlos. La clase ListaSimple maneja una lista simple enlazada mediante el uso de objetos nodo, incluyendo métodos para crearla, insertar y eliminar nodos, y recorrerla para mostrar sus elementos.
El documento resume los conceptos clave del modelo de datos relacional, incluyendo la definición de relación, tupla, atributo y dominio. Explica cómo las entidades y relaciones de un modelo conceptual se mapean a tablas en el modelo relacional y las restricciones de integridad inherentes a este modelo. También proporciona ejemplos de cómo se representan diferentes tipos de relaciones como 1:N, N:M y 1:1.
ArrayList es una clase que implementa la interfaz Collection y permite almacenar una colección de objetos de forma ordenada. Los elementos de un ArrayList se almacenan en un array cuyo tamaño es dinámico. Un ArrayList permite recorrer y modificar sus elementos de manera eficiente a través de un iterador.
Este documento proporciona una introducción al lenguaje SQL. Explica que SQL se utiliza para definir, manipular y controlar el acceso a los datos almacenados en sistemas de gestión de bases de datos relacionales. Describe los componentes clave de SQL como las sentencias DDL, DML y DCL y sus usos para crear bases de datos, tablas, consultar, insertar y modificar datos, y controlar el acceso. También cubre conceptos como tipos de datos, cláusulas, operadores y funciones de SQL.
Una cola es una estructura de datos en la que los elementos se almacenan y eliminan en orden FIFO (primero en entrar, primero en salir). Se utilizan en sistemas informáticos y de transporte para procesar elementos en el orden en que ocurren. Una cola permite insertar elementos en un extremo y eliminarlos en el otro, representándose comúnmente como una lista enlazada o un arreglo.
La recursividad divide problemas complejos en subproblemas más pequeños del mismo tipo hasta alcanzar un caso base simple. Se ilustran ejemplos como el factorial, la serie de Fibonacci y el problema de las Torres de Hanoi. La recursividad es útil para problemas que pueden expresarse como una secuencia de pasos gobernados por reglas no ambiguas.
The document discusses how hash maps work and the process of rehashing. It explains that inserting a key-value pair into a hash map involves: 1) Hashing the key to get an index, 2) Searching the linked list at that index for an existing key, updating its value if found or adding a new node. Rehashing is done when the load factor increases above a threshold, as that increases lookup time. Rehashing doubles the size of the array and rehashes all existing entries to maintain a low load factor and constant time lookups.
Este documento describe el funcionamiento de una pila, incluyendo su estructura, operaciones básicas como apilar, desapilar y recorrer elementos, y nuevas funciones como contar elementos y calcular el promedio. Explica que una pila sigue el principio LIFO (último en entrar, primero en salir) y describe las funciones necesarias para inicializar, insertar, eliminar y recorrer elementos de una pila.
Este documento resume los principales comandos de programación en C#, incluyendo if-else, while, break, switch, goto, return, throw, try-catch, default, for, foreach, do y continue. Explica brevemente el uso y propósito de cada uno de estos comandos.
El documento describe los conceptos fundamentales de direccionamiento IP en redes locales, incluyendo las clases de redes (A, B y C), las direcciones reservadas (127.0.0.1 y 255.255.255.255), y el propósito de las máscaras de subred. La organización InterNIC ha definido tres tipos de redes (clases A, B y C) según el número de redes e hosts requeridos, asignando diferentes rangos de direcciones IP a cada clase. Las máscaras de subred delimitan el ámbito de una red y distinguen la parte de
Ingeniería en Sistemas Computacionales
Simulación
Algoritmo congruencial cuadrático
Programa que genera una serie de números pseudoaleatorios basándose en el algoritmo congrencial cuadratico, al final los muestra en pantalla.
Diplomado para la Formación y Desarrollo de las Competencias Docentes
MÓDULO 4. Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
Ejemplo de 3 instrumentos de evaluación
Este documento presenta una introducción al lenguaje SQL y su sublenguaje de definición de datos (DDL). Explica los conceptos básicos de las tablas, columnas y tipos de datos, e introduce las instrucciones SQL para crear, modificar y eliminar tablas.
Este documento describe las diferencias entre estructuras de datos lineales y no lineales. Las estructuras lineales como listas, pilas y colas tienen una relación uno a uno entre elementos, mientras que las estructuras no lineales como árboles y grafos tienen relaciones uno a muchos, muchos a uno o muchos a muchos. Se explican los tipos y aplicaciones de listas, pilas, colas, árboles y grafos.
El documento explica las diferencias entre las direcciones IPv4 e IPv6. IPv4 usa direcciones de 32 bits, limitando el número disponible a 4.3 mil millones, mientras que IPv6 usa direcciones de 128 bits permitiendo un número casi infinito de 3.4 x 10^38 direcciones disponibles. También describe cómo IPv4 divide las direcciones en clases A, B, C, D y E dependiendo del tamaño de la red, y cómo IPv6 representa las direcciones de 128 bits como ocho grupos de cuatro dígitos hexadecimales.
Este documento describe diferentes métodos para ordenar arreglos, incluyendo métodos directos como el intercambio directo, inserción directa y selección directa, así como el método avanzado de ordenación rápida (QuickSort). Define arreglos y cómo declararlos, inicializarlos y acceder a ellos. Explica cada método de ordenación con ejemplos de código.
Fundamentos de redes: 6.3 Direccionamiento de red IPv4 Francesc Perez
El documento contiene preguntas sobre conceptos básicos de direccionamiento IP como clases de direcciones, máscaras de subred, direcciones de red y broadcast. Algunas preguntas identifican qué direcciones pueden asignarse a hosts, cuáles son direcciones privadas o públicas, y cómo calcular el número de subredes y hosts posibles a partir de una dirección y máscara dada.
Los árboles B+ son una mejora de los árboles B que permiten acceso aleatorio y secuencial rápido a datos. En los árboles B+, todas las claves se almacenan en las hojas para facilitar el recorrido secuencial, y pueden duplicarse en nodos internos. Las operaciones de búsqueda, inserción y eliminación siguen procesos similares a los árboles B, pero manejan la duplicidad de claves.
Este documento presenta los conceptos fundamentales del modelo relacional de bases de datos, incluyendo la terminología como relaciones, atributos, tuplas y dominios. Explica las propiedades de las relaciones, claves y restricciones de integridad. También describe el propósito y actualización de las vistas.
Método de ordenación por inserción directatavo_3315_
El documento describe el algoritmo de ordenación por inserción directa. El algoritmo ordena un arreglo insertando cada elemento en su posición correcta mediante comparaciones. En cada pasada, se analiza un elemento y se desplaza por la parte ordenada del arreglo hasta encontrar su lugar. Cuando todos los elementos han sido analizados, el arreglo está completamente ordenado. El algoritmo es estable y tiene una complejidad de O(n^2) en el peor caso y O(n) en el mejor caso.
The document compares differences between correlated and nested subqueries, weak and strong entity sets, char and varchar data types in SQL Server, and SQL Server 2005 and 2008. A correlated subquery runs once for each outer query row and references the outer row, while a nested subquery runs once and does not reference the outer row. A weak entity set lacks a primary key while a strong entity set has one. Char occupies a fixed length while varchar occupies variable length plus 2 bytes for the length. SQL Server 2005 introduced XML datatype while 2008 encrypted entire databases and separated date and time datatypes.
Los tablespaces en Oracle son espacios de almacenamiento donde se guardan los objetos de la base de datos como tablas e índices. Existen diferentes tipos de tablespaces como los temporales, de solo lectura y de deshacer cambios. Los tablespaces se pueden manipular creando, eliminando o cambiando su tamaño y estado entre online y offline.
La clase nodo define la estructura de un nodo al incluir los atributos Dato y Liga, y los constructores para inicializarlos. La clase ListaSimple maneja una lista simple enlazada mediante el uso de objetos nodo, incluyendo métodos para crearla, insertar y eliminar nodos, y recorrerla para mostrar sus elementos.
El documento resume los conceptos clave del modelo de datos relacional, incluyendo la definición de relación, tupla, atributo y dominio. Explica cómo las entidades y relaciones de un modelo conceptual se mapean a tablas en el modelo relacional y las restricciones de integridad inherentes a este modelo. También proporciona ejemplos de cómo se representan diferentes tipos de relaciones como 1:N, N:M y 1:1.
ArrayList es una clase que implementa la interfaz Collection y permite almacenar una colección de objetos de forma ordenada. Los elementos de un ArrayList se almacenan en un array cuyo tamaño es dinámico. Un ArrayList permite recorrer y modificar sus elementos de manera eficiente a través de un iterador.
Este documento proporciona una introducción al lenguaje SQL. Explica que SQL se utiliza para definir, manipular y controlar el acceso a los datos almacenados en sistemas de gestión de bases de datos relacionales. Describe los componentes clave de SQL como las sentencias DDL, DML y DCL y sus usos para crear bases de datos, tablas, consultar, insertar y modificar datos, y controlar el acceso. También cubre conceptos como tipos de datos, cláusulas, operadores y funciones de SQL.
Una cola es una estructura de datos en la que los elementos se almacenan y eliminan en orden FIFO (primero en entrar, primero en salir). Se utilizan en sistemas informáticos y de transporte para procesar elementos en el orden en que ocurren. Una cola permite insertar elementos en un extremo y eliminarlos en el otro, representándose comúnmente como una lista enlazada o un arreglo.
La recursividad divide problemas complejos en subproblemas más pequeños del mismo tipo hasta alcanzar un caso base simple. Se ilustran ejemplos como el factorial, la serie de Fibonacci y el problema de las Torres de Hanoi. La recursividad es útil para problemas que pueden expresarse como una secuencia de pasos gobernados por reglas no ambiguas.
The document discusses how hash maps work and the process of rehashing. It explains that inserting a key-value pair into a hash map involves: 1) Hashing the key to get an index, 2) Searching the linked list at that index for an existing key, updating its value if found or adding a new node. Rehashing is done when the load factor increases above a threshold, as that increases lookup time. Rehashing doubles the size of the array and rehashes all existing entries to maintain a low load factor and constant time lookups.
Este documento describe el funcionamiento de una pila, incluyendo su estructura, operaciones básicas como apilar, desapilar y recorrer elementos, y nuevas funciones como contar elementos y calcular el promedio. Explica que una pila sigue el principio LIFO (último en entrar, primero en salir) y describe las funciones necesarias para inicializar, insertar, eliminar y recorrer elementos de una pila.
Este documento resume los principales comandos de programación en C#, incluyendo if-else, while, break, switch, goto, return, throw, try-catch, default, for, foreach, do y continue. Explica brevemente el uso y propósito de cada uno de estos comandos.
El documento describe los conceptos fundamentales de direccionamiento IP en redes locales, incluyendo las clases de redes (A, B y C), las direcciones reservadas (127.0.0.1 y 255.255.255.255), y el propósito de las máscaras de subred. La organización InterNIC ha definido tres tipos de redes (clases A, B y C) según el número de redes e hosts requeridos, asignando diferentes rangos de direcciones IP a cada clase. Las máscaras de subred delimitan el ámbito de una red y distinguen la parte de
Ingeniería en Sistemas Computacionales
Simulación
Algoritmo congruencial cuadrático
Programa que genera una serie de números pseudoaleatorios basándose en el algoritmo congrencial cuadratico, al final los muestra en pantalla.
Diplomado para la Formación y Desarrollo de las Competencias Docentes
MÓDULO 4. Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
Ejemplo de 3 instrumentos de evaluación
Tecnológico Nacional de México
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos: AED-1026
Estructuras no lineales
Material de clase
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Simulación
Algoritmo de productos medios
Ejemplo de aplicación que genera 10 número pseudoaleatorios basándose en el algoritmo de Productos Medios. También, ordena el arreglo resultante por medio del algoritmo de la Burbuja.
Este documento describe una asignatura de Fundamentos de Programación en un Instituto Tecnológico de México. Presenta la caracterización de la asignatura, su intención didáctica, competencias, análisis por competencias específicas, indicadores de desempeño, y apoyos didácticos. La asignatura busca desarrollar habilidades de pensamiento lógico, diseño de algoritmos, y programación en un lenguaje específico para resolver problemas.
Tecnológico Nacional de México
instituto Tecnológico Superior de Guasave
Ingeniería en Gestión Empresarial
Mercadotecnia Electrónica - Tecnologías de integración
Material desarrollado a forma de resumen de la materia de Mercadotecnia electrónica, Unidad 3 Tecnologías de Integración
Diplomado para la Formación y Desarrollo de las Competencias Docentes
MÓDULO 4. Evaluación
Tema 4.3.1. Actividad 1: Tabla comparativa de instrumentos de evaluación
El documento presenta una actividad de evaluación diagnóstica para una asignatura de Programación Orientada a Objetos. La evaluación tiene como objetivos conocer el grado de dominio de competencias previas, identificar temas que requieren ser reforzados, y diagnosticar el nivel de estudiantes en bucles, arreglos, condiciones y tipos de datos. La evaluación consiste en un test diagnóstico y una malla de retroalimentación grupal que se aplicarán al inicio del semestre.
El documento describe un algoritmo lineal para generar números pseudoaleatorios. El algoritmo usa una ecuación recursiva que toma como entrada una semilla inicial, constantes multiplicativa y aditiva, y un módulo para generar cada número siguiente. Después, ordena los números generados usando el método Shell Sort para mostrarlos ordenados.
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...Ruber Duck
Este documento presenta la instrumentación didáctica para la asignatura de Química en la carrera de Ingeniería en Sistemas Computacionales. La asignatura busca que los estudiantes comprendan la estructura de la materia y su relación con las propiedades físicas y químicas aplicadas a dispositivos eléctricos y electrónicos. El documento describe la evaluación de competencias por unidad, actividades de aprendizaje y enseñanza, y el calendario de evaluaciones para el curso.
El documento presenta los pasos para planear un ambiente de aprendizaje, incluyendo definir un problema, establecer necesidades y objetivos, conocer el perfil del usuario, los recursos disponibles y seleccionar un ambiente. Se explica que la planeación requiere analizar el contexto, características de los participantes y recursos para diseñar estrategias que cumplan los objetivos considerando el tiempo y recursos. La planeación puede ser estratégica, táctica u operativa dependiendo del alcance y nivel de detalle.
Este documento presenta un plan de clase para una lección sobre la reflexión de la luz. La lección se enfoca en definir el fenómeno de la reflexión y aplicar este conocimiento a la formación de imágenes en superficies planas y esféricas. El plan incluye objetivos, actividades, recursos y una evaluación para comprender plenamente la reflexión de la luz.
DIPLOMADO PARA LA FORMACIÓN DE COMPETENCIAS DOCENTES
MÓDULO 4: EVALUACIÓN.
4.4.1: INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO GENERAL DE ASIGNATURA
Portafolio diagnóstico que se presenta para ser evaluado por pares, como actividad de aprendizaje del Tema 1 del MOOC «innovación educativa con recursos abiertos
Planificación de clases fibra optica curriculaAldo Thomas
Este documento presenta la planificación de una cátedra sobre fibra óptica. El curso se enfoca en capacitar a estudiantes de ingeniería electrónica sobre los conceptos y aplicaciones básicas de la fibra óptica. El plan de estudios incluye módulos sobre las características, tipos, conectores y certificación de la fibra óptica, así como talleres prácticos para el diseño e implementación de enlaces de fibra óptica.
El documento describe cadenas (strings) en C. Explica que las cadenas en C son arrays de caracteres terminados en '\0'. Detalla cómo declarar, inicializar y asignar cadenas, y describe funciones comunes para manipular cadenas como strcpy(), strcmp(), strlen(), gets(), puts() y más. También incluye ejemplos de programas que usan estas funciones con cadenas.
Este documento explica cómo introducir y mostrar valores en un array unidimensional en C utilizando bucles for. También cubre el uso de punteros para mostrar la dirección de memoria de cada elemento del array. Finalmente, introduce algunas funciones de cadenas de texto como strlen(), strcpy(), strcat() y strcmp().
Programa para cifrar y descifrar cadenas
Desarrollado en C#, Visual Studio 2015
Algoritmos de Encripación y Desencriptación.
Práctica de un programa que puede ser agregado a una pantalla de login para generar cadenas encriptadas (cifradas)
Este documento presenta una guía práctica sobre el uso de apuntadores en C. Explica conceptos básicos como la aritmética de punteros, la relación entre punteros y arreglos, y el uso de punteros con cadenas. Incluye ejemplos de código para ilustrar cómo trabajar con punteros, comparar valores apuntados, copiar cadenas, y la precedencia de operadores con punteros. El objetivo es que los estudiantes analicen y comprendan el funcionamiento de los apuntadores en C.
Este documento contiene información sobre varias funciones de cadenas en C, incluyendo strlwr, strncpy, strdup, strlen, strrchr, strcspn, strpbrk, strcmp, y strrev. Explica la sintaxis y el uso de cada función a través de ejemplos de código.
El documento explica cómo sobrecargar los operadores de adición y sustracción para una clase cadena. Se define la clase cadena con métodos para agregar y eliminar caracteres. Luego, se sobrecargan los operadores + y - para que funcionen de forma similar a los métodos de agregar y eliminar caracteres, haciendo las operaciones con cadenas más legibles.
El documento trata sobre técnicas de programación para grafos. Explica que un grafo es una estructura de datos no lineal que permite representar relaciones entre objetos. Describe los tipos de grafos y métodos para realizar búsquedas y obtener el camino más corto en un grafo, como el algoritmo de Dijkstra y el método de Warshall. Finalmente, muestra ejemplos de código C++ para la representación, inserción de nodos y enlaces en un grafo.
El documento trata sobre técnicas de programación para grafos. Explica que un grafo es una estructura de datos no lineal que permite representar relaciones entre objetos. Describe los tipos de grafos y métodos para realizar búsquedas y obtener el camino más corto en un grafo, como el algoritmo de Dijkstra y el método de Warshall. Finalmente, presenta ejemplos de código C++ para la representación, inserción de nodos y enlaces en un grafo.
El documento trata sobre técnicas de programación para grafos. Explica que un grafo es una estructura de datos no lineal que permite representar relaciones entre objetos. Describe los tipos de grafos y métodos para realizar búsquedas y obtener el camino más corto en un grafo, como el algoritmo de Dijkstra y el método de Warshall. Finalmente, muestra ejemplos de código C++ para la representación, inserción de nodos y enlaces en un grafo.
Este documento describe cómo crear procesos y hilos en C utilizando las bibliotecas fork(), pthread.h y otras funciones del sistema operativo Linux. Explica cómo medir el tiempo de creación de procesos y hilos, pasar parámetros a las funciones de los hilos, y esperar a que terminen los hilos antes de finalizar el programa principal. El objetivo es comparar el rendimiento de procesos frente a hilos al gestionar tareas concurrentes.
El documento explica los conceptos básicos de las estructuras de control en Python como if, while y for. Muestra ejemplos de cómo usar estas estructuras para calcular el doble de un número, el área de un triángulo, imprimir números pares entre un rango, hacer una cuenta regresiva y sumar números usando bucles. También recomienda videos para aprender más sobre programación en Python.
Este documento explica conceptos básicos de programación como funciones estándar, entrada y salida de datos, funciones definidas por el usuario, paso de parámetros y punteros. Define funciones como printf() y describe cómo se usan funciones estándar y definidas por el usuario, incluido cómo se pasan parámetros y se devuelven valores. También explica la diferencia entre paso por valor y paso por referencia.
Este documento presenta varias actividades relacionadas con estructuras de datos y algoritmos de ordenamiento. La primera actividad muestra el uso de un arreglo bidimensional para almacenar y mostrar datos. Otras actividades incluyen el cálculo de promedios, el uso de estructuras para almacenar nombres y edades, y realizar operaciones matemáticas básicas. También se explican conceptos como recursividad, apuntadores, árboles y métodos de ordenamiento como quicksort, radix sort y shellsort.
Fundamentos de programación librería string C++Milton Nicolay
La librería string.h de C proporciona funciones para manipular cadenas de caracteres. Incluye funciones para copiar, concatenar, comparar cadenas y partes de cadenas, calcular la longitud de una cadena, y buscar tokens dentro de una cadena. Algunas funciones populares son strcpy(), strcat(), strcmp(), strlen(), y strtok().
El documento describe las funciones en el lenguaje de programación C++. Explica que las funciones void no devuelven ningún valor y se usan para indicar que una función no requiere parámetros. También cubre las funciones anidadas, las funciones que devuelven punteros, y las funciones sobrecargadas donde funciones con el mismo nombre pero parámetros diferentes permiten sobreescribir funciones.
Este documento contiene ejercicios de programación ordenados por temas. Incluye ejercicios sobre punteros a arrays y cadenas de caracteres, arrays de punteros, paso de argumentos por referencia, asignación dinámica de memoria, paso de arrays y estructuras a funciones, argumentos en línea de órdenes, recursividad, ficheros, listas enlazadas, árboles binarios y algoritmos de ordenación de datos. Cada ejercicio viene acompañado de una posible solución en C.
Este documento presenta información sobre cadenas y funciones para manipular cadenas en C. Explica el uso de funciones como strcpy, strcat y strlen para copiar, concatenar y obtener la longitud de cadenas. También cubre funciones como strcmp para comparar cadenas y strchr para buscar caracteres dentro de una cadena.
Este documento trata sobre los apuntadores y direcciones de memoria en lenguajes de programación como C y C++. Brevemente:
1) Los apuntadores son variables que almacenan direcciones de memoria y permiten acceder y manipular datos almacenados en memoria.
2) Los apuntadores son fundamentales en C para manejar datos dinámicos, estructuras, funciones y arreglos.
3) Los arreglos en C son efectivamente punteros a la primera posición del arreglo, por lo que se pueden usar de forma intercambiable.
El documento resume comandos importantes en C++ como iostream.h, stdio.h, math.h, string.h, conio.h e iomanip.h. Explica funciones como cin, cout, gets, putchar, cos, strcpy, strcmp y clrscr, describiendo su sintaxis, descripción y valor de retorno. El documento proporciona una guía sobre la entrada/salida, manipulación de cadenas y funciones matemáticas en C++.
Este documento presenta información sobre el lenguaje de programación Pascal, incluyendo su historia, características y estructura. Describe los tipos de datos básicos en Pascal como enteros, reales, booleanos y caracteres, así como las operaciones y funciones asociadas. También explica conceptos como variables, constantes, identificadores y la estructura general de un programa en Pascal.
Similar a Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar) (20)
El documento presenta una línea de tiempo de los principales hitos en el desarrollo de la inteligencia artificial, comenzando en 1950 cuando Alan Turing propuso el Test de Turing y John McCarthy acuñó el término "inteligencia artificial", e incluyendo el desarrollo de los primeros chatbots, robots móviles y asistentes virtuales de voz, así como logros importantes como las victorias de sistemas de IA sobre humanos en ajedrez y Go.
El documento clasifica y describe diferentes tipos de materiales. Los materiales se dividen en metales, polímeros, cerámicos, compuestos y semiconductores. Los metales incluyen acero, aluminio y cobre, y se caracterizan por su buena conductividad eléctrica y térmica. Los polímeros incluyen nylon y poliéster, y se dividen en naturales, semisintéticos y sintéticos. Los cerámicos incluyen ladrillos y porcelana, y son duros e incombustibles. Los compuest
El documento lista las instalaciones y aulas de una escuela, incluyendo talleres de refrigeración, mecánica y alimentos, salas de clase de diferentes grados y materias, laboratorios de química, biología y física, centros de cómputo, prefectura, biblioteca, dirección y más. También incluye el número de estudiantes en algunas clases.
Este documento presenta información sobre el lenguaje de programación C++. Explica que C++ fue creado como una extensión orientada a objetos del lenguaje C, y describe algunas características clave como su orientación a sistemas, portabilidad y eficiencia. También cubre temas como el preprocesador, compilador, enlazador, bibliotecas estándar, tipos de datos, variables, constantes, funciones de entrada/salida y ejemplos de código en C++. Finalmente, incluye algunos ejercicios de program
Este documento trata sobre las aplicaciones móviles. Explica que una aplicación móvil es un tipo de aplicación diseñada para ejecutarse en dispositivos móviles como teléfonos inteligentes o tabletas. Explora los usos de las aplicaciones móviles en la salud, educación y empresas. También cubre los lenguajes de programación más comunes como Java, Kotlin y Python y menciona ejemplos de aplicaciones básicas y las ventajas de tener una aplicación móvil. Por último, indica que las aplicaciones se pueden desc
Este documento presenta una introducción a los conceptos básicos de la economía. Define la economía como la ciencia social que estudia la administración de recursos limitados para satisfacer necesidades humanas. Explora brevemente la historia de la economía y cómo ha evolucionado como disciplina. También describe los conceptos clave de microeconomía y macroeconomía.
Este documento presenta información sobre el método científico. Explica que el método científico consiste en una serie de pasos diseñados para obtener conocimientos validados a través de la observación, experimentación y análisis de hipótesis falsables y reproducibles. Además, describe que el método científico moderno se originó en el siglo XVII gracias a los trabajos de René Descartes.
Este documento presenta el reporte de avance de una tesis de doctorado sobre la adaptación de contenidos completos en servicios web de aprendizaje. Se divide en cinco secciones: introducción, metodología de adaptación, métricas, resultados y referencias. El objetivo es obtener mejores productos de software mediante el uso de nuevas tecnologías, paradigmas y metodologías en el desarrollo de software.
El documento describe las 10 etapas del modelo de Kitchen Ham para realizar revisiones sistemáticas de bibliografía, incluyendo la planificación de la revisión especificando preguntas de investigación y desarrollando un protocolo, la conducción de la revisión identificando estudios relevantes, seleccionando estudios primarios y evaluando su calidad, y la documentación de la revisión escribiendo un informe y validando los resultados.
Este documento presenta los conceptos básicos de los diagramas de casos de uso en UML. Explica que un diagrama de casos de uso modela la funcionalidad de un sistema desde la perspectiva de actores externos e incluye actores, casos de uso y las relaciones entre ellos. También describe las características y notaciones de actores y casos de uso, así como diferentes tipos de relaciones.
El documento describe el lenguaje UML y los diagramas de clases. Explica que UML se usa para modelar sistemas de software y que los diagramas de clases representan las clases, atributos, operaciones y relaciones. También cubre los diferentes tipos de relaciones entre clases como asociación, herencia, agregación y composición.
El documento describe el lenguaje UML y los diagramas de clases. Explica que UML se usa para modelar sistemas de software y que los diagramas de clases representan las clases, atributos, operaciones y relaciones. También cubre los diferentes tipos de relaciones entre clases como asociación, agregación, composición y herencia.
Este documento presenta los conceptos básicos de los diagramas de casos de uso en UML. Explica que un diagrama de casos de uso modela la funcionalidad de un sistema desde la perspectiva de actores externos e incluye actores, casos de uso y las relaciones entre ellos. También describe las características y notaciones de actores y casos de uso, así como diferentes tipos de relaciones.
Este documento describe los comandos básicos de CRUD (crear, leer, actualizar y eliminar) en una base de datos NoSQL de MongoDB. Explica cómo inicializar una base de datos y colecciones, insertar documentos de forma individual y múltiple, realizar consultas utilizando filtros y operadores, y actualizar y eliminar documentos.
Este documento presenta una introducción a las bases de datos NoSQL. Explica que las bases de datos NoSQL son alternativas a las bases de datos relacionales tradicionales que son más adecuadas para el almacenamiento y análisis de grandes volúmenes de datos. Describe los cuatro tipos principales de bases de datos NoSQL: orientadas a documentos, orientadas a clave-valor, orientadas a columnas y orientadas a grafos. Finalmente, proporciona ejemplos de cómo se pueden representar datos en cada uno de estos modelos.
1. Introduccion a las excavaciones subterraneas (1).pdfraulnilton2018
Cuando las excavaciones subterráneas son desarrolladas de manera artesanal, se conceptúa a la excavación como el “ que es una labor efectuada con la mínima sección posible de excavación, para permitir el tránsito del hombre o de
cémilas para realizar la extracción del material desde el
frontón hasta la superficie
Cuando las excavaciones se ejecutan controlando la sección de excavación, de manera que se disturbe lo menos posible la
roca circundante considerando la vida útil que se debe dar a la roca, es cuando aparece el
concepto de “ que abarca,
globalmente, al proceso de excavación, control de la periferia, sostenimiento, revestimiento y consolidación de la excavación
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
1. Algoritmos básicos para cifrado y descifrado de frases
Encriptar y Desencriptar
Transposición Inversa
El Algoritmo Transposición inversa es el más sencillo de todos,
genera una cadena al revés de cómo fue escrita: es decir, si
escribimos la palabra PANDA el algoritmo debe regresar ADNAP
como cadena cifrada.
La forma de descifrarlo es aplicando el mismo método a la cadena
cifrada, por lo que requiere la creación de un solo método de
programación.
Ejemplo de una función que cifra en Transposición Inversa en C#
private string cifra_inversa(string cadena)
{
string inversa = "";
for (int i = cadena.Length - 1; i >= 0; i--)
{
inversa = inversa + (cadena[i]);
}
return inversa;
}
2. Transposición Binaria
La Transposición Binaria al igual que la inversa mueve de su
lugar los caracteres de la cadena original, la diferencia radica
en que lo hace en pares de caracteres sin tomar en cuenta los
demás caracteres de la cadena.
Por ejemplo si tecleamos la palabra MEXICO el algoritmo
divide la frase en pares de la siguiente forma: ME|XI|CO, e
intercambia el contenido de cada par, el carácter de la
izquierda lo pone a la derecha y viceversa, al final regresa
EMIXOC como frase cifrada.
La forma de descifrarlo es aplicando de nuevo el mismo
algoritmo por lo que solo requiere crear una rutina en código
de programación
Ejemplo de una función que cifra en Transposición Binaria en C#
private string cifra_binaria(string cadena)
{
string binaria = "";
int i = 0;
while (i < cadena.Length)
{
if ((i + 1) < cadena.Length)
{
binaria = binaria + cadena[i + 1].ToString() +
cadena[i].ToString();
}
else
{
binaria = binaria + cadena[cadena.Length - 1].ToString();
}
i = i + 2;
}
return binaria;
}
3. Algoritmo Incremental
El Algoritmo Incremental requiere una clave pública entera.
Genera una nueva cadena cifrada sumando carácter por
carácter la cantidad capturada en laclavepública al código ASCII
de la cadena original.
La forma de invertirlo es restando la clave pública, por lo que es
posible que requiera dos métodos para hacer la tarea, uno para
cifrar y otro para descifrar.
Ejemplo de las funciones que cifran y descifran frases con el algoritmo incremental en C#:
private string cifra_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] + cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
private string des_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] - cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
4. Algoritmo Exponencial
El Algoritmo Exponencial tiene mucha similitud con el
Algoritmo Incremental, en este caso se pide dos claves
numéricas, la clave pública y la clave privada, las cuales son
multiplicadas entre sí, una vez que tenemos el resultado
dicho número entero se utiliza para sumarlo al código ASCII
de cada carácter de la frase que vamos a cifrar, con esto
obtenemos al final una nueva frase ya cifrada.
La forma de descifrarlo es restando el número que
obtuvimos de la multiplicación de las claves, por lo que es
posible que se requieran dos métodos de programación,
uno para cifrar y otro para descifrar la frase.
En este caso las funciones son exactamente las mismas que
en el algoritmo incremental, el único cambio es que al
capturar las dos claves estas se envían ya multiplicadas en el parámetro numérico de cada
función, de esta forma el código es reutilizable.
Ejemplo de funciones donde se usa el algoritmo exponencial en C#:
// llamado a las funciones enviando las claves y amultiplicadas
string cifrado = cifra_incrementa(texto.Text, cPub * cPriv);
string descifrado = des_incrementa(cifrado, cPub * cPriv);
// Se utilizan las mismas funciones que para el algoritmo incremental
private string cifra_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] + cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
private string des_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] - cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
5. Algoritmo Exponencial Diferido
El algoritmo Exponencial Diferido funciona muy similar al
Exponencial con la diferencia que las claves enteras no se
multiplican al inicio, la clave privada sirve para referenciar
un arreglo en memoria, elcual contiene números enteros en
un rango de 1 a 99 (puede seleccionarse otro rango).
El usuario en la clave privada debe seleccionar un número
entero que se refiere a la posición en el arreglo de la cual
extraemos el número que usaremos para multiplicar con la
clave pública, una vez que obtenemos el resultado el resto
es exactamente igual al algoritmo exponencial.
En este caso, antes de llamar las funciones debemos buscar
en el arreglo el valor correspondiente a la posición enviada
en la clave privada. Para este ejemplo el arreglo es de 20
posiciones.
Ejemplo de funciones donde se usa el algoritmo exponencial diferido en C#:
byte[] diferido = new byte[20] {3, 5, 6, 8, 9, 11, 12, 14, 15, 17,
19, 21, 25, 27, 31, 35, 58, 46, 55, 59};
clave = diferido[cPriv - 1];
string cifrado = cifra_incrementa(texto.Text, cPub * clave);
string descifrado = des_incrementa(cifrado, cPub * clave);
// Llamado a las funciones enviando las claves ya multiplicadas
// Se utilizan las mismas funciones que para el algoritmo incremental
private string cifra_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] + cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
private string des_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] - cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
6. Algoritmos Mixtos
Es posible crear algoritmos mixtos combinando dos o más de los
mencionados anteriormente, por lo que el código fuente requiere
tantos métodos sean necesarios para cifrar y descifrar.
Es recomendable que al combinar dos o más algoritmos para
cifrar frases primero apliquemos el más sencillo y después sobre
la frase resultante aplicamos el de mayor complejidad.
Para descifrar por medio de algoritmos mixtos solo debemos
aplicar los algoritmos en orden inverso a como se usaron en el
cifrado.
Notas: Es necesario ser prudente al momento de seleccionar los
números enteros que utilizaremos para las multiplicaciones ya
que de ser números muy grandes el resultado será un valor
demasiado alto que puede ocasionar problemas de
procesamiento, lo cual no está contemplado en el código de ejemplo mostrado en cada
algoritmo.
-----------------
Mtro. José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.