P. 1
Elementos-Básicos-Lenguaje-Programación

Elementos-Básicos-Lenguaje-Programación

|Views: 1.237|Likes:
Publicado porg_torrealba

More info:

Published by: g_torrealba on Sep 19, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/04/2015

pdf

text

original

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO SISTEMA DE EDUCACIÓN A DISTANCIA DECANATO DE CIENCIAS Y TECNOLOGÍA

UNIDAD DIDÁCTICA
1

4 2 3

Elementos básicos del Lenguaje de Programación
Prof. Margarita Pereira
Barquisimeto, Marzo 2010

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO SISTEMA DE EDUCACIÓN A DISTANCIA DECANATO DE CIENCIAS Y TECNOLOGÍA

UNIDAD DIDÁCTICA

Programación
Elaborado por: Prof. Margarita Pereira Correo-e: mpereira@ucla.edu.ve Fecha Elaboración: Septiembre 2008 Revisado y actualizado por: Prof. Margarita Pereira Fecha Ultima Revisión: Marzo 2010

Unidad didáctica. Elementos básicos del lenguaje

3

Tabla de Contenidos
Pág. Introducción. …………………………………………………………………………. Objetivos de Aprendizaje…………………………………………………………….. Contenidos Programáticos de la Unidad……………………………………………… 1. Lenguaje de Programación………………………………………………………... 1.1. Definición………………………………………………………………......... 1.2. Tipos de Lenguajes…………………………………………………………... 1.3. Lenguaje C++………………………………………………………………... 1.4. Definición de sintaxis………………………………………………………... 1.5. Pasos para realizar un programa en un lenguaje de programación…………... 2. Estructura básica de un programa en C++………………………………………... 2.1. Definiciones y/o Declaraciones……………………………………………… 2.1.1. Directivas del Preprocesador…………………………………………. 2.1.2. Declaraciones globales………………………………………………... 2.2. Función main………………………………………………………………… 2.3. Implementación de las funciones definidas por el usuario…………………... 3. Elementos de un programa en C++……………………………………………….. 3.1. Conjunto de caracteres……………………………………………………….. 3.2. Palabras reservadas…………………………………………………………... 3.3. Identificadores………………………………………………………………... 3.4. Comentarios………...………………………………………………………… 3.5. Archivos de Cabecera………………..……………………………………...... 4. Datos……………………………………………………………………………… 4.1. Definición……………………………………………………………………. 4.2. Tipos de datos………………………………………………………………... 5 6 6 6 6 6 7 8 9 10 11 11 12 13 14 15 15 16 16 16 17 17 17 17

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

4 19 19 22 22 26 26 26 33 34 36 40 41 42 42 42 43 43 47 49 52 54 67

4.3. Constantes……………………………………………………………………. 4.4. Variables……………………………………………………………………... 5. Instrucción de asignación…………………………………………………………. 6. Instrucción de entrada y salida……………………………………………………. 7. Proceso de creación de un programa ejecutable………………………………….. 8. Operadores, Operandos y Expresiones…………………………………………… 8.1. Operador de Asignación……………………………………………………... 8.2. Operadores unarios (menos unario, sizeof(), coma)…………………………. 8.3. Operadores aritméticos………………………………………………………. 8.4. Operadores de Incremento y Decremento……………………………………. 8.5. Operadores relacionales……………………………………………………… 8.6. Operadores lógicos…………………………………………………………… 8.7. Prioridad de los operadores…………………………………………………... 9. Pruebas y depuración de programas………………………………………………. 10. Documentación de Programas……………………………………………………. 11. Ejercicios Propuestos……………………………………………………………... Resumen………………………………………………………………………………. Autoevaluación………………………………………………………………………... Respuesta a la Autoevaluación………………………………………………………. Complemento. Ejercicios Propuestos…………………………………………………. Instructivo para la Instalación del Compilador DevCpp……………………………… Fuentes de Información………………………………………………………………..

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

5

Introducción
La programación nace por la necesidad de elaborar programas de computación que permitan resolver problemas de diversas áreas de la vida como la social, económica, académica, política, cultural, entre otras. Estos programas de computación deben ser llevados al computador para poder ver su aplicabilidad. Hasta este momento los programas se han escrito como un algoritmo (secuencia de pasos, instrucciones) haciendo uso de un pseudocódigo. Las computadoras funcionan bien, si tienen programas escritos en algún lenguaje que ellas puedan interpretar (por supuesto programas lógicos y correctos). Esta es la razón por la que aparecen los lenguajes de programación. Esta unidad didáctica pretende que comprendas para que sirven los lenguajes de programación, así como los pasos que debes seguir para poder utilizarlos. En particular, se detalla el lenguaje de programación C++, usando el compilador Devcpp que trabaja bajo la plataforma de Windows. Entre otras cosas se especifican la sintaxis para las instrucciones básicas, los datos y sus tipos así como los diversos operadores de que dispone el lenguaje. El objetivo central, no es que memorices los conceptos planteados en este material, sino que los lleves a la práctica desarrollando programas y verificando que producen los resultados esperados (correctos), es por ello que se muestran algunos ejemplos sencillos y se dejarán otros propuestos para que los resuelvas. Puedes imaginarte esta unidad como un mapa que te indicará las rutas que debes seguir para lograr los objetivos de tu aprendizaje con relación al tema Elementos básicos del Lenguaje y con ella podrás desarrollar: Procesos de reflexión, crítica, duda, cuestionamiento e investigación lo cual te ayudará a construir tus conocimientos. Un diálogo permanente con el saber, con tu facilitador (profesor) y en general con la realidad que te rodea Respuestas sobre el ¿qué?, ¿cómo?, ¿cuándo? a fin de mejorar el aprovechamiento del tiempo disponible y maximizar el aprendizaje y su aplicación. Te recuerdo que tu eres el protagonista central en esta historia, así que no tengas miedo, siempre contaras con mi apoyo, no estas sólo, somos un equipo (tú, tu profesor y tus compañeros) debemos colaborar unos con otros y así todos lograremos el objetivo que es

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

6

lograr el aprendizaje sobre este tema. Así que ánimo y a comenzar con el tema Elementos básicos del Lenguaje de Programación. .

Objetivos de Aprendizaje Objetivo Terminal
Al finalizar este tema podrás IMPLEMENTAR programas sencillos en lenguaje C++, aplicando los elementos básicos del lenguaje.

Objetivos Específicos
Identificar los componentes esenciales de la estructura de un programa de computación. Identificar el proceso de edición y compilación para la creación de programas ejecutables. Reconocer el término datos como elemento fundamental en la creación de un programa de computación. Diferenciar los diferentes tipos de datos y su aplicación. Utilizar los archivos de cabecera. Utilizar los diferentes operadores, operandos y expresiones en el desarrollo de un programa de computación. Utilizar instrucciones de asignación. Utilizar instrucciones que permitan realizar operaciones de entrada/salida. Realizar pruebas efectivas para la producción de programas confiables y de mejor calidad. Elaborar programas documentados con el fin de mejorar el mantenimiento de los mismos. Utilizar la herramienta de programación DevCpp. Asumir responsabilidades individuales y aprender a trabajar en equipo.

Contenidos Programáticos (Proceso de Aprendizaje) Elementos básicos del lenguaje de Programación
1. Lenguaje de Programación 1.1. Definición: Es una serie de símbolos que se utilizan para escribir instrucciones de programación (respetando ciertas reglas o sintaxis). Estas instrucciones estarán ubicadas dentro de programas que serán creados para resolver problemas. La idea es que estos programas sean ejecutados por un computador.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

7

1.2. Tipos de lenguajes: Existen muchos lenguajes para programar un computador. Una primera división podría ser: Lenguaje de bajo nivel también conocido como lenguaje de máquina, es el lenguaje más básico que consiste en una colección de instrucciones muy detalladas que controlan la circuitería interna del computador, por lo que los microprocesadores procesan exclusivamente señales electrónicas binarias (en realidad es una secuencia de ceros y unos); si bien es cierto que el lenguaje de bajo nivel es el lenguaje natural del computador, también es cierto que no es el lenguaje que se utiliza con mayor frecuencia para escribir programas de aplicación ya que no es el más entendible por las personas. Lenguajes de alto nivel son los más utilizados para escribir programas de aplicación ya que son más sencillos y compatibles con la forma de pensar de los humanos. La mayoría de estos lenguajes son de propósito general, entre ellos podemos mencionar el Lenguaje C, C++, Pascal, Java, Basic, Fortran, etc. Hay también lenguajes de propósito especial que están diseñados específicamente para algún tipo particular de aplicación, como por ejemplo CSMP y SIMAN son lenguajes propios para desarrollar simulaciones y LISP que es un lenguaje orientado al tratamiento de listas y se utiliza ampliamente en aplicaciones de inteligencia artificial. Para efectos de esta asignatura usaremos el lenguaje C++ y el compilador Devcpp que trabaja bajo Windows. Es importante aclarar que el compilador es el encargado de verificar la sintaxis del lenguaje y producir (generar) el programa objeto (es el programa que entiende el computador se encuentra en un lenguaje de bajo nivel), entonces el proceso de compilación consiste en convertir un programa fuente (el programa que escribimos en lenguaje C++, la extensión de estos programas es .cpp) en un programa objeto que pueda ser interpretado por el computador (extensión .exe). LO MÁS IMPORTANTE INDEPENDIENTEMENTE DEL LENGUAJE DE PROGRAMACIÓN A UTILIZAR, ES TENER UNA BUENA LÓGICA DE PROGRAMACIÓN. 1.3. Lenguaje de programación C++: Es un lenguaje de propósito general. Sus instrucciones constan de términos que se parecen a expresiones algebraicas, además de ciertas palabras claves como IF, ELSE, FOR, etc. C++ difiere de algunos otros lenguajes de propósito general ya que tiene características adicionales que permiten su uso a un nivel más bajo, cubriendo así el vacío entre el lenguaje de máquina y los lenguajes de alto nivel más convencionales. Esta flexibilidad permite el uso de C++ en la programación de sistemas operativos así como también en la programación de

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

8

aplicaciones. Este lenguaje se caracteriza por hacer posible la redacción de programas fuentes muy concisos y portables, ya que dispone de: Un gran número de operadores. Un repertorio propio de instrucciones. Numerosas funciones de bibliotecas que mejoran las instrucciones básicas. Permite a los usuarios escribir funciones de biblioteca adicionales para su propio uso. Con esto el usuario fácilmente puede ampliar las características y capacidades del lenguaje. Breve reseña histórica de C++: Fue desarrollo por Bjarne Stroustrup en los laboratorios Bell, este lenguaje se basa en el lenguaje C y por lo tanto todas las características estándar y básicas de C están disponibles en C++. Sin embargo C++ no es solo una extensión de C ya que incorpora nuevos fundamentos que constituyen una base para la programación orientada a objetos (POO) un nuevo paradigma, una nueva forma de pensar, concebir y resolver los problemas a nivel de programación. Con este paradigma Bjarne incorpora en el lenguaje la capacidad para el diseño de las llamadas clases y objetos, conceptos muy en boga en la programación actual. De clases y objetos basta saber por ahora que consisten en un sistema que pretende acercar los lenguajes de programación a una comprensión más humana basándose en la construcción de objetos, con atributos (características) propias y acciones (métodos) sobre esos atributos. El lenguaje C fue desarrollado originalmente en los años setenta por Dennis Ritchie en Bell Telephone Laboratories, Inc. 1.4. Definición de Sintaxis: En un lenguaje de programación la sintaxis esta formada por un conjunto de reglas que determinan si las instrucciones del programa están bien escritas. Su objetivo es proveer una notación específica que permita la comunicación entre el programador y el procesador del lenguaje. Dicho de otra forma una gramática representa la definición formal de la sintaxis de un lenguaje. Asociemos este concepto con la escritura correcta de un documento en el idioma (lenguaje) español, ciertamente existen una reglas conocidas como reglas ortográficas que debemos respetar y seguir al pie de la letra para escribir sin errores, todos escribimos documentos y luego utilizamos la herramienta del corrector ortográfico que posee el procesador para verificar que las palabras están sintácticamente correctas; bueno el compilador viene a comportarse como el corrector de ortografía, claro está el hecho de no cometer errores ortográficos en el documento no asegura que los párrafos escritos tenga una idea correcta. Lo mismo pasa con el compilador, el hecho de que tu programa compile NO quiere decir que funcione correctamente (produzca los resultados esperados), recuerda el compilador chequea si las instrucciones cumplen con la sintaxis establecida por el lenguaje de programación.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

9

1.5. Pasos para realizar un programa en un lenguaje de programación LEER detalladamente el enunciado del problema, de tal forma que haya claridad en lo que se requiere. Este proceso conlleva un análisis exhaustivo del enunciado. ESCRIBIR (ó hacer ajustes-modificaciones de) las instrucciones del programa en el lenguaje de programación haciendo uso de un editor de textos (en nuestro caso el compilador Devcpp tiene incorporado su propio editor). Grabar el programa en un medio de almacenamiento secundario. Es importante destacar que la extensión de los programas fuentes de C++ es .cpp COMPILAR el programa fuente. El objetivo de la compilación es chequear la sintaxis del lenguaje. Si hay errores de compilación se debe regresar al editor (PASO 2) hacer los ajustes (modificaciones), grabar nuevamente el programa fuente y volver a compilar (PASO 3). Este proceso se repite hasta que NO HAYAN ERRORES EN COMPILACIÓN (errores de sintaxis). Aquí se genera un programa ejecutable temporal. ENCADENAR ó enlazar el programa con las bibliotecas (librerías) incluidas en el programa fuente. Estas bibliotecas pueden ser las que se encuentran predefinidas en el lenguaje de programación y/ó bibliotecas propias realizadas por el usuario. Aquí se genera el programa ejecutable final con extensión .exe. Si no localiza las bibliotecas incluidas en el programa fuente, dará un error. Se debe chequear si no están disponibles en el medio de almacenamiento secundario, también podría ser que el proceso de instalación del compilador no se haya realizado correctamente. EJECUTAR ó correr el programa. Para ello usted puede escribir a nivel de consola el nombre del programa y presionar ENTER ó también puede colocarse sobre el icono del programa ejecutable y presionar CLIC con el ratón. Si el programa presenta errores de ejecución (errores de lógica) deberá hacer los ajustes regresando al PASO 2 e inclusive en algunos casos deberá regresar al PASO 1. En caso de que el programa no presente errores de ejecución ha finalizado exitosamente el proceso.

Estos pasos se pueden representar gráficamente así:

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

10

INICIO

Leer el Problema

Editar el programa (Tipear y/o modificar) Grabar el programa

Compilar programa y Enlazar bibliotecas

Errores de Sintaxis

si

no
Ejecutar programa

Errores de Ejecución

si

Chequear lógica del programa

no
FIN

¿ Podríamos asegurar que un programa esta correcto solo si compila y produce resultados? Pues la respuesta es NO, muchas veces nos alegramos porque al corregir todos los errores de compilación (errores sintácticos) y ejecutamos el programa introduciendo datos, vemos que da unos resultados y pensamos que ya esta resuelto todo; pero la cosa no es tan simple, debes saber seleccionar los datos de prueba y de antemano saber cuales deben ser los resultados esperados. 2. Estructura básica de un programa en C++ Todo programa en C++ consta de uno o más módulos llamados funciones. Una de las funciones se llama main que es la función principal (cuerpo principal del programa,
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

11

donde se encuentra la lógica central). El programa comenzará con la ejecución de esta función main, la cual puede acceder con la secuencia establecida en las instrucciones escritas a las demás funciones. Estas funciones adicionales al main deberán realizarse aparte, bien sea antes ó después de la función main. Una función en C++ es un subprograma ó subrutina ó módulo ó programa pequeño que devuelve un único valor, un conjunto de valores ó ningún valor (en este caso la función realiza alguna tarea específica pero no necesita retornar ningún valor). Las funciones serán tratadas más adelante en esta guía. En general un programa en C++ está formado por tres grandes bloques: Definiciones y/o Declaraciones. Función main. Desarrollo (implementación) de las otras funciones definidas por el usuario. 2.1.Definiciones y/o Declaraciones: Todas las definiciones que se elaboren en este bloque son consideradas como definiciones globales, es decir que pueden ser utilizadas en cualquier parte del programa. Lo que se encuentra dentro de este bloque es opcional, usted deberá evaluar el problema que desea resolver y decidir cuales son las definiciones y declaraciones que necesita. Dentro de este bloque se encuentra lo siguiente: 2.1.1. Directivas del Preprocesador: Son instrucciones especiales, las cuales son ejecutadas al principio del proceso de compilación. Comienzan con el símbolo #. Generalmente aparecen al principio del programa, pero esto no es obligatorio. De tal forma que la directiva del preprocesador puede aparecer en cualquier parte del programa. La directiva será aplicable solo a las instrucciones del programa que están escritas después de la misma. Las directivas más usadas son #include y #define. #include: Sirve para tener acceso a los archivos de biblioteca (archivos de cabecera), que no son más que librerías las cuales agrupan un conjunto de funciones que están disponibles para ser usadas en cualquier programa. La extensión de estos archivos de biblioteca es .h. Sintaxis:

#include nombre_del_archivo_de_biblioteca

#define: Sirve para definir constantes simbólicas dentro de un programa. Una constante simbólica es un nombre que sustituye una secuencia de caracteres. Los caracteres pueden representar una constante numérica, una constante de carácter o una constante de cadena de caracteres. Entonces cuando se compila el programa automáticamente la constante simbólica es reemplazada por su correspondiente secuencia de caracteres. Generalmente estas constantes se suelen definir al comienzo del programa pero esto no es obligatorio.
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

12

Sintaxis:

#define nombre_de_la_constante dato

nombre_de_la_constante: representa un nombre simbólico. dato: representa la secuencia de caracteres asociada al nombre simbólico. Estos caracteres pueden ser letras, números o caracteres especiales. Como se observa en la sintaxis el #define no termina con punto y coma (;). Si se coloca el ; este carácter formaría parte de la constante. Es importante destacar, que las constantes simbólicas no son obligatorias en los programas, sin embargo en algunos casos se recomienda su utilización ya que contribuyen al desarrollo de programas claros y ordenados. La idea es colocar nombres significativos a las constantes simbólicas de tal forma que el nombre de la constante por si solo nos ubique de a que constante se refiere; esto se debe a que el ser humano identifica de forma más rápida un nombre que un valor. Así por ejemplo, si estamos haciendo un programa que tenga que ver con notas definitivas de alumnos podríamos definir las siguientes constantes simbólicas que son numéricas: #define MAX_NOTA 100 #define MIN_NOTA 0 Otros ejemplos de constantes alfanuméricas: #define LETRA_ALTA ‘A’ #define AMIGA “maria” Por otro lado, es mucho más fácil y rápido cambiar el valor de la constante en una sola línea (la del #define) que cambiar la aparición del valor en varias líneas del programa. También se pueden definir macros dentro de un programa. Este punto no es objetivo de esta asignatura sin embargo mencionaremos que las macros consisten en definir identificadores simples que son equivalentes a expresiones ó instrucciones completas (grupos de instrucciones). En este sentido las macros se parecen a las funciones, pero son definidas y tratadas de forma diferente durante el proceso de compilación. 2.1.2. Declaraciones globales: En este bloque se pueden definir constantes, tipos de datos definidos por el usuario, variables y prototipos de funciones. Los detalles de estas declaraciones serán planteados más adelante en esta guía.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

13

¿Para qué sirven las constantes simbólicas? Es necesario (obligatorio) incluirlas en el programa. Un programa que no incluya librerías es incorrecto? Seguramente acertaste en tus respuestas, verifica. Primero, las constantes simbólicas sirven para sustituir datos (numéricos o caracteres) con un nombre (es un identificador) de esta manera el compilador asocia el nombre con el dato. No es obligatorio que existan dentro del programa, debes analizar el problema que vas a resolver y decidir si se justifica el uso de constantes simbólicas en el mismo. Algo similar ocurre con el uso de las librerías, las incluyes en tu programa solo si las necesitas, debes aprender a programar en forma eficiente usando sólo lo que requieras para el programa que estas desarrollando en un momento dado. Debes trabajar con eficiencia. 2.2. Función main: Este bloque corresponde al cuerpo principal del programa. Su estructura es la siguiente: int main() // Cabecera de la función main { // Comienza el programa principal // bloque de definiciones y/o declaraciones locales al main inst1; inst2; …. // Secuencia lógica de instrucciones .... instn; return 0; // Es opcional (resultado de la función) } // Fin del Programa

int main() es equivalente a main() por defecto para C++ la función main retorna un valor entero La instrucción return 0 deberá colocarse si la cabecera de main esta escrita como int main() La instrucción return 0 no deberá colocarse si la cabecera de main esta escrita como main() ¿Qué pasaría si un programa no tiene instrucciones dentro del main? ¿Será que no compila? ¿Será que no se puede ejecutar? imagínate que tu main es el siguiente main() { }

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

14

Bueno, el hecho de que el programa no tenga instrucciones dentro del main no quiere decir que no se puede compilar y ejecutar, el detalle es que un programa con su main (cuerpo principal) vacío no hace nada. Entonces, evidentemente no haríamos programas así ya que no estamos resolviendo ningún problema. Espero hayas acertado en tu respuesta. 2.3. Implementación de las funciones definidas por el usuario: En general una función debe mantener la siguiente estructura: Una cabecera de la función Sintaxis Tipo_de_dato nombre_de_la_función (lista_de_argumentos)

La lista de argumentos puede estar vacía pero los paréntesis son obligatorios Cuando la función no retorna ningún valor en el tipo de dato se le coloca la palabra reservada void

Definiciones y/o declaraciones locales (es opcional). Aquí se pueden definir constantes, tipos de datos y declarar variables. La sintaxis de cada una será detallada más adelante en esta guía. Cuerpo principal de la función el cual debe comenzar con llave apertura { y terminar con llave de cierre }. { // Aquí comienza el cuerpo principal de la función instrucciones; ....... instrucciones; return valor; } // Aquí finaliza la función NOTA: Dentro del conjunto de instrucciones se define la lógica y secuencia que debe ejecutar la función, allí pueden existir instrucciones de entrada, salida, asignaciones, operaciones matemáticas, instrucciones selectivas, instrucciones repetitivas, etc. Es importante aclarar que la implementación (escritura detallada de las instrucciones de la función) no necesariamente debe ser colocada después de la función main también pudiese ser escrita antes del main y no hay ningún problema. Por estandarización para efectos de esta asignatura las funciones definidas por el usuario serán desarrolladas después de la función main.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

15

3. Elementos de un programa en C++ 3.1. Conjunto de caracteres de C++: Para formar los elementos básicos del programa (constantes, variables, operadores, expresiones, etc.) se utilizan las letras mayúsculas (A,B,C,..., Z), las letras minúsculas (a,b,c,..,z), los números (0,1,2,3,..,9) y ciertos caracteres especiales (+, -, *,/, &,\, !, #, “, <, >, =, {, }, _, espacio en blanco, (, ), etc.). Cabe resaltar que C++ utiliza ciertas combinaciones de estos caracteres para representar elementos especiales. En el siguiente cuadro se presentan algunos ejemplos:
SECUENCIA DE ESCAPE CARACTER (lo que produce la secuencia de caracteres)

\a \b \t \n \r \f \” \’ \\ \0

sonido de alerta retrocede un carácter permite dejar espacios tabulados a nivel horizontal (por línea) avanza a la línea siguiente retorno de carro avanza a la página siguiente escribe el carácter comilla doble “ escribe el carácter comilla simple ‘ escribe el carácter barra invertida \ escribe el carácter nulo

Estas secuencias de caracteres se conocen como secuencias de escape, lo que nos interesa saber en este momento, es que cada secuencia de escape representa un solo carácter aun cuando este formada por dos ó más caracteres. Es de hacer notar que los caracteres en C++ se almacenan internamente como números, por ello se pueden realizar operaciones aritméticas con datos de tipo char. Por ejemplo se puede convertir una letra mayúscula en su correspondiente letra minúscula y viceversa, sólo basta sumarle o restarle el valor 32 a la variable char. En la tabla ASCII primero aparecen las letras mayúscula y después las minúsculas. Así el valor ASCII de la letra ‘A’ es 65 y el de la letra ‘a’ es 97. Si al valor 65 se le suma 32 el resultado es 97 que como se puede observar es el valor ASCII de la letra ‘a’ minúscula. Ejemplos: char letra = 'M' letra = letra + 32; letra = letra + 1; // asigna a la variable letra el valor M // ahora letra contiene el valor m // ahora letra contiene el valor n
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

16

char letra = 'p'; letra = letra - 32; letra = letra - 1;

// asigna a la variable letra el valor p // ahora letra contiene el valor P // ahora letra contiene el valor O

3.2. Palabras reservadas: En todos los lenguajes de programación existen ciertas palabras que tienen un significado particular para el compilador. Estas palabras se conocen como palabras reservadas del lenguaje, ellas sólo pueden ser usadas para el propósito del cual fueron creadas y no pueden utilizarse para otros fines. De esta manera las palabras reservadas no pueden usarse para definir identificadores. Ejemplo de algunas palabras reservadas: main, void, if, else, int, char, float, const, while, enum, for, return, struct, etc. 3.3. Identificadores: Son nombres que se utilizan para nombrar elementos de un programa como las constantes, tipos de datos, variables y funciones. La regla general es que un identificador está formado por una secuencia de letras y/o números y/o carácter _ en cualquier orden; excepto al comienzo que debe ser una letra o el carácter _ . La cantidad de caracteres del identificador depende del compilador que se este usando, en nuestro caso el límite de caracteres para un identificador son 32, si el identificador es más largo el compilador ignorará los que exceden a 32. IMPORTANTE: Para C++ las letras mayúsculas son diferentes a las letras minúsculas. Así por ejemplo el identificador sueldo es diferente al identificador SUELDO también es diferente Sueldo y diferente SUeldo y diferente sueldO y así todas las posibles combinaciones de minúsculas y mayúsculas para ese identificador. A continuación se presentan una lista de identificadores válidos: nombre_edadct1, ACUM_TOTAL, TABLALista_de_clase A continuación se presentan una lista de identificadores NO VÁLIDOS: 4num·xct-3acum total%porcentaje ¿Es válido el siguiente identificador Main? Pues sí, como la primera letra es mayúscula el identificador Main no representa la cabecera de la función main, lo que pasa es que no es recomendable usar identificadores que tengan la misma secuencia de caracteres que las palabras reservadas del lenguaje, tienden a prestarnos confusión. 3.4. Comentarios: Son instrucciones no ejecutables por el compilador. Estas instrucciones son utilizadas por el usuario del lenguaje (programador) para hacer aclaratorias de ciertas partes del programa. Es una buena política de programación comentar cada función que se programe (es decir escribir una pequeña descripción de lo que hace). Para C++ existen dos formas de hacer comentarios:
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

17

Comentarios para una sola línea: Colocando al comienzo de la línea dos caracteres de barra (//) Ejemplo: // Esta función permite calcular el promedio de la sección de clase Comentarios que abarquen más de una línea: Colocar al comienzo de la línea los caracteres /* luego escribir el comentario con la cantidad de líneas que se necesiten y finalizarlo con los caracteres */ Ejemplo: /* Esta función permite calcular el promedio de la sección de clase de la asignatura de programación 1 de la carrera de informática */ Es importante destacar que los comentarios son importantes, pero no deben ser usados en exceso ya que se pierde la esencia del programa. 3.5. Archivos de cabecera: También se conocen como librerías ó unidades ó archivos de biblioteca. Son archivos especiales que agrupan una serie de funciones, la extensión de estos archivos es .h (h es la inicial de la palabra header cuya traducción es cabecera). El lenguaje tiene predefinido y a disposición de los usuarios programadores una serie de archivos de cabecera. Para usar las funciones que se encuentren dentro de los archivos de cabecera, el programador debe incluir en su programa la directiva #include nombre_del_archivo_de_cabecera Esta directiva ya fue detallada anteriormente en esta guía. También es posible que los usuarios programadores puedan realizar sus propios archivos de cabecera. Deben transcribir las funciones que deseen agrupar en el archivo de cabecera y grabar este archivo con extensión .h, luego puede ser utilizado por cualquier otro programa con sólo incluirlo con la directiva #include. Vamos, es hora de hacer una pausa, dale un descansito a tu cerebro para que pueda asimilar lo que has leído y así fijar el conocimiento. Tomate un café, relájate y cuando regreses comenzamos con el punto 4 de esta unidad. 4. Datos 4.1. Definición: Cabrera, H (1997) señala: El termino que usamos para describir las señales con las cuales trabaja computadora es dato; aunque las palabras dato e información muchas veces son usadas indistintamente, si existe una diferencia importante entre ellas. En un sentido estricto, los datos son las señales individuales en bruto y sin ningún significado que manipulan las computadoras para producir información. (p. s/n) 4.2. Tipos de datos: El tipo de un dato determina su forma de almacenamiento en memoria y las operaciones que pueden ser efectuadas con él. El lenguaje C++ ofrece diversos tipos de datos, cada uno de los cuales tiene su forma de ser representado en la memoria del computador.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

18

A continuación se presenta un cuadro con los tipos de datos básicos, el tamaño de memoría que ocupa y el rango permisible de valores. Es de hacer notar que el tamaño de memoria para cada tipo de datos puede variar de un compilador de C++ a otro. Los tamaños de los tipos presentados en el cuadro se corresponden con el compilador Devcpp. Por otro lado debemos saber que los identificadores de los tipos asociados deben ser escritos en minúscula:
GRUPO Enteros DESCRIPCIÓN Son valores numéricos positivos y negativos sin decimales Son valores numéricos positivos y negativos con decimales. El carácter que identifica la parte decimal es el punto Son valores numéricos positivos y negativos con decimales de doble precisión (más cifras significativas y mayor valor posible del exponente) Cualquier elemento del conjunto de caracteres (en general conjunto de caracteres ASCII) Es un tipo de dato que puede recibir solo dos valores: true, false TAMAÑO (BYTES) 4 TIPOS ASOCIADOS int RANGO VALORES -32768 .. +32767 EJEMPLOS int contador;

Coma flotante (reales)

float promedio; 4 float -1.E-36 .. +1.E+36

Coma flotante de doble precisión (reales)

double porcentaje; 8 double

Carácter

char letra; 1 char -128 .. 127

Booleano

bool encontrado; 1 bool Internamente para true almacena valor de 1 y false el valor de 0

Algunos de estos tipos básicos de datos (enteros, reales, char) se pueden ampliar utilizando los cualificadores que no son más que modificadores del tipo de dato original; de esta forma tenemos los siguientes cualificadores: short (corto), long (largo), signed (con signo) y unsigned (sin signo). En general con estos cualificadores podríamos tener la siguiente gama de enteros: Enteros cortos: short int es equivalente a short (2 bytes) Enteros largos: long int es equivalente a long (4 bytes) Enteros con signo : signed int (4 bytes) Enteros sin signo: unsigned int (4 bytes) Enteros cortos con signo: signed short int es equivalente a signed short

(2 bytes)

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

19 (2 bytes) (4 bytes) (4 bytes)

Enteros cortos sin signo: unsigned short int es equivalente a unsigned short Enteros largos con signo: signed long equivalente a signed long int Enteros largos sin signo: unsigned long equivalente a unsigned long int

Algunos compiladores permiten el cualificador long a los tipos de datos reales float y double. En el caso de los tipos de datos char podemos tener: char, unsigned char (1 byte) 4.3. Constantes: En general una constante es un objeto cuyo valor se mantiene fijo (no puede cambiar, ser modificado) a lo largo de la ejecución del programa. Existen constantes numéricas (enteras y reales ->coma flotante) y alfanuméricas (carácter y cadena de caracteres). Estas constantes pueden ser representadas como constantes simbólicas (#define ya explicado en esta guía) y/o constantes declaradas. Sintaxis para las constantes declaradas: const tipo_de_constante identificador = valor; donde: const es una palabra reservada tipo_de_constante es cualquier tipo de dato (ver cuadro anterior). Si no se coloca nada en tipo_de_constante por defecto asume que es entero (int). identificador es el nombre que se le esta colocando a la constante. Debe cumplir con las especificaciones de identificador válido. valor es el dato que se quiere asignar a la constante. la instrucción debe finalizar con ; NOTA: el valor debe ser compatible con el tipo de constante Ejemplos de constantes declaradas: const int NUMERO_EMPLEADOS = 100; es equivalente const NUMERO_EMPLEADOS = 100; const float BONO = 50400.50; const float REDONDEO = .50; const char LETRA = ‘A’; Por estandarización para esta asignatura colocaremos todos los identificadores de constantes en letras mayúsculas.

4.4. Variables: Una variable es un identificador que se utiliza para representar cierto tipo de información cuyo dato puede variar (cambiar, modificarse) dentro de una determinada parte del programa, es decir a una variable se le pueden asignar
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

20

diferentes valores en distintas partes del programa; de esta forma la información representada puede cambiar durante la ejecución del programa. Sin embargo, el tipo de datos asociado a la variable no puede cambiar. Sintaxis tipo_de_dato identificador; // para una sola variable
// para varias variables del mismo tipo de dato

tipo_de_dato identificador1,identificador2,identificadorn;

donde: tipo_de_dato es cualquier tipo_de_datos bien sea de los que se encuentran predefinidos en el lenguaje o algún tipo de dato creado o definido por el usuario (programador) como por ejemplos arreglos, estructuras, enumerados, entre otros. identificador es el nombre que se le va a colocar a la variable, por supuesto debe cumplir con las especificaciones de identificador válido La instrucción debe finalizar con punto y coma Ejemplos de variables: int contar, total, numero; char letra; Float sueldo; Por estandarización para esta asignatura colocaremos todos los identificadores de variables en letras minúsculas. Es importante explicar que con la declaración de una variable se reserva una dirección (posición) de memoria que será reconocida con el identificador que se coloco en la declaración de la variable. Además C++ permite que en la instrucción de declaración se pueda inicializar la variable si se requiere, de la siguiente forma: tipo_de_dato identificador = valor_inicial; valor_inicial es el dato con el que se quiere inicializar la variable, por supuesto este dato debe ser coherente con el tipo de dato Ejemplos: char sexo; // variable de tipo char no inicializada int contador = 0; // variable de tipo entero inicializada en cero char letra_obtenida = ‘B’; // variable de tipo char inicializada en caracter B

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

21

bool encontrado = false; // variable de tipo booleano inicializada en false int contador = 0, acumulador; /* dos variables de tipo entero. La variable contador se inicializa en cero pero acumulador no se inicializa */ int ct1,ct2,ct3 = 0; /* se declaran tres variables entero y se inicializa con el valor de cero */ Por otro lado hay un concepto muy importante que es el Ámbito de las variables esto se refiere al alcance o vida de las variables; es decir dependiendo del lugar donde se declare la variable, ella tendrá vida (podrá ser utilizada). En general el alcance es global o local. Todo el programa (declaración global) En una función en particular (declaración local) Incluso en una porción (parte) del programa o en una porción (parte) de una función. Por ejemplo dentro de una instrucción if (si selectiva) se podría definir una variable, esta variable solo existe dentro del bloque if, si quisiéramos hacer referencia a esa variable fuera del if nos daría un error de identificador no declarado. Esto es posible ya que el lenguaje C++ nos permite declarar variables en cualquier parte del programa. Tipos básicos de variables en C++: Podemos distinguir tres grandes grupos de variables que son: globales, locales y dinámicas.

Variables Globales: también conocidas como variables externas. Son variables cuyo ámbito se extiende desde el punto donde se definen hasta el resto del programa; es decir la variable puede ser usada después de su definición hasta el final del programa. No podrá ser usada en las instrucciones que estén antes de su definición. Variables Locales: también conocidas como variables automáticas, se declaran siempre dentro de una función y son locales a la función donde han sido declaradas; es decir su ámbito esta confinado a esa función (solo se pueden usar en la función donde fueron definidas). Las variables definidas en funciones diferentes serán independientes unas de otras, incluso si tienen el mismo nombre. Existen ciertas consideraciones que se deben tener claras para trabajar con las variables locales: Las variables locales no pueden ser usadas fuera de la función donde se definieron. Los nombres de las variables no tienen porque ser únicos, pueden haber variables con el mismo nombre en funciones diferentes; en este caso cada variable es distinta ya que pertenece a funciones distintas. Las variables locales no existen en memoria hasta tanto no se ejecute la función. Es en el momento en que se ejecuta la función que estas variables automáticamente se crean en la memoria y desaparecen (liberan) cuando se termina la ejecución de la función.

Variables Dinámicas y de Objetos: Estas variables se crean y liberan durante la ejecución del programa. Existen funciones que permiten solicitar memoria para una
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

22

variable dinámica y también para liberar la memoria ocupada por la variable cuando ya no se necesite.

¿Te quedó claro cuál es la diferencia entre una constante y una variable? Las constantes como su nombre lo indica mantiene un valor fijo en todo el programa, en cambio las variables sus valores pueden cambiar a lo largo de la ejecución del mismo. Vamos, es hora de hacer una pausa, estira las piernas, digiere todo lo referente a la información de los datos y las cosas que permite hacer nuestro lenguaje C++, dentro de poco nos tocará probar todo esto, ten un poco de paciencia ya te sentarás en el computador a programar, recuerda el papel agunta todo pero el computador no. 5. Instrucción de asignación: El objetivo de este tipo de instrucción (comando o sentencia) es colocar valores (datos) a variables que se encuentren declaradas previamente. Sintaxis nombre_de_la_variable = dato ó expresión ó resultado de una función;

donde nombre_de_la_variable representa el identificador que se coloco para declarar la variable. A una variable se le puede asignar: Directamente un dato. El resultado de una expresión, en este caso primero se evalúa la expresión y luego el resultado es asignado a la variable. El resultado de una función, en este caso el tipo de dato de la función NO PUEDE SER VOID. Es importante que la asignación sea coherente con el tipo de dato de la variable. La instrucción debe finalizar con punto y coma 6. Instrucción de Entrada (leer) y Salida (escribir) de datos: Estas instrucciones permiten la transferencia de información entre el computador y los dispositivos periféricos (teclado, pantalla, impresora, diskettes, cds, pendrive, entre otros). En C++ la entrada y salida de datos se trabaja con flujos de streams, y las funciones propias para estas actividades se encuentran dentro de un archivo de cabecera predefinido en el lenguaje llamado iostream (traducción input output stream, entrada salida de stream).

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

23

Este archivo debe ser incluido dentro del programa haciendo uso de la directiva del preprocesador #include.

Entrada de datos: para leer datos se utiliza el flujo de entrada estándar cin (en realidad es un objeto) normalmente se leen los datos desde el teclado, este flujo utiliza el operador de extracción que se obtiene escribiendo dos signos mayor consecutivos así >>. La instrucción debe finalizar con punto y coma. Sintaxis cin >> nombre_de_la_variable;

Por ejemplo para leer la variable sueldo, las siguientes instrucciones son necesarias: #include <iostream> // incluye o inserta el archivo de cabecera iostream using namespace std; /* sirve para usar las declaraciones estándar del espacio nombrado (consola), esta instrucción es necesaria para poder utilizar el cin */ float sueldo; // declaración de la variable sueldo de tipo real ...... cin >> sueldo; /* coloca el resultado de la entrada por consola (lo que se escribió en el teclado) en la variable sueldo, el cin debe ser escrito en minúscula */ Pero puede ser que necesitemos leer el sueldo, el total de asignaciones y el total de deducciones, entonces podríamos leer las tres variables con una sola instrucción cin de la forma siguiente: cin >> sueldo >> asignaciones >> deducciones; En general la sintaxis sería: cin >> nombre_primera_variable >> nombre_segunda >>…>> nombre_última;

Salida de datos: para sacar o imprimir tanto datos como encabezados se utiliza el flujo de salida estándar cout (en realidad es un objeto). En principio mostraremos los resultados de nuestros programas en la pantalla. Este flujo de salida utiliza el operador de inserción que se obtiene escribiendo dos signos menor consecutivos así <<. Al igual que la instrucción cin el cout debe terminar con punto y coma y la palabra reservada cout debe ser escrita en minúscula. Sintaxis cout << “ literales ó titulos “ << nombre_de_la_variable;

Nótese que en una salida pueden estar presentes dos cosas:

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

24

La impresión de encabezados, literales o títulos: Para esto debe utilizar las comillas dobles, es decir encerrar entre comillas dobles los títulos que quiere mostrar o imprimir. La impresión de datos contenidos en variables: En este caso lo único que debe hacer es colocar el nombre de la variable. Pero también pudiese imprimir el resultado de una función en este caso debería colocar el nombre de la función con la lista de sus argumentos (parámetros). Las funciones y los argumentos serán detalladas más adelante en esta guía. Por ejemplo necesito leer la variable sueldo_neto, asignaciones y deducciones para calcular el sueldo total. Este resultado debe mostrarlo en la pantalla. Para satisfacer este requerimiento las siguientes instrucciones son necesarias: #include <iostream> // incluye o inserta el archivo de cabecera iostream using namespace std; /* sirve para usar las declaraciones estándar del espacio nombrado (consola), al igual que para el cin, sta instrucción es necesaria para poder utilizar el cout */ float sueldo, asigna, deduce, total; // declaración de las cuatro variables que necesito ...... cout << “Escriba el sueldo base : “ ; /*imprime mensaje a la pantalla para que el usuario este informado del dato que debe escribir */ cin >> sueldo; /* coloca el resultado de la entrada por consola (lo que se escribió en el teclado) en la variable sueldo */ cout << “\rEscriba las asignaciones: “; Esta instrucción comienza con una secuencia de escape \r su cin >> asigna; efecto es primero retorno de carro y después escribe el título cout << “\nEscriba las deducciones: “; Escriba las asignaciones: cin >> deduce; total = sueldo + asigna – deduce; Esta instrucción comienza con una secuencia de cout << “\n \nEl sueldo total es: “ << total;
escape \n su efecto es avanzar a la línea siguiente y después escribe el Escriba las asignaciones: Esta instrucción comienza con una secuencia de escape \n \n su efecto es dejar una línea en blanco y después escribe el título El sueldo total es:

título

Es importante recordarte que en esta asignatura resolveremos los problemas bajo el paradigma de la Programación Orientada a Objetos, pero en este tema lo que se pretende es que te familiarices con la sintaxis del Lenguaje C++, por eso es que haremos programas muy cortos sólo para probar las instrucciones de C++. Pero no te preocupes en la Unidad II nos encargaremos de afianzar los conocimientos que traes de objetos, aclararemos cualquier duda e indicaremos cual es la sintaxis de C++ para trabajar con ellos.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

25

A continuación se muestra el programa completo que permite desarrollar el planteamiento anterior // incluye o inserta el archivo de cabecera iostream #include <iostream> /* sirve para usar las declaraciones estándar del espacio nombrado (consola), al igual que para el cin, esta instrucción es necesaria para poder utilizar el cout */ using namespace std; // declaración de las cuatro variables que necesito float sueldo, asigna, deduce, total; int main() // función main { // inicio programa cout << "Escriba el sueldo base : " ; // escribe en pantalla el titulo Escriba el sueldo base: cin >> sueldo; // coloca el resultado de la entrada por consola en la variable sueldo cout << "\rEscriba las asignaciones: "; cin >> asigna; cout << "\nEscriba las deducciones: "; cin >> deduce; total = sueldo + asigna - deduce; /*asigna a variable total el resultado de la formula matemática */ cout << "\n \nEl sueldo total es: " << total; return 0; } // fin del programa

El resultado de este programa es el siguiente:

Escriba el sueldo base : 150000 Escriba las asignaciones: 10000 Escriba las deducciones: 3000

El sueldo total es: 157000

¿Por qué será que en el cuadro anterior que presenta la salida del programa hay líneas en blanco? Detalla que después de la palabra base hay un espacio en blanco y luego los dos puntos. ¿Será que es un error de transcripción?

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

26

Pues el cuadro representa la salida real del programa, las líneas en blanco son debido a las secuencias de escape que están escritas en las instrucciones cout “\n \r” y lo del espacio en blanco no es error si observas con detalle esta instrucción cout << "Escriba el sueldo base : " ; esta escrito el espacio en blanco 7. Proceso de creación de un programa ejecutable: Para poder crear un programa ejecutable lo primero que debes hacer es instalar el compilador con el que vas a trabajar. En nuestro es el Devcpp, luego debes leer el problema, analizarlo, plantear la secuencia de instrucciones que debe llevar (logica), escribir las instrucciones de acuerdo a la sintaxis del compilador y finalmente ejecutarlo. Toda la información que requieres para realizar estos pasos se encuentran en un archivo anexo (elaborado por la coordinación de programación), la cual estará publicada en la sección de RECURSOS del Curso Programación en http://seducla.ucla.edu.ve. 8. Operadores, operandos y expresiones: Todo programa en C++ consta de uno o más módulos llamados funciones. Dentro de las funciones puede haber definiciones y/o declaraciones, instrucciones de lectura y/o escritura, instrucciones selectivas o alternativas, instrucciones de ciclos repetitivos y expresiones simples y/o expresiones compuestas. Las constantes, variables y referencias a funciones (son operandos) se pueden unir con varios operadores para formar expresiones, entonces una expresión esta formada por la combinación de constantes, variables, nombres de funciones, paréntesis y operadores. C++ posee un gran número de operadores que se pueden agrupar en diferentes categorías. Para efectos de esta asignatura se estudiarán los siguientes operadores: Operador de asignación, operadores unarios., operadores aritméticos, operadores de incremento y decremento, operadores relacionales, operadores lógicos y el operador coma. 8.1. Operador de asignación: Existen varios operadores de asignación en C++, pero todos se utilizan para formar expresiones de asignación; que consisten en asignar o colocar el valor de una expresión (simple ó compuesta) a un identificador. Es común que a las expresiones de asignación se le llame también instrucciones de asignación (detalladas en el punto 5 de esta guía). El operador de asignación más usado es = Sintaxis: identificador = expresión; donde identificador representa generalmente una variable. expresión puede ser una constante, una variable, una función o una expresión más compleja la instrucción debe finalizar con punto y coma

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

27

Ejemplos: caracter = ‘b’; total = cantidad; numero = 3; doble = numero * 2; // variable caracter se le asigna la letra b (b es un dato) /* variable total se le asigna el valor contenido en la variable cantidad */ // variable numero se le asigna el dato 3 /* primero se resuelve la expresión numero * 2 y el resultado es colocado en la variable doble */ /* calcular es una función que tiene dos argumentos, primero se ejecuta la función calcular y el resultado es almacenado en la variable area */

area = calcular(base,altura);

Es importante aclarar que si los dos operandos de una expresión de asignación son de tipo de datos diferentes, el valor de la expresión de la derecha se convertirá automáticamente al tipo de datos que posee el identificador de la izquierda. Estas conversiones automáticas de datos dependen de un compilador a otro. Las conversiones automáticas que ejecuta el compilador son las siguientes: Una variable char puede recibir un valor entero (recuerde que los char se almacenan como números de acuerdo al conjunto de caracteres que use el compilador. En la mayoría de los casos es el conjunto de caracteres ASCII), Pero una variable char no puede nunca recibir un valor real. Una variable entera puede recibir el valor de una variable char, pero no un valor real. Una variable float y double puede recibir valores char y enteros El siguiente programa muestra ejemplos de estas conversiones: #include <iostream> using namespace std; int main() { char caracter; int entero; float real;

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

28

caracter = 'A'; entero = caracter; real = entero; cout << "caracter = " << caracter; cout << "\nentero = " << entero; cout << "\nreal = " << real; entero = 98; caracter = entero; cout << "\n\nnuevo entero = " << entero; cout << "\nnuevo caracter = " << caracter << "\n"; system("PAUSE"); return 0; }

Función predefinida que Imprime el mensaje Presione cualquier tecla para continuar . . . luego espera que se presione la tecla y continua con la ejecución de las instrucciones restante

La salida del programa es la siguiente: caracter = A entero = 65 real = 65 nuevo entero = 98 nuevo caracter = b Presione cualquier tecla para continuar . . .

Por otro lado el lenguaje C++ también permite realizar asignaciones múltiples.

El uso descuidado de las conversiones de tipo es una fuente frecuente de errores

Por otro lado el lenguaje C++ también permite realizar asignaciones múltiples. Sintaxis: identificador1 = identificador2 = .. = expresión;

Las asignaciones se efectúan de derecha a izquierda La instrucción debe finalizar con punto y coma

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

29

Por ejemplo:

variable1 = variable2 = variable3 = expresión;

1

2

3

ct_alumnos = ct_profesores = ct_obreros = 0; En este caso las tres variables ct_alumnos, ct_profesores y ct_obreros se les asigna el valor de cero. Adicionalmente C++ posee otros cinco operadores de asignación: +=, -=, *=, /=, %=

+= :

expresión1 += expresión2; es equivalente expresión1 = expresión1 + expresión2;

En este caso a expresión1 se le suma el resultado de expresión2 y el resultado es almacenado en expresión1. Normalmente expresión1 es un identificador definido como una variable.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

30

Ejemplos:

a += b; a += b*c;

// a = a + b; // a = a + b * c;
1

Prioridad de operadores matemáticos

2

a += resta(num1,num2);

// a = a + resta(num1,num2);

1

2

1. Ejecución de la función resta 2. Ejecución de la suma.

a += resta(num1,num2) * 4;

// a = a + resta(num1,num2) * 4;

1. Ejecución de la función resta 2. Ejecución de la multiplicación por prioridad del operador matemático * sobre operador + 3. Ejecución de la suma

1

2

3

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

31

Realiza la corrida del siguiente programa, indicando el detalle de las salidas en la ejecución de cada instrucción.

#include <iostream> using namespace std; int suma(int num1,int num2); int main() { #define b 2 int a = 1,c; cout << " valor de a = " << a; cout << "\n valor de b = " << b; a += b; cout << "\n a += b : resultado = " << a; cout << "\n\n Escribe valor para c: "; cin >> c; a += b*c; cout << "\n a += b * c : resultado = " << a; a += suma(8,2); cout << "\n\n a += suma(8,2) : resultado = " << a; a += suma(8,2) * 4; cout << "\n\n a += suma(8,2) * 4 : resultado = " << a << "\n\n"; system("PAUSE"); return 0; } int suma(int num1, int num2) { int resulta; resulta = num1 + num2; return resulta; }

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

32

Compara tu salida con la que presenta el siguiente cuadro: valor de a = 1 valor de b = 2 a += b : resultado = 3 . Escribe valor para c: 10 a += b * c : resultado = 23 a += suma(8,2) : resultado = 33 a += suma(8,2) * 4 : resultado = 73 Presione una tecla para continuar . .

-= :

expresión1 -= expresión2; es equivalente expresión1 = expresión1 - expresión2; En este caso a expresión1 se le resta el resultado de expresión2 y el resultado es almacenado en expresión1. Normalmente expresión1 es un identificador tal como una variable. Los ejemplos son similares a los presentados con el operador +=

*= :

expresión1 *= expresión2; es equivalente expresión1 = expresión1 * expresión2; En este caso a expresión1 se le multiplica el resultado de expresión2 y el resultado es almacenado en expresión1. Normalmente expresión1 es un identificador tal como una variable. Los ejemplos son similares a los presentados con el operador +=

/= :

expresión1 /= expresión2; es equivalente expresión1 = expresión1 / expresión2;
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

33

En este caso divide el valor de expresión1 entre el valor de la expresión2 y el resultado es almacenado en expresión1. Normalmente expresión1 es un identificador tal como una variable. Si expresión1 es una variable real puede almacenar el valor exacto de la división (la parte entera y decimal); pero si expresión1 es una variable entera solo almacena la parte entera resultante de la división. Los ejemplos son similares a los presentados con el operador +=

%= :

expresión1 %= expresión2; es equivalente expresión1 = expresión1 % expresión2; En este caso el operador % almacena el resto del resultado de una división. Entonces expresión1 tendrá como resultado el resto de la división de expresión1/expresión2. Normalmente expresión1 es un identificador tal como una variable. Los ejemplos son similares a los presentados con el operador += A continuación se presenta un cuadro resumen de todos los operadores de asignación y sus equivalencias: Símbolo = += -= *= /= %= Ejemplo Descripción x=y x += y x -= y x *= y x /= y x%=y Asigna el valor de y en x A x le suma el valor de y luego asigna el resultado a la variable x A x le resta el valor de y luego asigna el resultado a la variable x A x le multiplica el valor de y luego asigna el resultado a la variable x Divide x entre el valor de y luego asigna el resultado a la variable x A la variable x le asigna el resto de la división de x entre y Equivalencia x=y x=x+y x=x-y x=x*y x=x/y x=x%y

8.2.Operadores Unarios: Una clase de operadores muy particulares son los operadores unarios (también conocidos como operadores monarios), se denominan así porque requieren de un sólo operando para ejecutarse. En algunos casos estos operadores preceden al operando (el operador se escribe antes del

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

34

operando en formato prefijo) y en otro casos se escriben después del operando (formato postfijo). En C++ existen tres tipos de operadores unarios:

Operador de Menos Unario (-): Es un operador que indica el signo de una constante numérica, variable ó expresión. Su símbolo es -, pero no debe confundirse con el símbolo de la operación resta que necesita dos operandos. Operador sizeof(operando): Devuelve un valor numérico que representa el tamaño en bytes de su operando, aquí el operando es un parámetro. Ejemplo: cout << “\n tamaño bytes de un char = “ << sizeof(char); Resultado: tamaño bytes de un char = 1 Operador coma (,): Permite combinar dos o mas expresiones en una misma línea separadas por coma. Ejemplo: int a,b,c; a = 5; b = a; b = b * 2; cout << “valor de a es: “ << a ; cout << “\n valor de b es: “ << b ; Las instrucciones anteriores reportan la siguiente salida: valor de a es 4 valor de b es 10

⇒ ⇒ ⇒

8.3. Operadores aritméticos: Permiten realizar operaciones matemáticas. C++ dispone de cinco operadores aritméticos que se muestran en la siguiente tabla.

Símbolo del Operador + * / %

Operación matemática Suma Resta Multiplicación División Resto de la división (denominado operador módulo)

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

35

Especificaciones generales: Los operandos que trabajan con operadores aritméticos deben ser números. Por lo tanto pueden ser valores enteros, reales e incluso caracteres (recuerde los char internamente se almacena en número) El operador de resto % requiere que los dos operandos sean enteros y el segundo operando no puede ser nulo. El operador de división / requiere que el segundo operando no sea nulo. Si uno o los dos operandos tienen valores negativos, el signo del resultado de la operación matemática tendrá el valor cuyo signo esta determinado por las reglas del álgebra. Esto aplica solo para las operaciones suma, resta, multiplicación y división. Para el caso de uno o los dos operandos con signo negativo en la operación del resto, el signo del resultado en la mayoría de los compiladores es el signo del primer operando. Si existen diferencias de tipos de datos entre los operandos que intervienen en la operación matemática, puede ser que internamente se realice una conversión de tipo antes de que la expresión alcance su valor final. Lo cierto es que el resultado final se expresará con la mayor precisión manteniendo siempre la consistencia con los tipos de datos de los operandos. Como en todos los lenguajes de programación los operadores tienen prioridad al momento de ser ejecutados. Los paréntesis pueden alterar la prioridad establecida por defecto. Las prioridades por defecto están establecidas de acuerdo el siguiente orden Prioridad 1: Operadores de signo (operadores unarios) - + Prioridad 2: Operadores * Prioridad 3: Operadores + Si en la expresión a evaluar existen operadores con el mismo nivel de prioridad se ejecutan de acuerdo a como se presentan en la expresión de izquierda a derecha. Por ejemplo el resultado de la expresión -3 + 6 * 2 / ( 5 + 1) es -1 / %

A continuación se muestra la secuencia de pasos en la evaluación de la expresión

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

36

-3 + 6 * 2 / ( 5 + 1)
1 2 3

4

5

3 + 6 * 2 / (5 + 1) Paso 1 3 + 12 / (5 + 1) 3 + 12 / 6 3+2 -1 Paso 2 Paso 3 Paso 4 Paso 5. Resultado final

Cuál es el resultado de la siguiente expresión: 10 + (4 - 8) * (10 * (12 + 6) / 6) ?

Si la evaluación que hiciste esta correcta tu respuesta debe ser -230, si no acertaste revisa la evaluación por pasos que te presento a continuación: 10 - 8 * (10 * (12 + 6) / 6) 10 – 8 * (10 * 18) / 6 10 – 8 * 180 / 6 10 – 1440 / 6 10 – 240 -230 8.4. Operadores de Incremento (++) y Decremento (--): El operador de incremento hace que su operando se incremente en uno y a su vez el operador de decremento hace que su operando se decremente en uno.
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

37

Especificaciones generales: Si el operador de incremento o decremento se encuentra antes (prefijo) del operando las acciones en secuencia son que primero se incrementa o decrementa y después se le asigna el resultado. Si el operador se encuentra después del operando (postfijo) primero se le asigna el valor y después se ejecuta el incremento o decremento. Estos operadores pueden estar presentes directamente en instrucciones de salida ó como parámetros actuales de funciones, en cuyo caso la única variable que se modifica es la misma que acompaña el operador. Si estos operadores se encuentran en instrucciones de asignación, se modificará tanto la variable que recibe la asignación como la variable que acompaña al operador. ++n es equivalente a n +=1 es equivalente n = n + 1 --n es equivalente a n -=1 es equivalente n = n – 1 x = n++ es equivalente a dos instrucciones con la siguiente secuencia: x = n; n = n + 1; x = n-- es equivalente a dos instrucciones con la siguiente secuencia: x = n; n = n - 1; Ejemplos: #include <iostream> using namespace std; int main() { int a = 5, b, c = 2 ; cout << "OPERADOR PREFIJO\n";
1. Se incrementa la variable a 2. Se le asigna el resultado del incremento a la variable a

cout << "\n\n a = "<< a; cout << "\n ++a resultado = " << ++a << " valor de a = " << a; cout << "\n\n b = ++a"; cout << "\n valor de a antes de la asignacion = " << a; b = ++a; cout << "\n valor de a despues de la asignacion = " << a; cout << "\n valor de b = " << b; cout << "\n\n c = c + ++a"; cout << "\n valor de a antes de la asignacion = " << a;
Prof. Margarita Pereira 1. Se incrementa la variable a 2. Se le asigna resultado del incremento a la variable a 3. El nuevo valor de a se le asigna a la variable b

Unidad didáctica. Elementos básicos del lenguaje

38

cout << "\n valor de c antes de la asignacion = " << c; c = c + ++a; cout << "\n valor de a despues de la asignación = " << a; cout << "\n valor de c = " << c; // operador de decremento postfijo cout << "\n\n b = a--"; cout << "\n valor de a antes de la asignacion = " << a; b = a--; cout << "\n valor de a despues de la asignacion = " << a; cout << "\n valor de b = " << b;

1. Se incrementa la variable a 2. Se le asigna resultado del incremento a la variable a 3. Se suma el valor de la variable c con el nuevo valor de a, el resultado se deposita en c

1. El valor de la variable a se asigna a la variable b 2. Se decrementa el valor de a, el resultado es asignado a variable a

// Ejemplo compuesto por operador incremeto y decremento cout << "\n\n c = --a * ++a"; cout << "\n valor de a antes de la asignacion = " << a; c = --a * ++a; cout << "\n valor de a despues de la asignacion = " << a; cout << "\n valor de c = " << c << "\n\n"; system ("PAUSE"); return 0; }

Si suponemos que la variable a tiene el valor de 7 ¿ Con qué valor queda la variable c en la siguiente expresión? c = -- a * ++ a;

El resultado correcto de la variable c es 49. Acertaste? Si no es así, revisa la ejecución siguiente:

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

39

c = --a * ++a;
1
2

3

4

Suponemos que la variable a tiene el valor 7 Se decrementa a 1 Se le asigna el decremento a la variable a (ahora tiene valor de 6)
2

Se incrementa a Se le asigna el incremento a la variable a (ahora tiene valor de 7) Se multiplica a * a. Como el último valor de a es 7 entonces el resultado se obtiene de 7 * 7 que es 49 El valor 49 es asignado a la variable c

3

4

La Salida del Programa anterior es la siguiente:

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

40

OPERADOR PREFIJO a=5 ++a resultado = 6 valor de a = 6 b = ++a valor de a antes de la asignación = 6 valor de a despues de la asignación = 7 valor de b = 7 c = c + ++a valor de a antes de la asignación = 7 valor de c antes de la asignación = 2 valor de a despues de la asignación = 8 valor de c = 10 b = a-valor de a antes de la asignacion = 8 valor de a despues de la asignacion = 7 valor de b = 8 c = --a * ++a valor de a antes de la asignación = 7 valor de a despues de la asignación = 7 valor de c = 49 Presione una tecla para continuar . . .

8.5. Operadores Relacionales: Son utilizados para escribir condiciones simples. Es importante que ambos operandos (lado izquierdo y lado derecho) sean compatibles para poder realizar la comparación. A continuación se presenta un cuadro con los operadores relacionales que están disponibles en el lenguaje C++. Se usan normalmente en instrucciones de selección (if) y de iteración (while, for, do while). Cuando se evalúan los operadores relacionales el resultado es un valor cero (0) ó uno (1). El cero indica que la condición es falsa y el valor 1 indica que la condición es verdadera. Así por ejemplo la instrucción a = 7 > 3, se evalúa primero 7 > 3 esto es verdadero es decir el resultado es el valor 1 y ese resultado se le asigna a la variable a. Entonces a queda con el valor 1.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

41 Ejemplo 5==5 ‘a’ ! = ‘a’ 4<4 4 <= 4 ‘A’ > ‘B’ (6+2) >= 3 Resultado Verdadero Falso Falso Verdadero Falso Verdadero

Símbolo del Operador == != < <= > >=

Significado operador Igual Diferente Menor que Menor o igual que Mayor que Mayor o igual que

8.6. Operadores Lógicos: Son utilizados para escribir condiciones compuestas. El resultado de la evaluación de los operadores lógicos es una expresión booleana que representa alguno de los dos valores Verdadero ó Falso. Símbolo del Operador and ó && Significado operador y Resultado de la Evaluación Verdadero: si todas las condiciones son verdaderas. Falso: si por lo menos una condición es falsa or ó || o Verdadero: si por lo menos una condición es verdadera. Falso: si todas las condiciones son falsas. not ó ! negación Verdadera si el valor es falso. Falso si el valor es verdadero.

El operador not es un operador unario necesita un sólo operando, en cambio el operador and y el or requieren dos operandos.

Con relación a la prioridad de estos operadores lógicos, el operador not tiene prioridad mas alta que and, que a su vez tiene mayor prioridad que el

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

42

or. Como siempre los paréntesis alteran la prioridad normal de los operadores y si
existen varios operadores con la misma prioridad se ejecutan de izquierda a derecha.

8.7. Prioridad de los Operadores: Los operadores matemáticos tienen precedencia sobre los operadores relacionales y a su vez los operadores relacionales tienen precedencia sobre los operadores lógicos. Ejemplo: Si (salario < minimo * 0.1
1

and

nrohijos > 0)
3

2

4

9. Prueba y depuración de programas: La prueba o verificación de un programa consiste en la ejecución del programa con un conjunto de datos llamados datos de prueba, los cuales deben ser escogidos previamente y con mucho detalle; de tal forma que se puedan probar los casos generales (situaciones normales) y los casos excepcionales (situaciones extremas) y de esta manera asegurar el funcionamiento correcto del programa. La depuración de programas, consiste en primera instancia encontrar los errores de compilación, estos errores están relacionados con la sintaxis del lenguaje de programación y en segundo lugar los errores de ejecución que pueden presentarse de dos maneras: Primero con instrucciones que sintácticamente están correctas pero el computador no la puede ejecutar. Como por ejemplo una división por cero, la raíz cuadrada de un número negativo, entre otras. Segundo errores lógicos que están relacionados directamente con la lógica impuesta en la secuencia de instrucciones que tiene el programa. Estos errores provienen desde el diseño del programa son los más difíciles de encontrar ya que el programa puede correr pero los resultados reportados no son los esperados (correctos) de acuerdo a los datos de prueba. 10. Documentación de Programas: La documentación se refiere a todo el material de ayuda que acompaña un programa. Existen diferentes tipos de documentación una dirigida al usuario de la aplicación (persona que trabajará con el programa) esta se denomina documentación externa (porque esta fuera del programa) incluye diagramas, manuales de usuario en donde se especifiquen las instrucciones para ejecutar y usar el programa. La otra documentación esta dirigida a los programadores (personas que desarrollan los programas) que es la documentación interna (se logra escribiendo líneas de comentarios en el programa). Cada programa tendrá su propia documentación y la misma dependerá de un programa a otro.
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

43

Debe destacarse la importancia de la documentación de los programas, ya que esta actividad permite que los programas puedan ser mantenidos (ajustados) y depurados más fácilmente. En general, los programas que no presentan documentación o su documentación es escasa son difíciles de leer, entender, depurar y por su puesto mantener (realizar modificaciones) 11. Ejercicios Propuestos: Como ya te he dicho en varias ocasiones que la teoría sin la práctica no es nada, tendrás a tu disposición una lista de ejercicios propuestos para que adquieras destreza a nivel de programación y además es recomendable que no te conformes con hacer los programas en papel, debes transcribirlos en el computador compilarlos y ejecutarlos verificando que las salidas son las deseadas. Ya sabes ante cualquier duda contáctame por alguna de las vías que se han planteado en el curso, no tengas pena recuerda que tu principal objetivo es alcanzar el aprendizaje de la asignatura. Así que, es la hora de tomar el toro por los cuernos y comenzar a practicar con el compilador recordando la sintaxis de las instrucciones, para ello tendrás disponible en la sección de recursos del Curso Programación en http://seducla.ucla.edu.ve una lista de ejercicios.

Resumen
Al finalizar esta unidad temática debes haber aprendido que: Los programas son las herramientas que nos permiten comunicarnos con las computadoras. El lenguaje de programación nos permite desarrollar programas útiles para resolver problemas de diversas índoles académico, social, económico, político, comercial, científico, de la vida diaria, entre otros. Para que un programa de computación pueda ser ejecutado y probado debe ser escrito en algún lenguaje de programación (en nuestro caso lenguaje C++, con el compilador Devcpp que trabaja bajo Windows). La elaboración de un programa conlleva las siguientes actividades: 1. Leer detenidamente el enunciado del problema para analizarlo. 2. Escribir (o hacer modificaciones) la secuencia de instrucciones que tendrá el programa. Recuerda grabar. 3. Compilar el programa, para chequear los errores sintácticos (siguiendo las normas y reglas del lenguaje de programación), si hay errores regresar al paso 2, para corregirlos. 4. Encadenar el programa, con los archivos de cabecera. 5. Ejecutar el programa. Probar el programa con un conjunto de datos previamente seleccionados, para verificar que su funcionamiento es correcto. Si no esta correcto, verificar que tipos de errores presenta para regresar al paso 1 ó al paso 2.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

44

A través de los compiladores se convierten las instrucciones de lenguaje de programación de alto nivel a instrucciones de lenguaje de máquina que es el que entiende la computadora. Un programa esta formado por un bloque de definiciones y/o declaraciones y una función main que define la lógica central del programa. Debes tener cuidado con los identificadores que definas, recuerda que deben comenzar con una letra o caracter _ seguido por letras o números pero no deben haber espacios en blanco ni tampoco puedes utilizar las palabras reservadas del lenguaje. MUY IMPORTANTE, el uso de las mayúsculas y minúsculas. El lenguaje C++ las diferencia. Conveniente que trabajes con la estandarización que esta propuesta en esta guía la constantes en letras mayúsculas. Dispones de diferentes tipos de datos tales como char, int, double, float, bool, entre otros. Debes escoger los que necesitas de acuerdo al problema que estas resolviendo. MUCHO CUIDADO con las conversiones de tipo de datos, esto te podría ocasionar un gran dolor de cabeza. En el bloque de definiciones y/o declaraciones pueden existir:

Directivas del preprocesador: que son instrucciones especiales ejecutadas al principio de la compilación, comienzan con el símbolo # son tomadas en cuenta a partir de la línea donde son colocadas hacía adelante. Aquí dispones de #define para definir constantes simbólicas y #include para trabajar (incluir) con archivos de cabecera. Definición de constantes. Para definir valores fijos en el programa. Con la definición de constantes se reserva el espacio de memoria y se coloca un dato que será fijo para todo el programa. Declaración de variables. Para definir direcciones de memoria cuyo contenido puede variar a lo largo del programa. Con la declaración de la variable se reserva el espacio de memoria pero su contenido es indefinido (en términos de computación basura información no entendible), pero puedes declarar la variable y al mismo tiempo inicializarla, el lenguaje C++ lo permite. Implementación de funciones.

Dentro de la función main o cualquier otra función que desarrolles en tu programa puedes tener instrucciones de asignación (asignación simple y asignación múltiple), instrucciones de lectura, instrucciones de escritura, entre otras. Tienes a tu disposición un conjunto de operadores que se utilizan en las expresiones, estos son los que indican las operaciones que deben realizarse sobre los operandos.

Operador de Asignación: sirven para colocar un valor (puede ser directamente un dato, o una variable o una expresión o una función) en una variable. Recuerda que puedes tener asignaciones múltiples. Operadores Unarios: trabajan con un solo operando, aquí tenemos el menos unario (para especificar el símbolo negativo), el sizeof(tipo de dato) te sirve
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

45

para saber el tamaño en bytes de un tipo de dato y el operador coma para colocar varias instrucciones en una misma línea. Operadores Aritméticos: son útiles para realizar operaciones matemáticas (+, - , * , / , %). Operadores de Incremento y Decremento: sirven para incrementar y decrementar en un valor fijo uno(1) una determinada variable. Ellos funcionan de manera diferentes dependiendo del sitio donde se coloquen. Si se colocan antes del operando (formato prefijo ++a) primero se asigna la variable y luego se hace el incremento (se le suma el número 1). En cambio si se colocan después del operando (formato postfijo a++) primero se hace el incremento y luego se asigna la variable. Operadores Relacionales: te sirven para realizar comparaciones, generalmente se usan para escribir condiciones simples. Recuerda que ambos operandos (izquierdo y derecho) deben ser compatibles, el resultado de su evaluación es uno (1) para indicar que es verdadero y cero (0) para indicar que es falso. Aquí tienes = = (igual), ! = (diferente), < (menor) , <= (menor o igual), > (mayor), >= (mayor o igual). Operadores Lógicos: para construir condiciones compuestas. Su resultado es un valor lógico que representa Verdadero (TRUE) ó Falso (FALSE). Aquí tienes el and ó && (operador y, es verdadero si todas sus condiciones son verdaderas, falso cuando por lo menos una condición es falsa), or ó || (operador o, es verdadero cuando por lo menos una condición es verdadera y falso cuando todas las condiciones son falsas), por último el operador not ó ! para negar un valor booleano (será verdadero si el valor de la variable es falso, y falso si el valor de la variable es verdadero).

Debes darle importancia a la documentación de los programas ya que es el material de apoyo que acompaña al programa. Recuerda que existe una documentación interna a nivel de líneas de comentarios dentro del programa que será de utilidad para los programadores y una documentación externa para el usuario de la aplicación (programa) formada por manuales y cualquier otra material requerido por el usuario del programa. A continuación se presenta un cuadro con la sintaxis de la instrucciones estudiadas en esta guía.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

46

Instrucción Incluye un archivo de cabecera Define una constantes simbólica Define una constante declarada Declaración de variables

Sintaxis #include nombre_del_archivo_de_biblioteca #define nombre_de_la_constante dato const tipo_de_constante identificador = valor; tipo_de_dato identificador; // para una sola variable // para varias variables del mismo tipo de dato tipo_de_dato identificador1,identificador2, identificadorn; tipo_de_dato identificador = valor; nombre_de_la_variable = dato ó expresión ó resultado de una función; identificador1 = identificador2 = .. = expresión; cin >> nombre_de_la_variable; cin >> nombre_primera_variable >> nombre_segunda >>…>> nombre_última; cout << “ literales ó titulos “ << nombre_de_la_variable; // Comentario de una sola línea /* Comentario de múltiples líneas */

Declaración e inicialización de variables Instrucción de asignación

Instrucción de asignaciones múltiples Instrucción de lectura para una sola variable Instrucción de lectura para varias variables Instrucción de escritura (impresión) Instrucción de comentario

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

47

Autoevaluación Nro. 1
Ya culminamos la primera unidad y con la finalidad de verificar los conocimientos que adquiriste en esta sesión de estudios, realiza la autoevaluación Nº 1 presentada a continuación.

PARTE I. Selección simple: A continuación se presenta una tabla con dos columnas debes colocar en la columna izquierda el número que corresponda a la definición de la columna derecha. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) Errores de Sintaxis sueldo > 1500 ++ contador; #define max 10 main() int cantidad; cin >> cedula; // Función principal #include <iostream> cout << “Resultado es: “ << resulta; sueldo_neto += bono; (A= = B) and (B > C) (a * b) + (c/d) ct1 = ct2 = ct3 = 0; Documentación interna \n 1. Operador de Incremento 2. Secuencia de escape 3. Instrucción de Escritura 4. Línea de comentario 5. Condición compuesta 6. Constante simbólica 7. Operación matemática 8. Operador relacional 9. Le sirve al programador 10. Instrucción asignación múltiple 11. Declaración de una variable 12. Instrucción de asignación simple 13. Función principal 14. Archivo de cabecera 15. Compilador 16. Instrucción de Lectura

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

48

PARTE II. A continuación se presenta un programa, detecte los posibles errores sintácticos #include <iostream> { int num1,num2; resultado; cout << “Escriba el primer numero : “ ; cin >> num1; cout << “\nEscriba el segundo numero:; cin >> num2 cout << “\nEscriba el tercer numero: “; cin >> num3; resultado = (num1 + num2) * num3; cout << “\n El resultado de la suma es: resultado “; system(“pause”); } PARTE III. Desarrollo 1. ¿Qué se obtiene en las variables a1, b1, c1 después de ejecutar las siguientes instrucciones? a1 = 3; b1 = 20; c1 = a1 + b1; b1 += a1; a1 = b1; 2. ¿Cuáles de los siguientes identificadores son válidos? a) nombre e) main c) 2segundo f) Calcular c) sueldo neto g) boNificacion d) ct_1 h) function

3. Realice un programa en lenguaje C++ que teniendo como entrada dos números enteros permita realizar las siguientes operaciones matemáticas: suma, resta y multiplicación. Su programa debe estar elaborado con funciones.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

49

Respuesta a la Autoevaluación

PARTE I. Selección simple ( 15 ) ( 8) (1 ) (6 ) (13 ) (11 ) (16 ) ( 4 ) (14 ) (3 ) (12 ) (5 ) (7 ) (10 ) ( 9 ) (2 ) Errores de Sintaxis sueldo > 1500 ++ contador; #define max 10 main() int cantidad; cin >> cedula; // Función principal #include <iostream> cout << “Resultado es: “ << resulta; sueldo_neto += bono; (A= = B) and (B > C) (a * b) + (c/d) ct1 = ct2 = ct3 = 0; Documentación interna \n 1. Operador de Incremento 2. Secuencia de escape 3. Instrucción de Escritura 4. Línea de comentario 5. Condición compuesta 6. Constante simbólica 7. Operación matemática 8. Operador relacional 9. Le sirve al programador 10. Instrucción asignación múltiple 11. Declaración de una variable 12. Instrucción de asignación simple 13. Función principal 14. Archivo de cabecera 15. Compilador 16. Instrucción de Lectura

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

50

PARTE II. A continuación se presenta un programa, detecte los posibles errores sintácticos. Los errores serán colocados en azul #include <iostream> using namespace std int main() { int num1,num2, num3; int resultado; cout << “Escriba el primer numero : “ ; cin >> num1; cout << “\nEscriba el segundo numero:”; cin >> num2; cout << “\nEscriba el tercer numero: “; cin >> num3; resultado = (num1 + num2) * num3; // en la instrucción siguiente no imprime el valor de resultado cout << “\n El resultado de la suma es: resultado “; // deberia ser cout << “\n El resultado de la suma es: “ << resultado “; system(“pause”); }

PARTE III. Desarrollo 1. Las variables quedan con los siguientes valores: a1 23 b1 23 c1 22

2. Los identificadores válidos son a) d) f) g). El identificador b) no es válido porque comienza con un número El identificador c) no es válido porque tiene un espacio en blanco El identificador e) y h) no son válidos porque son palabras reservadas del leguaje

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

51

3. /* Programa en lenguaje C++ que teniendo como entrada dos números enteros permite realizar las operaciones matemáticas de suma, resta y multiplicación. */ #include <iostream> using namespace std; int Suma(int n1, int n2); int Resta(int n1, int n2); int Multiplicacion(int n1, int n2); int main() { int num1,num2; system ("cls"); // blanquea la pantalla cout << "\Tipee el primer numero: "; cin >> num1; cout << "\Tipee el segundo numero: "; cin >> num2; cout << "\n\n La suma es: " << Suma(num1,num2); cout << "\n\n La resta es: " << Resta(num1,num2); cout << "\n\n La multiplicacion es: " << Multiplicacion(num1,num2) << "\n"; system("pause"); // espera hasta que se presione tecla para finalizar return 0; } // Funcion que permite sumar los dos numeros int Suma(int n1, int n2) { return n1 + n2; } // Funcion que permite restar los dos numeros int Resta(int n1, int n2) { return n1 - n2; } // Funcion que permite multiplicar los dos numeros int Multiplicacion(int n1, int n2) { return n1* n2; }

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

52

Complemento. Ejercicios Propuestos.
A continuación te presento una serie de ejercicios que fueron elaborados por la Coordinación de la Asignatura de Programación (integrada por los profesores: Rosa Díaz, Olga Palma, María Auxiliadora Pérez, Glennys Clemant, Margarita Pereira y Giovanni Torrealba-Coordinador). El objetivo es que con ellos termines de ejercitar para reforzar y complementar todo el conocimiento adquirido a lo largo de esta unidad. Se abrirá un foro para preguntas/respuestas de estos ejercicios, así que ya sabes ante cualquier duda no dudes en preguntar todos estaremos disponibles para ayudarnos mutuamente, lo importante es culminar la unidad sin lagunas con claridad total para así arrancar con pie firme la segunda unidad. 1. Determinar cuáles de los siguientes son identificadores válidos. Si no son válidos, explicar por qué. a) registro1 b) 1registro c) archivo_3 d) return e) $impuesto f) ocupación g) nombre y direccion h) nombre_y_direccion i) nombre-y-direccion j) 123-45-6789 2. Mencionar las reglas referentes a los nombres de los identificadores. 3. ¿Son equivalentes las letras mayúsculas a las minúsculas en un identificador? 4. ¿Se pueden incluir dígitos en un identificador? 5. ¿Se puede incluir cualquier carácter especial en un identificador? 6. ¿Cuántos caracteres puede tener un identificador? 7. ¿Son todos los caracteres significativos en igual forma en un identificador? 8. ¿Qué es una palabra reservada en C++? 9. Mencionar y describir cuatro tipos básicos de datos en C++. 10. Nombrar y describir tres tipos básicos de constantes en C++. 11. ¿Qué es una variable? 12. ¿Se deben declarar todas las variables que aparecen en un programa en C++?
Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

53

13. ¿Cómo se les puede asignar valores iniciales a las variables en una declaración de tipo? 14. Supongamos que la versión de C++ puede reconocer sólo los ocho primeros caracteres del nombre de un identificador, aunque los nombres de los identificadores puedan ser de longitud arbitraria. ¿Cuáles de los siguientes pares de nombres de identificadores se considerarán como idénticos y cuáles se distinguirán? a) nombre, nombres b) direccion, Direccion c) identificador_1, identificador_2 d) lista1, lista2 e) respuesta, RESPUESTA f) cari, car_1 15. Escribir declaraciones apropiadas y asignar los valores iniciales dados para cada grupo de variables: a) Variables en coma flotante: a = -8.2, b = 0.005 b) Variables enteras: x = 129, y = 87, z = -22 c) Variables de carácter: c1 = 'w', c2 = '&‘ d) Variable entera larga: grande =123456789 e) Variable de carácter: eol = carácter de nueva línea 16. Resuelva las siguientes asignaciones declarando sus variables: a) Asigne 20 a una variable entera llamada nota b) Asigne ‘F’ a una variable char llamada sexo c) Asigne 1 a una variable bool llamada bisiesto d) Asigne 123.456 a una variable float llamada valor 17. Resuelva las siguientes operaciones declarando sus variables: a) Asigne la suma de a más b a una variable entera llamada a b) Asigne la resta de a menos b a una variable float llamada a c) Asigne la multiplicación de a por b a una variable entera llamada a d) Asigne la división de a entre b a una variable float llamada a e) Asigne la división entera de a entre b a una variable entera llamada a 18. Resuelva las siguientes operaciones con expresiones abreviadas a) Asigne la suma de a más b a una variable entera llamada c

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

54

b) Asigne la resta de a menos b a una variable float llamada c c) Asigne la multiplicación de a por b a una variable entera llamada c d) Asigne la división de a entre b a una variable float llamada c e) Asigne la división entera de a entre b a una variable entera llamada c 19. Resuelva las siguientes operaciones con expresiones abreviadas a) x = x + 1 b) y = y – 1 c) x = x + 1 + y – 1 d) y = y – 1 + x + 1 e) x = x + 1 - y – 1 f) y = y – 1 - x + 1 20. Dados a = 1, b = 2 y c = 3, determine el valor final de las variables a, b y c en cada expresión independiente a) a = ++b + ++a b) b = b – c++ c) c = --c – b++ d) a = b > c e) b = c > b and a < b f) c = a * 2 > c or b * 2 > c

Instructivo para la Instalación del compilador DevCpp
A continuación te presento un instructivo muy sencillo y fácil de seguir para que puedas instalar el compilador con el que vamos a trabajar en esta asignatura. Lo puedes seguir paso a paso como si fuera una receta de cocina es muy fácil así que anímate e inténtalo. Este instructivo fue realizado por la Coordinación de la Asignatura de Programación (integrada por los profesores: Rosa Díaz, Olga Palma, María Auxiliadora Pérez, Glennys Clemant, Margarita Pereira y Giovanni Torrealba-Coordinador). Debes saber que este instructivo también será publicado al comienzo de la asignatura en la sección de RECURSOS del Curso Programación en: http://seducla.ucla.edu.ve.

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

55

Universidad Centroccidental “Lisandro Alvarado” Decanato de Ciencias y Tecnología Lapso 2008-I

Programación I

Instructivo para la clase 1
Elementos Básicos de C++

Coordinación del Área de Programación

Contenido del Instructivo de la Unidad I

Instalación del compilador DevC++ Configuración del compilador DevC++ Primer programa en C++ Almacenamiento de los programas Pasos para realizar los programas Otras reglas a seguir Ejercicios propuestos

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

56

Instalación del compilador DevC++
1. Ejecute el programa de instalación

2. No instale sobre una versión pre-existente (si ya había instalado antes)

3. Escoja el lenguaje a usar durante la instalación

Instalación del compilador DevC++
4. Si está en acuerdo con los términos de la licencia, Acepte

5. El tipo de instalación es FULL

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

57

Instalación del compilador DevC++
6. Los archivos del compilador se instalarán en la carpeta C:\Dev-Cpp

7. La instalación está en progreso

Instalación del compilador DevC++
8. Permita que todos los usuarios en el equipo tengan acceso al compilador

9. Ha terminado con la instalación

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

58

Configuración del compilador DevC++
Al ejecutar por primera vez el compilador DevC++, observará los siguientes mensajes y opciones de configuración... En caso de ya tenerlo instalado también puede configurarlo... Revise la información en estos diálogos para saber qué menú se lo permite... 1. Notificación de versión beta...

2. Seleccione el lenguaje Español (Latino América), de manera que toda la información del compilador se muestre en castellano

Configuración del compilador DevC++
3. Indique que SI desea instalar la información de los headers files (esto le será de ayuda oportunamente)

4. YES... Ahora se creará un caché para optimizar el rendimiento del compilador

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

59

Configuración del compilador DevC++
5. Ha terminado de configurar el compilador DevC++... Presione el botón OK

6. Esto es lo que verá... Es la interfaz de desarrollo integrado (IDE):

• • • •

Puede escribir los programas Compilarlos y correrlos Probarlos y depurarlos Organizarlos ... todo eso es la integración (IDE)

Prim er programa en C++
Este primer programa lo que hace es pedir 4 notas parciales de un estudiante y calcular la nota final (la suma de las notas parciales)

Análisis del problema
Entradas: las 4 notas (N1, N2, N3, N4) Proceso: Acumulación (suma) Salidas: la nota final (NF) Ejemplo: Sean las notas N1=20, N2=15, N3=20, N4=10 El proceso es NF=20+15+20+10 La nota final será 65

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

60

Primer programa en C++
Este primer programa lo que hace es pedir 4 notas parciales de un estudiante y calcular la nota final (la suma de las notas parciales)
Use este botón (Nuevo código fuente) para crear el archivo donde escribirá su programa

Escriba el código del programa

Prim er programa en C++
El mismo programa anterior pero documentado con notas explicativas, bien sea una nota de sólo 1 línea (comienzan con //), o de múltiples líneas (encerradas entre los caracteres /* y */)

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

61

Primer programa en C++
Compile su programa... Entonces podrá observar si presenta errores de compilación... La lista de errores aparece en la parte inferior del DevC++. Una vez que no hayan errores de compilación, quedan por revisar los errores de ejecución, o errores de lógica...
Botón para compilar D eliberadamente se quitó la llave del comienzo del bloque main ()

Observe en esta sección el reporte que presenta D evC++ en relación al error... Mientras no esté familiarizado con cada tipo de error, deberá leer detenidamente estas instrucciones

Prim er programa en C++
Compile su programa... Ahora se ha corregido el error mostrado en la lámina anterior... El compilador DevC++ muestra el diálogo indicando Done (HECHO)...
Botón para compilar Se colocó la llave que estaba faltando Cuando ya no hay errores de compilación, se muestra este diálogo que indica que está HECHA (Done) la compilación

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

62

Primer programa en C++
Corra su programa... Una vez que su programa no tiene errores de compilación, puede ejecutarlo... Ahora deberá revisar que no hayan errores de ejecución (de lóg ica)
Botón para Ejecutar el programa En este caso no hay errores de ejecución... ¿Cómo saber que no hay errores de ejecución? R. Ya no hay errores cuando la salida es la misma que se planeó en el análisis del problema!

Para asegurarse que su programa está definitivamente correcto, deberá: PROBAR SU PROGRAMA CON DISTINTOS CASOS PARA EL MISMO PROBLEMA

Prim er programa en C++
Ejemplo del programa con errores de ejecución... Se ha introducido un error (multiplicar en lugar de sumar)... El programa compila y corre, pero NO FUNCIONA CORRECTAMENTE ...

Hay un error en el proceso... Esto no impide que el programa se compile correctamente... Lo que producirá será un error en la ejecución... Un error en la lógica... La consecuencia de los errores de ejecución, o errores de lógica, es que la salida NO ES LA ESPERADA... Tenga a la mano el análisis y el ejemplo del problema para que verifique la salida de su programa...

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

63

Almacenamiento de los programas
Prepare la carpeta donde guardará los archivos de los programas (en su pen-drive, o disco duro). La carpeta debe llamarla Prog1, en la carpeta raiz Suponga su pen-drive en la unidad F:, entonces cree la carpeta F:\Prog1 Destine una carpeta para los ejercicios de cada clase Llámela Clase01 (ej. para la clase 1), dentro de la carpeta Prog1 Entonces tendrá la carpeta F:\Prog1\Clase01 Note que cada semana será una clase Denomine convenientemente cada ejercicio Use el prefijo “Ej_01”, más la secuencia semana-ejercicio... P.ej. El ejercicio 1 llámelo “Ej01-01.cpp” (ejercicio 1 de la semana 1); “Ej01-02.cpp” es el segundo de la semana 1. El prefijo “Dm” significa “Demo”; estos los da el profesor Documente su programa Escriba en comentarios el planteamiento del ejercicio Escriba también, sintéticamente, un ejemplo del problema

Pasos para realizar los programas
Realice un análisis del problema planteado Identifique las entradas, los procesos y las salidas Haga un ejemplo de la corrida del programa Asigne valores a las entradas definidas Muestre los resultados que deberán producirse Considere var iantes que puedan afectar la lógica planteada Establezca restr icciones al alcance de la solución planteada Afine su anális is Revise y haga los ajustes necesarios a las entradas, procesos y salidas planteadas Tenga en consideración que el anális is de los problemas constituye el 25% de la nota en esta as ignatura Escriba su programa en C++ (con la IDE de DevC++) Ahora sí debe proceder a transcr ib ir el programa Escribir el programa en C++ significa explicarle al computador lo que debe hacer, pero usando las reglas de C++ Compile, ejecute y depure su programa Deberá revisar y corregir su programa hasta tanto la salida corresponda con lo planteado en el anális is

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

64

Otras reglas a seguir
Algunas reglas de los programas básicos en C++ Todo programa requiere la función main Las variables deben ser declaradas con su tipo respectivo Puede declarar múltiples variables del mismo tipo en una misma línea Todas las instrucciones terminan en punto y coma “;” Use las llaves para encerrar bloques de instrucciones “{“ – “}” Los comandos e identificadores son sensibles a las mayúsculas – minúsculas; p.ej. La variable “Nota” no es la misma que “nota”

Otras reglas a seguir
Reglas del estilo de programación Los programas deben escribirse ordenadamente Escriba el planteamiento del problema al comienzo de su programa Esto es el estilo, o métricas de programación, el orden que deben llevar las instrucciones del programa Un programa con estilo correcto: a) se ve mejor, b) se entiende más fácil, c) lo entienden mejor los compañeros del equipo de trabajo, d) no resta nota al ser evaluado por el profesor Evite dejar líneas en blanco Use un espacio en blanco para separar comandos, operadores e identificadores Escriba sólo una instrucción por línea Use sangría a 3 espacios para escr ib ir las instrucciones de cada bloque

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

65

Otras reglas a seguir
Ejemplo de un programa con estilo de programación correcto El programa que hemos revisado está correcto en cuanto a estilo de programación... Note lo siguiente: La sangría a 3 espacios para el bloque main Los espacios entre comandos, identificadores, operadores... El enunciado del problema

Otras reglas a seguir
Ejemplo de un programa con estilo de programación INCORRECTO Se trata del mismo programa que hemos revisado... Igualmente compila y funciona... Observe que ahora está todo desordenado: No usa sangrías Los comandos y las fórmulas tienen las var iables y operadores sin espacios, lo que dificulta su comprensión (situación que sería más resaltante en programas largos... más tarde en este curso...) El programa tiene líneas en blanco (innecesarias)

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

66

Cómo verás tienes toda la información a la mano. Así que vamos a trabajar con todos los hierros. Estoy segura que lograrás los objetivos que se plantearon al comenzar esta unidad. No se te olvide, instala el compilador y ejercita la sintaxis de todas las instrucciones. Por supuesto, ante cualquier duda pregunta somos un equipo y te recuerdo nuestro lema

Prof. Margarita Pereira

Unidad didáctica. Elementos básicos del lenguaje

67

Fuentes de Información
Cabrera, H. (1997). Glosario de términos de computación. Monografías.com Disponible en: http://www.monografias.com/trabajos/gloscompu/gloscompu.shtml. [Consulta 2008, Octubre 2] Dorrego, E. (2006). Educación a Distancia y Evaluación del Aprendizaje. RED. Revista de Educación a Distancia, número M6 (Número especial dedicado a la evaluación en entornos virtuales de aprendizaje). Disponible en: http://www.um.es/ead/red/M6/dorrego.pdf. [Consulta 2008, Septiembre 19] Lopez, G. (2003). Educación a Distancia: Evaluación. Disponible en: http://www.ucv.ve/ead/html/educacion_a_distancia__evaluac.html. [Consulta 2008, Septiembre 19] Milán, M y Otros. (1997). Dimensiones del proceso de Evaluación. Monografías.com. Disponible en: http://www.monografias.com/trabajos42/evaluacion-comoproceso/evaluacion-como-proceso2.shtml.[Consulta 2008, Septiembre 24] Milán, M. (s/a.) La Evaluación como un proceso participativo. Parte IV. Espacio logopédico.com. Disponible en: http://www.espaciologopedico.com/articulos2.php?Id_articulo=1358. [Consulta 2008, Septiembre 28] Parede, R. (2005). Autoevaluación y Coevaluación. Disponible en: http://boards4.melodysoft.com/app?ID=2005AAV0101&msg=96&DOC=21. [Consulta 2008, Septiembre 22] Rivera, G. (1997). La Educación a Distancia Vs. Nuevas tecnologías. Monografías.com. Disponible en: http://www.monografias.com/trabajos5/nutec/nutec.shtml. [Consulta 2008, Septiembre 24]

Prof. Margarita Pereira

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->