Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
383
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. FACULTAD DE INGENIERÍA INDUSTRIAL
    INFORMÁTICA
    Ing. Mónica Díaz Reátegui CIP. 63424
    monicdre@yahoo.com
  • 2. CONTENIDO
    ESTRUCTURA
    SECUENCIAL
  • 3. PROGRAMACIÓNESTRUCTURADA
    El término de programación estructurada se refiere a un conjunto de técnicas que han ido evolucionando desde los primeros trabajos de Dijktra.
     
    Estas técnicas aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas
     
  • 4. PROGRAMACIÓNESTRUCTURADA
    La programación estructurada utiliza un número limitado de estructuras de control que minimiza la complejidad de los problemas y por consiguiente reduce los errores.
     
    La programación estructurada es el conjunto de técnicas que incorporan:
    El diseño descendente
    Los recursos abstractos
    Las estructuras básicas
  • 5. PROGRAMACIÓNESTRUCTURADA
    RECURSOS ABSTRACTOS
    Recursos abstractos (simplicidad): consiste en descomponer una determinada acción compleja, en función de un número de acciones más simples, capaces de ser resueltas con mayor facilidad y que constituirán las instrucciones.
     
  • 6. PROGRAMACIÓNESTRUCTURADA
    DISEÑO DESCENDENTE
    El diseño descendente (Top – Down) es el proceso mediante el cual un programa se descompone en una serie de niveles o pasos sucesivos de refinamiento.
    La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración de modo que se relacionen unas con otras mediante entradas y salidas de información.
  • 7. PROGRAMACIÓNESTRUCTURADA
    Es decir, se descompone el problema en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura desde dos puntos de vista: qué hace y como lo hace.
    Nivel n vista desde el exterior
    ¿Qué hace?
    Nivel n vista desde el interior
    ¿Cómo lo hace?
  • 8. PROGRAMACIÓNESTRUCTURADA
    ESTRUCTURAS BÁSICAS
    Un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control: —secuenciales, selectivas y repetitivas.
     
     TEOREMA DE BOHN JACOPINI
    Teorema de la programación estructurada o de BohnJacopini; que demuestra que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control:
    Secuenciales.
    Selectivas.
    Repetitivas.
  • 9. PROGRAMACIÓNESTRUCTURADA
    Un programa propio se define como propio si cumple las siguientes características:
     
    • Posee un solo punto de entrada y uno de salida o final.
    • 10. Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas las partes del programa.
    • 11. Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).
  • ESTRUCTURAS BÁSICAS
    ESTRUCTURA SECUENCIAL
     
    DEFINICIÓN
    La estructura secuencial es aquella en la que una acción (instrucción o sentencia) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el final del proceso.
     
  • 12. ESTRUCTURAS BÁSICAS
    ESQUEMA BÁSICO
  • 13. ESTRUCTURAS BÁSICAS
    SALIDAS BÁSICAS
     
    INTRODUCCIÓN
    Una de las características más sobresalientes de C++ es la flexibilidad en la utilización de las entradas y salidas (E/S) así como la facilidad para su tratamiento.
     
    C++ fue diseñado para ser compatible con C. Por consiguiente el C++ tiene disponible todas las funciones típicas de entrada y salida del C incluyendo getchar(), putchar(), scanf() y printf().
     
    Ya que los programadores disponen de la biblioteca stdio.
     
  • 14. ESTRUCTURAS BÁSICAS
    BIBLIOTECA iostream
     
    C++ incorpora una nueva biblioteca de funciones de E/S (Entrada/Salida): la biblioteca iostream.
     
    La biblioteca iostream es una implementación orientada a objetos y se fundamenta en forma similar a la biblioteca stdio en el concepto de flujos.
     
    A nivel abstracto un flujo (stream) es un modo de representar el flujo o secuencia de datos de una fuente (productor) a un destino o buzón (consumidor). 
  • 15. ESTRUCTURAS BÁSICAS
    Así por ejemplo:
    Cuando se ingresa caracteres por el teclado, se puede pensar en caracteres que fluyen o se trasladan desde el teclado a las estructuras de datos de su programa.
     
    Para acceder a la biblioteca iostream se debe incluir en cada programa el archivo de cabecera iostream.h, mediante la directiva del preprocesador #include.
     
  • 16. ESTRUCTURA DE UNPROGRAMA EN C
    #include <iostream.h>
     
    Este archivo de cabecera contiene información de diferentes funciones de E/S y proporciona la manipulación de los buffer.
     
    Define también los objetos predefinidos de flujo cin, cout, cerry clogque se pueden utilizar en nuestros programas.
    C++ realiza todas las entradas y salidas como flujos de caracteres. Si su programa recibe entrada del teclado, de un archivo de disco, de un MÓDEM o de un ratón, C++ ve solo un flujo de caracteres.
  • 17. ESTRUCTURAS BÁSICAS
    C++ no tiene que conocer cual es el tipo de dispositivo que proporciona la entrada; el sistema operativo maneja los dispositivos específicos y los programas manejan caracteres de datos sin preocuparse del dispositivo.
     
    La instrucción usingnamespace especifica que los miembros de un namespace van a utilizarse frecuentemente en un programa. Esto permite al programador tener acceso a todos los miembros del namespace y escribir instrucciones más concisas como:
    cout<<"hola";
    en vez de:
    std::cout<<"hola";
  • 18. ESTRUCTURAS BÁSICAS
    cout
     
    Se utilizará cout como el flujo de salida conectado a la salida estándar (pantalla).
     
    Cuando un programa comienza la ejecución, automáticamente abre los archivos de dispositivos y los conecta a los objetos cin, cout y cerr y los asocia con los operadores específicos.
     
    El operador de inserción (<<) transmite sus argumentos (situados) a la derecha hacia el flujo cout (a la izquierda del operador).
  • 19. SENTENCIA EN C
    PALABRAS RESERVADAS
    Una Palabra reservada o clave (keyword) es una palabra o identificador que tiene un significado particular para un Lenguaje de programación.
    Ejemplo:
    break case catch char
    class const const_cast continue
    Default delete deprecated dllexport
    dllimport do double dynamic_cast
    else enum explicit extern
    false float for friend
  • 20. SENTENCIA EN C
    CONSTANTES
    Valor numérico o carácter que no ocupa memoria fuera del código del programa.
    Ejemplo: los números 5, 17 y 0xB1; y los caracteres A, q y !.
     
    CADENAS
    Cualquier secuencias de valores (byte, palabras, palabras dobles, etc.).
    Ejemplo: “El C ++ es divertido para programar”.
    Dentro de las cadenas también pueden contener los llamados caracteres de escape o secuencia de escape.
  • 21. SENTENCIA EN C
  • 22. SENTENCIA EN C
    El operador << es una buena elección para representar la operación de salida, se puede concatenar diferentes operadores en una sola línea y utilizar la misma sintaxis para visualizar todos los tipos de datos básicos en un flujo.
     
    El operador << convierte automáticamente la representación interna de la variable en una representación de textos.
    Ejemplo:
    cout << 45; // Visualiza 45
    cout << 1.23457 // Visualiza 1.23457
    cout << “Hola” // Visualiza Hola
  • 23. SENTENCIA EN C
    Al final de un cout se puede colocar un carácter de nueva línea de modo que el cursor se mueva una línea debajo de la siguiente manera:
     
    cout<< “Aprendo C++”;
    cout<<“ ”;
    cout<< “Aprendo c++”<<“ ”;
    cout << “Aprendo C++ ”;
  • 24. SENTENCIA EN C
    Secuencias de escape
    Las secuencias de caracteres en las que el primero es la barra invertida, se denominaron secuencias de escape y aunque originariamente se utilizaron para la representación de los caracteres de control, por extensión pueden representarse de este modo todos los códigos ASCII. Además se dispone de algunos símbolos predefinidos para los caracteres más frecuentes. Por ejemplo, se utiliza para representar el carácter nueva línea (decimal 10). Los símbolos utilizados se muestran en la tabla adjunta
  • 25. SENTENCIA EN C
    Secuencia   Valor     Símbolo     Que Hace                           
     a               0x07         BEL    Sonido audible (bell)
                    0x08          BS     Retroceso (backspace)
     f               0x0C          FF      Salto de formato (formfeed)
                     0x0A         LF       Saltar una línea (linefeed)
                     0x0D         CR      Retorno de carro (carriagereturn)
                     0x09          HT      Tabulación horizontal (H Tab)
     v               0x0B         VT      Tabulación vertical (V Tab)
                   0x5c                     Barra invertida (backslash)
     '               0x27           '          Apóstrofo (comilla simple)
     "               0x22           "         Doble comilla
     ?               0x3F           ?        Interrogación
     
  • 26. SENTENCIA EN C
    PROGRAMA EJEMPLO:
       #include <iostream.h>
    void main()
    {
    intedad=18;
    float peso=64.50;
    char inicial = ’l’;
    cout<< “Mi edad es “<< edad;
    cout <<“ ”;
    cout<<“Mi ”;
    cout<<“peso es”;
    cout<<peso<<“ ”;
    cout<<“Mi inicial es “<< inicial<<“ ”;
    }
  • 27. MANIPULADORES
    La bibliotecaiostreamtienevariosoperadoresparticularesllamadosmanipuladores que le permitecontrolarprecisamente el formato de los datosvisualizados.
     
    Situando un manipulador en la cadena de operadores <<, se puede modificar el estado de flujo.
     
    Una característica importante de un flujo es que debe tratar con valores numéricos en diferentes bases numéricas.
     
  • 28. MANIPULADORES
    La biblioteca iostream tiene tres manipuladores (dec, hex, oct) para controlar la conversión de un valor cuando se desea verlo en pantalla.
     
    La conversión por defecto es la base 10
     
    Por ejemplo:
    #include <iostream.h>
    …..
    int i=100;
    cout << dec << i << endl; //visualiza 100
    cout << hex << i << endl; //visualiza 64
    cout << oct << i << endl; //visualiza 144 
  • 29. FUNCIONES
    Control del formato
     
    Los manipuladores setw () y setprecision () controlan la anchura y la precisión de los datos impresos.
    Pertenecen a la librería iomanip.h
    Por ejemplo:
     
    cout << 20;
    cout << 30;
    cout << 40;
     
    La salida sin formato es:
    203040
  • 30. FUNCIONES
    Utilizando setw()
     
    int i=100;
    //estableciendo una anchura de 6
    cout <<setw(6)<< dec << i << endl;
    cout << setw(6)<<hex << i << endl;
    cout << setw(6)<<oct << i << endl;
    Ahora la salida sería:
    100
    64
    144
     
  • 31. FUNCIONES
    Otro ejemplo
    int i=100;
    //estableciendo una anchura de 10
    cout <<setw(10)<< 123 << endl;
    cout << setw(10)<<12345 << endl;
    cout << setw(10)<<1234567 << endl;
     
    Ahora la salida sería:
    123
    12345
    12314567
  • 32. FUNCIONES
    El manipulador setprecision() determina cuantos dígitos de precisión se visualizan, es especialmente útil para valores de coma flotante que limitan el número de posiciones decimales visualizadas. Por ejemplo:
     
    cout <<3.14159 << endl;
    cout << setprecision(3)<<3.14159 << endl;
     
    Ahora la salida sería:
     
    3.14159
    3.142
  • 33. ENTRADAS BÁSICAS
    Cin
    El objeto cin actúa como el teclado y combinando con el operador >> produce una pausa en un programa y espera a que el usuario introduzca por teclado datos.
     
    Con un solo cin se puede obtener uno o mas valores (al igual como sucede con cout que puede visualizar uno o más valores), siempre que separe los valores que siguen a cin con operadores >> adicionales. 
  • 34. OPERADORES
    Vamos a ilustrar con el siguiente gráfico:
  • 35. OPERADORES
    Para obtener múltiples valores con un solo cin, requiere que el usuario debe escribir un caracter espacio en blanco entre los valores.
     
    Recuerde que en la terminología del C++ un espacio en blanco es cualquier pulsación de las teclas tabulación, espaciador o return (enter o intro).
     
    Por consiguiente en respuesta a la sentencia:
     
    cin>>a>>b>>c; //lee 3 valores de teclado
     
  • 36. OPERADORES
    • El usuario puede introducir tres valores separados por un blanco :
    5 8 6
    • O bien puede pulsar la tecla tab :
    5 8 6
    • O bien puede pulsar la tecla intro :
    5
    8
    6
     
  • 37. OPERADORES
    En cualquiera de los tres casos el efecto será el mismo.
     
    IMPORTANTE:
     
    Si se introduce
    5, 8, 6
     
    El compilador C++ no considera la coma como espacio en blanco y en consecuencia solo se pone 5 en a y las otras variables almacenarán basura en ellas.
  • 38. EXPRESIONES
    Para evitar el error de introducir caracteres no blancos como separadores, es bueno visualizar en pantalla mensajes de advertencia al usuario tales como:
     
    cout << “por favor, introduzca tres números ”;
    cout << “separe el valor con un blanco, ”;
    cout << “nunca con comas ”;
    cin >> a>> b >> c;
     
  • 39. EXPRESIONES
    En caso de duda, será preferible situar un cin en cada una de las líneas:
     
    cout << “introduzca el primer valor ”;
    cin >> a;
    cout << “cual es el segundo valor ”;
    cin >> b;
    cout << “cual es el tercer valor”;
    cin >> c;
     
     
  • 40. INSTRUCCIÓN DE ASIGNACIÓN
    =
    El operador de asignación es una etiqueta que permita asignar un valor a una variable que se encuentra en la memoria principal.
     
    La estructura de una instrucción de asignación:
  • 41. EXPRESIONES
    Donde :
     valor: Puede ser una constante, un identificador de variable o una expresión aritmética o el nombre de una función.
     
    Ejemplos:
     
    A = 20;
    La constante 20 es asignada a la variable A
     
    P = A;
    El valor que contiene almacenada la variable A es asignada a la variable P
      
  • 42. EXPRESIONES
     
    R = X + Y;
    El valor resultante de la expresión aritmética formada por dos identificadores de variable es asignada a la variable R
     
    Z= suma(a);
    El valor que devuelve la función SUMA es asignado a la variable Z
     
     
  • 43. EXPRESIONES
    ASIGNACION MÚLTIPLE
     
    Aunque parezcan un poco extrañas al principio las asignaciones, al igual que las otras operaciones, dan un resultado que puede asignarse a su vez a otra expresión.
    De la misma forma que (a + b) es evaluada y su resultado puedo copiarlo en otra variable: c = (a + b) ; una asignación (a = b) da como resultado el valor de b , por lo que es lícito escribir
    c = ( a = b );
     
  • 44. EXPRESIONES
    ASIGNACION A UNA MISMA VARIABLE
     
    El hecho de que estas operaciones se realicen de derecha a izquierda también permite realizar instrucciones del tipo:
    a = a + 17 ;
     
    significando esto que al valor que tenia anteriormente a , se le suma la constante y luego se copia el resultado en la variable .
    Como este último tipo de operaciones es por demás común, existe en C un pseudocódigo , con el fin de abreviarlas .
  • 45. EXPRESIONES
    Así una operación aritmética o de bit cualquiera (simbolizada por OP )  
    a = (a) OP (b) ;
     
    puede escribirse en forma abreviada como : a OP= b ;
     
    Por ejemplo :  a += b   ;     /* equivale :  a = a + b */
    a *= b   ;    /* equivale :  a = a * b */
    a /= b   ;     /* equivale :  a = a / b */
    a %= b   ;    /* equivale :  a = a % b */
      
    Nótese que el pseudooperador debe escribirse con los dos símbolos seguidos, por ejemplo +=, y no será aceptado +(espacio) = .
  • 46. TIPOS DE INSTRUCCIONES
    ASIGNACIÓN CONDICIONAL
     El significado del mismo es el siguiente:
     
    lvalue = (operación relacional ó lógica) ? (rvalue 1) : (rvalue 2) ;
     
    de acuerdo al resultado de la operación condicional se asignará a lvalue el valor de rvalue 1 ó 2 .
     
    Es decir:
    Si aquella es CIERTA será lvalue = rvalue 1 y
     
    Si diera FALSO, lvalue = rvalue 2 .
    .
  • 47. TIPOS DE INSTRUCCIONES
    Ejemplo:
    Si se desea asignar a c el menor de los valores a ó b , se debe escribir lo siguiente:
    c = (a < b) ? a : b ;
     
  • 48. EXPRESIONES
    Los operadores de asignación están resumidos en la siguiente tabla;.
    TABLA OPERADORES DE ASIGNACION
  • 49. EXPRESIONES
    OPERADORES DE INCREMENTO Y DECREMENTO
    Los operadores de incremento y decremento son sólo dos y están descriptos en la TABLA
    TABLA OPERADORES DE INCREMENTO Y DECREMENTO
  • 50. ENTRADAS Y SALIDAS BASICAS
    Para visualizar rápidamente la función de los operadores mencionados, tenemos las sentencias:
    a = a + 1 ;
    a++ ;
     
    tienen una acción idéntica , de la misma forma que
    a = a - 1 ;
    a-- ;
     
    es decir incrementa y decrementa a la variable en una unidad .
  • 51. ENTRADAS Y SALIDAS BASICAS
    Si bien estos operadores se suelen emplear con variables int , pueden ser usados sin problemas con cualquier otro tipo de variable . Así si a es un float de valor 1.05 , luego de hacer a++ adoptará el valor de 2.05 y de la misma manera si b es una variable del tipo char que contiene el caracter 'C' , luego de hacer b-- su valor será 'B'
    Si bien las sentencias
    i++ ;
    ++i ;
    son absolutamente equivalentes, en la mayoría de los casos la ubicación de los operadores incremento ó decremento indica CUANDO se realiza éste.
  • 52. ENTRADAS Y SALIDAS BASICAS
    Ejemplo:
     
    int i = 1 , j , k ;
    j = i++ ;
    k = ++i ;
     
    Donde j es igualado al valor de i y POSTERIORMENTE a la asignación i es incrementado por lo que j será igual a 1 e i igual a 2 , luego de ejecutada la sentencia .
    En la siguiente instrucción i se incrementa ANTES de efectuarse la asignación tomando el valor de 3 , él que luego es copiado en k .
  • 53. ENTRADAS Y SALIDAS BASICAS
    CONVERSIÓN AUTOMÁTICA DE TIPOS
    Cuando dos ó mas tipos de variables distintas se encuentran DENTRO de una misma operación ó expresión matemática, ocurre una conversión automática del tipo de las variables.
  • 54. ENTRADAS Y SALIDAS BASICAS
    En todo momento de realizarse una operación se aplica la siguiente secuencia de reglas de conversión (previamente a la realización de dicha operación):
    1) Las variables del tipo char ó short se convierten en int.
    2) Las variables del tipo float se convierten en double.
    3) Si alguno de los operandos es de mayor precisión que los demás , estos se convierten al tipo de aquel y el resultado es del mismo tipo.
    4) Si no se aplica la regla anterior y un operando es del tipo unsigned el otro se convierte en unsigned y el resultado es de este tipo.
  • 55. COMPILACION Y ENLAZADO EN C
    Las reglas 1 a 3 no presentan problemas, sólo nos dicen que previamente a realizar alguna operación las variables son promovidas a su instancia superior. Esto no implica que se haya cambiado la cantidad de memoria que la aloja en forma permanente .
    Otro tipo de regla se aplica para la conversión en las asignaciones.
    Si se define los términos de una asignación como,"lvalue" a la variable a la izquierda del signo igual y "rvalue" a la expresión a la derecha del mismo, es decir:
     "lvalue" = "rvalue" ;
     
  • 56. COMPILACION Y ENLAZADO EN C
    Posteriormente al cálculo del resultado de "rvalue" (de acuerdo con las reglas antes descriptas), el tipo de este se iguala al del "lvalue". El resultado no se verá afectado si el tipo de "lvalue" es igual ó superior al del "rvalue", en caso contrario se efectuará un truncamiento ó redondeo, según sea el caso.
    Por ejemplo, el pasaje de float a int provoca el truncamiento de la parte fraccionaria, en cambio de double a float se hace por redondeo.
    .
  • 57. COMPILACION Y ENLAZADO EN C
    Librería math ANSI C
    Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas.
     
    Funciones
     
    acosasin atan atan2
    ceilcoscoshexp
    fabsfloorfmodfrexp
    ldexp log log10 modf
    pow sin sinhsqrt
    tan tanh
  • 58. COMPILACION Y ENLAZADO EN C
    Función pow ANSI C
     Calcula x elevado a la potencia de y. Puede producirse un error de dominio si x es negativo e y no es un valor entero. También se produce un error de dominio si el resultado no se puede representar cuando x es cero e y es menor o igual que cero. Un error de recorrido puede producirse.
     
    Sintaxis:
     double pow(double x, double y);
     
     Valor de retorno:
    La función pow retorna el resultado de xy.
  • 59. COMPILACION Y ENLAZADO EN C
    Ejemplo:
     
    #include <iostream.h>
    #include <math.h>
     
    int main()
    {
    double x = 6.54321, y = 0.56789;
     
    cout<<”pow(“<<x<<”,”<<y<<” ) = “<< pow(x,y);
    return 0;
    }
     
  • 60. EXPRESIONES
    Función sqrt ANSI C
     
    Calcula la raíz cuadrada del valor no negativo de x. Puede producirse un error de dominio si x es negativo.
     
    Sintaxis
    double sqrt(double x);
     
     
    Valor de retorno:
    La función sqrt retorna el resultado de la raíz cuadrada de x.
     
  • 61. EXPRESIONES
    Ejemplo:
    #include <iostream..h>
    #include <math.h>
     
    int main()
    {
    double x = 6.54321;
     
    cout<< "sqrt(“<<x<<” )= “<< sqrt(x);
    return 0;
    }
     
     
  • 62. EXPRESIONES
    Función sin ANSI C
     
    Calcula el seno de x (medido en radianes).
     
    Sintaxis:
     
    double sin(double x);
     
     
    Valor de retorno:
    La función sin retorna el seno, en radianes.
     
  • 63. EXPRESIONES
     Ejemplo:
    #include <iostream.h>
    #include <math.h>
    int main()
    {
    double x = 3.1416/3.0;
     
    cout<< "sin(“<<x<<” ) = “<< sin(x);
    return 0;
    }