18. Arrays ( Vectores y matrices)
Un array (que algunos autores traducen como "arreglo") es una estructura que se utiliza para guardar una serie de elementos, todos los cuales son del mismo tipo (por ejemplo, 20 números reales)....
Vamos a estudiar esta parte y para eso visitaremos este enlace.
http://www.nachocabanes.com/pascal/cupas5/cupas04.php
17. Variables tipo String.
Hasta ahora solo hemos usado variables tipo numéricas, empecemos a usar tipo alfabéticas. Para ver como definirlas y su funcionamiento pincha aquí
16. Instrucción CASE
Vamos a ver una instrucción que hasta ahora no hemos usado.
Para ver como funciona pincha aquí
15. Números aleatorios
Vamos a generar números aleatorios, para ello usaremos la instrucción Random(n), teniendo en cuenta que n genera números de 0 a n-1.
Para ver un ejemplo pincha aquí.
14. Formato a los Números reales
Cuando usamos variables reales, al obtener resultados nos aparece en pantalla en notación científica, es decir con exponentes en base 10, lo que es muy tedioso de ver y no queda nada bien. Así que vamos a ver como usaremos estas variables dándoles formato de salida.
Veamos unos ejemplos pinchando aquí
13. Funciones para la Pantalla
Aquí os dejo algunas funciones que nos servirán para darle formato a nuestros programas, posicionamiento en la pantalla de datos.
Para obtener el archivo pincha aquí
12. Unos Ejercicios muy interesantes.
Ej 1. La Criba de Eratóstenes
Como ejemplo de utilización de la estructura de datos Vector, se propone escribir un programa que implemente el método de obtención de números primos propuesto por Eratóstenes y conocido como la criba de Eratóstenes aplicado a los ‘N’ primeros números naturales.
El método consiste, básicamente, en los siguientes pasos:
1.- Pedir el número ‘N’ al usuario.
2.- Guardar los números que queremos cribar en un vector V_Original (desde 2 hasta N), e iniciar con el elemento ‘1’ (que es primo por definición) un segundo vector V_Primos donde guardaremos los primos que vayamos obteniendo.
3.- Hacer
a)El primer elemento, ‘X’, del vector V_Original es primo
b) Eliminar del vector V_Original todos aquellos elementos que sean múltiplos de ‘X’
c)Poner ‘X’ en el vector de elementos primos, V_Primos.
Mientras queden elementos en el vector V_Original.
4.- Mostrar por pantalla los elementos guardados en V_Primos
Ej 2.Eliminación de elementos repetidos de un vector
El problema propuesto es la eliminación de todos los elementos repetidos que encontremos en un vector de ‘M’ elementos generado aleatoriamente, utilizando la estructura vector y las funciones sobre vectores implementadas en la unidad.
Las tareas a realizar en este segundo programa son las siguientes:
1.- Pedir el valor ‘M’ al usuario.
2.- Generar un vector aleatorio de ‘M’ elementos, con valores enteros entre 0 y 50.
3.- Mostrar por pantalla los elementos del vector.
4.- Recorrer el vector en la forma que creas conveniente hasta eliminar todos los posibles elementos repetidos.
5.- Mostrar el vector resultante (vector original sin elementos repetidos) por pantalla.
11. Ordenar los datos de un array
Método de la Burbuja
Método de la Burbuja
¿Y si necesitamos ordenar los datos de menor a mayor, o de mayor a menor, o (pronto) alfabéticamente? Hay muchas formas de hacerlo. Algunas son eficientes pero difíciles de entender, otras son sencillas pero lentas, otras son intermedias entre ambas.
Uno de los algoritmos de ordenación más simples y conocidos es el de "burbuja", en el que se va comparando cada dato con todos los anteriores, de modo que el más pequeño (el más "ligero", como si se tratara de una burbuja) vaya desplazándose hacia el final del array (como si "subiera hacia la superficie"). Tras cada pasada, el número más pequeño quedará colocado en su sitio.
Vamos a ver un ejemplo. Esta es nuestra lista:
4 - 3 - 5 - 2 - 1
Tenemos 5 elementos. Es decir, TAM toma el valor 5. Comenzamos comparando el primero con el segundo elemento. 4 es mayor que 3, así que intercambiamos. Ahora tenemos:
3 - 4 - 5 - 2 - 1
Ahora comparamos el segundo con el tercero: 4 es menor que 5, así que no hacemos nada. Continuamos con el tercero y el cuarto: 5 es mayor que 2. Intercambiamos y obtenemos:
3 - 4 - 2 - 5 - 1
Comparamos el cuarto y el quinto: 5 es mayor que 1. Intercambiamos nuevamente:
3 - 4 - 2 - 1 - 5
Repitiendo este proceso vamos obteniendo los siguientes resultados:
3 - 2 - 1 - 4 - 5
2 - 1 - 3 - 4 - 5
1 - 2 - 3 - 4 - 5
10. VI Relación de Ejercicios (array_3)
1. Escribir un programa en Pascal que determine la posición de la siguiente matriz en la que se encuentra el valor máximo.
23 45 68
34 99 12
25 78 89
2. Escribir un programa en Pascal que sume, independientemente, los elementos positivos y negativos de la siguiente matriz:
-12 23 32
45 -56 -10
25 78 89
3. Escribir un programa en Pascal que multiplique por dos los elementos de la siguiente matriz:
4 7 8
6 9 1
5 0 3
4. Escribir un programa en Pascal que almacene en la segunda fila de la siguiente matriz los cuadrados de los datos de la primera fila:
3 6 7 8 9
0 0 0 0 0
5. Escribir un programa en Pascal que sume los datos de cada una de las filas de la siguiente matriz; el resultado se almacenará en la última posición de cada fila:
3 6 7 8 9 0
1 4 3 2 7 0
6. Escribir un programa en Pascal que sume los datos de cada una de las columnas de la siguiente matriz; el resultado se almacenará en la última posición de cada columna:
3 2
4 6
8 9
0 0
7. Escribir un programa en Pascal que sume los elementos de cada una de las filas y de las columnas de la siguiente matriz; el resultado de cada suma se almacenará en la última posición de la fila o columna correspondiente. Además la suma total de todos los elementos de la matriz se almacenará en el elemento de la esquina inferior derecha de la matriz:
1 7 0
5 6 0
6 4 0
7 3 0
0 0 0
8. Escribir un programa en Pascal que divida todos los elementos de una matriz M (3,4) por el elemento situado en la posición 2,2.
9. Escribir un programa en Pascal que almacene en un array los números primos comprendidos entre 1 y 100.
10. Escribir un programa en Pascal que genera la matriz transpuesta de una matriz de 3 filas y 4 columnas. La matriz transpuesta de una matriz M(m,n) se obtiene intercambiando filas por columnas y viceversa; el resultado se tiene que almacenar en una nueva matriz M_TRANS(n,m).
9. V Relación de Ejercicios (array_2)
- Pedir al usuario 5 números y luego mostrarlos en orden inverso
- Crea un programa que reserve espacio para un Array de 3 números enteros, que asigne a sus elementos los valores 3, 5 y 8, y que después muestre en pantalla la suma de los valores de sus 3 elementos.
- Crea un programa que pida al usuario cinco números enteros, los guarde en un array y luego muestre el primero y el último.
- Crea un programa que pida al usuario diez números enteros, los guarde en un array y luego muestre los que se encuentran en posiciones impares (1, 3, 5, 7, 9).
- Crea un programa que pida al usuario diez números enteros, los guarde en un array y luego muestre los que son impares.
- Crea un programa que sume dos vectores, cuyos componentes indicará el usuario. Por ejemplo, la suma de (1,2,3) y (7,11,-1) sería (8,13,2).
- Crea un programa que halle el producto escalar dos vectores, cuyos componentes indicará el usuario.
- Crea un programa que pida al usuario diez números enteros, los guarde en un array y luego le pida un número más y diga si era parte de los 10 datos originales o no.
- Crea un programa que pida al usuario diez números enteros, los guarde en un array y luego le vaya preguntando qué número quiere buscar de forma repetitiva, y diga si era parte de los 10 datos originales o no. Terminará cuando el número introducido sea 9999.
- Crea un programa que pida al usuario dos listas de 5 números enteros, usando dos arrays distintos, y luego muestre en pantalla los números que aparecen en ambas listas.
- Crea un programa que pida al usuario diez números reales, los guarde en un array y luego busque y muestre el menor de esos números.
- Crea una versión alternativa, que pida al usuario diez números reales y muestre el menor de todos ellos, sin usar arrays.
- Crea un programa que pida al usuario 10 nombres de personas y sus 10 estaturas. Estos datos se guardarán en dos arrays distintos. A continuación deberás mostrar el nombre de la persona más alta.
- Crea una variante del programa que borra un elemento de un array. En esta ocasión, deberá insertar el valor "10" en la tercera posición y mostrar el resultado.
- Crea un programa que permita al usuario guardar tantos números enteros como desee (hasta un máximo de 1000). Deberá permitir añadir datos al final, insertar en cualquier posición, borrar cualquier posición o mostrar los datos que hay almacenados.
8. IV Relación de Ejercicios (array_1)
1.-Escribir un programa en Pascal que rellene un array con los números enteros comprendidos entre 4 y 14.
2. Escribir un programa en Pascal que rellene un array con los números pares comprendidos entre 1 y 10.
3. Escribir un programa en Pascal que rellene un array con los números comprendidos entre 25 y 35 divididos por 3.
4 .Escribir un programa en Pascal que rellene un array con cinco números enteros consecutivos y haga una copia de ese array en otro.
5. Escribir un programa en Pascal que rellene un array de 10 elementos con los números comprendidos entre 23 y 32 y copie en otro array esos números multiplicados por 0.35.
6. Escribir un programa en Pascal que rellene un array con los veinte primeros números pares y calcule su suma.
7. Escribir un programa en Pascal que solicite cinco números, los almacene en un array y luego calcule la media aritmética de esos números.
8. Escribir un programa en Pascal que tras asignar los números, 23, 45, 68, 99, 10, 15 y 4 a un array, determine la posición del array en la que se encuentra el máximo valor.
9. Escribir un programa en Pascal que tras asignar los números, -2, 5, 8, -9, 10, 15 y -4 a un array calcule, independientemente, la suma de los elementos positivos y negativos.
10. Escribir un programa en Pascal que tras asignar los números, 23, 45, 68, 99, 10, 15 y 4 a un array, determine las posiciones del array en las que se encuentran el máximo y el mínimo valor.
7. III Relación de Ejercicios(String)
En este enlace1 os dejo la relación de ejercicios para trabajar con String.También podemos probar con esta otra relación (enlace2).
6. II Relación de Ejercicios
1.Escribir un programa en Pascal que calcule la hipotenusa de un triángulo Rectángulo.
2.Escribir un programa en Pascal que calcule el número de horas, minutos y segundos que hay en n segundos.
3.Un coche se mueve, partiendo del reposo, con una aceleración constante de x m/s2.
4.Escribir un programa en Pascal que calcule:
a) La velocidad instantánea al cabo de n segundos.
b) La velocidad media durante los primeros n segundos del recorrido.
velocidad instantánea = velocidad inicial + aceleración* tiempo
velocidad media = (velocidad inicial + velocidad final)/2
5.Escribir un programa en Pascal que detecte si se han introducido en orden creciente tres números introducidos por el usuario.
6.Escribir un programa en Pascal que dado un número del 1 a 7 escriba el correspondiente nombre del día de la semana.
7.Escribir un programa en Pascal que lea dos números desde el teclado y si el primero es mayor que el segundo intercambie sus valores.
8.Escribir un programa en Pascal que dada una calificación en valor alfabético (A , B, C ,D o E) indique su equivalente en valor numérico (4,5,6,7 u 8).
9.Escribir un programa en Pascal que lea desde teclado el importe bruto de una factura y determine el importe neto según los siguientes criterios.
· Importe bruto menor de 20.000 -> sin descuento
· Importe bruto mayor de 20.000 -> 15% de descuento
10.Escribir un programa en Pascal que realice un bucle con While y muestre en pantalla del 1 al 10.
11.Escribir un programa en Pascal que realice un bucle con Repeat y muestre en pantalla del 1 al 10.
12.Escribir un programa en Pascal que realice un bucle con For y muestre en pantalla del 1 al 10.
2.Escribir un programa en Pascal que calcule el número de horas, minutos y segundos que hay en n segundos.
3.Un coche se mueve, partiendo del reposo, con una aceleración constante de x m/s2.
4.Escribir un programa en Pascal que calcule:
a) La velocidad instantánea al cabo de n segundos.
b) La velocidad media durante los primeros n segundos del recorrido.
velocidad instantánea = velocidad inicial + aceleración* tiempo
velocidad media = (velocidad inicial + velocidad final)/2
5.Escribir un programa en Pascal que detecte si se han introducido en orden creciente tres números introducidos por el usuario.
6.Escribir un programa en Pascal que dado un número del 1 a 7 escriba el correspondiente nombre del día de la semana.
7.Escribir un programa en Pascal que lea dos números desde el teclado y si el primero es mayor que el segundo intercambie sus valores.
8.Escribir un programa en Pascal que dada una calificación en valor alfabético (A , B, C ,D o E) indique su equivalente en valor numérico (4,5,6,7 u 8).
9.Escribir un programa en Pascal que lea desde teclado el importe bruto de una factura y determine el importe neto según los siguientes criterios.
· Importe bruto menor de 20.000 -> sin descuento
· Importe bruto mayor de 20.000 -> 15% de descuento
10.Escribir un programa en Pascal que realice un bucle con While y muestre en pantalla del 1 al 10.
11.Escribir un programa en Pascal que realice un bucle con Repeat y muestre en pantalla del 1 al 10.
12.Escribir un programa en Pascal que realice un bucle con For y muestre en pantalla del 1 al 10.
5. I Relación de Ejercicios
1.- IMPRIMIR LOS PRIMEROS NÚMEROS PARES MENORES DE 20.
2.-HACER UN PROGRAMA QUE NOS INDIQUE SI UN NÚMERO ES PAR O NO.
3.-DETERMINAR SI UN NÚMERO ES DIVISIBLE ENTRE 3.
4.-DADO UN NÚMERO, CALCULAR SU FACTORIAL.
5.- CALCULA LAS RAÍCES DE UNA ECUACIÓN DE SEGUNDO GRADO.
6.-DADOS DOS NÚMEROS, OBTÉN EL RESULTADO DE LAS OPERACIONES ARITMÉTICAS.
7.-IMPRIME LOS CUADRADOS DESDE UN NÚMERO A OTRO.
8.-CALCULA EL ÁREA DE UN RECTÁNGULO
9.-CALCULA EL ÁREA Y LA LONGITUD DE UNA CIRCUNFERENCIA.
10.-CALCULA LA VELOCIDAD DE UN PROYECTIL, INTRODUCIENDO LA DISTANCIA EN KM Y EL TIEMPO EN HORAS Y OBTÉN EL RESULTADO EN M/S.
4. INTRODUCCIÓN A LA PROGRAMACIÓN EN TURBO PASCAL
Para iniciarnos en Programación del Lenguaje Pascal os dejo una presentación que hemos visto en clase. Pulsa aquí para verlo.
Vamos a empezar a programar en Turbo Pascal, para ello lo que necesitamos es el programa, este nos lo descargaremos en el siguiente enlace:
Pulsa aquí para descargarlo.
También os dejo un manual con las primeras pinceladas de como programar en Pascal. Pulsa aquí para verlo
Para iniciarnos en Programación del Lenguaje Pascal os dejo una presentación que hemos visto en clase. Pulsa aquí para verlo.
Vamos a empezar a programar en Turbo Pascal, para ello lo que necesitamos es el programa, este nos lo descargaremos en el siguiente enlace:
Pulsa aquí para descargarlo.
También os dejo un manual con las primeras pinceladas de como programar en Pascal. Pulsa aquí para verlo
Vamos a empezar a programar en Turbo Pascal, para ello lo que necesitamos es el programa, este nos lo descargaremos en el siguiente enlace:
Pulsa aquí para descargarlo.
También os dejo un manual con las primeras pinceladas de como programar en Pascal. Pulsa aquí para verlo
3. Introducción a Organigramas, ordinogramas y Pseudocodigo.
Vamos a empezar a dar los primeros pasos en el mundo de la programación.
Para ver el tema pulsa aquí
2. ¿Qué es programar?
Programar : Indicar al ordenador qué es lo que tiene que hacer.
Programa :
Secuencia de instrucciones