You are on page 1of 20
Capitulo | Fundamentos de Programacion —_—_—_—_—_—_————— Introduccién Frnlos prlieros ciClos de toda carrera profesional relaclonado a la Ingenieria de Stternas, los estudiantes ieren entender, aprender y dominar los fundamentos de programnacién para resolver problernas que peritiran automatizar procesos usando la computador, Saber programar ¢% la base de toda su carrera y para conseguir este objetivo he plasinado ml experiencia de docencla de mas de 10 afios dedicado a la Ingenieria de Sisternas, se que este libro le ayudara a resolver todas sus dudas y dominar las principales estructuras de programacion. Extelbro contiene mas de 100 algoritmos resueltos y codificados en el lenguaje de Visual Basic uno de los lenguajes de programacién mas utilizado en la actualidad, Instunenn foo \ \ (a —- ‘continuacién se describen los conceptos generales de los fundamentos de programacién. Escaneado con Camcanner Computadora Fs un aparato electronico que recibe datos (entrada), los proc mies denominado programy y devuelve Informacidn (sallda), también conocido como Ordenador 0 PC (Personal Computer), d En la actualidad existen una varledad de computadoras, para diferentes propdsitos, Servidores Computadora personal Computadora Portatil PDR ‘on el hardware y el software que trabsla, Arquitectura de una computadora Las computadoras tienen dos componentes principales que en coordinacién para llevar a cabo sus objetivos, Hardware: Hard (Duro) ~ ware (Componente); representa la parte fisica de la computadora, “OH Software: Soft (Blando) — ware (Componente); representa la parte légica de la cornputadora (lo programas), estos se encuentran almacenados en los componentes fisicos de la computadora, tale ‘como memorias RAM, ROM, Discos Duros (Hard Disk) entre otros, Programasinternos tales como: + BIOS * cmos + Setup Escaneado con Camscanner La siguiente figura muestra como la arquitectura de com; coordinacién. Proceso cPU 2 (Central Processing Unit) im SS AW) (Arithmetic Logic Unit) Dispositivos de | Dispositivos de Ered | ce : Salida (ineun) ‘ontrol Unit} ; (output) Memoria] [Memoria Interna Externa % @ Unidades de medida de almacenamiento {2memoria interna (RAM) y las memorias externas (Disco duro) almacenan informacién, La informacion Ae se guarda y entiende la PC esta en formato binario (0 - 1). ST (Binary Digi Computadora, BYTE: Esta com ‘digo asc Porlo general la infor Sun byte iT): El bit representan la unidad minima de informacién, que almacena una puesto por 8 bit (01110011), entonces existe 2° = 256 combinaciones diferentes (tabla de rmacién se representa por caracteres y cada cardcter (ntimero, letra, simbolo, etc.) ara medir kaj - "edit la informacién se utiliza multiplos de bytes. Byte 1B 8 bits Kilobyte 1KB 2" bytes, 1024 bytes Megabyte 1MB 2 bytes 1024 KB Gigabyte 1GB 2° bytes, 1024 MB Terabyte 178 2” bytes: 1024 GB > Escaneado con Camscanner Sistemas de Numeracion cee + MyB? + KBP + KBE + Y nal). el caso de la numeracién decimal la base 8 10; fo en cuenta que 2 posicién de las unidades es la posicién 0 (la pr el ndmero total de simbolos que utiliza ef nel sisterna binarlo es 2, ‘Teorema Fundamental de la Numeraci6n permite saber el valor decimnal que tlene cualguler nomero ziquier base. Dicho teorema utiliza la formula: 14 convirtendo, ion -1 seria la del primer la base del sistemas que se utiliza para representar al némero. plo si tenemos el nti 153,6 utilizando el sistema octal (base ocho), el paso a decimal se 1-84 + 5-8 4 3-89 + 6-84 = 64 + 40434642 = 107,78 Conversion binario a de El teorema fundamental de la numeracién se puede ap! r para saber el némero decimal representado por un némero escrito en binario. Asi para el numero binario 10011011011 Ia conversién se haria (los ceros se han ignorado): 1:28 + 4-27 + 4-26 + 1-28 + 4-2 + 4-2 = 2-28 = 1043 Conversi6n decimal a binario el todo mas utilizado es ir haciendo divisiones sucesivas entre dos. Los restos son las cifras binarias. Por ejemplo para pasar el 39: =19 3 4 = 2 1 0 resto resto resto resto resto resto HoorHeE Ahora las cifras binarias se toman al revés. Con lo cual, el nimero 100111 es el equivalente en binario de 39, Escaneado con Camscanner ate intra] pepresentacion de texto en el sistema binario que una computadora no sélo maneja niimeros, ae ae traducible a decimal. Todo depende de como. i ites aren Nenganinformacion mplo en el caso del texto, lo que se hace es codificar cad; : FM yaos: ELeddige ASCII ha sido durante mucho tiempo el més ut srizabs 7 bits Para representar texto, lo que signifcaba que era Spl imero 65 (2000003 en binario) se utiliza para la Am pr ie fa cardcter en una serie de ndmeros lizado. Iniclalmente era un cédigo que capaz de codificar 127 caracteres. Por s aydscula, poco despues aparecié un problema: este cédigo es sufciente para los caracteres del inglés, pero no fares lenguas. Entonces se afladié el octavo bit para representar otros 128 caracteres sue ven diodes sequnidiomas (Europa Occidental usa unos cédigos que no utiliza Europa Oriental), oe gsoprovoca que un cédigo como el 190 signifique cosas diferentes si cambiamos de pals, Por ello cuando un ordenador necesita mostrar texto, tiene que saber qué juego de cédigos debe de utilizar (lo cual gupone un tremendo problema), . ‘Una ampliacién de este método de codificacién es el cédigo UNICODE que puede utilizar hasta 4 bytes 32 bits) con lo que es capaz de codificar cualquier carécter en cualquier lengua del planeta utilizando el mismo conjunto de cédigos. poco poco es el cédigo que se va extendiend ASCII, complica su popularidad ero la preponderancia histérica que ha tenido el cédigo Representacion binaria de datos no numéricos ni de texto Enelcaso de datos mas complejos (imagenes, video, audio) se necesita una codificacién més compleja. ‘Ademas en estos datos no hay estandares, por lo que hay decenas de formas de codificar. Enel caso, por ejemplo, de las imagenes, una forma bisica de codificarlas en binario es la que graba cada pixel (cada punto distinguible en la imagen) mediante tres bytes: el primero graba el nivel de rojo, el segundo el nivel de azul y el tercero el nivel de verde. Y asi por cada pixel. Por ejemplo un punto en una imagen de color rojo puro 11111111 00000000 00000000 Naturalmente en una imagen no solo se graban los pixeles sino el tamafio de la imagen, el modelo de color... de ahi que representar estos datos sea tan complejo para el ordenador (y tan complejo entenderlo para nosotros). Los programas (software) Un programa o software es un conjunto de instrucciones ordenadas para ejecutarse en una computadora enforma rapida y precisa. software se divide en dos grupos; software de sistema operativo y so Eproceso de escribir un programa se denomina programacién y el conjunto de instrucciones aus S° utlizan para escribir un programa se llama lenguaje de programacion. ftware de aplicaciones. Escaneado con Camscanner Lenguajes de programacion Sie par exer programas y permite la comunicacin usuario (programador) versus miquina a ina (pe). Existen tres tipos de lenguajes de programacién: Pc) Lenguaje de maquina: Programacién binaria, dificil de programar y dependiente de la maquina. Lenguaje de bajo nivel (ensamblador): Usa simbolos nemotécnicos, necesita ser traducido all i ‘de maquina y sigue siendo dependiente. lenguaje Lenguaje de alto nivel: Cercano al lenguaje natural, tiempo de programacién relativamente corto, independiente de la méquine. A continuacién se muestra un plano de la evolucin de los lenge ce programacién de alto nivel. \guajes de (Fortran Escaneado con Camscanner traductores del lenguaje de programacién son programas que traducen los eédiigos fuentes (programas escritos en un lenguaje de alto nivel) a codigo maquina. os traductores se dividen en: intérpretes: Traduccién y ejecucién secuencialmente (linea por linea), ejecucién lenta. compiladores: Traduce el cédigo fuente a programa objeto (ejecutable cédigo maquina). ejecucién ripida. Ciclo de vida de un software La construcci6n de un software por mas pequefio que sea, involucra las siguientes etapas: Requerimiento: Enunciado del problema a resolver. Anélisis: ¢Qué? (entender el problema — entrada — proceso - salida) Disefio: 2Cémo? (resolver el problema — algoritmo - diagrama de flujo - dise‘io de interfaz de usuario.) implementacién: 2Hacerlo? (Codificacién / Programarlo) Pruebas: éFunciona? (Verificar / Comprobar) Despliegue: ZInstalar? (Distribuir el programa) S Andlisis ~ S ° Disefio A Implementacién | Pruebas > Despliegue Escaneado con Camscanner Algoritmo. Método que describe la solucion de un problema computacional, me: definidos y finitos, Preciso: Indicar el orden de realizacion en cada paso. Definido: Repetir los pasos n veces y se obtiene el mismo resultado. Finito: Tiene un numero determinado de pasos. La solucién de un algoritmo debe describir tres partes: Entrada: Datos que se necesita para poder ejecutarse. Proceso: Acciones y calculos a realizar. Salida: Resultado esperado. Entrada | — [ Proceso | — [J saigan] La palabra algoritmo procede del matematico Arabe Mohamed Ibn Al Kow Rizmi, eI cuzl escribi s: '0s afios 800 y 825 su obra Quitad Al Mugabala, donde se recogia el sistema de numerecion hindi y 2! concepto del cero. Fibonacci, tradujo la obra al latin y Ia llamo: Algoritmi Dicit. El lenguaje algoritmico es aquel que implementa una solucién tedrica 2 un prob ‘operaciones a realizar y el orden en el que se deben efectuarse. Por ejemplo en el caso de encontremos en casa con un foco malogrado de una kimpara, un posible algoritmo seriz: 1. Comprobar si hay foco de repuesto. 2. Enel caso de que las haya, sustituir el foco anterior por la nueva. 3. Sino hay foco de repuesto, bajar a comprar una nueva a la tienda y sustituir lo malo; nueva. Los algoritmos son la base de la programacién de ordenadores, ya que los programas de ordenador se puede entender que son algoritmos escritos en un cddigo especial entendible por un ordenador. Lo malo del disefio de algoritmos esta en que no podemas escribir lo que deseemas, el lengu: utilizar no debe dejar posibilidad de duda, debe recoger todas las posibilidad: Caracteristicas que deben de cumplir los algoritmos obligatoriamente * Un algoritmo debe resolver el problema para el que fue formulado. Logicamente no sirve un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces cresn algoritmos que resuelven problemas diferentes al planteado, * Los algoritmos son independientes del lenguaje de programacién. Los algoritmos se escri poder ser utilizados en cualquier lenguaje de programacion. + Los algoritmos deben de ser precisos. Los resultados de los calculos deben de ser exactos, de maners rigurosa. No es valido un algoritmo que sélo aproxime la solucién. + Los algoritmos deben de ser finitos. Deben de finalizar en algun momento. No es un algoritmo valido aquel que produce situaciones en las que el algoritmo no termina, n pars + Los algoritmos deben de poder repetirse. Deben de permitir su ejecucidn las veces que hags fits. No son validos los que tras ejecutarse una vez, ya no pueden volver a hacerlo por Ia razén que sea. Escaneado con Camscanner rrr 7 caracteristicas aconsejables para los algoritmos 5 Igoritmo es valido si car alder: Un al rece de errores. Ui jue se planted y sin embargo no ser valido debido a leper peeceeeeecceeemanal |. gfeencia: Un algoritmo es eficiente si obtiene la solu qento en obtener el resultado. iclén al problema en poco tiempo, No lo es si es imo: i Sptimo si a] Gptimo: Un algortmo es Sptimo si es el mas eficiente posible . lebh aoe Y¥ No contiene eri a ui ge este algoritmo es el objetivo priortario del programador. No slempre pediemer snare Sigoritmo hallado es el Sptimo, a veces st, Podemos garantizar que el rases en la creacion de algoritmos gayi fases en la elaboracién de un algoritmo: ‘andlisis. En esta se determina cudl es exactamente el problema a resolv ; er. entrada del algoritmo y cudles deberdn obtenerse como salida, nce pisefio, Elaboracién del algoritmo. Prueba. Comprobacién del resultado. Se observa si el algoritmo obtiene la sallda esperada para todas las entradas. Herramientas de un Algoritmo ee para expresar la solucién de un problema se pueden usar diferentes herramientas de programacién, tales como: + Diagrama de flujo (Flow Chart). + Diagrama N-S (Nassi-Schneiderman). + Pseudocodigo. Diagrama de flujo: Es una representacién grafica que utiliza simbolos normalizados por ANSI, y expresa lassucesivas instrucciones que se debe realizar para resolver el problema. Estasinstrucciones no dependen de la sintaxis de ningiin lenguaje de programacién, sino que debe servir ‘cimente para su transformacién (codificacién) en un lenguaje de programacién. Inicio o Fin O Ss) Conectores Entrada o salida — II Direccién (Flujo) CO ZL / — oS C Teclado Pantalla SubAlgoritmo Escaneado con Camscanner Entero cadena r + “IMPAR" Diagrama de Nassi Scheneiderman (N-S): Conocido también como el diagrama de Chapin, es como un diagrama de flujo pero sin flechas y con cajas continua, mt Entero x: Cadena Leer 1 ry — SIMPAR” x - “PAR” Escribir 5 rucciones en un lenguaje comin (ingles, espafiol, etc.) para Pseudocodigo: Permite expresar las insti fa solucién de un programa. No existen reglas para escribir facilitar la escritura como la lectura de pseudocddigo. Inicio //Variables n : Entero r : Cadena //Entrada Leer n //®roceso Sin Mod 2 = 0 Entonces re SPAR” SiNo . r+ “IMPAR” Fin Si //Salida Escribir r Fin Escaneado con Camscanner nes insite erones que debe realizar un algoritmo para resolver un prob roblem; ones mas comunes son las siguientes: on se ci instruc ie 7 3 ecion de inicio / fin ipstrucel , instruc” srucion de lectures puecion de escritura, ratecion de bifurcacién ' de asignacion. sen de ino/ fin: Representa el inicio yfin de un algoritm Diagrama de Flujo Pseud = locodigo Inicio intrucciin de asignacién: Representa la asignaci ignacién de un valor a una vari j : : iable, se pue vsndo una flecha 0 el simbolo de igualdad, que es el simbolo usado por much ce aeeind a wuchos de los lenguajes de Diagrama de Flujo Pseudocodigo N10 Ne10 N=10 N=10 { Instrucei . i a de lectura: Representa el ingreso de datos mediante un dispositive de entrada, que muchas epresentado por un simbolo de teclado. Diagrama de Flujo Pseudocodigo LeerN Leer N itivo de salida, puede hey Leciy 1 1, 4 Srerem ge oseritura: Representa la sala de la informacién mediante un disposi ntado por el simbolo de entrada/salida, por simboto de pantalla 0 impresora Diagrama dé Flujo Pseudocodigo escribir R eae escribir R Escribir R Escaneado con Camscanner Instruccién de bifurcacién: Cambian el flujo del programa segin el resultado de una expresién ldgica (condicién). Pseudocodigo Si <€xp. Log> Entonces F v Instruccion | Instruccion one tT Fin Si Comentarios Permiten describir, explicar y sirve como ayuda para recordar y entender las operaciones que se van @ ejecutar. Los cémentarios no son instrucciones, por lo tanto al ser traducido el cédigo fuente a cédigo binario (tiempo de compilacién), los lenguajes de programacién las ignoran. Dependiendo el lenguaje de programacién los comentarios se escriben usando cierta simbologia, en este libro usaremos el simbolo // en los pseudocédigos para colocar comentarios. Ejemplo Pseudocodigo //Naxiables * N : Entero Visual Basic ‘variables Dim N As Integer Palabras reservadas ‘Son palabras usadas por el lenguaje de programacidn y que no deben ser utilizadas como identificadores de variables, funciones entre otros. Algunas de las palabras reservadas de Visual Basic Dim, Integer, Long, Single, Double, If, For, Select, Me ... Escaneado con Camscanner identi i jrombres que asignamos alas variables, constam _ tes, funciones, objetos entre ot; constantes, : 105 Y no pueden cdr €on las palabras reservadas por que seria ambiguo y elcommlacns Ro lo entenderia, cr pgzneral los identifcadores deben de cumplir las siguientes reglas: 10 it ot nen comenzar por una letra. Evite usar fy tilde, pete! yo debe coincidir con palabras reservadas del lenguaje de Programacién que esta utilizando. ble es Dim eservada Hy Variables ssenta un espacio de memoria RAM que guarda un valor que servird para algun proceso en particular, perp war puede ser modificado en cualquier momento, ich ables tienen por lo general un identificador (nombre) y asignado el tipo de dato que se esta tas endo, es decir si almacena un numero (entero}, si es texto alfanumériea (cadena), si es un valor utlizando, verdadero 0 falso (I6gico) llamado también booleano. jemplo Pseudocodigo /Neriab i 5 Igoritmos usaremos la — 0 el Pars asignarle un valor usamos el operador de asignacién que para alg esel mas usado por los lenguajes de programacién. empl Pseudocodigo /Msignar un valor Ne 19 Mearbiar su valor Neso Visual Basic “Asignar un valor We i9 Sabiar su valor 50 Escaneado con Camscanner Algoritmos con Visual Basic _ Constantes Representa un espacio de memoria RAM que guarda un valor que servird para algun proceso en particular, dicho valor permanece fijo es decir no puede cambiarse en la ejecucién del programa. Las constantes tienen al igual que las variables un identificador (nombre) y un tipo de dato. Ejemplo Pseudocodigo //Constantes PI ~ 3.14159 : Real //Exrror ya no puede modificarlo PI - 3.14 Visual Ba: ‘Constantes Const PI As Integer = 3.14159 ‘Error ya no puede modificarlo PI = 3.14 Tipo de datos simples (primitivos) Al declarar una variable debemos indicar el tipo de dato que es permitido almacenar en dicha variable. Cada lenguaje de programacién trabaja con una variedad de tipo de datos, por lo general todos usan los llamados tipos de datos primitivos, que son los siguiente: + Entero + Real + Carécter + Légico ‘epresentan los numeros enteros (no almacena decimales) Ejemplo Pseudocodigo //Crear la variable //(identificador y tipo de dato) N : Entero //Asignar un valor //(identificador, operador de asignacién y valor) N-15 En el lenguaje de Visual Basic el tipo entero se puede trabajar con Integer o Long, la diferencia esta que uno almacena un rango de ntimeros menor y el otro un rango de ntimeros mayor, llamados también entero corto y entero largo. Escaneado con Camscanner Ejemplo Visual Basic ‘entero corto ‘asignar un valor (error de gg, ‘Sobrepaso su limite (rango) sbordamiento) ‘asignar un valor Nn = 4500099 Real: Representan los nirmeros reales (almacena decimales) Ejemplo Pseudocodigo //Crear la variable //(identificador y tipo de dato) N: Real //Asignar un valor //(dentificador, operador de asignacién y valor) N-15.75 Enellenguaje de Visual Basic el tipo real se puede trabajar con Single o Double, la diferencia esta que en ls cantidad de decimales que puede almacenar, Ilamados también precision simple y precisién doble. ‘Precision simple ‘Se redondea a 15.123457 12345678 ‘Precision doble i As Dow ‘Lo almacena sin redondear 15.12345678 = 15.12345678 ui fr loca entre Caracter: Representa un cardcter de cualquier tipo texto, nimeros, simbolo ete. El valor se colo Comillas simple. Femplo Pseudocodigo ‘Kear 1a variable M“signar un valor Escaneado con Camscanner Visual Basie 6.0 n0 1 Narnado caden repr dl eoncepio de caracter, per para exo usa ol uanceplo de uno ins caracteres que es un tipo de dato complejo (por que guarda un conjunto de caracteres) ¥ para tat el valor se coloca entre comnillas dobles, Fjomplo Visual Basle ‘Crear la variable Dim v An being ‘Asignar un valor R= eae he “ye wae Légico: Representan los valores Verdadero 0 Falso, conocido también como boolean, no se colocan comillas simple ni dobles, EJemplo Pseudocodigo //Crenr 1a variable lt Logico //hohgnar un valor Lee VERDADERO Le PALSO En Visual Basic se utiliza el tipo de dato llamado Boolean, para almacenar valores I6gicos, Efemplo Visual Basle ‘Crear la variable Dim L he Boolean ‘Asignar un valor Lo= True L = False Tipo de datos complejos (estructurados) Son aquellos que estén constituidos por tipos de datos simples y definen una estructura de datos, un ejemplo claro es el tipo cadena, que esta compuesta por un conjunto de caracteres (tipo de dato caracter), Existe una variedad de tipo de de datos complejos, el enfoque de este libro es Algoritmos y solo tocaremos dos tipos de datos complejos que son cadena y arreglos, los libros que profundizan el tema se llaman libros de Estructura de datos. Cadena: Representa un conjunto de caracteres, internamente es una arreglo de caracteres, por lo general 2¢ representa con comillas dobles. Escaneado con Camscanner cit ners ae Proarrcon] Ejemplo Pseudocodigo //Cxeax la variable //Asignar un valor ‘arcelo@hotmail.com”™ Operadores y Expresiones Son los que permiten realizar los célculos entre valores fjos y variables. Los operadores se clasifican por: * Operadores Aritméticos + Operadores Relacionales + Operadores Légicos + Operadores de Cadena Operadores Aritméticos: Son aquellos operadores que permiten realizar las opera sti la misma forma como se utilizan en las matematicas. [operador [Design] a Suma = Resta iH Multiplicacion / jn \ nentera s Exponenciaci6n Mod Médulo (resto de una divisién) Dependiendo el lenguaje de programacién los operadores varian 0 no implementan uno u otro, en el caso de Visual Basic implementa todos los mencionados en la tabla. Expresiones Aritméticas 8x3 Equivale a 83 =24 8/3 = 2.666665 Equivale2 3.) 8 Equivale a 842 = 64 9 Equivale a 9A(1/2) =3 9|4 5 ies Equivale a 9 Mod 4= Escaneado con Camscanner Operadores Relacionales: Llamados tambii operadores de comparacién y permiten evaluar si dos valores guardan alguna relacion entre si, Descripcién = Igualdad > Mayor que > Menor o igual que < Menor que Menor 0 Igual que 2 Diferente a Dependiendo el lenguaje de programacién los operadores varian o no implementan uno u otro, en el caso de Visual Basic implementa todos los mencionados en la tabla. Expresiones légicas (condiciones) 8=3 Falso 8>3 Verdadero 84 Y 356 Falso Tice Siege \Verdadero 0 Logico: Si p y q son valores Iégicos, uno de ellos debe ser verdadero para que O devuelva verdadero. Escaneado con Camscanner Expresiones I6gicas (condiciones) Soa 0) 356 Verdadero 75° Y Spnq Verdadero NO Légico: Si p es un valor Iégico, el operador NO invierte su valor. Expresiones légicas (condiciones) NO (8>4) Falso NO (7.<>7) Verdadero Operadores de Cadena: Son aquellos operadores que permiten realiza operaciones con cadenas, por lo general permiten unir cadena llamado también concatenar. Descripcién + Unir cadenas & Unir Cadenas | Expresiones de cadena “Ricardo” + ““+ “Marcelo” Ricardo Marcelo “ricardomarcelo” & “@” & “hotmail.com” _|ricardomarcelo@hotmail.com Escaneado con Camscanner Control de flujo Todos los lenguajes de programacién implementan estructuras para controlar la ejecucién de un programa, estas son: En los siguientes capitulos se explican cada uno de las siguientes estructuras mencionadas. Estructura secuencial Estructura selectiva simple y doble Estructura selectiva miltiple Estructura repetitiva mientras Estructura repetitiva para Escaneado con Camscanner

You might also like