Programación I
Ing. Auramaria Londoño Cano Universidad del Quindío-Ingeniería Ingeniería Electrónica- Programación I
16/08/2014
1
Introducción Arquitectura de un computador Lenguajes de programación Algoritmos y análisis de problemas Representación de algoritmos Metodología de programación
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
2
No solo los computadores utilizan programas también otros sistemas electrónicos como los cajeros automáticos, robots, carros, aviones etc. En general todos los sistemas basados en microprocesadores, microcontroladores, procesador digital de señales, necesitan programas para poder funcionar por lo que la programación se convierte en herramienta indispensable para todo ingeniero.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
3
Definición de la Informática: La informática trata de la adquisición, tratamiento y transmisión de la información en forma automática mediante computadores. La palabra informática proviene del acrónimo: Informática = Información + Automática
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
4
Información: Tipo de comunicación basada en conocimientos anteriores pero que aporta algo nuevo. La información implica forma y contenido. Proceso: Todo lo que implique un proceso de la forma de presentación de la información o que permita la adquisición (mediante la comunicación con otros) de la misma. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
5
La informática podríamos decir que es el conjunto de disciplinas que llevan a los ordenadores aquellos procesos susceptibles de ser descritos mediante pasos automáticos, aportando los computadores la precisión y velocidad de los mecanismos electrónicos. Las Ciencias de la Computación serían todas aquellas áreas científicas relacionadas con la construcción, verificación y análisis de programas informáticos. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
6
Evolución histórica
El origen de las Ciencias de la Computación se encuentra en el desarrollo de “máquinas programables de propósito general”. Su objetivo inicial fue el resolver problemas esencialmente numéricos mediante tales máquinas.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
7
Ábaco: Es un dispositivo que sirve para efectuar operaciones aritméticas sencillas (sumas, restas y multiplicaciones).
Fig. 1. Ábaco Universidad del Quindío-Ingeniería 16/08/2014 Electrónica- Programación 1
8
Primera calculadora: Wilhelm Schickard diseñó y construyó en 1623 lo que se considera la primera calculadora digital: permitía hacer cálculos automáticos de sumas, restas y, parcialmente automáticos, multiplicaciones y divisiones.
Fig. 2. Primera calculadora Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
9
Máquina analítica: La primera máquina interesante es la “Máquina Analítica” del inglés Charles Babbage (1791–1871), realizada con componentes mecánicos, pero sobre todo programable con un programa cargable y así no dedicada a una única tarea. Babbage propuso dos máquinas: “La Máquina de Diferencias” y “La Máquina Analítica”, ambas computadoras movidas por máquinas de vapor.
Fig. 3. Máquina Analítica Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
10
Simultáneamente Leonardo Torres Quevedo (1852–1936) propuso una máquina electromecánica basada en el modelo de Babbage. En 1928, las tarjetas perforadas se utilizaron para recoger un problema de cálculo astrofísico: tabular las distintas posiciones de la Luna en el cielo.
“Z3” del alemán Konrad Zuse con aritmética binaria (1941) Una máquina debida a Howard Aiken junto con IBM de redes dentadas decimales (1939–1943)
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
11
La idea de almacenar datos y programas en la misma memoria es de John von Neumann (1903–1957), que en 1946 arranca el proyecto „IAS‟, una máquina con lógica binaria paralela y palabra de 40 bits, precursora de actuales computadoras. 1. Hasta 1959. Uso de la electrónica 2. 1959–1964. Aparición de los transistores. 3. 1965–1970. Integración de múltiples transistores y circuitos en los “circuitos integrados”. 4. Microtransistorización. 5. Desarrollo de software „inteligente‟. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
12
Las computadoras están estructuradas según un modelo básico de funcionamiento que describe la interacción que se realiza entre los elementos que la componen. Este modelo es:
Fig. 4. Modelo de un computador Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
13
Tipos de Computador Con base a la forma de representar la información tenemos dos tipos de sistemas:
Analógico: La información está mediante algún mecanismo físico directamente relacionada con la magnitud real externa que se mide. Digitales: Los rangos de valores de la información se cuantizan mediante valores numéricos discretos. Esto es, se miden mediante alguna „escala‟ dando así lugar a valores discretos (dependientes de la precisión de la escala) en números enteros. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
14
Fig. 5. Modelo digital de captación de la información real frente al analógico
Ahora bien, según el criterio de la técnica de construcción, podríamos hablar de computadores de: Lógica cableada: En los que de una manera prefijada por el fabricante, el funcionamiento (los procesos que puede seguir) están „cableados‟, o sea, físicamente fijados en los circuitos. Lógica programable: Los procesos se pueden escribir en la memoria y el computador los sigue, de manera que pueden realizarse distintos tipos de procesos. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
15
Fig. 6. Clasificación más común de los computadores Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
16
La Máquina de Von Neumann: Este modelo tiene varias características clave que se muestran de una manera u otra en todos los sistemas actuales:
1. Una
Unidad de Memoria 2. Una Unidad Central de Proceso 3. Una instrucción 4. Un programa 5. Un Contador de Programa 6. Un lenguaje de programación
Fig. 7. El modelo de Von Neumann esquematizado Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
17
Arquitectura de un computador La arquitectura de un computador dividida en dos partes importantes:
está
Hardware:
Es la que hace referencia a la parte física de un computador.
Software:
Es la que hace referencia a la parte lógica de un computador. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
18
HARDWARE Componentes electrónicos y mecánicos. Unidad Central de Proceso Dispositivos de entrada, salida, almacenamiento, comunicación y cómputo. Memoria
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
19
Unidad Central de Proceso
Universidad del Quind铆o-Ingenier铆a Electr贸nica- Programaci贸n 1
16/08/2014
20
Dispositivos
Universidad del Quind铆o-Ingenier铆a Electr贸nica- Programaci贸n 1
16/08/2014
21
Tipos de memoria RAM (Random Access Memory): Memoria de escritura y lectura. El contenido solo se mantiene mientras el computador está encendido. ROM (Read Only Memory): Memoria de solo lectura, es permanente y no se afecta por el encendido o apagado del computador.
Caché: Memoria de acceso muy rápido, usada como puente entre la CPU y la memoria RAM, para evitar las demoras en la consulta de la memoria RAM. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
22
Elementos que pueden estar en dos estados (prendidos o apagados).
El sistema de numeración binario: representación de este tipo de datos. Utiliza dos símbolos el 1 y el 0.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
23
Cada 1 en un número binario representa potencia de 2 según su posición
Ejemplo: El número binario 100110 representa el valor 38
1
0
0
1
1
0
25
24
23
22
21
20
una
1*32 0*16 0*8 1*4 1*2 0*1 =38 Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
24
Unidad básica de información: BIT que corresponde a un único dígito binario (puede tomar los valores 1 o 0).
BYTE:
conjunto de 8 bits. 256 valores diferentes: desde el 00000000 (0 en decimal) al 11111111 (255 en decimal). 1 Kilo Byte = 210 Bytes = 1024 Bytes 1 Mega Byte = 210 KBytes = 220 Bytes = 1048576 Bytes 1 Giga Byte = 210 MBytes = 230 Bytes 1 Tera Byte = 210 GBytes = 240 Bytes Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
25
Enteros Son representados utilizando 2, 4 u 8 bytes. 2 bytes: rango(0 - 65536) enteros sin signo. rango(-32767 - 32768) enteros con signo.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
26
Reales Son representados utilizando dos esquemas:
Punto
Flotante: Real representado como un entero y un byte adicional que indica la posición del punto. Punto Fijo: Real representado como una mantisa y un exponente; que son representados como enteros.
12345.6789 es representado como: Mantisa = 1.23456789 Exponente =104 pues 1.23456789*104= 12345.6789 Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
27
Alfanuméricos: Representados en codificación ASCII, se asigna a cada carácter un valor numérico representado por un byte.
Ejemplo: el carácter „A‟ mayúscula es representado por el byte 01000001 (65 en decimal), la letra „B‟ mayúscula por el byte 66 en decimal y así sucesivamente.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
28
Existe
un código ASCII para cada carácter representable (lista utilizada en los Laboratorios), algunos ejemplos: Espacio ; 0 * 1 a 9
32 59 48 42 49 97 57 Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
29
SOFTWARE
Conjunto
de instrucciones que le dicen al hardware que hacer. Conjunto de programas o procedimientos que determinan las acciones de la máquina, es todo lo concerniente a la programación. El software de un sistema de información está formado por los datos, los programas de ingreso, actualización e informe de resultados y los procedimientos manuales y por máquina.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
30
Lenguaje Alto Nivel
Lenguaje Lenguaje Ensamblador Maquina
Hardware
Sistema Operativo
Aplicaciones
Herramientas Universidad del Quind铆o-Ingenier铆a Electr贸nica- Programaci贸n 1
16/08/2014
31
Software
encargado recursos del sistema.
de
administrar
los
Ofrece
un conjunto de comandos a los humanos, para interactuar con la máquina.
Puede
ser escrito en lenguaje de alto nivel, en lenguaje ensamblador y/o en lenguaje máquina. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
32
Un lenguaje de programación es una notación para escribir programas, a través de los cuales podemos comunicarnos con el hardware y dar así las órdenes adecuadas para la realización de un determinado proceso. Un lenguaje viene definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
33
Lenguajes: Declarativos: - Funcionales. - Lógicos. Imperativos: - Inestructurados. - Modulares. - Orientados a objeto. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
34
Periodo 1950 – 1955
1956 - 1960
1961 - 1965
1966 - 1970
1971 - 1975
1976 – 1980
1980
Influencias Ordenadores primitivos
Lenguajes Lenguajes ensamblador. Lenguajes experimentales de alto nivel
Ordenadores pequeños, caros y lentos Cintas magnéticas. Compiladores e intérpretes Optimización del código. Ordenadores grandes y caros Discos magnéticos Sistemas operativos Lenguajes de propósito general.
FORTRAN ALGOL 58 y 60 COBOL LISP FORTRAN IV COBOL 61 Extendido ALGOL 60 Revisado APL (como notación sólo) PL/I FORTRAN 66 (estándar) COBOL 65 (estándar) ALGOL 68 SIMULA 67 BASI C APL/360
Ordenadores de diferentes tamaños, velocidades, y costes. Sistemas caros de almacenamiento masivo de datos. Sistemas operativos multitarea e interactivos. Compiladores con optimización. Lenguajes estándar, flexibles y generales. Micro ordenadores. Sistemas pequeños y baratos de almacenamiento masivo de datos. Programación estructurada. Ingeniería del software. Lenguajes sencillos. Ordenadores baratos y potentes. Sistemas distribuidos. Programación interactiva. Abstracción de datos. Programación con fiabilidad y fácil mantenimiento. Ordenadores más baratos y potentes. Mayor abstracción de datos. Menor costo de memorias Programación Orientada o Objetos
PASCAL COBOL 74 PL/I ADA FORTRAN 77 PROLOG C SmallTalk OOCOBOL C++ Ojective C Object Pascal (Delphi) Visual Basic
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
35
Único lenguaje que entiende el hardware (máquina). Específico para cada hardware (procesador, dispositivos). Usa exclusivamente el sistema binario. Programa: almacenado en memoria, contiene instrucciones y datos.
EJEMPLO 0000 0001 1000 1001 0011 1010 0111 0100 1110 1001
1010 1001 1001 0111 0010
0001 1010 1100 0000 0000
01 A1 89 9A 3A 9C 74 70 E9 20
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
36
Software, generalmente escrito en lenguaje de máquina, capaz de traducir de lenguaje ensamblador a lenguaje de máquina.
Usa mnemónicos para codificar las operaciones. Los datos y/o
direcciones son codificados generalmente como números en sistema hexadecimal. Es específico (aunque no único) para cada lenguaje de máquina.
EJEMPLO INICIO: ADD MOV CMP JE JMP FIN : END
B, 1 A, E A, B FIN INICIO
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
37
Es un lenguaje basado en una estructura gramatical para codificar estructuras de control e instrucciones.
Cuenta con un conjunto de palabras reservadas, para codificar estructuras de control e instrucciones.
Permite el uso de símbolos aritméticos y relacionales.
COMPILADORES e INTERPRETES: software capaz de traducir de un lenguaje de alto nivel al lenguaje ensamblador específico de una máquina.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
38
Objetivos
Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc. Ej: FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
39
Software que le permite al computador realizar una tarea específica y con el cual no se puede construir otro software. Ejemplos: procesadores de texto como WORD, las hojas electrónicas como EXCEL.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
40
Es un programa que presenta un ambiente en el que, empleando un lenguaje de programación, se puede desarrollar nuevo software. Ejemplos: ambientes integrados de desarrollo como DevC++, Visual C++, en los que se emplea el lenguaje C++.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
41
Un algoritmo no es más que una secuencia de pasos que, seguidos uno a uno, permiten resolver un problema. Hay que tener en cuenta que un buen algoritmo debe ser legible, correcto, modular, eficiente, estructurado y no ambiguo. Además debe procurar ser ejecutado en el menor tiempo posible.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
42
Se tiene un problema cuando se desea encontrar uno o varios objetos desconocidos (ya sean estos números, símbolos, diagramas, figuras, u otras cosas), que cumplen condiciones o relaciones, previamente definidas, respecto a uno o varios objetos conocidos.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
43
Solucionar
el problema es encontrar los objetos desconocidos.
Para
solucionar un problema se debe determinar de manera clara y concisa: cuáles son los objetos conocidos, las condiciones y de que tipo son los objetos desconocidos.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
44
1. Compresión del problema .
2. Encontrar conexiones con problemas replantearse el problema de otra manera.
anteriores,
3. Llevar a cabo un plan, demostrar que los pasos encontrados son los correctos. 4. Comprobar la solución obtenida demostrando que son válidos los algoritmos empleados y que son factibles para resolver otro problema. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
45
Partición: reducción en partes más pequeñas. Analogías: similitudes con otros problemas.
Para partir un problema este debe de estar compuesto de varias partes independientes conceptualmente y reconocibles.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
46
Tipos de problemas
Problemas solubles: Si se sabe de antemano que existe una solución para él.
Problemas insolubles:
Si se sabe que no existe una
solución para él.
Problemas indecidibles: Si no se sabe si existe o no existe solución algorítmica para él.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
47
Un robot debe trasladar una pila (montón) de cajas desde un punto A hasta un punto C usando, si lo requiere, un punto intermedio B. Las cajas inicialmente están todas en el punto A, ordenadas como muestra la siguiente figura. En cada traslado, el robot sólo puede tomar una caja que esté en la cima de un montón y llevarla a uno de los otros dos puntos. Además, en ningún momento puede poner una caja sobre otra más pequeña. Mirando la figura, ¿cómo puede el robot pasar las tres cajas apiladas en el lugar A, al lugar C.?
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
48
Una partícula se mueve en el espacio de manera aleatoria, si en el instante de tiempo t se encuentra en la posición x, ¿cuál será la posición exacta de dicha partícula 10 segundos después?
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
49
Ejemplos Problemas Indecidible
Universidad del Quind铆o-Ingenier铆a Electr贸nica- Programaci贸n 1
16/08/2014
50
Secuencia bien definida y finita de tareas, cada una de las cuales se puede realizar con una cantidad de recursos finitos.
Universidad del Quind铆o-Ingenier铆a Electr贸nica- Programaci贸n 1
16/08/2014
51
Precisión
Hay un orden preciso en el cual deben ejecutarse las tareas que conforman el algoritmo.
De finitud o Determinismo Todas las veces que se realicen las tareas o pasos de un algoritmo, con las mismas condiciones iniciales, se deben obtener resultados idénticos.
Finitud
El algoritmo debe terminar en algún momento y debe usar una cantidad finita de recursos.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
52
Estructura de un Algoritmo Datos
Instrucciones
Estructuras de control
Para almacenar información: datos de entrada, de salida o intermedios.
Las acciones o procesos que el algoritmo realiza sobre los datos.
Las que determinan el orden en que se ejecutarán las instrucciones del algoritmo.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
53
Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de programación!!), ¿Que debe hacer el estudiante?
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
54
1. Dormir hasta que suene el despertador (o lo llame la mamá). 2. Mirar la hora. 3. Hay tiempo suficiente? 3.1. Si, entonces
3.1.1. Bañarse. 3.1.2. Vestirse. 3.1.3. Desayunar.
3.2. No, entonces
3.2.1. Vestirse. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
55
Las representaciones más conocidas son:
Diagramas de flujo. Pseudo-código.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
56
Esquema de representación gráfico algoritmos.
Usa elementos gráficos como rectángulos y rombos.
Se pueden usar operaciones matemáticas.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
de
16/08/2014
57
A, B, C
Universidad del Quind铆o-Ingenier铆a Electr贸nica- Programaci贸n 1
16/08/2014
58
Esquema
de representación de algoritmos que usa un subconjunto del lenguaje natural del diseñador de algoritmos.
Elimina
posibles ambigüedades empleando una notación que aunque libre es más restringida que la del lenguaje natural.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
59
leer A, B, C si A>B si A>C Mayor A sino Mayor C fin_si
sino si B>C
Mayor B sino Mayor C fin_si fin_si escribir Mayor Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
60
Problema
Metodología
Programa
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
61
Análisis del problema. Especificación del problema. Diseño del algoritmo. Prueba del algoritmo y refinamiento. Codificación. Prueba y verificación. Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
62
Entender de manera clara el problema que se esta resolviendo.
Esta fase de la metodología concuerda con el proceso de identificación de objetos conocidos, objetos desconocidos y condiciones usado en la sección de problemas.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
63
Descripción clara y precisa de: ◦ ◦ ◦
Las entradas del problema. Las salidas del problema. Las condiciones, es decir la dependencia que mantendrán las salidas obtenidas con las entradas recibidas.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
64
Problema:
Construir un algoritmo que determine el mayor de tres números enteros.
Especificación:
Entradas: entrada) de tipo entero.
A,B,C
(números
de
Salidas: Mayor de tipo entero. Condiciones: A, B y C.
Mayor debe ser el valor máximo de
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
65
Es la fase en la que se construye el algoritmo que permitirá problema.
encontrar
la
solución
al
La
forma adecuada de realizar este proceso es subdividirlo.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
66
Proceso de seguimiento del algoritmo para
verificar que cumple con la especificación. Si no se cumple con la especificación se va refinando hasta lograr el objetivo.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
67
Codificación
Proceso en el cual se escribe el algoritmo en un lenguaje de programación, utilizando el editor de la herramienta.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
68
Prueba y Verificación
Proceso en el cual se corrigen los errores de sintaxis y de lógica del programa, hasta lograr que el programa resuelva el problema.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
69
Diagrama de Flujo Representan gráficamente paso a paso todas las instrucciones del programa a codificar reflejando la secuencia lógica de las operaciones necesarias para la resolución del problema. Muestra gráficamente el algoritmo del programa. 1. Debe tener un Inicio y un fin. 2. Deben usarse líneas rectas. 3. Debe diseñarse de arriba abajo y de izquierda a derecha. 4. Debe guardarse la mayor simetría gráfica posible. 5. Deben usarse expresiones independientes de los lenguajes de programación. 6. Deben intentar evitarse los cruces de líneas. 7. Debe utilizarse el mínimo número de instrucciones posible.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
70
Pseudocódigos Es una notación mediante la cual podemos escribir la solución a un problema dado en forma de algoritmo (pasos ordenados) utilizando palabras y frases del lenguaje natural aunque sujetas a determinadas reglas impuestas. • Instrucciones primitivas: (En pseudocódigo se escriben igual pero sin la figura geométrica)
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
71
Pseudocódigos
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
72
Diagramas de Flujo y Pseudocódigos
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
73
Diagramas de Flujo y Pseudocódigos
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
74
Diagramas de Flujo y Pseudocódigos
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
75
Diagramas de Flujo y Pseudocódigos
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
76
Diagramas de Flujo y Pseudocódigos
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
77
Diagramas de Flujo y Pseudocódigos
Algunas convenciones que utilizaremos: • Palabras reservadas en mayúsculas (MOSTRAR, LEER, MIENTRAS, SI, INICIO…). • Variables en minúsculas o sólo con la primera letra en mayúsculas (número, Nombre, valor…). • Textos literales entre comillas dobles (“hola”, “Introduzca su nombre”, “El resultado es:”…). • Números literales sin comillas (1, 34, -23, 4,25…). • Cada carácter suelto o tecla suelta entre comillas simples („a‟, „@‟, „=‟…). • Identación (tabulación) del código para mejor legibilidad.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
78
Diagramas de Flujo y Pseudocódigos
Ejemplo: Realizar el diagrama de flujo y el pseudocódigo de un algoritmo que permita pedir 2 números por teclado y muestre la suma de ellos.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
79
Diagramas de Flujo y Pseudocódigos
Ejemplo: Realizar el diagrama de flujo y el pseudocódigo de un algoritmo que permita pedir 2 números por teclado y muestre la suma de ellos.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
80
Diagramas de Flujo y Pseudocódigos
Ejemplo: diagrama de flujo y pseudocódigo de un algoritmo que solicita un número por teclado al usuario e informa de si el número introducido es negativo (menor que cero) o no.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
81
Diagramas de Flujo y Pseudocódigos
Ejemplo: Diagrama de flujo y pseudocódigo de un algoritmo que solicita un número por teclado al usuario e informa de si el número introducido es negativo (menor que cero) o no.
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
82
Diagramas de Flujo y Pseudocódigos
Ejercicio: Diagrama de flujo y pseudocódigo de un algoritmo que muestra en pantalla 10 veces la cadena de caracteres “hola” usando los 3 tipos de bucles que hemos visto: • Usando un bucle MIENTRAS • Usando un bucle HASTA • Usando un bucle PARA
Universidad del Quindío-Ingeniería Electrónica- Programación 1
16/08/2014
83