Este documento trata sobre cadenas en C. Explica cómo se representan las cadenas en C como arreglos unidimensionales de caracteres terminados por un carácter nulo. También cubre temas como la lectura de cadenas desde el teclado, las bibliotecas estándar ctype.h y string.h para la manipulación de cadenas, y la conversión de tipos entre cadenas y otros tipos de datos en C. Finalmente, incluye algunos ejercicios de práctica sobre estos temas.
Este documento describe diferentes métodos de ordenamiento de datos, incluyendo burbuja, quicksort, shellsort, radixsort e intercalación. Explica los pasos de cada algoritmo y provee ejemplos para ilustrar cómo ordenan un conjunto de datos. También incluye código de implementación en C++ para algunos de los métodos.
El documento describe diferentes estructuras de datos como pilas, colas y listas enlazadas. Explica que una pila es una estructura LIFO donde los elementos se agregan y eliminan de un extremo, mientras que una cola es una estructura FIFO donde los elementos se agregan a un extremo y eliminan del otro. También describe listas enlazadas y sus operaciones básicas como recorrer, insertar y eliminar nodos. Incluye ejemplos de código en C para implementar una lista enlazada genérica.
Este documento presenta información sobre estructuras de datos lineales y dinámicas como pilas, colas y listas enlazadas. Explica conceptos como LIFO para pilas y FIFO para colas. Proporciona algoritmos para insertar, eliminar y recorrer elementos en estas estructuras usando arreglos y nodos. El objetivo es que los estudiantes comprendan y apliquen estas estructuras de datos para resolver problemas.
Este documento introduce el lenguaje de programación Python. Explica que Python fue diseñado a finales de los años 80 y es un lenguaje de alto nivel, legible y versátil. A continuación, presenta ejemplos de código Python que muestran funciones básicas como imprimir texto, realizar cálculos matemáticos, usar condicionales y bucles.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método Burbuja
• Método por Inserción
Creado por Ing. Alvaro Enrique Ruano
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().
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Kiim Kerrigan
1) El documento presenta 20 algoritmos en lenguaje C con ejemplos de código para calcular diferentes operaciones matemáticas y lógicas como promedios, áreas, conversiones de unidades, comparaciones y más.
2) Los algoritmos van desde cálculos simples como sumas y promedios hasta operaciones más complejas como determinar si un número está en un rango específico o calcular el costo de una llamada telefónica.
3) El documento provee el código completo en C para cada algoritmo junto con explicaciones breves sobre lo que cada programa calcul
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Este documento describe diferentes métodos de ordenamiento de datos, incluyendo burbuja, quicksort, shellsort, radixsort e intercalación. Explica los pasos de cada algoritmo y provee ejemplos para ilustrar cómo ordenan un conjunto de datos. También incluye código de implementación en C++ para algunos de los métodos.
El documento describe diferentes estructuras de datos como pilas, colas y listas enlazadas. Explica que una pila es una estructura LIFO donde los elementos se agregan y eliminan de un extremo, mientras que una cola es una estructura FIFO donde los elementos se agregan a un extremo y eliminan del otro. También describe listas enlazadas y sus operaciones básicas como recorrer, insertar y eliminar nodos. Incluye ejemplos de código en C para implementar una lista enlazada genérica.
Este documento presenta información sobre estructuras de datos lineales y dinámicas como pilas, colas y listas enlazadas. Explica conceptos como LIFO para pilas y FIFO para colas. Proporciona algoritmos para insertar, eliminar y recorrer elementos en estas estructuras usando arreglos y nodos. El objetivo es que los estudiantes comprendan y apliquen estas estructuras de datos para resolver problemas.
Este documento introduce el lenguaje de programación Python. Explica que Python fue diseñado a finales de los años 80 y es un lenguaje de alto nivel, legible y versátil. A continuación, presenta ejemplos de código Python que muestran funciones básicas como imprimir texto, realizar cálculos matemáticos, usar condicionales y bucles.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método Burbuja
• Método por Inserción
Creado por Ing. Alvaro Enrique Ruano
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().
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Kiim Kerrigan
1) El documento presenta 20 algoritmos en lenguaje C con ejemplos de código para calcular diferentes operaciones matemáticas y lógicas como promedios, áreas, conversiones de unidades, comparaciones y más.
2) Los algoritmos van desde cálculos simples como sumas y promedios hasta operaciones más complejas como determinar si un número está en un rango específico o calcular el costo de una llamada telefónica.
3) El documento provee el código completo en C para cada algoritmo junto con explicaciones breves sobre lo que cada programa calcul
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Este documento describe los conceptos de memoria estática y dinámica en los sistemas de computación. Explica que la memoria estática es asignada por el compilador para elementos fijos del programa, mientras que la memoria dinámica es asignada y liberada dinámicamente durante la ejecución. También cubre temas como la asignación de memoria, el uso de pilas y colas, y el recolector de basura.
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.
Ejercicios de programación en C (Estructuras condicionales-Selectivas)Maynor Mendoza
Los documentos presentan programas en C para resolver diferentes problemas matemáticos y lógicos mediante el uso de condicionales y estructuras de control. Los programas incluyen cálculos de áreas geométricas, conversión de caracteres, cálculo de descuentos y obsequios, evaluación de índices de masa corporal, cálculo de días transcurridos, ordenamiento y comparación de números, y cálculo de costos de alquiler.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
en ellas encontramos las siguientes:
ESTRUCTURAS LÓGICAS DE DATOS:
ESTRUCTURAS PRIMITIVAS Y SIMPLES: ESTRUCTURAS LINEALES Y NO LINEALES:
El documento describe las estructuras en C, incluyendo su definición, características y uso. Una estructura agrupa múltiples variables de tipos diferentes bajo un nombre común. Las estructuras se definen usando la palabra clave struct y pueden contener cualquier número de miembros de diferentes tipos de datos. Las estructuras permiten manipular conjuntos relacionados de datos como una sola unidad.
Este documento explica las pilas y colas como tipos abstractos de datos. Detalla que las pilas siguen el orden LIFO (último en entrar, primero en salir), mientras que las colas siguen FIFO (primero en entrar, primero en salir). Describe las operaciones básicas de cada una como apilar/desapilar y encolar/desencolar. También incluye ejemplos de código Java para implementar pilas y colas.
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Este documento describe y compara varios algoritmos de ordenamiento como el quicksort, burbuja, inserción y selección. Explica que el quicksort es uno de los más rápidos, con un costo promedio de O(n log n), aunque en el peor caso es O(n2). También analiza la importancia de elegir el pivote de manera efectiva para mejorar el rendimiento del quicksort. Finalmente, concluye que no existe un algoritmo perfecto y la elección depende del uso particular que se le dará.
Este documento presenta las estructuras repetitivas en el lenguaje de programación PseInt. Explica las instrucciones "hacer mientras", "hacer hasta que", y "hacer desde-hasta con incremento", incluyendo definiciones, diagramas de flujo y ejemplos. También proporciona ejercicios de práctica y enlaces a recursos adicionales sobre programación.
Una lista enlazada es una estructura de datos fundamental que consiste en nodos enlazados que almacenan datos y punteros. Existen listas enlazadas simples y dobles, y pueden ser implementadas de forma circular u ordenada. Las listas enlazadas permiten realizar operaciones como agregar y eliminar elementos al inicio o final, así como acceder a elementos en cualquier posición.
Ecuaciones Diferenciales - La Transformada de LaplaceKike Prieto
Este documento presenta la transformada de Laplace y algunos de sus teoremas fundamentales. Introduce la definición de la transformada de Laplace de una función y establece condiciones para su existencia. Luego, enlista propiedades importantes como la linealidad de la transformada y fórmulas para funciones elementales como exponenciales, senos y cosenos. Finalmente, introduce la transformada inversa de Laplace y métodos para calcularla, incluyendo fracciones parciales y factoreo de polinomios.
Este documento explica los arreglos de punteros, que son arreglos cuyos elementos son punteros. Cada puntero puede apuntar a cualquier ubicación de memoria. También cubre punteros a punteros y la asignación dinámica de memoria usando operadores como new. Finalmente, proporciona ejemplos de cómo implementar arreglos de punteros, punteros a punteros y asignación dinámica en programas C++.
Las pruebas de escritorio permiten simular el comportamiento de un algoritmo mediante la generación de casos de prueba para detectar errores. Se establecen valores para las variables del algoritmo en una tabla y se siguen las instrucciones. Los casos de prueba representan posibles situaciones de datos de entrada, incluyendo escenarios normales y extremos. El documento presenta un ejemplo de algoritmo para calcular factoriales y sus respectivos casos de prueba.
Función Hash: metodos de división y de medio Cuadrado.Ana Castro
Este documento describe funciones hash y dos métodos para implementarlas: el método de división y el método del medio cuadrado. Una función hash mapea claves de entrada a valores hash de salida de tamaño fijo para usarlos como direcciones de almacenamiento. Estos métodos buscan minimizar colisiones cuando claves distintas generan el mismo valor hash. El método de división toma el residuo de dividir la clave entre un número, mientras que el método del medio cuadrado eleva la clave al cuadrado y toma dígitos centrales
El documento describe tres estructuras de selección en C: la estructura selectiva simple (if), la estructura selectiva doble (if-else), y la estructura selectiva múltiple (switch). La estructura if ejecuta una acción si una condición es verdadera, if-else ejecuta una de dos acciones dependiendo de si la condición es verdadera o falsa, y switch elige entre múltiples bloques de código dependiendo del valor de una expresión.
Este documento presenta las estructuras repetitivas "PARA" y las variables de control contador y acumulador. Explica que un contador incrementa o decrementa en un valor constante mientras que un acumulador lo hace en un valor variable. También muestra ejemplos de pseudocódigo que usan estas estructuras para sumar números o promedios de alumnos de forma repetitiva.
Ejercicios resueltos sobre Transformada de Laplace por definición y comprobado por tablas, Transformada Inversa de Laplace y resolución de ecuaciones diferenciales mediante Transformada de Laplace.
Este documento trata sobre algoritmos de búsqueda y ordenamiento. Explica la búsqueda secuencial, la búsqueda binaria y tres algoritmos de ordenamiento: burbuja, selección e inserción. También analiza la eficiencia de estos algoritmos en términos del número de comparaciones requeridas, concluyendo que la búsqueda binaria es más eficiente que la secuencial al requerir O(log n) comparaciones en el peor caso.
Este documento describe los conceptos de memoria estática y dinámica en los sistemas de computación. Explica que la memoria estática es asignada por el compilador para elementos fijos del programa, mientras que la memoria dinámica es asignada y liberada dinámicamente durante la ejecución. También cubre temas como la asignación de memoria, el uso de pilas y colas, y el recolector de basura.
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.
Ejercicios de programación en C (Estructuras condicionales-Selectivas)Maynor Mendoza
Los documentos presentan programas en C para resolver diferentes problemas matemáticos y lógicos mediante el uso de condicionales y estructuras de control. Los programas incluyen cálculos de áreas geométricas, conversión de caracteres, cálculo de descuentos y obsequios, evaluación de índices de masa corporal, cálculo de días transcurridos, ordenamiento y comparación de números, y cálculo de costos de alquiler.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
en ellas encontramos las siguientes:
ESTRUCTURAS LÓGICAS DE DATOS:
ESTRUCTURAS PRIMITIVAS Y SIMPLES: ESTRUCTURAS LINEALES Y NO LINEALES:
El documento describe las estructuras en C, incluyendo su definición, características y uso. Una estructura agrupa múltiples variables de tipos diferentes bajo un nombre común. Las estructuras se definen usando la palabra clave struct y pueden contener cualquier número de miembros de diferentes tipos de datos. Las estructuras permiten manipular conjuntos relacionados de datos como una sola unidad.
Este documento explica las pilas y colas como tipos abstractos de datos. Detalla que las pilas siguen el orden LIFO (último en entrar, primero en salir), mientras que las colas siguen FIFO (primero en entrar, primero en salir). Describe las operaciones básicas de cada una como apilar/desapilar y encolar/desencolar. También incluye ejemplos de código Java para implementar pilas y colas.
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Este documento describe y compara varios algoritmos de ordenamiento como el quicksort, burbuja, inserción y selección. Explica que el quicksort es uno de los más rápidos, con un costo promedio de O(n log n), aunque en el peor caso es O(n2). También analiza la importancia de elegir el pivote de manera efectiva para mejorar el rendimiento del quicksort. Finalmente, concluye que no existe un algoritmo perfecto y la elección depende del uso particular que se le dará.
Este documento presenta las estructuras repetitivas en el lenguaje de programación PseInt. Explica las instrucciones "hacer mientras", "hacer hasta que", y "hacer desde-hasta con incremento", incluyendo definiciones, diagramas de flujo y ejemplos. También proporciona ejercicios de práctica y enlaces a recursos adicionales sobre programación.
Una lista enlazada es una estructura de datos fundamental que consiste en nodos enlazados que almacenan datos y punteros. Existen listas enlazadas simples y dobles, y pueden ser implementadas de forma circular u ordenada. Las listas enlazadas permiten realizar operaciones como agregar y eliminar elementos al inicio o final, así como acceder a elementos en cualquier posición.
Ecuaciones Diferenciales - La Transformada de LaplaceKike Prieto
Este documento presenta la transformada de Laplace y algunos de sus teoremas fundamentales. Introduce la definición de la transformada de Laplace de una función y establece condiciones para su existencia. Luego, enlista propiedades importantes como la linealidad de la transformada y fórmulas para funciones elementales como exponenciales, senos y cosenos. Finalmente, introduce la transformada inversa de Laplace y métodos para calcularla, incluyendo fracciones parciales y factoreo de polinomios.
Este documento explica los arreglos de punteros, que son arreglos cuyos elementos son punteros. Cada puntero puede apuntar a cualquier ubicación de memoria. También cubre punteros a punteros y la asignación dinámica de memoria usando operadores como new. Finalmente, proporciona ejemplos de cómo implementar arreglos de punteros, punteros a punteros y asignación dinámica en programas C++.
Las pruebas de escritorio permiten simular el comportamiento de un algoritmo mediante la generación de casos de prueba para detectar errores. Se establecen valores para las variables del algoritmo en una tabla y se siguen las instrucciones. Los casos de prueba representan posibles situaciones de datos de entrada, incluyendo escenarios normales y extremos. El documento presenta un ejemplo de algoritmo para calcular factoriales y sus respectivos casos de prueba.
Función Hash: metodos de división y de medio Cuadrado.Ana Castro
Este documento describe funciones hash y dos métodos para implementarlas: el método de división y el método del medio cuadrado. Una función hash mapea claves de entrada a valores hash de salida de tamaño fijo para usarlos como direcciones de almacenamiento. Estos métodos buscan minimizar colisiones cuando claves distintas generan el mismo valor hash. El método de división toma el residuo de dividir la clave entre un número, mientras que el método del medio cuadrado eleva la clave al cuadrado y toma dígitos centrales
El documento describe tres estructuras de selección en C: la estructura selectiva simple (if), la estructura selectiva doble (if-else), y la estructura selectiva múltiple (switch). La estructura if ejecuta una acción si una condición es verdadera, if-else ejecuta una de dos acciones dependiendo de si la condición es verdadera o falsa, y switch elige entre múltiples bloques de código dependiendo del valor de una expresión.
Este documento presenta las estructuras repetitivas "PARA" y las variables de control contador y acumulador. Explica que un contador incrementa o decrementa en un valor constante mientras que un acumulador lo hace en un valor variable. También muestra ejemplos de pseudocódigo que usan estas estructuras para sumar números o promedios de alumnos de forma repetitiva.
Ejercicios resueltos sobre Transformada de Laplace por definición y comprobado por tablas, Transformada Inversa de Laplace y resolución de ecuaciones diferenciales mediante Transformada de Laplace.
Este documento trata sobre algoritmos de búsqueda y ordenamiento. Explica la búsqueda secuencial, la búsqueda binaria y tres algoritmos de ordenamiento: burbuja, selección e inserción. También analiza la eficiencia de estos algoritmos en términos del número de comparaciones requeridas, concluyendo que la búsqueda binaria es más eficiente que la secuencial al requerir O(log n) comparaciones en el peor caso.
Este documento presenta los tipos básicos de datos en C, incluyendo constantes, operadores unarios, datos lógicos y caracteres. Explica cómo declarar y usar variables de diferentes tipos, y describe funciones matemáticas como las de la librería math.h y funciones para generar números aleatorios. El objetivo es que los estudiantes conozcan los conceptos fundamentales para trabajar con datos en el lenguaje 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.
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.
Los documentos presentan código en C para leer valores de entrada y realizar cálculos matemáticos simples como sumas, multiplicaciones, divisiones y conversiones de unidades. Luego imprimen los resultados obtenidos.
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 contiene varios programas de C++ que muestran ejemplos del uso de diferentes tipos de datos, operadores, estructuras de control y funciones. Los programas cubren temas como variables enteras, flotantes y booleanas, operadores aritméticos, de comparación y lógicos, condicionales if-else y switch-case, bucles while, for y do-while, arrays, funciones y clases.
El documento contiene varios ejemplos de código C++ que muestran el uso de diferentes tipos de variables (enteras, booleanas, float, double), operadores (aritméticos, de comparación, lógicos), estructuras de control (if, switch, while, for), funciones, clases y métodos. Los ejemplos van desde "Hola Mundo" hasta cálculos más complejos como el cálculo del sueldo de empleados y operaciones matemáticas con números.
El documento contiene varios programas de C++ que muestran ejemplos del uso de diferentes tipos de datos, operadores, estructuras de control y funciones. Los programas cubren temas como variables enteras, flotantes y booleanas, operadores aritméticos, de comparación y lógicos, condicionales if-else y switch-case, bucles while, for y do-while, arrays, funciones y clases.
Este documento contiene 20 prácticas de programación avanzada realizadas por Dario Lopez Diaz. Cada práctica cubre un tema diferente como operadores aritméticos, lógicos y de comparación, sentencias condicionales como if y switch, comentarios y bucles while.
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.
El documento proporciona información sobre conceptos básicos de programación como variables, operadores, estructuras de control, funciones y procedimientos. También incluye tablas con detalles sobre tipos de datos, declaración de variables, formatos de entrada y salida, y funciones para manejo de cadenas y archivos.
El documento contiene información sobre diferentes temas de programación como: operadores aritméticos y lógicos, declaración de variables, estructuras de control, funciones, manejo de archivos y cadenas. También incluye tablas con funciones para realizar conversiones, comparaciones, creación y manejo de archivos y cadenas de caracteres.
El documento contiene información sobre conceptos básicos de programación como variables, operadores, estructuras de control, funciones y procedimientos. También incluye tablas con detalles sobre tipos de datos, declaración de variables, funciones matemáticas y de cadena, funciones para manejo de archivos y E/S, entre otros temas relacionados con el desarrollo de software.
Este documento presenta una serie de ejercicios de programación en C++ desarrollados por Silvio Javier Cuenca Macas, estudiante de Electrónica y Telecomunicaciones. Los ejercicios incluyen programas para cambiar vocales minúsculas a mayúsculas en una cadena de caracteres, calcular la velocidad y posición de un objeto en caída libre, determinar si un número digitado es un número o carácter, calcular la suma de los primeros 50 números pares, y crear un programa de calculadora con funciones básicas.
Este documento describe cómo se manejan las cadenas de caracteres en C. En C, las cadenas se simulan mediante arreglos de caracteres donde la terminación de la cadena se indica con el carácter nulo '\0'. Se describen funciones como strcat(), strlen() y strncpy() definidas en la biblioteca string.h para manipular cadenas. También se explican funciones en ctype.h para probar y convertir caracteres individuales.
Este programa C++ presenta un menú con tres opciones: suma, multiplicación y salir. Solicita al usuario ingresar dos números y seleccionar una opción. Luego llama a funciones para realizar la suma o multiplicación de los números ingresados y mostrar el resultado, antes de volver al menú principal.
Este documento presenta código de programación en C/C++ para realizar diferentes tareas como ordenar arreglos, calcular promedios y desviaciones estándar, contar frecuencias, y asignar asientos en un avión. Incluye funciones para leer datos, ordenar arreglos, calcular promedios y desviaciones, y mostrar resultados.
Este documento presenta información sobre macros y tipos de datos avanzados en C, incluyendo definiciones de macros, arrays unidimensionales y bidimensionales, cadenas, registros, uniones y arrays de registros. Explica cómo declarar y utilizar estas estructuras de datos avanzadas para organizar y almacenar información de manera flexible y eficiente.
Este documento resume las funciones más importantes para el manejo de cadenas en C. Algunas de las funciones descritas son: strchr encuentra la primera aparición de un carácter en una cadena, strcpy copia una cadena en otra, strcmp compara dos cadenas alfabéticamente, strcat concatena cadenas, strlen devuelve la longitud de una cadena, y strtok divide una cadena en subcadenas separadas por delimitadores.
Se muestran y definen diferentes funciones, gráficas y su relación con los modelos matemáticos. Se analiza qué es un límite y los diferentes teoremas acerca de aquello. Finalmente, se estudia continuidad de una función en un número.
Matemáticas 2
Facultad de Arquitectura y Urbanismo
Universidad de Cuenca
Antiderivación
Técnicas de antiderivación
Área
Integral definida
Teorema del valor medio
Teorema fundamental del cálculo
Área de una región plana
Volúmenes de solidos
Valores extremos y comportamiento de las funciones y de sus gráficasAngel Vázquez Patiño
Extremos mínimos y máximos. Crecimiento y decrecimiento de una función. Concavidad de una función. Límites al infinito. Asíntotas horizontales y oblicuas. Análisis de funciones.
Este documento presenta el plan de estudios para el curso de Matemáticas 1. El curso cubrirá temas como derivada y diferenciación, movimiento rectilíneo, derivadas de funciones trigonométricas y la regla de la cadena. El objetivo es que los estudiantes comprendan conceptos como interpretación geométrica de la derivada, relación entre diferenciabilidad y continuidad, y tasas de variación relacionadas. El curso será impartido por Angel Vázquez-Patiño de la Universidad de Cuenca.
Causality and climate networks approaches for evaluating climate models, trac...Angel Vázquez Patiño
Climate consists of many components, for example, atmosphere, hydrosphere, cryosphere, and biosphere. All the components act under mechanisms that relate them in a highly nonlinear way, making the climate a complex system. This complexity is a challenge to study the climate and its implications at various spatiotemporal scales. However, the dependence of anthropogenic activities on the climate has encouraged its study in order, for example, to anticipate its periodic changes and, as far as possible, extreme events that may have adverse effects. As climate study is an intricate task, several approaches
have been used to unravel the underlying processes that dominate its behavior. Those approaches range from linear correlation analysis to complex machine learning-based knowledge discovery analysis. This last approach has become more relevant after the introduction of sophisticated climate simulation models and high-tech equipment (e.g., satellite) that allow a climate record of greater coverage (spatial and temporal) and that, together, have generated ubiquitous large databases. One of the knowledge discovery approaches based on this big data is based on climate networks. Nevertheless, causal reasoning methods have also been used recently to infer and characterize these networks, which
are called causal climate networks. Several studies have been carried out with climate networks; however, the recent introduction of causality methods makes the study of climate with causal climate networks an opportunity to explore and exploit them more widely. In addition, the particularities of the climate make it
necessary to understand specific operational issues that must be taken into account when applying networks. This thesis aims to propose new methodologies and applications of causal climate networks following as a common thread the characterization of physical phenomena that manifest
themselves at different spatial scales. For this, different case studies have been taken. They are the climate in South America and a large part of the Pacific and Atlantic oceans, then, reducing the scale, the surrounding factors that influence the rainfall of Ecuador, and, finally, the selection of predictors for downscaling models in an Andean basin. Among the main results are the following three.
First, a methodology for evaluating global climate models based on what is called here as causal flows. Second, an approach that studies causal flows and helps trace influence paths in flow fields. Third, the presentation of evidence that shows the effectiveness of methods based on causality in selecting predictors for downscaling models. The thesis contributes to efforts to bridge the gap between the climate science and causal inference communities. This through the study and application of causal reasoning and taking advantage of the enormous amounts of climate data available today.
Este documento describe los métodos numéricos de diferencias finitas para resolver ecuaciones diferenciales. Explica cómo aproximar derivadas con expresiones algebraicas más simples y cómo aplicar esto para resolver la ecuación de calor. También compara tres métodos: explícito, implícito y Crank-Nicolson, discutiendo sus ventajas y desventajas para este problema.
Este documento describe el método de Frobenius para encontrar soluciones en serie de potencias para ecuaciones diferenciales ordinarias con singularidades regulares. Explica que las singularidades son puntos donde las funciones de la ecuación no son analíticas y divide las singularidades en regulares e irregulares. Para singularidades regulares, el método de Frobenius busca soluciones en la forma de una serie de Frobenius centrada en el punto singular, lo que permite determinar valores para los coeficientes que hacen que la serie sea una solución válida localmente.
Este documento describe el método de las series para resolver ecuaciones diferenciales ordinarias (EDOs). Explica que cuando las soluciones de EDOs no pueden expresarse en términos de funciones elementales, se puede usar este método. Detalla los conceptos clave de series de Taylor y potencias, y los teoremas relacionados. También presenta dos métodos para obtener soluciones de EDOs lineales mediante series: diferenciaciones sucesivas y coeficientes indeterminados.
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Angel Vázquez Patiño
Este documento presenta métodos para resolver sistemas de ecuaciones diferenciales de primer orden y no lineales de orden mayor a uno mediante series. Explica que si cada función puede expresarse como una expansión de Taylor, existirá un conjunto de funciones que satisfacen el sistema y sus condiciones iniciales. También indica que para sistemas lineales y ecuaciones no lineales de orden mayor, las soluciones también pueden escribirse como series de potencias si los términos cumplen ciertas condiciones.
El documento describe dos sistemas de ecuaciones diferenciales que modelan interacciones biológicas. El primer sistema modela la dinámica de dos masas unidas por tres resortes, derivando ecuaciones del movimiento para cada masa. El segundo sistema modela la interacción entre una población huésped y una población parasitaria, derivando ecuaciones que describen cómo cambian las poblaciones con el tiempo. Ambos sistemas se resuelven analíticamente considerando diferentes simplificaciones y condiciones iniciales.
Este documento describe el proceso de linealización de sistemas de ecuaciones diferenciales de primer orden. Primero, se expanden las funciones f(x,y) y g(x,y) en series de Taylor usando los primeros 3 términos. Luego, se elimina el parámetro t dividiendo una ecuación por la otra, dando como resultado una ecuación lineal aproximada cuya solución dará la trayectoria aproximada de la partícula. Finalmente, se discuten varios casos posibles para la ecuación resultante dependiendo de los valores de
Este documento describe métodos para resolver sistemas de ecuaciones diferenciales lineales, incluyendo convertirlos en sistemas triangulares equivalentes y usar transformadas de Laplace. Explica que las soluciones de estos sistemas involucran funciones que satisfacen todas las ecuaciones simultáneamente y pueden involucrar constantes arbitrarias.
Este documento describe el método de la secante para encontrar ceros de funciones. Explica que el método de la secante es similar al método de Newton, pero no requiere la derivada analítica de la función, sino que usa una tasa de cambio incremental basada en valores de la función calculados previamente. Luego detalla los pasos del método de la secante para iterar entre dos puntos iniciales y converger a un cero de la función. Finalmente, presenta un ejemplo numérico mostrando la convergencia del método al resolver una ecuación.
Se explica lo que son los puntos fijos de una función, la condición para la existencia de un punto fijo, unicidad y convergencia del método y cómo aplicarlo para encontrar ceros de funciones.
Clase: https://youtu.be/2N9hyoUKwgE
Se indica cómo el intérprete trabaja cuando se interactua con objetos y cuando se lo hace usando variables para hacer referencia a dichos objetos. Además, se indica, con un ejemplo, la importancia de poner nombres nemotécnicos/descriptivos a las variables.
Clase: https://youtu.be/e_rwM31VnLU
Este documento define los conceptos de error, exactitud y precisión en métodos numéricos. Explica que los métodos numéricos dan sólo aproximaciones debido a limitaciones como la capacidad finita de los computadores. Define error verdadero, error relativo verdadero y error relativo aproximado. Además, explica cómo escoger un umbral de error para obtener una cantidad aproximada de cifras significativas.
Se presentan los fundamentos de computación y nociones básicas acerca de la resolución de problemas mediante la computación. Se indica lo que es el conocimiento imperativo, los algoritmos y los componentes de un lenguaje de programación.
La clase está en https://youtu.be/lRmk1wJBwTc
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Angel Vázquez Patiño
Granger causal strength networks as metric for measuring GCMs performance.
Everything presented resulted in the following scientific article: Vázquez‐Patiño, A., Campozano, L., Mendoza, D., Samaniego, E., 2020. A causal flow approach for the evaluation of global climate models. Int J Climatol 1–21. https://doi.org/10.1002/joc.6470
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
1. Programación 1
Cadenas en C
Angel Vázquez-Patiño
angel.vazquezp@ucuenca.edu.ec
Departamento de Ciencias de la Computación
Universidad de Cuenca
19 de septiembre de 2017
2. 19/09/17 Angel Vázquez-Patiño 2/59
Objetivos
1. Manipular caracteres y cadenas en C
2. Utilizar librerías estándar de C para la
manipulación de caracteres y cadenas
3. Usar punteros para el manejo de cadenas y
caracteres en C
4. Convertir tipos de datos en C
3. 19/09/17 Angel Vázquez-Patiño 3/59
Contenido
Cadenas en C
Lectura de una cadena desde el teclado
Bibliotecas estándar
ctype.h
string.h
Conversión de tipos
Ejercicios
5. 19/09/17 Angel Vázquez-Patiño 5/59
Cadenas en C
●
Las cadenas son realmente un arreglo
unidimensional de caracteres terminados por
un carácter nulo ‘0’
●
Así una cadena terminada en nulo contiene los
caracteres que comprenden la cadena
seguidos por un null
6. 19/09/17 Angel Vázquez-Patiño 6/59
Cadenas en C
Declaración e inicialización de cadena “Hola”
●
Por el carácter nulo al final se reserva un
elemento más en el arreglo
char cad[5] = {‘H’,’o’,’l’,’a’,’0’};
●
Siguiendo la regla de inicialización de arreglos
char cad[] = “Hola”;
12. 19/09/17 Angel Vázquez-Patiño 12/59
Leer una cadena desde el teclado
1 int main(){
2 char nombre[50];
3 printf("Ingrese su nombre
completo (50 letras máximo):
");
4 scanf("%s", nombre);
5 printf("Nombre: %s", nombre);
6 }
13. 19/09/17 Angel Vázquez-Patiño 13/59
Leer una cadena desde el teclado
1 int main(){
2 char nombre[50];
3 printf("Ingrese su nombre
completo (50 letras máximo): ");
4 scanf("%49[0-9a-zA-z ]",
nombre);
5 printf("Nombre: %s", nombre);
6 }
14. 19/09/17 Angel Vázquez-Patiño 14/59
Leer una cadena desde el teclado
1 int main(){
2 char nombre[50];
3 printf("Ingrese su nombre
completo (50 letras máximo):
");
4 scanf("%[^n]s", nombre);
5 printf("Nombre: %s", nombre);
6 }
15. 19/09/17 Angel Vázquez-Patiño 15/59
Leer una cadena desde el teclado
1 #include<stdio.h>
2 int main(){
3 char nombre[50];
4 printf("Ingrese su nombre completo
(50 letras máximo): ");
5 gets(nombre); // warning: the
`gets' function is dangerous and
should not be used.
6 printf("Nombre: %s", nombre);}
16. 19/09/17 Angel Vázquez-Patiño 16/59
Leer una cadena desde el teclado
1 #include<stdio.h>
2 int main(){
3 char nombre[50];
4 printf("Ingrese su nombre completo
(50 letras máximo): ");
5 fgets(nombre, 50, stdin);
6 printf("Nombre: %s", nombre);}
Vea https://goo.gl/VE5N1D
17. 19/09/17 Angel Vázquez-Patiño 17/59
Ejercicios
Ejercicio
●
Escribir una función que reciba como
parámetros una cadena de caracteres y un
carácter; la función devuelve el número de
veces que se encuentra el carácter en la
cadena
23. 19/09/17 Angel Vázquez-Patiño 23/59
ctype.h
int isalpha(int c)
● Verifica si el caracter c es alfabético
int isdigit(int c)
● Verifica si el caracter c es dígito decimal
int tolower(int c)
● Convierte el carácter c a minúscula
int toupper(int c)
● Convierte el carácter c a mayúscula
29. 19/09/17 Angel Vázquez-Patiño 29/59
ctype.h
Ejercicio 3
●
Implemente una función que reciba una cadena
y una letra, y coloque en mayúsculas cada
ocurrencia de la letra (case sensitive) en la
cadena (la función debe modificar la cadena en
sí).
32. 19/09/17 Angel Vázquez-Patiño 32/59
string.h
Vea los vídeos
Aprende Programación en C || Programación ATS
1) https://youtu.be/YqoV6UMQEcE
2) https://youtu.be/iW_zzg2ppvg
3) https://youtu.be/_uk3pSfTpUE
4) https://youtu.be/k2Bm1rc4LGY
5) https://youtu.be/1uBfk0Gn0io
6) https://youtu.be/qbBG8rjpOW4
33. 19/09/17 Angel Vázquez-Patiño 33/59
string.h
char *strcpy(char *dest, const char
*src)
● Copia la cadena apuntada por src a dest
char *strcat(char *dest, const char
*src)
● Concatena la cadenas apuntada por src al final
de la cadena apuntada por dest
size_t strlen(const char *str)
● Calcula la longitud de la cadena str sin incluir el
carácter nulo de terminación
34. 19/09/17 Angel Vázquez-Patiño 34/59
string.h
int strcmp(const char *str1, const
char *str2)
●
0 si str1 = str2; <0 si str1 < str2; >0 si str1 > str2
char *strchr(const char *str, int c)
● Busca la primera ocurrencia del carácter c (un
unsigned char) en la cadena apuntada por el
argumento str
35. 19/09/17 Angel Vázquez-Patiño 35/59
string.h
char *strstr(const char *haystack,
const char *needle)
●
Encuentra la primera ocurrencia de la cadena
needle completa (sin incluir el carácter nulo de
terminación) que aparece en la cadena
haystack
char *strtok(char *str, const char
*delim)
● Separa la cadena str en una serie de tokens
separados por delim
36. 19/09/17 Angel Vázquez-Patiño 36/59
#include <stdio.h>
#include <string.h>
int main (){
char cad1[] = "Hola ";
char cad2[] = "Mundo"; char cad3[2];
strcpy(cad3, cad1); // copia cad1 en cad3
printf("strcpy(cad3, cad1): %sn", cad3);
strcat(cad1, cad2); // concatena
printf("strcat(cad1, cad2): %sn", cad1);
// Longitud cad1 después de concatenación
printf("strlen(cad1):%d", strlen(cad1));}
38. 19/09/17 Angel Vázquez-Patiño 38/59
string.h
Ver si una cadena está dentro de otra
1 int main(){
2 char cad[100], subcad[100];
3 scanf("%[^n]s", cad);
4 scanf("%[^n]s", subcad);
5 if(strstr(cad, subcad) != NULL)
6 printf("Sí contiene.");
7 else
8 printf("No contiene.");}
39. 19/09/17 Angel Vázquez-Patiño 39/59
string.h
Posición de la primera ocurrencia de una
subcadena
1 int main(){
2 char a[] = "Hola mundo";
3 char *b = strstr(a, "mundo");
4 printf("b: %pn*b: %cn", b, *b);
5 printf("na: %pn*a: %cn", a, *a);
6 printf("nPosición: %i", (int)(b-
a));}
40. 19/09/17 Angel Vázquez-Patiño 40/59
string.h
Separar una cadena en tokens
1 int main(){
2 char str[60] = "Este es- mi curso - de C -en
la -- Universidad de Cuenca";
3 const char s[2] = "-"; char *token;
4 token = strtok(str, s);//obtiene el primer
token
5 while(token != NULL){ // va a través de
6 printf( " %sn", token ); // los otros
tokens
7 token = strtok(NULL, s);}
8 return(0);}
41. 19/09/17 Angel Vázquez-Patiño 41/59
string.h
Ejercicio
●
Solicitar el ingreso de los apellidos de dos
personas. Mostrar un mensaje indicando si son
iguales o distintos.
44. 19/09/17 Angel Vázquez-Patiño 44/59
Conversión de tipos
Cadena a entero
1 #include<stdio.h>
2 #include<stdlib.h> // para atoi
3 int main(){
4 char cadena[] = "48";
5 int num = atoi(cadena);
6 printf("%d", num*2);}
45. 19/09/17 Angel Vázquez-Patiño 45/59
Conversión de tipos
Cadena a float
1 #include<stdio.h>
2 #include<stdlib.h> // para atof
3 int main(){
4 char cadena[] = "48.098";
5 float num = atof(cadena);
6 printf("%f", num);}
46. 19/09/17 Angel Vázquez-Patiño 46/59
Conversión de tipos
Entero a cadena
1 #include<stdio.h> // sprintf
2 int main(){
3 int entero = 368;
4 char cad[4];
5 sprintf(cad, "%d", entero);
6 printf("%s", cad);}
47. 19/09/17 Angel Vázquez-Patiño 47/59
Conversión de tipos
Entero a cadena
● También puede revisar la función itoa
● itoa no es estándar
●
https://goo.gl/Cv7r7c
49. 19/09/17 Angel Vázquez-Patiño 49/59
Conversión de tipos
Ejercicio
●
Solicitar el ingreso, como cadenas, del nombre
y edad de dos personas (validar que sea una
edad correcta entre 0 y 130 años). Mostrar el
nombre de la persona con mayor edad.
52. 19/09/17 Angel Vázquez-Patiño 52/59
Ejercicios
1) Implemente la función _Bool equals(const
char *str1, const char *str2) que
devuelve true/false si las cadenas enviadas
como argumento son/(no son) iguales. Es case
sensitive
2) Implemente la función _Bool
equalsIgnoreCase(const char *str1,
const char *str2) que devuelve true/false
si las cadenas enviadas como argumento son/
(no son) iguales. Es no case sensitive.
53. 19/09/17 Angel Vázquez-Patiño 53/59
Ejercicios
3) Implemente la función void substring(char
*dest, const char *str, size_t pos)
que devuelve una subcadena dest desde la
posición pos hasta el final de la cadena str
4) Implemente la función void substring(char
*dest, const char *str, size_t pos1,
size_t pos2) que devuelve una subcadena
dest desde la posición pos1 hasta la posición
pos2 de la cadena str
54. 19/09/17 Angel Vázquez-Patiño 54/59
Ejercicios
5) Implemente la función size_t
lastIndexOf(const char *cad, const
char *subcad) que da la posición de la
primera ocurrencia de la subcadena subcad
comparando la ocurrencia de derecha a
izquierda en cad
56. 19/09/17 Angel Vázquez-Patiño 56/59
Conceptos y términos importantes
●
Maneras de leer cadenas desde el teclado
●
Una cadena es un arreglo de caracteres
●
Punteros
●
Uso de punteros en las funciones
●
Transformar caracteres o cadenas a números
57. 19/09/17 Angel Vázquez-Patiño 57/59
Referencias
●
Gustedt, J., 2017. Modern C. France.
http://icube-icps.unistra.fr/index.php/File:Moder
nC.pdf
●
C - Strings,
https://www.tutorialspoint.com/cprogramming/c_
strings.htm
●
How do you allow spaces to be entered using
scanf, https://goo.gl/UOk4e
●
C Standard Library Reference Tutorial,
https://www.tutorialspoint.com/c_standard_librar
y/
58. 19/09/17 Angel Vázquez-Patiño 58/59
Referencias
●
Trim a string in C, https://goo.gl/SvJKk
Revisar
●
Sección 6.1. Arrays del libro de Gustedt (2017)
●
Vázquez-Patiño, A., 2017. Ejercicios Básicos
de Programación, 1st ed. Departamento de
Ciencias de la Computación, Universidad de
Cuenca, Cuenca, Ecuador.
https://goo.gl/X0UTxi