Este documento describe los arreglos y su estructura en C. Los arreglos permiten almacenar múltiples datos del mismo tipo en una sola variable. Un arreglo tiene un tamaño, tipo y nombre. Los elementos de un arreglo se acceden mediante índices enteros. Los arreglos pueden ser unidimensionales o multidimensionales y se pueden inicializar y recorrer con bucles.
Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.
Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.
Tecnológico Nacional de México
ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 6 archivos
En este material se manejan archivos de texto y archivos binarios.
Objetivos
Una vez que se haya leído y estudiado este capítulo, usted podrá:
• Conocer los algoritmos basados en el intercambio de elementos.
• Conocer el algoritmo de ordenación por inserción.
• Conocer el algoritmo de selección.
• Distinguir entre los algoritmos de ordenación basados en el intercambio
y en la inserción.
• Saber la eficiencia de los métodos básicos de ordenación.
• Conocer los métodos más eficientes de ordenación.
• Aplicar métodos mas eficientes de ordenación de arrays.
• Ordenar vectores de objetos.
• Diferenciar entre búsqueda secuencial y búsqueda binaria.
Introducción
Muchas actividades humanas requieren que diferentes colecciones de elementos utilizados se pongan en un orden específico. Las oficinas de correo y las empresas de mensajería ordenan el correo y los paquetes por códigos postales con el objeto de conseguir una entrega eficiente; las facturas telefónicas se ordenan por la fecha de las llamadas; los anuarios o listines telefónicos se ordenan por orden alfabético de apellidos con el fin último de encontrar fácilmente el número de teléfono deseado; los estudiantes de una clase en la universidad se ordenan por sus apellidos o por los números de expediente.
Por estas circunstancias una de las tareas que realizan más frecuentemente las computadoras en el procesamiento de datos es la ordenación.
El estudio de diferentes métodos de ordenación es una tarea intrínsecamente interesante desde un punto de vista teórico y, naturalmente, práctico. Este capítulo estudia los algoritmos y las técnicas de ordenación más usuales y su implementación en Java; también la manera de ordenar objetos con la funcionalidad que proporcionan las clases en Java. De igual modo, se estudiará el análisis de los diferentes métodos de ordenación con el objetivo de conseguir la máxima eficiencia en su uso real.
En el capítulo se analizarán los métodos básicos y los más avanzados empleados en programas profesionales.
Identificadores en Lógia de Programaciónnormaroldano
En cualquier lenguaje de programación actual podemos asociar un dato (o conjunto de ellos) a un identificador (nombre), es importante saber cómo construirlos apropiadamente.
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
Materia de lenguajes y autómatas 1 del Tecnológico de Tepic, maestra Sonia. Si llevas la materia de autómatas con Sonia, copienselo y rólenlo a sus amigos.
Tecnológico Nacional de México
ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 6 archivos
En este material se manejan archivos de texto y archivos binarios.
Objetivos
Una vez que se haya leído y estudiado este capítulo, usted podrá:
• Conocer los algoritmos basados en el intercambio de elementos.
• Conocer el algoritmo de ordenación por inserción.
• Conocer el algoritmo de selección.
• Distinguir entre los algoritmos de ordenación basados en el intercambio
y en la inserción.
• Saber la eficiencia de los métodos básicos de ordenación.
• Conocer los métodos más eficientes de ordenación.
• Aplicar métodos mas eficientes de ordenación de arrays.
• Ordenar vectores de objetos.
• Diferenciar entre búsqueda secuencial y búsqueda binaria.
Introducción
Muchas actividades humanas requieren que diferentes colecciones de elementos utilizados se pongan en un orden específico. Las oficinas de correo y las empresas de mensajería ordenan el correo y los paquetes por códigos postales con el objeto de conseguir una entrega eficiente; las facturas telefónicas se ordenan por la fecha de las llamadas; los anuarios o listines telefónicos se ordenan por orden alfabético de apellidos con el fin último de encontrar fácilmente el número de teléfono deseado; los estudiantes de una clase en la universidad se ordenan por sus apellidos o por los números de expediente.
Por estas circunstancias una de las tareas que realizan más frecuentemente las computadoras en el procesamiento de datos es la ordenación.
El estudio de diferentes métodos de ordenación es una tarea intrínsecamente interesante desde un punto de vista teórico y, naturalmente, práctico. Este capítulo estudia los algoritmos y las técnicas de ordenación más usuales y su implementación en Java; también la manera de ordenar objetos con la funcionalidad que proporcionan las clases en Java. De igual modo, se estudiará el análisis de los diferentes métodos de ordenación con el objetivo de conseguir la máxima eficiencia en su uso real.
En el capítulo se analizarán los métodos básicos y los más avanzados empleados en programas profesionales.
Identificadores en Lógia de Programaciónnormaroldano
En cualquier lenguaje de programación actual podemos asociar un dato (o conjunto de ellos) a un identificador (nombre), es importante saber cómo construirlos apropiadamente.
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
Materia de lenguajes y autómatas 1 del Tecnológico de Tepic, maestra Sonia. Si llevas la materia de autómatas con Sonia, copienselo y rólenlo a sus amigos.
Objetivo: Diseñar los datos de manera organizada a través de los tipos de datos estructurados y punteros para la representación de la información en los sistemas del mundo real.
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMJuan Martín Martín
Examen de Selectividad de la EvAU de Geografía de junio de 2023 en Castilla La Mancha. UCLM . (Convocatoria ordinaria)
Más información en el Blog de Geografía de Juan Martín Martín
http://blogdegeografiadejuan.blogspot.com/
Este documento presenta un examen de geografía para el Acceso a la universidad (EVAU). Consta de cuatro secciones. La primera sección ofrece tres ejercicios prácticos sobre paisajes, mapas o hábitats. La segunda sección contiene preguntas teóricas sobre unidades de relieve, transporte o demografía. La tercera sección pide definir conceptos geográficos. La cuarta sección implica identificar elementos geográficos en un mapa. El examen evalúa conocimientos fundamentales de geografía.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
Ponencia en I SEMINARIO SOBRE LA APLICABILIDAD DE LA INTELIGENCIA ARTIFICIAL EN LA EDUCACIÓN SUPERIOR UNIVERSITARIA. 3 de junio de 2024. Facultad de Estudios Sociales y Trabajo, Universidad de Málaga.
2. Estructura de Datos
• Se puede considerar un conjunto de datos,
– Como una sola entidad…
– Como un solo tipo de dato…
De esta forma, se reduce la complejidad de un problema.
• Un programa esta formado por:
– Estructuras de control y llamadas a funciones (el
algoritmo de nuestro programa).
– Datos, con sus respectivos tipos, ya sean estos
atómicos o complejos, juntos forman una jerarquía (la
estructura de datos del programa).
PROGRAMA = ALGORITMO + ESTRUCTURA DE DATOS
3. •
¿Qué es un Arreglo?
Basándonos en los tipos de datos atómicos, podemos crear otros más
complejos.
• Un arreglo es una colección, o grupo de datos, donde:
– Cada dato tiene su posición (primero, segundo,
tercero…)
– Y todos los datos del grupo son del mismo tipo, es
decir, o todos son enteros, o todos son reales, etc.
NO EXISTEN ARREGLOS “MEZCLADOS”
Jamás olvidar
que un arreglo mejor forma de visualizar un arreglo es:
• La
..
tiene un tipo – Como un grupo de cajas, una detrás de otra .
– Donde cada caja representa un dato del arreglo o un elemento.
• Podemos concluir que un arreglo tiene:
– Tamaño: cuantas cajas va a tener, el número de datos.
– Tipo: cuál es el tipo de todos los datos del arreglo.
– Nombre: el único nombre bajo el cual vamos a dirigirnos al
mismo.
4. Declaración de Arreglos
• Al declarar una variable cualquiera siempre indicamos: tipo y
nombre. Por ejemplo: int a;
• Para declarar un arreglo, se debe indicar
– Tipo
– Nombre y
– Tamaño
• Un arreglo de 10 elementos enteros, se declara:
– int ArregloEnteros[10]; Jamás olvidar,
– Y lo podemos visualizar: el tamaño de
ArregloEnteros un arreglo es
una constante
0 1 2 3 4 5 6 7 8 9
• Cada elemento del grupo va a estar identificado por un valor
numérico, llamado índice.
• En C el primer elemento de un arreglo tiene el índice 0.
• Siempre, para indicar el tamaño de un arreglo, se utilizara una
constante, jamás una variable.
5. Manejo de Arreglos
• Tenemos ahora 10 enteros bajo un mismo nombre
• ¿Como accedemos a uno de esos datos?
– Usamos el nombre del arreglo y el índice que identifica al elemento:
nombre_arreglo[indice]
– Si se desea asignar el valor de 2 al primer elemento del
arreglo:
arregloEntero[0] = 2; ArregloEnteros
arregloEntero[1] = 9;
2 9 1
arregloEntero[4] = 1:
0 1 2 3 4 5 6 7 8 9
– Cada elemento es en efecto una variable del tipo declarado para el arreglo
– Es muy importante recordar que:
• El índice de un elemento, no es el valor (contenido) de dicho elemento.
• El índice puede ser cualquier expresión que retorne un valor entero.
– Para asignar a todos los elementos del arreglo, un mismo valor, lo mas
práctico es usar un lazo for:
for(i = 0; i < 10; i++)
{
arregloEntero[ i ] = 0;
}
6. Leer e Imprimir un Arreglo
• Acabamos de ver un ejemplo para acceder a todos los elementos
de una arreglo de una forma práctica.
• Si tenemos 10 elementos en un arreglo, y queremos pedir que
los ingresen por teclado, debemos repetir el ingreso 10 veces:
for(i = 0; i < 10; i++)
{
scanf(“%d”,&a);
arregloEnteros[i] = a;
}
• Así mismo, para imprimir todos los elementos de un arreglo,
deberíamos repetir el proceso de imprimir, pero diez veces:
for(i = 0; i < 10; i++)
{
printf(“Elemento %d:%dn”, i, ArregloEnteros[i]);
}
7. Ejercicio
• Programa que permite el ingreso de las notas de un
curso de 20 alumnos. Una vez ingresados, debe
mostrarse el promedio de las mismas.
#include <stdio.h>
#define MAX 20 El usuario del programa
no tiene porque saber
void main(){ que los índices van
double notas[MAX]; desde 0, se le pueden
double total, promedio; mostrar desde 1
int i,a;
total = 0;
for(i = 0; i < MAX; i++){
printf("Ingrese Alumno %d:",i+1);
scanf(“%d”,&a);
notas[i]=a;
}
for(i = 0; i < MAX; i++)
{
total = total + notas[i];
}
promedio = (double)total / (double)MAX;
printf("Promedio: %.2f",promedio);
getch();
}
8. Arreglos Para Tabular
• En lugar de almacenar valores
en los elementos de un arreglo,
algunas aplicaciones usan los
arreglos para almacenar
“índices”, que permiten llevar
estadísticas, de un dato en
particular.
• Por ejemplo:
Se pidió a 40 estudiantes que
calificaran la calidad de la
comida de la cafetería en una
escala del 1 al 10 (1 es terrible y
10 excelente).
Escriba un programa en C que
pida las 40 respuestas y luego
muestre un resumen del
resultado.
9. Inicialización de un Arreglo
• Un arreglo en C también se puede inicializar de
las siguientes formas:
– Crear un arreglo de 3 elementos
• Inicializando cada elemento:
int A[]={11,2,8}; ó
int A[3]={11,2,8};
• Inicializando todos los elementos con
el mismo valor:
int A[3]={0};
10. Arreglos Multidimensionales
• En C, los elementos de un arreglo pueden ser de cualquier tipo
• Esto quiere decir que los elementos de un arreglo pueden ser a
su vez, arreglos.
• Arreglos de arreglos, se conocen como arreglos
multidimensionales.
• El mas común de estos, es el de dos dimensiones, conocido
también como Matriz o Tabla.
• Un ejemplo de una matriz, es un tablero de tres en raya.
• Este es un arreglo de 3 elementos, donde cada elemento es un
arreglo, de tres elementos también.
int A[3][3];
A[0]
(0,0) (0,1) (0,2) A[0][0] A[0]1] A[0][2]
A[1]
(1,0) (1,1) (1,2) A[1][0] A[1][1] A[1][2]
A[2]
(2,0) (2,1) (2,2) A[2][0] A[2][1] A[2][2]
11. Inicialización
• Un arreglo multidimensional también se puede
inicializar
static double MatrizIdentidad[3][3] =
{
{1,0,0},
{0,1,0}
{0,0,1}
};
• Así podemos inicializar todos los elementos de
una matriz desde el inicio, sin necesidad de usar
lazos anidados.
12. Búsqueda en un Arreglo
• Se refiere al proceso para encontrar un
elemento particular en un arreglo.
• Una de las estrategias mas comunes y simples
para buscar un dato en un arreglo es:
– Revisar uno por uno los elementos del
mismo, este método se conoce como
búsqueda lineal.
• Escribir una función que determine si un valor
dado se encuentra en un arreglo de elementos
enteros, y si es así, indique su posición-
13. Solución
Dato a buscar: 58 A[0] 19
A[1] 12
A[2] 1
A[3] 2
A[4] 58
A[5]100
int EncontrarElemento(int valor, int arreglo[ ] ,int n) A[6] 3
{ A[7] 4
for(i=0; i <10; i++) A[8] 45
{
if (valor = = arreglo [ i ] ) A[9] 25
return(i);
}
return(-1);
}
14. Operador sizeof
• Un char ocupa un byte.
• ¿Cuantos bytes ocupa un entero? ¿un real?
¿una cadena?
– Depende de cada máquina
Podemos averiguarlo usando el
operador sizeof.
sizeof(int) devuelve el número de bytes que
necesita un dato de tipo int.
– CUIDADO: sizeof es un operador, no
una función.
15. ¿Cómo calcular el tamaño de un
arreglo?1000
Arreglo[0]
1008
• Si inicializamos una Arreglo[1]
arreglo sin indicar su 1016
ancho… Arreglo[2]
1024
Arreglo[3]
¿Cómo podemos saber
el ancho, para futuros 1032
Arreglo[4]
usos en el programa?
sizeof(Arreglo) devuelve 32
sizeof(Arreglo[0]) devuelve el desfase: 8
sizeof(Arreglo)/sizeof(Arreglo[0])
devuelve 4, justo el número de elementos
del arreglo.