SlideShare una empresa de Scribd logo
Fundamentos de Programación

          Arreglos
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
•
                 ¿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.
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.
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;
                                                      }
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]);
     }
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();
             }
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.
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};
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]
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.
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-
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);
}
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.
¿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.

Más contenido relacionado

La actualidad más candente

Mapa conceptual poo
Mapa conceptual pooMapa conceptual poo
Mapa conceptual poo
saulalex2017
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesmarigelcontreras
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Lalo Chooper
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
ROSA IMELDA GARCIA CHI
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
Angel Vázquez Patiño
 
Listas Enlazadas
Listas EnlazadasListas Enlazadas
Listas Enlazadas
Vane Borjas
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
Cesar David Fernandez Grueso
 
Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
José Antonio Sandoval Acosta
 
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Richard Eliseo Mendoza Gafaro
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
IrvingMoran4
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matricesAriannaYadiraT
 
Identificadores en Lógia de Programación
Identificadores en Lógia de ProgramaciónIdentificadores en Lógia de Programación
Identificadores en Lógia de Programación
normaroldano
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgresHIPOLITO GRULLON
 
Estructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeIntEstructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeInt
Pedro Antonio Villalta (Pavillalta)
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
eccutpl
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Humano Terricola
 
Arreglos de registros
Arreglos de registros Arreglos de registros
Arreglos de registros
Francisco Apostol
 

La actualidad más candente (20)

Mapa conceptual poo
Mapa conceptual pooMapa conceptual poo
Mapa conceptual poo
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
 
Listas Enlazadas
Listas EnlazadasListas Enlazadas
Listas Enlazadas
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
 
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Identificadores en Lógia de Programación
Identificadores en Lógia de ProgramaciónIdentificadores en Lógia de Programación
Identificadores en Lógia de Programación
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
 
Estructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeIntEstructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeInt
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Arreglos de registros
Arreglos de registros Arreglos de registros
Arreglos de registros
 

Destacado

Estructura de un Programa en C++
Estructura de un Programa en C++Estructura de un Programa en C++
Estructura de un Programa en C++
itzel-patricia05
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
José Antonio Sandoval Acosta
 
Arreglos-Programacion
Arreglos-ProgramacionArreglos-Programacion
Arreglos-Programacion
Reina Rodriguez
 
Programacion arreglos diapositivas
Programacion arreglos diapositivasProgramacion arreglos diapositivas
Programacion arreglos diapositivas
Josue Rosales
 
Ordenacion
OrdenacionOrdenacion
Ordenacion
karlalopezbello
 
IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicioscbertolotti
 
Metodo burbuja C++
Metodo burbuja C++Metodo burbuja C++
Metodo burbuja C++
Santiago Sarmiento
 
Arreglos - Programación I
Arreglos - Programación IArreglos - Programación I
Arreglos - Programación I
ISIV - Educación a Distancia
 
Generalidades
GeneralidadesGeneralidades
Generalidades
Jose Tallaferro
 
Arreglos
ArreglosArreglos
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOSunidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO PUERTO
 
Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++
UVM
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++
eliezerbs
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bits
Jaime E. Velarde
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
UVM
 

Destacado (20)

Estructura de un Programa en C++
Estructura de un Programa en C++Estructura de un Programa en C++
Estructura de un Programa en C++
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Arreglos-Programacion
Arreglos-ProgramacionArreglos-Programacion
Arreglos-Programacion
 
Programacion arreglos diapositivas
Programacion arreglos diapositivasProgramacion arreglos diapositivas
Programacion arreglos diapositivas
 
Pseint taller 1
Pseint taller 1Pseint taller 1
Pseint taller 1
 
Ordenacion
OrdenacionOrdenacion
Ordenacion
 
Arreglos
ArreglosArreglos
Arreglos
 
IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicios
 
Metodo burbuja C++
Metodo burbuja C++Metodo burbuja C++
Metodo burbuja C++
 
Arreglos - Programación I
Arreglos - Programación IArreglos - Programación I
Arreglos - Programación I
 
Generalidades
GeneralidadesGeneralidades
Generalidades
 
Arreglos
ArreglosArreglos
Arreglos
 
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOSunidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
 
Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bits
 
Clase3
Clase3Clase3
Clase3
 
Clase 7
Clase 7Clase 7
Clase 7
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 

Similar a 12 Arreglos

Arreglos
ArreglosArreglos
Arregloslichic
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
Ronny Parra
 
Arreglos
ArreglosArreglos
Arreglos
Ant Jfr
 
Estructura de Datos: Arreglos
Estructura de Datos: Arreglos Estructura de Datos: Arreglos
Estructura de Datos: Arreglos
Anaida Escalona Tona
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punteros
Franklin Parrales Bravo
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
Ram Vazquez
 
arrays
arraysarrays
ED 02 2_tda_arra_u
ED 02 2_tda_arra_uED 02 2_tda_arra_u
ED 02 2_tda_arra_uA J
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
Leticia Hernández
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu genericoAna Ocaña
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
karlalopezbello
 
Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)
Zamantha Gonzalez Universidad Nacional Abierta
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programaciondiego MC
 
ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++die_dex
 

Similar a 12 Arreglos (20)

Estructuras
Estructuras Estructuras
Estructuras
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructura de Datos: Arreglos
Estructura de Datos: Arreglos Estructura de Datos: Arreglos
Estructura de Datos: Arreglos
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punteros
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
 
arrays
arraysarrays
arrays
 
Arreglos Java
Arreglos JavaArreglos Java
Arreglos Java
 
ED 02 2_tda_arra_u
ED 02 2_tda_arra_uED 02 2_tda_arra_u
ED 02 2_tda_arra_u
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Unidad5
Unidad5Unidad5
Unidad5
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu generico
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++
 

Último

PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
cportizsanchez48
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Juan Martín Martín
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
valerytorresmendizab
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Demetrio Ccesa Rayme
 
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
DanielaBurgosnazario
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
María Sánchez González (@cibermarikiya)
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
Alejandrino Halire Ccahuana
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
ReivajZetinebAvlis
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 

Último (20)

PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
 
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 

12 Arreglos

  • 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.