Este documento presenta los fundamentos de la programación, incluyendo conceptos como algoritmos, lenguajes de programación, compilación de programas, uso de bibliotecas, estructura básica de un programa como funciones y comentarios. Se explica el programa "Hola Mundo" como ejemplo para mostrar texto en la pantalla usando la biblioteca iostream y cout.
La arquitectura MISD (Multiple Instruction stream, Single Data stream) es un tipo de arquitectura paralela donde múltiples unidades ejecutan diferentes operaciones en el mismo flujo de datos. Las arquitecturas de tubería pertenecen a este tipo, como los controladores de vuelo del transbordador espacial que ejecutan algoritmos diferentes en los mismos datos para controlar el vuelo.
Este documento describe diferentes tipos de compuertas lógicas como la compuerta OR, XOR y sumadores. La compuerta OR produce una salida alta cuando una o más de sus entradas son altas, mientras que la XOR produce una salida alta solo cuando sus entradas son opuestas. Los sumadores, como el medio sumador y el sumador completo, pueden implementarse usando compuertas lógicas para sumar números binarios, y los sumadores paralelos permiten sumar números de más de un bit.
Raptor es un entorno de desarrollo visual basado en diagramas de flujo que permite diseñar y ejecutar algoritmos de manera sencilla. Utiliza símbolos gráficos conectados para representar las instrucciones de un programa y flechas para determinar el orden de ejecución. Raptor minimiza la sintaxis requerida y hace que los programas y errores sean fáciles de entender para los estudiantes. Un programa Raptor consta de símbolos conectados que representan las acciones a realizar, empezando por el símbol
Este documento define la programación como el proceso de escribir código en un lenguaje de programación para crear software que luego se ejecutará en una computadora. Explica que la programación se utiliza para todo tipo de tareas y propósitos, desde la gestión empresarial hasta la inteligencia artificial, y que en la actualidad dependemos enormemente de la programación en nuestras vidas diarias, ya sea al configurar alarmas en nuestros teléfonos u obtener ayuda de las máquinas. Finalmente, distingue entre programar, que implica
Este documento describe las listas como un tipo de dato abstracto y sus diferentes implementaciones. Explica que las listas pueden implementarse de forma secuencial o enlazada, y que las pilas y colas son casos particulares de listas que siguen los órdenes LIFO y FIFO respectivamente. También menciona algunos ejemplos y la forma de implementar listas en C++.
El documento trata sobre diagramas de tiempo, compuertas lógicas, teoremas de álgebra booleana y representación de circuitos digitales. Explica conceptos como diagramas de tiempo, funciones lógicas, compuertas condicionales compuestas, teoremas de DeMorgan y la universalidad de compuertas NAND y NOR para representar cualquier función lógica. También incluye ejercicios para el análisis y diseño de circuitos digitales.
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos como palabras reservadas, identificadores, constantes, operadores y signos de puntuación. El lenguaje C++ incluye tipos de datos primitivos como enteros, caracteres, decimales y booleanos, y permite declarar variables y constantes. También incluye operadores aritméticos, relacionales y lógicos para realizar cálculos y comparaciones.
El documento describe diferentes tipos de datos en C++, incluyendo enteros, caracteres, números de punto flotante y booleanos. Explica que los tipos de datos integrados como int y char son proporcionados por el compilador, mientras que los tipos de datos de clase son definidos por el programador. También cubre conceptos como literales, el operador sizeof, declaraciones múltiples de variables, y el uso de variables para almacenar y desplegar datos.
La arquitectura MISD (Multiple Instruction stream, Single Data stream) es un tipo de arquitectura paralela donde múltiples unidades ejecutan diferentes operaciones en el mismo flujo de datos. Las arquitecturas de tubería pertenecen a este tipo, como los controladores de vuelo del transbordador espacial que ejecutan algoritmos diferentes en los mismos datos para controlar el vuelo.
Este documento describe diferentes tipos de compuertas lógicas como la compuerta OR, XOR y sumadores. La compuerta OR produce una salida alta cuando una o más de sus entradas son altas, mientras que la XOR produce una salida alta solo cuando sus entradas son opuestas. Los sumadores, como el medio sumador y el sumador completo, pueden implementarse usando compuertas lógicas para sumar números binarios, y los sumadores paralelos permiten sumar números de más de un bit.
Raptor es un entorno de desarrollo visual basado en diagramas de flujo que permite diseñar y ejecutar algoritmos de manera sencilla. Utiliza símbolos gráficos conectados para representar las instrucciones de un programa y flechas para determinar el orden de ejecución. Raptor minimiza la sintaxis requerida y hace que los programas y errores sean fáciles de entender para los estudiantes. Un programa Raptor consta de símbolos conectados que representan las acciones a realizar, empezando por el símbol
Este documento define la programación como el proceso de escribir código en un lenguaje de programación para crear software que luego se ejecutará en una computadora. Explica que la programación se utiliza para todo tipo de tareas y propósitos, desde la gestión empresarial hasta la inteligencia artificial, y que en la actualidad dependemos enormemente de la programación en nuestras vidas diarias, ya sea al configurar alarmas en nuestros teléfonos u obtener ayuda de las máquinas. Finalmente, distingue entre programar, que implica
Este documento describe las listas como un tipo de dato abstracto y sus diferentes implementaciones. Explica que las listas pueden implementarse de forma secuencial o enlazada, y que las pilas y colas son casos particulares de listas que siguen los órdenes LIFO y FIFO respectivamente. También menciona algunos ejemplos y la forma de implementar listas en C++.
El documento trata sobre diagramas de tiempo, compuertas lógicas, teoremas de álgebra booleana y representación de circuitos digitales. Explica conceptos como diagramas de tiempo, funciones lógicas, compuertas condicionales compuestas, teoremas de DeMorgan y la universalidad de compuertas NAND y NOR para representar cualquier función lógica. También incluye ejercicios para el análisis y diseño de circuitos digitales.
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos como palabras reservadas, identificadores, constantes, operadores y signos de puntuación. El lenguaje C++ incluye tipos de datos primitivos como enteros, caracteres, decimales y booleanos, y permite declarar variables y constantes. También incluye operadores aritméticos, relacionales y lógicos para realizar cálculos y comparaciones.
El documento describe diferentes tipos de datos en C++, incluyendo enteros, caracteres, números de punto flotante y booleanos. Explica que los tipos de datos integrados como int y char son proporcionados por el compilador, mientras que los tipos de datos de clase son definidos por el programador. También cubre conceptos como literales, el operador sizeof, declaraciones múltiples de variables, y el uso de variables para almacenar y desplegar datos.
El documento presenta una introducción al lenguaje de programación C. Explica que C fue creado por Dennis Ritchie en los años 70 y que en 1983 se estableció el estándar ANSI C. Describe que C combina características de lenguajes de alto y bajo nivel y permite el manejo directo de memoria. Además, detalla elementos clave de un programa en C como comentarios, identificadores, constantes, variables, operadores y estructuras de control.
La máquina de Turing es una abstracción matemática que puede aceptar diferentes lenguajes formales. Un lenguaje aceptado por una máquina de Turing se define por la 7-tupla que describe la máquina y se conoce como un lenguaje recursivamente enumerable. Los lenguajes recursivamente enumerables incluyen lenguajes regulares, independientes de contexto y dependientes de contexto, y son cerrados bajo ciertas operaciones. Las máquinas de Turing pueden reconocer una variedad de lenguajes formales definidos por gramáticas u otros mecan
Este documento describe las principales librerías de la biblioteca estándar de C++, incluyendo stdio.h, stdlib.h, string.h y time.h, y sus funciones clave para entrada/salida, conversión de tipos, manipulación de cadenas y manejo de fecha y hora. También cubre librerías como assert.h, ctype.h, errno.h, limits.h y math.h y sus macros y funciones para diagnóstico, comprobación de tipos, manejo de errores y operaciones matemáticas.
Este documento resume la jerarquía de Chomsky, incluyendo las diferentes clases de lenguajes formales y las máquinas abstractas asociadas. Explica que los lenguajes dependientes del contexto son reconocidos por autómatas lineales con frontera, los lenguajes independientes del contexto por autómatas de pila, y los lenguajes regulares por autómatas finitos. También describe formas normales como la de Chomsky y Greibach para gramáticas libres de contexto y la de Kuruda para gramáticas dependientes del contexto.
Este documento explica las gramáticas ambiguas y las gramáticas libres de contexto. Define la ambigüedad como cuando algo tiene más de una interpretación. Las gramáticas ambiguas generan lenguajes donde una cadena puede tener más de un árbol sintáctico. Las gramáticas libres de contexto definen reglas formales para lenguajes de programación y usan derivaciones para evaluar cadenas. Las derivaciones pueden ser ambiguas dependiendo de si se hacen hacia la izquierda o derecha.
El documento introduce conceptos fundamentales de teoría de autómatas y lenguajes formales como lenguajes formales, alfabetos, gramáticas y autómatas. También resume brevemente la historia del campo, incluyendo contribuciones clave de figuras como Turing, Chomsky y Kleene. Finalmente, establece la correspondencia entre los tipos de lenguajes, gramáticas y autómatas en la jerarquía de Chomsky.
El documento explica las diferencias entre compiladores e intérpretes. Los compiladores traducen el código fuente a otro lenguaje como código máquina, mientras que los intérpretes ejecutan el código directamente sin generar un archivo. Los programas compilados son más rápidos pero solo funcionan en una plataforma, mientras que los intérpretes permiten modificar el código en ejecución pero son más lentos.
Este documento presenta las estructuras repetitivas en el lenguaje de programación PseInt. Explica las instrucciones "hacer mientras", "hacer hasta que", y "hacer desde-hasta con incremento", incluyendo definiciones, diagramas de flujo y ejemplos. También proporciona ejercicios de práctica y enlaces a recursos adicionales sobre programación.
Conceptos básicos y metodología de la programaciónjusto morales
El documento resume los conceptos básicos de programación, incluyendo las definiciones de computadora, datos, información y algoritmos. Explica las diferentes etapas del desarrollo de software como el análisis, diseño, codificación, pruebas y mantenimiento. También describe los diferentes tipos de lenguajes de programación como los lenguajes de máquina, ensamblador y de alto nivel.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Este documento describe las impresoras matriciales o de matriz, las cuales imprimen mediante el desplazamiento de una cabeza de impresión que oprime una cinta de tinta contra el papel. Explica que estas impresoras se clasifican en de impacto o libres de impacto y describe sus partes principales. También indica que fueron creadas en la década de 1940 y menciona algunas marcas conocidas como Epson y HP, señalando que esta tecnología fue comercializada primero por Digital Equipment Corporation. Finalmente, resume algunas
El documento describe la estructura básica de un programa en C++. Todo programa debe incluir archivos de cabecera, declarar variables globales, contener una función principal llamada main, e incluir el cuerpo del programa dentro de llaves. Las funciones se definen indicando su tipo de retorno, nombre, parámetros y bloque de instrucciones entre llaves.
Clasificacion Lenguajes de Programacion por Su GeneracionShirlid .n
Este documento describe la evolución de los lenguajes de programación desde los lenguajes de máquina de los años 1940 hasta los lenguajes de propósito especial modernos. Comienza con los lenguajes de máquina basados en códigos binarios, luego pasa a los lenguajes ensambladores de los años 1950 que utilizan mnemotécnicos. A continuación, describe las tres generaciones de lenguajes de alto nivel que surgieron en los años 1960 en adelante, incluidos los lenguajes científicos, empresariales y de propósito general.
Un hash es el resultado de aplicar una función matemática a un documento u objeto para generar una clave única que lo represente de forma concisa. Las funciones hash se usan comúnmente en tablas hash para acelerar la búsqueda de información mediante el mapeo casi directo de claves a ubicaciones de memoria. Una buena función hash distribuye las claves de forma aleatoria para minimizar las colisiones donde claves diferentes generan la misma salida.
Este documento explica los punteros en C. Introduce los punteros describiéndolos como variables especiales que pueden almacenar direcciones de memoria. Explica que los punteros permiten acceder a valores almacenados en estas direcciones de memoria usando la operación de indirección. También advierte que los punteros requieren cuidado en su uso para evitar errores comunes como punteros no inicializados o de tipos incompatibles.
Variables, constantes y tipos de datos en CRonny Parra
Inroducción a las varibales, constantes y tipos de datos en C. Contiene las definiciones de cada una de éstas, además de los tipos de datos soportados por C con su rango, la lista de los operadodres lógicos, aritméticos y relacionales, y las secuencias de escape de uso mas común con printf y scanf
El documento describe la arquitectura de un microprocesador, explicando que está compuesto de varios bloques interconectados que cumplen funciones específicas. Luego detalla algunas de las partes clave como la memoria caché, coprocesador matemático, registros y puertos. Finalmente, explica cómo se conecta el microprocesador a la placa base a través de zócalos y buses.
El documento proporciona información sobre la capa de red (capa 3) en el modelo OSI. Explica que la capa de red se encarga de la selección de ruta, direccionamiento y enrutamiento para intercambiar datos entre dispositivos a través de una red. También describe los procesos básicos de direccionamiento, encapsulación, enrutamiento y desencapsulación utilizados por la capa de red para transportar datos de extremo a extremo a través de una red.
El documento presenta un manual sobre JFlap, una herramienta para crear autómatas finitos y otros modelos computacionales. Explica que JFlap permite construir autómatas finitos deterministas y no deterministas, así como máquinas de Turing, gramáticas y expresiones regulares. Además, describe cómo crear y probar autómatas finitos dentro del entorno de JFlap.
El documento describe las etapas de compilación de un lenguaje de programación, enfocándose en la etapa de generador de código intermedio. Explica que esta etapa transforma la salida del análisis semántico en una representación cercana a un lenguaje intermedio, como el código de tres direcciones. El código de tres direcciones consiste en instrucciones con hasta tres operandos en la forma x = y op z, y sigue reglas como generar nombres temporales y que algunas instrucciones pueden tener menos de tres operandos.
Este documento introduce los fundamentos de la programación, incluyendo conceptos como programar, lenguajes de programación, algoritmos y programas. Explica cómo escribir un programa simple para dirigir un coche autónomo siguiendo instrucciones de movimiento y resuelve errores a través de la depuración.
Este documento presenta los fundamentos de la programación. Explica conceptos clave como informática, computadoras, hardware, software, programación e historia de los lenguajes de programación. También introduce conceptos de sintaxis y semántica de los lenguajes de programación y presenta un primer programa "Hola Mundo" en C++.
El documento presenta una introducción al lenguaje de programación C. Explica que C fue creado por Dennis Ritchie en los años 70 y que en 1983 se estableció el estándar ANSI C. Describe que C combina características de lenguajes de alto y bajo nivel y permite el manejo directo de memoria. Además, detalla elementos clave de un programa en C como comentarios, identificadores, constantes, variables, operadores y estructuras de control.
La máquina de Turing es una abstracción matemática que puede aceptar diferentes lenguajes formales. Un lenguaje aceptado por una máquina de Turing se define por la 7-tupla que describe la máquina y se conoce como un lenguaje recursivamente enumerable. Los lenguajes recursivamente enumerables incluyen lenguajes regulares, independientes de contexto y dependientes de contexto, y son cerrados bajo ciertas operaciones. Las máquinas de Turing pueden reconocer una variedad de lenguajes formales definidos por gramáticas u otros mecan
Este documento describe las principales librerías de la biblioteca estándar de C++, incluyendo stdio.h, stdlib.h, string.h y time.h, y sus funciones clave para entrada/salida, conversión de tipos, manipulación de cadenas y manejo de fecha y hora. También cubre librerías como assert.h, ctype.h, errno.h, limits.h y math.h y sus macros y funciones para diagnóstico, comprobación de tipos, manejo de errores y operaciones matemáticas.
Este documento resume la jerarquía de Chomsky, incluyendo las diferentes clases de lenguajes formales y las máquinas abstractas asociadas. Explica que los lenguajes dependientes del contexto son reconocidos por autómatas lineales con frontera, los lenguajes independientes del contexto por autómatas de pila, y los lenguajes regulares por autómatas finitos. También describe formas normales como la de Chomsky y Greibach para gramáticas libres de contexto y la de Kuruda para gramáticas dependientes del contexto.
Este documento explica las gramáticas ambiguas y las gramáticas libres de contexto. Define la ambigüedad como cuando algo tiene más de una interpretación. Las gramáticas ambiguas generan lenguajes donde una cadena puede tener más de un árbol sintáctico. Las gramáticas libres de contexto definen reglas formales para lenguajes de programación y usan derivaciones para evaluar cadenas. Las derivaciones pueden ser ambiguas dependiendo de si se hacen hacia la izquierda o derecha.
El documento introduce conceptos fundamentales de teoría de autómatas y lenguajes formales como lenguajes formales, alfabetos, gramáticas y autómatas. También resume brevemente la historia del campo, incluyendo contribuciones clave de figuras como Turing, Chomsky y Kleene. Finalmente, establece la correspondencia entre los tipos de lenguajes, gramáticas y autómatas en la jerarquía de Chomsky.
El documento explica las diferencias entre compiladores e intérpretes. Los compiladores traducen el código fuente a otro lenguaje como código máquina, mientras que los intérpretes ejecutan el código directamente sin generar un archivo. Los programas compilados son más rápidos pero solo funcionan en una plataforma, mientras que los intérpretes permiten modificar el código en ejecución pero son más lentos.
Este documento presenta las estructuras repetitivas en el lenguaje de programación PseInt. Explica las instrucciones "hacer mientras", "hacer hasta que", y "hacer desde-hasta con incremento", incluyendo definiciones, diagramas de flujo y ejemplos. También proporciona ejercicios de práctica y enlaces a recursos adicionales sobre programación.
Conceptos básicos y metodología de la programaciónjusto morales
El documento resume los conceptos básicos de programación, incluyendo las definiciones de computadora, datos, información y algoritmos. Explica las diferentes etapas del desarrollo de software como el análisis, diseño, codificación, pruebas y mantenimiento. También describe los diferentes tipos de lenguajes de programación como los lenguajes de máquina, ensamblador y de alto nivel.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Este documento describe las impresoras matriciales o de matriz, las cuales imprimen mediante el desplazamiento de una cabeza de impresión que oprime una cinta de tinta contra el papel. Explica que estas impresoras se clasifican en de impacto o libres de impacto y describe sus partes principales. También indica que fueron creadas en la década de 1940 y menciona algunas marcas conocidas como Epson y HP, señalando que esta tecnología fue comercializada primero por Digital Equipment Corporation. Finalmente, resume algunas
El documento describe la estructura básica de un programa en C++. Todo programa debe incluir archivos de cabecera, declarar variables globales, contener una función principal llamada main, e incluir el cuerpo del programa dentro de llaves. Las funciones se definen indicando su tipo de retorno, nombre, parámetros y bloque de instrucciones entre llaves.
Clasificacion Lenguajes de Programacion por Su GeneracionShirlid .n
Este documento describe la evolución de los lenguajes de programación desde los lenguajes de máquina de los años 1940 hasta los lenguajes de propósito especial modernos. Comienza con los lenguajes de máquina basados en códigos binarios, luego pasa a los lenguajes ensambladores de los años 1950 que utilizan mnemotécnicos. A continuación, describe las tres generaciones de lenguajes de alto nivel que surgieron en los años 1960 en adelante, incluidos los lenguajes científicos, empresariales y de propósito general.
Un hash es el resultado de aplicar una función matemática a un documento u objeto para generar una clave única que lo represente de forma concisa. Las funciones hash se usan comúnmente en tablas hash para acelerar la búsqueda de información mediante el mapeo casi directo de claves a ubicaciones de memoria. Una buena función hash distribuye las claves de forma aleatoria para minimizar las colisiones donde claves diferentes generan la misma salida.
Este documento explica los punteros en C. Introduce los punteros describiéndolos como variables especiales que pueden almacenar direcciones de memoria. Explica que los punteros permiten acceder a valores almacenados en estas direcciones de memoria usando la operación de indirección. También advierte que los punteros requieren cuidado en su uso para evitar errores comunes como punteros no inicializados o de tipos incompatibles.
Variables, constantes y tipos de datos en CRonny Parra
Inroducción a las varibales, constantes y tipos de datos en C. Contiene las definiciones de cada una de éstas, además de los tipos de datos soportados por C con su rango, la lista de los operadodres lógicos, aritméticos y relacionales, y las secuencias de escape de uso mas común con printf y scanf
El documento describe la arquitectura de un microprocesador, explicando que está compuesto de varios bloques interconectados que cumplen funciones específicas. Luego detalla algunas de las partes clave como la memoria caché, coprocesador matemático, registros y puertos. Finalmente, explica cómo se conecta el microprocesador a la placa base a través de zócalos y buses.
El documento proporciona información sobre la capa de red (capa 3) en el modelo OSI. Explica que la capa de red se encarga de la selección de ruta, direccionamiento y enrutamiento para intercambiar datos entre dispositivos a través de una red. También describe los procesos básicos de direccionamiento, encapsulación, enrutamiento y desencapsulación utilizados por la capa de red para transportar datos de extremo a extremo a través de una red.
El documento presenta un manual sobre JFlap, una herramienta para crear autómatas finitos y otros modelos computacionales. Explica que JFlap permite construir autómatas finitos deterministas y no deterministas, así como máquinas de Turing, gramáticas y expresiones regulares. Además, describe cómo crear y probar autómatas finitos dentro del entorno de JFlap.
El documento describe las etapas de compilación de un lenguaje de programación, enfocándose en la etapa de generador de código intermedio. Explica que esta etapa transforma la salida del análisis semántico en una representación cercana a un lenguaje intermedio, como el código de tres direcciones. El código de tres direcciones consiste en instrucciones con hasta tres operandos en la forma x = y op z, y sigue reglas como generar nombres temporales y que algunas instrucciones pueden tener menos de tres operandos.
Este documento introduce los fundamentos de la programación, incluyendo conceptos como programar, lenguajes de programación, algoritmos y programas. Explica cómo escribir un programa simple para dirigir un coche autónomo siguiendo instrucciones de movimiento y resuelve errores a través de la depuración.
Este documento presenta los fundamentos de la programación. Explica conceptos clave como informática, computadoras, hardware, software, programación e historia de los lenguajes de programación. También introduce conceptos de sintaxis y semántica de los lenguajes de programación y presenta un primer programa "Hola Mundo" en C++.
Este documento presenta los fundamentos de la programación. Explica conceptos clave como informática, computadoras, hardware, software, programación e historia de los lenguajes de programación. También introduce conceptos de sintaxis y semántica de los lenguajes de programación y presenta un primer programa "Hola Mundo" en C++.
Este documento presenta una introducción al uso de PSeInt, un intérprete de pseudocódigo. Explica qué es PSeInt, cómo instalarlo e introduce los conceptos básicos del entorno de programación. Luego, detalla cada una de las estructuras de control soportadas por PSeInt como condicionales, repetitivas y subprocesos a través de ejemplos. Finalmente, incluye información sobre dimensiones, estructuras de datos y archivos de texto.
Este documento presenta una introducción al uso de PSeInt, un intérprete de pseudocódigo. Explica qué es PSeInt, cómo instalarlo e introduce los conceptos básicos del entorno de programación. Luego, detalla cada una de las estructuras de control soportadas por PSeInt como condicionales, repetitivas y subprocesos a través de ejemplos. Finalmente, incluye información sobre dimensiones, estructuras de datos y archivos de texto.
Este documento presenta una introducción al uso del programa PSeInt, un intérprete de pseudocódigo. Explica cómo instalar PSeInt, describe el entorno de programación incluyendo las diferentes secciones y botones, y muestra un ejemplo de cómo escribir un primer programa simple en PSeInt para imprimir el texto "Unitec". Además, brinda información sobre conceptos básicos de programación como variables, operadores condicionales, ciclos y subprocesos que se explicarán con más detalle en las siguientes secciones.
1) El documento presenta una introducción al programa PSeInt, el cual permite escribir programas en pseudocódigo de forma sencilla. 2) Explica cómo instalar PSeInt y describe su interfaz, incluyendo el área de trabajo y los botones de comando que facilitan la escritura de código. 3) Presenta conceptos básicos de programación como variables, operadores, estructuras condicionales y repetitivas usando este lenguaje.
Este documento presenta una introducción a conceptos fundamentales de programación como datos, información, problemas, algoritmos y lenguajes de programación. Define datos como representaciones simbólicas y información como datos con significado. Explica que un algoritmo es una secuencia de pasos para resolver un problema y que existen diferentes lenguajes de programación como lenguajes de máquina, ensamblador y de alto nivel.
Este documento presenta una introducción a conceptos fundamentales de programación como datos, información, problemas, algoritmos y lenguajes de programación. Define datos como representaciones simbólicas y información como datos con significado. Explica que un algoritmo es una secuencia de pasos para resolver un problema y que existen diferentes lenguajes de programación como máquina, ensamblador y de alto nivel.
Este documento describe los conceptos fundamentales de la programación, incluyendo datos, información, problemas, algoritmos y lenguajes de programación. Define datos como representaciones simbólicas y información como datos con significado. Explica que un algoritmo es una secuencia de pasos para resolver un problema y que los lenguajes de programación permiten expresar algoritmos de manera que puedan ser ejecutados por una computadora. Finalmente, resume los diferentes tipos de lenguajes de programación.
Este documento presenta una introducción a conceptos fundamentales de programación como datos, información, problemas, algoritmos y lenguajes de programación. Define datos como representaciones simbólicas y información como datos con significado. Explica que un algoritmo es una secuencia ordenada de pasos para resolver un problema y que existen diferentes lenguajes de programación como máquina, ensamblador y de alto nivel.
Este documento trata sobre los fundamentos de la programación y las computadoras. Explica conceptos como informática, computadora, hardware, software y programación. Describe los componentes principales de una computadora como la memoria, unidad central de proceso y dispositivos de entrada y salida. Además, introduce conceptos como algoritmos, lenguajes de programación y la historia de las computadoras desde sus inicios hasta la actualidad.
Este documento describe el uso de teclados y LCD con microcontroladores. Explica que los teclados son una forma común de introducir información y que suelen tener un formato matricial para reducir conexiones. También describe la conexión típica de un teclado 4x4 y cómo funcionan los LCD, incluyendo su inicialización y librerías. Finalmente, presenta un proyecto que enciende LEDs usando un teclado 4x4, LCD y un circuito demultiplexor para reducir las salidas necesarias.
Clase de metodologia para analisis y planteamiento de problemasSol Hernández
El documento describe las fases en el desarrollo de un programa para resolver un problema: análisis del problema, diseño del algoritmo, programación, ejecución y pruebas. Explica que el análisis consiste en definir claramente el problema, los datos de entrada, el proceso y la salida deseada. Luego, en el diseño del algoritmo se indican los pasos a seguir para resolver el problema. Finalmente, la programación codifica el algoritmo en un lenguaje de programación.
Este documento presenta un resumen de las actividades realizadas por un grupo de estudiantes en la asignatura de Tecnología e Informática. En primer lugar, el grupo aprendió sobre algoritmos, diagramas de flujo y lenguajes de programación. Luego, resolvieron ejercicios prácticos y reconocieron los componentes de la plataforma micro:bit. Finalmente, desarrollaron proyectos utilizando sensores y compartieron los resultados en sus blogs personales.
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxJulianSimonetta
Este documento presenta la materia Programación de Computadoras de la carrera de Licenciatura en Sistemas de la UNLA. Incluye la presentación del equipo docente, enlaces de contacto, redes sociales y plataformas virtuales. Además, brinda detalles sobre las unidades que componen la materia y los temas a abordar, y contiene ejemplos de código en C para mostrar funciones básicas como printf y scanf.
El documento presenta un índice de un módulo básico de programación que incluye temas como introducción a la programación, algoritmos y lógica, diseño de sistemas, entornos y tecnologías para desarrollo de software como el compilador GCC y herramientas de proyectos como KDevelop y Autoconf. También menciona el uso de repositorios centralizados como CVS.
El documento presenta una introducción a la programación. Explica conceptos básicos como la computadora, su arquitectura hardware y software. Luego describe unidades de medida de almacenamiento, sistemas de numeración, lenguajes de programación y traductores. También define conceptos como algoritmo, diagramas de flujo y pseudocódigo que son herramientas para la programación. Finalmente presenta estructuras de control como la secuencial, condicional y repetitiva que permiten modelar soluciones de problemas mediante programas.
Este documento describe cómo crear y probar proyectos para el microcontrolador HCS08 usando el entorno de desarrollo CodeWarrior. Explica cómo crear un nuevo proyecto, agregar código ensamblador, compilar y depurar el programa usando las herramientas del CodeWarrior. Como ejemplo, se incluye un pequeño programa que carga valores en los registros y los ejecuta en un bucle infinito.
La Unidad Eudista de Espiritualidad se complace en poner a su disposición el siguiente Triduo Eudista, que tiene como propósito ofrecer tres breves meditaciones sobre Jesucristo Sumo y Eterno Sacerdote, el Sagrado Corazón de Jesús y el Inmaculado Corazón de María. En cada día encuentran una oración inicial, una meditación y una oración final.
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Lenguaje C
1. Fundamentos de la programación
2
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Luis Hernández Yáñez
Facultad de Informática
Universidad Complutense
2. Luis Hernández Yáñez
Un ejemplo de programación 3
El primer programa en C++ 18
Las líneas de código del programa 35
Cálculos en los programas 42
Variables 48
Expresiones 54
Lectura de datos desde el teclado 64
Resolución de problemas 79
Algoritmo 84
Programación 87
Los datos de los programas 91
Identificadores 93
Tipos de datos 97
Declaración de variables 106
Constantes 111
Operadores 115
Más sobre expresiones 124
Fundamentos de la programación: Primeros pasos
Instrucciones de asignación 132
La biblioteca cmath 137
Operaciones con caracteres 141
Operadores relacionales 145
Toma de decisiones (if) 148
Bloques de código 151
Bucles (while) 155
Entrada/salida por consola 159
3. Luis Hernández Yáñez
Programar
Actividad de escribir y probar programas.
Programa
Código que indica a la computadora exactamente lo que tiene
que hacer: secuencia de instrucciones.
La computadora sólo entiende un conjunto de instrucciones.
Lenguaje de programación
Describe cómo es el conjunto de instrucciones que se pueden
usar en los programas.
Reglas sintácticas que el código debe respetar.
Fundamentos de la programación: Primeros pasos Página 2
5. Luis Hernández Yáñez
Una computadora de un coche
Coche que acepta programas que le indiquen cómo llegar.
Instrucciones que entiende:
<instrucción> ::= <inst> ;
<inst> ::= Start | Stop | <avanzar>
<avanzar> ::= Go <dirección> <num> Blocks
<dirección> ::= North | East | South | West
<num> ::= 1 | 2 | 3 | 4 | 5
Ejemplos:
Start;
Go North 3 Blocks;
Stop;
Fundamentos de la programación: Primeros pasos Página 4
6. Luis Hernández Yáñez
Sintaxis del lenguaje de programación
instrucción
Start
Stop ;
avanzar
avanzar Go dirección num Blocks
dirección
North
num
= Literales
East
South
West
1
2
3
4
5
Fundamentos de la programación: Primeros pasos Página 5
7. Luis Hernández Yáñez
El problema a resolver
Estando el coche en la posición A,
conseguir llegar al Cine Tívoli (B).
¿Cuáles son los pasos que hay
que seguir para llegar al destino?
Arrancar
Ir un bloque al Norte
Ir dos bloques al Este
Ir cinco bloques al Norte
Ir dos bloques al Este
Parar
B
A
Fundamentos de la programación: Primeros pasos Página 6
N
Bloque:
8. Luis Hernández Yáñez
El algoritmo
Secuencia de pasos que hay que
seguir para resolver el problema.
1.- Arrancar
Fundamentos de la programación: Primeros pasos Página 7
N
2.- Ir un bloque al Norte
3.- Ir dos bloques al Este
4.- Ir cinco bloques al Norte
5.- Ir dos bloques al Este
6.- Parar
Esos pasos sirven tanto para
una persona como para una computadora.
9. Luis Hernández Yáñez
El programa
Para cada paso, una instrucción.
Escrita en el lenguaje
de programación.
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go East 2 Blocks;
Stop;
B
A
Fundamentos de la programación: Primeros pasos Página 8
N
10. Luis Hernández Yáñez
El programa
Escribimos el código del programa
en un editor y lo guardamos
en un documento programa.prg.
Stat;
Go North 1 Blocks
Go East Blocks;
Go Noth 5 Blocks;
Go West 2 Blocks;
Stop;
Copiamos el archivo
en una llave USB
y lo llevamos al coche.
Fundamentos de la programación: Primeros pasos Página 9
11. Luis Hernández Yáñez
La compilación
Introducimos la llave USB en el coche y pulsamos el botón
de ejecutar el programa en programa.prg.
Se compila el programa (comprobación sintáctica):
Stat;
----^ Unknown word.
Go North 1 Blocks
-----------------^ ; missing.
Go East Blocks;
--------^ Number missing.
Go Noth 5 Blocks;
-------^ Unknown word.
Go West 2 Blocks;
Stop;
There are errors. Impossible to run the program.
Errores
de sintaxis
Fundamentos de la programación: Primeros pasos Página 10
12. Luis Hernández Yáñez
Depuración
Editamos el código para arreglar los errores de sintaxis.
Stat;
Go North 1 Blocks
Go East Blocks;
Go Noth 5 Blocks;
Go West 2 Blocks;
Stop;
Start;
Go North 1 Blocks;
Go East 3 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
Fundamentos de la programación: Primeros pasos Página 11
13. Luis Hernández Yáñez
La ejecución
Se realiza lo que pide
cada instrucción.
B
¡No se puede seguir
ejecutando el programa!
Fundamentos de la programación: Primeros pasos Página 12
N
Start;
Go North 1 Blocks;
Go East 3 Blocks;
!
Error de ejecución:
¡Una instrucción no se puede ejecutar!
14. Luis Hernández Yáñez
Depuración
Editamos el código para arreglar el error de ejecución.
Start;
Go North 1 Blocks;
Go East 3 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
Fundamentos de la programación: Primeros pasos Página 13
15. Luis Hernández Yáñez
La ejecución
Se realiza lo que pide
cada instrucción.
B
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
?
Fundamentos de la programación: Primeros pasos Página 14
N
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Errores lógicos:
El programa se ejecuta, pero no obtiene el resultado deseado.
16. Luis Hernández Yáñez
Depuración
Editamos el código para arreglar el error lógico.
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go East 2 Blocks;
Stop;
Fundamentos de la programación: Primeros pasos Página 15
17. Luis Hernández Yáñez
La ejecución
Se realiza lo que pide
cada instrucción.
Fundamentos de la programación: Primeros pasos Página 16
N
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go East 2 Blocks;
Stop;
¡Conseguido!
18. Luis Hernández Yáñez
Muchas instrucciones
Instrucciones para...
Mostrar textos en la pantalla
Leer datos del usuario
Realizar cálculos
Tomar decisiones
Repetir operaciones
Etcétera...
Fundamentos de la programación: Primeros pasos Página 17
20. Luis Hernández Yáñez
Hola Mundo!
De vuelta en el programa que muestra un saludo en la pantalla:
#include <iostream>
using namespace std;
int main() // main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl;
return 0;
}
Fundamentos de la programación: Primeros pasos Página 19
21. Luis Hernández Yáñez
Hola Mundo!
La única instrucción que produce algo tangible:
#include <iostream>
using namespace std;
int main() // main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl;
return 0;
}
Fundamentos de la programación: Primeros pasos Página 20
22. Luis Hernández Yáñez
cout
Visualización en la pantalla:
character output stream
cout << "Hola Mundo!" << endl;
cout
<< "Hola Mundo!" << endl;
Hola Mundo!
_
_
endl end line
Fundamentos de la programación: Primeros pasos Página 21
23. Luis Hernández Yáñez
Pantalla en modo texto
En este primer curso, toda la salida se va a realizar en pantallas
en modo texto. Las interfaces gráficas se verán en 2º curso.
Líneas de 80 caracteres. Se pueden mostrar textos en ellas.
Aplicación con interfaz gráfica
Aplicación en modo texto
80 caracteres
Fundamentos de la programación: Primeros pasos Página 22
24. Luis Hernández Yáñez
Ventanas de consola o terminal
Sistema operativo: con interfaz gráfica de usuario (GUI).
Las aplicaciones en modo texto se ejecutan dentro de ventanas:
Windows: ventanas de consola (Símbolo del sistema).
Linux: ventanas de terminal.
H o l a M u n d o !
...
Cursor parpadeante: Donde se colocará el siguiente carácter.
...
Fundamentos de la programación: Primeros pasos Página 23
25. Luis Hernández Yáñez
El insertor <<
<< Envía info a un dispositivo de salida.
cout << ...;
Inserta textos en la pantalla de modo texto
La representación textual de los datos enviados
aparecerá en el dispositivo de salida,
a partir de la posición del cursor.
Si se llega al final de una línea se sigue al principio de la siguiente.
cout representa la ventana de consola/terminal.
Las operaciones de inserción se pueden encadenar:
cout << ... << ... << ...;
Se mostrarán todos los datos que haya a continuación de <<.
Las instrucciones terminan en ;.
Fundamentos de la programación: Primeros pasos Página 24
26. Luis Hernández Yáñez
El insertor <<
¿Qué podemos mostrar?
Cadenas de caracteres literales.
Textos encerrados entre comillas dobles: "..."
cout << "Hola Mundo!";
Se muestran los caracteres dentro de las comillas.
Números literales.
Con o sin decimales, con signo o no: 123, -37, 3.1416, ...
cout << "Pi = " << 3.1416;
Se muestran los caracteres que representan el número.
endl
El cursor pasa al principio de la siguiente línea.
Fundamentos de la programación: Primeros pasos Página 25
27. Luis Hernández Yáñez
El programa principal
La función main():
#include <iostream>
using namespace std;
int main() // main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl;
return 0;
}
Las instrucciones están dentro de funciones.
main() es donde comienza la ejecución.
Fundamentos de la programación: Primeros pasos Página 26
28. Luis Hernández Yáñez
El programa principal
La función main():
Tipo de la función (int = entero): Tipo de valor que devuelve.
int main()
{
Nombre de la función.
return 0;
}
Cuerpo de la función (bloque de código).
¡Es una función!
return 0; Devuelve el resultado (0) de la función.
Fundamentos de la programación: Primeros pasos Página 27
29. Luis Hernández Yáñez
Documentando el código
Los comentarios (se ignoran durante la compilación):
#include <iostream>
using namespace std;
int main() // main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl;
return 0;
}
Hasta el final de la línea: // ...
De varias líneas: /* ...
... */
Fundamentos de la programación: Primeros pasos Página 28
30. Luis Hernández Yáñez
La infraestructura
C++ nos proporciona mucho código para reutilizar:
#include <iostream>
using namespace std;
Es una directiva: empieza por #
int main() // main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl;
return 0;
}
Bibliotecas de funciones a nuestra disposición.
Al incluirlas podemos usar lo que contienen.
Fundamentos de la programación: Primeros pasos Página 29
31. Luis Hernández Yáñez
Bibliotecas
Se incluyen con la directiva #include:
#include <biblioteca>
#include <iostream>
Biblioteca iostream: utilidades de entrada/salida por consola.
Donde, por ejemplo, está declarado cout o se encuentra
el código del insertor.
Cualquier programa que quiera mostrar en la pantalla (consola)
o leer datos del usuario, debe incluir la biblioteca iostream.
Fundamentos de la programación: Primeros pasos Página 30
32. Luis Hernández Yáñez
Espacios de nombres
Si hay espacios de nombres en la biblioteca hay que elegir uno:
#include <iostream>
using namespace std;
Es una instrucción: termina en ;
int main() // main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl;
return 0;
}
Siempre vamos a usar el espacio de nombres estándar (std).
Muchas bibliotecas no crean espacios de nombres.
Fundamentos de la programación: Primeros pasos Página 31
33. Luis Hernández Yáñez
Compilación y enlace
Página 32
hola.cpp
(código fuente)
Compilador hola.obj
(código objeto)
Enlazador
hola.exe
(ejecutable)
Código objeto de
la biblioteca iostream
Hola Mundo!
Cargador
A menudo el compilador y el enlazador están integrados.
Fundamentos de la programación: Primeros pasos
34. Luis Hernández Yáñez
Elementos del programa
#include <iostream>
using namespace std;
int main()
{
Cabecera de la función
Variable
cout << "Hola Mundo!" << endl;
return 0;
}
Página 33
Las instrucciones terminan en ;
Directiva
Instrucción
Declaración
Instrucción
Instrucción
Fundamentos de la programación: Primeros pasos
Biblioteca
Espacio de nombres
Tipo Palabras reservadas
Datos literales
Cuerpo de la función
Bloque de código
Cadena de caracteres Constante
Operador Operador
Número
Coloreado sintáctico:
Directivas Tipos
Palabras reservadas generales
Datos literales Comentarios
35. Luis Hernández Yáñez
Uso de espacio en blanco
Los elementos del lenguaje se pueden separar por uno o más espacios en blanco
(espacios, tabuladores y saltos de línea).
El compilador los ignora. Deben usarse para mejorar la legibilidad.
También deben usarse comentarios para aclarar aspectos del código.
Página 34
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
return 0;
}
#include <iostream> using namespace std;
int main(){cout<<"Hola Mundo!"<<endl;
return 0;}
¿Cuál se lee mejor?
Fundamentos de la programación: Primeros pasos
37. Luis Hernández Yáñez
Programa con E/S por consola
Una plantilla para empezar:
#include <iostream>
using namespace std;
int main()
{
return 0;
}
¡Tu código aquí!
Fundamentos de la programación: Primeros pasos Página 36
38. Luis Hernández Yáñez
... recitado en la consola
Mostrar los textos con cout <<:
#include <iostream>
using namespace std;
int main()
{
cout << "En un lugar de la Mancha," << endl;
cout << "de cuyo nombre no quiero acordarme," << endl;
cout << "no ha mucho tiempo que vivía un hidalgo de los de
lanza en astillero, ..." << endl;
return 0;
}
Fundamentos de la programación: Primeros pasos Página 37
39. Luis Hernández Yáñez
Introducción del código del programa
Terminamos cada línea de código con un salto de línea (↲):
#include <iostream> ↲
using namespace std; ↲
↲
int main() ↲
{↲
cout << "En un lugar de la Mancha," << endl; ↲
cout << "de cuyo nombre no quiero acordarme," << endl; ↲
cout << "no ha mucho tiempo que vivía un hidalgo de los de
lanza en astillero, ..." << endl; ↲
return 0; ↲
} ↲
Fundamentos de la programación: Primeros pasos Página 38
40. Luis Hernández Yáñez
Introducción del código del programa
No hay que partir una cadena literal entre dos líneas:
cout << "no ha mucho tiempo que vivía un hidalgo de los de
lanza en astillero, ..." << endl; ↲
Si se llega al final de la línea en el editor, se deja que continúe
en la siguiente.
Sólo se pulsa Intro (↲) al terminar cada instrucción.
cout << "no ha mucho tiempo que vivía un hidalgo de los ↲
de lanza en astillero, ..." << endl; ↲
Errores:
La cadena no termina (1ª línea); no se entiende de (2ª línea).
Fundamentos de la programación: Primeros pasos Página 39
41. Luis Hernández Yáñez
Notepad++ y G++
D:FPTema2quijote.cpp
Fundamentos de la programación: Primeros pasos Página 40
42. Luis Hernández Yáñez
Mantenimiento y reusabilidad
El código debe ser lo más legible posible.
Usar espacio en blanco para separar elementos del código:
cout << "En un lugar de la Mancha," << endl;
mejor que
cout<<"En un lugar de la Mancha,"<<endl;
Usar sangría (indentación) para el código de un bloque:
{
cout << "En un lugar de la Mancha," << endl;
...
return 0;
}
Tab / 2 ó 3
espacios
Cuanto más legible, más fácil de mantener y reutilizar.
¡El estilo importa!
Fundamentos de la programación: Primeros pasos Página 41
44. Luis Hernández Yáñez
Operadores aritméticos
En los programas podemos realizar operaciones aritméticas.
Para cada operación utilizamos un símbolo concreto:
+ Suma
- Resta
* Multiplicación
/ División
Los cuatro son operadores binarios:
operando_izquierdo operador operando_derecho
Por ejemplo:
3 + 4 Resultado: 7
2.56 – 3 Resultado: -0.44
143 * 2 Resultado: 286
45.45 / 3 Resultado: 15.15
Fundamentos de la programación: Primeros pasos Página 43
45. Luis Hernández Yáñez
Cómo escribir operandos numéricos
Las cantidades pueden ser:
Valores literales
Enteras: sin parte decimal
Reales: con parte decimal
Cantidades enteras (sin decimales):
Signo negativo (opcional) seguido de una secuencia de dígitos.
3 143 -12 67321 -1234
No se usan puntos de millares
Cantidades reales (con decimales):
Signo negativo (opcional) seguido de una secuencia de dígitos,
un punto decimal y otra secuencia de dígitos.
3.1416 357.5 -1.333 2345.6789 -404.1
Punto decimal (3.1415), NO coma decimal (3,1415)
Fundamentos de la programación: Primeros pasos Página 44
48. Luis Hernández Yáñez
¿División entera o división real?
El operador división (/) hace una división entera
(despreciando los decimales) si ambos operandos son enteros
y hace una división real (con decimales) si alguno es real.
500 / 3 Resultado: 166
500.0 / 3 Resultado: 166.667
500 / 3.0 Resultado: 166.667
500.0 / 3.0 Resultado: 166.667
Hay que usar algún operando real siempre que se quiera que
la división sea una división real.
Comprueba siempre si la división que se va a realizar es la que quieres.
Fundamentos de la programación: Primeros pasos Página 47
50. Luis Hernández Yáñez
Datos que se mantienen en memoria
Una variable es un dato que se accede por medio de un nombre.
Un valor literal es un valor concreto que se escribe tal cual.
Una variable puede cambiar de valor siempre que se quiera.
edad = 19; // edad es una variable y 19 es un literal
Las variables deben ser declaradas antes de poder utilizarlas.
Cuando se declaran se reserva espacio suficiente en memoria
para el dato que se quiere almacenar.
¿Qué tipo de dato queremos mantener?
Un valor numérico sin decimales (entero): int
Un valor numérico con decimales (real): double
Declaración: tipo nombre;
Fundamentos de la programación: Primeros pasos Página 49
51. Luis Hernández Yáñez
Declaración
Al declarar una variable establecemos el tipo de dato que puede
contener y el nombre que usaremos para acceder a ese dato.
int cantidad;
double precio;
Para cada variable se reserva espacio
suficiente en memoria para el tipo de valor.
Unos tipos de datos requieren más bytes que otros.
LAS VARIABLES NO SE INICIALIZAN
No se deben usar hasta que se les haya dado algún valor.
¿Dónde colocamos las declaraciones?
Siempre, antes del primer uso.
Normalmente, al principio de la función.
Memoria
cantidad ?
precio ?
Fundamentos de la programación: Primeros pasos Página 50
...
52. Luis Hernández Yáñez
Declaración
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
return 0;
}
Memoria
cantidad ?
precio ?
total ?
Fundamentos de la programación: Primeros pasos Página 51
...
Podemos declarar varias del mismo tipo
separando los nombres con comas.
53. Luis Hernández Yáñez
Capacidad de las variables
¿Qué valores podemos guardar en una variable int?
Cualquier entero entre -2.147.483.648 y 2.147.483.647.
Intervalo de valores del tipo int: -2147483648 .. 2147483647
¿Y en una variable double?
Números reales entre 2,23 x 10-308 y 1,79 x 10+308
y sus negativos -2,23 x 10-308 y -1,79 x 10+308
Intervalo de valores del tipo double:
+/- 2.23e-308 .. 1.79e+308
Con los números reales podemos experimentar
problemas de precisión.
Notación científica en C++
Fundamentos de la programación: Primeros pasos Página 52
54. Luis Hernández Yáñez
Asignación de valores a las variables (operador =)
Instrucciones de asignación:
variable = expresión;
Instrucción: termina en ;
Se evalúa la expresión y se asigna el resultado a la variable:
cantidad = 12;
precio = 39.95;
total = cantidad * precio; // Toma el valor 479.4
Piensa en el = como en :
cantidad 12
La variable recibe el valor 12.
Ese valor se guarda en la memoria de la variable.
¡¡¡A la izquierda del = debe ir siempre una variable!!!
Fundamentos de la programación: Primeros pasos Página 53
56. Luis Hernández Yáñez
Expresiones
Secuencias de operandos y operadores:
operando operador operando operador operando ...
Las expresiones se evalúan de izquierda a derecha.
Podemos usar paréntesis para forzar que se realicen unas
operaciones antes que otras:
total = cantidad * precio * 1.18; // +18% de IVA
total = (cantidad1 + cantidad2) * precio;
(Suponiendo que se han declarado las variables cantidad1 y
cantidad2.)
Con el nombre de una variable accedemos a su valor.
Unos operadores se evalúan antes que otros.
Fundamentos de la programación: Primeros pasos Página 55
57. Luis Hernández Yáñez
Precedencia de los operadores
cantidad1 = 10;
cantidad2 = 2;
precio = 40.0;
* y / tienen mayor precedencia que + y - (se evalúan antes).
total = cantidad1 + cantidad2 * precio;
Se evalúa antes * que + 10 + 2 * 40,0 10 + 80,0 90,0
Los paréntesis fuerzan a que se evalúe su contenido primero:
total = (cantidad1 + cantidad2) * precio;
Se evalúa antes + que * (10 + 2) * 40,0 12 * 40,0 480,0
Hay que tener cuidado al escribir las expresiones,
de forma que el cálculo sea exactamente el que se requiere.
Fundamentos de la programación: Primeros pasos Página 56
58. Luis Hernández Yáñez
Ejemplo de uso de variables y expresiones
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
cantidad = 12;
precio = 39.95;
total = cantidad * precio;
cout << cantidad << " x " << precio << " = "
<< total << endl;
return 0;
}
variables.cpp
Fundamentos de la programación: Primeros pasos Página 57
59. Luis Hernández Yáñez
Ejemplo de uso de variables
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
Memoria
cantidad ?
precio ?
total ?
Fundamentos de la programación: Primeros pasos Página 58
...
60. Luis Hernández Yáñez
Ejemplo de uso de variables
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
cantidad = 12;
Memoria
cantidad 12
precio ?
total ?
Fundamentos de la programación: Primeros pasos Página 59
...
61. Luis Hernández Yáñez
Ejemplo de uso de variables
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
cantidad = 12;
precio = 39.95;
Memoria
cantidad 12
precio 39.95
total ?
Fundamentos de la programación: Primeros pasos Página 60
...
62. Luis Hernández Yáñez
Ejemplo de uso de variables
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
cantidad = 12;
precio = 39.95;
total = cantidad * precio;
Memoria
cantidad 12
precio 39.95
total 479.4
Fundamentos de la programación: Primeros pasos Página 61
...
63. Luis Hernández Yáñez
Ejemplo de uso de variables
#include <iostream>
using namespace std;
int main()
{
cantidad 12
precio 39.95
total 479.4
int cantidad;
double precio, total;
cantidad = 12;
precio = 39.95;
total = cantidad * precio;
cout << cantidad << " x " << precio << " = "
<< total << endl;
Memoria
Fundamentos de la programación: Primeros pasos Página 62
...
64. Luis Hernández Yáñez
Ejemplo de uso de variables
#include <iostream>
using namespace std;
int main()
{
int cantidad;
double precio, total;
cantidad = 12;
precio = 39.95;
total = cantidad * precio;
cout << cantidad << " x " << precio << " = "
<< total << endl;
return 0;
}
Fundamentos de la programación: Primeros pasos Página 63
66. Luis Hernández Yáñez
cin
Lectura de valores para las variables:
character input stream
cin >> cantidad;
cin
>> cantidad;
_
Memoria
cantidad ?
Fundamentos de la programación: Primeros pasos Página 65
...
_
12
1 2 ↲
1 2_ _
67. Luis Hernández Yáñez
El extractor >>
>> Lee datos de un dispositivo de entrada.
cin >> var;
Transforma los caracteres introducidos por el usuario en datos
A medida que el usuario pulsa teclas, se muestra su carácter
correspondiente en la pantalla, en la posición del cursor,
avanzando éste a la siguiente posición.
La entrada termina con la tecla Intro (el cursor para a la siguiente línea).
El operando derecho del extractor debe ser SIEMPRE una variable.
cin representa el teclado (declarada en la biblioteca iostream).
Las operaciones de extracción se pueden encadenar:
cin >> var1 >> var2 >> var3;
Se leerán los datos de todas esas variables.
Fundamentos de la programación: Primeros pasos Página 66
68. Luis Hernández Yáñez
El extractor >>
¿Cómo se leen los distintos tipos de datos?
Valores enteros (int):
Se leen dígitos hasta encontrar un carácter que no lo sea.
cin >> cantidad;
Si se teclean los siguientes caracteres:
12abc↲
Se leen sólo los dos primeros caracteres, asignando el valor
12 a la variable cantidad, y el resto de los caracteres quedan
pendientes para la siguiente operación de extracción.
Es recomendable leer cada dato en una línea:
12↲
La tecla Intro termina la entrada.
Fundamentos de la programación: Primeros pasos Página 67
69. Luis Hernández Yáñez
El extractor >>
¿Cómo se leen los distintos tipos de datos?
Valores reales (double):
Se leen dígitos/punto hasta encontrar un carácter que no lo
sea o no se pueda interpretar lo leído como un número real.
cin >> precio;
Si se teclean los siguientes caracteres:
39.95.5abc↲
Se leen sólo los cinco primeros caracteres, asignando el valor
39,95 a la variable precio, y el resto de los caracteres
quedan pendientes para la siguiente operación de extracción.
Es recomendable leer cada dato en una línea:
39.95↲
Fundamentos de la programación: Primeros pasos Página 68
70. Luis Hernández Yáñez
El extractor >>
¿Qué pasa si el usuario se equivoca?
La lectura no será correcta... y eso puede hacer que
el programa no funcione como debe.
Una aplicación profesional dispondría de código
de comprobación de las entradas por teclado, ayudando
al usuario a corregir sus errores de tecleo.
En esta asignatura supondremos que los usuarios no se
equivocan al teclear.
En ocasiones añadiremos código de comprobación sencillo.
Para evitar errores, lee cada dato en una instrucción aparte.
Fundamentos de la programación: Primeros pasos Página 69
71. Luis Hernández Yáñez
El extractor >>
¿Qué pasa si el usuario se equivoca?
int cantidad;
double precio, total;
cout << "Introduce la cantidad: ";
cin >> cantidad;
cout << "Introduce el precio: ";
cin >> precio;
cout << "Cantidad: " << cantidad << endl;
cout << "Precio: " << precio << endl;
Indica al usuario qué es lo que
se le pide que introduzca cada vez.
No se puede leer un entero 0 para cantidad y Error
La lectura del precio falla: precio no toma valor (basura)
La ejecución del programa sigue de forma anómala.
Fundamentos de la programación: Primeros pasos Página 70
72. Luis Hernández Yáñez
El extractor >>
¿Qué pasa si el usuario se equivoca?
int cantidad;
double precio, total;
cout << "Introduce la cantidad: ";
cin >> cantidad;
cout << "Introduce el precio: ";
cin >> precio;
cout << "Cantidad: " << cantidad << endl;
cout << "Precio: " << precio << endl;
Se leen dos dígitos 12 para cantidad
No se puede leer un real 0 para precio y Error
La ejecución del programa sigue de forma anómala.
Fundamentos de la programación: Primeros pasos Página 71
73. Luis Hernández Yáñez
El extractor >>
¿Qué pasa si el usuario se equivoca?
int cantidad;
double precio, total;
cout << "Introduce la cantidad: ";
cin >> cantidad;
cout << "Introduce el precio: ";
cin >> precio;
cout << "Cantidad: " << cantidad << endl;
cout << "Precio: " << precio << endl;
Se leen dos dígitos 12 para cantidad
Se lee .5 0,5 para precio y lo demás queda pendiente
Fundamentos de la programación: Primeros pasos Página 72
74. Luis Hernández Yáñez
El extractor >>
¿Qué pasa si el usuario se equivoca?
int cantidad;
double precio, total;
cout << "Introduce la cantidad: ";
cin >> cantidad;
cout << "Introduce el precio: ";
cin >> precio;
cout << "Cantidad: " << cantidad << endl;
cout << "Precio: " << precio << endl;
¡¡¡Lectura correcta!!!
Fundamentos de la programación: Primeros pasos Página 73
75. Luis Hernández Yáñez
División de dos números:
Pedir al usuario dos números y mostrarle el resultado de dividir el primero
entre el segundo.
Análisis del problema y solución propuesta.-
1. Pedir el numerador
2. Pedir el denominador
3. Realizar la división, guardando el resultado
4. Mostrar el resultado
Datos / cálculos
Variable numerador (double)
Variable denominador (double)
Variable resultado (double)
resultado = numerador / denominador
Fundamentos de la programación: Primeros pasos Página 74
76. Luis Hernández Yáñez
Entrada-Proceso-Salida
Muchos programas se ajustan a un sencillo esquema:
Declaraciones Entrada Procesamiento Salida
1. Leer numerador
2. Leer denominador
3. Calcular división en resultado
4. Mostrar resultado
Fundamentos de la programación: Primeros pasos Página 75
77. Luis Hernández Yáñez
División de dos números
Pedir al usuario dos números y mostrarle el resultado de dividir el primero
entre el segundo.
1. Leer numerador
2. Leer denominador
cin >> numerador;
cin >> denominador;
3. Calcular división en resultado
4. Mostrar resultado
resultado = numerador / denominador;
cout << resultado;
Fundamentos de la programación: Primeros pasos Página 76
78. Luis Hernández Yáñez
division.cpp
División de dos números
Pedir al usuario dos números y mostrarle el resultado de dividir el primero
entre el segundo.
Declaraciones
Entrada
Procesamiento
Salida
#include <iostream>
using namespace std;
int main()
{
double numerador, denominador, resultado;
cout << "Numerador: "; cin >> numerador;
cout << "Denominador: "; cin >> denominador;
resultado = numerador / denominador;
cout << "Resultado: " << resultado << endl;
return 0;
}
Fundamentos de la programación: Primeros pasos Página 77
Se pueden
declarar varias
variables de un
mismo tipo
separándolas
con comas.
79. Luis Hernández Yáñez
División de dos números
Pedir al usuario dos números y mostrarle el resultado de dividir el primero
entre el segundo.
#include <iostream>
using namespace std;
int main()
{
double numerador, denominador, resultado;
cout << "Numerador: "; cin >> numerador;
cout << "Denominador: "; cin >> denominador;
resultado = numerador / denominador;
cout << "Resultado: " << resultado << endl;
return 0;
}
Numerador: _129
_
Denominador: 2
_Resultado: 64.5
_
Fundamentos de la programación: Primeros pasos Página 78
81. Luis Hernández Yáñez
Problema
Dadas la base y la altura de un triángulo, calcular el área del triángulo.
El comportamiento deseado
Explicación detallada de lo que queremos que haga el programa:
Mostrar en la pantalla un texto que pida la base del triángulo. El usuario
introducirá el valor con el teclado. Mostrar en la pantalla un texto que pida la
altura del triángulo. El usuario introducirá el valor con el teclado. Se calculará el
área del triángulo y se mostrará en la pantalla.
Comenzaremos identificando los objetos que maneja el programa,
fijándonos en los sustantivos; nos indicarán los datos a manejar.
Luego nos fijaremos en las acciones (verbos);
nos indicarán las operaciones a realizar.
Fundamentos de la programación: Primeros pasos Página 80
82. Luis Hernández Yáñez
Datos que maneja el programa
Mostrar en la pantalla un texto que pida la base del triángulo. El usuario
introducirá la base con el teclado. Mostrar en la pantalla un texto que pida la
altura del triángulo. El usuario introducirá la altura con el teclado. Se calculará
el área del triángulo y se mostrará en la pantalla.
El usuario no es un dato que maneje el programa: es quien maneja
el programa. Por eso no lo tenemos en cuenta.
— pantalla: ya sabemos que se corresponde con cout.
— texto que pida la base del triángulo: una cadena de caracteres literal como
"Introduzca la base del triángulo: ".
— base: un número variable que debe recoger el valor introducido por el
usuario. Ha de indicarse cuál es su tipo: por ejemplo, double.
— teclado: ya sabemos que se corresponde con cin.
. . .
— área del triángulo: otro número variable que debe recoger el resultado.
Ha de indicarse cuál es su tipo: por ejemplo, double.
Fundamentos de la programación: Primeros pasos Página 81
83. Luis Hernández Yáñez
Datos que maneja el programa: tipos
Cada dato es de un determinado tipo, puede ser constante o variar, y si
varía ha de tener un nombre (estándar o elegido por nosotros):
Objeto Tipo ¿Varía? Nombre
Pantalla Variable cout
"Introduzca la base del triángulo: " Constante ninguno
Base del triángulo double Variable base
Teclado Variable cin
"Introduzca la altura del triángulo: " Constante ninguno
Altura del triángulo double Variable altura
Área del triángulo double Variable area
Se han obviado los tipos de los objetos del sistema y los literales.
Los valores literales son constantes, no se pueden cambiar.
Para que un dato pueda variar se necesita una variable con nombre.
Fundamentos de la programación: Primeros pasos Página 82
84. Luis Hernández Yáñez
Operaciones (acciones)
Mostrar en la pantalla un texto que pida la base del triángulo. El usuario
introducirá la base con el teclado. Mostrar en la pantalla un texto que
pida la altura del triángulo. El usuario introducirá la altura con el
teclado. Se calculará el área del triángulo y se mostrará en la pantalla.
Las operaciones se realizan por medio de operadores:
— mostrar en la pantalla: se envía algo a la pantalla con el insertor <<.
cout << …
— introducir por el teclado: se lee algo del teclado con el extractor >>.
cin >> …
— calcular el área del triángulo: área = base por altura entre dos
area = base * altura / 2
Fundamentos de la programación: Primeros pasos Página 83
86. Luis Hernández Yáñez
Algoritmo
Secuencia de acciones que ha de realizar el programa
para conseguir resolver el problema:
1. Mostrar en la pantalla el texto que pida la base del triángulo.
2. Leer del teclado el valor para la base del triángulo.
3. Mostrar en la pantalla el texto que pida la altura del triángulo.
4. Leer del teclado el valor para la altura del triángulo.
5. Calcular el área del triángulo.
6. Mostrar el área del triángulo.
Fundamentos de la programación: Primeros pasos Página 85
87. Luis Hernández Yáñez
El programa como transformador de entrada en salida
Programa
Datos
de entrada
Datos
de salida
El estado inicial viene dado por los datos de entrada
y el estado final por los datos de salida:
Algoritmo
Estado
inicial
Estado
final
Fundamentos de la programación: Primeros pasos Página 86
89. Luis Hernández Yáñez
El programa
...
int main()
{
Declaraciones
Algoritmo
traducido
a código
en C++
return 0;
}
1. Mostrar en la pantalla el texto que pida la base del triángulo.
2. Leer del teclado el valor para la base del triángulo.
3. Mostrar en la pantalla el texto que pida la altura del triángulo.
4. Leer del teclado el valor para la altura del triángulo.
5. Calcular el área del triángulo.
6. Mostrar el área del triángulo.
Fundamentos de la programación: Primeros pasos Página 88
90. Luis Hernández Yáñez
El programa: implementación
#include <iostream>
using namespace std;
int main()
{
triangulo.cpp
Las instrucciones terminan en ;
double base, altura, area; // 1. Declarar...
cout << "Introduzca la base del triángulo: "; // 2. Mostrar ...
cin >> base; // 3. Leer del...
cout << "Introduzca la altura del triángulo: "; // 4. Mostrar ...
cin >> altura; // 5. Leer del...
area = base * altura / 2; // 6. Calcular...
cout << "El área de un triángulo de base " << base << " y altura "
<< altura << " es: " << area << endl; // 7. Mostrar...
return 0;
}
Fundamentos de la programación: Primeros pasos Página 89
91. Luis Hernández Yáñez
Ejecución
#include <iostream>
using namespace std;
int main()
{
¿¿¿triβngulo???
Problemas con
los juegos de
double base, altura, area;
cout << "Introduzca la base del triángulo: ";
cin >> base;
cout << "Introduzca la altura del triángulo: ";
cin >> altura;
area = base * altura / 2;
cout << "El área de un triángulo de base " << base << " y altura "
<< altura << " es: " << area << endl;
return 0;
}
caracteres
Fundamentos de la programación: Primeros pasos Página 90
93. Luis Hernández Yáñez
Variabilidad de los datos
Datos
Constantes
"Introduzca la base del triángulo: "
3.141592653589
Literales
Con nombre
Variables
base, altura, area
Pi = 3.141592653589
Identificadores
Fundamentos de la programación: Primeros pasos Página 92
95. Luis Hernández Yáñez
Identificadores Distintos de las palabras reservadas del lenguaje
Las variables y las constantes con nombre tienen un identificador
asociado que se usa para obtener su valor
(o para modificar su valor, en el caso de las variables).
— Un identificador es el nombre de un dato concreto.
— Se debe usar nombres descriptivos (autoexplicativos).
Sintaxis de los identificadores:
Al menos
32 caracteres
significativos
(longitud mínima
para diferenciar
dos nombres).
0..9, a..z, A..Z, _
a..z, A..Z, _
¡No se admiten ni eñes ni vocales acentuadas!
No pueden repetirse identificadores en un mismo ámbito (bloque).
Fundamentos de la programación: Primeros pasos Página 94
96. Luis Hernández Yáñez
Palabras reservadas del lenguaje C++
asm auto bool break case catch char class const
const_cast continue default delete do double
dynamic_cast else enum explicit extern false
float for friend goto if inline int long
mutable namespace new operator 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 while
Fundamentos de la programación: Primeros pasos Página 95
97. Luis Hernández Yáñez
¿Qué identificadores son válidos y cuáles no?
balance interesAnual
_base_imponible años
EDAD12 salario_1_mes
__edad cálculoNómina
valor%100 AlgunValor
100caracteres valor?
_12_meses ____valor
Fundamentos de la programación: Primeros pasos Página 96
99. Luis Hernández Yáñez
Tipos
Cada dato del programa es de un tipo concreto.
Cada tipo establece:
— El conjunto (intervalo) de valores válidos.
true
3.14159
"Hola"
Las variables del tipo tomarán uno de esos valores cada vez.
125
'a'
— El conjunto de operaciones que se pueden realizar sobre los valores
del tipo. Los operadores que se pueden aplicar en las expresiones.
En las expresiones con datos de distintos tipos compatibles
se llevan a cabo transformaciones automáticas de tipos
(promoción de tipo).
Para consultar los detalles técnicos de los tipos de datos,
accede al Anexo de este Tema 2 que también se ha publicado.
Fundamentos de la programación: Primeros pasos Página 98
100. Luis Hernández Yáñez
Tipos de datos básicos
— int: para números enteros (sin parte decimal).
1363, -12, 49
— float: para números reales (con parte –punto– decimal).
12.45, -3.1932, 1.16E+02
— double: para números reales; mayores intervalo y precisión.
(Usaremos habitualmente el tipo double para los números reales.)
— char: para caracteres.
'a' , '{', 't'
— bool: para valores lógicos (verdadero/falso, sí/no).
true, false
— string: para cadenas de caracteres.
"Hola Mundo!"
(Requiere incluir la biblioteca string con espacio de nombres std.)
— void: nada, ausencia de tipo, ausencia de dato (funciones).
Fundamentos de la programación: Primeros pasos Página 99
101. Luis Hernández Yáñez
char Caracteres
Intervalo de valores: Juego de caracteres (ASCII)
Literales:
'a', '%', 't'
Constantes de barra invertida (o secuencias de escape):
Caracteres de control.
't' = tabulador, 'n' = salto de línea, …
Juego de caracteres:
ASCII (códigos 32..127)
ISO-8859-1
1 byte
(ASCII extendido: códigos 128..255)
Fundamentos de la programación: Primeros pasos Página 100
102. Luis Hernández Yáñez
bool Valores lógicos
Sólo dos valores posibles:
— Verdadero (true)
— Falso (false)
Literales:
true, false
En realidad, cualquier número distinto de 0 es equivalente a true
y el número 0 es equivalente a false.
Fundamentos de la programación: Primeros pasos Página 101
103. Luis Hernández Yáñez
string Cadenas de caracteres
"Hola", "Introduce el numerador: ", "X142FG5TX?%A"
" char "
Son secuencias de caracteres.
Se asigna la memoria que se necesita para la secuencia concreta.
Requieren incluir la biblioteca string con el espacio de nombres std:
#include <string>
using namespace std;
¡Ojo!
Las comillas tipográficas (apertura/cierre) “…” te darán problemas
al compilar. Asegúrate de utilizar comillas rectas: "…"
Fundamentos de la programación: Primeros pasos Página 102
104. Luis Hernández Yáñez
Recuerda: C++ distingue entre mayúsculas y minúsculas
int es la palabra reservada de C++ que permite declarar
datos enteros.
Int, INT o inT no son palabras reservadas de C++.
true es la palabra reservada de C++ que representa
el valor lógico verdadero.
True o TRUE no son palabras reservadas de C++.
Fundamentos de la programación: Primeros pasos Página 103
105. Luis Hernández Yáñez
Ejemplo de tipos de datos
tipos.cpp
#include <iostream>
#include <string>
using namespace std; // Un solo using... para las dos bibliotecas
int main()
{
int entero = 3; // Podemos asignar (inicializar) al declarar
double real = 2.153;
char caracter = 'a';
bool cierto = true;
string cadena = "Hola";
cout << "Entero: " << entero << endl;
cout << "Real: " << real << endl;
cout << "Caracter: " << caracter << endl;
cout << "Booleano: " << cierto << endl;
cout << "Cadena: " << cadena << endl;
return 0;
Fundamentos de la programación: Primeros pasos Página 104
}
¿Cuántos números hay en total en el programa?
¿Y caracteres? ¿Y cadenas? ¿Y booleanos?
106. Luis Hernández Yáñez
Modificadores de tipos
Permiten modificar el significado de los tipos base.
— signed / unsigned : con signo (por defecto) / sin signo.
— short / long : reduce/amplía el intervalo de valores posibles.
Tipo Intervalo
int -2147483648 .. 2147483647
unsigned int 0 .. 4294967295
short int -32768 .. 32768
unsigned short int 0 .. 65535
long int -2147483648 .. 2147483647
unsigned long int 0 .. 4294967295
double +/- 2.23e-308 .. 1.79e+308
long double +/- 3.37E-4932 .. 1.18E+4932
Fundamentos de la programación: Primeros pasos Página 105
108. Luis Hernández Yáñez
Declaración de variables
[modificadores] tipo lista_de_variables;
[ … ] indica que eso es opcional.
lista_de_variables
Identificador
int i, j, l;
short int unidades;
unsigned short int monedas;
double balance, beneficio, perdida;
Termina en ;
,
Programación con buen estilo:
Utiliza identificadores descriptivos. Un espacio tras cada coma.
Los nombres de las variables, en minúsculas.
Si se compone de varias palabras, capitaliza cada inicial
de las sucesivas palabras (balanceAnual, interesPorMes).
Fundamentos de la programación: Primeros pasos Página 107
109. Luis Hernández Yáñez
Datos y memoria
Cuando se declara una variable se le reserva suficiente memoria.
int inicio;
short int unidades;
double balance;
Al explicar la ejecución
de los programas
no distinguiremos
entre los tamaños de
las distintas variables.
Memoria
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
. . .
inicio
unidades
balance
Fundamentos de la programación: Primeros pasos Página 108
110. Luis Hernández Yáñez
Inicialización de variables
¡En C++ las variables no toman automáticamente un valor inicial!
Al declarar una variable, ésta toma un valor desconocido
que no es válido y no debe ser utilizado.
¡Toda variable debe ser inicializada antes de ser accedida por primera vez!
¿Cómo se inicializa una variable?
Error común de programación:
Acceder a variables no inicializadas.
— Al declararla
— Al leer su valor (cin >>)
— Al asignarle un valor (instrucción de asignación)
Inicialización en la propia declaración, a continuación del identificador:
El resultado de la expresión
debe ser un valor compatible.
… Identificador = Expresión
En particular, una expresión
puede ser un literal
int i = 0, j, l = 26;
short int unidades = 100;
Fundamentos de la programación: Primeros pasos Página 109
111. Luis Hernández Yáñez
Uso de las variables
Obtención del valor de la variable:
Aparición del nombre de la variable en una expresión.
cout << balance;
cout << interesPorMes * meses / 100;
Modificación del valor de la variable:
Aparición del nombre de la variable a la izquierda
del operador de asignación (=).
balance = 1214;
porcentaje = valor / 30;
Toda variable ha de haber sido previamente declarada
en el ámbito del código (función) en el que se utiliza.
Fundamentos de la programación: Primeros pasos Página 110
113. Luis Hernández Yáñez
Declaración de constantes Modificador de acceso const
Declaramos variables inicializadas a las que no dejamos variar:
Declaración de variable con inicializador
Un nombre de constante no puede
aparecer a la izquierda del =
en una asignación,
más allá de en su declaración.
const
const short int Meses = 12;
const double Pi = 3.141592,
RATIO = 2.179 * Pi;
Programación con buen estilo:
Pon en mayúscula la primera letra de una constante o todo su nombre.
Fundamentos de la programación: Primeros pasos Página 112
114. Luis Hernández Yáñez
¿Por qué utilizar constantes con nombre?
Aumentan la legibilidad del código:
cambioPoblacion = (0.1758 - 0.1257) * poblacion; versus
cambioPoblacion = (RatioNacimientos – RatioMuertes) * poblacion;
Facilitan la modificación del código:
...
double compra1 = bruto1 * 16 / 100;
double compra2 = bruto2 * 16 / 100;
double total = compra1 + compra2;
cout << total << " (IVA: " << 16 << "%)" << endl;
3 cambios
¿Cambio del IVA al 18%?
...
const int IVA = 16;
double compra1 = bruto1 * IVA / 100;
double compra2 = bruto2 * IVA / 100;
double total = compra1 + compra2;
cout << total << " (IVA: " << IVA << "%)" << endl;
1 cambio
Fundamentos de la programación: Primeros pasos Página 113
115. Luis Hernández Yáñez
Ejemplo de uso de constantes
constantes.cpp
#include <iostream>
using namespace std;
int main()
{
const double Pi = 3.141592;
double radio = 12.2, circunferencia;
circunferencia = 2 * Pi * radio;
cout << "Circunferencia de un circulo de radio "
<< radio << ": " << circunferencia << endl;
const double Euler = 2.718281828459; // Número e
cout << "Numero e al cuadrado: " << Euler * Euler << endl;
const int IVA = 18;
int cantidad = 12;
double precio = 39.95, neto, porIVA, total;
neto = cantidad * precio;
porIVA = neto * IVA / 100;
total = neto + porIVA;
cout << "Total compra: " << total << endl;
return 0;
Fundamentos de la programación: Primeros pasos Página 114
}
117. Luis Hernández Yáñez
Operaciones sobre valores de los tipos
Las operaciones que se pueden realizar sobre valores de
un determinado tipo vienen dadas por los operadores definidos
para ese tipo de datos.
Tipos de datos numéricos (int, float y double, con sus variantes):
— Asignación
— Operadores aritméticos
— Operadores relacionales
Tipo de datos bool:
— Asignación
— Operadores lógicos
Tipo de datos char:
— Asignación, ++/--
— Operadores relacionales
Fundamentos de la programación: Primeros pasos Página 116
118. Luis Hernández Yáñez
Operadores para tipos de datos numéricos
Operador Operandos Posición int float / double
- 1 (monario) Prefijo Cambio de signo
+ 2 (binario) Infijo Suma
- 2 (binario) Infijo Resta
* 2 (binario) Infijo Producto
/ 2 (binario) Infijo División entera División real
% 2 (binario) Infijo Módulo No aplicable
++ 1 (monario) Prefijo / postfijo Incremento
-- 1 (monario) Prefijo / postfijo Decremento
Operadores binarios: Operando_izquierdo Operador Operando_derecho
Operadores monarios:
Prefijo: Operador Operando
Postfijo: Operando Operador
a + b
-a --a ++a
a-- a++
Fundamentos de la programación: Primeros pasos Página 117
119. Luis Hernández Yáñez
Operadores monarios y operadores binarios
Operadores monarios (o unarios)
— El cambio de signo se puede aplicar a una variable, una constante
o una expresión entre paréntesis (en seguida hablamos de expresiones):
-saldo -RATIO -(3 * a – b)
— Los operadores de incremento y decremento sólo se aplican a variables:
++interes --meses j++
Operadores binarios
— Un operador binario se aplica entre un operando izquierdo y un operando
derecho. Los operandos pueden ser literales, constantes, variables o
expresiones:
2 + 3 a * RATIO -a + b 3 * a++
(a % b) * (c / d)
Fundamentos de la programación: Primeros pasos Página 118
120. Luis Hernández Yáñez
¿División entera o división real?
Si ambos operandos son enteros, / hace un división entera:
int i = 23, j = 2;
cout << i / j; // Muestra 11
Si alguno de los operandos es real, / hace una división real:
int i = 23;
double j = 2;
cout << i / j; // Muestra 11.5
Fundamentos de la programación: Primeros pasos Página 119
/
121. Luis Hernández Yáñez
Módulo (resto de la división entera)
Ambos operandos han de ser enteros:
int i = 23, j = 2;
cout << i % j; // Muestra 1
División entera:
No se obtienen decimales Queda un resto
Fundamentos de la programación: Primeros pasos Página 120
%
123 5
3 24
123 % 5
122. Luis Hernández Yáñez
Operadores de incremento y decremento
Se incrementa/decrementa el operando numérico en una unidad.
Forma prefija: Se incrementa/decrementa antes de acceder.
int i = 10, j;
j = ++i; // Se incrementa antes de copiar el valor de i en j
cout << i << " - " << j; // Muestra 11 - 11
Forma postfija: Se incrementa/decrementa después de acceder.
int i = 10, j;
j = i++; // Se incrementa después de copiar el valor de i en j
cout << i << " - " << j; // Muestra 11 – 10
Sólo se pueden aplicar sobre variables (modifican el operando).
Fundamentos de la programación: Primeros pasos Página 121
++/--
i=i+1;
j=i;
j=i;
i=i+1;
Programación con buen estilo:
Es preferible NO utilizar los operadores ++ y –
en expresiones con otros operandos/operadores.
123. Luis Hernández Yáñez
Ejemplo de uso de operadores
operadores.cpp
#include <iostream>
using namespace std;
int main()
{
int entero1 = 15, entero2 = 4;
double real1 = 15.0, real2 = 4.0;
cout << "Operaciones entre los numeros 15 y 4:" << endl;
cout << "Division entera (/): " << entero1 / entero2 << endl;
cout << "Resto de la division (%): " << entero1 % entero2 << endl;
cout << "Division real (/): " << real1 / real2 << endl;
(sigue)
Fundamentos de la programación: Primeros pasos Página 122
124. Luis Hernández Yáñez
Ejemplo de uso de operadores
cout << "Num = " << real1 << endl;
real1 = -real1;
cout << "Cambia de signo (-): " << real1 << endl;
real1 = -real1;
cout << "Vuelve a cambiar (-): " << real1 << endl;
cout << "Se incrementa antes (++ prefijo): " << ++real1 << endl;
cout << "Se muestra antes de incrementar (posfijo ++): "
<< real1++ << endl;
cout << "Ya incrementado: " << real1 << endl;
return 0;
Fundamentos de la programación: Primeros pasos Página 123
}
126. Luis Hernández Yáñez
Evaluación de expresiones
¿Cómo evaluamos una expresión como 3 + 5 * 2 / 2 – 1 ?
¿En qué orden se aplican los distintos operadores?
¿De izquierda a derecha?
¿De derecha a izquierda?
¿Unos operadores antes que otros?
Resolución de ambigüedades:
— Precedencia de los operadores (prioridad):
Unos operadores se han de evaluar antes que otros (mayor precedencia).
— Asociatividad de los operadores (orden a igual prioridad):
Los operadores de igual prioridad se evalúan de izquierda a derecha
o de derecha a izquierda de acuerdo con su asociatividad.
Paréntesis: rompen la precedencia y asociatividad
Siempre se evalúan en primer lugar las subexpresiones parentizadas.
Fundamentos de la programación: Primeros pasos Página 125
127. Luis Hernández Yáñez
Precedencia y asociatividad de los operadores
Precedencia Operadores Asociatividad
Mayor prioridad ++ -- (postfijos) Izquierda a derecha
++ -- (prefijos) Derecha a izquierda
- (cambio de signo)
* / % Izquierda a derecha
Menor prioridad + - Izquierda a derecha
3 + 5 * 2 / 2 – 1
Misma precedencia:
Izquierda antes.
3 + 10 / 2 – 1 3 + 5 – 1 8 – 1 7
Misma precedencia:
Izquierda antes.
Mayor
precedencia
Fundamentos de la programación: Primeros pasos Página 126
128. Luis Hernández Yáñez
Evaluación de expresiones
Suponiendo que la variable entera a
contiene en este momento el valor 3…
(3 + 5) * a++ + 12 / a++ – (a * 2)
Primero, los paréntesis...
Ahora, los ++ (mayor prioridad)
8 * 3 + 12 / 3 – 6 a pasa a valer 5
Programación con buen estilo:
Evita usar los operadores ++
y -- en expresiones compuestas.
8 * a++ + 12 / a++ – (3 * 2)
8 * a++ + 12 / a++ – 6
24 + 4 – 6
28 – 6
22
Fundamentos de la programación: Primeros pasos Página 127
129. Luis Hernández Yáñez
Una fórmula
#include <iostream>
using namespace std;
int main()
{
double x, f;
cout << "Introduce el valor de X: ";
cin >> x;
f = 3 * x * x / 5 + 6 * x / 7 - 3;
cout << "f(x) = " << f << endl;
return 0;
}
x 6
x
3
Fundamentos de la programación: Primeros pasos Página 128
3
7
5
( )
2
f x
formula.cpp
130. Luis Hernández Yáñez
Abreviaturas aritméticas
Cuando una expresión tiene la forma:
variable = variable operador op_derecho;
La misma
Se puede abreviar como: variable operador= op_derecho;
Ejemplos:
a = a + 12; a += 12;
a = a * 3; a *= 3;
a = a - 5; a -= 5;
a = a / 37; a /= 37;
a = a % b; a %= b;
Operadores (prioridad) Asociatividad
++ -- (postfijos)
Izda. a dcha.
Llamadas a funciones
++ -- (prefijos) Dcha. a izda.
- (cambio de signo)
* / % Izda. a dcha.
+ - Izda. a dcha.
= += -= *= /= %= Dcha. a izda.
Igual precedencia que la asignación.
Fundamentos de la programación: Primeros pasos Página 129
131. Luis Hernández Yáñez
Desbordamiento
Si una expresión produce un valor mayor del máximo permitido por el
tipo correspondiente (o menor del mínimo), habrá desbordamiento.
¡El resultado no será válido!
short int i = 32767; // Valor máximo para short int
cout << ++i; // Muestra -32768
Los valores short int se codifican en memoria (2 bytes)
en Complemento a 2 (FC); al incrementar se pasa al valor mínimo.
Bit de signo
0 = positivo
1 = negativo
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
32767
+ 1
-32768
Debemos asegurarnos de utilizar tipos que contengan
todo el conjunto de valores posibles para nuestros datos.
Fundamentos de la programación: Primeros pasos Página 130
132. Luis Hernández Yáñez
Espaciado y paréntesis
Se deben usar espacios en el código para facilitar la legibilidad.
f = 3*x*x/5+6*x/7-3;
f = 3 * x * x / 5 + 6 * x / 7 - 3;
Un espacio antes y después de cada operador binario.
Se pueden usar paréntesis, aunque resulten redundantes,
para dejar patentes las prioridades de las operaciones.
f = (3 * x * x) / 5 + (6 * x) / 7 - 3;
O si no se está seguro de la precedencia.
Los paréntesis no afectan a la velocidad del programa.
Fundamentos de la programación: Primeros pasos Página 131
134. Luis Hernández Yáñez
El operador =
Operador para asignaciones:
Variable Expresión
Operadores (prioridad) Asociatividad
++ -- (postfijos) Izda. a dcha.
++ -- (prefijos) Dcha. a izda.
- (cambio de signo)
* / % Izda. a dcha.
+ - Izda. a dcha.
= Dcha. a izda.
= ;
El operando izquierdo debe ser
siempre una variable, que recibe el valor
resultante de evaluar la expresión.
int i, j = 2;
i = 23 + j * 5; // i toma el valor 33
Mínima precedencia
Se evalúa de derecha a izquierda (asociatividad):
int a, b, c;
a = b = c = 5; // Las tres variables reciben el valor 5
Las instrucciones de asignación terminan en ;
Fundamentos de la programación: Primeros pasos Página 133
135. Luis Hernández Yáñez
El operador =
El operando izquierdo ha de ser siempre una variable.
Posibles errores:
int a, b, c;
const int cte = 1;
5 = a; // ERROR: un literal no puede recibir un valor
cte = 5; // ERROR: una constante no puede cambiar de valor
a + 23 = 5; // ERROR: no puede haber una expresión a la izda.
b = "abc"; // ERROR: un entero no puede guardar una cadena
c = 23 5; // ERROR: expresión no válida (falta operador)
Fundamentos de la programación: Primeros pasos Página 134
136. Luis Hernández Yáñez
Variables, asignación y memoria
int i, j = 2; i = 23 + j * 5;
Memoria
01
02
03
04
05
?
j 06
2
07
08
09
10
. . .
i
Memoria
01
02
23 + 2 * 5 33
03
04
05
j 06
2
07
08
09
10
. . .
i
Fundamentos de la programación: Primeros pasos Página 135
137. Luis Hernández Yáñez
Ejemplo: Intercambio de valores
Se necesita una variable auxiliar.
double a = 3.45, b = 127.5, aux;
a 3.45
b 127.5
aux ?
a 3.45
b 127.5
aux 3.45
a 127.5
b 127.5
aux 3.45
a 127.5
b 3.45
aux 3.45
aux = a;
a = b;
b = aux;
Fundamentos de la programación: Primeros pasos Página 136
139. Luis Hernández Yáñez
Funciones matemáticas
La biblioteca cmath contiene muchas funciones matemáticas
que podemos utilizar en nuestras expresiones.
Para poder utilizarlas hay que incluir la biblioteca:
#include <cmath>
Una llamada (erróneamente llamada a menudo invocación)
de una función tiene esta forma:
nombre(argumentos) Los argumentos irán separados por comas.
Por ejemplo, abs(a) Valor absoluto de a.
Una llamada a función de biblioteca será un término más de una expresión.
f = 3 * pow(x, 2) / 5 + 2 * sqrt(x);
Fundamentos de la programación: Primeros pasos Página 138
140. Luis Hernández Yáñez
Algunas funciones matemáticas de cmath
abs(x) Valor absoluto de x
pow(x, y) x elevado a y
sqrt(x) Raíz cuadrada de x
ceil(x) Menor entero que es mayor o igual que x
floor(x) Mayor entero que es menor o igual que x
exp(x) ex
log(x) Ln x (logaritmo natural de x)
log10(x) Logaritmo en base 10 de x
sin(x) Seno de x
cos(x) Coseno de x
tan(x) Tangente de x
round(x) Redondeo al entero más próximo
trunc(x) Pérdida de la parte decimal (entero)
Las llamadas a funciones
tienen la mayor prioridad.
Fundamentos de la programación: Primeros pasos Página 139
141. Luis Hernández Yáñez
Un ejemplo
#include <iostream>
using namespace std;
#include <cmath>
int main()
{
3
2
x
y
5 y
f x y x
( , ) 2 cos( )
x
y
funciones.cpp
double x, y, f;
cout << "Introduzca el valor de X: ";
cin >> x;
cout << "Introduzca el valor de Y: ";
cin >> y;
f = 2 * pow(x, 5) + sqrt(pow(x, 3) / pow(y, 2)) / abs(x * y) – cos(y);
cout << "f(x, y) = " << f << endl;
return 0;
}
Programación con buen estilo:
Pon un espacio detrás de cada coma en las listas de argumentos.
Fundamentos de la programación: Primeros pasos Página 140
143. Luis Hernández Yáñez
Operadores para caracteres
Los únicos operadores definidos para el tipo char son
la asignación, incremento/decremento (código siguiente/anterior)
y los operadores relacionales ().
Funciones para caracteres (biblioteca cctype)
— isalnum(c) true si c es una letra o un dígito; si no, false.
— isalpha(c) true si c es una letra; si no, false.
— isdigit(c) true si c es un dígito; si no, false.
— islower(c) true si c es una letra minúscula; si no, false.
— isupper(c) true si c es una letra mayúscula; si no, false.
— toupper(c) devuelve la mayúscula de c.
— tolower(c) devuelve la minúscula de c.
…
Fundamentos de la programación: Primeros pasos Página 142
147. Luis Hernández Yáñez
Operadores relacionales
Permiten hacer comparaciones (condiciones):
Condición ::= Expresión Operador_relacional Expresión
Las expresiones deben arrojar resultados del mismo tipo (comparables).
El resultado es de tipo bool (true o false).
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
== igual que
!= distinto de
Operadores (prioridad) Asociatividad
++ -- (postfijos)
Izda. a dcha.
Llamadas a funciones
++ -- (prefijos) Dcha. a izda.
- (cambio de signo)
* / % Izda. a dcha.
+ - Izda. a dcha.
< <= > >= Izda. a dcha.
== != Izda. a dcha.
= += -= *= /= %= Dcha. a izda.
Fundamentos de la programación: Primeros pasos Página 146
148. Luis Hernández Yáñez
Operadores relacionales
bool resultado;
int a = 2, b = 3, c = 4;
resultado = a < 5; // 2 < 5 true
resultado = a * b + c >= 12; // 10 >= 12 false
resultado = a * (b + c) >= 12; // 14 >= 12 true
resultado = a != b; // 2 != 3 true
resultado = a * b > c + 5; // 6 > 9 false
resultado = a + b == c + 1; // 5 == 5 true
Los operadores aditivos y multiplicativos tienen mayor prioridad.
Error común de programación:
Confundir el operador de igualdad (==) con el operador de asignación (=).
Fundamentos de la programación: Primeros pasos Página 147
150. Luis Hernández Yáñez
Selección
Si la condición es cierta, hacer esto... ; si no, hacer esto otro...
Bifurcación condicional:
true
InstrucciónT
false
InstrucciónF
if (condición)
instrucciónT
else
instrucciónF
Condición
Fundamentos de la programación: Primeros pasos Página 149
151. Luis Hernández Yáñez
Selección
#include <iostream>
using namespace std;
int main()
{
int op1 = 13, op2 = 4;
int opcion;
cout << "1 - Sumar" << endl;
cout << "2 - Restar" << endl;
cout << "Opcion: ";
cin >> opcion;
if (opcion == 1)
cout << op1 + op2 << endl;
else
cout << op1 - op2 << endl;
return 0;
Fundamentos de la programación: Primeros pasos Página 150
}
seleccion.cpp
153. Luis Hernández Yáñez
¿Hay que hacer más de un cosa?
Si en alguna de las dos ramas del if es necesario poner varias
instrucciones, se necesita crear un bloque de código:
{
intrucción1
intrucción2
...
intrucciónN
}
Por ejemplo:
Fundamentos de la programación: Primeros pasos Página 152
Tab o
2 ó 3
esp.
{ instrucción }
Cada instrucción simple irá terminada en ;
int num, total = 0;
cin >> num;
if (num > 0)
{
cout << "Positivo";
total += num;
}
cout << endl;
Cada bloque crea
un nuevo ámbito
en el que las declaraciones
son locales.
154. Luis Hernández Yáñez
Posición de las llaves: cuestión de estilo
if (num > 0) if (num > 0) {
{ cout << "Positivo";
cout << "Positivo"; total += num;
total += num; }
} cout << endl;
cout << endl;
No te dejes engañar
if (num > 0) if (num > 0)
cout << "Positivo"; cout << "Positivo";
total += num; total += num;
Aunque la sangría pueda dar a entender, a simple vista, que las dos
instrucciones se ejecutan como destino del if, la segunda instrucción
se ejecuta sea num mayor que cero o no: ¡en cualquier caso!
Fundamentos de la programación: Primeros pasos Página 153
157. Luis Hernández Yáñez
Iteración
Mientras que la condición sea cierta, repetir esto...
while ( condición ) cuerpo
Repetición condicional:
while (condición)
cuerpo
true false
Condición
Cuerpo
Mientras la condición sea true se ejecuta el cuerpo.
Si la condición es false al empezar, no se ejecuta el cuerpo ninguna vez.
El cuerpo del bucle es una instrucción (simple o compuesta –bloque –).
Fundamentos de la programación: Primeros pasos Página 156
158. Luis Hernández Yáñez
Iteración
#include <iostream>
using namespace std;
int main()
{
int i = 1, n = 0, suma = 0;
while (n <= 0) { // Sólo n positivo
cout << "Cuantos numeros quieres sumar? ";
cin >> n;
}
while (i <= n) {
suma += i;
i++;
n
}
cout << "Sumatorio de i (1 a " << n << ") = " << suma << endl;
return 0;
Fundamentos de la programación: Primeros pasos Página 157
}
serie.cpp
i
i
1
159. Luis Hernández Yáñez
false
Iteración
while (i <= n) {
suma += i;
i++;
true
5
10
Fundamentos de la programación: Primeros pasos Página 158
}
serie.cpp
n
i
i
1
n 5
i 1
suma 0
suma += i;
i++;
4
2
6
3
1
6
3
i <= n 15
161. Luis Hernández Yáñez
Flujos de texto
C++ no tiene facilidades de E/S en el propio lenguaje.
La E/S se realiza a través de flujos (streams).
Los flujos conectan la ejecución del programa
con los dispositivos de entrada/salida.
Los flujos de texto son secuencias de caracteres.
Entrada por teclado:
Se colocan los caracteres en el flujo de entrada cin (de tipo istream).
Salida por pantalla:
Se colocan los caracteres en el flujo de salida cout (de tipo ostream).
cin cout
Programa
7 3 5 . 3 5 1 1 6 = l a t o T
Fundamentos de la programación: Primeros pasos Página 160
162. Luis Hernández Yáñez
Flujos
cin y cout son objetos de datos definidos en la biblioteca iostream.
La E/S se realiza por medio de sus operadores.
Operadores de entrada/salida:
>> Extractor: Operador binario para expresiones de entrada de datos.
El operando izquierdo es un flujo de entrada (cin) y el operando derecho
una variable. El resultado de la operación es el propio flujo de entrada.
Flujo de entrada Variable
>>
<< Insertor: Operador binario para expresiones de salida de datos.
El operando izquierdo es un flujo de salida (cout) y el operando derecho
una expresión. El resultado de la operación es el propio flujo de salida.
Flujo de salida << Expresión
La asociatividad de ambos operadores es de izquierda a derecha.
Fundamentos de la programación: Primeros pasos Página 161
163. Luis Hernández Yáñez
Expresiones de entrada
Variable
cin >>
— char: Se saltan los espacios en blanco* y se asigna el carácter a la variable.
— int: Se saltan los espacios en blanco* que haya. Se leen los dígitos seguidos
que haya y se transforma la secuencia de dígitos en un valor que se asigna.
— float/double: Se saltan los espacios en blanco* que haya. Se leen los
dígitos seguidos que haya; si hay un punto se leen los dígitos que le sigan;
se transforma la secuencia en un valor que se asigna.
— bool: Si lo leído es 1, la variable toma el valor true; con cualquier otra
entrada toma el valor false. No se suelen leer este tipo de variables.
int i;
char c;
double d;
cin >> c >> d >> i;
cout << c << "|" << d << "|" << i;
* Espacios en blanco: espacios, tabuladores o saltos de línea.
Fundamentos de la programación: Primeros pasos Página 162
164. Luis Hernández Yáñez
Flujos de entrada
int i;
char c;
double d;
cin >> c >> d >> i;
Programa z 1 2 3 . 4 5 6 5
cin
Se lee el carácter 'z' y se asigna a la variable c; resultado: cin
Se leen los caracteres 123.45, se convierten al valor 123.45
(válido para double) y se asigna a la variable d; resultado: cin
Se ignoran los espacios, se leen los caracteres 65, se convierten
al valor 65 (válido para int) y se asigna a la variable i
cin >> d >> i;
cin >> i;
C++ siempre intentará leer los datos sin provocar errores de ejecución,
pero si las secuencias de caracteres de la entrada no son correctas,
los valores asignados a las variables serán impredecibles.
Fundamentos de la programación: Primeros pasos Página 163
165. Luis Hernández Yáñez
Facilitar la entrada
Programas amigables con el usuario
Indicar al usuario para cada dato qué se espera que introduzca:
int edad;
char letra;
double saldo;
cout << "Introduce una letra: ";
cin >> letra;
cout << "Introduce el saldo: ";
cin >> saldo;
cout << "Introduce tu edad: ";
cin >> edad;
cout << letra << "|" << saldo << "|" << edad;
Tras escribir cada dato el usuario pulsará la tecla Intro.
Buenos hábitos de programación:
Ser amigable con el usuario
Fundamentos de la programación: Primeros pasos Página 164
166. Luis Hernández Yáñez
Ejecución de funciones con el operador punto (.)
Las variables de algunos tipos (como istream u ostream)
admiten que se llamen sobre ellas sus funciones
con la notación del operador punto:
variable.función(argumentos)
Por ejemplo:
char c;
cin.get(c);
// Llama a la función get() sobre la variable cin
La función get() lee el siguiente carácter sin saltar espacios en blanco.
Los caracteres de espacio en blanco también se asignan a la variable.
Fundamentos de la programación: Primeros pasos Página 165
167. Luis Hernández Yáñez
Lectura de cadenas de caracteres (string)
La lectura de cadenas de tipo string con cin >> termina
cuando encuentra el primer espacio en blanco.
El resto de los caracteres tecleados quedan pendientes para
la siguiente lectura. Si queremos descartarlos usamos cin.sync().
string nombre, apellidos;
cout << "Nombre: ";
cin >> nombre;
cin.sync();
cout << "Apellidos: ";
cin >> apellidos;
cout << "Nombre completo: "
<< nombre << " "
<< apellidos << endl;
¿Cómo leer varias palabras?
string nombre, apellidos;
cout << "Nombre: ";
cin >> nombre;
cout << "Apellidos: ";
cin >> apellidos;
cout << "Nombre completo: "
<< nombre << " "
<< apellidos << endl;
apellidos toma la cadena "Antonio"
Fundamentos de la programación: Primeros pasos Página 166
168. Luis Hernández Yáñez
Lectura de cadenas de caracteres (string)
string.cpp
Para leer incluyendo espacios en blanco se usa la función getline():
getline(cin, cadena)
Se guardan en la cadena todos los caracteres leídos hasta el final
de la línea (Intro).
¡Se leen bien los caracteres castellanos!
string nombre, apellidos;
cout << "Nombre: ";
getline(cin, nombre);
cout << "Apellidos: ";
getline(cin, apellidos);
cout << "Nombre completo: "
<< nombre << " "
<< apellidos << endl;
Fundamentos de la programación: Primeros pasos Página 167
169. Luis Hernández Yáñez
Expresiones de salida
Expresión
cout <<
Se calcula el resultado de la expresión. Se convierte (si es necesario)
a su representación en caracteres y se envían los caracteres al flujo
de salida (pantalla).
int meses = 7;
cout << "Total: " << 123.45 << endl << " Meses: " << meses;
Total: 123.45
Meses: 7
La biblioteca iostream
define la constante endl
como un salto de línea.
Fundamentos de la programación: Primeros pasos Página 168
170. Luis Hernández Yáñez
Flujos de salida
T o t a l : 1 2 3 . 4 5 M e s e s : 7 Programa
cout
int meses = 7;
cout << "Total: " << 123.45 << endl << " Meses: " << meses;
cout << 123.45 << endl << " Meses: " << meses;
cout << endl << " Meses: " << meses;
cout << " Meses: " << meses;
cout << meses;
Total: 123.45
Meses: 7
Fundamentos de la programación: Primeros pasos Página 169
171. Luis Hernández Yáñez
Datos y flujos de texto
No es lo mismo el valor double 123.45 que su representación textual,
que es la secuencia de caracteres: '1' '2' '3' '.' '4' '5'
double d = 123.45;
d 123.45
cout << d;
¡Un número real!
5 4 . 3 2 1
¡Un texto!
(secuencia de caracteres)
Fundamentos de la programación: Primeros pasos Página 170
172. Luis Hernández Yáñez
Formato de la salida
Las bibliotecas iostream e iomanip tienen definidas constantes
que permiten, cuando se envían a cout, establecer opciones de formato
que afecten a la salida que se realice a continuación.
Biblioteca Identificador Propósito
iostream
showpoint /
noshowpoint
Mostrar o no el punto decimal para reales sin
parte decimal (añadiendo 0 a la derecha).
fixed / scientific Notación de punto fijo / científica (reales).
boolalpha Valores bool como true / false.
left / right Ajustar a la izquierda/derecha.
iomanip setw(anchura)* Nº de caracteres (anchura) para el valor.
setprecision(p)
Precisión: Nº de dígitos (antes y después del .).
Con fixed o scientific, nº de decimales.
*setw() sólo afecta al siguiente dato que se escriba, mientras que los otros afectan a todos.
(Subrayadas las opciones predeterminadas.)
Fundamentos de la programación: Primeros pasos Página 171
173. Luis Hernández Yáñez
Formato de la salida (ejemplo)
bool fin = false;
cout << fin << "->" << boolalpha << fin << endl;
double d = 123.45;
char c = 'x';
int i = 62;
cout << d << c << i << endl;
cout << "|" << setw(8) << d << "|" << endl;
cout << "|" << left << setw(8) << d << "|" << endl;
cout << "|" << setw(4) << c << "|" << endl;
cout << "|" << right << setw(5) << i << "|" << endl;
double e = 96;
cout << e << " - " << showpoint << e << endl;
cout << scientific << d << fixed << endl;
cout << setprecision(8) << d << endl;
0->false
123.45x62
| 123.45|
|123.45 |
|x |
| 62|
96 - 96.0000
1.234500e+002
123.45000000
Fundamentos de la programación: Primeros pasos Página 172
Se han añadido saltos de línea adicionales.
174. Luis Hernández Yáñez
Programming. Principles and Practice Using C++
B. Stroustrup. Pearson Education, 2009
C++: An Introduction to Computing (2ª edición)
J. Adams, S. Leestma, L. Nyhoff. Prentice Hall, 1998
El lenguaje de programación C++ (Edición especial)
B. Stroustrup. Addison-Wesley, 2002
Fundamentos de la programación: Primeros pasos Página 173
175. Luis Hernández Yáñez
Licencia CC (Creative Commons)
Este tipo de licencias ofrecen algunos derechos a terceras personas
bajo ciertas condiciones.
Este documento tiene establecidas las siguientes:
Reconocimiento (Attribution):
En cualquier explotación de la obra autorizada por la licencia
hará falta reconocer la autoría.
No comercial (Non commercial):
La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):
La explotación autorizada incluye la creación de obras derivadas
siempre que mantengan la misma licencia al ser divulgadas.
Pulsa en la imagen de arriba a la derecha para saber más.
Fundamentos de la programación: Primeros pasos Página 174