Principios de Programacion en C

Embed Size (px)

Citation preview

  • 8/18/2019 Principios de Programacion en C

    1/81

  • 8/18/2019 Principios de Programacion en C

    2/81

    2

  • 8/18/2019 Principios de Programacion en C

    3/81

    PRINCIPIOS DEPROGRAMACIÓN EN C++.

    Luis Aldana.

     © bubok.com

     © 2009. Todos los derechos reservados.Prohibida la reproducción parcial o total de esta obra sin previaautorización del autor.

    3

  • 8/18/2019 Principios de Programacion en C

    4/81

    4

  • 8/18/2019 Principios de Programacion en C

    5/81

    ÍndicePRESENTACIÓN...........................................................................7OBJETIVO GENERAL...................................................................8UNIDAD I.......................................................................................9

    1.1. INTRODUCCIÓN AL LENGUAJE C++...............................91.2. PROGRAMACIÓN ORIENTADA A OBJETOS..................111.3. ESTRUCTURA BÁSICA DE UN PROGRAMA..................151.4. VARIABLES......................................................................191.5. OPERACIONES BÁSICAS...............................................29

    UNIDAD II....................................................................................362.1. MANEJO DE DATOS Y ESTRUCTURAS DE CONTROL.36

    2.2. SALIDA DE DATOS..........................................................362.3. ENTRADA DE DATOS......................................................382.4. ENTRADA Y SALIDA DE CARACTERES.........................422.5. ESTRUCTURA DE CONTROL IF.....................................462.6. ESTRUCTURA DE CONTROL SWITCH..........................562.7. ESTRUCTURA DE CONTROL WHILE.............................602.8. SENTENCIA DE CONTROL FOR.....................................64

    UNIDAD III...................................................................................66

    3.1. FUNCIONES....................................................................663.2. MACROS..........................................................................713.3. RECURSIVIDAD..............................................................74

    BIBLIOGRAFÍA............................................................................77ACERCA DEL AUTOR.................................................................79

    5

  • 8/18/2019 Principios de Programacion en C

    6/81

    6

  • 8/18/2019 Principios de Programacion en C

    7/81

    PRESENTACIÓN. _____________________________________________________ 

    El presente manual tiene como finalidad que el lector desarrollelas habilidades necesarias para comenzar a desarrollar sistemasmediante el uso del lenguaje de programación C++. Las prácticasestán diseñadas para seguirse de manera secuencial, sin omitirninguna.

    Este manual no tiene la intención de sustituir el trabajo extraclase,

    ya que ésta complementará el trabajo desarrollado. Además, a lolargo de todo el manual, se proponen diversos actividades que ellector podrá realizar como parte del trabajo en casa.

    Realizar las prácticas y las tareas le será de gran utilidad al lectorpara comprender el complejo proceso de diseñar aplicaciones decalidad.

    Ing. Luis Aldana.

    7

  • 8/18/2019 Principios de Programacion en C

    8/81

    OBJETIVO GENERAL. _____________________________________________________ 

    El lector será capaz de resolver problemas de base científicamediante el diseño, codificación e implantación de programas decomputadora en lenguaje C++.

    El lector será capaz de identificar las principales estructuras decontrol y bifurcación de la programación orientada a objetos, dediseñar estructuras de datos apropiadas para la solución de

    problemas y reconocer la semántica y la sintaxis del lenguaje deprogramación C++.

    8

  • 8/18/2019 Principios de Programacion en C

    9/81

    UNIDAD I _____________________________________________________ 

    1.1. INTRODUCCIÓN AL LENGUAJE C++.

     ¿Qué diferencia hay entre C y C++? 

    El comité para el estándar ANSI C fue formado en 1983con el objetivo de crear un lenguaje uniforme a partir del Coriginal, desarrollado por Kernighan y Ritchie en 1972, en la ATT.Hasta entonces el estándar lo marcaba el libro escrito en 1978 porestos dos autores.

    El lenguaje C++ se comenzó a desarrollar en 1980. Su autor fueB. Stroustrup, también de la ATT. Al comienzo era una extensióndel lenguaje C que fue denominada C with classes. Este nuevolenguaje comenzó a ser utilizado fuera de la ATT en 1983. El

    nombre C++ es también de ese año, y hace referencia al carácterdel operador incremento de C (++). Ante la gran difusión y éxitoque iba obteniendo en el mundo de los programadores, la ATTcomenzó a estandarizarlo internamente en 1987. En 1989 seformó un comité ANSI (seguido algún tiempo después por uncomité ISO) para estandarizarlo a nivel americano e internacional.

    En la actualidad, el C++ es un lenguaje versátil, potente y general.

    Su éxito entre los programadores profesionales le ha llevado aocupar el primer puesto como herramienta de desarrollo deaplicaciones. El C++ mantiene las ventajas del C en cuanto ariqueza de operadores y expresiones, flexibilidad, concisión yeficiencia. Además, ha eliminado algunas de las dificultades ylimitaciones del C original. La evolución de C++ ha continuado conla aparición de Java, un lenguaje creado simplificando algunascosas de C++ y añadiendo otras, que se utiliza para realizar

    9

  • 8/18/2019 Principios de Programacion en C

    10/81

    aplicaciones en Internet.

    En estas Notas se van a presentar los fundamentos del lenguajeC++ tradicional a partir del lenguaje C.

    10

  • 8/18/2019 Principios de Programacion en C

    11/81

    1.2. PROGRAMACIÓN ORIENTADA A OBJETOS.

     ¿Qué es la Programación Orientada a Objetos? 

    La Programación Orientada a Objetos (POO) permiterealizar grandes programas mediante la unión de elementos mássimples, que pueden ser diseñados y comprobados de maneraindependiente del programa que va a usarlos. Muchos de estoselementos podrán ser reutilizados en

    otros programas.

    A estas "piezas", "módulos" o "componentes", que interactúanentre sí cuando se ejecuta un programa, se les denomina objetos.Estos objetos contienen tanto datos como las funciones queactúan sobre esos datos.

    De ordinario, cada uno de estos objetos corresponde a algún

    elemento que debe utilizar el programa. Algunos de estoselementos representan entidades del mundo real (matrices,personas, cuentas de banco, elementos mecánicos oeléctricos, ...) y otros pueden ser componentes del ordenador(tanto de software como de hardware: otro programa, un ficherode disco, una impresora conectada en un puerto, una ventanaabierta en la pantalla, ...). También pueden ser estructuras dedatos: colas, pilas, ... Durante la ejecución del programa, losobjetos interactúan pasándose mensajes y respuestas.

    Es fundamental darse cuenta de que un objeto no necesitaconocer el funcionamiento interno de los demás objetos parapoder interactuar con ellos (igual que el hombre no necesitaconocer cómo funciona por dentro un televisor o un ordenadorpara poder utilizarlos), sino que le es suficiente con saber la formaen que debe enviarle sus mensajes y cómo va a recibir larespuesta (al hombre le puede ser suficiente con saber cómo

    11

  • 8/18/2019 Principios de Programacion en C

    12/81

    funcionan el interruptor, el dial del volumen y los botones decambio de canal para utilizar un televisor).

    Sucede a menudo que hay que utilizar varios ejemplares análogos

    de un determinado elemento u objeto (por ejemplo variasventanas en la pantalla del PC, varios usuarios, varios clientes,varias cuentas corrientes de un banco, etc.). La definicióngenérica de estos objetos análogos se realizar mediante la clase.Así, una clase contiene una completa y detallada descripción de lainformación y las funciones que contendrá cada objeto de esaclase. Las clases de C++ se pueden ver como una generalizaciónde las estructuras de C.

    En C++ las clases son verdaderos tipos de datos definidos por elusuario y pueden ser utilizados de igual manera que los tipos dedatos propios del C++, tales como int o float. Los objetos sona las clases como las variables a los tipos de variables. Un objetotiene su propio conjunto de datos o variables miembro, aunque node funciones, que aunque se aplican a un objeto concreto sonpropias de la clase a la que pertenece el objeto.

    Clases, métodos y objetos.

    En ANSI C las funciones son algo relativamente independiente delas variables, y constituyen el centro del lenguaje. Se dice por esoque C es un lenguaje algorítmico (o procedural, en inglés).

    Cualquier función se puede comunicar con las demás a través devariables globales, del valor de retorno y de los argumentos,

    pasados por valor o por referencia. Esta facilidad paracomunicarse con otras funciones hace que se puedan producirefectos laterales no deseados.

    En un Lenguaje Orientado a Objetos tal como el C++, el centro dellenguaje no son las funciones sino los datos, o más bien losobjetos, que contienen datos y funciones concretas que permitenmanipularlos y trabajar sobre ellos. Esto hace que la mentalidad

    12

  • 8/18/2019 Principios de Programacion en C

    13/81

    con la que se aborda la realización de un programa tenga que sermuy diferente.

    Para proteger a las variables de modificaciones no deseadas se

    introduce el concepto de encapsulación, ocultamiento oabstracción de datos. Los miembros de una clase se puedendividir en públicos y privados. Los miembros públicos  sonaquellos a los que se puede acceder libremente desde fuera de laclase. Los miembros privados, por el contrario, solamentepueden ser accedidos por los métodos de la propia clase.

    De ordinario una clase ofrece un conjunto de funciones públicas através de las cuales se puede actuar sobre los datos, que seránprivados. Estas funciones o métodos públicos constituyen lainterface de la clase. De esta forma se garantiza que se hacebuen uso de los objetos, manteniendo la coherencia de lainformación. Esto sería imposible si se accediera libre eindependientemente a cada variable miembro. Al usuario le essuficiente con saber cómo comunicarse con un objeto, pero notiene por qué conocer el funcionamiento interno del mismo. En C++ los métodos de una clase pueden ser funciones u operadores.

    Todo esto se estudiará en detalle más adelante.

    13

  • 8/18/2019 Principios de Programacion en C

    14/81

    ACTIVIDAD EXTRACLASE 1.1.

    Responde las siguientes preguntas con tus propias palabras deacuerdo a las lectura de los dos temas anteriores:

    1. ¿Cómo se define el Lenguaje C++?

    2. ¿Qué diferencia hay entre el Lenguaje C y el C++?

    3. ¿Qué es una clase?

    4. ¿Qué es un objeto?

    5. ¿Qué es un método?

    6. ¿Qué es un miembro privado?

    7. ¿Qué es un miembro público?

    14

  • 8/18/2019 Principios de Programacion en C

    15/81

    1.3. ESTRUCTURA BÁSICA DE UN PROGRAMA.

     ¿Cuál es la estructura básica de un programa? 

    ACTIVIDAD EN CLASE 1.1.

    Realice el siguiente programa en C++, el cual muestra un mensajeen pantalla.

    #include

    int main(void){

    cout

  • 8/18/2019 Principios de Programacion en C

    16/81

    2. ¿Cuál es la versión de este programa en Lenguaje C?

    Analicemos cada parte de nuestro primer programa.

    #include

    La parte del #include se refiere a la biblioteca de funciones quevamos a utilizar. Es decir, para llamar a una biblioteca en particulardebemos hacer lo siguiente:

    #include

    El estándar de C++ incluye varias bibliotecas de funciones, ydependiendo del compilador que se esté usando, puede aumentarel número.

    int main(void){

    Todo programa en C++ comienza con una función main(), y sólopuede haber una.

    16

  • 8/18/2019 Principios de Programacion en C

    17/81

    En C++ el main() siempre regresa un entero, es por eso seantepone int a la palabra main. Los paréntesis que le siguencontienen lo que se le va a mandar a la función. En este caso sepuso la palabra void que significa vacío, es decir que a la función

    main  no se le está mandando nada, podría omitirse el voiddentro de los paréntesis, el compilador asume que no se enviaránada. La llave que se abre significa que se iniciará un bloque deinstrucciones.

    cout

  • 8/18/2019 Principios de Programacion en C

    18/81

    comentario de varias líneas y cualquier cosa que se escriba dentrode ella no influenciará en el desempeño del programa.

    También verás que muchas veces utilizaremos una diagonal

    invertida (\). Este signo se utiliza cuando una instrucción ocuparávarias líneas y por razones de espacio en la hoja es mejor dividirlaen partes.

    18

  • 8/18/2019 Principios de Programacion en C

    19/81

    1.4. VARIABLES.

     ¿Qué es y para que sirve una variable? 

    En la sección anterior vimos la forma general de un programa, unprograma sumamente sencillo. Ahora veamos un programa muyparecido al anterior:

    ACTIVIDAD EN CLASE 1.2.

    Realice el siguiente programa en C++:

    #include

    int main( ){

      int variable;

      variable=5;

      cout

  • 8/18/2019 Principios de Programacion en C

    20/81

    3. ¿Qué sucede si se elimina la linea int variable?

    Notemos en esta ocasión sólo la parte: int variable; . A estasección se le denomina declaración. Se trata de la declaración deuna variable de nombre variable.

    Una variable es una posición de memoria con nombre que se usapara mantener un valor que puede ser modificado por elprograma. Las variables son declaradas, usadas y liberadas. Unadeclaración se encuentra ligada a un tipo, a un nombre y a unvalor.

    Básicamente, la declaración de una variable presenta el siguiente

    aspecto:

    tipo nombre [=valor];

    Los corchetes significan que esa parte es opcional. Por ejemplo, ladeclaración:

    int mi_variable=5;

    Declara una variable tipo entero de nombre mi_variable  y leasigna el valor 5.

    C++ es sensible a mayúsculas y minúsculas, así que si el nombrede nuestra variable empieza con una letra en mayúsculas,debemos de asegurarnos que durante el resto del código nosrefiramos a ella exactamente como la escribimos. Los nombres de

    20

  • 8/18/2019 Principios de Programacion en C

    21/81

    las variables no pueden usar signos de puntuación, sólocaracteres “A-Z”, “a-z”, “_“, “0-9”, aunque ningún nombre debe comenzar con un número (0-9).Además no se deben de repetir nombres de variables en el mismo

    contexto.Además de las restricciones anteriores, existe otra, y esta tieneque ver con las palabras reservadas del lenguaje, que no sonmuchas a comparación de otros lenguajes. Las palabras que sepresentan en la siguiente lista, no pueden ocuparse  comonombres de variables, funciones, u otras instrucciones definidaspor el programador.

    and, and_eq, asm, auto,bitand, bitor, bool,break, case, match, char, class,compl., const,

    const_cast, continue, default, delete, do,

    Double,dynamic_cast, else, enum, explicit,

    export, extern, false, float,for, friend, goto,

    if, inline, int, long, mutable,namespace, new,

    not, not_eq, operator, or, or_eq,

    private,protected, public, register,

    reinterpret_cast, return, short, signed,sizeof,static, static_cast, struct, switch,

    template, this, throw, true,try, typedef, typeid,

    typename, union, unsigned, using, virtual, void,

    volatile, wchar_t ,while,xor, xor_eq.

    Las variables se pueden declarar en tres sitios básicos: dentro delas funciones (ya sea la función main  u otras creadas por el

    programador), estas variables son llamadas locales; en ladefinición de parámetros de una función, como se verá másadelante; y fuera de todas las funciones, variables globales.

    21

  • 8/18/2019 Principios de Programacion en C

    22/81

    ACTIVIDAD EN CLASE 1.3.

    Realice el siguiente programa en C++:

    #include

    int variable_global=10;

    int main(){

      int variable_local=20;

      cout

  • 8/18/2019 Principios de Programacion en C

    23/81

    Una variable global puede ser modificada en cualquier parte delprograma, mientras que una variable local sólo puede sermodificada y utilizada dentro de la función en la que se hadeclarado. Por supuesto, antes de utilizar una variable y hacer

    operaciones con ella, hay que declararla.Por lo general, siempre se trata de utilizar lo menos posible ladeclaración de variables globales. El siguiente ejemplo muestraque se pueden declarar variables en cualquier parte del programa,siempre y cuando se declaren antes de usarlas.

    23

  • 8/18/2019 Principios de Programacion en C

    24/81

    ACTIVIDAD EN CLASE 1.4.

    Realice el siguiente programa:

    #include

    int main( ){

      int variable1=10;

     

    cout

  • 8/18/2019 Principios de Programacion en C

    25/81

    asignarle un nombre, pero que éste no pueda ser modificado. Eneste caso debemos declarar una constante.

    Por ejemplo, el siguiente programa calcula el área de un círculo.

    25

  • 8/18/2019 Principios de Programacion en C

    26/81

    ACTIVIDAD EN CLASE 1.5.

    #include

    int main( ){

      const float pi=3.141592;

      int radio=5;

      float area;

     

    area=pi*radio*radio; 

    cout

  • 8/18/2019 Principios de Programacion en C

    27/81

    Los diferentes tipos de datos, es decir, los tipos de variables quepodemos declarar son los siguientes:

    27

  • 8/18/2019 Principios de Programacion en C

    28/81

    ACTIVIDAD EXTRACLASE 1.2.

    Responda las siguientes preguntas de acuerdo a lo visto en clase:

    1. ¿Cuál es la utilidad de una variable?

    2. ¿Cuál es la utilidad de una constante?

    3. Describa brevemente al menos tres tipos de datos diferentes?

    4. Corrija los errores en el siguiente fragmento de código:

    #include

    int main(){

      cout>> "Hola mundo"

      getchar;

      return;

    {

    El programa corregido debe ser:

    28

  • 8/18/2019 Principios de Programacion en C

    29/81

    1.5. OPERACIONES BÁSICAS.

     ¿En qué casos son útiles los operadores aritméticos en programación? 

    En ejemplos anteriores ya hicimos uso de algunos operadores, “+”y “*”, suma y multiplicación respectivamente.

      ACTIVIDAD EN CLASE 1.6.

    Realice el siguiente programa:

    #include

    int main( ){

      int a=5, b=10, c=20, r;

      r=a+b; a=c%r; //aquí “a” valdrá 5(resto de

    20/15)

      c=b-a;

      a=a*2;

    29

  • 8/18/2019 Principios de Programacion en C

    30/81

      cout

  • 8/18/2019 Principios de Programacion en C

    31/81

    RESPONDA:

    1. ¿Cuál es la salida del programa anterior?

    2. ¿Qué significa la expresión a=c%r;?

    3. ¿Cuáles son los valores de a, b, c y r, respectivamente?

    Estos operadores no son exclusivos de los tipos de datosnuméricos. Un dato tipo char  también es modificable mediante

    operadores. Recuerda que lo que se guarda es el código ASCII.

     ACTIVIDAD EXTRACLASE 1.3.

    Realiza la lectura del siguiente link referente al código ASCII:http://es.wikipedia.org/wiki/ASCII. La tabla completa de dichocódigo imprimela o guardala para poder realizar la siguienteactividad en clase.

    31

  • 8/18/2019 Principios de Programacion en C

    32/81

    ACTIVIDAD EN CLASE 1.7.

    Realice el siguiente programa:

    #include

    int main( ){

      char car1='a', car2;

      car2=car1+15;

      cout

  • 8/18/2019 Principios de Programacion en C

    33/81

    En estos dos últimos ejemplos, note las siguientes instrucciones:a=a*2;

    car1=car1-car2;

    Ambas pueden escribirse de una mejor forma:

    a*=2;

    car1-=car2;

    Podría decirse que es una abreviatura de código. El operadorseguido de la asignación.

    Ahora conozcamos a otros operadores muy útiles. “++” y “--“.Éstos tienen la función de aumentar y disminuir en uno al dato queopera. Pero su comportamiento depende de si sea en prefijo(antes del operando) o sufijo (después de).

    ACTIVIDAD EN CLASE 1.8.

    Realice el siguiente programa:

    #include

    int main( ){

      int a,b,c;

      a=17*5+2; //primero resuelve la

    multiplicación

      cout

  • 8/18/2019 Principios de Programacion en C

    34/81

      b=a++ - 7;

      //a-7=80, luego se incrementa la variable a

      cout

  • 8/18/2019 Principios de Programacion en C

    35/81

    ACTIVIDAD EXTRACLASE 1.4.

    Responda las siguientes preguntas de acuerdo a lo visto en clase:

    1. ¿Cuál es la versión compacta de a = a * 5?

    2. ¿Cuál es la versión compacta de a = a - b?

    3. En el código int a = 5; a *= 5, el valor de a es:

    4. En el código int a = 0; a += 10, el valor de a es:

    5. En el código int a = 9; a -= 3, el valor de a es:

    35

  • 8/18/2019 Principios de Programacion en C

    36/81

    UNIDAD II _____________________________________________________ 

    2.1. MANEJO DE DATOS Y ESTRUCTURAS DE CONTROL.

     ¿Qué es un dato y cómo se puede manipular? 

    En los programas hechos hasta el momento, hemos utilizado lainstrucción cout

  • 8/18/2019 Principios de Programacion en C

    37/81

    #include

    int main(){

      cout

  • 8/18/2019 Principios de Programacion en C

    38/81

    2.3. ENTRADA DE DATOS.

     ¿Qué importancia tiene la información que proporciona 

    el usuario a un programa? 

    La interacción con el usuario es algo muy importante en laprogramación, imaginemos que en este preciso momento y conlos conocimientos que tenemos hasta ahora, necesitamos hacerun programa que calcule la distancia a la que caerá un proyectillanzado a determinada velocidad y ángulo, o simplemente unprograma que calcule las raíces de una ecuación cuadrática. Sería

    muy molesto estar cambiando los valores de las variablesdirectamente en el código para cada caso que queramos calcular.Por eso debemos ver cuanto antes la forma de leer datos desdeel teclado.

    La principal función para leer desde el teclado es cin>>, pero esmejor ver un ejemplo para tener la idea clara.

    38

  • 8/18/2019 Principios de Programacion en C

    39/81

    ACTIVIDAD EN CLASE 2.2.

    Realice el siguiente programa:

    #include

    int main(){

      int numero;

      char car;

      float otroNum;

      cout

  • 8/18/2019 Principios de Programacion en C

    40/81

    RESPONDA

    1. ¿Cómo funciona la instrucción cin

  • 8/18/2019 Principios de Programacion en C

    41/81

    ACTIVIDAD EXTRACLASE 2.1.

    Responda las siguientes preguntas de acuerdo a lo visto en clase:

    1. ¿Para qué sirve la expresión cout?

    2. ¿Para qué sirve la expresión endl?

    3. ¿La expresión cout sirve para mostrar cualquier tipo de dato?Si, no, ¿por qué?

    4. ¿Cómo puede unir varios datos con una sentencia cout?

    5. ¿Para qué sirve la expresión cin?

    6. ¿La expresión cin sirve para pedir cualquier tipo de dato? Si,no, ¿por qué?

    41

  • 8/18/2019 Principios de Programacion en C

    42/81

    2.4. ENTRADA Y SALIDA DE CARACTERES.

    La función de lectura desde el teclado cin no es la única queexiste. Hay otros métodos de lectura desde el teclado para lalectura de caracteres.

    Ahora veamos un ejemplo.

    ACTIVIDAD EN CLASE 2.3.

    #include

    int main(){

      char caracter,nombre[20], apellido[20];

      char seg_apellido[20];

      cout

  • 8/18/2019 Principios de Programacion en C

    43/81

      cout

  • 8/18/2019 Principios de Programacion en C

    44/81

    3. ¿Qué sucede si cambias cin.get() por getchar();?

    4. ¿Qué diferencia hay entre cin.get() y getchar();?

    Primero declaramos una variable char, y 3 variables de cadenas

    de caracteres.Pide al usuario que teclee su nombre completo, para luego leerinmediatamente el primer carácter que teclea y lo almacena en lavariable caracter. Sigue leyendo y almacena lo que escribe enla variable nombre hasta que encuentre un espacio o llegue a 20caracteres. Luego, otra instrucción get se encarga de leer ydesechar elcarácter espacio, para nuevamente leer hasta encontrar otroespacio.

    Deja de leer hasta que se presione enter , hayas escrito o no tusdos apellidos. Así que cuando oprimes enter , carecer  tiene tuletra inicial y la presenta en pantalla, para aparecer tu nombreimprime caracter seguido de nombre, porque a ésta última noalmacenó el primer carácter. Las siguientes instrucciones sonparecidas hasta que pide el nombre de tu empresa.

    La función ignore descarta del flujo el carácter de terminación,para luego permitir a getline()  leer el nombre de tu empresacon un máximo de 20 caracteres o hasta que oprimas enter  (perono lo guarda). Se escribe el nombre y con gcount() presentalos caracteres leídos. Finalmente espera que oprimas enter paraterminar el programa.

    44

  • 8/18/2019 Principios de Programacion en C

    45/81

    ACTIVIDAD EXTRACLASE 2.2.

    Responde las siguientes preguntas con tus propias palabras:

    1. ¿Para qué sirve la instrucción cin.get();?

    2. ¿Para qué sirve la instrucción cin.ignore();?

    3. ¿Qué hace la instrucción cin.getline(nombre,20);?

    4. ¿Qué hace la instrucción cin.gcount();?

    45

  • 8/18/2019 Principios de Programacion en C

    46/81

    2.5. ESTRUCTURA DE CONTROL IF.

     ¿En nuestra vida cotidiana qué es una condición y que similitud hay en programación? 

    En nuestra vida cotidiana, todos tenemos una lógica aseguir, continuamente tomamos decisiones, y estas decisionesrepercuten en nuestra acción siguiente. Por ejemplo, supongamosel caso de un estudiante de nivel preparatoria que cursa el sexto

    semestre, él está pensando en presentar el examen para launiversidad, sin embargo, sus calificaciones no le han dadomucho aliento últimamente, y está en riesgo de tener que repetirese semestre, si ocurre eso, el resultado que tenga en el examenno importará. Lo que valla a pasar marcará el camino a seguir ensu vida.

    Analicemos de una forma general este caso:

    Curso el sexto semestre, entonces  Presento el examen de admisión

    Si paso el examen y además paso el semestre, entonces  Estaré en la universidad

    Si paso el semestre pero no paso el examen, entonces  Estaré trabajando

    Si no paso el semestre, entonces  Curso el sexto semestre (es decir, regresa al principio)

    Estas son las opciones que él se plantea, aunque algunospensarán en otras más.

    Puede estudiar, trabajar o repetir todos los pasos anteriores.

    46

  • 8/18/2019 Principios de Programacion en C

    47/81

    En la programación también se tienen que tomar decisiones queinfluirán en el comportamiento del programa, y también se puedenrepetir series de pasos hasta obtener un resultado.

    Se trata de una estructura de selección. Es decir que si se cumpleel condicional se ejecutarán varias instrucciones más. En elejemplo anterior, observamos que:

    Si paso el examen y además paso el semestre  estaré en la universidad

    “Si” podemos interpretarlo como el if de código C++

    “paso el examen y además paso el semestre” es la condición.

    “estaré en la universidad” es la acción a ejecutar.

    47

  • 8/18/2019 Principios de Programacion en C

    48/81

    ACTIVIDAD EN CLASE 2.4.

    Realice el siguiente programa en C++:

    #include

    int main(){

      char examen[2],semestre[2];

      cout

  • 8/18/2019 Principios de Programacion en C

    49/81

    RESPONDA:

    1. ¿Cuál es la salida del programa?

    2. Justifique el funcionamiento del programa?

    Analicemos lo que nos importa, la sentencia if.

    La condición a cumplir es: (examen[0]==’s’)&&(semestre[0]= =’s’), en realidad se trata de doscondiciones que se deben de cumplir: que la variable examentenga el carácter ‘s’ y que la variable semestre tenga el carácter ‘s’

    . Si la primera condición se cumple, entonces comprueba lasegunda condición (gracias a la conjunción lógica &&).

    Un condicional regresa 1 en caso de ser verdadero y un 0 en casode ser falso, esto dos valores, en C++ están definidos como tiposde datos booleanos, true y false respectivamente, así que si elcondicional resulta true (verdadero), se evalúa la siguienteinstrucción dentro del bloque if, en caso contrario no hace nada.

    En el ejemplo anterior el bloque de instrucciones a ejecutar encaso de ser verdadera la condición se encuentra dentro de llaves,pero no es necesario cuando sólo se trata de una sola línea decódigo.

    Cuando queremos, además controlar las opciones en caso de quela condición resulte falsa, tenemos que incluir aquellasinstrucciones en un bloque else.

    49

  • 8/18/2019 Principios de Programacion en C

    50/81

    Por ejemplo, en el código anterior podemos añadir un else a lasentencia if, de manera que nos quede de la siguiente forma:

    if((examen[0]=='s')&&(semestre[0]=='s')){  cout

  • 8/18/2019 Principios de Programacion en C

    51/81

      Curso el sexto semestre

    De esta manera controlamos las posibles respuestas que pudiesedar. En caso de que pase el examen y el semestre estará en la

    universidad, si pasa el semestre pero no pasa el examen estarátrabajando, y en cualquier otro caso, cursará el semestre.

    Nuestro código ya terminado quedará de la siguiente manera:

    51

  • 8/18/2019 Principios de Programacion en C

    52/81

    ACTIVIDAD EN CLASE 2.5.

    Realiza el siguiente programa:

    #include

    int main(){

      char examen[2],semestre[2];

      cout

  • 8/18/2019 Principios de Programacion en C

    53/81

      cout

  • 8/18/2019 Principios de Programacion en C

    54/81

    RESPONDA:

    1. ¿Cuál es la salida del programa?

    2. Justifique el funcionamiento del programa?

    ACTIVIDAD EXTRACLASE 2.3.

    Responde las siguientes preguntas con tus propias palabras?

    1. ¿Qué utilidad tiene la sentencia if?

    2. ¿Qué utilidad tiene la sentencia else?

    3. Qué diferencia hay entre los códigos de las actividades 2.5 y2.4?

    54

  • 8/18/2019 Principios de Programacion en C

    55/81

    4. ¿Cuáles son los errores en el siguiente fragmento de código?

    if ( valor == 0 )

      cout>>"valor es igual a 1";

    else

      cout>>"valor es diferente de 0";

    El código corregido es:

    5. De un ejemplo de dónde utilizar la sentencia if y else, como

    el mostrado al inicio de esta sección.

    55

  • 8/18/2019 Principios de Programacion en C

    56/81

    2.6. ESTRUCTURA DE CONTROL SWITCH.

     ¿Qué sucede cuándo necesitamos usar varios if's? 

    Muchas veces nos metemos en aprietos cuandonecesitamos tener el control sobre muchas opciones que pudiesetomar el usuario, porque resulta muy complicado pensar en variosif/else  anidados, para esos casos tenemos otra herramientamuy cómoda, la estructura de selección múltiple switch.

    La forma general es:

    switch (parámetro a evaluar o comparar){

      case a : //cuando el parámetro tiene un

    valor a

      Acciones a ejecutar;

      case b: //cuando el parámetro tiene un valor

    b  Acciones a ejecutar

      .

      .

      .

      caso por default;

    }

    ACTIVIDAD EN CLASE 2.6.

    Realice el siguiente programa:

    #include

    int main(){

    56

  • 8/18/2019 Principios de Programacion en C

    57/81

      int opcion;

      cout

  • 8/18/2019 Principios de Programacion en C

    58/81

    RESPONDA:

    1. ¿Cuál es el funcionamiento del programa?

    Notemos que opcion  es una variable de tipo entero, así quecase 1 , se refiere a que la variable opcion tiene un valor de 1.

    Si se tratase de una variable de tipo carácter, entonces debería deescribirse case '1'.

    Encontramos una nueva instrucción, break. Esta se encarga dealterar el flujo de control. Cuando se encuentra un break,inmediatamente se salta el resto de la estructura. No es exclusivade la estructura switch, también se puede colocar en bloquesif, for, while o do while (que se verán a continuación). Sin

    embargo es mejor no depender demasiado del break.

    58

  • 8/18/2019 Principios de Programacion en C

    59/81

    ACTIVIDAD EXTRACLASE 2.4.

    Responda las siguientes preguntas con sus propias palabras:

    1. ¿Para qué sirve la instrucción switch?

    2. ¿Para qué sirve la instrucción case?

    3. ¿Para qué sirve la instrucción default?

    4. ¿Para qué sirve la instrucción break?

    59

  • 8/18/2019 Principios de Programacion en C

    60/81

    2.7. ESTRUCTURA DE CONTROL WHILE.

     ¿Qué es un ciclo? 

    La sentencia de control while se encarga de repetir unbloque de código mientras se cumpla una condición. El bloque decódigo se debe de encontrar entre llaves, excepto si es una solalínea.

    La forma general de esta instrucción es la siguiente:

    while (condición a cumplir) {

      acciones a ejecutar;

    }

    Un ejemplo de éste lo podemos ver en el cálculo del promedio de10 números, pensemos que son las calificaciones del semestre.

    Mirando rápidamente la forma de estructurar nuestro programa(algo que se debe de hacer siempre, y antes de sentarse frente anuestro ordenador), podemos pensar en la siguiente solución:

    Declarar variables e inicializarlas

    Mientras (no se hagan 10 iteraciones){

      Leer una calificación

      Sumarla al total

      Determinar que se ha hecho una iteración}

    calcular el promedio

    mostrar el promedio

    60

  • 8/18/2019 Principios de Programacion en C

    61/81

    El programa queda como sigue:

    ACTIVIDAD EN CLASE 2.7.

    #include

    int main(){

      int calificacion, suma=0, iteracion=1;

      float promedio;

     

    while(iteracion

  • 8/18/2019 Principios de Programacion en C

    62/81

    2. Si observas, puedes introducir en el programa cualquier número(negativos o mayores a 10) ¿Cómo harías para que el programasólo acepte números entre 5 y 10?

    62

  • 8/18/2019 Principios de Programacion en C

    63/81

    ACTIVIDAD EXTRACLASE 2.5.

    Responda las siguientes preguntas con sus propias palabras:

    1. ¿Qué ventajas tiene el uso de la sentencia while?

    2. Investiga en Internet qué es y cómo se usa la sentencia do-while?

    63

  • 8/18/2019 Principios de Programacion en C

    64/81

    2.8. SENTENCIA DE CONTROL FOR.

     ¿Qué es una operación secuencial? 

    El ciclo for es al que más se recurre cuando se requiererealizar operaciones secuenciales, en donde se conoce el númerode iteraciones o la condición a comprobar.

    La forma general de esta sentencia es:

    for(asignación inicial ; condición ;instrucción ) {

      bloque de instrucciones;

    }

    Veamos un ejemplo sencillo:

    ACTIVIDAD EN CLASE 2.8.

    #include

    int main(){

     

    int i;

     

    for( i = 1; i

  • 8/18/2019 Principios de Programacion en C

    65/81

    RESPONDA.

    1. Haga una tabla en la que se muestre el valor de i  en cadaiteración:

    2. ¿Cuál es la salida del programa?

    3. ¿Cómo harías para que en vez de ser 10 el número de vecesque calcula un número, sea un número determinado por elusuario?

    El programa anterior inicializa la variable i  en 1, la incrementahasta llegar a diez, en cada incremento calcula el doble de esenúmero y lo muestra en pantalla.

    65

  • 8/18/2019 Principios de Programacion en C

    66/81

    UNIDAD III _____________________________________________________ 

    3.1. FUNCIONES.

     ¿Qué es una función? 

    Cuando tratamos de resolver un problema, resulta muy útilutilizar la filosofía de “divide y vencerás”. Esta estrategia consisteen dividir nuestro problema en otros más sencillos.

    Cuando realizamos un programa, por ejemplo, en el que serepetirán varias instrucciones pero con distintos valores quedefinan los resultados, podemos construir el programa a base defunciones. Una función es un bloque de instrucciones a las que seles asigna un nombre. Entonces, cada que necesitemos que seejecuten esa serie de instrucciones, haremos una invocación a la

    función por medio de ese nombre.

    Prototipos.

    El prototipo de una función se refiere a la información contenidaen la declaración de una función. Una función debe de estardefinida o al menos declarada antes de hacer uso de ella.

    Cuando se declara una función debe de especificarse el tipo dedato que va a devolver, el nombre de la función, y los parámetros.La siguiente declaración:

    int suma(int a, int b);

    Especifica una función que devuelve un tipo de dato entero, tienepor nombre suma, y al invocarla, recibe 2 parámetros de tipo

    66

  • 8/18/2019 Principios de Programacion en C

    67/81

    entero.

    Esta declaración debe de escribirse antes de la función main, y sudefinición puede escribirse después de ésta.

    Veamos un ejemplo:

    67

  • 8/18/2019 Principios de Programacion en C

    68/81

    ACTIVIDAD EN CLASE 3.1.

    Realiza el siguiente programa:

    #include

    int suma(int x, int y); //Este es el prototipo

    int main(){

      int dato1,dato2;

      cout

  • 8/18/2019 Principios de Programacion en C

    69/81

    RESPONDA.

    1. Si tecleas los valores 3 y 5 ¿Cuál es la salida del programa?

    2. ¿Qué sucede si quitas el prototipo de la función (la segundalínea de código)? ¿A qué se debe?

    Observamos que primeramente declaramos la función suma parausarla en el bloque main, y al final del código la definimos.Podíamos haber escrito la función completa antes del main.

    Paso de argumentos.

    Cuando hablamos de argumentos, nos referimos a los valores que

    aparecen en la llamada a la función. En el ejemplo anterior losargumentos fueron dato1 y dato2.

    Y los parámetros son a y b, los que reciben los datos.

    Notemos que el prototipo de la función tiene los nombres de losparámetros distintos a los de la definición, esto no afectará elcomportamiento del programa, pero se vería mejor si fueran

    iguales. Lo que no puede cambiar es el tipo de datos que va arecibir.

    Valores de retorno.

    Una función puede regresar cualquier tipo de valor excepto tablasu otras funciones.

    69

  • 8/18/2019 Principios de Programacion en C

    70/81

    ACTIVIDAD EXTRACLASE 3.1.

    Responde las siguientes preguntas con tus propias palabras:

    1. ¿Qué ventajas tiene la utilización de funciones?

    2. ¿Para qué sirve el argumento de una función?

    3. ¿Se puede omitir el prototipo de una función? Si, no y ¿porqué?

    4. ¿Para qué sirve el valor de retorno de una función?

    5. ¿Se puede omitir el valor de retorno de una función? Si, no,¿por qué? y ¿cómo?

    70

  • 8/18/2019 Principios de Programacion en C

    71/81

    3.2. MACROS.

      ¿Qué es una macro y qué similitud tiene con las funciones? 

    Una macro es una parte del código que puede parecer yactuar como una función, se define después de las libreríasmediante un #define.

    Se denominan instrucciones de preproceso porque se ejecutan al

    comienzo de la compilación.

    Sin embargo, no hay que abusar de ellas, porque podríanentorpecer el código y hacer lento el programa.

    71

  • 8/18/2019 Principios de Programacion en C

    72/81

    ACTIVIDAD EN CLASE 3.2.

    Realiza el siguiente programa:

    #include #define mayor(a,b) (a>b)? a: b

    int main(){

    int a,b;

    coutb;

    cout

  • 8/18/2019 Principios de Programacion en C

    73/81

    tener cuidado en introducir bloques grandes de código en unamacro (algo nada recomendable), sobre todo, cuidado con lospuntos y comas.

    Podemos ver que las macros al igual que las funciones puedentener parámetros, sin embargo, tienen que escribirse con cuidado.

    ACTIVIDAD EXTRACLASE 3.2.

    Responde las siguientes preguntas con tus propias palabras:

    1. ¿Qué es una macro?

    2. ¿Qué ventajas tiene la utilización de macros?

    3. ¿Cuáles son las desventajas de las macros?

    4. ¿Qué diferencia hay entre macros y funciones?

    5. En tu opinión ¿qué es más fácil usar, una macro o una función ypor qué?

    73

  • 8/18/2019 Principios de Programacion en C

    74/81

    3.3. RECURSIVIDAD.

     ¿Qué es la recursividad? 

    La recursividad se presenta cuando una función se invocaa si misma. Distintamente a las iteraciones (bucles), las funcionesrecursivas consumen muchos recursos de memoria y tiempo.

    Una función recursiva se programa simplemente para resolver loscasos más sencillos, cuando se llama a una función con un caso

    más complicado, se divide el problema en dos partes, la parte quese resuelve inmediatamente y la que necesita de más pasos, éstaúltima se manda de nuevo a la función, que a su ves la divide denuevo, y así sucesivamente hasta que se llegue al caso base.Cuando se llega al final de la serie de llamadas, va recorriendo elcamino de regreso, hasta que por fin, presenta el resultado.

    Un ejemplo clásico para este problema es calcular el factorial de

    un número, (n!).El factorial de un número se define como el producto de todos losnúmeros enterios anteriores a él, por ejemplo:

    ● 5! = 1*2*3*4*5 = 120,● 3! = 1*2*3 = 6,● 7! = 1*2*3*4*5*6*7 = 5040.

    Conocemos los casos base, 0!=1, 1!=1. Sabemos que la función ⋅factorial puede definirse como n!=n n−1 !. Entonces, 5! = 5*4! =

    5*4*3! = 5*4*3*2! = 5*4*3*2*1! = 120.

    Nuestro programa quedaría como sigue:

    74

  • 8/18/2019 Principios de Programacion en C

    75/81

    ACTIVIDAD EN CLASE 3.3.

    #include

    long factorial(long numero); //prototipo

    int main(){

    long numero;

    cout

  • 8/18/2019 Principios de Programacion en C

    76/81

    ACTIVIDAD EXTRACLASE 3.3.

    Responda las siguientes preguntas con sus propias palabras:

    1. ¿Qué es la recursividad?

    2. ¿Qué ventajas tiene el uso de la recursividad?

    3. ¿Qué desventajas tiene el uso de la recursividad?

    4. Investiga en Internet algún problema matemático que requierael uso de recursividad para solucionarlo? Explica brevemente cuáles el problema y cómo se soluciona.

    76

  • 8/18/2019 Principios de Programacion en C

    77/81

    BIBLIOGRAFÍA. _____________________________________________________ 

    1. Manual básico de programación en C++. Apoyo a lainvestigación C.P.D. Servicios Informáticos U.C.M. 2009.

    2. C++ for dummies. Stephen Randy Davis. WileyPublishing, Inc. 5ta. Edición. 2004.

    3. C++ Timesaving Technique For Dummies. MatthewTelles. Wiley Publishing, Inc. 2005.

    4. Aprenda C++ Básico. Paul Bustamante. TECNUM. 2004.

    5. Aprenda C++. Javier García de Jalón. TECNUM. 1998.6. Aprenda C++ Avanzado. Paul Bustamante. TECNUM.2004.

    7. Tutorial de C++ o el diario de Peter Class. Peter Class yPello Xabier Altadill Izura. Sin editorial. 2004.

    8. C++ Manual teórico-práctico. Alan D. Osorio Rojas. http:// slent.iespana.es/programacion/index.html. 2006.

    77

  • 8/18/2019 Principios de Programacion en C

    78/81

    78

  • 8/18/2019 Principios de Programacion en C

    79/81

    ACERCA DEL AUTOR. _____________________________________________________ 

    Nace en la Ciudad de Puebla, México, el 10 deAbril de 1984. Titulado como Ingeniero en Cienciasde la Computación por parte de la BeneméritaUniversidad Autónoma de Puebla. Sus trabajosmás importantes en los últimos años son lossiguientes:

    ● Principios de Data Mining (2005).● Principios de Geometría Analítica y Álgebra Lineal (2004).● La Integral: Un enfoque computacional (2004).● Transmisión y Comunicación de Datos (2005).● La Historia de un Gran Hombre (2008).● Ventajas y Desventajas del Plan Puebla-Panamá (2003).● 10 panistas a los que hay que odiar (2009).● Paisajes Poblanos, muestra fotográfica (2009).● Principios de programación en C++ (2009).

    79

  • 8/18/2019 Principios de Programacion en C

    80/81

  • 8/18/2019 Principios de Programacion en C

    81/81

    Este libro fue distribuido por cortesía de:

    Para obtener tu propio acceso a lecturas y libros electrónicos ilimitados GRA

    hoy mismo, visita:

    http://espanol.Free-eBooks.net 

    Comparte este libro con todos y cada uno de tus amigos de forma automática

    mediante la selección de cualquiera de las opciones de abajo:

    ara mostrar tu agradecimiento al autor y ayudar a otros para tener

    agradables experiencias de lectura y encontrar información valiosa,

    estaremos muy agradecidos si

    "publicas un comentario para este libro aquí ".

    http://espanol.free-ebooks.net/http://espanol.free-ebooks.net/ebook/PRINCIPIOS-DE-PROGRAMACIoN-EN-C/reviewhttp://espanol.free-ebooks.net/ebook/PRINCIPIOS-DE-PROGRAMACIoN-EN-C/reviewmailto:?subject=Encontr%E9%A0%A5ste%20libro%20para%20ti.%20Es%20Gratis%20y%20me%20encant%E3%AE%AE.&body=Hola,%20Encontr%E9%A0%A1lgunas%20buenas%20lecturas%20para%20ti%20y%20tambi%E9%AE%A0son%20GRATIS!%20Acabo%20de%20terminar%20de%20leer%20PRINCIPIOS%20DE%20PROGRAMACI%D3%8E%20EN%20C++%20y%20te%20lo%20puedo%20recomendar%20muy%20bien.%20Puedes%20obtenerlo%20GRATIS%20a%20trav%E9%B3%A0de%20este%20enlace:%20http://espanol.free-ebooks.net/ebook/PRINCIPIOS-DE-PROGRAMACIoN-EN-C%20Ve,%20leelo%20y%20despu%E9%B3%A0me%20cuentas%20que%20te%20pareci%E3%AE%80http://espanol.free-ebooks.net/share/pdf-in-1434564077http://espanol.free-ebooks.net/share/pdf-fb-1434564077http://espanol.free-ebooks.net/share/pdf-tw-1434564077http://espanol.free-ebooks.net/http://espanol.free-ebooks.net/