23
1.-IDENTIFICADORES Los identificadores (nombres de variables, constantes, etc.) deben comenzar con una letra del alfabeto (mayúscula o minúscula) o con un carácter subrayado y pueden tener uno o más caracteres. Los caracteres segundos y posteriores pueden ser letras, dígitos o un subrayado, no permitiéndose caracteres no alfanuméricos ni espacios. C++ es sensible a las mayúsculas. Las letras mayúsculas y minúsculas se consideran diferentes. Paga_mes es un identificador distinto a paga_mes Palabras reservadas Las palabras reservadas o claves no se pueden utilizar como identificadores, debido a su significado estricto en C++; tampoco se pueden redefinir. La Tabla enumera las palabras reservadas de C++ según el ARM2. Tabla Palabras reservadas (keywords) de ANSI/ISO C++ asm* default for new* sizeof typedef auto delete* friend* operator* static typename bool* do goto private* struct union break double if protected * switch unsigned case else inline* public* template* using catch* enum int register this* virtual* char explicit* long return throw* void class* extern mutable* short true* volatile* const false* namespace * signed try* while continue float * Estas palabras no existen en C ANSI.

Tarea 1 - C++ - copia

Embed Size (px)

Citation preview

1.-IDENTIFICADORES

Los identificadores (nombres de variables, constantes, etc.) deben comenzar con una letra del alfabeto (mayscula o minscula) o con un carcter subrayado y pueden tener uno o ms caracteres. Los caracteres segundos y posteriores pueden ser letras, dgitos o un subrayado, no permitindose caracteres no alfanumricos ni espacios.C++ es sensible a las maysculas. Las letras maysculas y minsculas se consideran diferentes.Paga_mes es un identificador distinto a paga_mes

Palabras reservadas

Las palabras reservadas o claves no se pueden utilizar como identificadores, debido a su significado estricto en C++; tampoco se pueden redefinir. La Tabla enumera las palabras reservadas de C++ segn el ARM2.Tabla Palabras reservadas (keywords) de ANSI/ISO C++

asm* default for new* sizeof typedefauto delete* friend* operator* static typenamebool* do goto private* struct unionbreak double if protected* switch unsignedcase else inline* public* template* usingcatch* enum int register this* virtual*char explicit* long return throw* voidclass* extern mutable* short true* volatile*const false* namespace* signed try* whilecontinue float

* Estas palabras no existen en C ANSI.Los diferentes compiladores comerciales de C++ pueden incluir, adems, nuevas palabras reservadas. Estos son los casos de Borland, Microsoft y Symantec.Nuevas palabras reservadas de ANSI C++

bool false reinterpret_cast typeidcons_cast mutable static_cast usingdynamic_cast namespace true wchar_t

Identificadores de constantes predefinidas

ConstantesC++ contiene constantes para cada tipo de dato simple (integer, char, etctera). Las constantes pueden tener tres sufijos, u, l y f, que indican tipos unsigned, long y float, respectivamente. Asimismo, se pueden aadir los prefijos o y ox que representan constantes octales y hexadecimales.456 0456 Ox456 //constantes enteras: decimal, octal, hexadecimal1231 123ul //constantes enteras: long, unsigned long'B' 'b' '4' //constantes tipo char3.1415f 3.14159L //constantes reales de diferente posicincadena de caracteres //constante de cadenaLas cadenas de caracteres se encierran entre comillas, y las constantes de un solo carcter se encierran entre comillas simples. //cadena vaca, '\0'Una constante literal es un valor escrito directamente en el programa siempre que se necesite. Por ejemplo, int miEdad = 25;miEdad es una variable de tipo int; 25 es una constante literal.Constantes con constEn C++, los identificadores de variables/constantes se pueden declarar constantes, significando que su valor se inicializa pero no se puede modificar.Estas constantes se denominan simblicas. Esta declaracin se realiza con la palabra reservada const.const double PI = 3.1416;const char BLANCO = ' ';const double PI_EG = PI;const double DOBLE_PI = 2*PI;El modificador de tipos const se utiliza en C++ tambin para proporcionar proteccin de slo lectura para variables y parmetros de funciones.

Las funciones miembro de una clase que no modifican los miembros dato a que acceden pueden ser declarados const. Este modificador evita tambin que parmetros parados por referencia sean modificados:void copy (const char* fuente, char* destino);Constantes con define#C++ soporta tambin el mtodo tradicional de declaracin de constantes, aunque ahora est obsoleto. Para declarar una constante por este mtodo se debe realizar con la palabra reservada #define.#define estudiantesPorClave 50#define PI 3.1416#define hex 16Nomenclatura de constantes* Los nombres de constantes tienen que ser auto explicativos.En s mismos tienen que contener una explicacin de su uso o finalidad.* Para componer los nombres de constantes se utilizarn principalmente sustantivos, pudiendo calificarse con adjetivos.Esto se realizar as para mejorar la identificacin de los distintos componentes de un sistema.* Las constantes se tienen que definir en maysculas (tanto las definidas por #define como las definidas utilizando const).Si se componen de varias palabras se deberan separan por el carcter "_".La constante se conformar mediante un sustantivo (o conjunto de sustantivos) con posibles adjetivos.De esta forma seguimos una norma ampliamente utilizada por los programadores.Ejemplos de definicin de constantes:#define PI 3.14#define DIAS_DE_LA_SEMANA 7

Utilizacin de defines, macros, constantes* Se deben utilizar constantes (const) o enumeraciones (enum) para definir constantes, evitando el uso de constantes con #define en lo posible.#define es una directiva para el preprocesador, la cual se aplica con carcter global antes de hacer ninguna comprobacin por parte del compilador. Sus problemas son los consabidos efectos colaterales.Por ejemplo sera desaconsejable utilizar lo siguiente:// Definimos (desaconsejado) valores para datos y constantes// con #definetypedef int BOOLE // el tipo de dato para los resultados#define FALSO 0 // definicin de resultado falso#define CIERTO 1 // definicin de resultado cierto// El numero de das de una semana#define DIAS_DE_LA_SEMANA 7Sera ms correcto utilizar lo siguiente:enum EBoole // Definimos el tipo de dato EBoole para los resultados{FALSO, // 0 por defectoCIERTO // Verdad = 1};// La constante numero de das de la semanaconst int nDIAS_SEMANA = 7;

Identificadores de tipos de datos, funciones y procedimientos predefinidosTipos de datosLos tipos de datos en C++ se dividen en dos grandes grupos: integrales (datos enteros) y de coma flotante (datos reales). La Tabla muestra los diferentes tipos de datos en C++Tipos de datos simples en c++

char signed char unsigned charshort int longunsigned short unsigned unsigned longfloat double long doubl

Los tipos derivados en C++ pueden ser: Enumeraciones (enum) Estructuras (struc) Uniones (union) Arrays Clases (class y struct) Uniones y enumeraciones annimas PunterosIdentificadores de constantes definidas por el usuarioIdentificadores de tipos definidos por el usuarioIdentificadores de variables y parmetros

Declaracin de variablesTodas las declaraciones de variables y funciones se deben hacer al principio del programa o funcin. Si se necesitan declaraciones adicionales, el programador debe volver al bloque de declaraciones al objeto de hacer los ajustes o inserciones necesarios. Todas las declaraciones deben hacerse antes de que se ejecute cualquier sentencia. As, la declaracin tpica en C++En C++, las declaraciones de variables se pueden situar en cualquier parte de un programa. Esta caracterstica hace que el programador declare sus variables en la proximidad del lugar donde se utilizan las sentencias de su programa. Nomenclatura de las variables* Los nombres utilizados para las variables tienen que ser autoexplicativos. De manera que en el propio nombre est la indicacin del uso o finalidad de las variables.* Para componer los nombres de las variables se utilizarn principalmente sustantivos, pudiendo calificarse con adjetivos.Esta norma se establece para mejorar la identificacin de los distintos componentes de un sistema.* Una prctica muy habitual es utilizar una serie de prefijos para poder identificar el tipo de variable de una forma sencilla y rpida. Este tipo de nomenclaturas se denomina notacin hngara.Estos prefijos se aaden al nombre de la variable, sin separarlos de ninguna forma, como se muestra en los ejemplos de la tabla.Tipo Prefijo Ejemplovoid v void vVariableVaca;bool b bool bOperacionValida;char c char cTeclaPulsada;int n int nNumeroCeldas;long l long lTotalUnidades;float f float fPrecioUnitario;double d double dAnguloMinimo;* (puntero) p int * pnMatrizValores;& (referencia (C++)) r float & rfMaximoAngulo;[] (array) a double afRangosMaximos[3];enum (enumeracin) e EBoole eResultado;

Como se ve en los mismos ejemplos indicados en esta tabla, se pueden utilizar varios de estos prefijos en una misma definicin.Para el tema de cadenas de caracteres (strings, no confundir con la clase String), podramos pensar que la forma correcta de definirlas es, por ejemplo: char acNombrefichero[256+1];. Pero para poder identificarlas, ya que se usan de manera extendida, podramos usar el prefijo s. Por ejemplo:// definicin de una cadena de caractereschar sNombreFichero [256+1];De forma adicional, podramos diferenciar la definicin de una cadena de caracteres mediante el uso de [] (corchetes) (como en el ejemplo anterior) de la definicin de un puntero a carcter (char *) que contendra la direccin de memoria donde empieza esta cadena de caracteres.// definicin de un puntero a una zona de memoria que contiene una cadenachar *psPunteroAlNombre;Estas dos definiciones se usan para esos casos, y quizs contradigan en parte la anterior norma de nomenclatura, pero pueden ayudar a diferenciar las variables "cadena de caracteres" definidas por [] (corchetes) de las definidas mediante char * (puntero a carcter), ya que pueden ser tratadas de manera muy diferente por los compiladores, y la forma de utilizarlas por el programador es diferente.Para otros tipos de variable no especificados en la tabla anterior no se establece prefijo, pero se puede utilizar algn otro definido por otra norma o por el propio usuario.Por ejemplo los siguientes:Tipo Prefijobyte o unsigned char (uchar) byword o unsigned int (uint) wunsigned long (dword) dwhandle (manejador, puntero de objetos de windows) h

* Para el contador de bucle for se pueden utilizar variables numricas llamada i, j... siempre que esto no perjudique en la comprensin del cdigo (y estas variables se utilicen solamente dentro del bucle del for).Para estos casos (C++) se recomienda declarar la variable i en el propio bucle.Ejemplo:for (int i=0; i}Sentencia repetitiva con condicin de salida (do)

La sentencia do acta como la sentencia while. La nica diferencia real es que la evaluacin y la prueba de salida del bucle se hace despus que el cuerpo del bucle se ha ejecutado, en lugar de antes. El formato es:dosentenciawhile (expresion);sentencia siguienteSe ejecuta sentencia y a continuacin se evala expresin, y si es verdadero (distinto de cero), el control se pasa de nuevo al principio de la sentencia do, y el proceso se repite hasta que expresin es falso (cero) y el control pasa a la sentencia siguiente.Sentencia repetitiva con nmero predeterminado de iteraciones (FOR)

Una sentencia for ejecuta la iteracin de un bucle un nmero determinado de veces. for tiene tres componentes: expresin1 inicializa las variables de control del bucle; expresin2 es la condicin que determina si el bucle realiza otra iteracin; la ltima parte del bucle for es la clusula que incrementa o decrementa las variables de control del bucle. El formato general de for es:for (expresin1; expresin2; expresin3)sentencia;|{};

expresin1 se utiliza para inicializar la variable de control de bucle; a continuacin, expresin2 se evala; si es verdadera (distinta de cero), se ejecuta la sentencia y se evala expresin3, y el control pasa de nuevo al principio del bucle. La iteracin contina hasta que expresin2 es falsa (cero), en cuyo momento el control pasa a la sentencia siguiente al bucleSentencia Break y continue

El flujo de control ordinario de un bucle se puede romper o interrumpir mediante las sentencias break y continue.La sentencia break produce una salida inmediata del bucle for en que se encuentra situada:for (i = 0; i < 100; ++i){cin >> x;if (x < 0.0)cout