02 Programacion Pucv 2013 - Arreglos Unidimensionales Final

31
ESTRUCTURAS DE DATOS EN C 1) ARREGLOS UNIDIMENSIONALES Escuela de Ingeniería Informática [email protected] FUNDAMENTOS DE PROGRAMACIÓN

Transcript of 02 Programacion Pucv 2013 - Arreglos Unidimensionales Final

ESTRUCTURAS DE DATOS EN C

1) ARREGLOS UNIDIMENSIONALES

Escuela de Ingeniería Informática

[email protected]

FUNDAMENTOS DE PROGRAMACIÓN

ESTRUCTURA DE DATOS EN C

• Conjunto de variables organizadas lógicamente en la memoria que pueden ser de diferente o igual tipo y que se encuentran relacionadas entre si.

FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTOS DE PROGRAMACIÓN

Estructuras de datos se caracterizan por:

Tipo de elementos que contienen

Relación que existe entre sus elementos

Operaciones definidas sobre ella

FUNDAMENTOS DE PROGRAMACIÓN

ESTRUCTURAS DE DATOS EN C

Arreglos Unidimensionales

(vectores)

Arreglos Bidimensionales

(matrices)

Cadenas de Caracteres

(string)

Registros (struct)

33

12

10

MEMORIA

1005AA 1005AB 1005AC

10 , 12 , 33

FUNDAMENTOS DE PROGRAMACIÓN

12 10 33

ARREGLOS UNIDIMENSIONALES

(VECTORES)

Conjunto finito de elementos homogéneos

Se almacenan en posiciones consecutivas

de memoria

DECLARACIÓN DE UN ARREGLO UNIDIMENSIONAL EN C

<tipo> <nombre> [<tamaño>];

Cualquier tipo válido

Cualquier nombre válido Corchetes

obligatorios

Constante que especifica el

tamaño

EJEMPLO: int A [100];

FUNDAMENTOS DE PROGRAMACIÓN

10 33 120 130 343 112

Longitud física = 9

Longitud lógica = 6

A =

FUNDAMENTOS DE PROGRAMACIÓN

LONGITUD DE UN ARREGLO

Longitud física (N)

Cantidad MÁXIMA de elementos que puede almacenar el arreglo

Longitud lógica (M)

Cantidad de elementos REALMENTE almacenados en el arreglo

M <= N

INICIALIZACIÓN DE UN ARREGLO EN C • C permite inicializar un arreglo con valores en su declaración.

Sintaxis : tipo id_arreglo[tamaño] = {valor1, valor2, ……, valor n};

Ejemplo: int A[6]={10,120,33,130,112,343};

FUNDAMENTOS DE PROGRAMACIÓN

10 33 120 130 343 112

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

INDEXACIÓN DE ARREGLOS EN C • Mecanismo mediante el cual se puede acceder al elemento almacenado

en cada posición del arreglo.

• En C la indexación es en base 0.

10 33 120 130 343 112

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

FUNDAMENTOS DE PROGRAMACIÓN

A =

ACCESO A CADA ELEMENTO EN EL ARREGLO • Sintaxis : id_arreglo[indice] , donde índice es una variable ordinal

Ejemplo:

int A[6]; A[0]=45;

FUNDAMENTOS DE PROGRAMACIÓN

45

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

ACCESO A CADA ELEMENTO EN EL ARREGLO • El nombre o identificador del arreglo es un puntero a un conjunto de

datos de un cierto tipo.

Ejemplo int A[6]; //A = @A[0] Por lo tanto A[4]=20; //es equivalente a *(A+4)=20;

FUNDAMENTOS DE PROGRAMACIÓN

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO • Esta operación permite acceder a cada posición del arreglo para

procesar el elemento en ella almacenado una única vez.

FUNDAMENTOS DE PROGRAMACIÓN

10 33 120 130 343 112

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

1

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

1 15

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA POBLARLO (escribir un valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para

almacenar un valor en ella.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

Programa que permite almacenar 10 valores en un vector de enteros.

#include <stdio.h> int main() { int Numeros [10], i; for (i=0;i<10;i++) { printf("Ingrese elemento %d : ",i+1); scanf("%d",&Numeros[i]); } return 0; }

FUNDAMENTOS DE PROGRAMACIÓN

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

RECORRIDO DE UN ARREGLO PARA LEERLO ( mostrar el valor en cada posición)

• Esta operación permite acceder a cada posición del arreglo para leer el

valor en ella contenido.

FUNDAMENTOS DE PROGRAMACIÓN

1 34 15 52 5 12

0 1 2 3 4 5

Primera posición 0

Última posición N-1 (N=6)

posiciones

A =

• Programa que permite almacenar 10 valores en un vector de enteros y luego mostrarlo.

#include <stdio.h> int main() { int Numeros [10]; int i; //POBLAR for (i=0;i<10;i++) { printf("Ingrese elemento %d : ",i+1); scanf("%d",&Numeros[i]); } //MOSTRAR for (i=0;i<10;i++) printf(“%d “,Numeros[i]); return 0; }

FUNDAMENTOS DE PROGRAMACIÓN

1. Escriba un programa en C que permita: Inicializar un arreglo con 5 valores reales

Calcular el promedio de elementos en el arreglo

Determinar la posición del mayor elemento en el arreglo

Determinar el menor elemento en el arreglo

Sumar los elementos que ocupan posiciones pares en el arreglo

FUNDAMENTOS DE PROGRAMACIÓN

2. Un número se dice palíndromo si se lee igual de izquierda a derecha que de derecha a izquierda:

Ejemplo : Si el número es 81318 • Este es un número palíndromo!. Escriba un programa en lenguaje C que permita leer

un número e indicar si es o no es un número es palíndromo. Utilice Arreglos para en su solución.

3. Escriba un programa en C que permita leer un número e indicar si contiene o no dígitos repetidos. Utilice Arreglos para en su solución.

Ejemplo : Si el número es 81318 tiene dígitos repetidos

FUNDAMENTOS DE PROGRAMACIÓN

4. Un número se dice circular si es posible recorrerlo de la siguiente manera:

• Se toma el dígito de más a la izquierda y su valor indicará la cantidad de veces que se debe contar hacia la derecha, esta “cuenta“ se detiene en un dígito del número el cual también indicará la cantidad de veces que se debe contar hacia la derecha y así sucesivamente. Este proceso da origen un número circular si todos los dígitos del número se consideran tan solo una vez (como número originador de un conteo) y además se retorna al dígito de más a la izquierda que fue el que comenzó el conteo.

• Valide que no existan dígitos repetidos. Ejemplo : Si el número es 81362 (1) 8 1 3 6 2 (2) 8 1 3 6 2 (3) 8 1 3 6 2 (4) 8 1 3 6 2 (5) 8 1 3 6 2 (6) 8 1 3 6 2 • Este es un número circular!. Escriba un programa en lenguaje C que permita decidir si

un número es circular. Utilice Arreglos en su solución.

FUNDAMENTOS DE PROGRAMACIÓN