SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
ALGORITMOS Y PROGRAMACIÓN




                  Algoritmosy
                 programación
ALGORITMOS Y PROGRAMACIÒN


Segundo Cuatrimestre




    Lic. Laura Gisela Velázquez Marmolejo
           Estado de México, México
          Teléfono (55) 50626468 y 69




                      i
Objetivo


Desarrollar la capacidad en el alumno para desarrollar y programar algoritmos, que le permitan
resolver problemas o realizar una tarea específica, mediante el uso de algún lenguaje de
programación, utilizando la computadora como herramienta de análisis de datos y solución de
problemas.




                                              2
Contenido Temático
TEMA                                           CAPITULO

Introducción                                         3

Conceptos Básicos de Algoritmos                      5

Estructuras Algorítmicas Selectivas                  20

Estructuras Algorítmicas Cíclicas                    30

Arreglos                                             41

Introducción a los Lenguajes de Programación         46

Expresiones                                          50

Sentencias de Control                                58

Arreglos en Programación                             66

Funciones                                            70

Punteros                                             74

Estructuras de Datos                                 77

Conclusiones                                         81

Bibliografía                                         82




                                       3
Introducción
        El curso de Algoritmos y Programación representa una herramienta teórica y práctica tanto
para la solución de problemas genéricos como para estandarizar y automatizar cualquier proceso o
actividad, mediante la creación de programas para computadora.

        El curso promueve en primera instancia desarrollar las capacidades y habilidades del
participante para analizar problemas, comprender situaciones implícitas y modelar dichas situaciones
para la propuesta de la mejor solución, dando como resultado una secuencia de pasos orientados a
resolver dicha problemática además de detectar y considerar los parámetros que afectan a dichos
problemas, todo con la finalidad de crear un algoritmo. Para el eficiente diseño de algoritmos se
conocerán las principales herramientas y representaciones graficas a efecto de ser comprendidas e
implementadas.

        Asimismo, el participante aplicará los conocimientos de creación de algoritmos para la
automatización de tareas desarrollando habilidades para la selección de los correctos comandos en
algún lenguaje para trasladar esos algoritmos en un programa. Esto implica que el participante
también conocerá las bases de lenguaje y principios de programación en lenguaje C, utilizando la
computadora como herramienta de análisis de datos y solución de problemas.

       Este curso le servirá al participante como base para cursos subsecuentes como Métodos
Numéricos, Control, Robótica y Procesos Industriales, tanto en el desarrollo de solución de
problemas, creación de algoritmos y programas.




                                                 4
Unidad




                                                                                      1
                                                                                     Asignación




Conceptos Básicos de Algoritmos
Objetivo: Al término de la modulo el participante manipulará adecuadamente las
reglas de construcción de algoritmos, usando los distintos tipos de datos mediante
operaciones aritméticas y lógicas




M
           uchas veces aplicamos el algoritmo de manera inadvertida, inconciente o automáticamente.
           Esto generalmente se produce cuando el problema que tenemos enfrente lo hemos resuelto
           con anterioridad un gran número de veces. Supongamos que simplemente tenemos que abrir
           una puerta. Lo hemos hecho tantas veces que difícilmente nos ponemos a enumerar los pasos
para alcanzar este objetivo.
Por otra parte existen una gran cantidad de problemas que requieren de un análisis profundo y de un
pensamiento flexible y estructurado para su solución. Este curso abordará este tipo de problemas.



Construcción de Algoritmos

Objetivo: El participante nombrará las reglas de construcción de algoritmos con diagramas de flujo y
lenguaje algorítmico



Existen técnicas y herramientas metodológicas que nos permiten flexibilizar y estructurar el razonamiento
utilizado en la solución de un problema. Lo que permitirá finalmente la construcción de algoritmos
eficientes.

Concepto de Algoritmo
Un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver
un problema
                             “La superación es la base del éxito”


                                                      5
Características de los Algoritmos
Precisión:            Los pasos a seguir en el algoritmo deben ser precisados claramente
Determinismo:         El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe
                      arrojar los mismos resultados.
Finitud:              El algoritmo, independientemente de la complejidad del
                               mismo, siempre debe ser de longitud finita.




                                                  Algoritmo




               Datos de                                                           Impresión de
               Entrada                      Procesamiento de                      Resultados
                                                los datos




                Modulo 1                           Modulo 2                            Modulo 3




                                Ilustración A : Módulos o secciones de un algoritmo



Por otra parte, un algoritmo consta de tres secciones o módulos principales, en la figura A podemos
observarlas secciones que constituyen un algoritmo.



Modulo1      Representa la operación o acción que permite el ingreso de los
             datos del problema
Modulo2      Representa la operación o conjunto de operaciones secuenciales,
             cuyo objetivo es obtener la solución del problema
Modulo3      Representa una operación o conjunto de operaciones que
             permiten comunicar al exterior el o los resultados alcanzados.



                                                        6
Diagramas de Flujo
Un diagrama de flujo representa la esquematización gráfica de un algoritmo, es decir, muestra
gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema.

Su correcta construcción es sumamente importante porque a partir del mismo se escribe un
programa en algún lenguaje de programación. Figura 1.2.1


                               Este símbolo se utiliza para representar el
                               inicio o el fin de un diagrama de flujo.

                               Ese símbolo se utiliza para representar la
                               lectura de datos desde el dispositivo de
                               entrada

                               Este símbolo se utiliza para representar un
                               bloque de instrucciones. También se le
                               conoce con el nombre de símbolo de
                               proceso.

                               Este símbolo se utiliza para representar una
                               pregunta. Es conocido con el nombre de
                               diamante de decisión

                               Este símbolo representa la salida                          de
                               información, hacia el dispositivo                          de
                               presentación de datos


                               Este símbolo se utiliza para representar los
                               ciclos de repetición por medio de sentencias
                               FOR, o su equivalente en el lenguaje de
                               programación que se esté trabajando.

                               Conector

                               Indica el orden de las acciones del algoritmo

                                Ilustración B Símbolos utilizados en diagramas de flujo



Reglas para la construcción de un Diagrama de Flujo
   1. Todo diagrama de flujo debe tener un inicio y un fin



                                                          7
2. Las líneas utilizadas para indicar la dirección del flujo del diagrama debe ser rectas, verticales
       y horizontales
    3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar
       conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión
       impresión conexión o fin de diagrama
    4. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a
       derecha (right to left)
    5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de
       programación. La solución presentada en el diagrama puede escribirse posteriormente y
       fácilmente en diferentes lenguajes de programación
    6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o
       ayuden a entender lo que hicimos.
    7. Si el diagrama de flujo requiera mas de una hoja para su construcción, debemos utilizar los
       conectores adecuados y enumerar las p{aginas convenientemente
    8. No puede llegar más de una línea a un símbolo.


Reglas para la construcción de un Diagrama de Flujo
   1. Todo diagrama de flujo debe tener un inicio y un fin
   2. Las líneas utilizadas para indicar la dirección del flujo del diagrama debe ser rectas, verticales
       y horizontales
   3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar
       conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión
       impresión conexión o fin de diagrama
   4. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a
       derecha (right to left)
   5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de
       programación. La solución presentada en el diagrama puede escribirse posteriormente y fácilmente en
       diferentes lenguajes de programación
   6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o
       ayuden a entender lo que hicimos.
   7. Si el diagrama de flujo requiera mas de una hoja para su construcción, debemos utilizar los
       conectores adecuados y enumerar las p{aginas convenientemente
   8. No puede llegar mas de una línea a un símbolo.

Tipos de datos usados en algoritmos

Objetivo: Identifica los distintos tipos de datos que pueden ser usados en
algoritmos
Los datos se clasifican en simples y estructurados:

Simples Ocupan una sola casilla de memoria, por lo tanto hace referencia a un único valor a la vez




                                                      8
Estructurados.- Se caracterizan por el hecho de que con un nombre (identificador de variable
estructurada) se hace referencia a un grupo de casillas de memoria, es decir, tiene varios
componentes. Cada uno de los componentes puede ser a su vez un dato simple o estructurado

Dentro de los simples encontramos los numéricos, alfanuméricos y los lógicos; dentro de los
estructurados encontramos .la cadena de caracteres, los arreglos, los registros y los conjuntos. En la
siguiente tabla podemos ver algunos ejemplos de estos tipos de datos.

                                                                                        Ejemplos
  Nombre                        Descripción                                   (No Muestra Sintaxis de ningún
                                                                                Lenguaje de Programación)
Enteros (int)   Pueden estar precedidos de los signos + y -           128, 1528, -714, 25469, -56245
                , además no tiene parte decimal.
Reales          Tambien pueden estar precedidos de los                7.5, 128.0, -37.256, 25.3, 160000.0, -15.60
(float y        signos + y -, y tiene una parte decimal.
double)
Caracteres      Contiene un solo carácter, y se escribe               „a‟, „B‟, „$‟, „9‟ , „-‟, „#‟
(char)          entre apóstrofes
Boleanos        Son datos que solo pueden tomar dos                   10>32
(boolean)       valores: verdadero (trae), falso (false).
Cadena de       Contiene un conjunto de caracteres, y se              Letras del alfabeto, dígitos (0, 1, 2….9) o símbolos
caracteres      escribe entre comillas.                               especiales (#, $, ^, *, %, /, !, +, -…etc).
(String)
Arreglos        Colección finita, homogénea y ordenada de             UNIDIMENSIONALES O LINEALES (Cualquier
(array)         elementos; puede almacenar a N elementos              elemento es referenciado por un único índice)
                del mismo tipo y además permite el acceso             Ident_arreglo = ARREGLO [limiteinf...limsup] DE
                a cada uno d estos elementos                          tipo
                                                                      MULTIDIMENSIONALES
                                                                       *BIDIMENSIONALES (Hace referencia a cada
                                                                      elemento por medio de dos indices) Id_arreglo
                                                                      =ARREGLO [limitteinf...limitesup,
                                                                      liminfcol...limsupcol] DE tipo
Registros       Cada uno de sus componentes se                        Ident_registro = REGISTRO
                denomina campo. Los campos de un                         Id_campo1:tipo1
                registro pueden ser todos de diferente tipo.             Id_campo2:tipo2
                                                                      .........
                                                                         Id_campoN: tipoN
                                                                      {Fin de la identificación del registro}
                                                            Tabla 1



Identificadores, constantes y variables
Los datos a procesar por la computadora, ya sean simples estructurados, deben almacenarse en
casillas o celdas de memoria para su posterior utilización. Estas casillas o celdas de memoria
(constantes o variables), tienen un nombre que permite su identificación, al cual se le llama
identificador.




                                                              9
Memoria

        SUMA                                 ACUM
                                                                      NUM_1




        AUX                                  X7




           Ilustración C : Casillas de Memoria con los nombres de los Identificadores



Identificadores
Es el nombre que se les da a las casillas de memoria. Como se puede observaren la figura 1.2.1 la
memoria contiene casillas de memoria, en las cuales almacenan los datos, y para que estos datos sean
identificados se les asigna un identificador. En el ejemplo de la figura 1.2.1 hay una casilla de
memoria llamada suma, otra acum. etc. así la memoria las identifica.

Un identificador se forma de acuerdo a ciertas reglas (las mimas pueden tener alguna variante
dependiendo del lenguaje de programación):

           El primer que forma un identificador debe ser una letra
           Los demás caracteres pueden ser letras, dígitos o el siguiente símbolo especial: _
           La longitud del identificador es igual a 7 en la mayoría de los lenguajes de programación.

Así mismo, cada dato puede tratarse dentro de un programa de computadora como un dato
constante o variable, para entenderse mejor aquí se explica mas a detalle.

Constantes
Son datos que no cambian durante la ejecución del programa. Existen tipos de constantes como
tipos de datos. (entero, real, carácter, cadena de carácter, etc..)

           NUM                              RESU

                5                           “resultado”



           NREAL                            NUMREA

              7.25                          8.59




Ilustración D : Constantes representadas en memoria
La figura 1.2.2 muestra una constante llamada NUM, este es un espacio de memoria que almacena
un dato tipo entero y contiene el valor 5, mismo que no cambiara durante la ejecución del programa;


                                                                             10
el dato NUMERA almacena un dato de tipo real con un valor de 8.59 mismo que no cambiara su
valor: Sin embargo, existe también datos que funcionan al contrario de estos, esas son las variables.

Variables
Las variables son objetos que pueden cambiar su valor durante la ejecución de un programa.

Para nombrar las variables utilizarem os los identificadores que hemos explicado con anterioridad, al
igual que las constantes, pueden existir tipos de variables como tipos de datos. Los nombres de las
variables deben ser representativos de la función que cumplen en el programa. La figura 1.2.3
muestra un dato llamado I, mismo que almacena un valor entero y esta dándole un valor de inicio de
0, mismo que en cualquier momento cambiará de valor por medio de una operación aritmética, una
asignación, etc.




                                        I

                                       0




               SUMA                                 SUEL

                     0                                     0




       Ilustración E: Variables representadas en memoria




Operaciones aritméticas y lógicas

Objetivo: Opera correctamente los distintos tipos de operaciones aplicables a
algoritmos


Los datos por si solos no nos servirían de nada si con ellos no realizáramos ninguna tarea, en el caso
de la programación los datos constantemente los utilizamos para realizar operaciones aritméticas,
lógicas, asignaciones, etcétera, para ello necesitamos una herramienta que nos permita realizarlas,
para ellos nos auxiliamos de operadores, los mimos que estudiaremos a continuación:




                                                               11
Operadores aritméticos
    Operador
                        Operación                       Ejemplo                  Resultado
   aritmético
        **                Potencia                      4**3                         64
        *              Multiplicación                  8.25*7                      57.75
        /                 división                      15/4                        3.75
        +                   suma                   125.78 + 62.50                  188.28
         -                  resta                   65.30 – 32.33                  32.97
       mod            Modulo(residuo)                 15 mod 2                        1
       div             División entera                17 mod 3                        5
                                                 Tabla 2


Con estos operadores se puede realizar cualquier operación aritmética, sin embargo, al evaluar
expresiones que contienen operadores aritméticos debemos respetar la jerarquía en el orden de
aplicación. es decir, debemos aplicar primero el operador de mayor jerarquía, resolver esa operación,
y así sucesivamente. El operador () es un operador asociativo que tiene la prioridad mas alta en
cualquier lenguaje de programación.

                      Jerarquía de los operadores aritméticos

         Operador                  Jerarquía                      Operación

           **                        (mayor)               Potencia
     *, /, mod, div                                        Multiplicación, división,
                                                           modulo, división entera
            +, -                    (menor)                Suma, resta
                                                 Tabla 3



Ejemplos:
Caso 1:
                                                 7+5-6
                                                  12 – 2
                                                    6
Caso 2:

                                           9 + 7 * 8 – 36 / 5
                                            9 + 56 – 36 / 5
                                              9 + 56 – 7.2
                                                65 – 7.2
                                                  57.8

Caso 3
                                          7 * 5 ** 3 / 4 div 3



                                                   12
7 * 125 / 4 div 3
                                             875 / 4 div 3
                                             218.75 div 3
                                                  72
Expresiones lógicas o booleanas.
El valor que pueden tomar estas expresiones es el de verdadero o falso. Se utilizan frecuentemente
en las estructuras selectivas (dependiendo del resultado de la evaluación se toma por un determinado
camino alternativo) y en las estructuras repetitivas (dependiendo del resultado de la evaluación se
continua con el ciclo o se interrumpe el mismo)

Operadores relacionales
Son operadores que permiten comparar dos operándoos. El resultado de una expresión con
operadores relacionales es verdadero o falso. Los cuales pueden ser números, alfanuméricos,
constantes o variables. Las constantes o variables pueden ser entero, real, carácter o cadena de
carácter.
                                     Operadores relacionales

                                  Operador           Operación
                                      >           Mayor que
                                      <           Menor que
                                      >=        Mayor o igual que
                                      <=        Menor o igual que
                                      ==             Igual
                                      <>         Diferente que
                                                 Tabla 4


Ejemplo:

                                               A=5
                                              B=16
                                        (A ** 2 ) > (B * 2 )
                                           25 > (B * 2 )
                                             25 > 32
                                             FALSO

  Nota

       Cuando se utilizan los operadores de relación con los operadores lógicos, falso es menor
       que verdaderos VERDADERO > FALSO = VERDADERO.




                                                  13
Nota

       No se pueden realizar la comparación entre un valor lógico y uno numérico, utilizando un
       operador relacional.


Operadores lógicos
Los operadores lógicos son operadores que permiten formular condiciones complejas partir de
condiciones simples. Los operadores lógicos son de conjunción (y), disyunción (o) y negación (no).

                    Operadores Lógicos
Operador Lógico Jerarquía Expresión lógica                  Significado
     NO           Mayor         No P                            No P
                                                          No es cierto que P
                                                           Es falso que P
        Y                              PyQ                      PyQ
                                                          P sin embargo Q
        O             Menor            PoQ                      PoQ
                                                          O P o Q o ambas
                                                           Mínimo P o Q
                                                Tabla 5


Ejemplo:
                      No (15 >= 7 ** 2 ) O ( 43 – 8 * 2 div 4 <> 3 * 2 div 2 )
                         No FALSO O ( 43 – 8 * 2 div 4 <> 3 * 2 div 2 )
                          No FALSO O ( 43 – 16 div 4 <> 3 * 2 div 2 )
                            No FALSO O ( 43 – 16 div 4 <> 6 div 2 )
                              No FALSO O ( 43 – 16 div 4 <> 3 )
                                No FALSO O ( 43 – 39 <> 3 )
                                No FALSO O VERDADERO
                              VERDADERO O VERDADERO
                                         VERDADERO

Bloque de asignación
Se utiliza para asignar valores o expresiones a una variable la asignación es una operación
destructiva.

Variable – expresión o valor

La expresión puede ser aritmética (-+*etc) o lógica (operadores relacionales = etc y operadores
lógicos: no y o)




                                                 14
Elaboración de algoritmos

Objetivo: Diseña diagramas de flujo de situaciones específicas
Ejercicios
1. Construya un diagrama de flujo tal que dados los datos A, B, C Y D que representan números
enteros,
escriba los mismos en orden inverso.

Datos: A, B, C y D son variables de tipo entero
                                        INICIO




                                      A,B,C,D




                                      D,C,B,A




                                      INICIO


                                                 Ilustración F


Observemos que el programa, primeramente tiene un inicio y un fin, como lo indican las reglas de
construcción de algoritmos, posteriormente recibe los datos tipo entero A, B, C y D, y los imprime
de forma inversa.

Si dicho programa deseáramos traducirlo a lenguaje algorítmico, tendríamos que utilizar las
siguientes instrucciones, mismas que corresponden a los signos del diagrama de flujo.


Instrucciones en lenguaje algorítmico

Leer ..                                                                   Leer A, B, C




                                                     15
Hacer..                                                                           Hacer A ---- A +
                                                                                  SUE



Escribir..                                                                        Escribir A, B




                                                                 Tabla 6


Considerando el diagrama de flujo No. 1, para ejemplificar las instrucciones en lenguaje algorítmico
en ese programa.

                              INVIERTE _ DATOS
                              {El programa dado un conjunto de datos enteros
                              de entrada invierte el orden de los mismos cuando
                              los imprime}
                              {A, B, C y D son variables de tipo entero}
                              1. Leer A, B, C, D
                              2. Escribir D, C, B, A

2. Construya un diagrama de flujo tal que dado los datos enteros A y B, escriba el resultado de la
siguiente expresión
(A+B)2
  3
Datos: A, B (variables de tipo entero)
                INICIO




               A,B                                Explicación de la variable
                                                A, B: Variables de tipo entero
                                                 RES: Variable tipo variable.

     C  (A+B) ** 2/3




                 C




                 FIN

                                                               Ilustración G

A continuación veremos el seguimiento del algoritmo para diferentes corridas




                                                                   16
A                        B                       RES

                           10                       5                       75
                           8                        7                       75
                           2                        4                       12
                           6                        3                       27
Instrucciones en lenguaje algorítmico en ese programa del diagrama No. 2
                      CALCULA
                      {El programa, dados como datos los enteros A y B,
                      calcula el resultado de una expresión}
                      {A y B son variables de tipo entero. RES es una variable
                      de tipo real}
                      1.        Leer A, B
                      2.        Hacer RES  (A + B) ** 2 / 3
                      3.        Escribir RES



Ejercicios

1. Resuelve los siguientes casos tomando en cuenta la jerarquía de los operadores aritméticos,
   lógicos y relacionales
       13 * 4 / ( 9 -(56 – 22 * 10 + (9 ** 3 / 14) + 2 ) / 12) -22
       ((2634 div 3 / 4 ** 4 ) > ( 152 + 18 * 3 ** 2 ) ) <= ((126 * 2 ) < (22 * 5 / 3 ))
       ( 15 >= 4 * 8 ** 2 O 5 > 5 Y 12 > 21 ) O NO ( 5 * 3 < 9 + 7 * 2 mod 4 ** 2 )

2. Instrucciones: Elabore en cada caso el diagrama de flujo y cuadro de datos con 3 corridas
   diferentes.
       Tal que dado el costo de un artículo vendido y la cantidad de dinero entregada por el cliente,
       calcule e imprima el cambio que se debe entregar.

        Resuelva el problema que tienen en una gasolinera. Los surtidores de la misma registran lo
        que “surten” en galones, pero el precio de la gasolina esta fijado en litros. El diagrama de
        flujo debe calcular e imprimir lo que hay que cobrarle al cliente. Nota: galón = 3.875 litros;
        precio de la gasolina es de $8.20


        Calcule e imprima el número de segundos que hay en un determinado número de días.


3. De los siguientes algoritmos en lenguaje algorítmico, construye el diagrama de flujo
   correspondiente




                                                   17
a. algoritmo_sumar

   variables
     entero a, b, c

   inicio
     escribir( "Introduzca el primer número (entero): " )
     leer( a )
     escribir( "Introduzca el segundo número (entero): " )
     leer( b )
     c←a+b
     escribir( "La suma es: ", c )
   fin

b. algoritmo_doble

   variables
     real numero

   inicio
   escribir( "Introduzca su nombre: " )

   leer( nombre )

   escribir( "Introduzca un número real: " )

   leer( numero )

   escribir( nombre, ", el doble de ", numero, " es: ", numero * 2 )

   fin

c. Area_de_una_circunferencia
   /* Cabecera */

   algoritmo Area_de_una_circunferencia

   /* Declaraciones */

   constantes
     PI = 3.141592

   variables
     real area, radio




                         18
/* Cuerpo */

     inicio
         escribir( "Introduzca radio: " )
         leer( radio )
         area ← PI * radio ** 2
         escribir( "El área de la circunferencia es: ", area )
     fin



d.   /* Cabecera */
     Area_de_una_circunferencia

     /* Declaraciones */
     constantes
       PI = 3.141592

     variables
       real area, radio

     /* Cuerpo */
     inicio
         escribir( "Introduzca radio: " )
         leer( radio )
         area ← PI * radio ** 2
         escribir( "El área de la circunferencia es: ", area )
     fin




                            19
Unidad




                                                                                        2
                                                                                      Asignación




Estructuras Algorítmicas
Selectivas
Objetivo: Al término de la unidad el participante diseñara algoritmos que incluyan
estructuras de selección usadas en algoritmos computacionales




L
        as estructuras algorítmicas selectivas las utilizamos cuando debemos tomar una decisión, para
        establecer un proceso o señalar un camino alternativo a seguir.
        Esta toma de decisión expresada en el diagrama de flujo con un rombo, se basa en la evaluación
        de una o mas condiciones que nos señalaran como alternativa o consecuencia, la rama a seguir.
Hay situaciones en las que la toma de decisiones se realiza en cascada. Por lo que para alcanzar la solución
de un problema o subproblema debemos aplicar prácticamente un árbol de decisión.

Clasificación:
SI ENTONCES (estructura selectiva simple)
SI ENTONCES / SINO (Estructura selectiva doble)
SI MÚLTIPLE (Estructura selectiva múltiple)

Cabe señalar que cuando a las estructuras selectivas las aplicamos en cascada, podemos utilizar una
combinación de las estructuras señaladas anteriormente en la clasificación

Estructura selectiva simple SI ENTONCES
Permite que el flujo del diagrama siga por un camino específico si se cumple una condición o
conjunto de condiciones. Si al evaluar la condición (condiciones) el resultado es verdadero, entonces
se ejecutan ciertas operaciones. Luego se continúa con la secuencia normal del diagrama de flujo.
Ejemplo examen


                                        “Lucha por tus ideales”




                                                    20
Donde Condición expresa
               CONDICIÓN
                                                                 la condición o conjunto de
                                                                 condiciones a evaluar.
                                                                 Operación expresa la
                                                                 operación o conjuntote
                                                                 operaciones que se van a
                                                                 realizar si la condición
               OPERACIÓN                                         resulta verdadera




                                Ilustración H Diagrama de Flujo de la Estructura Si Entonces



El lenguaje algorítmico de la estructura selectiva si entonces, es el siguiente:



                                           .
                                           .
                                           .
                                           Si condición entonces
                                             Hacer operación
                                           {Fin del condicional}
                                           .
                                           .
                                           .




Ejemplos:
Construya un diagrama de flujo talque dado como dato la calificación de un alumno en un
examen, escriba “aprobado” en caso de que esa calificación sea mayor a 8




                                                            21
INICIO                                 Lenguaje Algorítmico


                                            Examen_selectiva_simple
       CAL                                  1.   INICIO
                                            2.   Leer CAL
                                            3.   Si CAL > 8 entonces
                                                 Escribir “Aprobado”
                                            4.   Fin de Condicional paso 3
                                            5.   FIN
                    N                 A continuación se presenta el
                    O                 seguimiento del algoritmo para
      CAL                             diferentes m corridas
      >8
           S                          NUMERO DE
            I                                            DATO      RESULTADO
                                       CORRIDA
    “Aprobado
    ”                                       1            8.75     Aprobado
                                            2            7.90
                                            3            8.00
                                            4            9.50     Aprobado
                                            5            8.35     Aprobado
       FIN                                                Tabla 7


                                Ilustración I Diagrama de Flujo




             INICIO                          Construya un diagrama de flujo
                                             talque dado como dato el sueldo de
                                             un trabajador, aplíquele un aumento
                                             del 15% si su sueldo es inferior a
                SUE                          $1000.00. Imprima en este caso el
                                             nuevo sueldo del trabajador.
                                                         Lenguaje
                                                         Algorítmico

                                                      Aumento_selectiva
                           NO                         1.   INICIO
                                                      2.   Leer SUE
       SUE < 1000                                     3.   Si SUE <
                                                           1000 entonces
                                                           Hacer AUM
                      SI
                                                   ← SUE * 1.15 y

AUM ← SUE * 1.15                                                  NSUE ←
NSUE ← SUE +AUM                                                   SUE +AUM

                                                            Escribir
             NSUE                                        NSUE
                                                         4. Fin de
                                                            Condicional
                                                            paso 3
                                                         5. FIN
             FIN

                                         Ilustración J




                                             22
Ejercicios
Construya un diagrama de flujo tal que dado como datos los valores enteros P y Q,
determine si los mismos satisfacen la siguiente expresión:

                                          P3 + Q2 - 2*P2 < 680

Estructura selectiva doble si entonces / sino
Las estructura selectiva si entonces / sino permite que el flujo del diagrama se bifurfique
por dos ramas diferentes en el punto de la toma de decisión. Si al evaluar la condición el
resultado verdadero, entonces se sigue por un camino especifric1o y se ejecutan ciertas
operaciones. Por otra parte si el resultado es falso entonces se sigue por otro camino y se
ejecutan otras operaciones. En ambos casos, luego de ejecutarse las operaciones indicadas
se continúa con las secuencia normal del diagrama.




                      SI                                                   NO

                                          CONDICIÓN




          OPERACION1                                                    OPERACION2




                           Ilustración K Diagrama de flujo que ilustra la estructura selectiva.




 Donde:
 Condición expresa la condición o conjunto de condiciones a
 evaluar.

 Operación1 expresa la operación o conjuntote operaciones que se
 van a realizar si la condición resulta verdadera
 Operación2 expresa la operación o conjuntote operaciones que se
 van a realizar si la condición resulta falsa

Se representa en lenguaje algorítmico de la siguiente forma



                                                           23
.
                            .
                            .
                            Si condición
                                       Entonces
                                                    Hacer operación1
                                       Sino
                                                    Hacer operación2
                            {Fin del condicional}
                            .
                            .
                            .


Ejercicios:

Retomemos los programas de la selectiva simple:
Construya un diagrama de flujo tal quedado como dato la calificación de un alumno en un
examen, escriba “aprobado” si su calificación es mayor o igual a 8 y “reprobado” en caso
contrario.

       Elabora el Diagrama de                               Lenguaje Algorítmico
       Flujo




Examen_selectiva_doble
{El programa, dado como dato la calificación de un alumno en un examen, escribe
“aprobado” si su calificación es mayor o igual que 8 y “reprobado” en caso contrario}
{CAL es una variable de tipo real}
                                           1. Inicio
                                           2. Leer CAL
                                           3. Si CAL>=8
                                              Entonces
                                              Escribir “Aprobado”
                                              Sino
                                              Escribir “Reprobado”
                                           4. {Fin del condicional}
                                      Fin



                                                     24
Construya un diagrama de flujo talque dado como dato el sueldo de un trabajador, aplíquele
un aumento del 15% si su sueldo es inferior a $1000.00. y 12% en caso contrario. Imprima
en este caso el nuevo sueldo del trabajador.

       Elabora el Diagrama de                 Lenguaje Algorítmico
       Flujo
                                            Aumento_selectiva_doble
                                            {el programa talque dado como
                                            dato el sueldo de un trabajador,
                                            aplíquele un aumento del 15% si su
                                            sueldo es inferior a $1000.00. y
                                            12% en caso contrario }
                                            {SUE y NSUE son variables de tipo
                                            real}
                                               1. Inicio
                                               2. Leer SUE
                                               3. Si SUE < 1000
                                               Entonces
                                               Hacer NSUE – SUE * 1.15
                                               Sino
                                               Hacer NSUE – SUE * 1.12
                                               4. {Fin del condicional}
                                               5. Escribir NSUE
                                               6. Fin

Estructura selectiva múltiple si múltiple

La estructura selectiva si múltiple permite que el flujo del diagrama se bifurque por varios
ramas en. Punto de la toma de decisiones, esto en función del valor que tome el selector.
Así si el selector toma el valor 1 se ejecutara la acción 1, si toma el valor 2 se ejecutara la
acción 2,si tómale valor N se realizara la acción N, y si toma un valor distinto de los valores
comprendidos entre 1 y N, se continuará con el flujo normal del diagrama realizándose la
acción N + 1..

SELECTOR      Es la variable o expresión a evaluarse, según la cual se tomara una de las
“múltiples” decisiones o alternativas
ACCIÓN 1      expresa la operación o conjunto de operaciones que se van a realizar si el
selector toma el valor 1.
ACCIÓN 2      expresa la operación o conjunto de operaciones que se van a realizar si el
selector toma el valor 2.
ACCIÓN N      expresa la operación o conjunto de operaciones que se van a realizar si el
selector toma el valor N.
ACCIÓN 1      expresa la operación que se van a realizar cuando se continué con el flujo
normal del diagrama.



                                                25
SELECTOR




     ACCION1                     ACCION2        ACCION3




                                ACCION N + 1




Donde:


           .
           .
           .
           Si el selector igual
           Valor 1: Hacer acción 1
           Valor 1: Hacer acción 2
           .
           .
           Valor 1: Hacer acción N
           {Fin del condicional}
           Hacer acción N + 1
           .
           .




                                           26
Debido a que esta estructura es muy flexible permite aplicarse de diferentes formas,
observe el lenguaje algorítmico que se presenta a continuación.

   .                                                 .
   .                                                 .
   .                                                 .
   Si selector igual                                 Si selector igual
           VALOR 1: Hacer acción 1                           VALOR 1, 2: Hacer acción 1
           VALOR 2: Hacer acción 2                           VALOR 3, 4, 5: Hacer acción 2
           VALOR 3: Hacer acción 3                           De otra forma: Hacer acción 3
           De otra forma: Hacer acción X             {Fin del condicional}
   {Fin del condicional}                             Hacer acción X
   Hacer acción Y                                    .
   .                                                 .
   .                                                 .
   .

Ejemplo:

Construya un diagrama de flujo tal que dado como datos la categoría y el sueldo de un
trabajador, calcule el aumento correspondiente, teniendo en cuenta la siguiente tabla.
Imprima la categoría del trabajador y su nuevo sueldo
                                                     Aumento
                                       Categoría
                                                         %
                                           1             15
                                           2             10
                                           3              8
Aumento_selectiva_multiple
{El programa calcula el aumento de sueldo de los trabajadores, teniendo en cuenta su categoría. El
aumento se incorpora al salario}
{CATE es una variable de tipo entero, SUE y NSUE son variables de tipo real}

    1. Inicio
    2. Leer CATE, SUE
    3. Si CATE igual
           1: Hacer NSUE ← SUE * 1.15
           2: Hacer NSUE ← SUE * 1.10
           3: Hacer NSUE ← SUE * 1.08
    4. {Fin del condicional del paso 3}
    5. Escribir CATE, NSUE
    6. Fin




                                                   27
INICIO


                                             CATE, SUE



                                               CATE
         1
                                                                             3
                                                         2
     NSUE ← SUE *                          NSUE ← SUE *             NSUE ← SUE *
         1.15                                  1.10                     1.08



                                             CATE, SUE




                                                FIN


Estructura selectivas en cascada
Encontramos numerosos casos en el desarrollo de la solución de problemas en el que luego de toma
la decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Se señala
luego de evaluar las condiciones la rama correspondiente a seguir, nuevamente podemos tomar otra
decisión. El proceso puede repetirse numerosas veces




                                                 NO
                           CONDICIÓ
                           N1


                                      SI
             SI                                        NO

                           CONDICIÓ
                           N2


    OPERACION                                         OPERACION22
    21




.




                                                         28
Ejercicio:
Desarrolla el diagrama de flujo del siguiente programa:
                                     DESCENDENTE_SELECTIVA_CASCADA
                                     {el programa, dados como datos tres números enteros diferentes,
                                     escribe estos números en forma descendente}
                                     {A, B y C son variables de tipo entero}
                                     1. Leer A, B, C
                                     2. Si A > B
                                              Entonces
                                              2.1 Si A > C
                                                      entonces
                                                      2.1.1 Si B > C
                                                               entonces
                                                                       Escribir A, B y C
                                                               sino
                                                                               Escribir A, C y B
                                                      2.1.2 {Fin del condicional del paso 2.1.1}
                                                               Sino
                                                                       Escribir C, A y B
                                              2.2 {Fin del condicional del paso 2.1}
                                              Sino
                                              2.3 Si B > C
                                                      Entonces
                                                      2.3.1 Si A > C
                                                               Entonces
                                                                       Escribir B, A y C
                                                               Sino
                                                                       Escribir B, C y A
                                                      2.3.2 {Fin del condicional del paso 2.3.1}
                                                      Sino
                                                               Escribir C, B y A
                                              2.4 {Fin del condicional del paso 2.3}
                                     3. {Fin del condicional del paso 2}



Construya un diagrama de flujo tal que dado los datos como dados los valores enteros P y Q,
determine si los mismos satisfacen la siguiente expresión:
P3 +Q3 -2 * P < 680




                                                29
U.A.



                                                                                                         3
Estructuras Algorítmicas Cíclicas
Objetivo: Al finalizar el modulo el participante usará las distintas estructuras cíclicas aplicables a
algoritmos




E
             n la practica es común encontrar algoritmos cuyas operaciones se debe ejecutar un número
             repetido de veces. Las instrucciones son las mismas, pero los datos sobre los que se trabaja
             varían. El conjunto de instrucciones que se ejecuta repetidamente se llama ciclo.

Tipos de estructuras cíclicas
Objetivo: Comparara las distintas estructuras cíclicas aplicables a algoritmos



Todo ciclo debe terminar de ejecutarse luego de un número finito de veces, por lo que es necesario en
cada iteración del mismo, evaluar las condiciones necesarias para decidir si se va a seguir ejecutando o si
debe detenerse. en todo ciclo debe existir una condición de parada de ciclo o fin de ciclo.
En algunos ciclo podemos establecer el número de veces que deseamos que se repita, el cual lo
llamaremos repetir

La estructura repetitiva repetir FOR

Repetir (FOR), es adecuada para utilizar en un ciclo que s ejecutará un número definido de veces.

La estructura FOR tiene
    Una variable de control del ciclo
    Un valor inicial
    Un valor final
    Un incremento o decremento


                              “Con constancia lograras todo lo que te propongas”




                                                               30
Lenguaje algorítmico de la estructura repetir
                      Hacer <-- VI

                      Repetir con V desde VI hasta VF
                      {Proceso}
                      .
                      .
                      .
                      Hacer V  V + ID
                      {Fin del ciclo}
                                    Representa el lenguaje del diagrama de flujo




                                                                              VVI
                    VVI

                              NO                                                        NO

                       SI
                     V(<)VF                                                    SI
                                                                                   V(>)VF
                     …(<)                                                          …(>)



                 PROCESO                                                 PROCESO




                  V V+ID                                                  V V-ID




                    ASCENDENTE                                  DESCENDENTE
                                               V- Control de ciclo
                                               VI – valor inicial
                                               VF – valor final
                                               ID - incremento
                                         Ilustración 12Diagrama de Flujo


Las estructura repetitiva mientras (WHILE)
Es la estructura adecuada para utilizar en un ciclo cuando no sabemos el número de veces que este
se ha de repetir. Dicho número depende de las posiciones dentro del ciclo.

   ciclo: conjunto de instrucciones que se ejecutaran repetidamente
   Condición de terminación: La evaluación de esta condición permite decidir cuando finaliza la
   ejecución del ciclo. La condición se evalúa al inicio del mismo.




                                                        31
PIPROP.INIC                         Hacer PI  PRIOPOSICION INICIAL
                    I                                    Mientras PI es verdadero repetir
                                                         .
                      EVALUAC
                                     NO                    .
                      IÓN DE                             .
                      PI                                 {PROCESO}
                             SI                            .
                                                         .
                PROCESO
                                                         .
                                                         Hacer PI  modificación de PI
                                                         {Fin de ciclo}
                  PI MODIF. de PI



         Diagrama de flujo                     Lenguaje algorítmico del diagrama de flujo 3.2 estructura cíclica mientras




Creación de programas con estructuras cíclicas
Objetivo.- Usara las distintas técnicas de creación de ciclos en algoritmos.


Ejemplo:

Dados como datos los sueldos de 10 trabajadores de una empresa, obtenga el total de la nomina de
la misma. Considere además que no puede utilizar estructuras algorítmicas repetitivas.

Datos: SUE1, SUE2, SUE3….SUE10
DONDE: SUEi              Es una variable de tipo real que representa el sueldo del trabajador i
                         (1 <= i <= 10)
Explicación de las variables
I:     Es una variable de tipo entero que representa la variable de control del ciclo. Contabiliza el
       número de veces que se ha de repetirse una determinada acción. El contador toma un valor
       inicial (generalmente 0 ó 1) y se incrementa en la mayoría de los casos en una unidad en cada
       vuelta del ciclo.

NOMINA: Es una variable de tipo real que representa un acumulador. Este se utiliza cuando
debemos    obtener el total acumulado de un conjunto de cantidades. Generalmente se inicializa
en cero.




                                                               32
Inicio                 NOMINA
                                                 {Calcula el total de la nomina de un grupo de 10
                                                 empleados}
                 NOMINA 0                       {I variable de tipo entero. SUE y NOMINA tipo
                                                 real}

                          I1                    Variables
                                                 entero i,
                                                 real SUE, NOMINA
                        I < 10
                                                 1. Inicio
                                                 2. Hacer Nomina  0 e I 1
                                                 3. Repetir con I desde 1 hasta 10
                                                          Leer SUE
                          SUE                             Hacer NOMINA  NOMINA + SUE e
                                                 II+1
                                                 4. {Fin del paso 2}
            NOMINA  NOMINA + SUE                5. Escribir NOMINA
                                                 6. Fin
                       II+1




                    NOMINA




                         Inicio



              Diagrama de flujo 3.2


Ejercicios:
Escriba un diagrama de flujo tal que dado un grupo de números naturales positivos, calcule e
imprima el cubo de estos números.
Datos: Num1, num2, num3…-1 (NUMi es una variable de tipo entero que representa el numero
entero positivo i, El fin de datos esta dado por -1)

Explicación de las variables
NUM Variable de tipo entero
CUB: Variable de tipo real. Almacena el cubo de l numero que se ingresa




                                               33
CUBO                                                 Elabore el diagrama de flujo
{El programa calcula el cubo de un grupo de
números enteros positivos que se ingresan}
{NUM variable de tipo entero. CUB de tipo
real}
    1. Leer NUM
    2. Mientras (NUM <> -1) Repetir
        Hacer CUB  NUM**3
        Escribir CUB
        Leer NUM
    3. {Fin del paso 2}




Escriba un diagrama de flujo tal que como datos 270 números enteros, obtenga la suma de las
números impares y el promedio de los números pares WHILE
                                                   1. Hacer SUMPAR 1, SUMIMP 0,
                                                         CUEPAR 0 e i 1
                                                   2. Repetir con I desde 1 hasta 270
                                                             Leer NUM
                                                      2.1 SI (NUM <> 0) entonces
                                                       2.1.1 Si (-1 ** NUM )> 0
                                                       Entonces
                                                          Hacer SUMPAR  SUMPAR + NUM Y
                                                       CUEPAR CUEPAR + 1
                                                       Sino
                                                         Hacer SUMIMP  SUMIMP + NUM
                                                       2.1.2 {fin del condicional del paso 2.1.1}
                                                      2.2 {fin del condicional del paso 2.1}
                                                        Hacer I  i + 1
                                                   3. {fin del ciclo del paso 2}
                                                   4. Hacer PROBAR  SUMPAR / CUEPAR
                                                   5.    Escribir PROBAR Y SUMPAR
Calcule el aumento de sueldo para un grupo de empelados de una empresa teniendo en cuenta el
siguiente criterio WHILE
    Si el sueldo es inferior a $ 1000 – aumento 15%
    Si el sueldo es mayor o igual a $1000 – aumento 12%
    Imprima el sueldo suevo del trabajador y el total de nomina de la empresa, considerando este
    nuevo aumento


                                                34
Elabore diagrama de flujo                     Elabore lenguaje algorítmico




Dado N números enteros como dato haga un diagrama de flujo que: FOR
   Obtenga cuantos números leídos fueron mayores que cero
   Calcule el promedio de los números positivos
   Obtenga el promedio de todos los números
Elabore diagrama de flujo                     Elabore lenguaje algorítmico




                                            35
Declaración variables
Enteros Vchi, Vmed,Vgra,         { Vchi, Vmed,Vgra: acumulan en numero de ventas}
Entero I         {I Representa la variable de control de ciclo}
Real TVchi, TVmed, TVgra, TVentaDia             { TVchi, TVmed, TVgra,, almacena el total de ventas
de cada tipo}
{ TVentaDia almacena el total de la venta del día}
Real Venta       {Indica la venta de I del vendedor}
Cuerpo
Inicio
1. Inicio
2. Hacer Vchi0, Vmed0, Vgra0, TVchi0, Temed0, TVgra0,
3. Escribir “Desea realizar una venta S – N: ”
4. Leer Respuesta
5. Repetir con I desde 1 hasta Respuesta<>”S”
    5.1 Escribir “introduce el importe de la venta”
    5.2 Leer Venta
      5.3 Si Venta<=200 entonces
                 Hacer VchiVchi+1 y TVchiTVchi+Venta
              Sino
                5.4 Si Venta<400 entonces
                        Hacer VmedVmed+1 y TVmedTVmed+Venta
                      Sino
                        Hacer VgraVgra+1 y TVgraTVgra+Venta
                 {Fin del condicional 5.4}
         {Fin del condicional 5.3}
         Hacer I  I + 1
6     {Fin del condicional del paso 5}
7     TVentaDia TVchi + Temed + TVgra
8     Escribir “Se realizaron” Vchi “ventas menores de $200.00, con un total de ” TVchi
9     Escribir “Se realizaron” Vmed “ventas entre $200.00 y $400.00, con un total de ” TVmed
10 Escribir “Se realizaron” Vgra “ ventas mayores de $400.00, con un total de ” TVgra
11 Escribir “El importe total de ventas del días es: ” TVentaDia
12 Fin




                                                36
Elabore Diagrama de Flujo




                            37
Elabora el diagrama de flujo y lenguaje algorítmico de cada caso

En una reciente elección hubo cuatro candidatos con identificadores 1,2,3,4). Usted habrá de
encontrar, mediante un programa, el número de votos correspondiente a cada candidato y el
porcentaje que obtuvo respecto al total de los votantes. El usuario tecleará los votos de manera
desorganizada, tal y como se obtuvieron en la elección, el final de datos esta representado por un
cero. {WHILE}

Elabore diagrama de flujo                Elabore lenguaje algorítmico




De una empresa con N empleados, necesitamos obtener el número de empleado y sueldo de un
trabajador con el mayor sueldo de la empresa. {FOR}




                                                 38
Elabore diagrama de flujo                Elabore lenguaje algorítmico




En el centro meteorológico de Argentina se llevan los promedios mensuales de las lluvias caídas en
las principales regiones cerealeras del país. Existen tres regiones importantes denominadas NORTE,
CENTRO y SUR. Haga un diagrama de flujo para calcular lo siguiente. {WHILE}
    El promedio anual de la región centro
    El mes y registro con menor lluvia en la región sur
    La región con mayor lluvia anual (Considere que los registros anuales de las regiones son
    diferentes).
Elabore diagrama de flujo           Elabore lenguaje algorítmico




                                                39
En un estadio se tienen 5 tipos diferentes de localidades, las cuales se identifican por una clave
numérica que es un valor comprendido entre 1 y 5. Los precios de cada localidad y los datos
referentes a las ventas de boletos para el próximo juego se proporcionan como sigue:

Haga un programa que:
   Lea los precios,
   Lea los datos de las ventas de boletos
   imprima para cada venta, la clave, la cantidad y el importe total de los boletos vendido es esta
   venta
   Calcule e imprima la cantidad de boletos vendidos de cada tipo
   Calcule e imprima la recaudación total del estadio
Elabore diagrama de flujo                 Elabore lenguaje algorítmico




                                                   40
Unidad




                                                                                     4
                                                                                   Asignación




Arreglos
Objetivo: Al finalizar el participante aplicara los arreglos en algoritmos



U
             n array es una colección de variables del mismo tipo que se referencia por un nombre
             común. A un elemento específico de un array se accede mediante un índice.

             Concepto y clasificación de arreglos
Objetivo: Al finalizar el participante definirá el concepto de arreglos

Un arreglo se define como una colección fuinita, homogénea y ordenada de elementos
Finita: Todo arreglo tiene un límite, es decir, se debe determinar cual será el número máximo de
elementos que podrán formar parte del arreglo
Homogénea: todos los elementos de un arreglo son del mismo tipo (enteros, reales) pero nunca una
combinación d estos.
Ordenada: Se puede determinar cual es el primer elemento, el segundo… y el               n-esimo
elemento.

Su característica principal es que puede almacenar N elementos del mismo tipo y además permite el
acceso a cada uno de estos elementos. Así se distinguen dos partes en los arreglos.

        los componentes
        los índices
Los componentes hacen referencia a los elementos que componen o forman el arreglo. Es decir son
los valores que se almacenan en cada una de sus casillas. Los índices, por otra parte, son los que
permiten acceder a los componentes del arreglo en forma individual. Para hacer referencia a un
componente de un arreglo se necesitan:
        el nombre del arreglo
        el índice del elemento


                                                       “Lucha por tus ideales”



                                                                       41
Arreglo palabras

       nombre[0]      nombre[1]       nombre[2] nombre[3]     nombre[4]       nombre[5]




Definición de arreglos:
ident_arreglo = ARREGLO [limitinf……. limitsup] DE tipo

palabras = ARREGLO [0..5] DE cadena de caracteres

       limitinf . . . . . limitsup: Con estos se declara el tipo de los índices así como el número de
       elementos que tendrá el arreglo. (tipo carácter, entero, etc. cualquier tipo ordinal) ejemplo:
       1..10        a..f
       Tipo: declara el tipo de datos para todos los elementos del arreglo. El tipo de los elementos
       no tiene que ser necesariamente el mismo de que el de los índices. (cualquier tipo: entero,
       carácter, cadena de carácter, etc.)
       [ ] se utilizan para indicar el índice del arreglo


OPERACIONES CON ARREGLOS
    Lectura / Escritura
    asignación
    actualización:
        - Inserción
        - eliminación
        - modificación
    Ordenación
    Búsqueda

LECTURA

El proceso relectura de un arreglo consiste en leer y asignar un valor a cada uno de sus elementos
    Leer ARRE [1]
    Leer ARRE [2]
    .
    .
    .
    Leer ARRE [5]




                                                   42
Escritura
Se debe escribir el valor de cada uno de los componentes. supóngase que se desea escribir los p
rimeros componentes del arreglo ARRE en forma consecutiva. Los pasos a seguir son:

Asignación
En general no es posible asignar directamente un valor a todo el arreglo, sino que se debe asignar el
valor deseado a cada componente. en seguida se analizan algunos ejemplos de asignación. En los
dos primeros casos se asigna un valor a una determinada casilla del arreglo

ARRE [1]  120
ARRE [3]  ARRE [1]/4

En el tercer caso se asigna el 0 a todas las casillas del arreglo.


Actualización
En un arreglo se pueden insertar, eliminar y/o modificar elementos. Para ello se debe tener en
cuenta si el arreglo esta ordenado o desordenado, es decir, si sus componentes respetan algún orden
entre sí

Ejercicios

1) Pida por teclado la base (dato real) de un triángulo.
2) Pida por teclado la altura (dato real) de un triángulo.
3) Calcule el área del triángulo.
4) Muestre por pantalla el resultado (dato real).*/

#include <stdio.h>
#include <conio.h>
int main(){
  float altura, area, base;
  clrscr();
  printf( "Introduzca base: " );
  scanf( "%f", &base );
  printf( "Introduzca altura: " );
  scanf( "%f", &altura );
            area = base * altura / 2;
  printf( "El area del triangulo es: %f", area );
  getch();
  return 0;
}




                                                     43
/*
1º) Pida por teclado la base (dato real) de un triángulo.
2º) Pida por teclado la altura (dato real) de un triángulo.
3º) Calcule el área del triángulo.
4º) Muestre por pantalla el resultado (dato real).
Nota: la operación aritmética se deberá hacer directamente
en la instrucción de impresión a pantalla*/

#include <stdio.h>
#include <conio.h>
int main()
{
  float altura, base;
  clrscr();
  printf( "Introduzca base: " );
  scanf( "%f", &base );
  printf( "Introduzca altura: " );
  scanf( "%f", &altura );

    printf( "El area del triangulo es: %f", base * altura / 2 );
    getch();
    return 0;
}

/*División entera (Entrada y salida estándar - Lenguaje C)

/* 1) Pida por teclado dos números (datos enteros).
2) Muestre por pantalla el resultado de realizar
la división entera del primer número introducido
por el usuario entre el segundo, y el modulo. */

#include <stdio.h>
#include <conio.h>
int main()
{
  int dividendo, divisor, cociente, modulo;
  clrscr();
  printf( "Introduzca dividendo (entero): " );
  scanf( "%d", &dividendo );
  printf( "Introduzca divisor (entero): " );
  scanf( "%d", &divisor );

    cociente = dividendo / divisor;
    modulo = dividendo % divisor;


                                                       44
printf( "%d div %d = %d , Modulo = %d ",dividendo, divisor, cociente, modulo );

    printf("nPresione cualquier tecla para continuar");
    getch();
    return 0;
}

/* convierta venda dolares al precio del momento*/

#include<conio.h>
#include<stdio.h>
main()
{
float precio, pdollar, dollar;
clrscr();

printf("CASA DE CAMBIOn");
printf("Cuantos dolares a comprar: ");
scanf("%f",&dollar);
printf("Teclea el costo del dolar frente al peso: ");
scanf("%f",&pdollar);

precio = dollar * pdollar;

printf("El pago es de= %f pesos",precio);
printf("nnnPresione cualquier tecla para terminar");
getch();
}




                                                    45
5
                                                                                        U. A.




Introducción a los Lenguajes de
Programación
Objetivo: Al finalizar el modulo el participante usara software adecuado para la creación e
programas específicos



C
         es un lenguaje estructurado de nivel medio hecho para programadores, la característica
         distintiva de un lenguaje estructurado es la compartimentalización de código y datos, se trata
         de la capacidad de un lenguaje de seccionar y esconder del resto del programa toda la
         información y todas las instrucciones necesarias para levar acabo una determinada tarea

Ambientes de Lenguajes de programación
Objetivo: Identifica el tipo de software a emplear para realizar un programa


Un compilador lee el programa entero y lo convierte a código objeto, que es una traducción del
código fuente del programa a una forma que puede ser ejecutada directamente por la computadora.
Una vez que el programa esta compilado, las líneas de código fuente dejan de tener sentido durante
la ejecución del programa.

Forma de un programa en C

                          declaraciones globales
                          int main (lista de parámetros)
                          {
                          tipo_devuelto función1 (lista de parámetros)
                          {

                          secuencias de instrucciones
                          }
                          tipo_devueklto función2 (lista de parámetros)
                          {
                          secuencia                          de                         instrucciones)


                                                       46
}
                      .
                      .
                      .
                      tipo_devuelto funciónN (lista de parámetros)
                      {
                      secuencia de instrucciones)
                      }


Compiladores

Turbo C++ 3.0

Este manual supone que has descargado el siguiente archivo:

Turbo C++ 3.0
(tc3.zip)

Instalación del compilador
    1. Descomprime el archivo en la ruta: C:TC
    2. Ejecuta el programa: INSTALL.EXE, y, nos aparece la siguiente ventana:
    3. Debemos pulsar Intro para continuar. Entonces nos aparecerá otra ventana.
    4. Ahora debemos escribir la letra de la unidad donde se encuentran los ficheros de instalación.
        Si éstos
    5. se encuentran en la unidad C, pulsaremos la tecla C y después Intro:
    6. A continuación se muestra otra ventana en la que aparece por defecto el directorio donde se
    7. encuentran los archivos de instalación. Lo normal será que aquí simplemente pulsemos Intro
        para
    8. continuar.
    9. La siguiente ventana nos indica en primer lugar el directorio donde se instalará Turbo C++,
        que
    10. siguiendo el ejemplo será: C:TC Con los cursores nos desplazamos hasta la opción Start
    11. Installation y pulsamos Intro, que iniciará la instalación.
    12. Mientras se instala, en la parte inferior de la ventana aparecerán los ficheros que se están
        copiando,
    13. como se muestra en la siguiente figura:
    14. Una vez se hayan copiado todos los archivos, saldrá una un cuadro (como el que se muestra
        bajo este
    15. párrafo) que nos informa de los últimos pasos de la instalación. Pulsamos Intro para
        continuar.
    16. Tras pulsar Intro nos aparece el contenido del fichero "leeme" de Turbo C++:
    17. Para finalizar pulsamos Escape.
    18. La instalación ha concluido.


                                                47
19.

Según los pasos realizados en este ejemplo de instalación, el programa Turbo C++ es TC.EXE y se
encuentra en C:TCBIN
Esta versión de Turbo C-C++ 3.0 para D.O.S, por lo tanto DEBE ser copiado en el directorio
RAIZ del disco rígido (c:) y NO dentro de c:archivos de programas, porque cuando se intente
ejecutar el compilador C, emitirá un mensaje de error, indicando queno encuentra las librerías. Ya
que por defecto buscará a las mismas en c:tc.

El resultado de la instalación debe ser el siguiente:
C:TC
  |
  |__BGI
  |
  |__BIN
  |
  |__INCLUDE
  |
  |__LIB

Configuración del modo gráfico
Esto es para que no tengas problemas al compilar los programas que usan funciones gráficas.
1. Ejecuta el programa: TC.EXE, que está en: C:TCBIN
2. Ve a: Options -> Linker -> Libraries, y dentro de este marca la opción Graphics library, entonces
pulsa el botón OK
Una vez creado tu programa deberás compilarlo con la combinación de teclas Alt + F9, y una vez
que no contenga errores deberás ejecutarlos con la combinación de teclas Control + F9.

C++Builder
Para hacer un programa en C++ Builder, en lenguaje c siempre se deben de seguir los siguientes
pasos:

    1. Se ingresa al programa dando doble clic en el icono
                                                          2. Una vez en el programa ingresamos al
                                                             menú File, opción New y
                                                             seleccionamos Console Wizard, en el




                                                    48
siguiente cuadro seleccionar Console y presionar finish.

   3.   Capturar en la pagina que aparece, nuestro código. (borrar las instrucciones que parecen por default)
   4.   para guardar el programa en el menú File, Save Proyect As, indicas el nombre en la ventana que aparece, indicas la ruta donde
        deseas guardarlo.




Prueba del compilador
                 1. Abre el programa: TC.EXE, vas a File -> New, esto crea un nuevo
                    archivo
                    O haga lo indicado en C++ builder

                 2. y escribe lo siguiente en el:
                                            #include <stdio.h>
                                            #include <conio.h>
                                            void main( ) {
                                            printf("Hola mundo");
                                            getch();
                                            }
                 3. Guarda el programa con el nombre: hola (automáticamente se añade la
                    extensión .CPP al archivo en Turbo C++ 3.1; en Buider se agrega la
                    extensión .bpr
                 4. Compila y ejecuta el programa, presionando: CTRL+F9 ó F9 según
                    sea el caso, entonces aparecerá en pantalla el mensaje:




                                                               49
6
                                                                                                   U. A.




Expresiones
Objetivo: Al finalizar el modulo el participante será capaz de escribir sentencias y expresiones
en el lenguaje de programación designado




E
          n sentido mas general, podemos decir, que una instrucción es una parte del programa que puede
          ejecutarse. Es decir, una instrucción especifica una acción. C clasifica las instrucciones en estos
          grupos: Selección, Iteración, Salto, Etiquetado, Expresión y Bloque. Las cuales se describirán
          más adelante

Tipos de expresiones

Objetivo: Escribirá sentencias y expresiones en el lenguaje de programación designado
Tipos de datos básicos
       char
       int
       float
   double
   void

Nombres de los identificadores
En C, los nombres de las variables, funciones, etiquetas y otros objetos definidos por el usuario de
denominan identificadores. La longitud de un identificador puede variar entre uno y varios
caracteres.
*el primer carácter debe ser una letra o un símbolo de subrayado y los caracteres siguientes pueden
ser letras, letras números o símbolos de subrayado

En C las minúsculas y la mayúsculas se tratan como distintas, Ej. Cuenta, Cuenta y CUENTA son
tres identificadores diferentes.

Una variable es una posición de memoria con nombre que se usa para mantener un valor que puede
ser modificado por el programa. Todas las variables deben de estar declaradas antes de poder ser
utilizadas.


                                                           50
Declaración de variables

tipo lista_de_variables;

int i, j, y;
short int nio;
unsigned int, u;
etc..

Donde se declaran las variables


Existen sitios basicvos donde se pueden declarer las variables:
   Dentro de las funciones (variables locales)
   En ladefinición de parámetros de funciones ( parámetros formales)
   Fuera de todas las funciones (variables globales)


Variables locales
Las variables locales pueden ser utilizadas solo en las instrucciones que estén dentro del bloque en el
que han sido declaradas. Estas variables solo existen mientras se esta ejecutando el bloque de
código en el que fueron declaradas, ósea se crea al entrar y se destruye al salir, ósea que puede haber
dos variables con el mismo nombre en diferente bloque de código y cada una será distinta de la otra.

Recuerde que un bloque de código comienza con una llave de apertura y termina con una llave de
cierre.
Por costumbre las variables se declaran después de la llave de apertura y antes de cualquier
instrucción, sin embargo pu8ede hacerse en cualquier línea, antes de que esta se utilizada.
Las variables locales no pueden retener sus valores entre llamadas, sin embargo se puede indicar al
compilador que retenga sus valores mediante el uso del modificador static.


Parámetros formales
Si una función va a usar argumentos, debe declarar las variables que van a aceptar los valores de los
argumentos. Esas variables son los parámetros formales de la función. Se comportan como
cualquier otra variables local de la función, sus declaraciones se dan tras el nombre de la función y
entre paréntesis.

#/* Devuelve 1 si c es parte de la cadena s; si no, 0 */
Int esta_en (char *s, char c)
{




                                                  51
While (*s)
       if (*s == c) return 1;

        else s++;
return 0;
}

Variables globales

Se conocen a lo largo de todo el programa y se pueden usar en cualquier parte del código. Además
mantiene sus valores durante toda la ejecución del programa, pueden ser accedidas por cualquier
expresión, independientemente de la función.
Lo mejor es declara todas las variables globales al principio del programa antes de la función main.
Const
Las variables tipo const no pueden ser modificadas por el programa, sin embargo a una variable
const se le puede dar un valorinicial. El compilador es libre de situar las variables de este tipo en
memoria de solo lectura.

Especificadores de formato

Cuando a la función printf se le pase una lista de argumentos (expresiones), se debe escribir un
especificador de formato por cada argumento. En la printf, los especificadores de formato
establecen el formato de salida por pantalla de los argumentos. La forma más sencilla de escribir un
especificador de formato es con el carácter tanto por ciento (%) seguido de un carácter de conversión
que indique el tipo de dato del argumento. Los especificadores de formato mas utilizados que se
pueden usar en la función printf:

%c      Salida de un carácter
%d      salida de un numero entero
%f      salida de un número real
%s      salida de una cadena

Un programa escrito en C está compuesto por una o más funciones. Como ya es sabido, una
función es un programa que sirve para realizar una tarea determinada, por ejemplo, la función scanf
sirve para leer datos desde el teclado.


Existe una función que está presente en todos los programas escritos en C, su misión es marcar el
inicio y fin de la ejecución de cada uno de ellos; es la función principal, la primera que se ejecuta; es
la función main. Su sintaxis "básica" es:

int main()
{
<bloque_de_instrucciones>}


                                                    52
Todas las funciones de la biblioteca estándar de C son subprogramas que ya están compilados, es
decir, junto a cualquier compilador de C se acompañan los códigos objeto de todas las funciones de
su biblioteca estándar, pero no sus códigos fuente. Por tanto, aunque no sea posible modificar sus
códigos fuente, sí se puede hacer uso de dichas funciones en cualquier programa. Por ejemplo, se
puede llamar a la función printf para que muestre por pantalla el saludo "Hola mundo".

printf( "Hola mundo" );


Dentro de los paréntesis "()" de la función printf, se debe escribir, entre comillas dobles ("), el
mensaje o cadena de caracteres que se desea mostrar por pantalla.


Obsérvese que, después del carácter cerrar paréntesis ")" se ha escrito un punto y coma (;), esto
implica que la llamada a la función printf es considerada como una instrucción de expresión


Para que el compilador conozca la declaración de la función printf, hay que utilizar la directiva del
preprocesado #include:



#include <stdio.h>



En este caso, la directiva #include indica, al preprocesador que debe incluir, antes de la
compilación, en el código fuente del programa, el contenido del archivo <stdio.h> (stdio, Standard
Input/Output). En dicho archivo están escritas las declaraciones de todas las funciones de entrada y
salida estándar de la biblioteca estándar de C, como printf. Si el compilador no sabe quien es
printf, no podrá generar el código objeto del programa.



Toda función retorna un valor.
 return 0;

Esto quiere decir que la función main devuelve el valor 0. Precediendo a main se ha escrito la
palabra reservada int, indicando así, que la función retornará un valor de tipo int (entero).

  int main()
En general, la instrucción return suele ser la última del bloque de instrucciónes de la función main.
Al retornar el valor 0, indica (informa al sistema operativo) que el programa finalizó correctamente,
es decir, sin producirse ningún error en su ejecución. Cuando la función main devuelva un valor
distinto de cero, esto siginificará que se ha producido algún error en la ejecución del programa, o
que ha ocurrido algo fuera de lo normal.



                                                   53
La instrucción return es una de las instrucciones de control que existen en C. Por tanto, es una
palabra reservada. Después del valor de retorno (que es una expresión) se debe escribir un punto y
coma (;). La sintaxis de la instrucción return es:

return <expresión>;

La sintaxis "básica" de un programa escrito en c es:

[ <directivas_del_preprocesador> ]

  int main()
  {
    <bloque_de_instrucciones>
  }


Tipos de datos basicos (simples predefinidos) en c:

Numéricos:
      Entero (int)
        Real   (float y double)


Carácter       (char)
sin valor      (void)

La mayoría de los elementos de un programa se diferencian entre sí por su nombre. Por ejemplo, los
tipos de datos básicos en C se nombran como:

                                   char, int, float, double y void

Cada uno de ellos es un identificador. Un identificador es el nombre que se le da a un elemento de un
algoritmo (o programa). Por ejemplo, el tipo de dato int hace referencia a un tipo de dato que es
distinto a todos los demás tipos de datos, es decir, los valores que puede tomar un dato de tipo
entero, no son los mismos que los que puede tomar un dato de otro tipo.

Los identificadores char, int, float, double y void están predefinidos, forman parte del lenguaje C.
No obstante, en el código de un programa también pueden existir identificadores definidos por el
programador. Por ejemplo, un programa puede utilizar variables y constantes definidas por el
programador.

En C, a la hora de asignar un nombre a un elemento de un programa, se debe tener en cuenta que
todo identificador debe cumplir las siguientes reglas de sintaxis:

    1. Consta de uno o más caracteres.




                                                 54
2. El primer carácter debe ser una letra o el carácter subrayado (_), mientras que, todos los
       demás pueden ser letras, dígitos o el carácter subrayado (_). Las letras pueden ser minúsculas o
       mayúsculas del alfabeto inglés. Así pues, no está permitido el uso de las letras 'ñ' y 'Ñ'.
    3. No pueden exitir dos identificadores iguales, es decir, dos elementos de un programa no
       pueden nombrarse de la misma forma. Lo cual no quiere decir que un identificador no
       pueda aparecer más de una vez en un programa.

De la segunda regla se deduce que un identificador no puede contener caracteres especiales, salvo el
carácter subrayado (_). Es importante resaltar que las vocales no pueden llevar tilde ni diéresis.

#define y const
La directiva #define indica al preprocesador que debe sustituir, en el código fuente del programa,
todas las ocurrencias del <nombre_de_la_constante> por la <secuencia_de_caracteres>, antes de la
compilación.

Ejemplo 2: Dos constantes muy habituales son:

  #define PI 3.141592
  #define NUMERO_E 2.718281

En programación es una buena práctica escribir los identificadores de las constantes en mayúsculas,
de esta forma es más fácil localizarlos en el código de un programa. Nótese que, después de la
declaración de una constante simbólica no se escribe un carácter punto y coma (;), cosa que sí se
debe hacer al declarar una variable.

Por otra parte, no se puede declarar más de una constante simbólica en una misma línea de código.

Ejemplo 3: Para declarar las constantes simbólicas PI y NUMERO_E, no se puede escribir:

  #define PI 3.141592, NUMERO_E 2.718281

Por otra parte, en C, es posible declarar una variable indicando que su valor es inalterable. Para ello,
se utiliza el cualificador const.

Ejemplo 4: Uso de const:

  const int temperatura = -5;

Operadores Aritméticos
+     Suma
-     Resta
*     Multiplicación
/     División
/     División (div)
%     Modulo


                                                   55
+         Signo mas
-         Signo menos

Operadores logicos
&&    Conjuncion
||    Disyunción
!     Negación

Programación de expresiones
Programación de expresiones

Objetivo: Creara programas que manipulen datos de forma específica

Ejercicios:

/*Escribir un programa (en lenguaje C) que:
1º) Pida por teclado la base (dato real) de un triángulo.
2º) Pida por teclado la altura (dato real) de un triángulo.
3º) Calcule el área del triángulo.
4º) Muestre por pantalla el resultado (dato real).
Nota: la operación aritmética se deberá hacer directamente
en la instrucción de impresión a pantalla*/

#include <stdio.h>
#include <conio.h>
int main()
{
  float altura, area, base;

    printf( "Introduzca base: " );
    scanf( "%f", &base );
    printf( "Introduzca altura: " );
    scanf( "%f", &altura );

    area = base * altura / 2;

    printf( "El area del triangulo es: %f", area );
    getch();
    return 0;
}

Ora forma de hacerla optimizando código.

#include <stdio.h>


                                                      56
#include <conio.h>
int main()
{
  float altura, base;

    printf( "Introduzca base: " );
    scanf( "%f", &base );
    printf( "Introduzca altura: " );
    scanf( "%f", &altura );

    printf( "El area del triangulo es: %f", base * altura / 2 );
    getch();
    return 0;
}

/*Elaborar un programa que
convierta venda dolares al precio del momento*/

#include<conio.h>
#include<stdio.h>
main(){
float precio, pdollar, dollar;
clrscr();

printf("CASA DE CAMBIOn");
printf("Cuantos dolares a comprar: ");
scanf("%f",&dollar);
printf("Teclea el costo del dolar frente al peso: ");
scanf("%f",&pdollar);

precio = dollar * pdollar;

printf("El pago es de= %f pesos",precio);
printf("nnnPresione cualquier tecla para terminar");
getch();
}
Ejercicios:
    1. Elabore un programa en lenguaje C que pida por teclado el nombre y la edad e imprima esos
    datos.

      2. Escribir un programa (en lenguaje C) que:
          Pida por teclado dos números (datos enteros).
          Muestre por pantalla el resultado de realizar la división entera del primer número
      introducido por el usuario entre el segundo, y el resto.



                                                       57
7
                                                                                             U. A.




Sentencias de Control
Objetivo: Al término de la modulo el participante creara programas que permitan
la bifurcación de su control en función a situaciones especificas por medio de la
inclusión de sentencias de control




C
         contempla dos tipos de instrucciones de selección: if y switch. La sentencia if, tiene variaciones
         como el if-else, y los if anidados.


Estructuras if y switch

Objetivo: El participante explicará las sentencias de los lenguajes de programación

Forma general de la instrucción if es

if (expresión) instrucción;
else instrucción;

donde instrucción puede ser una instrucción simple, un bloque de instrucciones o nada ( en caso de
instrucciones vacias) . La cláusula else es opcional.

si la expresión es cierta( cualquier valor que no sea cero 0), se ejecuta la instrucción o el bloque de
instrucciones que constituye el objetivo del if; en elcaso contrario se ejecuta la instrucción o el bloque de
instrucciones que constituye el objeto del else, si existe. Recuerde que solo se ejecuta el código asociado al
if o al else, nunca ambos.

Ejemplo.
/*Mostrar si el numero es par o impar*/
#include<conio.h>
#include<stdio.h>
main()
{
int num;


                                                         58
clrscr();
printf ("Dame numero: n");
scanf("%d",&num);
if (num %2 == 0)
      printf("Numero par");
 else
      printf("numero impar");
 getch();
}

if anidados
un if anidado es un if que es el objetivo de otro if o else. Los if anidados son muy comunes en
programación. en un if anidado, una instrucción else siempre se refiere al if mas próximo que este en el
mismo bloque que el else y que no este ya asociado con un else. Por ejemplo:

/*utilizando if anidados
deberá mostrar en pantalla el numero mágico*/

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main (void)
{
int magico; //inicialización de numero mágico
int intento; //intento del usuario

magico = rand(); // genera número mágico
printf("adivine el nuemro magico");
scanf("%d", &intento);

if (intento == magico){
         printf("n***C O R R E C T O ***");
         printf("%d es el numero magico n", magico);
}
else{
         printf("n***I N C O R R E C T O ***");
         if (intento >magico)
                  printf ("ndemasiado alto");
         else
                  printf("ndemasiado bajo");
      getche();}
return 0;
}




                                                  59
Otro ejemplo de if anidados
#include <stdio.h>
#include <conio.h>
int main(void) {
int a,b,c;
printf("i9ntroduce 1 nuemros enteros");
scanf("%d", &a);
printf("i9ntroduce 1 nuemros enteros");
scanf("%d", &b);
printf("i9ntroduce 1 nuemros enteros");
scanf("%d", &c);
if (a>b){
       if (a>c){
           if(b>c){
           printf("%d%d%d", a,b,c); }
           else{
           printf("%d%d%d", a,c,b); }
       }else
       printf("%d%d%d", c,a,b);}
else{
if (b>c){
       if (a>c){
       printf("%d%d%d", b,a,c);}
       else{
       printf("%d%d%d", b,c,a);}}
else{
    printf("%d%d%d", c,b,a);
    }
}

getch();
return 0;
}


Switch


C incorpora una instrucción de selección múltiple, denominada switch, que compara sucesivamente el
valor de una expresión con una lista de constantes enteras o de caracteres. Cuando se encuentra una
correspondencia, se ejecutan las instrucciones asociadas con la constante. La forma general de la
instrucción switch es




                                                60
switch (expresión){
case constante1:
         secuencia de instrucciones
         break;
case constante2:
         secuencia de instrucciones
         break;
case constante3:
         secuencia de instrucciones
         break;
.
.
.
.
default:
         secuencia de instrucciones
}

Ejemplo:
/*Escribir un programa (en lenguaje C) que:
1) Muestre el listado de las habitaciones de la casa rural.
2) Pida por teclado el número (dato entero) asociado a una habitación.
3) Muestre por pantalla la planta y el número de camas de la habitación seleccionada.
Nota: Si el número introducido por el usuario, no está asociado a ninguna habitación, se mostrará el mensaje:
"ERROR: <número> no está asociado a ninguna habitación.".*/

#include <stdio.h>
#include <conio.h>

int main()
{
  int numero;

 printf( "Listado de habitaciones:" );
 printf( "nn1. Azul" );
 printf( "n2. Roja" );
 printf( "n3. Verde" );
 printf( "n4. Rosa" );
 printf( "n5. Gris" );
 printf( "nnIntroduzca numero de habitación: " );

 scanf( "%d", &numero );




                                                 61
switch ( numero )
  {
    case 1 : printf( "La Azul tiene 2 cama y esta en la primera planta." );
           break;
    case 2 : printf( "La Roja tiene 1 cama y esta en la primera planta." );
           break;
    case 3 : printf( "La Verde tiene 3 cama y esta en la segunda planta." );
           break;
    case 4 : printf( "La Rosa tiene 2 cama y esta en la segunda planta." );
           break;
    case 5 : printf( "La Gris tiene 1 cama y esta en la tercera planta." );
           break;
    default : printf( "ERROR: %d no esta asociado a ninguna habitación.", numero );
  }
  getch();
  }

Estructuras FOR y WHILE

Objetivo: El participante Explicará la lógica de las estructuras cíclicas

El formato general del bucle for de c se encuentra de una forma o de otra en todos los lenguajes de
programación. En C, sin embargo, proporciona una potencia y flexibilidad sorprendentes.

La forma general para la instrucción for es

                                   for(inicialización;condicion;incremento) instrucción;

Por ejemplo, el siguiente programa usa un bloque for para imprimir los números del 1 al 100 en pantalla:

#include<stdio.h>
int main()
{
int x;
for(x=1; x<=100; x++)
printf(“%d”, x);
return 0;
}
El bucle WHILE
El Segundo bucle disponible en C es while, su forma general es

while(condición) instrucción;


                                                           62
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos
Apuntes De Algoritmos

Contenu connexe

Tendances

Derivados: Benceno, Tolueno y Xileno
Derivados: Benceno, Tolueno y XilenoDerivados: Benceno, Tolueno y Xileno
Derivados: Benceno, Tolueno y XilenoAngel Lara
 
Introduccion a Matlab (Laboratorio de Control )
Introduccion a Matlab (Laboratorio de Control )Introduccion a Matlab (Laboratorio de Control )
Introduccion a Matlab (Laboratorio de Control )Marc Wily Narciso Vera
 
Lista de raptor sus comandos y su función
Lista de raptor sus comandos y su funciónLista de raptor sus comandos y su función
Lista de raptor sus comandos y su funciónAna Ruth G H
 
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.ZillEcuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zilljhonsoomelol
 
Ejemplo sistema de control de una plancha
Ejemplo sistema de control de una planchaEjemplo sistema de control de una plancha
Ejemplo sistema de control de una planchaentendercomputacion
 
Manual basico de matlab
Manual basico de matlabManual basico de matlab
Manual basico de matlabGilson Braga
 
Resolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasResolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasCarlos Gascón
 
Mapa conceptual de algoritmos
Mapa conceptual de algoritmosMapa conceptual de algoritmos
Mapa conceptual de algoritmosFany Duque
 
Sistema de Control de Lazo Cerrado
Sistema de Control de Lazo CerradoSistema de Control de Lazo Cerrado
Sistema de Control de Lazo CerradoBiancavick
 
Matemáticas Discreta y Combinatoria Ralph P. Grimaldioria
Matemáticas Discreta y Combinatoria Ralph P. GrimaldioriaMatemáticas Discreta y Combinatoria Ralph P. Grimaldioria
Matemáticas Discreta y Combinatoria Ralph P. GrimaldioriaRodrigo GC
 
Cekit (Proyectos Sistemas Digitales)
Cekit (Proyectos Sistemas Digitales)Cekit (Proyectos Sistemas Digitales)
Cekit (Proyectos Sistemas Digitales)JuanJTovarP
 

Tendances (20)

Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
Derivados: Benceno, Tolueno y Xileno
Derivados: Benceno, Tolueno y XilenoDerivados: Benceno, Tolueno y Xileno
Derivados: Benceno, Tolueno y Xileno
 
Introduccion a Matlab (Laboratorio de Control )
Introduccion a Matlab (Laboratorio de Control )Introduccion a Matlab (Laboratorio de Control )
Introduccion a Matlab (Laboratorio de Control )
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujo
 
Matriz jacobiana
Matriz jacobianaMatriz jacobiana
Matriz jacobiana
 
Ejercicios de programacion resueltos
Ejercicios de programacion resueltosEjercicios de programacion resueltos
Ejercicios de programacion resueltos
 
Lista de raptor sus comandos y su función
Lista de raptor sus comandos y su funciónLista de raptor sus comandos y su función
Lista de raptor sus comandos y su función
 
Proyecto de calculo3 (1) firme
Proyecto de calculo3 (1) firmeProyecto de calculo3 (1) firme
Proyecto de calculo3 (1) firme
 
Clase de algoritmos
Clase de algoritmosClase de algoritmos
Clase de algoritmos
 
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.ZillEcuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zill
 
Lógica de programación
Lógica de programaciónLógica de programación
Lógica de programación
 
Ejemplo sistema de control de una plancha
Ejemplo sistema de control de una planchaEjemplo sistema de control de una plancha
Ejemplo sistema de control de una plancha
 
Manual basico de matlab
Manual basico de matlabManual basico de matlab
Manual basico de matlab
 
Programación - Matrices
Programación - Matrices Programación - Matrices
Programación - Matrices
 
Resolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasResolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicas
 
Funciones Internas
Funciones Internas Funciones Internas
Funciones Internas
 
Mapa conceptual de algoritmos
Mapa conceptual de algoritmosMapa conceptual de algoritmos
Mapa conceptual de algoritmos
 
Sistema de Control de Lazo Cerrado
Sistema de Control de Lazo CerradoSistema de Control de Lazo Cerrado
Sistema de Control de Lazo Cerrado
 
Matemáticas Discreta y Combinatoria Ralph P. Grimaldioria
Matemáticas Discreta y Combinatoria Ralph P. GrimaldioriaMatemáticas Discreta y Combinatoria Ralph P. Grimaldioria
Matemáticas Discreta y Combinatoria Ralph P. Grimaldioria
 
Cekit (Proyectos Sistemas Digitales)
Cekit (Proyectos Sistemas Digitales)Cekit (Proyectos Sistemas Digitales)
Cekit (Proyectos Sistemas Digitales)
 

Similaire à Apuntes De Algoritmos

Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoLeidiCaro1
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento SebastianGomezPayan
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoSaragongoravillaquir
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoClariza
 
Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Alma Lopez
 
Proyecto de-programacion
Proyecto de-programacionProyecto de-programacion
Proyecto de-programacionhelp center
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Presentación Luis Barreto
Presentación Luis BarretoPresentación Luis Barreto
Presentación Luis BarretoLuisBarreto80
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujocognos_uie
 
Presentacion algoritmos preufod sec.k
Presentacion algoritmos preufod sec.kPresentacion algoritmos preufod sec.k
Presentacion algoritmos preufod sec.kSara Escobar
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slidesharedaniel_estrada
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slidesharedaniel_estrada
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxTIRZOANTONIOMEDINACA1
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
Concepto y representaciones de un Algoritmo
Concepto y representaciones de un AlgoritmoConcepto y representaciones de un Algoritmo
Concepto y representaciones de un AlgoritmoJoaquin Lara Sierra
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFresyMetal
 

Similaire à Apuntes De Algoritmos (20)

Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1
 
Proyecto de-programacion
Proyecto de-programacionProyecto de-programacion
Proyecto de-programacion
 
Semana 1
Semana 1Semana 1
Semana 1
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Presentación Luis Barreto
Presentación Luis BarretoPresentación Luis Barreto
Presentación Luis Barreto
 
Apartes De Algoritmos
Apartes De AlgoritmosApartes De Algoritmos
Apartes De Algoritmos
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Presentacion algoritmos preufod sec.k
Presentacion algoritmos preufod sec.kPresentacion algoritmos preufod sec.k
Presentacion algoritmos preufod sec.k
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slideshare
 
Presentación de slideshare
Presentación de slidesharePresentación de slideshare
Presentación de slideshare
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptx
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Concepto y representaciones de un Algoritmo
Concepto y representaciones de un AlgoritmoConcepto y representaciones de un Algoritmo
Concepto y representaciones de un Algoritmo
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.com
 

Plus de Laura Velazquez (20)

Modulos ama
Modulos amaModulos ama
Modulos ama
 
Metodologia amarillo
Metodologia amarilloMetodologia amarillo
Metodologia amarillo
 
Metodologia amarillo
Metodologia amarilloMetodologia amarillo
Metodologia amarillo
 
Valores
ValoresValores
Valores
 
Modulos ama
Modulos amaModulos ama
Modulos ama
 
Profesores anarillo
Profesores anarilloProfesores anarillo
Profesores anarillo
 
Metodologia amarillo
Metodologia amarilloMetodologia amarillo
Metodologia amarillo
 
Profesores
ProfesoresProfesores
Profesores
 
Original ppt. profesores ccinte
Original ppt. profesores ccinteOriginal ppt. profesores ccinte
Original ppt. profesores ccinte
 
Modulos
ModulosModulos
Modulos
 
Modulos
ModulosModulos
Modulos
 
Original ppt. profesores ccinte
Original ppt. profesores ccinteOriginal ppt. profesores ccinte
Original ppt. profesores ccinte
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Profesores CCI
Profesores CCIProfesores CCI
Profesores CCI
 
Manual el visual
Manual el visualManual el visual
Manual el visual
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Técnicas de estudio
Técnicas de estudioTécnicas de estudio
Técnicas de estudio
 
Técnicas de estudio
Técnicas de estudioTécnicas de estudio
Técnicas de estudio
 
Técnicas de estudio
Técnicas de estudioTécnicas de estudio
Técnicas de estudio
 

Dernier

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 

Dernier (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 

Apuntes De Algoritmos

  • 1. ALGORITMOS Y PROGRAMACIÓN Algoritmosy programación
  • 2. ALGORITMOS Y PROGRAMACIÒN Segundo Cuatrimestre Lic. Laura Gisela Velázquez Marmolejo Estado de México, México Teléfono (55) 50626468 y 69 i
  • 3. Objetivo Desarrollar la capacidad en el alumno para desarrollar y programar algoritmos, que le permitan resolver problemas o realizar una tarea específica, mediante el uso de algún lenguaje de programación, utilizando la computadora como herramienta de análisis de datos y solución de problemas. 2
  • 4. Contenido Temático TEMA CAPITULO Introducción 3 Conceptos Básicos de Algoritmos 5 Estructuras Algorítmicas Selectivas 20 Estructuras Algorítmicas Cíclicas 30 Arreglos 41 Introducción a los Lenguajes de Programación 46 Expresiones 50 Sentencias de Control 58 Arreglos en Programación 66 Funciones 70 Punteros 74 Estructuras de Datos 77 Conclusiones 81 Bibliografía 82 3
  • 5. Introducción El curso de Algoritmos y Programación representa una herramienta teórica y práctica tanto para la solución de problemas genéricos como para estandarizar y automatizar cualquier proceso o actividad, mediante la creación de programas para computadora. El curso promueve en primera instancia desarrollar las capacidades y habilidades del participante para analizar problemas, comprender situaciones implícitas y modelar dichas situaciones para la propuesta de la mejor solución, dando como resultado una secuencia de pasos orientados a resolver dicha problemática además de detectar y considerar los parámetros que afectan a dichos problemas, todo con la finalidad de crear un algoritmo. Para el eficiente diseño de algoritmos se conocerán las principales herramientas y representaciones graficas a efecto de ser comprendidas e implementadas. Asimismo, el participante aplicará los conocimientos de creación de algoritmos para la automatización de tareas desarrollando habilidades para la selección de los correctos comandos en algún lenguaje para trasladar esos algoritmos en un programa. Esto implica que el participante también conocerá las bases de lenguaje y principios de programación en lenguaje C, utilizando la computadora como herramienta de análisis de datos y solución de problemas. Este curso le servirá al participante como base para cursos subsecuentes como Métodos Numéricos, Control, Robótica y Procesos Industriales, tanto en el desarrollo de solución de problemas, creación de algoritmos y programas. 4
  • 6. Unidad 1 Asignación Conceptos Básicos de Algoritmos Objetivo: Al término de la modulo el participante manipulará adecuadamente las reglas de construcción de algoritmos, usando los distintos tipos de datos mediante operaciones aritméticas y lógicas M uchas veces aplicamos el algoritmo de manera inadvertida, inconciente o automáticamente. Esto generalmente se produce cuando el problema que tenemos enfrente lo hemos resuelto con anterioridad un gran número de veces. Supongamos que simplemente tenemos que abrir una puerta. Lo hemos hecho tantas veces que difícilmente nos ponemos a enumerar los pasos para alcanzar este objetivo. Por otra parte existen una gran cantidad de problemas que requieren de un análisis profundo y de un pensamiento flexible y estructurado para su solución. Este curso abordará este tipo de problemas. Construcción de Algoritmos Objetivo: El participante nombrará las reglas de construcción de algoritmos con diagramas de flujo y lenguaje algorítmico Existen técnicas y herramientas metodológicas que nos permiten flexibilizar y estructurar el razonamiento utilizado en la solución de un problema. Lo que permitirá finalmente la construcción de algoritmos eficientes. Concepto de Algoritmo Un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema “La superación es la base del éxito” 5
  • 7. Características de los Algoritmos Precisión: Los pasos a seguir en el algoritmo deben ser precisados claramente Determinismo: El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe arrojar los mismos resultados. Finitud: El algoritmo, independientemente de la complejidad del mismo, siempre debe ser de longitud finita. Algoritmo Datos de Impresión de Entrada Procesamiento de Resultados los datos Modulo 1 Modulo 2 Modulo 3 Ilustración A : Módulos o secciones de un algoritmo Por otra parte, un algoritmo consta de tres secciones o módulos principales, en la figura A podemos observarlas secciones que constituyen un algoritmo. Modulo1 Representa la operación o acción que permite el ingreso de los datos del problema Modulo2 Representa la operación o conjunto de operaciones secuenciales, cuyo objetivo es obtener la solución del problema Modulo3 Representa una operación o conjunto de operaciones que permiten comunicar al exterior el o los resultados alcanzados. 6
  • 8. Diagramas de Flujo Un diagrama de flujo representa la esquematización gráfica de un algoritmo, es decir, muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque a partir del mismo se escribe un programa en algún lenguaje de programación. Figura 1.2.1 Este símbolo se utiliza para representar el inicio o el fin de un diagrama de flujo. Ese símbolo se utiliza para representar la lectura de datos desde el dispositivo de entrada Este símbolo se utiliza para representar un bloque de instrucciones. También se le conoce con el nombre de símbolo de proceso. Este símbolo se utiliza para representar una pregunta. Es conocido con el nombre de diamante de decisión Este símbolo representa la salida de información, hacia el dispositivo de presentación de datos Este símbolo se utiliza para representar los ciclos de repetición por medio de sentencias FOR, o su equivalente en el lenguaje de programación que se esté trabajando. Conector Indica el orden de las acciones del algoritmo Ilustración B Símbolos utilizados en diagramas de flujo Reglas para la construcción de un Diagrama de Flujo 1. Todo diagrama de flujo debe tener un inicio y un fin 7
  • 9. 2. Las líneas utilizadas para indicar la dirección del flujo del diagrama debe ser rectas, verticales y horizontales 3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión impresión conexión o fin de diagrama 4. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left) 5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación. La solución presentada en el diagrama puede escribirse posteriormente y fácilmente en diferentes lenguajes de programación 6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos. 7. Si el diagrama de flujo requiera mas de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las p{aginas convenientemente 8. No puede llegar más de una línea a un símbolo. Reglas para la construcción de un Diagrama de Flujo 1. Todo diagrama de flujo debe tener un inicio y un fin 2. Las líneas utilizadas para indicar la dirección del flujo del diagrama debe ser rectas, verticales y horizontales 3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión impresión conexión o fin de diagrama 4. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left) 5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación. La solución presentada en el diagrama puede escribirse posteriormente y fácilmente en diferentes lenguajes de programación 6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos. 7. Si el diagrama de flujo requiera mas de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las p{aginas convenientemente 8. No puede llegar mas de una línea a un símbolo. Tipos de datos usados en algoritmos Objetivo: Identifica los distintos tipos de datos que pueden ser usados en algoritmos Los datos se clasifican en simples y estructurados: Simples Ocupan una sola casilla de memoria, por lo tanto hace referencia a un único valor a la vez 8
  • 10. Estructurados.- Se caracterizan por el hecho de que con un nombre (identificador de variable estructurada) se hace referencia a un grupo de casillas de memoria, es decir, tiene varios componentes. Cada uno de los componentes puede ser a su vez un dato simple o estructurado Dentro de los simples encontramos los numéricos, alfanuméricos y los lógicos; dentro de los estructurados encontramos .la cadena de caracteres, los arreglos, los registros y los conjuntos. En la siguiente tabla podemos ver algunos ejemplos de estos tipos de datos. Ejemplos Nombre Descripción (No Muestra Sintaxis de ningún Lenguaje de Programación) Enteros (int) Pueden estar precedidos de los signos + y - 128, 1528, -714, 25469, -56245 , además no tiene parte decimal. Reales Tambien pueden estar precedidos de los 7.5, 128.0, -37.256, 25.3, 160000.0, -15.60 (float y signos + y -, y tiene una parte decimal. double) Caracteres Contiene un solo carácter, y se escribe „a‟, „B‟, „$‟, „9‟ , „-‟, „#‟ (char) entre apóstrofes Boleanos Son datos que solo pueden tomar dos 10>32 (boolean) valores: verdadero (trae), falso (false). Cadena de Contiene un conjunto de caracteres, y se Letras del alfabeto, dígitos (0, 1, 2….9) o símbolos caracteres escribe entre comillas. especiales (#, $, ^, *, %, /, !, +, -…etc). (String) Arreglos Colección finita, homogénea y ordenada de UNIDIMENSIONALES O LINEALES (Cualquier (array) elementos; puede almacenar a N elementos elemento es referenciado por un único índice) del mismo tipo y además permite el acceso Ident_arreglo = ARREGLO [limiteinf...limsup] DE a cada uno d estos elementos tipo MULTIDIMENSIONALES *BIDIMENSIONALES (Hace referencia a cada elemento por medio de dos indices) Id_arreglo =ARREGLO [limitteinf...limitesup, liminfcol...limsupcol] DE tipo Registros Cada uno de sus componentes se Ident_registro = REGISTRO denomina campo. Los campos de un Id_campo1:tipo1 registro pueden ser todos de diferente tipo. Id_campo2:tipo2 ......... Id_campoN: tipoN {Fin de la identificación del registro} Tabla 1 Identificadores, constantes y variables Los datos a procesar por la computadora, ya sean simples estructurados, deben almacenarse en casillas o celdas de memoria para su posterior utilización. Estas casillas o celdas de memoria (constantes o variables), tienen un nombre que permite su identificación, al cual se le llama identificador. 9
  • 11. Memoria SUMA ACUM NUM_1 AUX X7 Ilustración C : Casillas de Memoria con los nombres de los Identificadores Identificadores Es el nombre que se les da a las casillas de memoria. Como se puede observaren la figura 1.2.1 la memoria contiene casillas de memoria, en las cuales almacenan los datos, y para que estos datos sean identificados se les asigna un identificador. En el ejemplo de la figura 1.2.1 hay una casilla de memoria llamada suma, otra acum. etc. así la memoria las identifica. Un identificador se forma de acuerdo a ciertas reglas (las mimas pueden tener alguna variante dependiendo del lenguaje de programación): El primer que forma un identificador debe ser una letra Los demás caracteres pueden ser letras, dígitos o el siguiente símbolo especial: _ La longitud del identificador es igual a 7 en la mayoría de los lenguajes de programación. Así mismo, cada dato puede tratarse dentro de un programa de computadora como un dato constante o variable, para entenderse mejor aquí se explica mas a detalle. Constantes Son datos que no cambian durante la ejecución del programa. Existen tipos de constantes como tipos de datos. (entero, real, carácter, cadena de carácter, etc..) NUM RESU 5 “resultado” NREAL NUMREA 7.25 8.59 Ilustración D : Constantes representadas en memoria La figura 1.2.2 muestra una constante llamada NUM, este es un espacio de memoria que almacena un dato tipo entero y contiene el valor 5, mismo que no cambiara durante la ejecución del programa; 10
  • 12. el dato NUMERA almacena un dato de tipo real con un valor de 8.59 mismo que no cambiara su valor: Sin embargo, existe también datos que funcionan al contrario de estos, esas son las variables. Variables Las variables son objetos que pueden cambiar su valor durante la ejecución de un programa. Para nombrar las variables utilizarem os los identificadores que hemos explicado con anterioridad, al igual que las constantes, pueden existir tipos de variables como tipos de datos. Los nombres de las variables deben ser representativos de la función que cumplen en el programa. La figura 1.2.3 muestra un dato llamado I, mismo que almacena un valor entero y esta dándole un valor de inicio de 0, mismo que en cualquier momento cambiará de valor por medio de una operación aritmética, una asignación, etc. I 0 SUMA SUEL 0 0 Ilustración E: Variables representadas en memoria Operaciones aritméticas y lógicas Objetivo: Opera correctamente los distintos tipos de operaciones aplicables a algoritmos Los datos por si solos no nos servirían de nada si con ellos no realizáramos ninguna tarea, en el caso de la programación los datos constantemente los utilizamos para realizar operaciones aritméticas, lógicas, asignaciones, etcétera, para ello necesitamos una herramienta que nos permita realizarlas, para ellos nos auxiliamos de operadores, los mimos que estudiaremos a continuación: 11
  • 13. Operadores aritméticos Operador Operación Ejemplo Resultado aritmético ** Potencia 4**3 64 * Multiplicación 8.25*7 57.75 / división 15/4 3.75 + suma 125.78 + 62.50 188.28 - resta 65.30 – 32.33 32.97 mod Modulo(residuo) 15 mod 2 1 div División entera 17 mod 3 5 Tabla 2 Con estos operadores se puede realizar cualquier operación aritmética, sin embargo, al evaluar expresiones que contienen operadores aritméticos debemos respetar la jerarquía en el orden de aplicación. es decir, debemos aplicar primero el operador de mayor jerarquía, resolver esa operación, y así sucesivamente. El operador () es un operador asociativo que tiene la prioridad mas alta en cualquier lenguaje de programación. Jerarquía de los operadores aritméticos Operador Jerarquía Operación ** (mayor) Potencia *, /, mod, div Multiplicación, división, modulo, división entera +, - (menor) Suma, resta Tabla 3 Ejemplos: Caso 1: 7+5-6 12 – 2 6 Caso 2: 9 + 7 * 8 – 36 / 5 9 + 56 – 36 / 5 9 + 56 – 7.2 65 – 7.2 57.8 Caso 3 7 * 5 ** 3 / 4 div 3 12
  • 14. 7 * 125 / 4 div 3 875 / 4 div 3 218.75 div 3 72 Expresiones lógicas o booleanas. El valor que pueden tomar estas expresiones es el de verdadero o falso. Se utilizan frecuentemente en las estructuras selectivas (dependiendo del resultado de la evaluación se toma por un determinado camino alternativo) y en las estructuras repetitivas (dependiendo del resultado de la evaluación se continua con el ciclo o se interrumpe el mismo) Operadores relacionales Son operadores que permiten comparar dos operándoos. El resultado de una expresión con operadores relacionales es verdadero o falso. Los cuales pueden ser números, alfanuméricos, constantes o variables. Las constantes o variables pueden ser entero, real, carácter o cadena de carácter. Operadores relacionales Operador Operación > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que == Igual <> Diferente que Tabla 4 Ejemplo: A=5 B=16 (A ** 2 ) > (B * 2 ) 25 > (B * 2 ) 25 > 32 FALSO Nota Cuando se utilizan los operadores de relación con los operadores lógicos, falso es menor que verdaderos VERDADERO > FALSO = VERDADERO. 13
  • 15. Nota No se pueden realizar la comparación entre un valor lógico y uno numérico, utilizando un operador relacional. Operadores lógicos Los operadores lógicos son operadores que permiten formular condiciones complejas partir de condiciones simples. Los operadores lógicos son de conjunción (y), disyunción (o) y negación (no). Operadores Lógicos Operador Lógico Jerarquía Expresión lógica Significado NO Mayor No P No P No es cierto que P Es falso que P Y PyQ PyQ P sin embargo Q O Menor PoQ PoQ O P o Q o ambas Mínimo P o Q Tabla 5 Ejemplo: No (15 >= 7 ** 2 ) O ( 43 – 8 * 2 div 4 <> 3 * 2 div 2 ) No FALSO O ( 43 – 8 * 2 div 4 <> 3 * 2 div 2 ) No FALSO O ( 43 – 16 div 4 <> 3 * 2 div 2 ) No FALSO O ( 43 – 16 div 4 <> 6 div 2 ) No FALSO O ( 43 – 16 div 4 <> 3 ) No FALSO O ( 43 – 39 <> 3 ) No FALSO O VERDADERO VERDADERO O VERDADERO VERDADERO Bloque de asignación Se utiliza para asignar valores o expresiones a una variable la asignación es una operación destructiva. Variable – expresión o valor La expresión puede ser aritmética (-+*etc) o lógica (operadores relacionales = etc y operadores lógicos: no y o) 14
  • 16. Elaboración de algoritmos Objetivo: Diseña diagramas de flujo de situaciones específicas Ejercicios 1. Construya un diagrama de flujo tal que dados los datos A, B, C Y D que representan números enteros, escriba los mismos en orden inverso. Datos: A, B, C y D son variables de tipo entero INICIO A,B,C,D D,C,B,A INICIO Ilustración F Observemos que el programa, primeramente tiene un inicio y un fin, como lo indican las reglas de construcción de algoritmos, posteriormente recibe los datos tipo entero A, B, C y D, y los imprime de forma inversa. Si dicho programa deseáramos traducirlo a lenguaje algorítmico, tendríamos que utilizar las siguientes instrucciones, mismas que corresponden a los signos del diagrama de flujo. Instrucciones en lenguaje algorítmico Leer .. Leer A, B, C 15
  • 17. Hacer.. Hacer A ---- A + SUE Escribir.. Escribir A, B Tabla 6 Considerando el diagrama de flujo No. 1, para ejemplificar las instrucciones en lenguaje algorítmico en ese programa. INVIERTE _ DATOS {El programa dado un conjunto de datos enteros de entrada invierte el orden de los mismos cuando los imprime} {A, B, C y D son variables de tipo entero} 1. Leer A, B, C, D 2. Escribir D, C, B, A 2. Construya un diagrama de flujo tal que dado los datos enteros A y B, escriba el resultado de la siguiente expresión (A+B)2 3 Datos: A, B (variables de tipo entero) INICIO A,B Explicación de la variable A, B: Variables de tipo entero RES: Variable tipo variable. C  (A+B) ** 2/3 C FIN Ilustración G A continuación veremos el seguimiento del algoritmo para diferentes corridas 16
  • 18. A B RES 10 5 75 8 7 75 2 4 12 6 3 27 Instrucciones en lenguaje algorítmico en ese programa del diagrama No. 2 CALCULA {El programa, dados como datos los enteros A y B, calcula el resultado de una expresión} {A y B son variables de tipo entero. RES es una variable de tipo real} 1. Leer A, B 2. Hacer RES  (A + B) ** 2 / 3 3. Escribir RES Ejercicios 1. Resuelve los siguientes casos tomando en cuenta la jerarquía de los operadores aritméticos, lógicos y relacionales 13 * 4 / ( 9 -(56 – 22 * 10 + (9 ** 3 / 14) + 2 ) / 12) -22 ((2634 div 3 / 4 ** 4 ) > ( 152 + 18 * 3 ** 2 ) ) <= ((126 * 2 ) < (22 * 5 / 3 )) ( 15 >= 4 * 8 ** 2 O 5 > 5 Y 12 > 21 ) O NO ( 5 * 3 < 9 + 7 * 2 mod 4 ** 2 ) 2. Instrucciones: Elabore en cada caso el diagrama de flujo y cuadro de datos con 3 corridas diferentes. Tal que dado el costo de un artículo vendido y la cantidad de dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar. Resuelva el problema que tienen en una gasolinera. Los surtidores de la misma registran lo que “surten” en galones, pero el precio de la gasolina esta fijado en litros. El diagrama de flujo debe calcular e imprimir lo que hay que cobrarle al cliente. Nota: galón = 3.875 litros; precio de la gasolina es de $8.20 Calcule e imprima el número de segundos que hay en un determinado número de días. 3. De los siguientes algoritmos en lenguaje algorítmico, construye el diagrama de flujo correspondiente 17
  • 19. a. algoritmo_sumar variables entero a, b, c inicio escribir( "Introduzca el primer número (entero): " ) leer( a ) escribir( "Introduzca el segundo número (entero): " ) leer( b ) c←a+b escribir( "La suma es: ", c ) fin b. algoritmo_doble variables real numero inicio escribir( "Introduzca su nombre: " ) leer( nombre ) escribir( "Introduzca un número real: " ) leer( numero ) escribir( nombre, ", el doble de ", numero, " es: ", numero * 2 ) fin c. Area_de_una_circunferencia /* Cabecera */ algoritmo Area_de_una_circunferencia /* Declaraciones */ constantes PI = 3.141592 variables real area, radio 18
  • 20. /* Cuerpo */ inicio escribir( "Introduzca radio: " ) leer( radio ) area ← PI * radio ** 2 escribir( "El área de la circunferencia es: ", area ) fin d. /* Cabecera */ Area_de_una_circunferencia /* Declaraciones */ constantes PI = 3.141592 variables real area, radio /* Cuerpo */ inicio escribir( "Introduzca radio: " ) leer( radio ) area ← PI * radio ** 2 escribir( "El área de la circunferencia es: ", area ) fin 19
  • 21. Unidad 2 Asignación Estructuras Algorítmicas Selectivas Objetivo: Al término de la unidad el participante diseñara algoritmos que incluyan estructuras de selección usadas en algoritmos computacionales L as estructuras algorítmicas selectivas las utilizamos cuando debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir. Esta toma de decisión expresada en el diagrama de flujo con un rombo, se basa en la evaluación de una o mas condiciones que nos señalaran como alternativa o consecuencia, la rama a seguir. Hay situaciones en las que la toma de decisiones se realiza en cascada. Por lo que para alcanzar la solución de un problema o subproblema debemos aplicar prácticamente un árbol de decisión. Clasificación: SI ENTONCES (estructura selectiva simple) SI ENTONCES / SINO (Estructura selectiva doble) SI MÚLTIPLE (Estructura selectiva múltiple) Cabe señalar que cuando a las estructuras selectivas las aplicamos en cascada, podemos utilizar una combinación de las estructuras señaladas anteriormente en la clasificación Estructura selectiva simple SI ENTONCES Permite que el flujo del diagrama siga por un camino específico si se cumple una condición o conjunto de condiciones. Si al evaluar la condición (condiciones) el resultado es verdadero, entonces se ejecutan ciertas operaciones. Luego se continúa con la secuencia normal del diagrama de flujo. Ejemplo examen “Lucha por tus ideales” 20
  • 22. Donde Condición expresa CONDICIÓN la condición o conjunto de condiciones a evaluar. Operación expresa la operación o conjuntote operaciones que se van a realizar si la condición OPERACIÓN resulta verdadera Ilustración H Diagrama de Flujo de la Estructura Si Entonces El lenguaje algorítmico de la estructura selectiva si entonces, es el siguiente: . . . Si condición entonces Hacer operación {Fin del condicional} . . . Ejemplos: Construya un diagrama de flujo talque dado como dato la calificación de un alumno en un examen, escriba “aprobado” en caso de que esa calificación sea mayor a 8 21
  • 23. INICIO Lenguaje Algorítmico Examen_selectiva_simple CAL 1. INICIO 2. Leer CAL 3. Si CAL > 8 entonces Escribir “Aprobado” 4. Fin de Condicional paso 3 5. FIN N A continuación se presenta el O seguimiento del algoritmo para CAL diferentes m corridas >8 S NUMERO DE I DATO RESULTADO CORRIDA “Aprobado ” 1 8.75 Aprobado 2 7.90 3 8.00 4 9.50 Aprobado 5 8.35 Aprobado FIN Tabla 7 Ilustración I Diagrama de Flujo INICIO Construya un diagrama de flujo talque dado como dato el sueldo de un trabajador, aplíquele un aumento del 15% si su sueldo es inferior a SUE $1000.00. Imprima en este caso el nuevo sueldo del trabajador. Lenguaje Algorítmico Aumento_selectiva NO 1. INICIO 2. Leer SUE SUE < 1000 3. Si SUE < 1000 entonces Hacer AUM SI ← SUE * 1.15 y AUM ← SUE * 1.15 NSUE ← NSUE ← SUE +AUM SUE +AUM Escribir NSUE NSUE 4. Fin de Condicional paso 3 5. FIN FIN Ilustración J 22
  • 24. Ejercicios Construya un diagrama de flujo tal que dado como datos los valores enteros P y Q, determine si los mismos satisfacen la siguiente expresión: P3 + Q2 - 2*P2 < 680 Estructura selectiva doble si entonces / sino Las estructura selectiva si entonces / sino permite que el flujo del diagrama se bifurfique por dos ramas diferentes en el punto de la toma de decisión. Si al evaluar la condición el resultado verdadero, entonces se sigue por un camino especifric1o y se ejecutan ciertas operaciones. Por otra parte si el resultado es falso entonces se sigue por otro camino y se ejecutan otras operaciones. En ambos casos, luego de ejecutarse las operaciones indicadas se continúa con las secuencia normal del diagrama. SI NO CONDICIÓN OPERACION1 OPERACION2 Ilustración K Diagrama de flujo que ilustra la estructura selectiva. Donde: Condición expresa la condición o conjunto de condiciones a evaluar. Operación1 expresa la operación o conjuntote operaciones que se van a realizar si la condición resulta verdadera Operación2 expresa la operación o conjuntote operaciones que se van a realizar si la condición resulta falsa Se representa en lenguaje algorítmico de la siguiente forma 23
  • 25. . . . Si condición Entonces Hacer operación1 Sino Hacer operación2 {Fin del condicional} . . . Ejercicios: Retomemos los programas de la selectiva simple: Construya un diagrama de flujo tal quedado como dato la calificación de un alumno en un examen, escriba “aprobado” si su calificación es mayor o igual a 8 y “reprobado” en caso contrario. Elabora el Diagrama de Lenguaje Algorítmico Flujo Examen_selectiva_doble {El programa, dado como dato la calificación de un alumno en un examen, escribe “aprobado” si su calificación es mayor o igual que 8 y “reprobado” en caso contrario} {CAL es una variable de tipo real} 1. Inicio 2. Leer CAL 3. Si CAL>=8 Entonces Escribir “Aprobado” Sino Escribir “Reprobado” 4. {Fin del condicional} Fin 24
  • 26. Construya un diagrama de flujo talque dado como dato el sueldo de un trabajador, aplíquele un aumento del 15% si su sueldo es inferior a $1000.00. y 12% en caso contrario. Imprima en este caso el nuevo sueldo del trabajador. Elabora el Diagrama de Lenguaje Algorítmico Flujo Aumento_selectiva_doble {el programa talque dado como dato el sueldo de un trabajador, aplíquele un aumento del 15% si su sueldo es inferior a $1000.00. y 12% en caso contrario } {SUE y NSUE son variables de tipo real} 1. Inicio 2. Leer SUE 3. Si SUE < 1000 Entonces Hacer NSUE – SUE * 1.15 Sino Hacer NSUE – SUE * 1.12 4. {Fin del condicional} 5. Escribir NSUE 6. Fin Estructura selectiva múltiple si múltiple La estructura selectiva si múltiple permite que el flujo del diagrama se bifurque por varios ramas en. Punto de la toma de decisiones, esto en función del valor que tome el selector. Así si el selector toma el valor 1 se ejecutara la acción 1, si toma el valor 2 se ejecutara la acción 2,si tómale valor N se realizara la acción N, y si toma un valor distinto de los valores comprendidos entre 1 y N, se continuará con el flujo normal del diagrama realizándose la acción N + 1.. SELECTOR Es la variable o expresión a evaluarse, según la cual se tomara una de las “múltiples” decisiones o alternativas ACCIÓN 1 expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor 1. ACCIÓN 2 expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor 2. ACCIÓN N expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor N. ACCIÓN 1 expresa la operación que se van a realizar cuando se continué con el flujo normal del diagrama. 25
  • 27. SELECTOR ACCION1 ACCION2 ACCION3 ACCION N + 1 Donde: . . . Si el selector igual Valor 1: Hacer acción 1 Valor 1: Hacer acción 2 . . Valor 1: Hacer acción N {Fin del condicional} Hacer acción N + 1 . . 26
  • 28. Debido a que esta estructura es muy flexible permite aplicarse de diferentes formas, observe el lenguaje algorítmico que se presenta a continuación. . . . . . . Si selector igual Si selector igual VALOR 1: Hacer acción 1 VALOR 1, 2: Hacer acción 1 VALOR 2: Hacer acción 2 VALOR 3, 4, 5: Hacer acción 2 VALOR 3: Hacer acción 3 De otra forma: Hacer acción 3 De otra forma: Hacer acción X {Fin del condicional} {Fin del condicional} Hacer acción X Hacer acción Y . . . . . . Ejemplo: Construya un diagrama de flujo tal que dado como datos la categoría y el sueldo de un trabajador, calcule el aumento correspondiente, teniendo en cuenta la siguiente tabla. Imprima la categoría del trabajador y su nuevo sueldo Aumento Categoría % 1 15 2 10 3 8 Aumento_selectiva_multiple {El programa calcula el aumento de sueldo de los trabajadores, teniendo en cuenta su categoría. El aumento se incorpora al salario} {CATE es una variable de tipo entero, SUE y NSUE son variables de tipo real} 1. Inicio 2. Leer CATE, SUE 3. Si CATE igual 1: Hacer NSUE ← SUE * 1.15 2: Hacer NSUE ← SUE * 1.10 3: Hacer NSUE ← SUE * 1.08 4. {Fin del condicional del paso 3} 5. Escribir CATE, NSUE 6. Fin 27
  • 29. INICIO CATE, SUE CATE 1 3 2 NSUE ← SUE * NSUE ← SUE * NSUE ← SUE * 1.15 1.10 1.08 CATE, SUE FIN Estructura selectivas en cascada Encontramos numerosos casos en el desarrollo de la solución de problemas en el que luego de toma la decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Se señala luego de evaluar las condiciones la rama correspondiente a seguir, nuevamente podemos tomar otra decisión. El proceso puede repetirse numerosas veces NO CONDICIÓ N1 SI SI NO CONDICIÓ N2 OPERACION OPERACION22 21 . 28
  • 30. Ejercicio: Desarrolla el diagrama de flujo del siguiente programa: DESCENDENTE_SELECTIVA_CASCADA {el programa, dados como datos tres números enteros diferentes, escribe estos números en forma descendente} {A, B y C son variables de tipo entero} 1. Leer A, B, C 2. Si A > B Entonces 2.1 Si A > C entonces 2.1.1 Si B > C entonces Escribir A, B y C sino Escribir A, C y B 2.1.2 {Fin del condicional del paso 2.1.1} Sino Escribir C, A y B 2.2 {Fin del condicional del paso 2.1} Sino 2.3 Si B > C Entonces 2.3.1 Si A > C Entonces Escribir B, A y C Sino Escribir B, C y A 2.3.2 {Fin del condicional del paso 2.3.1} Sino Escribir C, B y A 2.4 {Fin del condicional del paso 2.3} 3. {Fin del condicional del paso 2} Construya un diagrama de flujo tal que dado los datos como dados los valores enteros P y Q, determine si los mismos satisfacen la siguiente expresión: P3 +Q3 -2 * P < 680 29
  • 31. U.A. 3 Estructuras Algorítmicas Cíclicas Objetivo: Al finalizar el modulo el participante usará las distintas estructuras cíclicas aplicables a algoritmos E n la practica es común encontrar algoritmos cuyas operaciones se debe ejecutar un número repetido de veces. Las instrucciones son las mismas, pero los datos sobre los que se trabaja varían. El conjunto de instrucciones que se ejecuta repetidamente se llama ciclo. Tipos de estructuras cíclicas Objetivo: Comparara las distintas estructuras cíclicas aplicables a algoritmos Todo ciclo debe terminar de ejecutarse luego de un número finito de veces, por lo que es necesario en cada iteración del mismo, evaluar las condiciones necesarias para decidir si se va a seguir ejecutando o si debe detenerse. en todo ciclo debe existir una condición de parada de ciclo o fin de ciclo. En algunos ciclo podemos establecer el número de veces que deseamos que se repita, el cual lo llamaremos repetir La estructura repetitiva repetir FOR Repetir (FOR), es adecuada para utilizar en un ciclo que s ejecutará un número definido de veces. La estructura FOR tiene Una variable de control del ciclo Un valor inicial Un valor final Un incremento o decremento “Con constancia lograras todo lo que te propongas” 30
  • 32. Lenguaje algorítmico de la estructura repetir Hacer <-- VI Repetir con V desde VI hasta VF {Proceso} . . . Hacer V  V + ID {Fin del ciclo} Representa el lenguaje del diagrama de flujo VVI VVI NO NO SI V(<)VF SI V(>)VF …(<) …(>) PROCESO PROCESO V V+ID V V-ID ASCENDENTE DESCENDENTE V- Control de ciclo VI – valor inicial VF – valor final ID - incremento Ilustración 12Diagrama de Flujo Las estructura repetitiva mientras (WHILE) Es la estructura adecuada para utilizar en un ciclo cuando no sabemos el número de veces que este se ha de repetir. Dicho número depende de las posiciones dentro del ciclo. ciclo: conjunto de instrucciones que se ejecutaran repetidamente Condición de terminación: La evaluación de esta condición permite decidir cuando finaliza la ejecución del ciclo. La condición se evalúa al inicio del mismo. 31
  • 33. PIPROP.INIC Hacer PI  PRIOPOSICION INICIAL I Mientras PI es verdadero repetir . EVALUAC NO . IÓN DE . PI {PROCESO} SI . . PROCESO . Hacer PI  modificación de PI {Fin de ciclo} PI MODIF. de PI Diagrama de flujo Lenguaje algorítmico del diagrama de flujo 3.2 estructura cíclica mientras Creación de programas con estructuras cíclicas Objetivo.- Usara las distintas técnicas de creación de ciclos en algoritmos. Ejemplo: Dados como datos los sueldos de 10 trabajadores de una empresa, obtenga el total de la nomina de la misma. Considere además que no puede utilizar estructuras algorítmicas repetitivas. Datos: SUE1, SUE2, SUE3….SUE10 DONDE: SUEi Es una variable de tipo real que representa el sueldo del trabajador i (1 <= i <= 10) Explicación de las variables I: Es una variable de tipo entero que representa la variable de control del ciclo. Contabiliza el número de veces que se ha de repetirse una determinada acción. El contador toma un valor inicial (generalmente 0 ó 1) y se incrementa en la mayoría de los casos en una unidad en cada vuelta del ciclo. NOMINA: Es una variable de tipo real que representa un acumulador. Este se utiliza cuando debemos obtener el total acumulado de un conjunto de cantidades. Generalmente se inicializa en cero. 32
  • 34. Inicio NOMINA {Calcula el total de la nomina de un grupo de 10 empleados} NOMINA 0 {I variable de tipo entero. SUE y NOMINA tipo real} I1 Variables entero i, real SUE, NOMINA I < 10 1. Inicio 2. Hacer Nomina  0 e I 1 3. Repetir con I desde 1 hasta 10 Leer SUE SUE Hacer NOMINA  NOMINA + SUE e II+1 4. {Fin del paso 2} NOMINA  NOMINA + SUE 5. Escribir NOMINA 6. Fin II+1 NOMINA Inicio Diagrama de flujo 3.2 Ejercicios: Escriba un diagrama de flujo tal que dado un grupo de números naturales positivos, calcule e imprima el cubo de estos números. Datos: Num1, num2, num3…-1 (NUMi es una variable de tipo entero que representa el numero entero positivo i, El fin de datos esta dado por -1) Explicación de las variables NUM Variable de tipo entero CUB: Variable de tipo real. Almacena el cubo de l numero que se ingresa 33
  • 35. CUBO Elabore el diagrama de flujo {El programa calcula el cubo de un grupo de números enteros positivos que se ingresan} {NUM variable de tipo entero. CUB de tipo real} 1. Leer NUM 2. Mientras (NUM <> -1) Repetir Hacer CUB  NUM**3 Escribir CUB Leer NUM 3. {Fin del paso 2} Escriba un diagrama de flujo tal que como datos 270 números enteros, obtenga la suma de las números impares y el promedio de los números pares WHILE 1. Hacer SUMPAR 1, SUMIMP 0, CUEPAR 0 e i 1 2. Repetir con I desde 1 hasta 270 Leer NUM 2.1 SI (NUM <> 0) entonces 2.1.1 Si (-1 ** NUM )> 0 Entonces Hacer SUMPAR  SUMPAR + NUM Y CUEPAR CUEPAR + 1 Sino Hacer SUMIMP  SUMIMP + NUM 2.1.2 {fin del condicional del paso 2.1.1} 2.2 {fin del condicional del paso 2.1} Hacer I  i + 1 3. {fin del ciclo del paso 2} 4. Hacer PROBAR  SUMPAR / CUEPAR 5. Escribir PROBAR Y SUMPAR Calcule el aumento de sueldo para un grupo de empelados de una empresa teniendo en cuenta el siguiente criterio WHILE Si el sueldo es inferior a $ 1000 – aumento 15% Si el sueldo es mayor o igual a $1000 – aumento 12% Imprima el sueldo suevo del trabajador y el total de nomina de la empresa, considerando este nuevo aumento 34
  • 36. Elabore diagrama de flujo Elabore lenguaje algorítmico Dado N números enteros como dato haga un diagrama de flujo que: FOR Obtenga cuantos números leídos fueron mayores que cero Calcule el promedio de los números positivos Obtenga el promedio de todos los números Elabore diagrama de flujo Elabore lenguaje algorítmico 35
  • 37. Declaración variables Enteros Vchi, Vmed,Vgra, { Vchi, Vmed,Vgra: acumulan en numero de ventas} Entero I {I Representa la variable de control de ciclo} Real TVchi, TVmed, TVgra, TVentaDia { TVchi, TVmed, TVgra,, almacena el total de ventas de cada tipo} { TVentaDia almacena el total de la venta del día} Real Venta {Indica la venta de I del vendedor} Cuerpo Inicio 1. Inicio 2. Hacer Vchi0, Vmed0, Vgra0, TVchi0, Temed0, TVgra0, 3. Escribir “Desea realizar una venta S – N: ” 4. Leer Respuesta 5. Repetir con I desde 1 hasta Respuesta<>”S” 5.1 Escribir “introduce el importe de la venta” 5.2 Leer Venta 5.3 Si Venta<=200 entonces Hacer VchiVchi+1 y TVchiTVchi+Venta Sino 5.4 Si Venta<400 entonces Hacer VmedVmed+1 y TVmedTVmed+Venta Sino Hacer VgraVgra+1 y TVgraTVgra+Venta {Fin del condicional 5.4} {Fin del condicional 5.3} Hacer I  I + 1 6 {Fin del condicional del paso 5} 7 TVentaDia TVchi + Temed + TVgra 8 Escribir “Se realizaron” Vchi “ventas menores de $200.00, con un total de ” TVchi 9 Escribir “Se realizaron” Vmed “ventas entre $200.00 y $400.00, con un total de ” TVmed 10 Escribir “Se realizaron” Vgra “ ventas mayores de $400.00, con un total de ” TVgra 11 Escribir “El importe total de ventas del días es: ” TVentaDia 12 Fin 36
  • 39. Elabora el diagrama de flujo y lenguaje algorítmico de cada caso En una reciente elección hubo cuatro candidatos con identificadores 1,2,3,4). Usted habrá de encontrar, mediante un programa, el número de votos correspondiente a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El usuario tecleará los votos de manera desorganizada, tal y como se obtuvieron en la elección, el final de datos esta representado por un cero. {WHILE} Elabore diagrama de flujo Elabore lenguaje algorítmico De una empresa con N empleados, necesitamos obtener el número de empleado y sueldo de un trabajador con el mayor sueldo de la empresa. {FOR} 38
  • 40. Elabore diagrama de flujo Elabore lenguaje algorítmico En el centro meteorológico de Argentina se llevan los promedios mensuales de las lluvias caídas en las principales regiones cerealeras del país. Existen tres regiones importantes denominadas NORTE, CENTRO y SUR. Haga un diagrama de flujo para calcular lo siguiente. {WHILE} El promedio anual de la región centro El mes y registro con menor lluvia en la región sur La región con mayor lluvia anual (Considere que los registros anuales de las regiones son diferentes). Elabore diagrama de flujo Elabore lenguaje algorítmico 39
  • 41. En un estadio se tienen 5 tipos diferentes de localidades, las cuales se identifican por una clave numérica que es un valor comprendido entre 1 y 5. Los precios de cada localidad y los datos referentes a las ventas de boletos para el próximo juego se proporcionan como sigue: Haga un programa que: Lea los precios, Lea los datos de las ventas de boletos imprima para cada venta, la clave, la cantidad y el importe total de los boletos vendido es esta venta Calcule e imprima la cantidad de boletos vendidos de cada tipo Calcule e imprima la recaudación total del estadio Elabore diagrama de flujo Elabore lenguaje algorítmico 40
  • 42. Unidad 4 Asignación Arreglos Objetivo: Al finalizar el participante aplicara los arreglos en algoritmos U n array es una colección de variables del mismo tipo que se referencia por un nombre común. A un elemento específico de un array se accede mediante un índice. Concepto y clasificación de arreglos Objetivo: Al finalizar el participante definirá el concepto de arreglos Un arreglo se define como una colección fuinita, homogénea y ordenada de elementos Finita: Todo arreglo tiene un límite, es decir, se debe determinar cual será el número máximo de elementos que podrán formar parte del arreglo Homogénea: todos los elementos de un arreglo son del mismo tipo (enteros, reales) pero nunca una combinación d estos. Ordenada: Se puede determinar cual es el primer elemento, el segundo… y el n-esimo elemento. Su característica principal es que puede almacenar N elementos del mismo tipo y además permite el acceso a cada uno de estos elementos. Así se distinguen dos partes en los arreglos. los componentes los índices Los componentes hacen referencia a los elementos que componen o forman el arreglo. Es decir son los valores que se almacenan en cada una de sus casillas. Los índices, por otra parte, son los que permiten acceder a los componentes del arreglo en forma individual. Para hacer referencia a un componente de un arreglo se necesitan: el nombre del arreglo el índice del elemento “Lucha por tus ideales” 41
  • 43. Arreglo palabras nombre[0] nombre[1] nombre[2] nombre[3] nombre[4] nombre[5] Definición de arreglos: ident_arreglo = ARREGLO [limitinf……. limitsup] DE tipo palabras = ARREGLO [0..5] DE cadena de caracteres limitinf . . . . . limitsup: Con estos se declara el tipo de los índices así como el número de elementos que tendrá el arreglo. (tipo carácter, entero, etc. cualquier tipo ordinal) ejemplo: 1..10 a..f Tipo: declara el tipo de datos para todos los elementos del arreglo. El tipo de los elementos no tiene que ser necesariamente el mismo de que el de los índices. (cualquier tipo: entero, carácter, cadena de carácter, etc.) [ ] se utilizan para indicar el índice del arreglo OPERACIONES CON ARREGLOS Lectura / Escritura asignación actualización: - Inserción - eliminación - modificación Ordenación Búsqueda LECTURA El proceso relectura de un arreglo consiste en leer y asignar un valor a cada uno de sus elementos Leer ARRE [1] Leer ARRE [2] . . . Leer ARRE [5] 42
  • 44. Escritura Se debe escribir el valor de cada uno de los componentes. supóngase que se desea escribir los p rimeros componentes del arreglo ARRE en forma consecutiva. Los pasos a seguir son: Asignación En general no es posible asignar directamente un valor a todo el arreglo, sino que se debe asignar el valor deseado a cada componente. en seguida se analizan algunos ejemplos de asignación. En los dos primeros casos se asigna un valor a una determinada casilla del arreglo ARRE [1]  120 ARRE [3]  ARRE [1]/4 En el tercer caso se asigna el 0 a todas las casillas del arreglo. Actualización En un arreglo se pueden insertar, eliminar y/o modificar elementos. Para ello se debe tener en cuenta si el arreglo esta ordenado o desordenado, es decir, si sus componentes respetan algún orden entre sí Ejercicios 1) Pida por teclado la base (dato real) de un triángulo. 2) Pida por teclado la altura (dato real) de un triángulo. 3) Calcule el área del triángulo. 4) Muestre por pantalla el resultado (dato real).*/ #include <stdio.h> #include <conio.h> int main(){ float altura, area, base; clrscr(); printf( "Introduzca base: " ); scanf( "%f", &base ); printf( "Introduzca altura: " ); scanf( "%f", &altura ); area = base * altura / 2; printf( "El area del triangulo es: %f", area ); getch(); return 0; } 43
  • 45. /* 1º) Pida por teclado la base (dato real) de un triángulo. 2º) Pida por teclado la altura (dato real) de un triángulo. 3º) Calcule el área del triángulo. 4º) Muestre por pantalla el resultado (dato real). Nota: la operación aritmética se deberá hacer directamente en la instrucción de impresión a pantalla*/ #include <stdio.h> #include <conio.h> int main() { float altura, base; clrscr(); printf( "Introduzca base: " ); scanf( "%f", &base ); printf( "Introduzca altura: " ); scanf( "%f", &altura ); printf( "El area del triangulo es: %f", base * altura / 2 ); getch(); return 0; } /*División entera (Entrada y salida estándar - Lenguaje C) /* 1) Pida por teclado dos números (datos enteros). 2) Muestre por pantalla el resultado de realizar la división entera del primer número introducido por el usuario entre el segundo, y el modulo. */ #include <stdio.h> #include <conio.h> int main() { int dividendo, divisor, cociente, modulo; clrscr(); printf( "Introduzca dividendo (entero): " ); scanf( "%d", &dividendo ); printf( "Introduzca divisor (entero): " ); scanf( "%d", &divisor ); cociente = dividendo / divisor; modulo = dividendo % divisor; 44
  • 46. printf( "%d div %d = %d , Modulo = %d ",dividendo, divisor, cociente, modulo ); printf("nPresione cualquier tecla para continuar"); getch(); return 0; } /* convierta venda dolares al precio del momento*/ #include<conio.h> #include<stdio.h> main() { float precio, pdollar, dollar; clrscr(); printf("CASA DE CAMBIOn"); printf("Cuantos dolares a comprar: "); scanf("%f",&dollar); printf("Teclea el costo del dolar frente al peso: "); scanf("%f",&pdollar); precio = dollar * pdollar; printf("El pago es de= %f pesos",precio); printf("nnnPresione cualquier tecla para terminar"); getch(); } 45
  • 47. 5 U. A. Introducción a los Lenguajes de Programación Objetivo: Al finalizar el modulo el participante usara software adecuado para la creación e programas específicos C es un lenguaje estructurado de nivel medio hecho para programadores, la característica distintiva de un lenguaje estructurado es la compartimentalización de código y datos, se trata de la capacidad de un lenguaje de seccionar y esconder del resto del programa toda la información y todas las instrucciones necesarias para levar acabo una determinada tarea Ambientes de Lenguajes de programación Objetivo: Identifica el tipo de software a emplear para realizar un programa Un compilador lee el programa entero y lo convierte a código objeto, que es una traducción del código fuente del programa a una forma que puede ser ejecutada directamente por la computadora. Una vez que el programa esta compilado, las líneas de código fuente dejan de tener sentido durante la ejecución del programa. Forma de un programa en C declaraciones globales int main (lista de parámetros) { tipo_devuelto función1 (lista de parámetros) { secuencias de instrucciones } tipo_devueklto función2 (lista de parámetros) { secuencia de instrucciones) 46
  • 48. } . . . tipo_devuelto funciónN (lista de parámetros) { secuencia de instrucciones) } Compiladores Turbo C++ 3.0 Este manual supone que has descargado el siguiente archivo: Turbo C++ 3.0 (tc3.zip) Instalación del compilador 1. Descomprime el archivo en la ruta: C:TC 2. Ejecuta el programa: INSTALL.EXE, y, nos aparece la siguiente ventana: 3. Debemos pulsar Intro para continuar. Entonces nos aparecerá otra ventana. 4. Ahora debemos escribir la letra de la unidad donde se encuentran los ficheros de instalación. Si éstos 5. se encuentran en la unidad C, pulsaremos la tecla C y después Intro: 6. A continuación se muestra otra ventana en la que aparece por defecto el directorio donde se 7. encuentran los archivos de instalación. Lo normal será que aquí simplemente pulsemos Intro para 8. continuar. 9. La siguiente ventana nos indica en primer lugar el directorio donde se instalará Turbo C++, que 10. siguiendo el ejemplo será: C:TC Con los cursores nos desplazamos hasta la opción Start 11. Installation y pulsamos Intro, que iniciará la instalación. 12. Mientras se instala, en la parte inferior de la ventana aparecerán los ficheros que se están copiando, 13. como se muestra en la siguiente figura: 14. Una vez se hayan copiado todos los archivos, saldrá una un cuadro (como el que se muestra bajo este 15. párrafo) que nos informa de los últimos pasos de la instalación. Pulsamos Intro para continuar. 16. Tras pulsar Intro nos aparece el contenido del fichero "leeme" de Turbo C++: 17. Para finalizar pulsamos Escape. 18. La instalación ha concluido. 47
  • 49. 19. Según los pasos realizados en este ejemplo de instalación, el programa Turbo C++ es TC.EXE y se encuentra en C:TCBIN Esta versión de Turbo C-C++ 3.0 para D.O.S, por lo tanto DEBE ser copiado en el directorio RAIZ del disco rígido (c:) y NO dentro de c:archivos de programas, porque cuando se intente ejecutar el compilador C, emitirá un mensaje de error, indicando queno encuentra las librerías. Ya que por defecto buscará a las mismas en c:tc. El resultado de la instalación debe ser el siguiente: C:TC | |__BGI | |__BIN | |__INCLUDE | |__LIB Configuración del modo gráfico Esto es para que no tengas problemas al compilar los programas que usan funciones gráficas. 1. Ejecuta el programa: TC.EXE, que está en: C:TCBIN 2. Ve a: Options -> Linker -> Libraries, y dentro de este marca la opción Graphics library, entonces pulsa el botón OK Una vez creado tu programa deberás compilarlo con la combinación de teclas Alt + F9, y una vez que no contenga errores deberás ejecutarlos con la combinación de teclas Control + F9. C++Builder Para hacer un programa en C++ Builder, en lenguaje c siempre se deben de seguir los siguientes pasos: 1. Se ingresa al programa dando doble clic en el icono 2. Una vez en el programa ingresamos al menú File, opción New y seleccionamos Console Wizard, en el 48
  • 50. siguiente cuadro seleccionar Console y presionar finish. 3. Capturar en la pagina que aparece, nuestro código. (borrar las instrucciones que parecen por default) 4. para guardar el programa en el menú File, Save Proyect As, indicas el nombre en la ventana que aparece, indicas la ruta donde deseas guardarlo. Prueba del compilador 1. Abre el programa: TC.EXE, vas a File -> New, esto crea un nuevo archivo O haga lo indicado en C++ builder 2. y escribe lo siguiente en el: #include <stdio.h> #include <conio.h> void main( ) { printf("Hola mundo"); getch(); } 3. Guarda el programa con el nombre: hola (automáticamente se añade la extensión .CPP al archivo en Turbo C++ 3.1; en Buider se agrega la extensión .bpr 4. Compila y ejecuta el programa, presionando: CTRL+F9 ó F9 según sea el caso, entonces aparecerá en pantalla el mensaje: 49
  • 51. 6 U. A. Expresiones Objetivo: Al finalizar el modulo el participante será capaz de escribir sentencias y expresiones en el lenguaje de programación designado E n sentido mas general, podemos decir, que una instrucción es una parte del programa que puede ejecutarse. Es decir, una instrucción especifica una acción. C clasifica las instrucciones en estos grupos: Selección, Iteración, Salto, Etiquetado, Expresión y Bloque. Las cuales se describirán más adelante Tipos de expresiones Objetivo: Escribirá sentencias y expresiones en el lenguaje de programación designado Tipos de datos básicos char int float double void Nombres de los identificadores En C, los nombres de las variables, funciones, etiquetas y otros objetos definidos por el usuario de denominan identificadores. La longitud de un identificador puede variar entre uno y varios caracteres. *el primer carácter debe ser una letra o un símbolo de subrayado y los caracteres siguientes pueden ser letras, letras números o símbolos de subrayado En C las minúsculas y la mayúsculas se tratan como distintas, Ej. Cuenta, Cuenta y CUENTA son tres identificadores diferentes. Una variable es una posición de memoria con nombre que se usa para mantener un valor que puede ser modificado por el programa. Todas las variables deben de estar declaradas antes de poder ser utilizadas. 50
  • 52. Declaración de variables tipo lista_de_variables; int i, j, y; short int nio; unsigned int, u; etc.. Donde se declaran las variables Existen sitios basicvos donde se pueden declarer las variables: Dentro de las funciones (variables locales) En ladefinición de parámetros de funciones ( parámetros formales) Fuera de todas las funciones (variables globales) Variables locales Las variables locales pueden ser utilizadas solo en las instrucciones que estén dentro del bloque en el que han sido declaradas. Estas variables solo existen mientras se esta ejecutando el bloque de código en el que fueron declaradas, ósea se crea al entrar y se destruye al salir, ósea que puede haber dos variables con el mismo nombre en diferente bloque de código y cada una será distinta de la otra. Recuerde que un bloque de código comienza con una llave de apertura y termina con una llave de cierre. Por costumbre las variables se declaran después de la llave de apertura y antes de cualquier instrucción, sin embargo pu8ede hacerse en cualquier línea, antes de que esta se utilizada. Las variables locales no pueden retener sus valores entre llamadas, sin embargo se puede indicar al compilador que retenga sus valores mediante el uso del modificador static. Parámetros formales Si una función va a usar argumentos, debe declarar las variables que van a aceptar los valores de los argumentos. Esas variables son los parámetros formales de la función. Se comportan como cualquier otra variables local de la función, sus declaraciones se dan tras el nombre de la función y entre paréntesis. #/* Devuelve 1 si c es parte de la cadena s; si no, 0 */ Int esta_en (char *s, char c) { 51
  • 53. While (*s) if (*s == c) return 1; else s++; return 0; } Variables globales Se conocen a lo largo de todo el programa y se pueden usar en cualquier parte del código. Además mantiene sus valores durante toda la ejecución del programa, pueden ser accedidas por cualquier expresión, independientemente de la función. Lo mejor es declara todas las variables globales al principio del programa antes de la función main. Const Las variables tipo const no pueden ser modificadas por el programa, sin embargo a una variable const se le puede dar un valorinicial. El compilador es libre de situar las variables de este tipo en memoria de solo lectura. Especificadores de formato Cuando a la función printf se le pase una lista de argumentos (expresiones), se debe escribir un especificador de formato por cada argumento. En la printf, los especificadores de formato establecen el formato de salida por pantalla de los argumentos. La forma más sencilla de escribir un especificador de formato es con el carácter tanto por ciento (%) seguido de un carácter de conversión que indique el tipo de dato del argumento. Los especificadores de formato mas utilizados que se pueden usar en la función printf: %c Salida de un carácter %d salida de un numero entero %f salida de un número real %s salida de una cadena Un programa escrito en C está compuesto por una o más funciones. Como ya es sabido, una función es un programa que sirve para realizar una tarea determinada, por ejemplo, la función scanf sirve para leer datos desde el teclado. Existe una función que está presente en todos los programas escritos en C, su misión es marcar el inicio y fin de la ejecución de cada uno de ellos; es la función principal, la primera que se ejecuta; es la función main. Su sintaxis "básica" es: int main() { <bloque_de_instrucciones>} 52
  • 54. Todas las funciones de la biblioteca estándar de C son subprogramas que ya están compilados, es decir, junto a cualquier compilador de C se acompañan los códigos objeto de todas las funciones de su biblioteca estándar, pero no sus códigos fuente. Por tanto, aunque no sea posible modificar sus códigos fuente, sí se puede hacer uso de dichas funciones en cualquier programa. Por ejemplo, se puede llamar a la función printf para que muestre por pantalla el saludo "Hola mundo". printf( "Hola mundo" ); Dentro de los paréntesis "()" de la función printf, se debe escribir, entre comillas dobles ("), el mensaje o cadena de caracteres que se desea mostrar por pantalla. Obsérvese que, después del carácter cerrar paréntesis ")" se ha escrito un punto y coma (;), esto implica que la llamada a la función printf es considerada como una instrucción de expresión Para que el compilador conozca la declaración de la función printf, hay que utilizar la directiva del preprocesado #include: #include <stdio.h> En este caso, la directiva #include indica, al preprocesador que debe incluir, antes de la compilación, en el código fuente del programa, el contenido del archivo <stdio.h> (stdio, Standard Input/Output). En dicho archivo están escritas las declaraciones de todas las funciones de entrada y salida estándar de la biblioteca estándar de C, como printf. Si el compilador no sabe quien es printf, no podrá generar el código objeto del programa. Toda función retorna un valor. return 0; Esto quiere decir que la función main devuelve el valor 0. Precediendo a main se ha escrito la palabra reservada int, indicando así, que la función retornará un valor de tipo int (entero). int main() En general, la instrucción return suele ser la última del bloque de instrucciónes de la función main. Al retornar el valor 0, indica (informa al sistema operativo) que el programa finalizó correctamente, es decir, sin producirse ningún error en su ejecución. Cuando la función main devuelva un valor distinto de cero, esto siginificará que se ha producido algún error en la ejecución del programa, o que ha ocurrido algo fuera de lo normal. 53
  • 55. La instrucción return es una de las instrucciones de control que existen en C. Por tanto, es una palabra reservada. Después del valor de retorno (que es una expresión) se debe escribir un punto y coma (;). La sintaxis de la instrucción return es: return <expresión>; La sintaxis "básica" de un programa escrito en c es: [ <directivas_del_preprocesador> ] int main() { <bloque_de_instrucciones> } Tipos de datos basicos (simples predefinidos) en c: Numéricos: Entero (int) Real (float y double) Carácter (char) sin valor (void) La mayoría de los elementos de un programa se diferencian entre sí por su nombre. Por ejemplo, los tipos de datos básicos en C se nombran como: char, int, float, double y void Cada uno de ellos es un identificador. Un identificador es el nombre que se le da a un elemento de un algoritmo (o programa). Por ejemplo, el tipo de dato int hace referencia a un tipo de dato que es distinto a todos los demás tipos de datos, es decir, los valores que puede tomar un dato de tipo entero, no son los mismos que los que puede tomar un dato de otro tipo. Los identificadores char, int, float, double y void están predefinidos, forman parte del lenguaje C. No obstante, en el código de un programa también pueden existir identificadores definidos por el programador. Por ejemplo, un programa puede utilizar variables y constantes definidas por el programador. En C, a la hora de asignar un nombre a un elemento de un programa, se debe tener en cuenta que todo identificador debe cumplir las siguientes reglas de sintaxis: 1. Consta de uno o más caracteres. 54
  • 56. 2. El primer carácter debe ser una letra o el carácter subrayado (_), mientras que, todos los demás pueden ser letras, dígitos o el carácter subrayado (_). Las letras pueden ser minúsculas o mayúsculas del alfabeto inglés. Así pues, no está permitido el uso de las letras 'ñ' y 'Ñ'. 3. No pueden exitir dos identificadores iguales, es decir, dos elementos de un programa no pueden nombrarse de la misma forma. Lo cual no quiere decir que un identificador no pueda aparecer más de una vez en un programa. De la segunda regla se deduce que un identificador no puede contener caracteres especiales, salvo el carácter subrayado (_). Es importante resaltar que las vocales no pueden llevar tilde ni diéresis. #define y const La directiva #define indica al preprocesador que debe sustituir, en el código fuente del programa, todas las ocurrencias del <nombre_de_la_constante> por la <secuencia_de_caracteres>, antes de la compilación. Ejemplo 2: Dos constantes muy habituales son: #define PI 3.141592 #define NUMERO_E 2.718281 En programación es una buena práctica escribir los identificadores de las constantes en mayúsculas, de esta forma es más fácil localizarlos en el código de un programa. Nótese que, después de la declaración de una constante simbólica no se escribe un carácter punto y coma (;), cosa que sí se debe hacer al declarar una variable. Por otra parte, no se puede declarar más de una constante simbólica en una misma línea de código. Ejemplo 3: Para declarar las constantes simbólicas PI y NUMERO_E, no se puede escribir: #define PI 3.141592, NUMERO_E 2.718281 Por otra parte, en C, es posible declarar una variable indicando que su valor es inalterable. Para ello, se utiliza el cualificador const. Ejemplo 4: Uso de const: const int temperatura = -5; Operadores Aritméticos + Suma - Resta * Multiplicación / División / División (div) % Modulo 55
  • 57. + Signo mas - Signo menos Operadores logicos && Conjuncion || Disyunción ! Negación Programación de expresiones Programación de expresiones Objetivo: Creara programas que manipulen datos de forma específica Ejercicios: /*Escribir un programa (en lenguaje C) que: 1º) Pida por teclado la base (dato real) de un triángulo. 2º) Pida por teclado la altura (dato real) de un triángulo. 3º) Calcule el área del triángulo. 4º) Muestre por pantalla el resultado (dato real). Nota: la operación aritmética se deberá hacer directamente en la instrucción de impresión a pantalla*/ #include <stdio.h> #include <conio.h> int main() { float altura, area, base; printf( "Introduzca base: " ); scanf( "%f", &base ); printf( "Introduzca altura: " ); scanf( "%f", &altura ); area = base * altura / 2; printf( "El area del triangulo es: %f", area ); getch(); return 0; } Ora forma de hacerla optimizando código. #include <stdio.h> 56
  • 58. #include <conio.h> int main() { float altura, base; printf( "Introduzca base: " ); scanf( "%f", &base ); printf( "Introduzca altura: " ); scanf( "%f", &altura ); printf( "El area del triangulo es: %f", base * altura / 2 ); getch(); return 0; } /*Elaborar un programa que convierta venda dolares al precio del momento*/ #include<conio.h> #include<stdio.h> main(){ float precio, pdollar, dollar; clrscr(); printf("CASA DE CAMBIOn"); printf("Cuantos dolares a comprar: "); scanf("%f",&dollar); printf("Teclea el costo del dolar frente al peso: "); scanf("%f",&pdollar); precio = dollar * pdollar; printf("El pago es de= %f pesos",precio); printf("nnnPresione cualquier tecla para terminar"); getch(); } Ejercicios: 1. Elabore un programa en lenguaje C que pida por teclado el nombre y la edad e imprima esos datos. 2. Escribir un programa (en lenguaje C) que: Pida por teclado dos números (datos enteros). Muestre por pantalla el resultado de realizar la división entera del primer número introducido por el usuario entre el segundo, y el resto. 57
  • 59. 7 U. A. Sentencias de Control Objetivo: Al término de la modulo el participante creara programas que permitan la bifurcación de su control en función a situaciones especificas por medio de la inclusión de sentencias de control C contempla dos tipos de instrucciones de selección: if y switch. La sentencia if, tiene variaciones como el if-else, y los if anidados. Estructuras if y switch Objetivo: El participante explicará las sentencias de los lenguajes de programación Forma general de la instrucción if es if (expresión) instrucción; else instrucción; donde instrucción puede ser una instrucción simple, un bloque de instrucciones o nada ( en caso de instrucciones vacias) . La cláusula else es opcional. si la expresión es cierta( cualquier valor que no sea cero 0), se ejecuta la instrucción o el bloque de instrucciones que constituye el objetivo del if; en elcaso contrario se ejecuta la instrucción o el bloque de instrucciones que constituye el objeto del else, si existe. Recuerde que solo se ejecuta el código asociado al if o al else, nunca ambos. Ejemplo. /*Mostrar si el numero es par o impar*/ #include<conio.h> #include<stdio.h> main() { int num; 58
  • 60. clrscr(); printf ("Dame numero: n"); scanf("%d",&num); if (num %2 == 0) printf("Numero par"); else printf("numero impar"); getch(); } if anidados un if anidado es un if que es el objetivo de otro if o else. Los if anidados son muy comunes en programación. en un if anidado, una instrucción else siempre se refiere al if mas próximo que este en el mismo bloque que el else y que no este ya asociado con un else. Por ejemplo: /*utilizando if anidados deberá mostrar en pantalla el numero mágico*/ #include<stdio.h> #include<stdlib.h> #include<conio.h> int main (void) { int magico; //inicialización de numero mágico int intento; //intento del usuario magico = rand(); // genera número mágico printf("adivine el nuemro magico"); scanf("%d", &intento); if (intento == magico){ printf("n***C O R R E C T O ***"); printf("%d es el numero magico n", magico); } else{ printf("n***I N C O R R E C T O ***"); if (intento >magico) printf ("ndemasiado alto"); else printf("ndemasiado bajo"); getche();} return 0; } 59
  • 61. Otro ejemplo de if anidados #include <stdio.h> #include <conio.h> int main(void) { int a,b,c; printf("i9ntroduce 1 nuemros enteros"); scanf("%d", &a); printf("i9ntroduce 1 nuemros enteros"); scanf("%d", &b); printf("i9ntroduce 1 nuemros enteros"); scanf("%d", &c); if (a>b){ if (a>c){ if(b>c){ printf("%d%d%d", a,b,c); } else{ printf("%d%d%d", a,c,b); } }else printf("%d%d%d", c,a,b);} else{ if (b>c){ if (a>c){ printf("%d%d%d", b,a,c);} else{ printf("%d%d%d", b,c,a);}} else{ printf("%d%d%d", c,b,a); } } getch(); return 0; } Switch C incorpora una instrucción de selección múltiple, denominada switch, que compara sucesivamente el valor de una expresión con una lista de constantes enteras o de caracteres. Cuando se encuentra una correspondencia, se ejecutan las instrucciones asociadas con la constante. La forma general de la instrucción switch es 60
  • 62. switch (expresión){ case constante1: secuencia de instrucciones break; case constante2: secuencia de instrucciones break; case constante3: secuencia de instrucciones break; . . . . default: secuencia de instrucciones } Ejemplo: /*Escribir un programa (en lenguaje C) que: 1) Muestre el listado de las habitaciones de la casa rural. 2) Pida por teclado el número (dato entero) asociado a una habitación. 3) Muestre por pantalla la planta y el número de camas de la habitación seleccionada. Nota: Si el número introducido por el usuario, no está asociado a ninguna habitación, se mostrará el mensaje: "ERROR: <número> no está asociado a ninguna habitación.".*/ #include <stdio.h> #include <conio.h> int main() { int numero; printf( "Listado de habitaciones:" ); printf( "nn1. Azul" ); printf( "n2. Roja" ); printf( "n3. Verde" ); printf( "n4. Rosa" ); printf( "n5. Gris" ); printf( "nnIntroduzca numero de habitación: " ); scanf( "%d", &numero ); 61
  • 63. switch ( numero ) { case 1 : printf( "La Azul tiene 2 cama y esta en la primera planta." ); break; case 2 : printf( "La Roja tiene 1 cama y esta en la primera planta." ); break; case 3 : printf( "La Verde tiene 3 cama y esta en la segunda planta." ); break; case 4 : printf( "La Rosa tiene 2 cama y esta en la segunda planta." ); break; case 5 : printf( "La Gris tiene 1 cama y esta en la tercera planta." ); break; default : printf( "ERROR: %d no esta asociado a ninguna habitación.", numero ); } getch(); } Estructuras FOR y WHILE Objetivo: El participante Explicará la lógica de las estructuras cíclicas El formato general del bucle for de c se encuentra de una forma o de otra en todos los lenguajes de programación. En C, sin embargo, proporciona una potencia y flexibilidad sorprendentes. La forma general para la instrucción for es for(inicialización;condicion;incremento) instrucción; Por ejemplo, el siguiente programa usa un bloque for para imprimir los números del 1 al 100 en pantalla: #include<stdio.h> int main() { int x; for(x=1; x<=100; x++) printf(“%d”, x); return 0; } El bucle WHILE El Segundo bucle disponible en C es while, su forma general es while(condición) instrucción; 62