contenido p - fcqi.tij.uabc.mxfcqi.tij.uabc.mx/usuarios/cgaxiola/apuntesmp.pdf · palabras...

Download Contenido P - fcqi.tij.uabc.mxfcqi.tij.uabc.mx/usuarios/cgaxiola/ApuntesMP.pdf · Palabras reservadas ..... ... En forma general una expresi n se puede expresar de una de las siguientes

If you can't read please download the document

Upload: lamque

Post on 06-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    Contenido

    Introduccin ..........................................................................................................5

    Conceptos bsicos................................................................................................6

    Proceso.............................................................................................................6

    Algoritmo...........................................................................................................6

    Procedimiento ...................................................................................................7

    Programa ..........................................................................................................7

    Tipos de datos...................................................................................................7

    Numrico .......................................................................................................8

    Alfanumrico..................................................................................................8

    Memoria ............................................................................................................9

    Constante ......................................................................................................9

    Variable .........................................................................................................9

    Identificadores .............................................................................................10

    Expresiones ....................................................................................................10

    Expresiones aritmticas...............................................................................13

    Expresiones relacionales.............................................................................14

    Expresiones lgicas.....................................................................................15

    Ejercicios propuestos ......................................................................................16

    Metodologa para la solucin de problemas .......................................................17

    Definicin del problema...................................................................................17

    Planeacin de la solucin................................................................................18

    Algoritmo.........................................................................................................18

    2

    Pedir datos. .................................................................................................19

    Desplegar datos...........................................................................................20

    Evaluar condiciones.....................................................................................20

    Ejecutar operaciones. ..................................................................................21

    Diagrama de flujo. ...........................................................................................22

    Bloques terminales ......................................................................................23

    Bloques de entrada/salida ...........................................................................23

    Bloques de proceso.....................................................................................24

    Bloques de decisin o condicionales...........................................................24

    Bloques de conexin ...................................................................................25

    Codificacin y edicin......................................................................................26

    Pruebas y depuracin. ....................................................................................27

    Documentacin y Mantenimiento. ...................................................................27

    Problemas secuenciales. ....................................................................................29

    Definicin. .......................................................................................................29

    Caractersticas. ...............................................................................................29

    Ejemplos. ........................................................................................................30

    Ejercicios propuestos ......................................................................................33

    Problemas condicionales. ...................................................................................36

    Definicin ........................................................................................................36

    Problemas condicionales simples ...................................................................36

    Problemas condicionales compuestos ............................................................37

    Problemas condicionales mltiples .................................................................39

  • 3

    Ejercicios propuestos ......................................................................................46

    Problemas repetitivos .........................................................................................51

    Contador .........................................................................................................51

    Acumulador.....................................................................................................52

    Interruptor........................................................................................................53

    Ciclos ..............................................................................................................53

    Ciclo de repeticin por contador ..................................................................53

    Ciclo de repeticin de prueba por arriba......................................................55

    Ciclo de repeticin de prueba por abajo ......................................................55

    Problemas repetitivos simples.........................................................................56

    Problemas repetitivos compuestos .................................................................56

    Ejemplos .........................................................................................................57

    Problemas propuestos ....................................................................................65

    Estructuras dimensionales..................................................................................67

    Vectores..........................................................................................................68

    Matrices...........................................................................................................70

    Ejemplos .........................................................................................................70

    Problemas propuestos ....................................................................................74

    Mdulos ..............................................................................................................76

    Parmetros......................................................................................................78

    Representacin de mdulos............................................................................79

    Pseudocdigo .....................................................................................................84

    Palabras reservadas .......................................................................................84

    4

    Entrada / Salida...............................................................................................84

    Estructuras de control .....................................................................................86

  • 5

    Introduccin

    La metodologa de la programacin le dar al alumno una visin

    ms amplia a la hora de enfrentarse a sus desarrollos. Se conocern

    los distintos enfoques o paradigmas de programacin que existen

    actualmente, principalmente, la programacin imperativa o tradicional,

    en la que se ejecutan las instrucciones en el orden establecido.

    Se conocern y entendern diferentes conceptos necesarios para

    entender la programacin, como son los fundamentos lgicos, el

    concepto de algoritmo como frmula para la resolucin de un

    problema, las diferentes estructuras de datos para almacenar y

    organizar datos y las estructuras de control utilizadas para dirigir la

    ejecucin de un programa. Todos estos conceptos sern necesarios a

    la hora de analizar, disear, implementar, documentar y probar un

    programa.

    Esta obra tiene pseudocdigo enfocado al lenguaje C. El motivo de

    escoger dicho lenguaje es porque en las materias sucesivas ser el

    lenguaje en el que se van a desarrollar la codificacin de los

    programas de computadora, adems de su rigidez, por lo que se

    "obliga" al participante a programar siguiendo una metodologa

    estricta que le har comprender la esencia de la programacin,

    pudiendo aplicar despus los conocimientos adquiridos a otros

    lenguajes invirtiendo un mnimo esfuerzo.

    6

    Conceptos bsicos

    Dentro de la metodologa de la programacin existen algunos

    conceptos que se deben estudiar para apreciar mejor el concepto de

    una metodologa. Estos conceptos son proceso, algoritmo,

    procedimiento y programa. Estos conceptos se explican con detalle en

    las siguientes secciones. Tambin se presentan los conceptos de tipos

    de datos, como numricos y alfanumricos, zonas de memoria, en

    donde se encuentran los conceptos de constante y variable y las reglas

    de los identificadores y las expresiones aritmticas, lgicas y

    relacionales desarrollando algunos ejemplos.

    Proceso

    Es un conjunto de acciones que manipulan informacin a partir de un

    estado inicial (datos de entrada) para obtener un resultado (datos de

    salida).

    PROCESODATOS DE

    ENTRADA

    DATOS DE

    SALIDA

    Algoritmo

    Formalmente se define un algoritmo como un conjunto de pasos,

    procedimientos o acciones secuenciales y detalladas para resolver un

    problema o alcanzar un resultado.

  • 7

    Por ejemplo para leer un libro, se hace de una manera automtica que

    no se da cuenta del procedimiento que se hace para terminar de

    leerlo. Los pasos ms bsicos para leer un libro serian, abrir el libro en

    la primera pgina, leer la primera pgina, dar vuelta a la hoja, leer la

    siguiente pgina, y as sucesivamente hasta terminar de leer el libro y

    cerrarlo.

    Procedimiento

    Tambin llamado subprograma, es una seccin dentro de un programa

    donde se realizan actividades o pasos especficos. Imaginar que la

    operacin de suma en un programa se quiere realizar 10 veces, para

    esto se tendran que hacer 10 sumas dentro de un programa, sin

    embargo, cuando se tiene un procedimiento que hace cualquier suma,

    entonces se llama las veces que sea necesario y as se ahorra tiempo y

    recursos para el problema que se este resolviendo.

    Programa

    El concepto de programa fue desarrollado por Von Neumann en 1946 y

    lo define como un conjunto de instrucciones que sigue la computadora

    para alcanzar un resultado especfico.

    Tipos de datos

    Los datos a procesar por una computadora pueden ser de dos tipos:

    datos numricos y datos alfanumricos.

    8

    Numrico

    Los datos numricos son nmeros enteros y nmeros reales. Los

    nmeros enteros pueden estar precedidos por los signos + o y no

    tienen punto decimal, por ejemplo:

    123 -541 +789 10 78912

    Los nmeros reales pueden estar precedidos por los signos + o y

    tienen punto decimal, por ejemplo:

    3.14159 9.81 -8.124 -7.5

    Alfanumrico

    Los datos alfanumricos son datos de tipo caracter y cadena de

    caracteres. Son datos cuyo contenido puede ser letras, dgitos o

    smbolos especiales (, @, #, $, %, ^, &, etc.) y deben estar entre

    comillas simples () o comillas dobles (). Aunque este tipo de datos

    puede contener nmeros no es posible realizar operaciones aritmticas

    con ellos.

    Un dato de tipo carcter contiene solamente un carcter, por ejemplo

    a # 5 D

  • 9

    Un dato de tipo de cadena de caracteres contiene un conjunto de

    caracteres, normalmente la longitud de la cadena de caracteres es de

    255 caracteres.

    Ejemplos:

    abcde Juan Perez 123-4567

    Memoria

    Las zonas de memoria estn formadas por un nombre para su

    identificacin, y un contenido, el cual ser el dato que se guarda en

    ellas. Por ejemplo, si el contenido es 15 y el nombre de la variable es

    edad, entonces significa que hay una zona de memoria que se llama

    edad cuyo valor es 15.

    Constante

    Son zonas de memoria cuyo contenido no cambia durante la fase de

    procesamiento de informacin.

    Variable

    Son zonas de memoria cuyo contenido cambia durante la fase de

    procesamiento de informacin.

    10

    Identificadores

    Los nombres de estas zonas de memoria se forman respetando las

    siguientes reglas:

    1. El primer carcter debe ser una letra.

    2. Los dems caracteres podrn ser letras, nmeros o guiones; las

    letras no deben estar acentuadas.

    Por ejemplo:

    Suma Num_1 Dato01 nombre EDAD

    Los identificadores deben ser representativos de la funcin que

    cumplen en el procedimiento o programa. Por ejemplo si se va a

    realizar una suma de dos nmeros, los identificadores que se podran

    usar serian Numero1, Numero2 y Suma, por ejemplo.

    Expresiones

    Al conjunto de operadores y operandos que producen un valor se le

    llama expresin. Existen expresiones aritmticas, relacionales y

    lgicas.

    Una expresin esta compuesta por operadores y operandos. Un

    operador es un smbolo o palabra que significa qu operacin se va a

    realizar entre uno o dos valores, llamados operandos. Estos valores

    pueden ser variables o constantes.

  • 11

    Cuando se utilizan variables como operandos se toma el valor de la

    variable y no el nombre que identifica a la variable.

    En forma general una expresin se puede expresar de una de las

    siguientes dos formas:

    Operando1 OPERADOR Operando2

    OPERADOR Operando

    Existen cuatro tipos de operadores: asociativos, aritmticos,

    relacionales y lgicos.

    El nico operador asociativo es el parntesis (), el cual permite indicar

    en que orden deben realizarse las operaciones. Cuando una expresin

    se encentra entre parntesis, indica que las operaciones que estn

    dentro de ellos deben realizarse primero. Si en una expresin se utiliza

    ms de un parntesis se deber proceder primero con los que se

    encuentren ms hacia el centro de la expresin.

    Los operadores aritmticos son operadores que permiten realizar

    operaciones aritmticas entre operandos.

    El resultado que se obtiene al evaluar una expresin aritmtica es un

    nmero. Al evaluar expresiones que contienen operadores aritmticos,

    se respeta una jerarqua en el orden en que se aplican. Es decir, si se

    tiene una expresin aritmtica con al menos dos operadores de

    distinta jerarqua, se deber realizar primero una operacin y luego la

    otra. La siguiente tabla muestra los operadores aritmticos ordenados

    de mayor a menor jerarqua. Los operadores aritmticos son:

    12

    OPERADOR OPERACIN

    ^ Potenciacin

    *, / Multiplicacin, Divisin

    +, - Suma, Resta

    Los operadores relacionales son operadores que permiten compara dos

    valores, sean numricos o alfanumricos. El resultado obtenido es un

    valor de verdad, que puede ser V (verdadero) o F (falso). La

    comparacin entre un dato numrico y un dato alfanumrico no puede

    llevarse a cabo. Los operadores relacionales son los siguientes:

    OPERADOR OPERACIN

    = Igual que

    o >< Diferente que

    < Menor que

    > Mayor que

    = Mayor o igual que

    Los operadores lgicos son operadores que permiten realizar las

    operaciones lgicas de conjuncin, disyuncin y negacin. El resultado

    obtenido es un valor de verdad que puede ser V (verdadero) o F

    (falso). Los operadores lgicos se muestran a continuacin, indicando

    la jerarqua de mayor a menor:

    OPERADOR OPERACIN

    NOT Negacin

    AND Conjuncin

    OR Disyuncin

  • 13

    Recordar que la negacin cambia el valor verdadero por el falso, y

    viceversa. En la conjuncin se necesitan dos valores verdaderos para

    producir otro verdadero; en cualquier otro caso se produce un valor de

    falso. En la disyuncin, con cualquiera de los dos valores de los

    operadores, que sea verdadero, se obtiene un resultado de verdadero;

    en caso contrario el valor ser falso.

    Expresiones aritmticas

    Para resolver una expresin aritmtica se deben seguir las siguientes

    reglas:

    1. Primero se resuelven las expresiones que se encuentran entre

    parntesis.

    2. Se procede aplicando la jerarqua de operadores. En caso de que

    haya dos operadores con la misma jerarqua se procede de

    izquierda a derecha.

    Ejemplo 1.

    Resolver la siguiente expresin aritmtica 3*(4+7^2) +3/1-45

    3*(4+7^2) +3/1-45

    3*(4+49) +3/1-45

    3*53 +3/1-45

    159 +3/1-45

    159 +3-45

    162-45

    117

    14

    Ejemplo 2.

    Resolver la siguiente expresin aritmtica 2+4*((6+3)+7*2^1^2)-

    25^(1/2)

    2+4*((6+3)+7*2^1^2)-25^(1/2)

    2+4*(9+7*2^1^2)-25^(1/2)

    2+4*(9+7*2^2)-25^(1/2)

    2+4*(9+7*4)-25^(1/2)

    2+4*(9+28)-25^(1/2)

    2+4*37-25^(1/2)

    2+4*37-25^0.5

    2+4*37-5

    2+148-5

    150-5

    145

    Expresiones relacionales

    El resultado de una expresin con operadores relacionales es

    verdadero o falso.

    Las reglas para resolver las expresiones relacionales son las

    siguientes:

    1. Se resuelven primero los parntesis.

    2. Se encuentran los valores de verdad de las expresiones.

    3. Se aplica la jerarqua de operadores lgicos. En caso de haber

    dos operadores iguales se procede la operacin de izquierda a

    derecha.

  • 15

    Expresiones lgicas

    Las reglas para resolver las expresiones lgicas son las siguientes:

    1. Se resuelven primero los parntesis.

    2. Se encuentran los valores de verdad de las expresiones

    relacionales.

    3. Se aplica la jerarqua de operadores lgicos. En caso de haber

    dos operadores iguales se procede la operacin de izquierda a

    derecha.

    Ejemplo 3.

    Resolver la siguiente expresin lgica relacional (5^2) > (16+3)

    (5^2) > (16+3)

    25 > (16+3)

    25 > 19

    V

    Ejemplo 4.

    Resolver la siguiente expresin lgica relacional (7*3^2) > 21 OR

    ((6+5)*3) < (6+5*3)

    (7*3^2) > 21 OR ((6+5)*3) < (6+5*3)

    (7*3^2) > 21 OR (11*3) < (6+5*3)

    (7*9) > 21 OR (11*3) < (6+5*3)

    63 > 21 OR (11*3) < (6+5*3)

    63 > 21 OR 33 < (6+5*3)

    63 > 21 OR 33 < (6+15)

    63 > 21 OR 33 < 21

    V OR 33 < 21

    V OR F

    V

    16

    Ejercicios propuestos

    Aplicando la jerarqua de operadores, encontrar el valor de cada una

    de las siguientes expresiones:

    1. 4 + 1 * 5^2 1

    2. 9 / 3 + 4^2 5 * 1 + 9 / -2 + 3

    3. 5 / 2 + 3 4 * 5 / 2

    4. (4 + 1) * 5^2 1

    5. 17 / 2 + 3^2^2 2 * 2 / 2

    Aplicando la jerarqua de operadores, encontrar el valor de verdad de

    cada una de las siguientes expresiones: Para el problema 1 los valores

    para las variables son: M = 8, N = 9, R = 5, S = 5, T = 4

    1. NOT ((M > N AND R > S) OR (NOT (T < V AND S > M)))

    2. (3 * 2^2 4 / 2 * 1) > (3 * 2^-4 / 2 * 1) AND (5 > 9 / 3)

    3. (3 >= 3 OR 5 5) AND NOT (15 / 5 + 2 5)

    4. NOT (NOT ((3 (-3)) * 2 > (3 (-3) *2) OR 1^3 * 2 > 6))

    5. (3 >= 4 AND 5 > 3 AND 3 > 3) OR NOT (4 4 OR 6 >= 7)

  • 17

    Metodologa para la solucin de problemas

    Se sabe que una computadora es un aparato electrnico que ejecuta

    tareas de una manera veloz y precisa, pero no es capaz de razonar

    autnomamente. Por eso la persona que instruir a la computadora es

    la que debe razonar el problema. Si la persona la instruye correcta o

    incorrectamente sta har de igual manera las tareas que se le

    encomienden.

    La persona capaz de instruir a la computadora usando algn lenguaje

    computacional, es llamado programador; se le llama programa al

    conjunto de instrucciones escritas en un lenguaje computacional.

    La prctica debe hacerse mediante una serie de pasos, llamados

    metodologa para la solucin de problemas por medio de computadora,

    los cuales se enumeran a continuacin:

    1. Definicin del problema

    2. Planeacin de la solucin

    3. Algoritmo

    4. Diagrama de flujo

    5. Codificacin y edicin

    6. Pruebas y depuracin

    7. Documentacin y mantenimiento

    Definicin del problema.

    La definicin del problema se centra en la elaboracin de un texto que

    permitir saber qu es lo que se pretende solucionar, y proporcionar

    informacin til para el planteamiento de la solucin.

    18

    Cabe mencionar que no siempre ser til la informacin que se

    proporcione para poder solucionar el problema.

    Planeacin de la solucin.

    En este paso se debe entender por completo el problema y dejar en

    claro cul es la informacin til que se da, qu otra hace falta y, con

    base en esto, determinar la mejor solucin. Si hiciera falta

    informacin, en esta fase del problema se podra determinar que el

    problema no tiene solucin.

    En esta fase tambin se define formalmente lo que se debe entregar

    como resultado. Dado que esta informacin, una vez resuelto el

    problema, saldr de la computadora, se puede decir que es una salida

    de informacin. De igual manera, la informacin adicional que se

    necesite pedir, constituye una entrada de informacin hacia la

    computadora.

    Algoritmo.

    Como se mencion en el capitulo anterior, un algoritmo es una serie

    de pasos ordenados, encaminados a resolver un problema. Para

    establecer esta serie de pasos se requiere de una reflexin previa del

    problema dada por el paso anterior (planeacin de la solucin).

    Adems, se podr observar que aunque en el paso anterior ya se sabe

    cmo obtener la solucin del problema, nada se dice de qu hacer

    antes y despus de aplicar la solucin.

  • 19

    Las acciones que se pueden llevar a cabo en un algoritmo son las

    siguientes: pedir datos, desplegar datos, evaluar condiciones y

    ejecutar operaciones. A continuacin se explica el uso de cada una de

    ellas.

    Pedir datos.

    Lo que una computadora puede pedir son nmeros o palabras, que

    automticamente son asignados a una zona de memoria de la

    computadora, llamada como el programador quiere nombrarle. Puede

    ser una pequea zona llamada nmero y que contenga al nmero 5, o

    puede ser una zona menos pequea llamada oracin que contenga la

    frase Estoy aprendiendo computacin. A estas zonas de memoria en

    donde se guardan datos se les denomina variables.

    Formato de peticin de datos:

    PEDIR variable

    Ejemplos:

    PEDIR costo

    PEDIR edad

    PEDIR nombre

    20

    Desplegar datos.

    Una computadora puede mostrar, por pantalla o impresora, nmeros o

    palabras que, en su conjunto, den el resultado esperado.

    Probablemente estos nmeros o palabras estn almacenados en

    variables creadas durante la ejecucin del programa.

    Formato del despliegue de datos:

    DESPLEGAR mensaje

    DESPLEGAR variable

    DESPLEGAR mensaje/variable

    Ejemplos:

    DESPLEGAR El valor excede a 200 000 pesos

    DESPLEGAR edad

    DESPLEGAR El nombre de la persona es: + nombre

    Evaluar condiciones.

    La computadora es capaz de comparar nmeros para saber si alguno

    es mayor, menor o igual que otro; tambin es capaz de comparar

    palabras para saber si alguna es ms extensa o tiene precedencia

    alfabtica sobre la otra, etctera. El propsito de evaluar condiciones

    es decidir qu accin es la que va a seguir a continuacin en caso de

    que una condicin se cumpla o no.

  • 21

    Formatos para evaluar condiciones:

    SI condicin ENTONCES

    acciones_V

    DE_OTRA_FORMA

    acciones_F

    FIN_SI

    SI condicin ENTONCES

    acciones_V

    FIN_SI

    Ejemplo:

    SI precio < 200 000 ENTONCES

    DESPLEGAR El precio es accesible

    DE_OTRA_FORMA

    DESPLEGAR El precio es inaccesible

    Ejecutar operaciones.

    La mquina puede realizar operaciones aritmticas guardando el

    resultado en alguna variable. Tambin puede determinar el valor inicial

    para alguna variable.

    Formato para realizar operaciones:

    variable ! expresin_numrica

    variable ! expresin_alfanumrica

    22

    Ejemplos:

    nueva_edad ! edad +10

    Lo cual significa que el valor de la variable edad, incrementado en 10,

    es almacenado en otra zona de memoria llamada nueva_edad.

    gastos_actuales ! 56000

    Lo cual significa que la variable gastos_actuales simplemente toma el

    valor de 56000.

    nombre ! Alberto Jimnez

    Lo cual significa que la variable nombre toma el valor de Alberto

    Jimnez

    Diagrama de flujo.

    Un diagrama de flujo esta definido como la representacin grfica de

    un algoritmo. Un diagrama de flujo debe hacerse porque regularmente

    resulta ms fcil entender dibujos que entender un texto, sobre todo

    cuando el algoritmo tiende a hacerse grande.

    En un diagrama de flujo existen figuras con informacin dentro de

    cada una de ellas, con flechas que indican la secuencia. A las figuras

    se les llamara de ahora en adelante bloques; existen bloques de varios

    tipos:

  • 23

    Bloques terminales

    Se emplean para indicar el principio y el fin del diagrama de flujo. Su

    forma es:

    Si se escribe la palabra INICIO dentro del smbolo, sirve como el

    bloque indicador del inicio del diagrama de flujo. Si se escribe la

    palabra FIN, ser el que indique que se ha terminado. Debe haber slo

    un bloque de inicio y uno de fin en todo el diagrama de flujo.

    Bloques de entrada/salida

    Se emplean para introducir datos a la computadora o exteriorizarlos.

    El bloque de entrada tiene la siguiente forma:

    El bloque de salida de datos tiene la siguiente forma:

    24

    Dentro de las figuras se anotan los datos que estn entrando o

    saliendo, segn el caso.

    Bloques de proceso

    En ellos se indica una accin imperativa o una operacin aritmtica. Su

    forma es:

    Bloques de decisin o condicionales

    Son preguntas del tipo SI o NO, que pueden alterar la secuencia en la

    ejecucin de los bloques del diagrama de flujo, dependiendo si la

    respuesta es afirmativa o negativa. Su forma es:

    Dentro de la figura, se anota la pregunta, a la derecha se indica la

    accin o acciones que deben hacerse en caso de que la respuesta a la

    pregunta sea afirmativa, mientras que por el lado izquierdo las

    acciones que deben hacerse en el caso de respuesta negativa. Un

    bloque condicional siempre debe terminar con un pequeo crculo que

    une al ltimo bloque de la parte afirmativa con el ltimo bloque de la

  • 25

    parte negativa. Cuando no se cumpla esta regla, debe escribirse en la

    flecha la palabra SI para indicar el camino en dado caso que la

    condicin sea verdadera.

    Bloques de conexin

    Son figuras que determinan que la secuencia de acciones en un

    diagrama contina en alguna otra parte. Su forma es:

    Dentro de la figura se anota una letra o nmero para identificar un

    conector de otro. La funcin de los conectores depende de su forma. Si

    la forma es de este tipo:

    significa que la secuencia de los bloques contina en donde se

    encuentre otro conector igual. Cuando se tienen problemas de espacio

    al escribir los diagramas estos conectores son muy tiles. Y cuando se

    tiene esta otra forma:

    26

    implica que se seguir con los bloques en donde se encuentre otro

    conector igual y al terminar la secuencia regresar al bloque que sigue

    al conector original.

    Una vez que se ha pasado el algoritmo al diagrama de flujo se debe

    probar su funcionalidad. Para esto, se anotan a un lado del diagrama

    las variables del problema y los valores que van tomando al ir

    siguiendo la secuencia del diagrama para verificar que estn correctos.

    Si el diagrama tiene bloques condicionales se deben hacer tantas

    pruebas como combinaciones de condiciones haya.

    Codificacin y edicin.

    La codificacin consiste en traducir el diagrama de flujo a instrucciones

    de un lenguaje de programacin, por ejemplo C/C++, Pascal, Java,

    Basic, etc.

    Al conjunto de instrucciones escritas en un lenguaje de computadora

    se llama programa. La edicin consiste en introducir el programa a la

    computadora por medio de un editor de textos.

    Debe cuidarse el aspecto de la sintaxis en la codificacin de un

    programa, ya que las instrucciones deben tener un orden en la

    secuencia de las palabras y smbolos que las componen. Por ejemplo

    en espaol no es lo mismo decir:

    El caballo blanco de Napolen, que: Napolen blanco de el caballo.

  • 27

    Pruebas y depuracin.

    Una vez que se tiene el programa introducido en la computadora, debe

    probarse exhaustivamente, ejecutando el programa hasta concluir que

    los resultados son los deseados y que no tiene errores. Para esto se

    deben prepara datos de prueba en papel, as como su solucin para

    cotejarlo con la solucin que obtenga la computadora.

    Si el programa tiene errores sintcticos stos pueden corregirse

    simplemente consultando un libro de instrucciones del lenguaje. No as

    si el problema es de lgica, en cuyo caso debe revisarse y corregirse

    desde el algoritmo.

    Documentacin y Mantenimiento.

    Una vez que el paso anterior ha sido completado, todos los pasos

    anteriores de la metodologa de solucin de problemas por medio de la

    computadora, deben pasarse en limpio y quedar archivados dentro de

    una carpeta llamada documentacin.

    Para el paso 5 (codificacin) debe obtenerse un listado del programa

    impreso por computadora, al igual que las pruebas que se hicieron en

    el paso 6.

    Si por algn motivo se llega a modificar el programa generalmente

    porque cambian los requerimientos del problema toda la

    documentacin debe modificarse. Al proceso de mantener los

    programas y su documentacin se le llama mantenimiento.

    28

    Dado que tiempo despus de haber hecho el programa ni el mismo

    programador puede recordar con exactitud cmo resolvi determinado

    problema, la importancia de tener la documentacin actualizada radica

    en su utilidad.

  • 29

    Problemas secuenciales.

    Definicin.

    Se caracterizan porque una accin se ejecuta detrs de otra. El flujo

    del programa coincide con el orden fsico en el que se han ido

    poniendo las instrucciones.

    Caractersticas.

    Para escribir un algoritmo en modo secuencial en la tabla se puede

    apreciar que las acciones estn una debajo de la otra y se ejecuta la

    accin_2 despus de la accin_1 y as sucesivamente hasta llegar a la

    accion_n. Tambin se muestra el diagrama de flujo para cualquier

    problema secuencial.

    Algoritmo Diagrama de flujo

    accin_1

    accin_2

    accion_n

    INICIO

    accion_1

    accion_2

    accion_n

    ...

    FIN

    30

    Ejemplos.

    Aplicar los primeros cuatro pasos de la metodologa para la solucin de

    problemas por medio de la computadora para resolver los siguientes

    problemas:

    Ejemplo 3.1. Encontrar el rea de un crculo de radio 5.

    DEFINICIN DEL PROBLEMA

    area = " * radio ^ 2

    PLANEACIN DE LA SOLUCIN

    Datos de entrada:

    radio = 5

    Datos de salida:

    area

    ALGORITMO

    1. radio ! 5

    2. area ! 3.1416 * radio ^ 2

    3. DESPLEGAR El rea del circulo de radio 5 es: + area

    DIAGRAMA DE FLUJO

  • 31

    INICIO

    radio 5

    area 3.1416 * radio ^ 2

    "El area del circulo

    de radio 5 es" + area

    FIN

    Ejemplo 3.2. Suponer que un individuo decide invertir su capital en un

    banco y desea saber cuanto dinero ganar despus de un mes si el

    banco paga a razn de 2% mensual.

    DEFINICIN DEL PROBLEMA

    La variable capital representa el dinero a invertir

    La variable interes representa el interes sobre el capital que se va a

    invertir

    PLANEACIN DE LA SOLUCIN

    Datos de entrada:

    capital

    Datos de salida:

    interes

    Proceso:

    interes ! capital * 0.02

    32

    ALGORITMO

    1. PEDIR capital

    2. interes ! capital * 0.02

    3. DESPLEGAR El inters ganado es: + interes

    DIAGRAMA DE FLUJO

    capital

    INICIO

    interes capital * 0.02

    "El interes ganado

    es" + interes

    FIN

  • 33

    Ejercicios propuestos

    Aplicar los primeros cuatro pasos de la metodologa de la solucin de

    problemas por medio de la computadora para resolver los siguientes

    problemas:

    1. Encontrar el rea de un crculo con radio 10.

    2. Modificar el problema anterior para que sea capaz de calcular el

    rea de un crculo de cualquier radio requerido.

    3. Determinar el rea y permetro de un rectngulo cualquiera.

    4. Suponga que un individuo decide invertir su capital en un banco y

    desea saber cuanto dinero ganar despus de un mes si el banco

    paga a razn de 2% mensual.

    5. Un vendedor recibe un sueldo base, ms un 10% extra por

    comisiones de sus ventas. El vendedor desea saber cuanto dinero

    obtendr por concepto de comisiones por las tres ventas que realiz

    en el mes, y el total que recibir en el mes tomando en cuenta su

    sueldo base y sus comisiones.

    6. Una tienda ofrece un descuento del 15% sobre el total de la compra

    y un cliente desea saber cunto deber pagar finalmente por su

    compra.

    7. Un alumno desea saber cul ser su calificacin final de la materia

    de computacin. Dicha calificacin se compone de los siguientes

    34

    porcentajes: 55% del promedio de sus tres calificaciones parciales;

    30% de la calificacin del examen final y 15% de la calificacin de

    un trabajo final

    8. Un maestro desea saber qu porcentaje de hombres y que

    porcentaje de mujeres hay en un grupo de estudiantes.

    9. Dada una cantidad en pesos, obtener la equivalencia en dlares,

    asumiendo que la unidad cambiaria es un dato desconocido.

    10. Calcular el numero de pulsaciones que una persona debe tener

    por cada 10 segundos de ejercicio, si la frmula es: nmero de

    pulsaciones = (220 edad) /10

    11. Calcular el nuevo salario de un obrero si obtuvo un incremento

    del 25% sobre su salario anterior.

    12. En un hospital existen tres reas: Ginecobstetricia, Pediatra y

    Traumatologa. El presupuesto anual del hospital se reparte

    conforme a la siguiente tabla:

    rea Porcentaje del

    presupuesto

    Ginecobstetricia 40%

    Traumatologa 30%

    Pediatra 30%

    Obtener la cantidad de dinero que recibir cada rea, para cualquier

    monto presupuestal.

  • 35

    13. El dueo de una tienda compra un artculo a un precio

    determinado. Obtener el precio a que lo debe vender para obtener

    una ganancia del 30%.

    14. Tres personas deciden invertir su dinero para fundar una

    empresa. Cada una de ellas invierte una cantidad distinta. Obtener

    el porcentaje que cada quien invierte con respecto a la cantidad

    total invertida.

    36

    Problemas condicionales.

    Definicin

    Los problemas condicionales se basan en la evaluacin de una

    condicin, si la condicin es verdadera se ejecutan una serie de

    acciones y si la condicin es falsa puede o no ejecutarse otro conjunto

    de acciones.

    Existen tres tipos de problemas condicionales. Los problemas

    condicionales simples, compuestos y mltiples, en las siguientes

    secciones se explican con detalle.

    Problemas condicionales simples

    Existen dos formatos para los tipos de problemas secuenciales

    simples. El primero solo tiene un conjunto de acciones para cuando la

    condicin que se evala es verdadera, es decir carece de conjunto de

    acciones para ejecutarse cuando la condicin sea falsa. El formato

    general es como se muestra en la siguiente tabla:

  • 37

    Algoritmo Diagrama de flujo

    SI condicin ENTONCES

    accion_V

    FIN_SI condicion

    accion_V

    SI

    SI condicin ENTONCES

    accion_V

    DE_OTRA_FORMA

    accion_F

    FIN_SI

    condicion

    accion_Vaccion_F

    SI

    Problemas condicionales compuestos

    Un problema condicional compuesto es cuando en la parte de la

    condicin existe mas de una condicin para evaluar separados por los

    operadores NOT, OR o AND. Puede haber uno o ms de ellos y

    tambin combinacin de los mismos. A esta combinacin se le da el

    nombre de expresin. En este tipo de problemas tambin existen dos

    tipos al igual que en los problemas condicionales simples. En la tabla

    siguiente se muestra el algoritmo y diagrama de flujo correspondiente.

    38

    Algoritmo Diagrama de flujo

    SI expresin ENTONCES

    accion_V

    FIN_SI expresion

    accion_V

    SI

    SI expresin ENTONCES

    accion_V

    DE_OTRA_FORMA

    accion_F

    FIN_SI

    expresion

    accion_Vaccion_F

    SI

    Tanto los problemas condicionales simples como los problemas

    condicionales compuestos pueden estar anidados, es decir, estar una

    dentro de la otra, como se puede observar en la siguiente forma

    general:

    SI condicion1 ENTONCES

    acciones1

    DE_OTRA_FORMA

    SI condicion2 ENTONCES

    acciones2

    DE_OTRA_FORMA

    SI condicion3 ENTONCES

  • 39

    acciones3

    DE_OTRA_FORMA

    accionesX

    FIN_SI

    FIN_SI

    FIN_SI

    Problemas condicionales mltiples

    En los problemas condicionales mltiples permite que el flujo del

    diagrama se bifurque por varias ramas en el punto de la toma de

    decisin (es), esto es en funcin del valor que tome la expresin. Si el

    valor que toma la expresin es el valor1 entonces se ejecutaran las

    acciones1, si el valor que toma la expresin es el valor2, se ejecutaran

    las acciones2 hasta el valorN, entonces se ejecutaran las accionesN.

    Cada grupo de acciones puede estar ligado con un solo valor, varios

    valores separados por comas, un rango de valores expresados como

    valorInicial..valorFinal o una mezcla de valores y rangos.

    Cuando el valor obtenido no se encuentre en la lista de valores se

    ejecutaran las acciones establecidas en la clusula SI_NO, si existe

    dicha clusula.

    En la siguiente tabla se muestra el algoritmo y diagrama de flujo para

    este tipo de problemas condicionales mltiples.

    40

    Algoritmo Diagrama de flujo

    SEGN_SEA expresin HACER

    lista1 : accion1

    lista2 : accion2

    ...

    [SI_NO :

    accionN]

    FIN_SEGUN

    expresion

    accion1 accion2 accionN...

    lista1 lista2 SI_NO

    4.1 Ejemplos

    Ejemplo 4.1. Determinar si un alumno aprueba o reprueba un curso,

    sabiendo que aprobar si su promedio de tres calificaciones es igual o

    mayor a 7; reprueba en caso contrario.

    DEFINICIN DEL PROBLEMA

    Las variables calif1, calif2 y calif3 representan las calificaciones de un

    alumno

    La variable prom representa el promedio de las tres calificaciones de

    un alumno

    PLANEACIN DE LA SOLUCIN

    Datos de entrada:

    calif1

    calif2

    calif3

  • 41

    Datos de salida:

    Aprobado o No Aprobado

    Proceso:

    prom ! (calif1 + calif2 + calif3) / 3

    ALGORITMO

    1. PEDIR calif1

    2. PEDIR calif2

    3. PEDIR calif3

    4. prom ! (calif1 + calif2 + calif3) / 3

    5. SI prom >= 7 ENTONCES

    6. DESPLEGAR Aprobado

    7. DE_OTRA_FORMA

    8. DESPLEGAR No Aprobado

    9. FIN_SI

    DIAGRAMA DE FLUJO

    42

    INICIO

    FIN

    calif1

    calif2

    calif3

    prom (calif1+calif2+calif3) / 3

    prom >= 7

    "Aprobado""No Aprobado"

    SI

    Ejemplo 4.2.

    Determinar si un nmero es positivo, negativo o nulo.

    DEFINICIN DEL PROBLEMA

    La variable num representa el nmero a analizar

    PLANEACIN DE LA SOLUCIN

    Datos de entrada:

    num

    Datos de salida:

    Positivo, Negativo o Nulo

  • 43

    ALGORITMO

    1. PEDIR num

    2. SI num > 0 ENTONCES

    3. DESPLEGAR Positivo

    4. DE_OTRA_FORMA

    5. SI num < 0 ENTONCES

    6. DESPLEGAR Negativo

    7. DE_OTRA_FORMA

    8. DESPLEGAR Nulo

    9. FIN_SI

    10.FIN_SI

    DIAGRAMA DE FLUJO

    INICIO

    FIN

    num

    num > 0

    "Positivo"

    "Negativo"

    SI

    num < 0

    "Nulo"

    SI

    44

    Ejemplo 4.3.

    En una tienda se tiene una promocin. Si el total comprado es menor

    de $200 el descuento es de 5%, si el total esta entre $200 y $500, el

    descuento es de 15% y si el total de la compra es mayor que $500, el

    descuento es del 25%. Escribir un programa que dependiendo del

    monto total de la compra, determine el total a pagar.

    DEFINICIN DEL PROBLEMA

    La variable compra representa el monto total de la compra

    La variable total representa el monto total a pagar

    PLANEACIN DE LA SOLUCIN

    Datos de entrada:

    compra

    Datos de salida:

    total

    Proceso:

    total ! compra compra * 0.05

    total ! compra compra * 0.15

    total ! compra compra * 0.25

    ALGORITMO

  • 45

    1. PEDIR compra

    2. SEGN_SEA compra HACER

    3. 0..199 : total ! compra compra * 0.05

    4. 200..499 : total ! compra compra * 0.15

    5. SI_NO : total ! compra compra * 0.25

    6. FIN_SEGUN

    7. DESPLEGAR total

    DIAGRAMA DE FLUJO

    INICIO

    FIN

    compra

    compra

    total compra - compra * 0.05total compra - compra * 0.05 total compra - compra * 0.05

    total

    0..199 200..499 SI_NO

    46

    Ejercicios propuestos

    Aplicar los primeros cuatro pasos de la metodologa de la solucin de

    problemas por medio de la computadora para resolver los siguientes

    problemas:

    Problemas selectivos simples

    1. Determinar si un alumno aprueba o reprueba un curso, sabiendo

    que aprobar si su promedio de tres calificaciones es igual o mayor

    a 7; reprueba en caso contrario.

    2. En un almacn se hace un 20% de descuento a los clientes cuya

    compra supere los $1000. Cul ser la cantidad de dinero que

    pagar una persona por su compra?

    3. Un obrero necesita calcular su salario semanal, el cual se obtiene de

    la siguiente manera: Si trabaja 40 horas o menos se le paga $4 por

    hora. Si trabaja ms de 40 horas se le paga $4 por cada una de las

    primeras 40 horas y $6 por cada hora extra.

    4. Un hombre desea saber cunto dinero se generar por concepto de

    intereses sobre la cantidad que tiene en inversin en el banco. l

    decidir reinvertir los intereses siempre y cuando estos excedan a

    $7000, y en ese caso desea saber cunto dinero tendr finalmente

    en su cuenta.

    5. Una persona enferma que pesa 70 kilogramos, se encuentra en

    reposo y desea saber cuntas caloras consume su cuerpo durante

  • 47

    todo el tiempo que realice una misma actividad. Las actividades que

    tiene permitido realizar son nicamente dormir o estar sentado en

    reposo. Los datos que tiene son que estando dormido consume

    1.08 caloras por minuto y estando sentado en reposo consume

    1.66 caloras por minuto.

    6. Una empresa quiere hacer una compra de varias piezas de la

    misma clase a un fabricante de refacciones. La empresa,

    dependiendo del monto total de la compra, decidir que hacer para

    pagar al fabricante. Si el monto total de la compra excede de $500

    000 la empresa tendr la capacidad de invertir de su propio dinero

    un 55% del monto de la compra, pedir prestado un 30%, y el resto

    lo pagar solicitando un crdito al fabricante. Si el monto total de la

    compra no excede de $500 000 la empresa tendr la capacidad de

    invertir de su propio dinero un 70% y el restante 30% lo pagar

    solicitando un crdito al fabricante. El fabricante cobra por concepto

    de intereses un 20% sobre la cantidad que se le pague a crdito. La

    empresa necesita determinar: cunto dinero deber invertir, de sus

    propios fondos; si hay necesidad cuanto tendr que pedir prestado

    al banco, cunto tendr que pagar a crdito y cuanto pagar por

    concepto de intereses que se generen en el crdito.

    7. Calcular el total que una persona debe pagar en una llantera, si el

    precio de cada llanta es de $300 si se compran menos de 5 llantas,

    y de $250 si se compran 5 o ms.

    8. En un supermercado se hace una promocin, mediante la cual el

    cliente obtiene un descuento dependiendo de un nmero que

    escoge al azar. Si el nmero escogido es menor que 74, el

    48

    descuento es del 15% sobre el total de la compra, y si es mayor o

    igual a 74 el descuento es del 20%. Obtener cunto dinero se le

    descuenta.

    9. Una compaa de seguros est abriendo un departamento de

    fianzas y estableci un programa para captar clientes, el programa

    consiste en lo siguiente: Si el monto por el que se efecta la fianza

    es menor que $50 000 la cuota a pagar ser por el 3% del monto, y

    si el monto es mayor que $50 000 la cuota a pagar ser el 2% del

    monto. La afianzadora desea determinar cul ser la cuota que

    debe pagar un cliente.

    10. En una escuela la colegiatura de los alumnos se determina segn

    el nmero de materias que cursan. El costo de todas las materias

    es el mismo. Se ha establecido un programa para estimular a los

    alumnos, el cual consiste en lo siguiente: si el promedio obtenido

    por un alumno en el ltimo periodo es mayor o igual que 9, se le

    har un descuento del 30% sobre la colegiatura y no se le cobrar

    IVA; si el promedio obtenido es menor que 9 deber pagar la

    colegiatura completa, la cual incluye el 10% de IVA. Obtener cuanto

    debe pagar un alumno.

    Problemas selectivos compuestos.

    11. Determinar la cantidad de dinero que recibir un trabajador por

    concepto de las horas extras trabajadas en una empresa, sabiendo

    que cuando las horas de trabajo exceden de 40, el resto se

    consideran horas extras y que stas se pagan al doble de una hora

    normal cuando no exceden a 8; si las horas extras exceden de 8 se

  • 49

    pagan las primeras 8 al doble de lo que se paga por una hora

    normal y el resto al triple.

    12. Calcular la utilidad que un trabajador recibe el reparto anual de

    utilidades si ste se le asigna como un porcentaje de su salario

    mensual que depende de su antigedad en la empresa de acuerdo

    con la siguiente tabla:

    TIEMPO UTILIDAD

    Menos de 1 ao 5% del salario

    1 ao o ms y menos de 2 aos 7% del salario

    2 aos o ms y menos de 5 aos 10% del salario

    5 aos o ms y menos de 10 aos 15% del salario

    10 aos o ms 20% del salario

    13. En una tienda de descuento se efecta una promocin en la cual

    se hace un descuento sobre el valor de la compra total segn el

    color de la bolita que el cliente saque al pagar en caja. Si la bolita

    es blanca no se le har descuento alguno, si es verde se le har un

    10% de descuento, si es amarilla un 25% de descuento, si es azul

    un 50% y si es roja un 100%. Determinar la cantidad final que un

    cliente deber pagar por su compra. Se sabe que slo hay bolitas

    de los colores mencionados.

    14. Una empresa que comercializa cosmticos tiene organizados a

    sus vendedores en tres departamentos y ha establecido un

    programa de incentivos para incrementar su productividad. El

    gerente, al final del mes, pide el importe global de los tres

    departamentos y aquellos que excedan el 33% de las ventas

    50

    globales se les paga una cantidad extra equivalente al 20% de su

    salario mensual. Si todos los vendedores ganan lo mismo,

    determinar cunto recibirn los vendedores de los tres

    departamentos al finalizar el mes.

    15. El Instituto Mexicano del Seguro Social (IMSS) requiere clasificar

    a las personas que se jubilarn en el ao de 2003. Existen tres

    tipos de jubilaciones: por edad, por antigedad joven y por

    antigedad adulta. Las personas adscritas a la jubilacin por edad

    deben tener 60 aos o ms y una antigedad en su empleo de

    menos de 25 aos. Las personas adscritas a la jubilacin por edad

    joven deben tener menos de 60 aos y una antigedad en su

    empleo de 25 aos o ms. Las personas adscritas a la jubilacin por

    edad adulta deben tener 60 aos o ms y una antigedad en su

    empleo de 25 aos o ms. Determinar en que tipo de jubilacin,

    quedar adscrita una persona.

  • 51

    Problemas repetitivos

    La mayor parte de las soluciones a los problemas que se resuelven por

    medio de la utilizacin de una computadora son procesos que se basan

    en la repeticin de un grupo de instrucciones. Para facilitar la

    implementacin de estos procesos existen las estructuras de repeticin

    o ciclos. Una estructura de repeticin es aquella que le permite al

    programador repetir un conjunto o bloque de instrucciones un nmero

    determinado de veces mientras una condicin dada sea cierta o hasta

    que una condicin dada sea cierta. Se debe establecer un mecanismo

    para terminar las tareas repetitivas. Dicho mecanismo es una

    expresin condicional que se evala cada vez que se realiza un ciclo.

    La expresin condicional que controla la entrada al ciclo puede ser

    verificada antes o despus de ejecutar el conjunto de instrucciones

    que lo componen. En caso de que la evaluacin resulte verdadera se

    repite el ciclo o caso de sea falsa lo terminar.

    Muchos ciclos utilizan variables de propsito especial las cuales se

    conocen como contadores, acumuladores e interruptores.

    Contador

    Un contador es una variable cuyo valor se incrementa o decrementa

    en una cantidad constante cada vez que se produce un determinado

    suceso o accin. Los contadores se utilizan en las estructuras

    repetitivas con la finalidad de contar sucesos o acciones internas del

    ciclo.

    52

    Con los contadores se debe realizar una operacin de inicializacin y,

    posteriormente, las sucesivas de incremento o decremento del

    contador.

    La inicializacin consiste en asignarle al contador un valor. Se situar

    antes y fuera del ciclo.

    !

    En cuanto a los incrementos o decrementos del contador, puesto que

    la operacin de asignacin admite que la variable que recibe el valor

    final de una expresin intervenga en la misma, se realizarn a travs

    de este tipo de instrucciones de asignacin, de la siguiente forma:

    ! +

    dicho podr ser positivo o negativo, Esta

    instruccin se colocar en el interior del bucle.

    Acumulador

    Son variables cuyo valor se incrementa o decrementa en una cantidad

    variable. Necesitan operaciones de:

    o Inicializacin:

    !

    o Acumulacin:

    ! < nombre_acumulador > +

  • 53

    Hay que tener en cuenta que la siguiente operacin tambin

    seria una operacin de acumulacin:

    ! < nombre_acumulador > +

    Interruptor

    Un interruptor, bandera o switch es una variable que puede tomar los

    valores verdad o falso a lo largo de la ejecucin de un programa,

    comunicando as informacin de una parte a otra del mismo. Pueden

    ser utilizados para el control de bucles.

    Ciclos

    Ciclo de repeticin por contador

    Tambin llamados ciclos es una estructura de repeticin que ejecuta

    un conjunto de una o ms instrucciones una determinada cantidad de

    veces.

    La caracterstica de esta estructura es que el numero de veces que se

    repetir el ciclo es conocido, ya sea por medio de una cantidad explicita

    o por un valor asignado a una zona de memoria, sea esta constante o

    variable. Si para establecer el numero de repeticiones se utiliza una

    variable el valor asignado a esta no podr variar dentro del ciclo. Esta

    estructura tiene asociada una variable ndice, la cual no podr ser

    modificada dentro del ciclo.

    La estructura de repeticin por contador comienza con un valor inicial

    de la variable ndice y las acciones especificadas se ejecutan a menos

    54

    que el valor inicial sea mayor que el final. Por definicin la variable

    ndice se incrementa en 1, pero se puede especificar cualquier otro

    valor de incremento, y si este nuevo valor no excede al valor final se

    ejecutan de nuevo las acciones. Si establecemos que la variable ndice

    se decremente en cada iteracin el valor inicial deber ser superior al

    final. Se considera siempre la variable ndice de tipo entero.

    Algoritmo

    DESDE variable ! valor_inicial HASTA valor_final

    [incremento|decremento inc]

    FIN_DESDE

    Diagrama de flujo

  • 55

    Ciclo de repeticin de prueba por arriba

    Lo que caracteriza este tipo de estructura es que las acciones del

    cuerpo del ciclo se realizan cuando la condicin es cierta. Adems, se

    analiza la expresin condicional al principio, de donde se deduce que

    dichas acciones se podrn ejecutar 0 a N veces

    Algoritmo

    MIENTRAS HACER

    FIN_MIENTRAS

    Diagrama de flujo

    Ciclo de repeticin de prueba por abajo

    Las acciones del interior del ciclo se ejecutan una vez y continan

    repitindose mientras que la condicin sea falsa. Se analiza la

    56

    expresin condicional al final del ciclo, de lo cual deducimos que las

    acciones se ejecutan de 1 a N veces.

    Algoritmo

    REPETIR

    HASTA

    Diagrama de flujo

    Problemas repetitivos simples

    Los problemas repetitivos simples son aquellos que para su solucin

    solo se involucra una estructura de repeticin.

    Problemas repetitivos compuestos

    Los problemas repetitivos compuestos son aquellos que para su

    solucin se necesitan dos o ms estructuras de repeticin. Estas

    estructuras no necesariamente tienen que ser del mismo tipo y podrn

  • 57

    estar anidadas, esto es que un ciclo sea parte del cuerpo de otro ciclo,

    o podrn ser independientes entre s.

    Cuando en el proceso de solucin intervienen dos o mas estructuras de

    repeticin decimos que es un problema repetitivo compuesto.

    Ejemplos

    Ejemplo 5.1.

    DEFINICION DEL PROBLEMA

    Algoritmo que lee una secuencia de 100 nmeros y obtiene e

    imprime cuntos hay positivos, negativos y nulos (ceros).

    PLANEACION DE LA SOLUCION

    ENTRADA: serie de 100 nmeros

    SALIDA: cantidad de nmeros positivos, negativos y nulos

    Utilizaremos 3 contadores pos, neg y nulo, para contar cuantos

    nmeros positivos, negativos y nulos aparecen respectivamente.

    Los tres contadores se inicializan en cero.

    El ciclo que utilizaremos es un ciclo DESDE donde la variable

    ndice ser i. El valor inicial sera 1 y el final 100.

    ALGORITMO

    1. pos ! 0

    2. neg ! 0

    3. nulo ! 0

    4. DESDE i ! 1 HASTA 100

    5. PEDIR num

    6. SI num > 0 ENTONCES

    58

    7. pos ! pos + 1

    8. DE_OTRA_FORMA

    9. SI num < 0 ENTONCES

    10. neg ! neg + 1

    11. DE_OTRA_FORMA

    12. nulo ! nulo + 1

    13. FIN_SI

    14. FIN_SI

    15. FIN_DESDE

    16. DESPLEGAR Positivos: , pos

    17. DESPLEGAR Negativos: , neg

    18. DESPLEGAR Nulos: , nulo

    DIAGRAMA DE FLUJO

  • 59

    Ejemplo 5.2.

    DEFINICION DEL PROBLEMA

    Algoritmo que obtenga el cociente y el residuo de dos nmeros

    enteros positivos mediante restas.

    PLANEACION DE LA SOLUCION

    ENTRADA: dividendo y divisor

    SALIDA: cociente y residuo

    Se utiliza un ciclo MIENTRAS donde la condicin de entrada ser

    que el residuo sea igual o mayor que el divisor. El residuo y el

    cociente son dos acumuladores. El residuo se inicializa en el

    valor del dividendo y se decrementa en una cantidad igual al

    divisor cada vez que entra al ciclo, a su vez el cociente se

    incrementa en uno. El cociente se inicializa en cero.

    ALGORITMO

    1. DESPLEGAR Dividendo:

    2. PEDIR a

    3. DESPLEGAR Divisor:

    4. PEDIR b

    5. coc ! 0

    6. res ! a

    7. MIENTRAS res >= b HACER

    8. res ! res b

    9. coc ! coc + 1

    10. FIN_MIENTRAS

    11. DESPLEGAR Cociente: , coc

    12. DESPLEGAR Residuo: , res

    60

    DIAGRAMA DE FLUJO

    Ejemplo 5.3.

    DEFINICION DEL PROBLEMA

    Algoritmo que lee una secuencia de nmeros no nulos,

    terminada con la introduccin de un 0, y obtiene e imprime el

    mayor, visualizando un mensaje de si se ha ledo algn numero

    negativo.

  • 61

    PLANEACION DE LA SOLUCION

    ENTRADA: secuencia de nmeros

    SALIDA: el nmero mayor y un mensaje si alguno de los

    nmeros fue negativo

    Se utiliza un ciclo REPETIR-HASTA, cuando el numero que

    capturemos sea igual a cero entonces termina el ciclo. Dentro

    del ciclo se captura un numero, se compara contra una variable

    que almacena el numero mas grande que se a capturado, si el

    numero recin capturado es mayor entonces se le asigna a esta

    variable y se verificara si este es negativo, de ser as entonces

    se activa una bandera para indicar que se ley un nmero

    negativo.

    ALGORITMO

    1. neg ! FALSO

    2. mayor ! 0

    3. REPETIR

    4. PEDIR num

    5. SI num > mayor ENTONCES

    6. mayor ! num

    7. FIN_SI

    8. SI num < 0 ENTONCES

    9. neg ! VERDADERO

    10. FIN_SI

    11. HASTA num = 0

    12. DESPLEGAR Numero mayor: , mayor

    13. SI neg = VERDADERO ENTONCES

    14. DESPLEGAR Si se ley algn numero

    negativo

    15. FIN_SI

    62

    DIAGRAMA DE FLUJO

  • 63

    Ejemplo 5.4.

    DEFINICIN DEL PROBLEMA

    Algoritmo que calcula e imprime los nmeros perfectos menores

    que 1000. (Un nmero es perfecto si a suma de sus divisores,

    excepto el mismo, es igual al propio nmero.)

    PLANEACIN DE LA SOLUCIN

    ENTRADA: ninguna

    SALIDA: todos los nmeros perfectos menores que 1000

    Se utiliza un ciclo desde para recorrer todos los nmeros

    positivos menores que 1000. Dentro de este ciclo se utiliza otro

    ciclo para encontrar os divisores del nmero en turno, cuando se

    encuentra un divisor se acumula en una variable, una vez que

    se localizaron todos los divisores esta variable va a tener la

    suma de los divisores. Se compara el acumulador con el nmero

    analizado, si son iguales se imprime el nmero, si no es as

    continua con el siguiente.

    ALGORITMO

    1.DESDE i ! 1 HASTA 999

    2. suma ! 0

    3. DESDE j ! 1 HASTA ( i / 2 )

    4. res ! i mod j

    5. SI res = 0 ENTONCES

    6. suma ! suma + j

    7. FIN_SI

    8. FIN_DESDE

    9. SI suma = i ENTONCES

    10. DESPLEGAR i

    64

    11. FIN_SI

    12.FIN_DESDE

    DIAGRAMA DE FLUJO

  • 65

    Problemas propuestos

    1. Algoritmo que lee una secuencia de 100 nmeros y obtiene e

    imprime cuntos hay positivos, negativos y nulos (ceros).

    2. Algoritmo que lee un nmero entero positivo N y calcula e imprime

    su factorial N!.

    3. Algoritmo que obtenga el producto de dos nmeros enteros

    positivos mediante sumas sucesivas.

    4. Algoritmo que lee un nmero X y otro entero positivo N y calcula la

    N-sima potencia de X.

    5. Algoritmo que genera la lista de los N primeros nmeros primos,

    siendo N el dato de entrada.

    6. Algoritmo que calcula e imprime el valor del nmero e como la

    suma de la serie:

    # 1 / i! = 1/0! + 1/2! + 1/3! + 1/4! + ... + 1/N!

    La precisin del resultado ser mayor cuanto mayor sea el dato de

    entrada N (entero positivo).

    7. Algoritmo que evala un polinomio de grado N Los datos de entrada

    son el valor de la variable y de los coeficientes.

    8. Algoritmo que determina si dos nmeros enteros positivos son

    amigos. (Dos nmeros son amigos si la suma de los divisores,

    excepto l mismo, es igual al segundo, y viceversa)

    9. Algoritmo que lee un nmero entero positivo N e imprime su tabla

    de multiplicar.

    10. Algoritmo que lee un nmero entero y positivo N y escriba la

    lista de sus divisores.

    11. Algoritmo que lee un nmero entero y positivo N y calcula y

    escribe la suma de sus divisores.

    12. Algoritmo que lee un nmero entero y positivo N y escribe los n

    primeros trminos de la sucesin Fibonacci. La sucesin Fibonacci

    66

    se caracteriza porque cada trmino es igual a la suma de sus dos

    anteriores,dndose por definicin el primero (0) y el segundo (1).

    a0 = 1 a1 = 1 an = an-1 + an-2

    13. Realizar un algoritmo que calcule la suma de los enteros entre 1

    y 10, es decir 1+2+3+...+10.

    14. Realizar un algoritmo que calcule y visualice las potencias de 2

    entre 0 y 10.

    15. Se desea calcular independientemente la suma de los nmeros

    pares e impares comprendidos entre 1 y 200.

    16. Calcular y visualizar la suma y el producto de los nmeros pares

    comprendidos entre 20 y 400, ambos inclusive.

    17. Leer 500 enteros y obtener cuantos son positivos.

    18. Calcular la suma de los cuadrados de los 100 primeros nmeros

    naturales.

    19. Sumar los nmeros pares del 2 al 100 e imprimir su valor.

    20. Sumar 10 nmeros introducidos por el teclado.

    21. Calcular la media de 50 nmeros introducidos por el teclado y

    visualizar su resultado.

    22. Visualizar los mltiplos de 4 comprendidos entre 4 y N, donde N

    es un nmero introducido por teclado.

    23. Realizar un algoritmo que permita imprimir los primeros 100

    nmeros enteros.

    24. Dados 10 nmeros enteros que introduciremos por teclado,

    visualizar la suma de los nmeros pares de la lista, cuntos

    nmeros pares existen y cul es la media aritmtica de los nmeros

    impares.

    25. Calcular la nota media por alumno de una clase de a alumnos.

    Cada alumno podr tener un nmero n de notas distinto.

  • 67

    Estructuras dimensionales

    Un arreglo es una coleccin finita de elementos del mismo tipo

    agrupados en una sola variable. Cada posicin de almacenamiento en

    un arreglo es llamada un elemento del arreglo. Los elementos de un

    arreglo se encuentran agrupados de manera ordenada, es decir,

    podemos determinar cul es el primer elemento, el segundo, el

    tercero,, y el n-simo elemento.

    Fsicamente, un arreglo es un conjunto de localidades de memoria

    contiguas donde la direccin ms baja corresponde al primer

    elemento y la direccin ms alta al ltimo.

    Para accesar a un elemento en particular, utilizamos un ndice. En un

    arreglo de n elementos, sus el ndice para el primer elemento es 0,

    para el segundo elemento es 2, y as sucesivamente hasta llegar al n-

    simo elemento para el cual el ndice correspondiente es n-1.

    As, una notacin tpica para un arreglo de 10 elementos es X0, X1, X2,

    , X9. X es el nombre general por el cual identificamos a los elementos

    del arreglo, mientras que los nmeros 0, 1, , 9 son los ndices los

    cuales indican cual es la posicin de cada elemento en el arreglo.

    Las operaciones que podemos realizar con arreglos son:

    o Lectura. El proceso de lectura consiste en accesar a cualquier

    elemento del arreglo para conocer el valor que tiene

    almacenado.

    o Escritura. El proceso de escritura consiste en accesar a cualquier

    elemento del arreglo para almacenar un valor.

    68

    o Inicializacin. Consiste en dar un valor de inicio a cada elemento

    del arreglo.

    o Actualizacin

    Insercin. Con esta operacin podemos agregar nuevos

    elementos a un arreglo.

    Eliminacin. Es posible eliminar elementos de un arreglo.

    Modificacin. Podemos modificar el valor almacenado en

    cualquier elemento de un arreglo.

    o Ordenacin. Consiste en ordenar bajo cierto criterio

    (descendente, ascendente, etc.) los elementos de un arreglo.

    o Bsqueda. Podemos conocer la posicin de cualquier elemento

    de un arreglo.

    Vectores

    Los vectores son arreglos unidimensionales.

    Un vector es

    (2, 3, 4, 8, 9, 10, 15, 17)

    y representa una lista de elementos.

    La forma general para definir un arreglo unidimensional es la

    siguiente:

    Tipo_de_dato nombre_variable [tamao]

    Ejemplos:

    entero edades[20]

    real X[10];

  • 69

    tipo_de_dato se refiere al tipo de dato de cada elemento del arreglo

    y tamao es la cantidad de elementos agrupados en la misma

    variable.

    Forma de acceso a un elemento especfico del arreglo

    Para accesar a uno de los elementos del arreglo en particular, basta

    con invocar el nombre del arreglo y especificar entre corchetes del

    elemento.

    Por ejemplo, si queremos accesar al cuarto elemento del arreglo X,

    se invocara de la siguiente manera:

    X[3]

    Recuerde que el arreglo almacena desde la casilla 0. Por tanto, en

    un arreglo de 20 casillas, stas estn numeradas del 0 al 19.

    Utilizacin de arreglos unidimensionales como cadenas

    El uso ms comn de los arreglos unidimensionales es la

    implementacin de una cadena (conjunto) de caracteres.

    Por ejemplo si deseamos crear un cadena que contenga 5

    caracteres la declaracin debe hacerse como sigue:

    caracter cadena[5];

    70

    Matrices

    Una matriz es un arreglo de arreglos unidimensionales. Constituyen

    la forma ms simple de los arreglos multidimensionales. Una matriz

    o arreglo bidimensional tiene dos subndices.

    Su forma general de declaracin es

    tipo_dato nombre_variable [primer ndice][segundo ndice];

    El primer ndice corresponde a la filas y el segundo a las columnas.

    Ejemplos

    Ejemplo 6.1

    DEFINICIN DEL PROBLEMA

    Declare un arreglo de 20 elementos de tipo entero e inicialice

    todos los elementos de dicho arreglo en 0.

    ANLISIS DEL PROBLEMA

    ENTRADA: ninguna

    SALIDA: ninguna

    Necesitamos primeramente declarar un arreglo de 20

    elementos, despus de la declaracin vamos a utilizar un ciclo

    DESDE que inicie en 0 y termine en 19 para la operacin de

    inicializacin. El contador del ciclo nos va a servir como ndice

    para los elementos del arreglo.

    ALGORITMO

  • 71

    1. entero numero[20]

    2. DESDE i ! 0 HASTA 19

    3. numero[i] ! 0

    4. FIN_DESDE

    DIAGRAMA

    Ejemplo 6.2

    DEFINICIN DEL PROBLEMA

    Sume el contenido de los elementos de una matriz de 5

    columnas x 5 renglones.

    ANLISIS DEL PROBLEMA

    72

    ENTRADA: ninguna

    SALIDA: suma

    Se necesitan dos ciclos DESDE para recorrer todos los

    elementos de la matriz, cada vez que se accesa a un

    elemento el valor almacenado en este se suma a un

    acumulador.

    ALGORITMO

    1. suma ! 0

    2. DESDE i ! 0 HASTA 4

    3. DESDE j ! 0 HASTA 4

    4. suma ! suma + matriz[i][j]

    5. FIN_DESDE

    6. FIN_DESDE

    7. DESPLEGAR suma

    DIAGRAMA DE FLUJO

  • 73

    74

    Problemas propuestos

    1. Obtener el valor mayor almacenado en una tabla de 5 columnas por

    4 renglones.

    2. En un vector se ha almacenado el nmero total de toneladas de

    cereales cosechados durante cada mes del ao anterior. Se desea

    la siguiente informacin: a. El promedio anual de toneladas

    cosechadas b. Cuntos meses tuvieron una cosecha superior al

    promedio anual? c. Cuntos meses tuvieron una cosecha inferior

    al promedio anual?

    3. En un vector se almacenan las calificaciones finales de N alumnos.

    Escribir: a. El promedio general del grupo b. Nmero de alumnos

    aprobados y numero de alumnos reprobados c. Porcentaje de

    alumnos aprobados y porcentaje de alumnos reprobados d.

    Nmero de alumnos cuya calificacin fue mayor o igual a 8

    4. Dada una cadena de caracteres como dato, se desea saber el

    nmero de veces que aparecen las letras a, b y c en dicha

    cadena.

    5. Se tienen registradas las calificaciones de 50 alumnos obtenidas en

    un examen. Los datos son cal1, cal2, ..., cal50, donde cali es un

    numero entero comprendido entre los valores 0 y 10. Calcular e

    visualizar la frecuencia de cada uno de los posibles valores.

    6. Calcular la suma de dos matrices de M x N, donde (0! M ! 9) y

    (0! N ! 19) y visualizar su resultado.

    7. Calcular la multiplicacin de dos matrices. La matriz A es de M x N y

    la matriz B es de N x P, donde (0! M ! 9), (0! N ! 9) y (0! P !

    4). La matriz resultante ser de M x P.

    8. Llenar con ceros una matriz de N x N excepto en la diagonal

    principal donde debe asignar 1.

  • 75

    9. Intercambiar por rengln los elementos de una matriz. Los

    elementos del rengln 1 deben intercambiarse con los elementos

    del rengln N, los del rengln 2 con los del N-1, y as

    sucesivamente.

    76

    Mdulos

    Uno de los mtodos ms conocidos para resolver un problema es

    dividirlo en problemas ms pequeos, llamados sub-problemas. De

    esta manera, en lugar de resolver una tarea compleja y tediosa, se

    resuelven otras ms sencillas y a partir de ellas se llega a la solucin.

    Esta tcnica se usa mucho en programacin y se le suele llamar diseo

    descendente, metodologa de divide y vencers o programacin top-

    down.

    Es evidente que si esta metodologa lleva a tratar con sub-problemas,

    entonces tambin se tendr la necesidad de poder crear y trabajar con

    subprogramas para resolverlos. A estos subprogramas se les suele

    llamar mdulos, de ah viene el nombre de programacin modular.

    El concepto bsico de la programacin modular es muy simple,

    consiste en dividir un programa en mdulos. En realidad es un mtodo

    de diseo que tiende a dividir el problema, de forma lgica, en partes

    perfectamente diferenciadas que pueden ser analizadas, programadas

    y puestas a punto independientemente.

    Se podran sintetizar los objetivos de la programacin modular en los

    siguientes:

    Disminuir la complejidad

    Aumentar la claridad y fiabilidad

    Disminuir el costo

    Aumentar el control del proyecto

    Facilitar la ampliacin del programa mediante nuevos mdulos

  • 77

    Facilitar las modificaciones y correcciones al quedar

    automticamente localizadas en un modulo

    Un mdulo esta constituido por una o varias instrucciones fsicamente

    contiguas y lgicamente encadenadas, las cuales se pueden

    referenciar mediante un nombre y pueden ser llamadas desde

    diferentes puntos de un programa.

    Un modulo puede ser:

    Un programa

    Una funcin

    Una subrutina (o procedimiento)

    Se consideran las siguientes dos situaciones:

    1. En un cierto programa, diferentes listas o tablas de nmeros se

    desean clasificar por orden ascendente y luego descendente es

    decir, primero la lista A, luego la lista B y luego la C. Se conoce

    un algoritmo de clasificacin por ejemplo la burbuja y el

    ordenamiento rpido por lo que se escribir primeramente el

    cdigo para clasificar a A, a continuacin se repite el proceso,

    con los cambios adecuados, para clasificar B y C. esto esta claro,

    pero requiere el uso de cdigos casi iguales para las tres listas.

    Se puede ahorrar esfuerzos si fuera posible escribir el cdigo

    solamente una vez y a continuacin aplicarlos a A, B y C.

    2. El programador jefe o el analista de aplicaciones de un gran

    proyecto desea dividir el trabajo entre varios programadores.

    Para evitar confusiones, el debe hacer cada parte tan

    independiente como sea posible de los dems. Cmo puede un

    78

    programa, que es una tarea sencilla, ser dividida en dos sub-

    problemas independientes?

    Un medio de solucionar estos dos problemas es dividir el programa en

    partes que puedan ser desarrolladas por separado y eventualmente

    integrarse en una unidad. Tales partes independientes se llaman

    mdulos o subprogramas.

    Los mdulos son independientes, esto es quiere decir que puede

    ejecutar su trabajo sin interferencia de, y sin interferir con, otras

    partes del programa.

    Cada mdulo ejecuta una tarea especifica. Entendindose como tarea

    un trabajo concreto que un programa debe ejecutar como parte de su

    operacin general, como enviar una lnea de texto a la impresora,

    ordenar un arreglo en orden numrico o calcular una raz cbica.

    Parmetros

    Es muy comn que las funciones utilicen argumentos, es decir, que

    necesiten de algn valor o valores externos dentro de su propio

    cdigo. Estos valores se pasan mediante variables las cuales se

    declaran dentro de los parntesis que siguen al nombre de la funcin.

    Solo se debe tomar en cuenta que los argumentos utilizados al

    declarar la funcin sean del mismo tipo que los usados para llamar la

    funcin.

    Se pueden utilizar a las variables que son parmetros formales como

    cualquier otra variable local, es decir, se les puede hacer asignaciones

    o usarlos en cualquier expresin permitida.

  • 79

    Representacin de mdulos

    Un modulo se puede representar por:

    Algoritmo Diagrama de flujo

    MODULO

    nombreModulo(argumentos)

    //cuerpo del modulo

    FIN_MODULO

    nombreModulo

    fin_modulo

    LLAMAR

    nombreModulo(argumentos)

    Mdulo

    nombreModulo. Es la palabra con la que se identificar al mdulo.

    Cada mdulo tiene un nombre nico. Con ese nombre, en cualquier

    otra parte del programa se puede ejecutar los enunciados contenidos

    en l. A esto se le conoce como la llamada de mdulo. Un mdulo

    puede ser llamado desde el interior de otro mdulo.

    argumentos. Es un conjunto de variables separadas por comas y con

    un tipo de dato especfico que reciben los valores de los argumentos

    cuando se llama a la funcin. Una funcin puede carecer de

    80

    parmetros en cuyo caso los parntesis estarn vacos tanto al

    declarar como al mandar llamar a la funcin.

    Ejemplo

    PLANTEAMIENTO DEL PROBLEMA

    Crear un subprograma para cada una de las siguientes actividades:

    Inicializar un vector de N elementos

    Insertar un elemento en el vector

    Borrar un elemento del vector

    Mostrar los elementos del vector

    ALGORITMOS

    MODULO CrearVector(Vector,N,Numero)

    /*El algoritmo crea un vector de N elementos. N es el

    numero de elementos del vector. Numero es el numero

    actual de elementos*/

    DESDE i 0 HASTA N -1

    Vector[i] 0

    FIN_DESDE

    Numero 0

    FIN_MODULO

    MODULO InsertaElemento(Vector,N,Numero,dato)

    /*El algoritmo inserta un elemento en un vector. Vector

    es un arreglo de N elementos. Numero es el nmero actual

    de elementos. dato es el valor a insertar*/

    SI Numero < N ENTONCES

    Numero Numero + 1

    Vector[Numero] dato

    DE_OTRA_FORMA

  • 81

    DESPLEGAR El elemento + dato + no se puede

    insertar

    FIN_SI

    FIN_MODULO

    MODULO EliminaElemento(Vector,N,Numero,dato)

    /*El algoritmo elimina un elemento en un vector. Vector

    es un arreglo de N elementos. Numero es el nmero actual

    de elementos. dato es el valor a eliminar*/

    SI Numero>=0 ENTONCES

    i 1

    band falso

    MIENTRAS ( i

  • 83

    FIN_SEGUN

    HASTA_QUE opcion=5

    FIN_MODULO

    84

    Pseudocdigo

    Pseudo o seudo, significa falso, imitacin y cdigo se refiere a las

    instrucciones escritas en un lenguaje de programacin. Pseudocdigo

    es un lenguaje artificial e informal que ayuda a los programadores a

    desarrollar algoritmos. El pseudocdigo es similar al lenguaje

    cotidiano; es cmodo y amable con el usuario, aunque no es

    realmente un verdadero lenguaje de computadora. No se ejecutan en

    las computadoras mas bien sirven para ayudar al programador a

    razonar un programa antes de intentar escribirlo en algn lenguaje. Un

    programa traducido a pseudocdigo puede ser fcilmente convertido

    en un programa en C/C++, si es que esta bien elaborado.

    Palabras reservadas

    Las palabras reservadas son palabras clave que permiten reconocer

    que se esta haciendo, por ejemplo cuando se desea pedir un dato al

    usuario, se escribe la palabra PEDIR, con letras maysculas para

    diferenciarla del texto restante. Las palabras reservadas se clasifican

    en dos grandes grupos, las de entrada y salida y las de estructuras de

    control. Las primeras permiten controlar las coordenadas de la

    pantalla. Y las segundas, permiten tener el control, como su nombre lo

    indica, del programa en general.

    Entrada / Salida

    En el pseudocdigo ser necesario escribir de qu tipo son las

    variables que se van a utilizar antes de empezar a utilizarlas. Los tipos

    de datos que se van a utilizar son:

  • 85

    entero

    caracter

    cadena

    decimal

    lgico

    vaco

    La forma general de usar los tipos de variables es:

    tipo nombreVariable;

    La siguiente tabla muestra las funciones que se utilizan para el manejo

    de entrada y salida y adems para los bloques de cdigo en

    pseudocdigo.

    Descripcin Pseudocdigo Lenguaje

    C/C++

    Simula al cursor en la pantalla

    en la posicin x, y.

    irxy(x, y) gotoxy(x, y)

    Simula limpiar la pantalla limpia() clrscr()

    Se pide un dato y se almacena

    en la variable

    pedir(variable) scanf(variable)

    Escribe datos en la pantalla de

    una variable o un mensaje.

    escribir(variable) printf(variable)

    Simula un salto de lnea en la

    pantalla

    \n \n

    Inicia un bloque de

    instrucciones

    { {

    Finaliza un bloque de } }

    86

    instrucciones

    Finaliza una lnea de

    instrucciones

    ; ;

    Estructuras de control

    Pseudocdigo Diagrama de flujo Lenguaje

    C/C++

    si(condicin)

    condicin

    accin

    SI

    if(condicin)

    si(condicin)-sino

    condicin

    accin1 accin2

    SI

    if(condicin)-

    else

  • 87

    segn(variable)

    variable

    accin 1 accin 2 accin n

    val1 val2 valn. . .

    . . .

    switch(variabl

    e)

    para(valorInicio;

    condicin;

    incremento)

    valorInicio

    incremento

    condicin

    accin

    for(valorInicio;

    condicin;

    incremento)

    hacer-

    mientras(condici

    n) condicin

    accin

    SI

    do-

    while(condici

    n)

    88

    mientras(condici

    n)

    condicin

    accin

    SI

    while(condici

    n)

    Ejemplo

    DEFINICIN DEL PROBLEMA

    Determinar si un alumnos esta aprobado o reprobado segn su

    calificacin (esta aprobado si la calificacin es mayor o igual a 7).

    PLANEACION DE LA SOLUCION

    ENTRADA: calificacin (calif)

    Si la calificacin es mayor o igual (>=) a 7, se desplegara que esta

    aprobado, de lo contrario que esta reprobado

    SALIDA: Aprobado o Reprobado

    ALGORITMO

    1. PEDIR calif

    2. SI calif >= 7 ENTONCES

    3. DESPLEGAR Aprobado

    4. DE_OTRA_FORMA

    5. DESPLEGAR Reprobado

    6. FIN_SI

    DIAGRAMA DE FLUJO

  • 89

    calif >= 7

    calif

    inicio

    fin

    SI

    "Reprobado" "Aprobado"

    PSEUDOCODIGO

    1. entero calif;

    2. limpiar();

    3. pedir(calif);

    4. si(calif >= 7){

    5. irxy(10,5);

    6. escribir(Aprobado);

    7. }

    8. sino{

    9. irxy(10,5);

    10. escribir(Reprobado);

    11. }