Guia Fundamentos Programacion PDF
Guia Fundamentos Programacion PDF
INTRODUCCIÓN:
El Instituto Tecnológico Ismael Pérez Pazmiño ha asumido el compromiso
de formar al ser humano con propuestas educativas innovadoras en
donde se combinen dimensiones científicos-técnicas de alta calidad con
las humanísticas. Es tarea del Instituto formar a las personas y a los
profesionales que requiere la sociedad, profesionales de gran validez con
espíritu de investigación para desarrollar una ciencia y una cultura
humanística.
ÍNDICE
Introducción……………………………………………………………………………. 3
Información general……...………………………………………………………… 4
Syllabus………………………………………………………………………………… 6
Desarrollo de Actividades:
Tema 1………………………….………………...…...………………………………. 13
Tema 2………………………….………………...…...………………………………. 23
Tema 3………………………….………………...…...………………………………. 31
Tema 4………………………….………………...…...………………………………. 39
Anexos
I. DATOS INFORMATIVOS
I. FUNDAMENTACIÓN
Esta asignatura aporta, al perfil del tecnólogo, la capacidad para desarrollar un
pensamiento lógico, identificar el proceso de creación de un programa y desarrollo de
algoritmos para resolver problemas.
Esta asignatura genera las competencias necesarias para que el alumno desarrolle
aplicaciones que den solución a las necesidades que le plantee la vida diaria.
V. PLAN TEMÁTICO
Tema 1. Conceptos Básicos
Tema 2. Algoritmos
Tema 3. Introducción a la Programación
Tema 4. Control de flujo
Tema 5. Arreglos
Tema 1: 5 2 - - - - 1 8 16 24
Conceptos
Básicos
Tema 2: 6 10 - - - 4 - 20 20 36
Algoritmos
Tema 3: 4 10 - - - 4 2 20 20 40
Introducción a la
programación
Tema 4: Control 4 6 - - - 6 - 16 16 32
de Flujo
Tema 5: 4 4 - - - 4 2 14 14 28
Arreglos
EXAMEN FINAL 2 2 - -
II. Leyenda:
C – Conferencias.
S – Seminarios.
CP – Clases prácticas.
CE – Clase encuentro.
L – Laboratorio.
E- Evaluación.
TI – Trabajo independiente.
Tema 2: Algoritmos
Objetivo: Analizar y desarrollar algoritmos por medio de ejercicios prácticos con
la finalidad de dar solución a problemas reales utilizando el razonamiento lógico.
Sistema de conocimientos Sistema de habilidades Sistema de Valores
Capacidad de
aplicar los
conocimientos en la
práctica
Tema 5: Arreglos.
Objetivo: Implementar arreglos para una gran variedad de propósitos que
proporcionan un medio conveniente de agrupar variables relacionadas y
organizar datos de una manera que puedan ser fácilmente procesados.
Sistema de conocimientos Sistema de habilidades Sistema de Valores
Unidimensionales: Diseñar algoritmos
Actitudes que
conceptos básicos, que utilicen arreglos
estimulen la
operaciones y unidimensionales y
investigación y la
aplicaciones. multidimensionales.
innovación
Multidimensionales: Desarrollar programas
tecnológica y
conceptos básicos, para implementar las
científica
operaciones y operaciones básicas
aplicaciones. en arreglos.
Actitudes solidarias
y conciencia en la
utilización racional
de los recursos
informáticos.
Capacidad de
aplicar los
conocimientos en la
práctica
Todo estudiante llevara durante el desarrollo del proceso un diario de campo, donde
recopilara las investigaciones y ejercicios realizados debidamente clasificados e
indexados como material bibliográfico de apoyo.
Folletos-Separatas
Diapositivas
Asistencia
Puntualidad
Participación en clases
Trabajo en grupo
a. Inicial
b. Procesual
c. Final
Básica
Aguilar, Luis Joyanes. 2008. Fundamentos de Programación. Madrid : Prentice
Hall, 2008. 978-84-481-6111-8.
Complementaria
Cairo, Osvaldo. 2009. Metodología de la Programación. México : Alfaomega,
2009. 978-958-8307- 589.
Deitel, Deitel y. 2008. Java como programar. Monterrey-México : Prentice Hall,
2008. 978-970-26-1190-5.
Joyanes Aguilar, Luis Fernández, Azuela Matilde, Rodríguez Baena Luis.
2003. Fundamentos de Programación Libro de Problemas Algoritmos Estructura de
Datos y Objetos. México : Graw Hill, 2003. 9788448136642.
Molina, Jesús J. García. 2005. Introducción a la programación un Enfoque
Algorítmico. México : Paraninfo, 2005. 8497321855.
Román, Leobardo López. 2006. Metodología de la Programación Orientada a
Objetos. México : Alfaomega, 2006. 9789701511732.
I. GENERALIDADES
4. Para estudiar debes elegir siempre un lugar tranquilo, cómodo, con buena
iluminación y tener sobre la mesa la bibliografía básica, papel, esfero, etc.
6. Toma en cuenta las horas que son dedicadas a tu trabajo u ocupación personal.
Lo importante es saber determinar el tiempo que necesitas para tus estudios.
Introducción:
Orientaciones tarea
Desarrollo de contenidos:
CONCEPTOS BÁSICOS
Hoy en día la Informática es una herramienta muy indispensable para el
diario vivir. En todo nuestro alrededor vemos que los procesos ya son
automatizados. Pensamos en un momento en dónde utilizamos la
computadora.
Para entender los conceptos básicos del software y sus tipos analiza el
siguiente link:
https://computacioncpc.files.wordpress.com/2011/06/teorc3ada-
hardware-y-software.pdf
Una vez que entiendas las 8 reglas plantéate un problema de la vida real
y trata de resolverlo tomando en cuenta estas reglas y pasos que sean
necesarios para llevar a un resultado.
Una vez que hayas analizado el concepto del software y sus tipos, te
pregunto ¿cómo se desarrolla un software? ¿Por dónde debemos
empezar?
Una vez que hayas comprendido toda la parte teórica del software, sus
tipos y algoritmos. Es necesario recordar procesos matemáticos como
expresiones algebraicas. Recuerda que el computador realiza las
operaciones que tú le vas a proponer.
EJERCICIO 1
Resolver el siguiente ejercicio lógico.
Cruza canibales y misioneros.
Instrucciones
El objetivo del juego es cruzar el rio a los 3 misioneros y a los 3 caníbales, recuerda
que si los caníbales superan en número a los misioneros se los comerán. En el barco
pueden ir 2 tripulantes, ya sea misionero-misionero, o caníbal-caníbal o caníbal-
misionero y cuando regrese el barco debe tener un tripulante.
http://echandola.com/juegos/cruza-canibales-y-misioneros/
Viaje Tripulantes
Orientaciones tarea:
Apuntes claves:
EJERCICIO 2
Las ranas saltarinas.
Las ranas saltan la siguiente piedra, las ranas solo pueden pasar por encima de otra
rana una vez. Mueve las tres ranas marrones a la derecha de la charca y mueve las
ranas verdes hacia la última piedra de la izquierda de la charca para poder ganar.
¿Parece fácil? Pues no lo es. Debes planear muy bien tu estrategia antes de hacerlas
brincar porque si no el juego quedara bloqueado y no tendrás más opciones de
movimiento.
http://www.educa.jcyl.es/educacyl/cm/gallery/Recursos%20Infinity/juegos/arcade/ranas/ranas.html
Movimiento Estrategia
Orientaciones tarea:
EJERCICIO 3
Pastor, Oveja, Lobo y Repollo.
http://img99.xooimage.com/files/c/a/9/pastor_oveja_y_lobo-41ab268.swf
Orientaciones tarea:
Apuntes claves:
En esta unidad vamos tomar como ejemplos problemas reales por lo que
mediante una lógica de programación y un determinado algoritmo
daremos su respectiva solución.
Desarrollo de contenidos:
ALGORITMO
En este capítulo nos introduciremos a resolver problemas mediante un
algoritmo para luego llevarlo a la computadora y crear nuestro software o
sistema.
Variables
Las variables son las unidades básicas en las cuales se puede almacenar la
información de un programa. Cada variable que se utilice en un programa de tener un
nombre que sirve de referencia para poder acceder a ellos. Cuando se declara una
variable, se reserva espacio en una posición especifica de memoria reservada para
almacenar un tipo específico de dato asociado a un nombre.
Ejemplo:
A
Z
X
Nombre
edad
ciudad
Expresiones
Una expresión es una combinación de variables, constantes y/o operadores entre
otros, los cuales pueden en determinado momento generar un resultado.
Ejemplo:
Expresión 1:
A=7
X=3
5A+8X+7
EJERCICIO 4
En base a la explicación anteriormente realice los siguientes ejercicios.
1. ¿Qué tipo de paradigma de programación Ud. Conoce?
2. Coloque 3 ejemplos de variables que identifiquen sus datos personales.
3. Coloque 2 ejemplos de constantes que reflejen su personalidad.
4. Realizar 3 expresiones colocando variables y constantes.
Orientaciones tarea:
Interpretar los conceptos de paradigmas que se reflejan y los que se
conocen en la parte tecnológica.
Recordar cómo se define una variable, constante y los ejemplos
comunes.
Elaborar expresiones en base a lo aprendido sobre constantes y
variables.
Apuntes claves:
Una variable y constante puede tener números o letras.
Una expresión contiene ambas y puede ser matemática.
No pueden repetirse los nombres de variables y constantes.
DIAGRAMA DE FLUJO
El Diagrama de Flujo es una representación gráfica de la secuencia de pasos que se
realizan para obtener un cierto resultado. Este puede ser un producto, un servicio, o
bien una combinación de ambos.
CARACTERÍSTICAS PRINCIPALES
A continuación, se comentan una serie de características que ayudan a comprender la
naturaleza de la herramienta.
Capacidad de Comunicación
Permite la puesta en común de conocimientos individuales sobre un proceso, y facilita
la mejor comprensión global del mismo.
Claridad Proporciona información sobre los procesos de forma clara, ordenada y
concisa.
ESTRUCTURA SELECTIVA
Ahora bien, si hablamos de una estructura selectiva éste indicará que
dentro del proceso del algoritmo habrá una toma de decisión. Y de
acuerdo a la respuesta tomará un resultado diferente. Mediante el
siguiente gráfico nos mostrará su estructura.
Explica con tus propias palabras los siguientes conceptos: constante, variables,
estructura secuencia, estructura selectiva, estructura repetitiva.
Encierre el literal de la respuesta correcta:
Es un proceso de no tomar de decisiones:
a) Variables
b) Constantes
c) Lenguaje de programación
d) Ninguna de las anteriores
El resolver un problema real es:
a) Una forma productiva de programar
b) Una variable
c) Algo lógico sin ningún fin
d) Ninguna de las anteriores
a) Variable.
b) Identificador.
c) Palabra no utilizada
d) Ninguna de las anteriores.
En el siguiente ejemplo: C8+4P-u+10, que seria.
a) Datos exponenciales
b) Datos reales
c) Solo Variables definidas
d) Ninguna de las anteriores
Orientaciones tarea:
Se debe utilizar datos para la resolución de estos problemas
matemáticos y lógicos para el cual se utiliza las diferentes formas de
diagramas de flujos.
Tener en cuenta las estructuras estudiadas anteriormente para analizar e
identificar el problema.
Apuntes claves:
Se debe revisar el material subido en el siguiente link:
http://estudioinformatico2014.com/INTSIPP/
Analiza tu ambiente dentro del trabajo, hogar o momento de ocio; encuentra qué
actividades podría corresponder a una estructura secuencia, selectiva y
repetitiva. Plantea tu propio problema y realiza el algoritmo mediante diagrama
de flujo. (Serían tres problemas, uno por cada estructura. Y que no se repita a
los ejercicios antes mencionado)
Desarrollo de contenidos:
LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL
Hoy en día hay muchos lenguajes de programación, la pregunta que a
veces nos hacemos es ¿cuál usaremos? ¿Cuál de ellos me convendrá?
Cada lenguaje de programación pertenece a un tipo único, ya sea
lenguaje de máquina, lenguaje de bajo nivel o lenguaje de alto nivel.
Introducción:
Está consola solo tiene la pestaña Source (código) y History (Historial) lo cual permite
realizar código estructurado lo cual el programador define lo que utiliza y sus propios
comentarios para tener referencia de cada objeto a utilizar. Dentro de esta consola se
encontrará una estructura básica que JAVA lo genera automáticamente para poder
utilizar donde se puede personalizar varias partes importantes, lo cual dejamos muy
identado cada abierto de proceso que en JAVA se utiliza abierta llave {, cada elemento
que utilicemos en JAVA debe ser declarado, ya sea variables constantes y funciones.
Estructuras de Control
Las estructuras son construcciones puramente sintácticas que se traducen en
funcionalidad. Un ejemplo de estructura son los ciclos que ya vimos. Ahora veamos
otras estructuras que nos ofrece Java.
Estructura Secuencial
Es aquella que me permite resolver problemas de forma independiente sin tener un
control, la ejecución es en línea recta y no tiene casos ni interrupciones.
…
if(estaLloviendo()) {// si da false continúa en A
noSalgo();
…
// al finalizar continúa en A
}
…
// A
if (numero1 == numero2)
; // instrucción vacía
System.out.printf( "%d == %d\n", numero1, numero2 );
Switch
Debemos tener en cuenta que esta estructura de control de flujo nos permite realizar la
comparación de un tipo numérico entero y carácter primitivo contra varios candidatos
que deseemos y que de esta forma podremos ejecutar el código en consecuencia.
switch(<valor>) {
case <literal>: <código> break;
case <literal>: <código> break;
…
default: <código> break;
}
default:
System.out.println("Probab1emente demasiado calor.");
}
}
}
//factorial de 4
int n=4, factorial=1, temporal=n;
while (temporal>0) {
factorial*=temporal--;
}
do while
Crea un bucle muy similar al anterior, en la que también las instrucciones del bucle se
ejecutan hasta que una condición pasa a ser falsa. La diferencia estriba en que en
este
tipo de bucle la condición se evalúa después de ejecutar las instrucciones; lo cual
significa que al menos el bucle se ejecuta una vez. Sintaxis:
do
{
instrucciones
} while (condición);
for
Es un bucle más complejo especialmente pensado para rellenar arrays o para ejecutar
instrucciones controladas por un contador. Una vez más se ejecutan una serie de
instrucciones en el caso de que se cumpla una determinada condición. Sintaxis:
for (expresiónInicial; condición; expresiónEncadavuelta)
{
instrucciones;
}
La expresión inicial es una instrucción que se ejecuta una sola vez: al entrar por
primera vez en el bucle for (normalmente esa expresión lo que hace es dar valor inicial
al contador del bucle).
La condición es cualquier expresión que devuelve un valor lógico. En el caso de que
esa expresión sea verdadera se ejecutan las instrucciones. Cuando la condición pasa
a ser falsa, el bucle deja de ejecutarse. La condición se valora cada vez que se
terminan de ejecutar las instrucciones del bucle.
Después de ejecutarse las instrucciones interiores del bucle, se realiza la expresión
que tiene lugar tras ejecutarse las instrucciones del bucle (que, generalmente,
incrementa o decrementa al contador). Luego se vuelve a evaluar la condición y así
sucesivamente hasta que la condición sea falsa.
Ejemplo (factorial):
//factorial de 4
int n=4, factorial=1, temporal=n;
for (temporal=n;temporal>0;temporal--){
factorial *=temporal;
}
Definición de métodos
Para definir un método hay que indicar tanto cuáles son las instrucciones que forman
su cuerpo como cuál es el nombre que se le dará, cuál es el tipo de objeto que puede
devolver y cuáles son los parámetros que puede tomar. Esto se indica definiéndolo
así:
<tipoRetorno> <nombreMétodo>(<parámetros>)
{
<cuerpo>
}
En <tipoRetorno> se indica cuál es el tipo de dato del objeto que el método devuelve, y
si no devuelve ninguno se ha de escribir void en su lugar.
Por ejemplo, cuando mostramos algo por pantalla, estamos utilizando la función del
sistema System.out.println.
Vamos a suponer, que queremos mostrar el "Hola Mundo" cada vez que queramos y
de forma fácil, podemos hacer lo siguiente:
De esta forma, cada vez que quisiéramos escribir el "Hola Mundo", nos bastaría con
llamar a la función, y no lo tendríamos que hacer varias veces. Esa es la idea de las
funciones.
Esta función que hemos hecho es para entenderlo a modo explicación, pero no es muy
útil que digamos.
Vamos a ver un ejemplo de una función que recibe datos y no devuelve nada.
Esta función muestra el número que le pasemos entre los paréntesis. Los datos que
recibe una función se llaman parámetros.
Fijaos que dentro de la función la variable se llama "numero", pero contiene el valor de
"num". Esto se entenderá en la siguiente lección, el ámbito de las variables.
El último tipo de función que nos falta por ver son las que reciben datos y devuelven
un dato.
Vamos a realizar una función que sume dos variables pasadas por parámetro.
Para devolver el valor, tenemos que utilizar la palabra return, como veis en la función.
Realizar un programa en Java que me permita crear un menú con todas las
operaciones matemáticas que se han realizado y esas operaciones sean
implementadas en funciones de diferentes tipos.
String str="";
String str=new String();
String str;
Está declarando un objeto str de la clase String, pero aún no se ha creado ningún
objeto de esta clase.
Según su clasificación:
int indexOf(String ó char) Retorna el índice o posición donde aparece por primera
vez la String o char que se recibe como parámetro, o un -1 si no la encuentra
EJEMPLO
1-) String cadena = "San Jose";
int posicion = cadena.indexOf("Jose" );
Ahora posición contiene un 4
int a = cadena.indexOf(‘o’);
Ahora la variable a contiene un 5
Recuerde que la primera posición es cero.
String replace (char viejoChar, char nuevoChar) Remplaza en la hilera que invoca
el método, el viejoChar por el
nuevoChar. Se utiliza para reemplazar caracteres
EJEMPLO
1-) String hilera, cadena = “mamá"; hilera = cadena.replace(‘m’,’p’ );
Ahora hilera contiene “papá” y cadena continúa teniendo “mamá”.
boolean equals(String str): Compara la hilera que invoca al método con la del
parámetro. Si son iguales retorna true y si nó, retorna false. Es sensitivo a mayúsculas
y minúsculas.
EJEMPLO
1-) String cadena1 = “alajuela", cadena2 = “Alajuela”;
if (cadena1.equals(cadena2)){
out.println(“Son iguales”);
else
out.println(“Son diferentes”);
La impresión será: Son diferentes boolean equalsIgnoreCase (String str) Compara
la hilera que invoca al método con la del parámetro. Si son iguales retorna true y si nó,
retorna false. No es sensitivo a mayúsculas y minúsculas.
EJEMPLO 1-) String cadena1 = “alajuela";
String cadena2 = “Alajuela”;
if (cadena1.equalsIgnoreCase(cadena2)){
out.println(“Son iguales”);
else
out.println(“Son diferentes”);
La impresión será: Son iguales
out.println("Son iguales";
else
if (valor<0)
out.println("cad1 menor cad2";
else
out.println("cad1 mayor cad2";
String trim():
Elimina espacios en blanco al principio y al final de la cadena. No elimina los espacios
situados entre las palabras.
EJEMPLO
1-) String cadena = " Programación 1 ";
cadena = cadena.trim();
Ahora cadena contiene “Programación 1”
char charAt (int indice) Devuelve el carácter que ocupa la posición indicada por el
índice.
EJEMPLO
1-) String cadena = "Polimorfismo";
out.println(cadena.charAt(4));
Impresión : m
2-) char caracter = cadena.charAt(7);
Ahora carácter contiene ‘f’
Clases
En la programación orientada a objetos, las clases proporcionan una especie de
plantilla para los objetos. Es decir, si se piensa en una clase como un molde de
galletas, los objetos que se crean a partir de ella, son las galletas. Se puede
considerar que una clase es un tipo de objeto; se usa una clase para crear un objeto y
luego se puede llamar a los métodos del objeto desde este código.
Para crear un objeto, se invoca al constructor de una clase, que es un método que se
llama igual que la clase. Este constructor crea un nuevo objeto de la clase. En este
libro, ya hemos creado clases; cada vez que se crea un programa Java, se necesita
una clase. Por ejemplo, veamos el código necesario para crear una clase llamada app,
que se almacena en un fichero llamado app.java (esta clase crea una aplicación Java):
public class app
{
public static void main(String[] args)
{
System.out.println(“Hola desde Java! " ) ;
}
}
Cuando se utiliza el compilador de Java, este fichero, app.java, se convierte en el
fichero de bytecode app.class, que gestiona toda la especificación de la clase app.
Objetos
En Java, a un objeto se le llama instancia de una clase. Para crear un objeto, se llama
al constructor de una clase, que tiene el mismo nombre que ella. He aquí un ejemplo
en el que se crea un objeto de la clase String, pasando la cadena que se quiere incluir
en ese objeto al constructor de la clase
String:
String S = new String(" ¡Hola desde Java! " ) ;
Se verá más sobre la creación de objetos con constructores a lo largo de este capítulo.
¿Qué se hace con un objeto cuando se dispone de otro? Se puede interactuar con él
usando sus miembros de datos y métodos; veamos las dos secciones siguientes.
Ejemplo: Del ejercicio anterior ahora se llama a la clase mediante un objeto desde
cualquier clase.
Se realiza la instancia del objeto mediante la palabra reservada new, lo cual crea un
objeto llamado op.
De esta manera el objeto op permite llamar todos los métodos que se tiene en la clase
operaciones.
Realizar un programa en Java que me permita crear una clase donde contenga
métodos de todos los procesos matemáticas que se han realizado en las clases
anteriores y otra clase donde contenga métodos de todos los procesos de cadena
que se ha realizado.
Introducción:
Dentro de JAVA, se puede almacenar gran cantidad de datos, lo cual nos permite
clasificar, los datos temporales para poder procesar información de forma más rápida,
tenemos elementos para datos unidimensionales o multidimensionales, lo cual nos
permite manejar gran cantidad de datos. De esta forma podemos ver el
comportamiento de los datos en memoria su contenido y sus modificaciones.
Los arreglos o también conocidos como vectores nos permiten ordenar nuestros datos
y estructurar de una manera que podemos saber que dato entro primero y que dato
entro último, esto nos facilita porque es un conjunto de variables que tienen como
objetivo tener información ordena, estructura y clasificada para poder realizar cualquier
proceso.
Arrays
Unidimensionales
Un array es una colección de valores de un mismo tipo engrosados en la misma
variable.
De forma que se puede acceder a cada valor independientemente. Para Java además
un array es un objeto que tiene propiedades que se pueden manipular.
Los arrays solucionan problemas concernientes al manejo de muchas variables que se
refieren a datos similares. Por ejemplo, si tuviéramos la necesidad de almacenar las
notas de una clase con 18 alumnos, necesitaríamos 18 variables, con la tremenda
lentitud de manejo que supone eso. Solamente calcular la nota media requeriría una
tremenda línea de código. Almacenar las notas supondría al menos 18 líneas de
código.
Gracias a los arrays se puede crear un conjunto de variables con el mismo nombre.
La diferencia será que un número (índice del array) distinguirá a cada variable.
En el caso de las notas, se puede crear un array llamado notas, que representa a
todas las notas de la clase. Para poner la nota del primer alumno se usaría notas[0], el
segundo sería notas[1], etc. (los corchetes permiten especificar el índice en concreto
del array).
Declara un array de tipo double. Esta declaración indica para qué servirá el array, pero
no reserva espacio en la RAM al no saberse todavía el tamaño del mismo.
Tras la declaración del array, se tiene que iniciar. Eso lo realiza el operador new, que
es el que realmente crea el array indicando un tamaño. Cuando se usa new es cuando
se reserva el espacio necesario en memoria. Un array no inicializado es un array null.
Ejemplo:
int notas[]; //sería válido también int[] notas;
notas = new int[3]; //indica que el array constará de tres
//valores de tipo int
//También se puede hacer todo a la vez
//int notas[]=new int[3];
En el ejemplo anterior se crea un array de tres enteros (con los tipos básicos se crea
en memoria el array y se inicializan los valores, los números se inician a 0).
Los valores del array se asignan utilizando el índice del mismo entre corchetes:
notas[2]=8;
También se pueden asignar valores al array en la propia declaración:
int notas[] = {8, 7, 9};
Pero hay que tener en cuenta que el segundo new hace que se pierda el contenido
anterior. Realmente un array es una referencia a valores que se almacenan en
memoria mediante el operador new, si el operador new se utiliza en la misma
referencia, el anterior contenido se queda sin referencia y, por lo tanto, se pierde.
Un array se puede asignar a otro array (si son del mismo tipo):
int notas[];
int ejemplo[]=new int[18];
notas=ejemplo;
En el último punto, notas equivale a ejemplo. Esta asignación provoca que cualquier
cambio en notas también cambie el array ejemplos. Es decir, esta asignación anterior,
no copia los valores del array, sino que notas y ejemplo son referencias al mismo
array.
Ejemplo:
int notas[]={3,3,3};
int ejemplo[]=notas;
ejemplo= notas;
ejemplo[0]=8;
System.out.println(notas[0]);//Escribirá el número 8
Los arrays además pueden tener varias dimensiones. Entonces se habla de arrays de
arrays (arrays que contienen arrays) Ejemplo:
int notas[][];
notas es un array que contiene arrays de enteros
notas = new int[3][12];//notas está compuesto por 3 arrays
//de 12 enteros cada uno notas[0][0]=9;//el primer valor es 0
Puede haber más dimensiones incluso (notas[3][2][7]). Los arrays multidimensionales
se pueden inicializar de forma más creativa incluso. Ejemplo:
int notas[][]=new int[5][];//Hay 5 arrays de enteros
notas[0]=new int[100]; //El primer array es de 100 enteros
notas[1]=new int[230]; //El segundo de 230
notas[2]=new int[400];
notas[3]=new int[100];
notas[4]=new int[200];
Hay que tener en cuenta que en el ejemplo anterior, notas[0] es un array de 100
enteros. Mientras que notas, es un array de 5 arrays de enteros.
Se pueden utilizar más de dos dimensiones si es necesario.
Longitud de un array
Los arrays poseen un método que permite determinar cuánto mide un array. Se trata
de length. Ejemplo (continuando del anterior):
System.out.println(notas.length); //Sale 5
System.out.println(notas[2].length); //Sale 400
La clase Arrays
En el paquete java.utils se encuentra una clase estática llamada Arrays. Una clase
estática permite ser utilizada como si fuera un objeto (como ocurre con Math). Esta
clase posee métodos muy interesantes para utilizar sobre arrays.
Su uso es Arrays.método(argumentos);
fill
Permite rellenar todo un array unidimensional con un determinado valor. Sus
argumentos son el array a rellenar y el valor deseado:
int valores[]=new int[23];
Arrays.fill(valores,-1);//Todo el array vale -1
También permite decidir desde que índice hasta qué índice rellenamos:
Arrays.fill(valores,5,8,-1);//Del elemento 5 al 7 valdrán -1
equals
Compara dos arrays y devuelve true si son iguales. Se consideran iguales si son del
mismo tipo, tamaño y contienen los mismos valores.
sort
Permite ordenar un array en orden ascendente. Se pueden ordenar sólo una serie de
elementos desde un determinado punto hasta un determinado punto.
int x[]={4,5,2,3,7,8,2,3,9,5};
Arrays.sort(x);//Estará ordenado
Arrays.sort(x,2,5);//Ordena del 2º al 4º elemento
binarySearch
Permite buscar un elemento de forma ultrarrápida en un array ordenado (en un array
desordenado sus resultados son impredecibles). Devuelve el índice en el que está
colocado el elemento. Ejemplo:
int x[]={1,2,3,4,5,6,7,8,9,10,11,12};
Arrays.sort(x);
System.out.println(Arrays.binarySearch(x,8));//Da 7
El método System.arraysCopy
La clase System también posee un método relacionado con los arrays, dicho método
permite copiar un array en otro. Recibe cinco argumentos: el array que se copia, el
índice desde que se empieza a copia en el origen, el array destino de la copia, el
índice
desde el que se copia en el destino, y el tamaño de la copia (número de elementos de
la copia).
int uno[]={1,1,2};
int dos[]={3,3,3,3,3,3,3,3,3};
System.arraycopy(uno, 0, dos, 0, uno.length);
for (int i=0;i<=8;i++){
System.out.print(dos[i]+" ");
} //Sale 112333333
Pasar los siguientes códigos de los tipos de ordenamiento de los Arrays en base al
enlace y verificar cuál es su funcionalidad.
Realizar un programa que me permita ingresar los siguientes datos de un
estudiante: Nombres no se debe repetir, carrera, asignatura, nota 1, nota 2,
examen, obtener el promedio, mostrar en forma de listado los datos con sus
calificaciones.
Realizar un programa que me permita leer los nombres de una persona y que me
ordene alfabéticamente.
Realizar un programa que me permita colocar un nombre en la mitad de la pantalla
y me permita mover con las teclas de dirección, arriba, abajo, izquierda, derecha.
Realizar un programa que sea una herramienta interactiva para la enseñanza de los
niños de primaria, utilizando herramientas Swing, el uso de estas herramientas y los
pasos para realizar un buen manual de usuario se encuentra en el siguiente enlace:
http://estudioinformatico2014.com/INTSIPP/
Este proyecto deberá contener información como fotos, audio que permitan a los niños
de educación básica estudiar alguna rama de conocimiento, ya sea Matemáticas,
Informática, Ciencias Naturales, Estudios Sociales, Inglés o Lenguaje.
Los parámetros de calificación serán los siguientes:
ACTIVIDADES PUNTAJE
DISEÑO CREATIVIDAD DE LAS PANTALLAS 2 Ptos.
CÓDIGO ESTRUCTURADO Y ORDENADO 2 Ptos.
MANUAL DE USUARIO 1 Pto.
EXPOSICIÓN Y DOMINIO DEL TEMA 2 Ptos.
EJECUCIÓN LIBRE DE ERRORES 2 Ptos.
PREGUNTAS SOBRE HERRAMIENTAS UTILIZADAS 1 Pto.
TOTAL 10 Ptos.
Elaborado por: Ing. Jairo Jiménez – Ing. José Arce Aprobado por: Lcda. Carmen Cabrera
Firmas: _____________
NÚMERO DE
FORMA DE
LA ACTIVIDADES DOCENTES TIEMPO TRABAJO MEDIOS DE ENSEÑANZA
SEMANA ENSEÑANZA LUGAR
ACTIVIDAD INDEPENDIENTE
Conceptos Básicos.
Realizar un informe
analizando la Pizarra, Marcador,
1 Encuadre de la Asignatura, ideas Conferencia 1 hora
1 Aula importancia de la Proyector
sobre los fundamentos de la
programación. asignatura, los retos de
la programación.
Evaluación de Diagnóstico Evaluación 1 hora Realizar los avances
2 Conocimiento Pre-Adquiridos tecnológicos sobre los Pizarra, Marcador
1 Aula
básico para la asignatura. programas y sus usos
hoy en día.
Fundamentos de Programación
89
Programa ejecutable. programa, donde tendrá
el código ASCII
Consola de línea de comandos. correspondiente.
Realizar ejemplos de
constantes, variables,
8 Evaluación de conocimiento. Evaluación 1 hora expresión, código ASCII Pizarra, Marcador
2 Aula
de 10 teclas y conceptos
sobre lenguajes de
programación.
Algoritmo.
Identifica el algoritmo
computacional y su tipo de Investigar: expresiones
lógicas, funciones Pizarra, Marcador,
9 representación. Conferencia 1 hora
3 Aula internas, operaciones de Proyector
asignación. Cada uno
Análisis de problemas. con cinco ejemplos
Pizarra, Marcador,
10 Expresiones Algebraicas Clase Práctica 1 hora Realizar ejercicios de
3 Aula Proyector
aplicaciones algebraica
Pizarra, Marcador,
16 Diseño algorítmico de funciones. Conferencia 1 hora
4 Aula - Proyector
Resolver problemas
Técnicas de representación de mostrando una Pizarra, Marcador,
19 Conferencia 1 hora estructura de algoritmo
5 Algoritmos. Estructura secuencial Aula Proyector
inicial y su
representación grafico
de diagrama de flujo.
Técnicas de representación de Pizarra, Marcador,
20 Clase Práctica 1 hora
5 Algoritmos. Estructura secuencial Aula - Proyector
Resolver problemas
Técnicas de representación de mostrando una Pizarra, Marcador,
21 Clase Práctica 1 hora estructura de algoritmo
6 Algoritmos. Estructura Selectiva Aula Proyector
inicial y su
representación grafico
de diagrama de flujo.
Técnicas de representación de Pizarra, Marcador,
22 Clase Práctica 1 hora
6 Algoritmos. Selectiva Aula - Proyector
Resolver problemas
Técnicas de representación de mostrando una Pizarra, Marcador,
23 Clase Práctica 1 hora estructura de algoritmo
6 Algoritmos. Selectiva Aula Proyector
inicial y su
representación grafico
de diagrama de flujo.
Técnicas de representación de Pizarra, Marcador,
24 Clase Práctica 1 hora
6 Algoritmos. Selectiva Aula - Proyector
91
Resolver problemas
Técnicas de representación de mostrando una Pizarra, Marcador,
25 Clase Práctica 1 hora estructura de algoritmo
7 Algoritmos. Estructura Repetitiva Aula Proyector
inicial y su
representación grafico
de diagrama de flujo.
Técnicas de representación de Pizarra, Marcador,
26 Clase Práctica 1 hora
7 Algoritmos. Estructura Repetitiva Aula - Proyector
Resolver problemas
Técnicas de representación de mostrando una Pizarra, Marcador,
27 Clase Práctica 1 hora estructura de algoritmo
7 Algoritmos. Estructura Repetitiva Aula Proyector
inicial y su
representación grafico
de diagrama de flujo.
Técnicas de representación de Pizarra, Marcador,
28 Clase Práctica 1 hora
7 Algoritmos. Estructura Repetitiva Aula - Proyector
Pizarra, Marcador,
31 Estructura básica de un programa. Conferencia 1 hora
8 Laboratorio - Proyector
Traducción de un programa:
compilación, enlace de un Realizar las
programa, errores en tiempo de instrucciones principales Pizarra, Marcador,
32 Conferencia 1 hora
8 compilación. Laboratorio y básicas para el Proyector
funcionamiento de un
Ejecución de un programa. programa en JAVA.
Pizarra, Marcador
Evaluación de Conocimiento del
38 Evaluación 1 hora
10 Parcial I. Aula -
93
Codificar los ejercicios Pizarra, Marcador,
Instrucciones y semántica del que están hechos en Proyector
39 Clase Práctica 1 hora
10 lenguaje de programación JAVA. Laboratorio algoritmos y diagrama
de flujo en el lenguaje
de programación JAVA.
Pizarra, Marcador,
Instrucciones y semántica del Proyector
40 Clase Práctica 1 hora
10 lenguaje de programación JAVA. Laboratorio -
Realizar programas en
Estructuras selectivas: doble y base a ejercicios Pizarra, Marcador,
47 Clase Práctica 1 hora matemáticos que
12 múltiple Laboratorio Proyector
determinen las
estructura doble
estudiada.
Realizar programas Pizarra, Marcador,
48 Estructuras iterativas: for. Clase Práctica 1 hora
12 Laboratorio utilizando la estructura Proyector
estudiada.
95
Realizar la
Diseño e implementación de implementación de Pizarra, Marcador,
57 Clase Práctica 1 hora
15 funciones y métodos por su tipo. Laboratorio métodos propios para el Proyector
mejoramiento de un
proceso.
Realizar la
Diseño e implementación de implementación de Pizarra, Marcador,
58 Clase Práctica 1 hora
15 funciones y métodos por su tipo. Laboratorio métodos propios para el Proyector
mejoramiento de un
proceso.
Realizar la
Diseño e implementación de implementación de Pizarra, Marcador,
59 Clase Práctica 1 hora
15 funciones y métodos por su tipo. Laboratorio métodos propios para el Proyector
mejoramiento de un
proceso.
Diseño e implementación de Pizarra, Marcador,
60 Clase Práctica 1 hora
15 funciones y métodos por su tipo. Laboratorio - Proyector
Instrucciones matemáticas y de
Realizar programas Pizarra, Marcador,
61 cadena para la realización de un Clase Práctica 1 hora
16 Laboratorio basados en Proyector
proceso. instrucciones de cadena.
Arreglos
Unidimensionales: conceptos
Realizar programas Pizarra, Marcador,
71 básicos, operaciones y Clase Práctica 1 hora
18 Laboratorio basados en arreglos Proyector
aplicaciones. unidimensionales.
Unidimensionales: conceptos
Realizar programas Pizarra, Marcador,
72 básicos, operaciones y Clase Práctica 1 hora
18 Laboratorio basados en arreglos Proyector
aplicaciones. unidimensionales.
Multidimensionales: conceptos
Colocar ejemplos de lis Pizarra, Marcador,
73 básicos, operaciones y Conferencia 1 hora
19 Laboratorio tipos de Arreglos Proyector
aplicaciones. multidimensionales.
Multidimensionales: conceptos
Realizar programas Pizarra, Marcador,
74 básicos, operaciones y Clase Práctica 1 hora
19 Laboratorio basados en arreglos Proyector
aplicaciones. multidimensionales.
Multidimensionales: conceptos
Realizar programas Pizarra, Marcador,
75 básicos, operaciones y Clase Práctica 1 hora
19 Laboratorio basados en arreglos Proyector
aplicaciones. multidimensionales.
97
Multidimensionales: conceptos
Realizar programas Pizarra, Marcador,
76 básicos, operaciones y Clase Práctica 1 hora
19 Laboratorio basados en arreglos Proyector
aplicaciones. multidimensionales.
Implementar métodos
Tipos de ordenamiento que realicen Pizarra, Marcador,
77 Clase Práctica 1 hora
20 secuencial. Laboratorio ordenamiento Proyector
ascendente y
descendente.
Tipos de ordenamiento Pizarra, Marcador,
78 Clase Práctica 1 hora
20 secuencial. Laboratorio - Proyector
Pizarra, Marcador,
79 Evaluación del Segundo Parcial. Evaluación 1 hora
20 Laboratorio - Proyector