Arreglos

16
ARREGLOS Array

Transcript of Arreglos

ARREGLOS

Array

Definición de Arreglo(Array)

• Conjunto finito de elementos del mismo tipo de dato.

• A los elementos se puede acceder indicando la posición que ocupan.

• Se numeran consecutivamente O, 1, 2, 3, etc.

• Clasifican en unidimensionales– Vectores y Cadenas

• Bidimensionales– Matrices y Cadenas de cadena

Arreglos Unidimensionales

• Vectores.

– Formado por números (enteros o reales)

• Cadenas.

– Caracteres (letras, símbolos y números)

• Ejemplo. Un arreglo llamado t de N elementos.

Vectores

• La forma de declarar un vector es la siguiente:

Tipo_de_dato identificador[tamaño]

• Donde:– tipo_de_dato es entero o real.

– Identificador es el nombre del vector.

– tamaño es el número de elementos en el vector.

• Ejemplos.ENTERO a[5]

REAL vec[3], x[20]

Vectores

• Asignación de valores.

– Al declarar se puede inicializar el vector.

Ejemplo:

ENTERO vec[4] ← { 23, 5, 34, -4, 6}

ENTERO V[3] ← {0}

ENTERO Z[4] ← {3,6,2}

ENTERO A[2]

Arreglos Vectores

• Asignación de valores.

– Después de declarar se hace elemento por elemento.

Ejemplo:

ENTERO vec[5], x ← 3

vec[0] ← 4

vec[x - 2] ← 8 + 5

vec[x] ← vec[0] + vec[1]

vec[3] ← vec[0] + 6

Vectores

• Ejemplo 1. Escribir un algoritmo que lea 10 valores enteros y los muestre empezando por el ultimo ingresado, en seguida el penúltimo y así sucesivamente hasta el primer valor ingresado.

INICIOENTERO vec[9], kPARA(k ← 0; k < 10; k ←k + 1)

ESCRIBIR(“ingresa un numero entero ”)LEER(vec[k])

FIN PARAESCRIBIR(“El vector en orden inverso es: \n ”)PARA(k ← 0; k < 10; k ←k + 1)

ESCRIBIR( “ “, vec[ 9 - k] )FIN PARA

FIN

Vectores

• Ejemplo 2. Escribir un algoritmo que lea el numero de mes y muestre el numero de días que tiene dicho mes.

INICIO

ENTERO mes[11+ ← ,31,29,31,30,31,30,31,31,30,31,30,31}, m

ESCRIBIR(“Programa que calcula el numero

de días de un mes”)

ESCRIBIR(“Ingresa un numero de mes del año: ”)

LEER( m )

ESCRIBIR(“El numero de días de dicho mes son: ”, mes*m-1] )

FIN

Vectores

• Ejemplo 3. Realizar un algoritmo que llene un vector de N números enteros de forma aleatoria, lo muestre y después elimine los elementos repetidos guardando el resultado en el mismo vector y por ultimo mostrar el nuevo vector. Los elementos deben conservar su orden relativo. Para ello no se puede utilizar ningún vector auxiliar y 0 < N < 100, y los aleatorios van de 1 a 50.

-

INICIOENTERO vec[99], k, x, z,n, r ← 0

ESCRIBIR(“¿De cuántos elementos será tu vector? ”)LEER( n )ESCRIBIR(“El vector es: \n ”)PARA(k ← 0; k < n; k ← k + 1)

vec*k+ ←ALEATORIO(50)ESCRIBIR(“ ”, vec[k])

FIN PARAPARA(k ← 0; k < n -r; k ← k + 1)

PARA(x ← k + 1; x < n ; x ← x + 1)SI( vec[k] = vec[ x ])ENTONCES

PARA(z ← x; z < n ; z ← z + 1)vec[z] ← vec[z+1]

FIN PARAr ← r + 1

FIN SIFIN PARA

FIN PARAESCRIBIR(“El vector sin datos repetidos es: \n ”)

PARA(k ← 0; k < n - r; k ←k + 1)ESCRIBIR(“ ”, vec[k])

FIN PARAFIN

• Ejercicio 1.

Realizar un algoritmo que llene un vector de n elementos con valores aleatorios de 1 a 10 y recorra el primer elemento al segundo y el segundo al tercero, hasta llegar al ultimo, el cual pasara a ser el primero. Mostrar el vector original y el vector resultado. El máximo elementos del vector es 50.

INICIOENTERO vec[50], k, n, auxESCRIBIR(“¿De cuántos elementos será tu vector máximo 50? ”)LEER( n )ESCRIBIR(“El vector es: \n ”)PARA(k ← 0; k < n; k ← k + 1)

vec*k+ ←ALEATORIO(10) + 1ESCRIBIR(“ ”, vec[k])

FIN PARAPARA(k ← 1; k < n ; k ← k + 1)aux ← vec[k]vec*k+ ← vec[0]vec*0+ ← aux

FIN PARAESCRIBIR(“El vector resultado es: \n ”)

PARA(k ← 0; k < n ; k ←k + 1)ESCRIBIR(“ ”, vec[k])

FIN PARAFIN

• Ejercicio 2

INICIOENTERO vec[99], k, x, aux,n, r ← 0

ESCRIBIR(“¿De cuántos elementos será tu vector? ”)LEER( n )ESCRIBIR(“El vector es: \n ”)PARA(k ← 0; k < n; k ← k + 1)

vec*k+ ←ALEATORIO(50) + 10 ESCRIBIR(“ ”, vec[k])

FIN PARAPARA(k ← 0; k < n ; k ← k + 1)

SI( vec*k+ MOD 2 ≠ 0 ) ENTONCES //si un numero es imparPARA(x ← k; x > 0 + r ; x ← x - 1)

aux ← vec[x -1]vec[x-1+ ← vec[x]vec*x+ ← aux

FIN PARAr ← r + 1

FIN SIFIN PARAESCRIBIR(“El vector resultado es: \n ”)

PARA(k ← 0; k < n ; k ←k + 1)ESCRIBIR(“ ”, vec[k])

FIN PARAFIN

Ejercicio 3

Ejercicio 4

Diseñar un algoritmo para jugar al Mastermind. En dicho juego, un jugador A escribe un número de 4 cifras y otro jugador B intenta adivinarlo. No se permite que haya repeticiones en las cifras del número. Con cada intento de B, A debe decirle cuántas cifras ha acertado y, de éstas, cuántas están correctamente colocadas.

Ejemplo: Número secreto: 1234Intento 1: 4321 4 correctas, 0 colocadasIntento 2: 2143 4 correctas, 0 colocadasIntento 3: 1243 4 correctas, 2 colocadasIntento 4: 1234 4 correctas, 4 colocadas