You are on page 1of 61

UNIVERSIDAD TECNICA DE MACHALA

MODALIDAD SEMI- PRESENCIAL

NIVEL DE PREGRADO

CARRERA DE DOCENCIA EN INFORMTICA

MDULO

PROGRAMACIN

DOCENTE: Ing. TITO JAVIER POLO CACAO


MACHALA - ECUADOR

UNIVERSIDAD TECNICA DE MACHALA

UNIDAD I

Introduccin a la Programacin de Computadores

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


Programar es hermoso. Ms que una tcnica, para m es un arte. Programar una computadora es jugar a ser Dios, y los programadores sentimos que somos capaces de crear vida artificial, pero vida al fin, sin la cual la mismsima PC se convertira en un manojo de chips inservibles.

Mariano Birnios.

INTRODUCCIN La programacin no es algo tan nuevo como se cree; por el contrario, comenz mucho tiempo atrs, cuando el hombre vio en las mquinas una fabulosa oportunidad para ayudarlo a resolver sus problemas matemticos, cientficos y, obviamente, militares. All por el ao 1834, Charles Babbage desarroll una aparatosa mquina mecnica: la Mquina Analtica (Analytical Engine), como fue bautizada. Era una computadora mecnica de propsito general, ms que nada utilizada para realizar clculos de todo tipo. La mquina trabajaba con tarjetas perforadas para recibir instrucciones, y segn los orificios estratgicamente ubicados en la tarjeta, los dispositivos mecnicos de aquel engendro lean los datos de entrada y operaban hasta llegar al resultado. El concepto de tarjeta perforada se sigui utilizando durante mucho tiempo ms, incluso hasta hace algunas dcadas. Si bien los mecanismos de lectura mejoraron, la esencia era la misma, y aunque no tuve la posibilidad de trabajar con aquellos mamotretos, siempre recuerdo a mis profesores contando sus hazaas con la programacin de mquinas con tarjetas perforadas... Pero Babbage no trabajaba solo en el desarrollo de su mquina. Lo ayudaba su asistente, la seorita Ada Augusta Byron, una joven muy inteligente, que comprenda muy bien el funcionamiento de la mquina y el poder que podra alcanzar (seguramente, ms de lo que Babbage supona). Luego de unos viajes por el exterior, Ada se dispuso a documentar su funcionamiento, basndose en unas lecturas de Babbage. Lo interesante fue que ella quiso agregar algunas notas de su autora, pero se entusiasm tanto, que termin describiendo cmo se podra usar la mquina para mucho ms que simples clculos numricos... Hasta sugiri que se podra utilizar para crear msica artificial, alimentndola con reglas de armona y meloda. En cierto modo, estaba describiendo cmo programar el aparato, y por esa razn, para alegra de todas nuestras lectoras, se considera a la seorita Ada la primera programadora del mundo. Varias dcadas despus, existi un lenguaje de programacin llamado ADA, en honor a su trabajo. Pero esto no tom vuelo sino hasta despus de la invencin de las computadoras digitales. En 1954 se cre FORTRAN, el primer lenguaje de programacin de alto nivel, que inclua un compilador. Como estaba muy orientado a la ingeniera, le dej el campo abierto a COBOL, que durante mucho tiempo fue el principal lenguaje usado para desarrollar aplicaciones de negocios. Seguramente hoy queden restos en algn banco pueblerino...

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

Hoy en da... qu es programar? El papel de los programas de computadoras es esencial, sin una lista de instrucciones a seguir, la computadora es virtualmente intil. Los lenguajes de programacin nos permiten escribir esos programas y por consiguiente comunicarnos con las computadoras. Como todos saben, el hardware est formado por los componentes fsicos de la PC, y el software son los diferentes programas que la hacen funcionar. Programar es crear ese software, que le indica a la computadora qu, cmo, dnde y cundo tiene que hacer las cosas; es decir, le da instrucciones. Pero, aparte de mandar, tambin es necesario tomar decisiones, casi de la misma forma en que lo hacemos a diario... Si el semforo est en verde, entonces cruzo; pero si est en rojo, mejor espero . Adems, muchas veces hay que hacer ciclos repitiendo instrucciones y, en fin, manejar otras estructuras. Todo este conjunto de instrucciones termina conformando un algoritmo, una serie de pasos por seguir para lograr un objetivo. Pensemos en un ejemplo sencillo. Imaginemos el trabajo de un programa que, dada una lista de nmeros, cuente cuntos son positivos y cuntos negativos. El razonamiento sera algo como: Las cantidades de positivos y de negativos son cero, inicialmente. Tomo el primer nmero y, si es mayor que cero, sumo uno a los positivos; si no, sumo uno a los negativos (dejemos de lado el caso del cero). Si hay ms nmeros, repito el proceso con el prximo hasta terminar. Si termin la lista, informo la cantidad de positivos y de negativos que hubo.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

La ilustracin muestra el funcionamiento lgico del programa usando Diagramas de Flujo, una herramienta que se utiliza para representar el trabajo de algoritmos. Es muy til para ensear a programar, aunque en la prctica casi no se utiliza. Pero en la prctica... cmo se le dice a la PC lo que debe hacer? Nuestra querida PC slo entiende el lenguaje mquina, o sea, ceros y unos, pero a nosotros, los mortales, nos resulta algo difcil de comprender. En lugar de eso, es necesario utilizar un lenguaje comprensible por ambas partes (con ciertas traducciones de por medio), y aqu es donde intervienen los lenguajes de programacin. Los Lenguajes en el tiempo 1954: FORTRAN (FORmula TRANslation). El primer lenguaje de alto nivel con compilador. Fue desarrollado por IBM y usado para resolver problemas cientficos y de ingeniera. 1960: COBOL (COmmon Business Oriented Language ). Fue un lenguaje orientado al desarrollo de aplicaciones de negocios (bancos, etc.). Se caracterizaba por su horripilante sintaxis. 1964: BASIC (Beginners All-purpose Simbolic Instruction Code ). Fue desarrollado pensando en los principiantes, y result muy popular. En 1987 vio la luz el QuickBasic. 1971: PASCAL Un lenguaje estructurado muy utilizado para ensear programacin en las universidades. Actualmente, la versin ms popular es Turbo Pascal 7.0, desarrollada por Borland. 1972: C El lenguaje fue inventado por Dennis Ritchie con vistas a UNIX, pero adquiri tanta popularidad, que luego fue portado a otras plataformas. El ANSI C data de 1983.

Desde la dcada del 50 hasta la actualidad, se han desarrollado ms de 2.000 lenguajes de programacin diferentes. Claro est, no todos se volvieron comerciales y adquirieron gran popularidad. De hecho, menos de 40 fueron realmente significativos en la historia informtica. LOS LENGUAJES DE PROGRAMACIN Un Lenguaje de Programacin es un sistema de smbolos y reglas que permite la construccin de programas con los que la computadora puede operar as como resolver problemas de manera eficaz. Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, clculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

Existen varios lenguajes, para todos los gustos: Visual Basic, C++, Pascal, JAVA, COBOL, Delphi, Visual FoxPro... Aunque, claro, no todos estn en uso. La razn por la cual no hay un nico lenguaje de programacin es simple: hay diferentes metodologas de programacin (modular, estructurada, orientada a objetos, etc.), y hay lenguajes diseados para cubrir necesidades especficas (por ejemplo, Visual FoxPro es un lenguaje que apunta al trabajo con bases de datos). Los lenguajes de programacin se suelen clasificar en: Lenguajes de bajo nivel. Son aqullos en los que una instruccin del lenguaje equivale a una instruccin de la CPU. El nico lenguaje de este grupo es Assembler, que, como todos saben, est ntimamente ligado al procesador sobre el cual corre. Escribir programas en estos lenguajes es una tarea muy laboriosa... Lenguajes de alto nivel. Son ms parecidos al lenguaje humano y, por lo tanto, mucho ms fciles de usar. Sus instrucciones son palabras en ingls, que resultan mucho ms sencillas de leer y analizar. En este grupo estn BASIC, Pascal, Visual Basic, Delphi y Visual FoxPro, entre otros. El lenguaje C, se suele clasificar como de nivel medio, ya que en cierta parte comparte elementos de las dos ramas. Cmo se crean los programas Una vez elegido el lenguaje, se escribe el programa. Algunos lenguajes vienen con un IDE (Integrated Development Environment) para escribir el cdigo, y hasta resaltan las instrucciones en color. Si no es as, habra que escribir el cdigo con un editor externo, como el Bloc de notas. El texto escrito de esta forma se llama cdigo fuente (Source Code), pero claro, la mquina no tiene ni idea de lo que significa. Por eso, para poder ejecutarlo, primero debe compilarlo. El proceso de compilacin lee el texto escrito por el programador, lo traduce a lenguaje mquina y genera el archivo ejecutable como lo conocemos todos, con extensin .exe. Qu elementos se pueden programar? Es posible programar aplicaciones personales, grandes sistemas para empresas, juegos, utilitarios o cualquier otra aplicacin, pero lo importante es que, de acuerdo con lo que se vaya a programar, ser conveniente elegir un lenguaje u otro. Por ejemplo, en el caso de los juegos comerciales, casi el cien por

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

cien es desarrollado en Visual C++, sin lugar a dudas, uno de los lenguajes ms poderosos de la actualidad, aunque, evidentemente, no es el ms fcil de aprender o utilizar. ESTRUCTURA DE ENTRADA PROCESO SALIDA

PROBLEMA

E N T R A D A

P R O C E S O

S A L I D A

PASOS PARA RESOLVER UN PROBLEMA UTILIZANDO UN COMPUTADOR El proceso de resolucin de un problema con una computadora conduce a la escritura de un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es esencialmente un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. Las siguientes son las etapas que se deben cumplir para resolver con xito un problema de programacin: 1. 2. 3. Definicin del problema Anlisis del problema Seleccin de la mejor alternativa

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


4. 5. 6. 7. 8. 9. 10. Diagramacin Prueba de escritorio Codificacin Transcripcin Compilacin Pruebas de computador Documentacin externa

1.- DEFINICIN DEL PROBLEMA Est dada por el enunciado del problema, el cual debe ser claro y completo. Es importante que conozcamos exactamente que se desea del computador; mientras que esto no se comprenda, no tiene caso pasar a la siguiente etapa. 2.- ANLISIS DEL PROBLEMA Entendido el problema (qu se desea obtener del computador), para resolverlo es preciso analizar: Los datos de entrada que nos suministran. Los datos o resultados que se esperan. El proceso o mtodo al que se requiere someter los datos a fin de obtener los resultados esperados. Una recomendacin muy prctica es el que nos pongamos en el lugar del computador, y analizar que es necesario que me ordenen y en que secuencia, para poder producir los resultados esperados. Tambin da buenos resultados hacer similitudes con la labor de un empleado que hace el mismo trabajo que deseamos programarle al computador. Ejemplo: Entrada: Salida: Mtodo: calcular el rea de un cuadrado Lado > Num rea > Num Lado2 > Num

3.- SELECCIN DE LA MEJOR ALTERNATIVA (ALGORITMO) Analizado el problema, posiblemente tengamos varias formas de resolverlo; lo importante es determinar

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

cual es la mejor alternativa: la que produce los resultados esperados en el menor tiempo y al menor costo. Claro que aqu tambin es muy vlido el principio de que las cosas siempre se podrn hacer de una mejor forma. 4.- DIAGRAMACIN Una vez que sabemos cmo resolver el problema, pasamos a dibujar grficamente la lgica de la alternativa seleccionada. Eso es precisamente un Diagrama de Flujo: la representacin grfica de una secuencia lgica de pasos a cumplir por el computador para producir un resultado esperado. 5.- PRUEBA DE ESCRITORIO Para cerciorarnos de que el mtodo de solucin es correcto, y, para garantizar que el programa que codifiquemos luego tambin funcione correctamente, es conveniente someterlo a una Prueba de Escritorio. Esta prueba consiste en que damos diferentes datos de entrada al algoritmo y seguimos la secuencia indicada, hasta obtener los resultados. El anlisis de stos nos indicar si el algoritmo es correcto o si hay necesidad de hacer ajustes (volver al paso 3). Se recomienda dar diferentes datos de entrada y considerar todos los posibles casos, aun los de excepcin o no esperados, para asegurarnos de que el programa no producir errores en ejecucin cuando se presenten estos casos. 6.- CODIFICACIN Una vez que hayamos verificado el algoritmo mediante las pruebas de escritorio, codificamos el programa en el lenguaje de programacin seleccionado. Esto es, colocamos cada paso del algoritmo en una instruccin o sentencia, utilizando un lenguaje que el computador reconoce. Todos los lenguajes de programacin proveen facilidades para incluir lneas de comentarios en los programas. Estos comentarios aclaran lo que se ordena al computador y facilitan entender el programa. Puesto que estos comentarios no son tenidos en cuenta como instrucciones, y aparecen en los listados del programa, resulta muy conveniente agregar abundantes comentarios a todo programa que codifiquemos. Esto es lo que se denomina Documentacin Interna. 7.- TRANSCRIPCIN El programa codificado es necesario que lo llevemos a un medio que sea aceptado como entrada por el computador: lo perforamos en tarjetas, lo grabamos en un disco flexible o lo grabamos en un disco duro.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


Este programa es el que se conoce como Programa Fuente (Source). 8.- COMPILACIN

10

Utilizamos ahora un programa de computador llamado Compilador o Traductor, el cual analiza todo el programa fuente y detecta errores de sintaxis ocasionados por fallas en la codificacin o en la transcripcin. Las fallas de lgica que pueda tener nuestro programa fuente no son detectadas por el compilador. Cuando no hay errores graves en la compilacin, el compilador traduce cada instruccin del programa fuente a instrucciones propias de la mquina (Lenguaje de Maquina), creando el Programa Objeto. Algunos computadores utilizan Interpretadores en reemplazo de programas compiladores. La diferencia consiste en que el interpretador recibe, desde una terminal, slo una instruccin a la vez, la analiza y, si esta bien, la convierte al formato propio de la maquina. Si la instruccin tiene algn error, el interpretador llama la atencin de la persona para que corrija dicha instruccin. Como resultado de la corrida del compilador, podemos obtener varios listados: Listado del programa fuente Listado de los errores detectados Listado de campos utilizados, etc.

Los errores los debemos corregir sobre el mismo programa fuente, ya sea reemplazando las tarjetas mal perforadas o regrabando en el disco flexible o en el disco duro. Este paso de la compilacin lo repetimos hasta eliminar todos los errores y obtener el programa ejecutable. 9.- PRUEBAS DE COMPUTADOR Cuando tenemos el programa ejecutable (en lenguaje de mquina), ordenamos al computador que lo ejecute, para lo cual suministramos datos de prueba, como lo hicimos en la prueba de escritorio (paso 5). Los resultados obtenidos los analizamos, luego de lo cual puede ocurrir cualquiera de estas situaciones: La lgica del programa est bien, pero hay errores sencillos, los cuales los corregimos modificando algunas instrucciones o incluyendo unas nuevas; el proceso debemos repetirlo desde el paso 6.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

11

Hay errores ocasionados por fallas en la lgica, lo que nos obliga a regresar a los pasos 3 y 5 para revisin y modificacin del algoritmo.

Hay errores muy graves y lo ms aconsejable es que regresemos al paso 2 para analizar nuevamente el problema, y repetir todo el proceso.

No hay errores y los resultados son los esperados. En este caso, el programa lo podemos guardar permanentemente en una librera o biblioteca del computador, para sacarlo de all cuando necesitemos ejecutarlo nuevamente.

10.- DOCUMENTACIN EXTERNA Cuando el programa ya se tiene listo para ejecutar, es conveniente que hagamos su documentacin externa siguiendo las normas de la instalacin o las recomendaciones indicadas por el profesor. Una buena documentacin incluye siempre: Enunciado del problema Diagrama de pasada Narrativo con la descripcin de la solucin Relacin de las variables o campos utilizados en el programa, cada uno con su respectiva funcin Diagrama del programa Listado de la ltima compilacin Resultados de la ejecucin del programa.

ALGORITMOS Definicin El trmino Algoritmo se deriva de la traduccin al latn de la palabra rabe Alkhowarismi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

12

Los algoritmos, como procedimiento para solucionar problemas, han existido desde muchos siglos atrs, sin embargo, se han convertido en tema de inters de estudiantes y profesionales por cuanto son el fundamento de la programacin de computadores. Desarrollar un programa de computador significa: indicarle al computador, en un lenguaje que l pueda entender, todos y cada uno de los pasos que debe ejecutar para lograr el objetivo propuesto, pero antes de pensar en decirle al computador cmo hacer algo, es necesario que el programador sepa cmo hacerlo. Es all donde entra a jugar un papel preponderante el desarrollo de algoritmos, pues antes de escribir un programa es necesario disear el algoritmo para solucionar el problema en cuestin. Caractersticas Un algoritmo debe tener al menos las siguientes caractersticas:

Ser preciso: esto significa que las operaciones o pasos del algoritmo deben desarrollarse en un orden estricto, ya que el desarrollo de cada paso debe obedecer a un orden lgico.

Ser definido.

Ya que en el rea de programacin, el algoritmo se desarrolla como paso

fundamental para desarrollar un programa, es necesario tener en cuenta que el computador solo desarrollar las tareas programadas y con los datos suministrados; es decir, no puede improvisar y tampoco se inventar o adivinar el dato que necesite para realizar un proceso. Por eso, el algoritmo debe estar plenamente definido; esto es, que cuantas veces se ejecute, el resultado depende estrictamente de los datos suministrados. Si se ejecuta con un mismo conjunto de datos de entrada, el resultado ser siempre el mismo.

Ser finito: esta caracterstica implica que el nmero de pasos de un algoritmo, por grande y complicado que sea el problema que soluciona, debe ser limitado. Todo algoritmo, sin importar el nmero de pasos que incluya, debe llegar a un final. Para hacer evidente esta caracterstica, en la representacin de un algoritmo siempre se incluyen los pasos inicio y fin.

Presentacin formal: para que el algoritmo sea entendido por cualquier persona interesada es necesario que se exprese en alguna de las formas comnmente aceptadas; pues, si se describe de cualquier forma puede no ser muy til ya que solo lo entender quien lo dise. Las formas de presentacin de algoritmos son: el pseudocdigo, diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

13

Correccin: el algoritmo debe ser correcto, es decir debe satisfacer la necesidad o solucionar el problema para el cual fue diseado. Para garantizar que el algoritmo logre el objetivo, es necesario ponerlo a prueba; a esto se le llama verificacin o prueba de escritorio.

Eficiencia: hablar de eficiencia o complejidad de un algoritmo es evaluar los recursos de cmputo que requiere para almacenar datos y para ejecutar operaciones frente al beneficio que ofrece. En cuanto menos recursos requiere ser ms eficiente el algoritmo.

La vida cotidiana est llena de soluciones algortmicas, algunas de ellas son tan comunes que no se requiere pensar en los pasos que incluye la solucin. La mayora de las actividades que se realizan diariamente estn compuestas por tareas ms simples que se 1. ejecutan en un orden determinado, lo cual genera un algoritmo. Por 2. ejemplo, son tareas comunes, realizar una llamada telefnica, buscar 4. un nmero en el directorio telefnico, buscar un anuncio en las 5. pginas amarillas del directorio, preparar caf, regar las plantas, poner en funcionamiento un automvil, cambiar una llanta, entre muchas otras. Muchos de los procedimientos utilizados para desarrollar tareas cotidianas son algortmicos, sin embargo, esto no significa que todo lo que se hace est determinado por un algoritmo. El cumplimiento de un procedimiento es o no es algortmico. Una receta de cocina para preparar un plato cualquiera puede ser un algoritmo, pero tambin puede no serlo, dependiendo de las especificaciones. Si una de las instrucciones a desarrollar dice aplicar sal al gusto ya puede afirmarse que no es un algoritmo, porque contiene un elemento subjetivo, no definido. Esta misma accin podra aparecer de la forma aplicar 20 gramos de sal, en cuyo caso no se requiere del gusto (subjetivo) de quien lo aplica y por tanto no contradice el principio de la algoritmia. El primer paso en el diseo de un algoritmo es conocer la temtica a tratar, el segundo ser pensar en las actividades a realizar y el orden en que deben ejecutarse para lograr el objetivo, el tercero y no menos importante es la presentacin formal.
6. 7. 8. 9. 10. 11. 12. 13. 14. 3. 17 Principios de la Creatividad
(Del blog de AlejoLP)

las caractersticas mencionadas anteriormente permitir determinar si 15.


16. 17.

Decide ser creativo Busca muchas soluciones Escribe tus ideas Analiza con detenimiento tus ideas Identifica correctamente tu problema Considera los problemas como oportunidades Busca lo evidente Corre riesgos Atrvete a ser diferente Se poco razonable Divirtete y haz tonteras Se espontneo Vive el momento presente Piensa como dejar de vivir en las nubes Desafa las normas y supuestos Dedica el tiempo necesario a tomar decisiones importantes Se paciente y tenaz

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


Tipos 1. Informales 2. Formales Algoritmos Informales

14

Se realizan mediante una secuencia de pasos. Para los problemas y las ms elementales acciones que se tienen que llevar a cabo diariamente es necesario seguir una serie de acciones ordenadas. Para ir al trabajo o a la escuela, generalmente la persona: 1. Se levanta de la cama. 2. Se baa. 3. Desayuna, 4. Se lava los dientes, 5. Se peina. 6. Sale con su portafolio o mochila De esta manera se llevan a cabo todas las actividades del ser humano. Las recetas de cocina y los manuales son ejemplos claros de algoritmos. Las computadoras utilizan estos pasos lgicos para resolver problemas o realizar actividades como: procesamiento de textos, clculos, ordenamiento y manejo de datos, diseo de presentaciones, creacin de grficas e imgenes, y, en general, todo lo que se realiza con programas de cmputo. Ejemplo: Tenemos una col y un cordero hambriento al que le gusta mucho la col y tambin tenemos un len al que le gusta mucho el cordero. Debemos pasarlos a la otra orilla de un ro turbulento y nuestra barca es tan pequea que solo podemos transportar uno cada vez el len, el cordero o la col. Qu escogeramos primero? El problema consiste en saber qu podemos dejar en la orilla aguardando nuestro regreso. El cordero se comera la col, en cambio la col estara segura con el len porque a los leones no les gusta la verdura, lo que si les gusta de verdad a los leones es el cordero. Cmo lograramos pasarlos a todos? Datos: Len, cordero, col, la barca y el barquero

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

15

Proceso: 1. En primer lugar tomaramos el cordero y lo pasaramos a la otra orilla 2. En el segundo viaje transportaramos al len a la otra orilla pero de regreso trasladaramos de nuevo al cordero que volveramos a la orilla original. 3. En el tercer viaje transportaramos la col y la dejaramos junto con el len. 4. Finalmente volveramos a buscar al cordero y lo pasaramos por segunda vez a la orilla de destino

Otra solucin: Pasar al cordero en primer lugar y a continuacin la col en lugar del len, regresar con el cordero, pasar al len en el tercer viaje y finalmente pasar al cordero. Algoritmos Formales Utilizan clculos numricos para definir los pasos del proceso. Permiten resolver problemas, que luego sern llevados al computador, como por ejemplo calcular la hipotenusa de un tringulo rectngulo, el promedio de notas de un curso o cualquier otro tipo de problema Tipos de algoritmos formales 1. Lineales 2. Con estructuras alternativas 3. Con estructuras de repeticin Algoritmos lineales Tienen una secuencia lineal, que consta del inicio, el proceso lgico y el fin INICIO Proceso lgico FIN

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


Dentro del proceso lgico se pueden asignar valores a variables. Ejemplo A B C 10 NOTA 22

16

Tambin se puede asignar una expresin a una variable, as: A 21 BA+1 Entonces, B toma el valor de A que es 21 + 1 Cuando se necesita ingresar o leer valores por medio del teclado e imprimir resultados, se utilizan las siguientes expresiones: LEER A, B, C O tambin INGRESAR A, B, C ESCRIBIR A, B, C O tambin PRESENTAR A, B. C Ejemplo: Leer la base y la altura de un tringulo rectngulo y calcular su hipotenusa Datos de entrada: altura Altura h Base b base (Imprimir la informacin de las variables A, B, C) (se guardar los valores que se ingresan en las variables A, B, C)

hipotenusa

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

17

Datos de salida: Hipotenusa Proceso: 1. Inicio 2. Ingresar b, h 3. c raz (b2 + h2) 4. Presentar c 5. Fin c

Algoritmos con estructuras alternativas La estructura alternativa permite escoger siempre entre dos alternativas, ya sea verdadero o falso, de acuerdo a las instrucciones planteadas. Se representa de la siguiente manera: SI (condicin) ENTONCES instruccin 1 instruccin 2 ... instruccin n SI NO o CASO CONTRARIO instruccin 1 instruccin 2 ... instruccin n FIN SI En estas estructuras, se evala la condicin planteada. Si la condicin es verdadera, se realiza el conjunto de instrucciones siguientes. Si la condicin es falsa, se realiza el conjunto de instrucciones que se encuentran debajo de SINO. Aqu se puede utilizar cualquier tipo de expresin que puede ser

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


evaluada para proceder a ejecutar de acuerdo a las instrucciones planteadas. Ejemplo: Realizar un algoritmo para determinar el mayor y el menor de dos nmeros ledos. Datos de entrada: Primer nmero: Segundo nmero: Datos de salida: Nmero mayor: a Nmero mayor: b Proceso: 1. Inicio 2. Ingresar a, b 3. Si (a > b) entonces Presentar El mayor es , a, y el menor es , b Caso contrario Presentar El mayor es , b, y el menor es , a Fin Si 4. Fin Algoritmos con estructuras repetitivas Nmero menor: b Nmero menor: a si (a > b) si no se cumple que (a > b) a b

18

Una estructura repetitiva (bucle o ciclo repetitivo) permite que un grupo de instrucciones (cuerpo del bucle) se ejecute N veces dependiendo del resultado de una expresin lgica o condicin. Si el resultado es verdadero, se ejecuta el cuerpo del bucle y se evala nuevamente la expresin, caso contrario termina el bucle y se contina con el resto de instrucciones. Una estructura repetitiva puede implementarse de diversas maneras. Analizaremos la siguiente:

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

19

MIENTRAS

(condicin) HACER

instruccin 1 instruccin 2 ... instruccin n FIN MIENTRAS El nmero de veces (lmite) que se repiten las instrucciones generalmente es controlado por un tipo especial de variable denominada contador. Ejemplo: Presentar los N primeros nmeros naturales (1 2 3 4 5 .. ) Datos de entrada: Nmero: Datos de salida: Nmeros naturales: Proceso: 1. Inicio 2. Ingresar N 3. c0 (contador) cc+1 Presentar c Fin Mientras 5. Fin EJERCICIOS RESUELTOS Problema 1: Calcular el rea de un trapecio 4. Mientras (c < N) hacer 1 2 3 4 5 N (contador) N (lmite) cuerpo del bucle

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

20

M = Base Mayor B = Base Menor H = Altura A = rea 1- Inicio 2- Escribir Ingresar M" 3- Leer M 4- Escribir Ingresar B" 5- Leer B 6- Escribir Ingresar H" 7- Leer H 8- A ((M + B) * H)/2 9- Escribir A 10- Fin Problema 2: 1- Inicio 2- Escribir Ingrese nmero" 3- Leer A 4- Si (A mdulo 2 = 0) entonces Si No Escribir "el nmero , A, es Impar" Fin Si 5- Fin (la condicin tambin podra decir: (residuo A / 2 = 0)) Escribir "el nmero , A, es Par" Leer un nmero A y determinar si ste es par o impar.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

21

ACTIVIDAD 1

Plantear algoritmos para dar solucin a los siguientes problemas Leer la base y la altura de un terreno de forma rectangular y calcular el rea y el permetro del mismo

El docente de Informtica desea saber qu porcentaje de hombres y qu porcentaje de mujeres tiene en su grupo de estudiantes Un profesor prepara tres cuestionarios para una evaluacin final: A, B y C. Se sabe que se tarda 5 minutos en revisar el cuestionario A, 8 en revisar el cuestionario B y 6 en el C. La cantidad de exmenes de cada tipo se entran por teclado. Cuntas horas y cuntos minutos se tardar en revisar todas las evaluaciones? Leer 2 nmeros A, B y determinar si B es mltiplo de A Leer un nmero N y calcular el siguiente nmero par Presentar 10 veces el mensaje Carrera de DOCENCIA EN INFORMATICA Presentar los N primeros nmeros pares Leer 10 nmeros y sumarlos

____________________________________________

DIAGRAMAS DE FLUJO Definicin Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de cmo deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante lneas que indican el orden en que se deben ejecutar los procesos. Ventajas de los diagramas de flujo

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

22

Facilitan la comprensin de los algoritmos y los problemas en s Agilizan la deteccin y correccin de errores Permiten la documentacin del problema

Simbologa Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI).

Smbolo

Funcin

Terminador

Inicio y fin del diagrama

Cualquier tipo de operacin que origine cambio de valor, formato, Proceso posicion de la informacion almacenada en memoria, operaciones aritmeticas, de transferencia, etc.

Cualquier tipo de de introduccin de datos en la memoria desde los Entrada/Salida perifericosentrada o registros de informacion procesada en un periferico de salida

Impresora

Salida de resultados por impresora

Llamada a subrutina, funcion o procedimiento; este es un modulo Subproceso independiente del programa principal, que recibe una entrada procedente de dicho programa , realiza una tarea determinada y regresa al terminar al programa principal Salida por pantalla Salida de resultados por pantalla

Indica operaciones logicas o de comparacion entre datos- normalmente Proceso: Decisin entre dos y en funcion del resultado, determina cual de los dos caminos alternativos se debe seguir; normalmente tiene dos salidas- respuestas si o no.

Sirve para enlazar dos partes cualesquiera de un organigrama a traves Conector de un conector de salida y otro en la entrada. En la misma pagina del diagrama

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

23

Conector

Conexin entre dos puntos del organigrama situados en paginas diferentes

Teclado

Entrada de datos desde el teclado

Lneas de Flujo

Direccin del flujo, secuencia en que se realizan las instrucciones

Reglas generales para la elaboracin de diagramas Todo diagrama debe tener un inicio y un fin. Se deben usar solamente lneas de flujo horizontal y/o vertical. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo son conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras. Evitar la terminologa de un lenguaje de programacin o mquina. Utilizar comentarios para que ste sea entendible por cualquier persona que lo consulte. Si el diagrama abarca ms de una hoja es conveniente enumerarlo e identificar de donde viene y a donde se dirige.

Ejercicios Resueltos 1. Leer 2 nmeros enteros y multiplicarlos

Anlisis

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

24

Datos de entrada Datos de salida Proceso Algoritmo 1. 2. 3. 4. 5. inicio leer a, b ma*b escribir (m) fin

primer nmero: segundo nmero: producto: m=a*b

a b m

Diagrama de Flujo
inicio

Leer a, b

ma*b

Escribir (m)

Prueba de escritorio a 4 7 b 5 6 m 20 42

fin

2.

Un vehculo debe dirigirse hacia la ciudad de Guayaquil (450 Km). Leer la distancia recorrida hasta un momento determinado y calcular qu porcentaje del trayecto representa

Anlisis

450 Km

Loja

Guayaquil

Datos de entrada Datos de salida

distancia recorrida:

d r

porcentaje de distancia recorrida:

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

25

Proceso

450 Km ---------------------- 100 % d Km ---------------------- ? %

Algoritmo 1. 2. 3. 4. 5. inicio leer d r d * 100 / 450 escribir (respuesta: , r, %) fin

Diagrama de Flujo

inicio

Leer d

r d * 100 / 450

Escribir (r)

Prueba de escritorio
fin

D 100 250

r 22,2 55,5

3.

En una fraccin el denominador excede en 1 al numerador. Leer un nmero que hay que sumar al numerador para que ste equivalga al duplo del denominador y calcular la fraccin original

Anlisis Fraccin original


n n+1

Fraccin resultante
n+m n+1

Datos de entrada Datos de salida

nmero a sumar al numerador: m fraccin original

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

26

Proceso

n + m = 2 (n + 1) n + m = 2n + 2 n 2n = 2 m -n=2m n=m-2

Algoritmo 1. 2. 3. 4. 5. inicio leer m nm-2 escribir (n, / , n+1) fin

Diagrama de Flujo

inicio

Leer m

nm-2

Prueba de escritorio M 3 10 n 1 8 n+1 2 9

Escribir (n, / , n+1)

fin

4.

Leer un nmero y determinar si es par o impar

Anlisis 5 1 2 2 8 0 nmero: mensaje: 2 4 n nmero par o nmero impar residuo n/2 = 0

Datos de entrada Datos de salida Proceso

verificar si n es mltiplo de 2:

Algoritmo

Diagrama de Flujo

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

27

1. 2. 3.

inicio leer n si (residuo n/2 = 0) entonces escribir (nmero par) caso contrario escribir (nmero impar) fin_si

inicio

Leer n

4.

fin

no

Resid uo n/2= 0

si nmero par

nmero impar

Prueba de escritorio n 5 8 Residuo n/2 1 0 Salida por pantalla nmero impar nmero par

fin

5. Presentar los nmeros comprendidos entre 1 y N

Anlisis Datos de entrada Proceso contador N veces Datos de salida secuencial: c


c1

nmero: escribir

inicio

nmero

Leer N

Algoritmo Diagrama de Flujo 1. inicio


no c <= N

si Escribir c

cc+1

Carrera de DOCENCIA EN INFORMATICA - 2013


fin

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


2. 3. 4. Leer N c1 Mientras (c <= N) hacer Escribir c cc+1 fin_mientras 5. fin

28

Prueba de escritorio N 5 c 1 2 3 4 5 6 1 2 3 4 Salida por pantalla 1 2 3 4 5 1 2 3

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

29

ACTIVIDAD 2

Elabore los diagramas de flujo que representan la solucin a los siguientes problemas: 1. Leer un nmero y calcular el duplo y el cuadrado del mismo 2. Leer una medida en pulgadas y convertirla a centmetros ( 1 pulg = 2.54 cm) 3. Leer el tiempo en minutos empleado por un vehculo en desplazarse desde Loja hasta la ciudad de Catamayo (ubicada a 36 Km de Loja) y calcular la velocidad del mvil 4. Leer un nmero y determinar si es mltiplo de 3. 5. Leer 2 nmeros y dividirlos 6. Leer dos nmeros y determinar si son iguales o no 7. Leer un nmero y presentar el mensaje positivo o negativo segn corresponda. 8. Leer dos nmeros y restar el mayor del menor (la respuesta ser siempre negativa). 9. Leer un nmero y presentar el prximo impar. 10. Leer los coeficientes a,b de una ecuacin de primer grado de la forma ax + b = 0 y calcular el valor de la incgnita x 11. Leer 10 nmeros y calcular el mayor 12. Leer 10 calificaciones y calcular el promedio 13. Leer las edades de 10 personas y determinar cuntos son mayores de edad

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

30

UNIDAD II

PROGRAMACIN ORIENTADA AOBJETOS

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


CONCEPTOS BASICOS DE PROGRAMACION ORIENTADA OBJETOS

31

Para nuestro propsito en general un objeto puede definirse como cualquier cosa, ente o entidad fisica o lgica de informacin. En este sentido todos los elementos materiales o inmateriales pueden clasificarse como objetos. En particular cualquier objeto considerado presenta los siguientes tres elementos: a) Propiedades: Son las caractersticas propias de un objeto, estas propiedades o atributos son los que permiten diferenciar o individualizar un objeto de otro objeto ya sea de la misma o diferente clase o categora. Las propiedades ms generales son forma, color, tamao, peso, etc., pero ya en particular: Chamarra Marca, material, precio, color, tamao, etc Alumno Matricula, nombre, edad, domicilio, etc. Gato Raza, nombre, color, edad, etc. VentanaWindows>Tamano, Color, font, etc. b) Mtodos: Son las conductas o comportamientos apropiados a la naturaleza del objeto. As como las propiedades son el ser (que es) del objeto, los mtodos son el hacer (que hacer) del objeto. Ejemplo de mtodos: Gato > Maullar (), comer (), correr (), saltar(), etc. Alumno> Estudiar (), comer(), asistir clase(), pintear() Cuaderno>Esescrito(), esrayado(), esborrado(), etc. VentanaWindows> Abrir(), cerrar(), maximizar(), etc. c) Eventos: Es la relacin (de varias maneras) que se puede dar entre dos objetos ya sean de la misma o diferente clase. Un evento se manifiesta como un interaccin entre dos objetos, en general al momento de la relacin al mismo tiempo se dar una reaccin o respuesta por parte de los dos objetos que se manifiestan como una serie, cadena o conjuntos de mtodos propios que se activan o disparan, ejemplo: Evento gato detecta gata gato detecta perro Raton click Windows Relacin Mtodos que se activan detectar maullar(), correr(), oler() detectar bufar(), saltar(), correr() click maximizar(), cerrar()

maestro ensena alumno Ensenar pasar lista(), preguntar(), etc Raton dblclk Windows dblclk minimizar(), etc Un Programa en visual c# 2010 se puede considerar como un conjunto de una o ms formas o ventanas, donde cada una de ellas contiene un conjunto de objetos, componentes o controles. Un componente o propiamente dicho un control es un objeto que se especializa en una tarea especfica por ejemplo hay controles especializados en desplegar textos o mensajes, otros controles se especializan en desplegar imgenes o videos, otros en manipular directorios o archivos en disco, etc.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

32

Pero en general tanto las formas como los controles no dejan de ser objetos en programacin y por tanto tienen sus propiedades, mtodos y estn sujetos a eventos. ENTORNO DE VISUAL C # A continuacin se detallan las herramientas y ventanas ms importantes de Visual C#. Las ventanas de la mayora de estas herramientas se pueden abrir desde el men Ver. El Editor de cdigo, para escribir cdigo fuente. El compilador de C#, para convertir el cdigo fuente de C# en un programa ejecutable. El depurador de Visual Studio, para probar el programa. El Cuadro de herramientas y el Diseador, para desarrollar rpidamente interfaces de usuario con el mouse. El Explorador de soluciones, para ver y administrar archivos de proyecto y configuraciones. El Diseador de proyectos, para configurar opciones del compilador, rutas de implementacin, recursos, etc. La Vista de clases, para navegar por el cdigo fuente segn los tipos, no los archivos. La ventana Propiedades, para configurar propiedades y eventos en los controles de la interfaz de usuario. Cmo expone las herramientas el IDE Puede interactuar con las herramientas a travs de ventanas, mens, pginas de propiedades y asistentes en el IDE. La siguiente imagen representa el IDE bsico:

Se tiene ahora la siguiente pantalla que contiene el OBJETO PRINCIPAL DEL PROGRAMA ( FORM1 o VENTANA).

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

33

Sus elementos basicos son: 1.- La barra de menus (file, edit , etc.); 2.- La barra de herramientas(icono de grabar, run, forma, etc.) 3.- La barra o paleta de componentes (TOOLBOX) 4.- La ventana de Propiedades (Windows Properties) 5.- El Administrador de proyectos (Solution Explorer) 5.- La forma activa o principal (Form1) Es sobre esta ltima forma o ventana donde se construir el programa y esta forma se convertir en ventana al momento de ejecutarse el programa. Es decir ser la primera ventana que el usuario ve al momento de ejecutarse el programa, su nombre es Form1. Esta forma o ventana es un objeto de Visual C# 2010, y como todos los objetos de C# y del universo, la forma o ventana tiene asociados propiedades y eventos.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

34

Propiedades son todas las caractersticas particulares que diferencian un objeto de otro objeto, las propiedades o caractersticas ms comunes son forma, tamao, color, etc., para objetos en Visual C# 2010, estas propiedades se modifican o individualizan usando la ventana de propiedades, que es la parte del compilador que las contiene.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

35

Recordar que es en este ventana de propiedades es donde se podr modificar las propiedades del objeto, en este ejemplo Form1 o VENTANA. Pero recordar tambin que la ventanilla de propiedades es quien contiene el icono de EVENTS (usar el icono para activar las propiedades y usar el icono para ver los eventos que puede detectar form1), que como ya se explic en el tema anterior son los EVENTOS quienes contendrn el CODIGO DEL PROGRAMA. Tambin se pueden modificar las propiedades dentro de un programa, usando instrucciones apropiadas, mismas que llevan el siguiente formato: Nomobjeto.propiedad = nvovalor; ej.; Form1.BckColor = Pink; y existen muchos colores ver la opciones en el inspector de objetos. Eventos, son todos aquellos sucesos de carcter externo que afectan o llaman la atencin del objeto, para estos casos la forma o ventana: Debe tener capacidad de detectar el evento An ms importante debe tener capacidad de reaccionar y emitir una respuesta, mensaje o conducta apropiada al evento detectado. Evento es por ejemplo que otro objeto llamado humano, pulse el objeto tecla ESC, o haga click derecho con el objeto ratn en alguna parte de la ventana , etc. , es en estos casos, cuando la ventana detecte un evento de estos, la propia forma deber responder de manera apropiada. Esta respuesta no es automtica, sino son la serie de instrucciones del lenguaje (o programa) que los ingenieros de software disean (o programan), en otras palabras son los eventos quienes contendrn los programas. Es tambin la ventana de propiedades quien contiene todos los posibles eventos asociados a la forma.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

36

Para nuestros primeros programas en visual C# 2005 de Form1 solo se usaran propiedades sencillas como color font etctera y no se usaran sus eventos. Un programa o problema de informacin en visual C# 2010, no es ms que una o ms formas o ventanas, donde cada una de ellas contiene elementos u objetos especiales llamados objetos o componentes, dichos componentes visual C# 2005 los proporcionara a travs de la paleta de componentes (TOOLBOX) Observar que esta caja de componentes TIENE VARIAS CATEGORIAS con su propio grupo de componentes que se irn usando a lo largo del curso. An ms toda la interface que se quiera manejar con el usuario del programa no consistir ms que de una coleccin de componentes agrupados en una forma o ventana. Para incorporar un componente a una forma solo basta seleccionarlo con un click derecho en su icono y luego ARRASTRARLO hasta el lugar donde quedara dentro de Form1.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

37

Tambin estos controles o componentes son objetos de Visual C# 2010 y como tales tambin tienen asociados propiedades y eventos tales como los tiene la forma principal, solo que existen pequeas variaciones en cuanto a sus propiedades y eventos propios con respecto a Form1. Recordar adems, que es LA VENTANA O PAGINA DE PROPIEDADES en primera instancia quien permite asociar o modificar propiedades especficas tanto a una forma como a un componente. Ya en segunda instancia las propiedades de formas y componentes se pueden modificar tambin directamente dentro de un programa, usando instrucciones como las ya descritas en prrafos muy anteriores. Analizaremos ahora los primeros componentes, que tambin se usaran para construir o disear nuestro primer programa en visual C# 2005 de tipo Visual o de Ventanas.

ACTIVIDAD 3

Realizar un cuadro sinptico de los conceptos de la programacin orientada a objetos: Objeto, clase, herencia, paquete, interfaz, mtodo.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

38

UNIDAD IIII

PROGRAMACIN EN VISUAL C #

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

39

ESTRUCTURAS DE SECUENCIAS La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente Programa para calcular la superficie de un crculo:

namespace Superficiecirculo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TxtRadio.Text = ""; TxtResultado.Text = ""; TxtRadio.Focus(); } private void Btnsalir_Click(object sender, EventArgs e) { this.Close(); } private void btnCalcular_Click(object sender, EventArgs e)

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


{ double radio, superficie; radio = Convert.ToDouble (TxtRadio.Text); superficie = (radio * radio) * 3.1416; TxtResultado.Text = superficie.ToString (); }

40

ESTRUCTURAS CON IF
Es la instruccin condicional ms usada en los diversos lenguajes de programacin, su formato completo y de trabajo en VISUAL C# 2005 es: cargar o asignar la variable de condicin; if (condicin) {Grupo cierto de instrucciones;} else { grupo falso de instrucciones; }; Primero.- Observar donde van y donde no van los puntos y comas; Segundo.- La condicin va entre parntesis;

Tercero.- Si un if no ocupa un grupo falso de instrucciones entonces no se pone el else y la llave antes del else si terminara con punto y coma. Ejemplo: Codigo private void button1_Click(object sender, EventArgs e) { if (Int32.Parse(textBox1.Text) >= 3000)

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


{ MessageBox.Show("RICO"); } else { MessageBox.Show("POBRE") ; };

41

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

42

CONDICIONES COMPUESTAS

En muchas ocasiones es necesario presentar ms de una condicin para su evaluacin al computador. Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicion compuesta se define como dos o ms condiciones simples unidas por los llamados operadores logicos. Los operadores logicos que visual c# 2010 reconoce son:

OPERADOR SIGNIFICADO && Y LOGICO O LOGICO

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

43

NEGACION

Para que el computador evalue como CIERTA una condicin compuesta que contiene el operador logico &&, las dos condiciones simples deben ser ciertas. Para que el computador evalue como CIERTA una condicin compuesta que contiene el operador logico ||, basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o ms condiciones simples est dada por la relacion donde n = cantidad de condiciones, la primera mitad de ellos empieza en cierto y la segunda

mitad en falso. Ejemplo, si formamos una condicin compuesta con dos condiciones simples y el operador lgico y, la cantidad total de casos posibles serian Tabla de verdad con y , y se puede construir la siguiente tabla de verdad.

IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C F F F

La evaluacin final, se obtiene usando la regla anteriormente descrita para una condicin compuesta, que contiene el operador Y. Esta tabla significa lo siguiente: 1.- Cualesquiera que sean la cantidad de datos procesados, siempre caer en uno de estos cuatro casos generales. La tabla de verdad para una condicin compuesta con O es la siguiente:

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

44

IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C C C F

Construir una tabla de verdad para una condicin compuesta de tres o ms condiciones simples es tambin tarea sencilla, solo recordar que;

1.- La cantidad posible de casos es empiezan con Falso.

casos posibles, la mitad empiezan con Cierto y la otra mitad

2.- Para evaluar esta condicin triple primero se evalan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evala el resultado parcial contra la ltima condicin y ultimo operador para obtener la evaluacin final. Ejemplo una condicin compuesta de tres condiciones simples, donde el primer operador lgico es el y y el segundo operador lgico es el O, dara la siguiente tabla de verdad.

Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra C C C C F F F C C F F C C F C C F F F F F C F C F C F C C C C F C F C

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

45

Programa ejemplo;

private void button1_Click(object sender, EventArgs e)

if ( (Int32.Parse(textBox1.Text) <= 30 ) && (textBox2.Text == "H"))

{ label3.Text ="Muchacho Joven"; }

else

{ label3.Text = " Profesor" ; };

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

46

INSTRUCCION SWITCH Tambin existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condicin compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instruccin SWITCH. Esta instruccin es una instruccin de decisin mltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional. El formato de esta instruccin es el siguiente; Capturar o asignar variable de condicin; Switch(var OPCION) { case const1: instruccion(es); break; case const2: instruccion(es); break; case const3: instruccion(es); break; default: instruccion(es);break; };

private void button1_Click(object sender, EventArgs e)

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

47

switch (textBox1.Text)

case "a":

label2.Text = "aguila"; break;

case "b": case "B":

label2.Text = "baca"; break;

case "c":

int alfa = 5;

string temp = alfa.ToString() + " caballos";

label2.Text = temp;

break;

default:

label2.Text = "no hay"; break;

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

48

Observar el caso b y recordar cmo se pueden usar ms de dos case con un solo break, sorry por lo de BACA pero el nico animalito que me acorde fue el BURRO y luego mis alumnos se sienten aludidos y ofendidos. En el caso C recordar que cada case puede llevar un conjunto de instrucciones que se ejecutaran hasta que el compilador encuentre un break; Observar en esta caso C como se unen dos o ms strings, usando el signo + .

Corrida:

ACTIVIDAD 4

Elaborar un programa en visual C # que calcule el aumento que deben recibir los empleados de una determinada empresa. El porcentaje de aumento se debe realizar en funcin de la categora del empleado como se observa en el cuadro

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

49

categora A B C D

Aumento 20% 15% 10% 5%

LISTBOX Y COMBOBOX Existen muchas ocasiones en donde el usuario del programa tiene que proporcionar datos que provienen de un conjunto finito y muy pequeo de posibles respuestas esto significa que cada vez que se ejecute el programa el usuario estar proporcionando las mismas respuestas. Ejemplo de esta clase de datos, son por ejemplos Municipio en BC las posibles respuestas solo son (Tecate, Tijuana, Mexicali, Ensenada, Rosarito), otro ejemplo es Sexo (Hombre, Mujer), etc. Para situaciones como esta, existen componentes wincontrols que permiten programar por adelantado las posibles respuestas y el usuario solo debe seleccionar la respuesta apropiada en lugar de tener que escribirla. Estos controles nos permiten definir en primera instancia un conjunto de datos o valores o respuestas asociados a una caja de edicin cualesquiera, as ahora el usuario tendr la oportunidad de seleccionar un dato del conjunto de datos o respuestas ya predefinido. Estos componentes DEBERAN CONSTRUIRSE EN dos partes una parte de encabezado para poner el nombre del grupo de respuestas ( por ejemplo municipios, sexo, etc.) estos los podran poner en label apropiados y acomodados La segunda parte es la lista de opciones o respuestas que se debe cargar al tiempo de ejecucion de la forma como lo muestra el siguiente programa: Programa:

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

50

label1.Text = listBox1.SelectedItem.ToString();

label2.Text = comboBox1.SelectedItem.ToString();

Notas: Se est usando un objeto LINKLABEL, en lugar de BUTTON porque como se observa en la corrida, se pueden usar tambin LIGAS o enlaces tipo WEB. Para cargar las opciones de los LISTBOX y COMBOBOX se deber hacer un click en los () que estn a un lado de la propiedad ITEMS (Collection), esto activara un pequeo editor, donde cada rengln sera una opcin del combobox o listbox y en propiedad TEXT se puede cargar el encabezado del combobox. Ya en cdigo se usa la propiedad SelectedItem que esta apuntando o cargada con el valor o datos seleccionado por el usuario, convertida a string, recuerden que si la ocupan numrica pueden usar el PARSE apropiado para mandarla a una variable numrica. La diferencia en pantalla o ejecucin entre ambos controles, se ve en la corrida, que esta unos prrafos ms abajo. Recordar que estos controles tienen muchas propiedades muy tiles y que se seguirn usando a lo largo del curso. Corrida:

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

51

CHECKBOX Y CHECKEDBOXLIST Estos componentes CheckBox y CheckedBoxList permiten seleccionar una opcion al usuario del programa o tomar una decision directamente en pantalla. La diferencia entre ellos aparte de como se programa el componente, es que checkboxlist permite agrupar mejor sus elementos internos tal como se muestra en las corridas: Ejemplos de uso:

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

52

Observar que dos o mas checkboxs pueden estar seleccionados a la vez. Codigo
private void button1_Click(object sender, EventArgs e)

// CheckBox se tienen que validar uno por uno

if (GATO.Checked) label1.Text = "miauu";

if (PERRO.Checked) label1.Text = "wow";

private void button2_Click(object sender, EventArgs e)

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

53

// checkedlistbox control similar a listbox,

// tambien usa propiedad selecteditem

label2.Text = CARRERA.SelectedItem.ToString();

- Recordar que es mas conveniente asignarles un NAME a todos los componentes que se esten manejando dentro de una FORMA o ventana. CHECKBOX: 1.- La propiedad NAME debera ser diferente en cada checkbox usado tambien se puede agregar una propiedad checked=true para que aparezca ya palomeado o seleccionado el control. 2. Para programar este componente: Solo recordar usar la propiedad checked en codigo y un if por cada checkbox. CHECKEDBOXLIST: 1.- Este control nos permite mejorar la apariencia de la salida del checkbox 2.- Solo agregar un NAME al control y un ITEMS COLLECTION para sus elementos, para programarlo solo usar la propiedad selecteditem. Corrida:

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

54

COMPONENTE RADIOBUTTON Se utiliza para presentar al usuario un conjunto de opciones mutuamente excluyentes entre si es decir, si el usuario selecciona un componente RadioButton todos los dems componentes RadioButton en la forma se desmarcan o deseleccionan solos, es por esta razn que decimos que radio botones son mutuamente excluyentes. Cdigo

rivate void button1_Click(object sender, EventArgs e)

if (AZUL.Checked) label1.Text = "BLUE";

if (VERDE.Checked) label1.Text = "GREEN";

if (ROJO.Checked) label1.Text = "RED";

1.- Tambin pueden usar la propiedad checked=true para que aparezcan seleccionados al cargar el programa. 2.- Si se ocupan varios grupos lgicos de RADIOBUTTON se deber usar panel 3.- Para programarlo usar la misma tcnica que se analiz con CHECKBOX es decir revisar la propiedad checked y un monton de if's ( un if por cada radiobutton). Corrida

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

55

Como se observa checkbox son cajitas con una palomita y radiobutton son circulitos con un puntito negro. Pero su diferencia mas importante es que RadioButton no permite que esten seleccionados dos o ms de ellos a la vez (dentro del mismo grupo o groupname). CICLO WHILE En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca como verdadera en el momento en que la condicin se convierte en falsa el ciclo termina. Su formato general es: Cargar o inicializar variable de condicin; while(condicin) { Grupo cierto de instrucciones; instruccin(es) para salir del ciclo; };

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


Programa

56

private void button1_Click(object sender, EventArgs e)

int reng = 1;

LISTA.Items.Clear();

while (reng <= 10)

LISTA.Items.Add(reng.ToString() + " pato");

reng++;

};

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

57

While puede llevar dos condiciones en este caso inicializar 2 variables de condicin y cuidar que existan 2 de rompimiento o terminacin de ciclo. El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo de instrucciones. La condicin puede ser simple o compuesta. A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada o prueba por arriba porque este ciclo evala primero la condicin y posteriormente ejecuta las instrucciones. CICLO DO WHILE Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evala la condicin; Tambin se le conoce por esta razn como ciclo de condicin de salida. Su formato general es: cargar o inicializar variable de condicin; do { grupo cierto de instruccin(es);

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA


instruccin(es) de rompimiento de ciclo; } while (condicion); Programa

58

private void button1_Click(object sender, EventArgs e)

int reng = 1;

LISTA.Items.Clear();

do

LISTA.Items.Add(reng.ToString() + " perico");

reng++;

} while (reng <= 10);

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

59

Otra diferencia bsica con el ciclo while es que, aunque la condicin sea falsa desde un principio el cuerpo de instrucciones se ejecutara por lo menos una vez. CICLO FOR Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa ms de una vez. Este ciclo es uno de los ms usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o compuesta. Su formato general es: for (inicializacion; condicion; incremento) { instruccion(es); }; En su forma simple la inicializacin es una instruccin de asignacin que carga una variable de control de ciclo con un valor inicial. La condicin es una expresin relacional que evala la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

60

El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo. Se deben separar esos 3 argumentos con punto y coma (;) EJEMPLO

private void button1_Click(object sender, EventArgs e)

int reng;

LISTA.Items.Clear();

for (reng = 1; reng <= 10; reng++)

LISTA.Items.Add(reng.ToString() + " mama");

Se est usando un objeto listbox con NAME=LISTA para procesar el conjunto de datos recordar que listbox, comboboxlist son objetos similares y que pueden almacenar conjuntos de datos, cosa que los textbox y label no permiten. Se est usando la propiedad add de la coleccin items del componente o control listbox (LISTA). Recordar que para encadenar strings en visual c# 2005 se usa el signo + Como dentro del listbox entran y salen puros datos strings la variable numerica reng de tipo entero se esta convirtiendo a string dentro del listbox. Y el metodo items.clear() es porque cuando el usuario usa el click mas de una vez el control listbox los agrega abajo del listbox por eso en cuanto se activa el onclick lo primero que se realiza es limpiar el listbox.

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

UNIVERSIDAD TECNICA DE MACHALA

61

El ciclo for es muy sencillo y no ocupa mucha explicacin, solo empieza en UNO y se va incrementando de UNO en UNO. Corrida: Casos Particulares del ciclo for: 1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso ms general. 2.- Pero el valor inicial puede se diferente de uno, ejemplo; for(x=5;x15;x=x+1){ etc.}; 3.- Incluso el valor inicial puede ser negativo, ejemplo; for (x = -3 ;x 8; x=x+1) { etc.}; 4.- Los incrementos tambin pueden ser diferentes al de uno en uno, ej.; for (x=1; x 20; x=x+3){ etc. }; 5.- Incluso pueden ser decrementos, solo que en este caso, recordar; 5.1.-el valor inicial de la variable debe ser mayor que el valor final. 5.2.-cambiar el sentido de la condicin. ejemplo; for (x= 50 ; x >= 10; x= x-4 ) { etcetera };

Carrera de DOCENCIA EN INFORMATICA - 2013

ING. TITO JAVIER POLO CACAO

You might also like