Todos Podemos Programar 1 Edicion
Todos Podemos Programar 1 Edicion
Todos Podemos Programar 1 Edicion
1
ANALISIS PRIMARIO DE UN ALGORITMO
Un algoritmo codificado siguiendo un lenguaje de
programacin es conocido como programa.
Antes de aprender un lenguaje de programacin es
necesario aprender la metodologa de programacin, es Adquirir Procesar Resultado
decir la estrategia necesaria para resolver problemas datos datos de datos
mediante programas.
Como punto de partida se aborda la manera como es
representado un algoritmo.
ANLISIS
En esta fase se establece el programa a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. Debe existir una gran conocimiento del
problema a solucionar poder conocer todas las necesidades que precisa de programa a realizar. En esta etapa se pueden usar diagrama de flujos o PSeudo cdigo para la solucin
de un problema.
DISEO
En esta fase se alcanza con mayor precisin una solucin ptima de la aplicacin, teniendo en cuenta los recursos lenguajes de programacin a implementar
CODIFICACIN
Consiste en traducir los resultados obtenidos a un determinado lenguaje de programacin, teniendo en cuenta las especificaciones obtenidas. Se deben de realizar las pruebas
necesarias para comprobar la calidad y estabilidad del programa.
COMPILACIN Y EJECUCIN
Es esta etapa luego de haber codificado debemos compilar el programa realizado y correrlo o en otras palabras hacerlo funcionar para pasar a la siguiente etapa.
DEPURACIN
En esta etapa podemos ver si existe algn problema con el cdigo para realzar los cambios pertinentes o optimizar la aplicacin
DOCUMENTACIN
Qu es la documentacin de un programa?
Para que el mantenimiento de una aplicacin informtica sea lo ms fcil posible, es conveniente disponer de toda su documentacin, esto es, de todos los documentos que se han
ido generando en todas las etapas anteriores: ERS, algoritmos, cdigos fuentes, manuales de usuario, etc. A todo este tipo de documentacin se le considera externa. Adems, existe
otro tipo de documentacin llamada interna, los comentarios.
VERIFICACIN
Llamamos verificacin de algoritmos a la comprobacin del correcto funcionamiento del pseudocdigo planteado. Los conceptos de verificacin, prueba y depuracin son en cierta
medida similar y en cierta medida distintos.
3
Para realizar un programa pseint hacemos lo siguiente.
1. lo primero tenemos que hacer es agregar el titulo del programa, para
Bsicamente analizamos dos formas, la representacin usando pseudocdigo y
lo cual elegimos la opcin escribir y escribimos el nombre de el
la representacin usando diagramas de flujo.
programa dentro de unas comillas ().
Un diagrama de flujo es un diagrama que utiliza smbolos (cajas) estndar y que
tiene los pasos del algoritmo escritos en esas cajas unidas por flechas, Ejemplo: hola gente;
denominadas lneas de flujo, que indican las secuencia que debe ejecutar el Es importante el diagrama de flujo ya que con el sabemos como es la
algoritmo. Para ilustrar nuestro diagrama de flujo usaremos un lenguaje de estructura del programa
programacin pedaggico llamado PSeint.
4
Todo diagrama de flujo tiene un En programacin, las variables son espacios reservados en la memoria que, como su
principio y un fin este es la manera nombre indica, pueden cambiar de contenido a lo largo de la ejecucin de
de representarlo. un programa.
Fig. 1 Una variable corresponde a un rea reservada en la memoria
principal del ordenador pudiendo ser de longitud:
En este ejemplo podemos ver que
Fig. 1
estamos mostrando un mensaje por Fija: Cuando el tamao de la misma no variar a lo largo de la ejecucin del
pantalla al usuario. programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo
Este programa es por decir de otra algunas excepciones, como las colecciones de otras variables (arrays) o las cadenas.
forma la iniciacin de cualquier Variable: Cuando el tamao de la misma puede variar a lo largo de la ejecucin.
programado en un lenguaje de Tpicamente colecciones de datos.
programacin
Personalmente asocio el trmino de variables con pequea cajas donde se almacena
Existen dos maneras de informacin.
representarlo las salida de datos da A estas cajas les podemos dar nombres y almacenar datos variables en ellos.
igual como lo uses 1. Por ejemplo creamos dos cajas.
Fig. 2
Fig. 2.
Hola mundo
5
3. Si guardamos valores en estas cajas y despus decidimos hacer una +
operacin entre ellas
c <- a b
Cuando nos referimos a variables Cuando se trabaja con
nos referimos a lugares de memoria variables un aspecto de vital
en los cuales se almacena algn importancia (adems del tipo)
tipo de informacin, por ejemplo el es el nombre que estas van a
numero de gallinas, la altura, la
tener, se recomiendan
edad, el nombre y el peso. Existen
diferentes tipos de datos tal y como nombres relacionados con la
se muestra en la siguiente tabla: informacin que van a
manejar, por ejemplo, si se va
a manejar un salario, un
nombre apropiado para una
TIPO DE DATO DESCRIPCION EJEMPLO
variable puede ser sal.
Entera Tipo de dato asociado a cantidades Numero de Vacas, Instruccin de asignacin:
enteras. No poseen parte decimal, edad.
ejemplo: 5,6, -15,199
Escribe sobre una variable el
valor de una expresin. As:
Real Tipo de dato asociado a cantidades Estatura, peso,
con parte decimal por ejemplo: volumen
0.06, 3.4, 2.16, 1000.345
6
Para realizar la suma en el programa de PSeint hacemos lo siguiente. 5.
1. Por ultimo debemos enviar un mensaje en pantalla que muestre ese resultado, para
Primero que tenemos que hacer es agregar el titulo del programa, para lo lo cual volvemos a usar la opcin Escribir y volvemos a escribir el mensaje entre
cual elegimos la opcin escribir y escribimos el nombre de el programa comillas (), al final del mensaje y fuera de las comillas concatenamos la variable en
dentro de unas comillas ( ). la cual guardamos nuestro resultado usando la coma (,).Nota con otro lenguajes de
programacin se concatena con el smbolo mas (+), tambin PSeint se puede
Ejemplo: programa para sumar; configurar para concatenar con este smbolo.
7
5.
PSEINT Por ultimo debemos enviar un mensaje en pantalla que muestre ese resultado, para
lo cual volvemos a usar la opcin Escribir y volvemos a escribir el mensaje entre
comillas (), al final del mensaje y fuera de las comillas concatenamos la variable en
la cual guardamos nuestro resultado usando la coma (,).Nota con otro lenguajes de
sigla cuyo significado es PIPEH Pseudo Intrprete, es una programacin se concatena con el smbolo mas (+), tambin PSeint se puede
extraordinaria herramienta para aprender a programar. configurar para concatenar con este smbolo.
Muy en resumen, es un intrprete de pseudo-cdigo de
Ejemplo:
programacin que contiene las instrucciones ms bsicas
Escribir (El resultado de la suma es: ), r;
necesarias para crear cualquier programa (decente xD) y Es muy importante siempre tener en cuenta si las variables estn en mayscula o
est completamente en espaol. minscula ya que ese es un simple pero grande error al momento de programar, ya
Es ideal para alguien que no sabe absolutamente nada de que PSeint lo reconocer como dos variables distintas.
programacin, pues a travs de este programa, comenzar
a entender (y a experimentar) los conceptos ms bsicos
como algoritmo, iteracin, condicin, etc, etc
Adems, cuenta con varias caractersticas muy interesantes,
entre ellas, la capacidad de generar un diagrama de flujo
del cdigo que se est escribiendo lo cual sin duda
facilita muchsimo el aprendizaje y nos ayuda a visualizar
mejor el funcionamiento del programa.
6. el programa finaliza donde dice: fin proceso, De esta manera ya hemos
realizado un programa muy sencillo en PSeint
Este tipo de ejemplos los podemos realizar para las dems operaciones que son
la resta (-), la multiplicacin (*) y la divisin ( / ) solo se le tendra que cambiar
la operacin.
la de la resta quedara de la siguiente manera la de la multiplicacin y la de la
divisin de esta manera podemos realizar las distintas operaciones
matemticas.
7
Aqu veremos dos ejemplos bsicos de operaciones con PSeint
8
Aqu veremos dos ejemplos bsicos de operaciones con PSeint
8
Aqu veremos dos ejemplos bsicos de operaciones con PSeint
QUE ES LA SINTAXIS
DEFINICIN GRAMATICAL Parte de la gramtica que estudia la forma en que se combinan y relacionan las palabras
para formar secuencias mayores, clusulas y oraciones y la funcin que desempean dentro de estas:
Forma correcta en que deben estar dispuestos los smbolos que componen una instruccin ejecutable por el
ordenador:
La sintaxis de un lenguaje de programacin es el conjunto de reglas que debemos seguir para que el
compilador sea capaz de reconocer nuestro programa como un programa vlido. Por ejemplo, un programa
debe tener el siguiente formato general:
main () {
Lista_de_sentencias
8
Para programar en java, primero que todo necesitamos un entorno de desarrollo integrado IDE por sus siglas en ingles (Integrated
Development Environment), en nuestro caso utilizaremos Netbeans.
1. Como primer paso creamos una clase en Java
3 5
8
1.Como paso principal importaremos los dos paquetes esenciales al momento de realizar algoritmos bsicos en java, los cuales son:
Java.util.*;
(el (.*) se utiliza para importar todas las clases que estn dentro del paquete java.util).
Javax.swing.JOptionPane;
2.Luego de esto procedemos a escribir todo nuestro cdigo dentro de la clase principal, la cual reconoceremos porque tiene el nombre public static void
main(String[] args){ }, nuestro cdigo deber ir solamente dentro de las llaves de nuestra clase principal, a menos que usemos mdulos como funciones o
procedimientos.
Declaracin de una variable:
A diferencia de PSeint, en java debemos declarar las variables con su respectivo tipo de variable antes de ser usadas o modificadas, debemos tener en cuenta
que Java posee clases con nombres que no podemos colocar a nuestras variables ya que NetBeans tomara esto como si estuviramos usando la clase, por lo cual
debemos tener mucho cuidado.
3. Los tipos de variables mas usados son:
int - (utilizan 32 bits en memoria) para almacenar enteros entre, aproximadamente, -2150 millones y 2150 millones
float - nmeros decimales.
Double
String tipo texto o cadena de caracteres
public static void main(String[] args) { De esta manera declaramos una variable
int n1;
n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite el primer nmero")); Tambin podemos declarar varias variables
Los datos capturados en esa ventana son de tipo texto para poder
hacer operaciones con estas hay que convertirlas a tipo numrico
float, int o double. la primera forma es new Integer(); y al mismo
tiempo estamos declarando la variable.
Ejemplo 1 realizar un programa que sume dos nmeros y ver si el programa corre correctamente
Como pudimos observar anterior mente un programa en java hay que realizarlo con muchsimo mas cuidado por que
contiene mas concentracin para poder hacerlo funcionar de este modo realizaremos otros programas sencillos para
poder aprender de este lenguaje de programacin as como ya anteriormente aprendimos de el programa PSeint
Ejemplo 4 realizar un programa que divida
dos nmeros y ver si el programa corre
correctamente.
La sintaxis de un lenguaje de programacin es el conjunto de reglas que debemos seguir para que el compilador sea capaz de reconocer nuestro programa como un
programa C vlido. Por ejemplo, un programa debe tener el siguiente formato general:
main () {
Lista_de_sentencias
}
Esta regla nos dice que para que el compilador reconozca nuestro programa debemos escribir al menos todas las palabras y signos que no estn en letra cursiva. Las
partes en cursiva se reconocen usando otras reglas sintcticas. Estas reglas definen o dicen como debe ser una lista de sentencias. Tales reglas nos dicen, por ejemplo,
que la lista_de_sentencias puede estar vaca, por lo que
main() { }
es un programa C perfectamente vlido, que el compilador reconocer sin problemas (aunque no har nada til).
Una caracterstica de la sintaxis del C es que los espacios en blanco y retornos de carro que aparecen en las reglas sintcticas son opcionales. Esto quiere decir que
nuestro programa de ejemplo se puede escribir en una sola lnea:
Su sintaxis es perfectamente vlida y funciona exactamente igual, aunque es ms difcil de leer para los humanos (no para el computador).
Por tanto, aunque el lenguaje no obliga a ello, se suele colocar una sentencia por lnea y con espacios de forma que el programa se pueda leer cmodamente de una
manera amena y comprensible para otros programadores.
Estructuras condicionales simples y compuestas
No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando hay que tomar una decisin aparecen las estructuras condicionales. En
nuestra vida diaria se nos presentan situaciones donde debemos decidir. Elijo la carrera A o la carrera B? Me pongo este pantaln? Para ir al trabajo, elijo el
camino A o el camino B? Al cursar una carrera, elijo el turno maana, tarde o noche? Por supuesto que en un problema se combinan estructuras secuenciales y
condicionales.
Podemos observar: El rombo representa la condicin. Hay dos opciones que se pueden tomar. Si la
condicin da verdadera se sigue el camino del verdadero, o sea el de la derecha, si la condicin da
falsa se sigue el camino de la izquierda.
Se trata de una estructura CONDICIONAL SIMPLE porque por el camino del verdadero hay
actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas, inclusive ya
veremos que puede haber otras estructuras condicionales.
8
Para la explicacin del siguiente ejercicio hallemos el mayor de dos numero teniendo en cuenta si dos son iguales el programa pueda detectarlo
8
Eta ves hallamos el mayor y el menor de dos nmeros para estudia como funciona la estructura de datos condicional
8
QUE ES UN CONTADOR? ESTRUCTURAS REPETITIVAS. BUCLES DE CONTROL
Recordemos que una variable es un espacio de memoria que se reserva en la
computadora cuyo contenido puede cambiar a lo largo de la ejecucin de un La estructura repetitiva se utiliza cuando se quiere que un conjunto de
programa, as pues, un contador es un tipo de variable que incrementa o instrucciones se ejecuten un cierto nmero finito de veces. Se le llama bucle
decrementa su contenido en un valor constante. o ciclo a todo proceso que se repite un cierto nmero de veces dentro de un
pseudocdigo o un
CONTADOR = CONTADOR + VARIABLE
programa.
Cuando decimos incrementa significa que estamos sumando Existen dos tipos de estructuras repetitivas; la primera es aquella en donde s
e tiene perfectamente establecido el nmero de veces que un grupo de
CONTADOR = CONTADOR + 1 acciones se van a ejecutar (20, 5, 2veces), y la segunda en la que el nmero
de repeticiones es desconocido y se har hasta que se cumpla o no cierta
EJEMPLO: condicin.
Como se puede observar, a la variable SUMA, se le est incrementando un valor
constante (1), es decir, a su contenido se le sumas el valor y se vuelve a guardar DESDE, PARA O FOR
en la misma variable. Esta estructura ejecuta las acciones del cuerpo del bucle un nmero
Observando su estructura se puede ver fcilmente e identificar cuando una especificado de veces, y de modo automtico controla el nmero de
variable es un contador. iteraciones o pasos.
Cuando decimos decremento significa que estamos restando.
CONTADOR = CONTADOR 1
SUMA = 0
8
CICLO MIENTRAS (WHILE)
Este ciclo consiste en un conjunto de instrucciones que se repiten mientras se cumpla una condicin. De igual manera que en los condicionales, la condicin es evaluada
y retorna un valor lgico, que puede ser verdadero o falso. En el caso del ciclo mientras las instrucciones contenidas en la estructura de repeticin se ejecutaran
solamente si al evaluar la condicin se genera un valor verdadero; es decir, si la condicin se cumple; en caso contrario, se ejecutara la instruccin que aparece despus
del fin mientras.
Por ejemplo escribir 5 veces hola, primero realicemos el diagrama de flujo y luego el Pseudo cdigo:
Ejemplo 1:
Hacer un programa que promedie pago de la lista de una sucursal y el total en
nomina
EJERCICIO RESUELTOS CON PSEINT
ESTRUCTURA REPETITIVA MIENTRAS
1. Hacer un programa que cuente del 20 a 1 en forma descendente
1. Los arrays se crean con el operador new seguido del tipo y nmero de elementos.
2. Se puede acceder al nmero de elementos de un array con la variable miembro
implcita
length (por ejemplo, vect.length).
3. Se accede a los elementos de un array con los corchetes [] y un ndice que vara de
0 a length-1.
2, Tambin los arrays de objetos se pueden inicializar con varias llamadas a new A continuacin se presenta un ejemplo de creacin de arrays:
dentro de unas llaves {...}.
// crear un array de 10 enteros, que por defecto se
3, Si se igualan dos referencias a un array no se copia el array, sino que se tiene un inicializan a cero
array con dos nombres, apuntando al mismo y nico objeto. int v[] = new int[10];
// crear arrays inicializando con determinados
4,Creacin de una referencia a un array. Son posibles dos formas:
double[] x; // preferible valores
double x[]; int v[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
String dias[] = {"lunes", "martes", "mircoles",
5. Creacin del array con el operador new:
x = new double[100]; "jueves",
"viernes", "sbado", "domingo"};
6. Las dos etapas 4 y 5 se pueden unir en una sola: // array de 5 objetos
double[] x = new double[100];
MiClase listaObj[] = new MiClase[5]; // de momento
hay 5 referencias a null
for( i = 0 ; i < 5;i++)
listaObj[i] = new MiClase(...);
// array annimo
obj.metodo(new String[]={"uno", "dos", "tres"});
Los arrays bidimensionales de Java se crean de un modo muy similar al de C++
(con reserva dinmica de memoria). En Java una matriz es un vector de // crear una matriz 3x3
vectores fila, o ms en concreto un vector de referencias a los vectores fila. Con
este esquema, cada fila podra tener un nmero de elementos diferente.
// se inicializan a cero
Una matriz se puede crear directamente en la forma, double mat[][] = new double[3][3];
int [][] mat = new int[3][4];
o bien se puede crear de modo dinmico dando los siguientes pasos:
int [][] b = {{1, 2, 3},
Crear la referencia indicando con un doble corchete que es una referencia a {4, 5, 6}, // esta coma es permitida
matriz,
int[][] mat;
};
Crear el vector de referencias a las filas, int c = new[3][]; // se crea el array de
mat = new int[nfilas][];
referencias a arrays
Reservar memoria para los vectores correspondientes a las filas, c[0] = new int[5];
for (int i=0; i<nfilas; i++); c[1] = new int[4];
mat[i] = new int[ncols]; c[2] = new int[8];