You are on page 1of 18

Fundamentos de programacin

Conceptos bsicos
Lgica: Es una disciplina que estudia la estructura o formas del pensamiento (tales como conceptos, proposiciones y razonamientos) con la finalidad de crear razonamientos vlidos. Planear: Consiste en definir las metas, establecer una estrategia general para alcanzar. Lenguaje de programacin: Son los smbolos y reglas para construir un programa. Existen 3 tipos de lenguajes: o Binario: Escrito a travs de cadenas binarias (Unos y ceros). o Bajo nivel: Instrucciones en lenguaje ensamblador. Conocidos como nemotcnicos. o Alto nivel: Estn creados para que las personas escriban y entiendan los programas de una forma ms fcil. Programa fuente: Es un conjunto de instrucciones escritas en un lenguaje de programacin y que supuestamente sirve para modelar y solucionar un problema. Programa objeto: Son un conjunto de instrucciones escritos en un lenguaje maquina.

Pasos para la solucin de un problema


1. Lentificar el problema: Est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. 2. Anlisis del problema: Una vez se ha comprendido lo que se quiere, es necesario conseguir los datos de entrada, los procesos y los datos de salida. 3. Diseo del algoritmo: Las caractersticas de un buen algoritmo son: a. Debe ser bien definido. b. No debe permitir dobles interpretaciones. c. Debe soportar variaciones. d. Debe ser finito en tamao y tiempo. 4. Prueba de escritorio: Permite detectar los posibles errores que pueda haber cometido el programador en la elaboracin del algoritmo. Consiste en darle valores a los datos de entrada, hacerle un seguimiento y comparar los datos arrojados con los comparados. 5. Codificacin: Consiste en escribir la solucin del problema en un cdigo reconocido por la computadora. 6. Compilacin: Consiste en el anlisis uno a uno de las instrucciones del programa fuente para detectar si estn bien escritas de acuerdo con las reglas del lenguaje. Si existen errores se describen y se muestran en pantalla, sino, el programa es traducido a lenguaje maquina (binario). 7. Ejecucin: Consiste en ordenar una a una las instrucciones del programa objeto e ir ingresando las variables de entrada para obtener el resultado deseado. 8. Prueba y depuracin: Consiste en identificar y eliminar los errores para dar paso a una solucin correcta.

9. Documentacin: Se divide en tres: a. Interna: Son los comentarios que se le aaden al cdigo fuente para hacer ms entendible un proceso. b. Externa: Es un documento escrito que contiene la descripcin del problema, el nombre del autor, el algoritmo, el diccionario de datos y el cdigo fuente. c. Manual del usuario: Describe paso a paso la forma como funciona el programa con el fin de que el usuario obtenga lo que quiere. 10. Mantenimiento: Se realiza despus de terminado el programa, cuando se detecta que es necesario renovar el programa.

Expresiones
Son un grupo de operadores que actan sobre operandos para producir un nico resultado, pueden ser de tres tipos: aritmticos, lgicos y booleanos.

Operadores aritmticos
Operador () ^ *, / +, Significado Parntesis Potencia Multiplicacin. Divisin Suma. Resta

La tabla est ordenada segn el orden de operaciones. Siempre se tendr mayor prioridad con las operaciones que estn dentro de los parntesis y va descendiendo el nivel de prioridad hasta llegar a la suma y resta que deberan ser los ltimos en realizarse.

Operadores lgicos
Se utilizan para hacer comparaciones entre dos datos y todas son de igual prioridad. Operador = <, > <=, >= <> Significado Igual que Menor que. Mayor que Menor o igual que. Mayor o igual que Diferente que

Operadores booleanos
Unen condiciones simples para formar condiciones compuestas. Tabla de verdad AND AND V V F F AND AND AND AND V F V F IGUAL A V F F F

Tabla de verdad OR OR V V F F OR OR OR OR V F V F IGUAL A V V V F

Algoritmos
Es una secuencia de instrucciones que se caracteriza por ser precisa, definida y finita, posee estructuras bsicas que son secuenciales de seleccin e interaccin. Los algoritmos pueden ser cualitativos y cuantitativos. Hay dos formas fundamentales de representar un algoritmo: Diagrama de flujo Pseudocdigo

Diagrama de flujo
Es la representacin grfica que se produce cuando varios smbolos se relacionan entre s, mediante lneas que indican el orden en el que se realizan los procedimientos.

Pseudocdigo
Es un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para solucionar un problema.

Estructuras algortmicas 1. Secuenciales a. Entrada b. Asignacin c. Salida 2. Condicionales a. Simples b. Dobles c. Anidados 3. Mltiples a. Para b. Repetir c. Mientras

Pseudocdigo
Ya he explicado lo bsico que hay que saber, ahora comenzamos a aprender el pseudocdigo. Recordemos que el pseudocdigo no es un lenguaje de programacin, pero es aquel que define el algoritmo a seguir y el cual hace ms fcil el pasarlo a un lenguaje de programacin.

Entrada: Usamos LEER, se utiliza para recolectar los datos de una variable. LEER nombre Asignacin: Se usa para el paso de valores a una zona de la memoria. VariableNombre = Algo Salida: Usamos ESCRIBE, se utiliza para imprimir los datos al usuario. ESCRIBE nombre

Ejemplo: Realizar el pseudocdigo que me informe el valor de un rea de un triangulo. // Declaramos variables globales. REAL base, altura, rea // REAL se usa para variables que contengan nmeros con decimales. // Iniciamos el programa. INICIO // Mostramos Base: en pantalla (sin comillas). ESCRIBA Base: // Leemos el valor que el usuario ingresa para base. LEER base // Mostramos Altura: en pantalla (sin comillas).

ESCRIBA Altura: // Leemos el valor que el usuario ingresa para altura. LEER base // Asignamos un valor a la variable rea. area = (base * altura) / 2 // Mostramos el valor que obtiene la variable rea. ESCRIBA El rea es: , area. // Terminamos ejecucin del programa. FIN

Condicional simple
Un condicional nos permite realizar una instruccin solo s este se cumple. Se utiliza con la frase SI para pasarle los argumentos con los cuales debe cumplir para ejecutar la instruccin y SINO para otra instruccin a realizar si el argumento inicial no se cumple. Ejemplo: Realizar el pseudocdigo de un programa que haga validar si un nmero es positivo o negativo. // Declaramos variable global. ENTERO numero // Usamos ENTERO pues el nmero no aceptara decimales. // Iniciamos el programa. INICIO // Mostramos Digite nmero: en pantalla. ESCRIBE Digite nmero: // Leemos el valor que el usuario ingresa para numero.

LEA numero // Iniciamos el condicional. Si la variable nmero es mayor que 0 procedemos a hacer algo, sino hacemos otra cosa. SI (numero > 0) ENTONCES // Numero es mayor que 0. Mostramos Nmero

positivo en pantalla. ESCRIBA Nmero positivo // Si la variable nmero es menor que 0 procedemos a hacer SINO // Nmero es menor que 0. Mostramos Nmero

negativo en pantalla. ESCRIBE Nmero negativo // Termina condicional. FIN SI // Terminamos ejecucin del programa. FIN

Ciclo Mientras
Se aplica a travs de una condicin del problema. El ciclo Mientras se puede utilizar en dos casos, cuantitativo y cualitativo. Su sintaxis es: MIENTRAS (condicin) // Instrucciones

FIN MIENTRAS Cuantitativo: Es cuando se sabe la cantidad de veces que se har algo, hay un nmero constante y que es conocido por el desarrollador. Cualitativo: A diferencia del cuantitativo, el desarrollador no sabe cuantas veces se repetir el ciclo. El fin del ciclo es dado por una variable y no por una constante. Ejemplo: Realizar el pseudocdigo de un programa que me indique N nmeros de la tabla de multiplicar que sea escogida por el usuario. // Declaramos las variables. ENTERO cantidad, tabla, resultado, contador // Iniciamos el programa. INICIO // Mostramos Cantidad de resultados a mostrar: en pantalla. ESCRIBA Cantidad de resultados a mostrar: // Leemos el valor que el usuario ingresa para cantidad. LEA cantidad // Mostramos Tabla a calcular: en pantalla. ESCRIBA Tabla a calcular: // Leemos el valor que el usuario ingreso para tabla. LEA tabla // Inicializamos el contador. contador = 1 // Iniciamos el ciclo mientras. Hasta que el valor de la variable contador sea igual al valor de la variable cantidad. MIENTRAS (contador <= cantidad)

// Le asignamos un valor a la variable resultado. Multiplicamos el contador por la tabla escogida por el usuario. resultado = contador * tabla // Mostramos el resultado en pantalla, por ejemplo 1 * 5 es igual a 5. ESCRIBE tabla, * , contador, es igual a , resultado // Le sumamos 1 al contador, no vaya a ser y se nos convierta esto en un ciclo infinito. contador = contador + 1 // Terminamos el ciclo. FIN MIENTRAS // Terminamos el programa. FIN

Acumuladores: Sirven para sumar los datos de una variable dentro de un ciclo.

Ejemplo: Sumar los diferentes nmeros enteros que el usuario ingrese. // Declaro variables ENTERO max, acumulador, numsumar, contador // Inicializamos el programa INICIO // Mostramos Cuantos nmeros desea sumar: en pantalla ESCRIBA Cuantos nmeros desea sumar: // Leemos el valor que el usuario le asigno a max LEA max

// Inicializamos el contador i = 1 // Creamos el ciclo. Mientras la variable i sea menor o igual a max se hace el ciclo. MIENTRAS (i <= max) // Mostramos Escriba el numero (N): en

pantalla. (N) es contador.

igual al valor

que tenga el

ESCRIBE Escriba el numero , i, : // Leemos el valor que el usuario le asigno a numsumar LEA numsumar // El acumulador guardara y sumara los datos que el usuario le asigno a la variable numsumar en cada ciclo. acumulador = acumulador + numsumar // Aumentamos en 1 al contador. contador = contador + 1 //Finalizamos el ciclo. FIN MIENTRAS // Escribimos el valor con el que quedo acumulador. ESCRIBA Total de la suma: , acumulador // Finalizamos el programa FIN

Ciclo Para
Es un ciclo cuantitativo, no permite realizar operaciones cualitativas. Su estructura es: PARA (iniciacin) HASTA (condicin) HAGA: // Instrucciones FIN PARA Ejemplo: Realizar el pseudocdigo que me informe una tabla de multiplicar cualquiera. ENTERO tabla, cantidad, i, resultado INICIO ESCRIBA Cantidad de trminos a utilizar: LEA cantidad ESCRIBA Tabla a generar: LEA tabla PARA i = 1 HASTA i <= cantidad HAGA resultado = tabla * i ESCRIBA tabla, * , i, = , resultado FIN PARA FIN

Arreglos
Es un conjunto de datos del mismo tipo agrupados bajo un nombre que los identifica y con un tamao definido. Se clasifican en tres tipos: Unidimensionales: Tambin llamados vectores, solo tienen una

dimensin. Estn conformados por su nombre y su ndice. Temperatura[5] = 20 28 24 30 17 La variable temperatura tiene 5 valores, lo cual se declara dentro de los corchetes ([5]). Podemos llamar la informacin de cualquiera de esos espacios de la siguiente forma: ESCRIBE Temperatura[0] Lo cual nos devolvera: 20, ya que los arreglos se comienzan a llamar desde 0.

Bidimensionales: Tambin llamados matrices, tienen dos dimensiones. Estn conformados por su nombre y sus ndices. Lunes Martes Mircoles Temperatura[7][2] = Jueves Viernes Sbado Domingo 20 17 28 22 23 20 19

La variable temperatura tiene 14 valores, estn declarados en dos corchetes, el primer valor [7] nos define la altura que tendr la matriz, o sea,

7 filas; el segundo valor [2] nos define lo ancho que ser la matriz, o sea, 2 columnas. Podemos llamar la informacin de la matriz de la siguiente forma: ESCRIBE Temperatura[0][1] Lo cual nos devolvera: 20, pues le estamos diciendo que en la fila 1, nos busque la columna 2 y nos devuelva su valor.

Multidimensionales: Tienen 3 o ms dimensiones, no es muy usada en la programacin. (No los explicar en este documento)

Hay diferentes operaciones realizadas en los vectores, estas son: Lectura Escritura Bsqueda Ordenamiento Insercin Eliminacin

Lectura: Capturar un dato en un arreglo. ENTERO n, temperatura[n] INICIO ESCRIBA Cantidad de elementos: LEA n PARA i = 1 HASTA i <= n HAGA ESCRIBA Temperatura: LEA temperatura[i] FIN PARA FIN

Escritura: Mostrar el resultado de un dato en un arreglo. ENTERO n, temperatura[n] INICIO PARA i = 1 HASTA i <= n HAGA ESCRIBA temperatura[i] FIN PARA FIN

Bsqueda: Consiste en recorrer todo el vector elemento por elemento, ingresando a todas las posiciones del vector. Si el valor es encontrado se informa la posicin del vector, de lo contrario se presenta un mensaje diciendo que el valor mostrado no existe. ENTERO n, temperatura[n], i, buscar, recibe INICIO ESCRIBA Valor a buscar: LEA buscar i = 1 MIENTRAS (i <= n AND buscado <> temperatura[i]) i = i + 1 FIN MIENTRAS SI (i <=n) ENTONCES recibe = i SINO recibe = 0 FIN SI SI (recibe = 0) ENTONCES ESCRIBA Valor no encontrado

SINO ESCRIBA Valor encontrado en la posicin, recibe FIN SI FIN

Ordenamiento: Existen diversidad de mtodos para ordenar arreglos, su uso depende del tamao del vector. Unos de estos mtodos son: Quick Sort Shell Mtodo de la baraja Burbuja

(En este documento se explicar como hacer el mtodo Burbuja.) Burbuja: Consiste en comparar elementos conceptivos del vector e intercambiarlos si estn desordenados. Al hacerlo los mayores o menores (segn como est programado) valores van burbujeando haca el final del vector. PROCEDIMIENTO burbuja(ENTERO vector[], n): ENTERO i, aux, j PARA i = 1 HASTA i <= n-1 HAGA: PARA j = 1 HASTA j <= n-i HAGA: // Los valores mayores se van para el final del arreglo SI (vector[j] > vector [j + 1] ) ENTONCES: aux = vector[j] vector[j] = vector[j + 1] vector[j + 1] = aux FIN SI

FIN PARA FIN PARA FIN PROCEDIMIENTO

Insercin: Consiste en adicionar un nuevo elemento al vector teniendo en cuenta de no superar su tamao para evitar el desbordamiento (overflow). La insercin se puede hacer en un arreglo ordenado o desordenado. PROCEDIMIENTO insertar(ENTERO vector[], n, valorInsertado): n = n + 1 vector[n] = val FIN PROCEDIMIENTO

Eliminacin: Es una funcin para borrar un dato buscado. PROCEDIMIENTO eliminar(ENTERO vector[], n, valorABorrar): ENTERO i = 1 MIENTRAS((i <= n) AND (valor <> vector[i]): i = i + 1 FIN MIENTRAS SI (i <= n) ENTONCES: PARA j = 1 HASTA j < n HAGA: vector[j] = vector[j+1] FIN PARA n = n -1 SINO: ESCRIBA El valor, valorABorrar, no se encuentra en el vector. FIN SI

FIN PROCEDIMIENTO