Introducción al Lenguaje de Programación “...

download Introducción al Lenguaje de Programación “ Cecaths1.s3.amazonaws.com/informaticar/246726576.UT3-4_ 14.pdf · en el conocimiento del Lenguaje de Programación C o C++. La mejor

If you can't read please download the document

Transcript of Introducción al Lenguaje de Programación “...

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    1/22

    1.- Introduccin al Lenguaje de Programacin C

    La manera habitual de aprender a programar en cualquier Lenguaje de Programacin, a los que el C o

    C++ , no estn exentos es la de formular una Metodologa de Trabajo , como se ha visto en puntos

    anteriores , que permita efectuar el Anlisis del Problema dado , Elaborar Algoritmos con Diagramas de

    Flujos y/o Seudocdigo y por ltimo Codificar el Algoritmo para su prueba y validacin en una

    Computadora.

    La Codificacin es el pasaje de toda la lgica desarrollada en los respectivos algoritmos a un Lenguaje

    de Programacin reconocido por el Computador y por el Programador. Para esto es indispensable conocer

    las Reglas de Escritura o Sintxis de un Lenguaje de Programacin que servirn para todas las aplicaciones

    y desarrollos, desde programas simples a programas de cualquier grado de complejidad.

    El Lenguaje de Programacin C, entonces, se convierte en un medio de comunicacin comn entre el

    usuario programador y la Computadora a los fines que la misma haga lo que el usuario necesita en

    relacin con la solucin de un problema planteado.

    Conocidas las Estructuras Bsicas como las Instrucciones Secuenciales, Selectivas o Condicionales y

    las Repetitivas vistas en Unidad Temtica 4 as como los conceptos de Acumulador, Contador, Asignacin

    y Bandera o Palabra Clave, corresponde por una cuestin de practicidad analizar los problemas resueltos

    con Diagrama de Flujo y Seudocdigo desde el punto de vista de la Lgica a la que deben responder , y

    traducirlos o pasarlos al Lenguaje C para que la Computadora efecte el procesamiento segn las

    instrucciones que forman parte de un programa y presente los resultados de acuerdo a lo requerido en cada

    caso particular. Esto quiere decir que usaremos los mismos Ejemplos para introducirnos en forma gradual

    en el conocimiento del Lenguaje de Programacin C o C++.

    La mejor manera de aprender a programar en cualquier lenguaje es editar, compilar, linkear, corregir y

    ejecutar pequeos programas descriptivos.

    El primer ejemplo bsico es el siguiente: - Realizar un programa en C que imprima por pantalla la leyenda

    PRIMER PROGRAMA EN C .

    Programa N 1:

    # include

    main ( )

    { /* Primer Programa escrito en C */

    printf ( PRIMER PROGRAMA EN C \n ) ;

    return 0;

    }

    EXPLICACIN:

    Lo que hace este programa elemental es imprimir o escribir por pantalla de la Computadora el texto

    PRIMER PROGRAMA EN C .

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    2/22

    La forma general de un programa en C es:

    # include

    main ( ) Funcin main ( ) o Funcin Principal

    {

    Cuerpo del programa o programa con las instrucciones a ejecutar. Siempre est entre dos llaves que

    significan Inicio y Fin de Ejecucin del Programa respectivamente.

    }

    El significado de cada parte es el siguiente:

    # include < stdio.h> # include

    Corresponde al Preprocesador del C++

    y consiste en un procesador de Texto que realiza inclusin de

    Ficheros llamados Archivos de Cabecera ( Header ) , de ah la extensin . h .

    Con esta directiva se ponen a nuestra disposicin las funciones existentes en el Archivo de Cabecera

    identificado con el nombre stdio.h.

    # include es una directiva de inclusin de un archivo de cabecera ( header) orden de Leer un Archivo de

    Texto especificado en el nombre que sigue a la misma. , en este caso , y reemplazar esta lnea

    por el contenido de dicho archivo en la medida que se necesita durante la ejecucin del programa. El

    ejemplo tiene la funcin printf, la cual es posible utilizar porque previamente se ha incluido dentro del

    programa el contenido del Archivo de Cabecera de entrada-salida (input output) < stdio.h >.

    De idntica manera se procede con cualquier otra funcin estndar de biblioteca o funciones creadas por el

    usuario e incorporadas al archivo de cabecera que corresponda segn el tema.

    Algunos ejemplos de Archivos de Cabecera son:

    - #include incluye los prototipos de las funciones estndar de Input - Output

    como scanf, printf, etc.

    - # include incluye las funciones clrscr ( ), getch ( ), etc.

    - # include < math.h > incluye las funciones de matemticas sqrt ( ), sin ( ), tan ( ), etc.

    Existen otros archivos de cabecera como ctype.h, graphics.h, etc., que se utilizarn progresivamente. La

    totalidad de dichos archivos se encuentran disponibles en el Manual de C++ y en la ayuda Help, de

    manera que se pueden consultar las funciones disponibles por cada versin o fabricante de C++.

    La directiva # include tiene algunas caractersticas importantes:

    - No es una sentencia de programa sino una orden que se copie literalmente un archivo de texto ubicado en

    el directorio INCLUDE, en el lugar en que ella est ubicada, razn por la que no es necesario terminarla

    con ; como es exigible por el C para sus instrucciones.

    - Cuando se pone < > se realiza la bsqueda en el directorio estndar donde se encuentra el fichero

    INCLUDE .Caso contrario si se pone stdio.h, por ejemplo ,el compilador lo buscar en el directorio

    activo en el momento de compilar.

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    3/22

    - La existencia de estos archivos es evitar la repeticin de la escritura de largas definiciones en cada

    programa.

    main ( ) o Funcin Principal

    Indica donde comienza el programa, cuyo ncleo es un conjunto de sentencias que estn delimitadas o

    encerradas por llaves { } llamada Cuerpo Principal del Programa .

    Entre estas dos llaves , { llave abierta significa Inicio de Ejecucin del Programa , y } llave cerrada

    Fin de Ejecucin del Programa , se encuentran todas las instrucciones necesarias para solucionar un

    problema planteado.

    Para el caso del ejemplo main ( ) es la encargada de llamar a la funcin de biblioteca printf ( ) y en general

    es la que posibilita la ejecucin y compilacin del programa. Su ausencia da un inmediato mensaje de error

    evitando la compilacin y ejecucin del programa, por lo tanto impide continuar trabajando con el

    programa hasta tanto se la coloque.

    main ( ) puede llamar a dos clases de funciones : las funciones propias o creadas por el usuario y las

    funciones residentes en la Biblioteca estndar escritas para el C por el fabricante de Software.

    Ejecutada la instruccin printf ( .......\n) ; la finalizacin con ; indica al compilador el fin de la misma.

    El smbolo \n indica que despus de imprimir el mensaje se pase a la lnea siguiente o se transfiera el

    control de la ejecucin del programa a la lnea siguiente.

    La segunda sentencia del Ejemplo es return 0 ; termina el programa y devuelve un Valor 0 (cero) al

    argumento de main ( ) para indicar a quin la invoca, main ( ) , que ha finalizado la ejecucin del

    programa.

    Con el transcurrir de los ejemplos y uso de otros tipos de instrucciones se ir completando la forma

    de escribir un programa en C.

    Comentarios Las inclusiones de comentarios son tiles para aclarar lo que realiza el programa o partes de l. No son

    Ejecutables y No Intervienen en la lgica de actuacin del programa por lo que no influyen en el

    funcionamiento del mismo.

    Se los indica de la forma / * ....*/ y para el caso del ejemplo es : /* Primer Programa escrito en C */

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    4/22

    Programa N 2:

    # include

    main ( )

    { /* Segundo Programa escrito en C */

    printf ( Buenas\ ) ;

    printf ( Noches\ ) ;

    printf ( \n ) ;

    return 0;

    }

    Algunas Funciones incorporadas por el C:

    Probar con:

    \ + para tabular

    \b retroceso

    \ comillas

    \\ diagonal invertida

    printf - escribe o imprime datos por pantalla

    scanf - introduce datos por teclado

    getchar - lee un carcter

    putchar - visualiza o escribe un

    caracter cada vez que se invoca

    power (m,n) - mn entero m elevado a la

    potencia de n

    - - - - - - - - - - - - - - - -

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    5/22

    2.- Tipos de Datos

    En el Lenguaje de Programacin C existen distintos tipos de datos cada uno de los cuales se pueden

    representar en forma diferente en la memoria del computador. En los Tipos de Datos Bsicos el

    requerimiento de memoria determina el Rango de Valores que se permiten para cada tipo, lo cual vara de

    un compilador de C a otro o con las versiones del C.

    Una clasificacin general de Datos es la siguiente:

    Con 10

    -38 < n > 10

    38

    Ejemplo: 15,67.103 15.67 E+/-3

    Mantiza Base Exponente

    3.- Identificadores

    Los identificadores son nombres que se dan a diversos elementos que intervienen en un programa como

    constantes, variables, funciones y arrays ( arreglos). Estn formados por letras y dgitos, en cualquier

    orden excepto el primer carcter que debe ser una letra. Se pueden utilizar maysculas y minsculas no

    acentuadas para la mayora de los compiladores, recordando que en Informtica una letra mayscula no

    es lo mismo que una minscula. La longitud de los identificadores no est limitada, pero el compilador

    acepta los primeros 31 caracteres.

    Es costumbre utilizar minsculas para la mayora de los identificadores a excepcin de Constantes

    Simblicas que son maysculas.

    Reales

    Decimales

    Exponenciales: +/- x.xxxx E+/- n

    E+/- n

    Lgicos SI

    NO

    Carcter

    (char)

    Alfabticos: ( A.Z)

    Numricos: (0.9)

    Especiales: (+, - ,* ,= ,> ,< , %, etc.)

    Cadena de caracteres conjunto de caracteres encerrados

    entre doble comillas: - - - - - - - - - -

    Numricos

    No

    Numricos

    Datos

    Bsicos

    Enteros

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    6/22

    4.- Palabras Claves

    Son palabras reservadas que tienen un significado preestablecido en C y en cualquier lenguaje de

    programacin, debido a lo cual no se pueden utilizar como Identificadores dentro de un programa.

    Ejemplo: break, case, char, default, double, if, else, while, continue, do, float, for, goto, int, long, register,

    static, struct, etc.

    5.- Constantes

    Se designa con este nombre a un " Valor " numrico o string (alfa numrico) cualquiera y son iguales a

    los datos ya definidos. Se caracterizan porque no cambian durante la ejecucin del programa.

    Ejemplo: para el clculo del rea de un crculo s = PI x r^2, el valor de PI = 3,14159 es fijo e inalterable

    cualquiera sea el valor del radio r.

    En C se pueden colocar los valores directamente o representarlos mediante identificadores que son

    nombres que se asignan a cada constante.

    Para este ltimo caso estamos en presencia de constantes simblicas. Una constante simblica es una

    cadena de caracteres especiales y el nombre se escribe con maysculas.

    La sintaxis de una constante simblica es:

    7.- Operadores

    Son signos especiales que indican determinadas operaciones a realizar con las variables y constantes. Los

    operadores pueden ser de tipo aritmticos, lgicos, relacionales, de incremento y decremento, asignacin,

    como se indica en las Tablas siguientes.

    8.- Variables

    Del ejemplo anterior, Punto 5), surge que PI es constante y el radio r puede tener diferentes valores. A

    elementos con las caractersticas del radio r se conoce como variable.

    Una Variable es un objeto o dato cuyos valores pueden cambiar durante la ejecucin de un programa. Las

    variables pueden ser numricas, lgicas y alfanumricas.

    Para el caso del ejemplo " Calcular el rea de un crculo " la variable es r, es del tipo numrica y puede

    tener distintos valores.

    rea s = PI x r^2 = 3,14159 x r x r

    Un programa en C que calcula el rea de un crculo para un determinado valor de r se muestra a

    continuacin:

    # define NOMBRE Valor

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    7/22

    Programa N 3:

    # include < stdio.h > /* programa que calcula el rea de un crculo */

    # include /* biblioteca que permte usar clrscr = borrar pantalla y */

    main () /* getch () =.... */

    float r , rea ; /* se declaran como float a las variables r y rea */

    clrscr ( );

    printf ( " Introducir valor de radio =\n ");

    scanf ( " % f " , & r ); /* ingreso de valores de r con punto decimal por teclado */

    rea = 3.14159 * r * r ;

    printf (" Area = %f \n ",area);

    printf ( " Fin del programa ");

    getch ();

    return 0 ;

    Este programa simple se puede generalizar para varios valores de r y es donde se nota la potencialidad o

    ventaja de realizar este clculo en C. Como nuevo problema se puede considerar " calcular el rea de un

    crculo para 100 radios distintos".

    Como existe una multiplicacin de un valor fijo o constante como es PI se puede poner de la forma

    Indicada como Constante Simblica y el programa sera:

    Programa N 4 :

    # include < stdio.h > /* programa que calcula el rea de un crculo */

    # include

    # define PI 3.14159

    main()

    float r , rea;

    printf ( " Introducir valor de radio =\n ");

    scanf ( " % f " , & r ); /* ingreso de valores de r con punto decimal por teclado */

    rea = PI * r * r ; / * cambio de 3.14159 por PI */

    printf (" Area = %f \n ",area);

    printf ( " Fin del programa ");

    getch ();

    return 0 ;

    Este Programa N 4 sirve de ejemplo ilustrativo de Constantes Simblicas.

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    8/22

    Recordar que se deben declarar todas las variables antes que aparezcan sentencias ejecutables que

    hagan uso de ellas.

    9.- Expresiones

    Es un Smbolo o grupos de Smbolos que un Lenguaje de Programacin puede evaluar, y pueden ser

    combinaciones de constantes, variables, funciones, arrays, smbolos de operaciones, parntesis, clasificados

    de la forma siguiente:

    10.- Tablas de Variables, Constantes y Operadores

    TABLA 1: CANTIDAD DE CARACTERES

    TIPO BYTES VALOR MINIMO VALOR MAXIMO CIFRAS/ CANT.

    CARACTERES

    Signed char 1 -128 127 [ 2(8-1)

    ] 1 carcter de ASCII (American Standard Code for Interchange Information)

    Unsigned char 1 0 255 [28] 1 carcter. El cdigo

    ASCII da equivalencia

    entre cada carcter y el el nmero correspondiente

    Signed short int 2 -32.768 +32.767 [2(16-1)

    ] 5

    Unsigned short int 2 0 +65.535 [216

    ] 5

    Signed int 2 -32.768 +32.767 [2(16-1)

    ] 5

    Unsigned int 2 0 +65.535 [216

    ] 5

    Signed long int 4 -2.147.483.648 +2.147.483.647 [2(32-1)

    ] 10

    Unsigned long int 4 0 +4.294.967.295 [232

    ]

    Float ( 32 bits) 4 3.4E-38

    3.4E+38

    11 espacios: 7 enteros,

    1 punto,3 decimales hasta

    un mximo de 6.

    Double ( 64 bits) 8 1.7E-308 1.7E+308 17 espacios: 10 enteros,

    1 punto,6 decimales.

    Long Double (80 bits) 10 3.4E-4932 3.4E+4932

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    9/22

    TABLA 2: OPERADORES ARITMETICOS ( BINARIOS)

    SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION

    + Suma a + b 3

    - Resta a b 3

    * Multiplicacin a * b 2

    / Divisin a / b 2

    % Mdulo ( Resto) a % b 2

    - CAMBIO DE SIGNO -a 2

    TABLA 3: OPERADORES RELACIONALES

    SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION

    < Menor que (a < b) 5

    > Mayor que (a > b) 5

    = b) 5

    == Igual que (a == b) 6

    ! = Distinto que (a != b) 6

    TABLA 4: OPERADORES LOGICOS

    SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION

    && Y (AND) (a < b) && (c < d) 10

    || O (OR) (a > b) || (c < d) 11

    ! NEGACION (NOT) ! (a > b) 1

    TABLA 5: OPERADORES DE INCREMENTO Y DECREMENTO ( UNARIOS)

    SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION

    ++ Incremento ++i i++ 1

    -- Decremento --i i-- 1

    TABLA 6: OPERADORES DE ASIGNACION

    SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION

    = Igual a a = b 13

    op= Pseudocdigo a += b 13

    =?: Asig. Condicional a = (c > b)?d:e 12

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    10/22

    TABLA 7: PRECEDENCIA DE LOS OPERADORES

    PRECEDENCIA OPERADORES ASOCIATIVIDAD

    0 () [] Izq. A derecha

    1 sizeof(tipo) ! ~ ++ -- signo*& Derecha a izq.

    2 */% Izq. A derecha

    3 +- Izq. A derecha

    4 > Izq. A derecha

    5 >= Izq. A derecha

    6 == != Izq. A derecha

    7 & Izq. A derecha

    8 ^ Izq. A derecha

    9 | Izq. A derecha

    10 && Izq. A derecha

    11 || Izq. A derecha

    12 ?: Derecha a izq.

    13 =+=-=*= etc Derecha a izq.

    Si en una operacin hay signos del mismo nivel de precedencia, la operacin

    se realiza de izquierda a derecha.

    TABLA 8: VALORES DE LOS CODIGOS DE CONTROL DE FORMATO EN C

    Funcin scanf printf

    Tamao del valor (modifica el tipo de dato):

    Especifica entero corto

    Especifica entero largo

    Especifica real doble

    Uso con real para indicar longitud doble

    %hd

    %ld

    %lf

    %Lf

    %ld

    %lf

    %Lf

    Tipo de dato para ser ledo o escrito:

    Carcter simple

    Entero con signo

    Real o real de doble precisin con signo en formato exponencial

    Real o real de doble precisin con signo en formato decimal

    Octal (letra O no 0)

    Cadena de caracteres

    Entero decimal sin signo

    Hexadecimal (%X para letras maysculas)

    Escribe el smbolo de porcentaje

    Entero decimal de seis dgitos

    Punto flotante de seis dgitos

    Punto flotante con dos dgitos tras el punto decimal

    %c

    %d

    %e

    %f

    %O

    %s

    %u

    %x

    %c

    %d

    %e

    %f

    %O

    %s

    %u

    %x

    %%

    %6d

    %6f

    %.2f

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    11/22

    Punto flotante con seis dgitos, dos tras el punto %6.2f

    Ejemplos:

    Ejemplo 1:

    If ( c>=0 && c< 9); si c est entre 0 y 9 c es un dgito// determina si c es un dgito

    else if ( c == || c == \ n || c == \t); evala si c es blanco, lnea o tabulador

    Ejemplo 2:

    fprintf (stdprn,--\n); // fprintf (stdprn,BUENAS NOCHES\n); salida por impresora

    Ejemplo 3:

    s = s+a s+ = a;

    c = c+1 c++

    ;

    Programa N 5:

    # include < stdio.h > /* programa que imprime un carcter */

    # include

    main ()

    char c;

    c=`A;

    printf ( " c es % c\n,c);

    printf (" c es % d\n, c);

    printf ( " Fin del programa ");

    getch ();

    return 0 ;

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    12/22

    11.- Control de Flujo en Lenguaje de Programacin C ++

    Las principales Estructuras de algoritmos desarrollados con diagrama de Flujos y Seudocdigo son

    generales y vlidas para cualquier clase de Lenguaje de Programacin a utilizar. Sin embargo, como

    nuestro propsito es el de estudiar el C++

    , veremos las Estructuras especficas de este lenguaje.

    Las estructuras bsicas del C++

    se clasifican en:

    Usos de Proposiciones : - break (*)

    - continue (*)

    - goto

    - operador condicional: ? (*)

    11.1.- Estructuras Condicionales

    Estas estructuras permiten ejecutar una o varios procedimientos condicionados por el resultado de una

    Expresin el valor de una Variable.

    11.2.- if - else

    La sentencia if - else se utiliza para tomar o expresar decisiones ( ejecutar acciones) a partir de la

    evaluacin de una condicin lgica o aritmtica de una expresin determinada.

    En su forma simple la sentencia if permite la ejecucin de una Sentencia solo en el caso que la respuesta a

    la Condicin Lgica sea Verdadera ( SI ) , caso contrario si la Condicin Lgica es Falsa (NO), NO SE

    EJECUTA ninguna Instruccin y se contina con la ejecucin Normal del Programa.

    La forma ms general de una Estructura de Control if - else con inclusin de la Clusula else es:

    if Simple

    if ( expresin ) Sentencia 1 ; si la respuesta a la evaluacin de la expresin es SI se

    ejecuta la Sentencia 1.

    - - - - - - - - - - - - - - - - - - - - si la respuesta es NO se contina con la ejecucin normal

    - - - - - - - - - - - - - - - - - - - - del programa, sin generar ninguna accin especfica por

    - - - - - - - - - - - - - - - - - - - - dicha respuesta.

    Estructuras en

    C++

    Secuenciales

    Control

    Selectivas

    Condicionales

    Repetitivas

    (Ciclos)

    If else

    switch

    switch case)

    Simples

    Dobles - Triples

    Mltiples

    while

    for

    do - while

    ( (*) Son de uso exclusivo del C

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    13/22

    if Doble

    if ( expresin ) si la respuesta a la evaluacin de la expresin es positiva

    proposicin 1 ; o por SI se ejecuta la proposicin 1.

    else

    proposicin 2 ; caso contrario si la respuesta es NO se ejecuta la proposicin 2.

    Cualquiera sea la respuesta se generan acciones.

    - - - - - - - - - - - - - - - - - - - - Terminada la evaluacin de la expresin por SI o por NO

    - - - - - - - - - - - - - - - - - - - - se contina con la ejecucin del programa.

    Ejemplo:

    If ( c>=0 && c< 9); si c est entre 0 y 9 c es un dgito// Expresin que determina

    - - - - - si c es un dgito

    else if ( c == || c == \ n || c == \t); Expresin que evala si c es blanco, lnea o tabulador

    - - - - - - - - - - - - - - - -- - - -

    - - - - - - - - - - - - - - - - - - - -

    Hay que tener cuidado con la parte else de una estructura condicional puesto que para evitar

    confusiones o ambiguedades es conveniente hacer lo siguiente:

    - descendencia con lo cual le damos claridad.

    - colocar else se evitan confusiones.

    - colocar { } en general se recomienda el uso de llaves como prctica de programacin

    puesto que permite identificar las distintas alternativas de ejecucin de un if

    con claridad.

    Ejemplos de Sintxis. Los casos anteriores quedaran de la forma siguiente:

    if Simple if Doble

    if (expresin ) if ( expresin)

    { {

    Sentencia 1; Sentencia 1;

    Sentencia 2; Sentencia 2;

    } }

    else

    Sentencia 3; {

    Sentencia 4; Sentencia 3;

    Sentencia 5; Sentencia 4;

    }

    Sentencia 5;

    La proposicin else queda siempre asociada al if ms cercano o inmediatamente arriba de l.

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    14/22

    If multiple

    if ( expresin 1)

    Sentencia 1; Recordar: si hay ms de una instruccin a ejecutar por cada

    else if (expresin 2) alternativa , se debe poner { } , a pesar que el ltimo else es

    Sentencia 2; optativo

    else if ( expresin 3)

    Sentencia 3;

    else Sentencia 4;

    Programa 6:

    Realizar un programa en C que seleccione nmeros positivos (+) y negativos (-)

    # include < stdio.h > /* programa que selecciona nmeros (+) y (-) */

    # include

    main ()

    int num;

    clrscr ();

    printf ( Seleccin de Nmeros + y - \n);

    printf ( Ingresar Nmeros\n);

    if ( num >= 0)

    printf ( El Nmero es Positivo: %d, num);

    else printf ( El Nmero es Negativo:%d, num);

    getch ();

    return 0 ;

    Programa 7:

    Hacer un programa en C que indique la lgica de actuacin de un sistema de alarmas de temperatura

    ambiente, produciendo la actuacin automtica de un electroventilador, generar reportes en casos

    crticos y guardar los eventos en una Base de Datos (BD).

    # include < stdio.h >

    # include

    main ()

    int temp;

    clrscr ();

    printf ( LOGICA DE ACTUACIN DE ALARMAS \n);

    printf ( La Temperatura medida es : );

    scanf ( %d, & temp);

    if ( temp >= 25 && temp < 45)

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    15/22

    printf ( Temperatura Normal\n);

    printf ( Guardar en BD Estado Normal);

    else if ( temp < 25)

    printf ( Alarma de Temperatura Mnima\n);

    printf ( Comunicar ATMinma a Centro de Control\n);

    printf ( Guardar ATMnima en BD\n);

    else if ( temp > 45)

    printf ( Alarma de Temperatura Mxima\n);

    printf ( Hacer actuar Electroventilador\n);

    printf ( Comunicar ATMxima a Centro de Control\n);

    printf ( Guardar ATMxima en BD\n);

    printf ( Fin de Ejecucin del Programa\n);

    getch ();

    return 0 ;

    Que sucede si se utiliza void main (void) en lugar de main () y suprime return 0 ?

    11.3.- switch ( switch case)

    Es habitual necesitar comprobar o comparar una variable o una expresin con un conjunto de valores o

    constantes. Si hay una constante que sea igual a la variable, entonces ejecuta el procedimiento asociado

    con esa constante. Esto se puede realizar con instrucciones if else anidadas o por razones de simplicidad

    utilizar una instruccin que est disponible para estas aplicaciones como es la switch.

    Switch es una proposicin con decisin mltiple que prueba si una expresin coincide o es igual con

    una de un conjunto de valores constantes anteriores, indicando en etiqueta case y traslada el control

    adecuadamente en funcin del valor.

    La sintxis es: switch ( expresin) sentencia

    Switch (expresin) el valor de la expresin puede ser entero o char

    {

    case exp. constante 1: proposicin 1; break; la proposicin 1 o 2 pueden ser una o varias

    case exp.constante 2: proposicin 2; break; proposiciones

    default: proposicones;

    }

    Para evaluar el valor de la proposicin se procede la siguiente manera:

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    16/22

    Si la expresin = expresin constante 1, se ejecutan las proposiciones correspondientes o proposicin 1

    y con break se sale inmediatamente del switch. Por lo tanto evita que la ejecucin del programa caiga en

    la siguiente case.

    Si expresin = expresin constante 2, se procede de manera idntica al caso anterior, pero ejecutando la

    proposicin 2 o proposiciones correspondientes a esta lnea de programa.

    Si la expresin tiene un valor que no existe dentro de los valores establecidos en las expresiones en las

    expresiones constantes se ejecutan por default las proposiciones que correspondan a esta lnea de

    programa.

    Por lo tanto, se ejecuta si ninguna de las otras se satisface o no hay ninguna correspondencia con el

    switch.

    [Las clusulas break y default pueden ocurrir en cualquier orden]

    break

    Esta instruccin produce una salida inmediata del switch o de un bucle for, do while o while, al margen

    de la condicin que lo pueda producir. Un uso comn es cuando se produce un error durante la ejecucin

    de un programa o de un conjunto de instrucciones para salir de esa situacin.

    En consecuencia, es necesario utilizar la instruccin de salida break para que el compilador

    abandone la estructura switch. Si se omite, el C++

    no lo reporta como error, pero el programa, una vez

    ejecutadas las instrucciones asociadas con una constante, continuara con las instrucciones asociadas con

    la siguiente constante en la lista.

    default

    Esta instruccin es opcional y se utiliza para establecer un procedimiento por defecto, para cuando la

    variable no coincida con ninguna de las constantes o valores.

    En sntesis la sentencia switch se puede concebir como una alternativa al uso de sentencias if else

    anidades, aunque solo puede sustituir a sentencias if else que comprueban igualdades. Tal es el caso

    de Men.

    Programa 8:

    Elaborar un Men principal de un programa que realiza el clculo de circuitos resistivos elementales:

    serie, paralelo y mixto.

    #include

    #include

    #include ctype es u archivo de cabecear que tiene funciones como toupper

    void main ( void) , tolower, etc.

    {

    char opcion;

    clrscr ();

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    17/22

    printf ( Opciones Serie, Paralelo, Mixto, Fin del Programa\n);

    printf ( Ingresar la inicial elegida\n);

    opcin = toupper ( getch ()); toupper, convierte un carcter de minscula a mayscula

    printf (\n); para cualquier carcter seleccionado desde el teclado. Es

    como si fuera un scanf.

    switch (opcin) .

    {

    case S: printf ( Circuito Serie\n); break;

    case P: printf ( Circuito Paralelo\n);break;

    case M: printf ( Circuito Mixto\n);break;

    case F: printf ( Fin del Programa\n);break;

    default: printf ( === CARCTER NO VALIDO ===\n);

    }

    getch ();

    }

    11.4.- Estructuras Repetitivas ( Ciclos de Iteracin)

    Tambin llamadas estructuras iterativas o bucles. Se ejecuta varias veces un grupo de instrucciones y para

    cada iteracin, evala el valor de una expresin para decidir si repite o no el procedimiento. Por lo tanto,

    controlan y hacen ejecutar una tarea tantas veces como el programa lo requiera. Posee un bloque de

    decisin que controla el nmero de veces que debe ejecutarse un ciclo de trabajo o bucle, razn por la

    que cumplido el mismo se produce el llamado corte de control.

    Hay tres estructuras repetitivas, While, for, y do While, cuyas caractersticas particulares veremos a

    continuacin.

    While Mientras - Hacer

    En este bucle se verifica una condicin al comienzo de la ejecucin de un programa y si se cumple, se

    ejecuta un procedimiento. Terminado un procedimiento, se vuelve y se confirma el cumplimiento de la

    condicin. Dicho bucle se repite hasta que la condicin sea FALSA o bien, mientras la condicin sea

    VERDADERA.

    Este bucle se considera de verificacin preliminar porque la condicin se evala antes de entrar a ejecutar

    el procedimiento o algoritmo principal. Enfocado de otra manera, la evaluacin de la condicin lgica va al

    comienzo del ciclo. En la sintaxis siguiente, si el resultado de la evaluacin lgica es Positivo se realizan

    acciones o se ejecutan las instrucciones del Mdulo A. Mientras e cumpla con la condicin se contina

    ejecutando dicho Mdulo. El Mdulo A puede tener una o un conjunto de instrucciones. La ejecucin del

    Mdulo A produce la modificacin de la condicin lgica. Cuando la misma se modifica, se devuelve el

    control del programa y se contina con la ejecucin normal de mismo.

    Si en la primera evaluacin lgica de la condicin, el resultado es Negativo, NO se ejecutan acciones,

    continuando con la ejecucin normal del programa.

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    18/22

    La sintaxis de la instruccin en seudocdigo es:

    MIENTRAS ( Condicin) HACER

    Modulo A una o varias instrucciones

    Modulo B corresponde a Ejecucin Normal del Programa

    La sintaxis de la instruccin en C es:

    While ( condicin expresin lgica)

    Ejecucin de sentencias o Mdulo A

    Programa 9:

    Realizar un programa en C que suma Nmeros positivos (+).

    # include < stdio.h > /* programa con aplicacin de while */

    # include /* Programa que suma nmeros positivos */

    main ()

    int a, s = 0, cant = 0;

    clrscr();

    printf ( "Ingresar valores de a:\n);

    scanf ( %d, & a);

    while ( a > = 0) se detiene cuando se ingresa un Nmero negativo (-)

    s+ = a; s = s + a

    cant++

    ; cant = cant +1

    printf ( "Ingresar valores de a:\n);

    scanf ( %d, & a);

    printf (" La suma S es = %3d\n, s);

    printsf ( La cantidad de nmeros sumados es:%3d, cant);

    printf ( " Fin del programa ");

    getch ();

    return 0 ;

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    19/22

    Do - while

    En este bucle se realiza un procedimiento o se ejecuta una instruccin primero y despus se verifica la

    condicin lgica para repetir o No el procedimiento. Ejecutado el ciclo una vez, se evala la condicin

    lgica. Si dicha condicin es verdadera se itera nuevamente. Este bucle se repite hasta que la condicin sea

    Falsa o mientras la condicin sea Verdadera. Es idntico a REPEAT / UNTIL o Repetir .. hasta que (

    ).

    Verifica o prueba la condicin lgica al Final del Ciclo, con lo cual realiza un ciclo de ms que el while,

    porque se ejecuta por lo menos una vez .Por esta razn es menos utilizado. Su uso debe hacerse con

    cuidado.

    Sintxis:

    do

    (proposiciones )

    While ( expresin lgica)

    Programa 10

    Para ver la relacin con while se realiza el mismo programa que es sumar nmeros positivos (+) con do

    while

    # include < stdio.h > /* programa con aplicacin de do while */

    # include /* Programa que suma nmeros positivos */

    main ()

    int num, sum = 0;

    clrscr();

    printf (Sumar nmeros positivos\n);

    do

    printf ( "Ingresar valores de num:\n);

    scanf ( %d, & num);

    sum+ = num; sum = sum + num

    while ( num > = 0);

    printf (" La suma S es = %d\n, sum);

    printf ( \n); printf ( Fin del Programa\n);

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    20/22

    getch ();

    return 0 ;

    La dificultad del Programa 10, dado como ejemplo es que realiza siempre un ciclo de ms, porque la

    condicin se evala a final del ciclo.

    Si ingresamos un nmero negativo al comienzo de la ejecucin, el programa lo toma al nmero (-) , los lo

    suma y recin evala su condicin de negativo para detener el programa.

    Este programa sera mas apropiado para sumar nmeros positivos (+) y negativos (-) y detenerlo cuando

    se ingresa un cero (0)

    Programa 11

    Un programa ms ilustrativo es Sumar nmeros y detener el programa cuando la suma sea /* Aplicacin de do while */

    # include /* Programa que suma nmeros hasta que la suma sea < 90 */

    void main (void)

    int num, sum = 0;

    clrscr();

    printf ( Sumar nmeros hasta que la suma sea menor que 90\n);

    do

    scanf ( %d, & num);

    sum+ = num; sum = sum + num

    while ( sum < 90);

    printf (" La suma S es = %d\n, sum);

    printf ( \n);

    printf ( Fin del Programa\n);

    getch ();

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    21/22

    for

    Es una forma generalizada de while, tiene tres secciones separadas por ;

    La sintaxis es:

    for ( exp.1; exp.2;exp.3)

    proposicin 1; Hay que tener cuidado con los anidamientos en for

    proposicin 2;

    Ejemplo:

    for ( i = 0; i < n; i++)

    Un procedimiento repetitivo puede implementarse usando cualquiera de las estructuras vistas while, do

    while, pero es comn utilizar la estructura for cuando se conoce de antemano la cantidad de veces a repetir

    y no existe una condicin de salida diferente a la de haber cumplido la cantidad de veces de ejecucin.

    Programa 12

    Programa que suma 3 nmeros y realiza el promedio .

    # include < stdio.h > /* programa con aplicacin de for */

    # include

    void main (void)

    int num, s = 0, cont = 0 ;

    clrscr();

    printf ( Efectuar la Suma y el Promedio de 3 nmeros\n);

    for ( cont =1; cont < 3; cont++)

    printf ( Ingresar un Nmero=\n);

    1era. Seccin

    Inicializacin 2da. Seccin

    Condiciona o prueba, que

    controla el ciclo for. Si la

    condicin es Verdadera el

    cuerpo del ciclo for se

    ejecuta.

    3era. Seccin

    Determina el incremento o avance

    por pasos de i = i + 1 i++

    .

    Se ejecuta y se repite la ejecucin

    del ciclo.

  • UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN

    Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014

    22/22

    scanf ( %d, & num);

    s+ = num; s = s + num

    printf (" La suma S es = %d\n, s);

    printf ( Promedio = %d, s/cont);

    printf ( Fin del Programa\n);

    getch ();

    12.- Bibliografa Recomendada

    - " Fundamentos de Programacin: Algoritmo y Estructura de Datos". Mxico. Editorial McGraw Hill. Luis

    Goyanes Aguilar:

    - " El Lenguaje de Programacin C ".Mxico. Editorial Prentice Hall Hispanoamericana. Brian W. Kernighan

    - Dennis M. Ritchie:

    - " Programacin en C ". Mxico. Serie Schaum McGraw Hill. Byron S. Gottfried

    - " Manual de Borland C++

    .Mxico. Editorial McGraw Hill. Chris H. Pappas / William H. Murray III.

    - C- Gua de Autoenseanza. Serie McGraw Hill de Informtica. Herbert Schildt.

    Mg.Ing. Juan C. Colombo

    13/04/14