Teoria Edy C++

download Teoria Edy C++

If you can't read please download the document

Transcript of Teoria Edy C++

LIBRO 1 Indice. 1. Programacin orientada a objetos. Usando C++. Notacin Hngara. Secuencias de escape y de control : \n \t \a \\ \ Cdigo ASCII Equivalencias decimal hexadecimal octal - binario Tipos de Datos. Asignar un valor a una varible. Conversion de tipos en una operacin. o INTDOUBLE.

Operaciones con tipos de datos diferentes.

2.1. int 2.2. Uso de cadenas de caracteres. Char. 2.3. float y double. 2.4. void. 2.5. enum. 2.6. struct. 2.7. const. 2.8. typedef. 2.9. bool. 3. Apuntadores o punteros. Apuntadores a cadenas. Apuntador NULL.

Punteros a estructuras ( ->). Variables dinmicas con punteros - Memoria dinmica. o New, o delete.

4. Declaracines. Variables. Funciones. 5. Arreglos, Arrays o Matrices. Arreglos simples. Arreglos multidimensionales. Pasando arreglos a funciones. Librera Vector- Array. Librera Map Matrices asociativas. goto 6. Estructuras de Control. Proposiciones condicionales. If if-else if-else if- else if - else Switch. 7. Proposiciones iterativas. 7.1 for. 7.2 while. 7.3 Do. 8. Operadoredes. Operadores unuarios. Operador binario. Operadores lgicos. Operadores sobrecargados. Otros Operadores. # define Operador de preprocesador Creacin de macros.

1

La directiva "#include"

10. Funciones 10.1 Llamadas por valor y llamadas por referencia. Inline. Funciones en lnea. 11. Clases. Acceso a variables miembro mediante . o ->. Herencia. Clases Heredadas. Polimorfismo. Virtual. Clases y Estructuras Anidadas. Variables Miembro Funciones amigas o friendo. Template Plantillas. Constructores y destructores. Libreras. Organizacin de archivos Uso de libreras. Encabezado de Archivos .h Archivos fuente .cpp 16. Entrada y salida en C++ Entrada y salida de archivos Vocabulario.

Formatos.

2

1. Fundametos de la programacin orientada a objetos.La programacin orientada a objetos (OOP) se basa en la nocin referente a los objetos del mundo real para desarrollar aplicaciones. Tambin se pueden relacionar clases individuales en una jerarqua de clases. Los fundamentos de la OOP incluyen clases, objetos, mensajes, mtodos, herencia y polimorfismo. Una clase define una categora de objetos. Cada objeto es una instancia de una clase. Clases y objetos Un objeto comparte los mismos atributos y la misma funcionalidad con los dems objetos de la misma clase. Normalmente, un objeto tiene un estado nico, definido por los valores actuales de sus atributos. La funcionalidad de una clase determina las operaciones posibles para las instancias de esa clase. El C++ hace llamadas a los atributos de los datos miembro de la clase y a las operaciones de las funciones miembro de la clase. La clase encapsula los datos miembro y las funciones miembro. Si regresamos al ejemplo del reloj CASIO, los botones del reloj representan las funciones miembro de la clase de relojes CASIO y lo que aparece en la pantalla de los mismos representa un dato miembro. Puedo oprimir determinados botones para editar la fecha y la hora. En trminos de la OOP, las funciones miembro modifican el estado del objeto y cambian sus datos miembro. Herencia En los lenguajes orientados a objetos, se puede derivar una clase a partir de la otra. Con la herencia, la clase deriva (tambin llamada clase descendiente), hereda los datos miembro y funciones miembro de sus clases padre y ancestro Derivar una clase refina a la clase padre, pues le aade nuevos atributos y nuevas operaciones. La clase derivada declara, por lo general, nuevos datos miembro y nuevas funciones miembro heredadas cuando las operaciones de estas funciones no son adecuadas para la clase derivada. Para aplicar el concepto de herencia al reloj Data Bank de Casio, considere la siguiente situacin posible. Supongamos que el fabricante de relojes decide crear un reloj Data Comm de Casio, que proporcione las mismas caractersticas del Data Bank de CASIO, y adems, un timbre de aviso o alarma. En lugar de disear el nuevo modelo (esto es, la nueva clase en trminos de la OOP) a partir de cero, los ingenieros de CASIO comienzan con el diseo existente del Data Bank de Casio Y construyen el nuevo a partir de l. Quizs este proceso aada nuevos atributos y operaciones al diseo existente y modifique algunas operaciones existentes para que se ajusten al nuevo diseo. Por lo tanto, el modelo Data Comm de CASIO hereda los atributos y las operaciones del modelo Data Bank de CASIO. En trminos de la OOP, la clase de relojes Data Comm de CASIO es descendiente de la clase de relojes Data Bank de CASIO. Mensajes y mtodos La programacin orientada a objetos modela la interaccin con los objetos como eventos cuando son enviados mensajes a un objeto o entre objetos. El objeto que recibe un mensaje responde llamando al mtodo adecuado (esto es, a la funcin miembro en el C++). El mensaje es lo que se le hace a un objeto. El mtodo es la forma en que el objeto responde al mensaje recibido. Polimorfismo La caracterstica de polimorfismo de la OOP permite que las instancias de diferentes clases reaccionen de forma particular a un mensaje (o llamada a funcin, en trminos del C++). Por ejemplo, en una jerarqua de formas grficas (punto, lnea, cuadro, rectngulo, elipse, etc.) cada forma tiene la funcin Trazar, la cual est obligada a responder adecuadamente a una peticin para dibujar la forma. El polimorfismo permite que instancias de diferentes clases respondan a la misma funcin en formas que sean adecuadas para cada clase.

3

Sentencia. Es una declaracin simple, comando o clculo que termina con un unto y como. Ejemplo: char valriable=Hola;

4

Notacin Hungara. La notacin hngara es una serie de normas para escribir un programa.Variables. Prefijos en minsculas que se aaden a los nombres de las variables que indican su tipo. Tipos definidos. Las letras del prefijo estarn en mayscula. El resto del nombre indica, lo ms claramente posible, la funcin que realiza la variable o tipo. Prefijo Significado

ab by c

'array'.Booleano

ddw

BYTE o UCHAR (unsigned char) Carcter (un byte) 'char'. Para el tipo primitivo de carcter alfanumrico individual. 'double'. Para tipos numricos de alta precisin, como double o float.Entero largo de 32 bits sin signo (DOBLE WORD)

ef

gh i

'event'. Para eventos. 'funcin'. Slo la utilizaremos delante de funciones cuando se traten de funciones que se aadan como observadores de un evento (ya que usar esta notacin para cualquier mtodo o funcin sera bastante engorroso). 'delegated'. Para tipos delegados.Manipulador de 16 bits (HANDLE) Entero largo de 32 bits

llp lbl lpfn lpsz n

De 'lock'. Para objetos de control que nos faciliten el uso de exclusiones mutuas, candados y semforos.Puntero a entero largo de 32 bits

Objeto LabelPuntero largo a una funcin que devuelve un entero Puntero largo a una cadena terminada con cero

op pt rgb

'enum'. Para tipos enumerados. 'objeto'. Para objetos en general (no se debe usar la notacin hngara para distinguir entre tipos de objetos, salvo escasas excepciones).Puntero a entero de 16 bits Coordenadas (x, y) empaquetadas en un entero de 32 bits Valor de color RGB empaquetado en un entero de 32 bits

ssz

'string'. Para variables de tipo cadena de texto, ya sean nativos o arrays de char. Este tipo de datos es muy habitual en lenguajes sin lgica de punteros. Si se usara el objeto de tipo String en estos casos, acudiremos a este identificador en lugar de al o de objeto.Cadena terminada en cero

t txtu

'struct'. Similar al 'o' de objetos, ste se usara para variables de tipo struct en general (es decir, objetos de tipo primitivo). Cajas de textoSin signo (unsigned)

vw

'variable'. Para variables que adquieran diferentes tipos de valores. Normalmente slo acudiremos a esta opcin en lenguajes no tipados. La usaremos cuando no estemos seguros del tipo de valor que albergar una variable. Tambin puede valer para objetos que tengan un tipo genrico T.Entero corto de 16 bits sin signo (WORD)

y

'byte'. 5

Ejemplos: nContador: la variable es un entero que se usar como contador. szNombre: una cadena terminada con cero que almacena un nombre. bRespuesta: una variable booleana que almacena una respuesta. Ejemplos de tipos definidos por el API de Windows: UINT: entero sin signo. Windows redefine los enteros para asegurar que el tamao en bits es siempre el mismo para todas las variables del API. LRESULT: entero largo usado como valor de retorno. WPARAM: entero corto de 16 bits usado como parmetro. LPARAM: entero largo de 32 bits usado como parmetro. LPSTR: puntero largo a una cadena de caracteres. En el API de 32 bits no existen distinciones entre punteros largos y cortos, pero la nomenclatura se conserva por compatibilidad. LPCREATESTRUCT: puntero a una estructura CREATESTRUCT.

6

1.2 Secuencias de escape :

Escape Sequence \a \b \f \n \r \t \v \' \" \\ \? \ooo \xhh \xhhhh

RepresentsAlerta. 1 pitido de la cpu.

Bell (alert)

Backspace FormfeedPasar a la siguiente lnea inferior.New

line

Carriage returnEquivale al tabulador.Horizontal

tab

Vertical tab Single quotation markComillas dobles (El simbolo)Double

quotation mark

Diagonal invertida \ (El simbolo). Backslash

Literal question mark ASCII character in octal notation ASCII character in hexadecimal notation Unicode character in hexadecimal notation if this escape sequence is used in a widecharacter constant or a Unicode string literal. For example, WCHAR f = L'\x4e00' or WCHAR b[] = L"The Chinese character for one is \x4e00".

7

ASCII

8

9

Como usar este codigo. Ejemplo:

10

Equivalencias decimal hexadecimal octal - binario

Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Dec 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 Dec 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F Hex 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F Hex 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F

Oct 000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 Oct 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 Oct 200 201 202 203 204 205 206 207 210 211 212 213 214 215 216 217

Bin 00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111 Bin 01000000 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111 Bin 10000000 10000001 10000010 10000011 10000100 10000101 10000110 10000111 10001000 10001001 10001010 10001011 10001100 10001101 10001110 10001111

Dec 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Dec 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 Dec 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

Hex 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F Hex 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F Hex 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F

Oct 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037 Oct 120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 Oct 220 221 222 223 224 225 226 227 230 231 232 233 234 235 236 237

Bin 00010000 00010001 00010010 00010011 00010100 00010101 00010110 00010111 00011000 00011001 00011010 00011011 00011100 00011101 00011110 00011111 Bin 01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011011 01011100 01011101 01011110 01011111 Bin 10010000 10010001 10010010 10010011 10010100 10010101 10010110 10010111 10011000 10011001 10011010 10011011 10011100 10011101 10011110 10011111

Dec 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Dec 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 Dec 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

Hex 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F Hex 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F Hex A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF

Oct 040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 Oct 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 Oct 240 241 242 243 244 245 246 247 250 251 252 253 254 255 256 257

Bin 00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 Bin 01100000 01100001 01100010 01100011 01100100 01100101 01100110 01100111 01101000 01101001 01101010 01101011 01101100 01101101 01101110 01101111 Bin 10100000 10100001 10100010 10100011 10100100 10100101 10100110 10100111 10101000 10101001 10101010 10101011 10101100 10101101 10101110 10101111 Bin 11100000 11100001

Dec 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Dec 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Dec 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

Hex 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F Hex 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F Hex B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF

Oct 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077 Oct 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 Oct 260 261 262 263 264 265 266 267 270 271 272 273 274 275 276 277

Bin 00110000 00110001 00110010 00110011 00110100 00110101 00110110 00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111 Bin 01110000 01110001 01110010 01110011 01110100 01110101 01110110 01110111 01111000 01111001 01111010 01111011 01111100 01111101 01111110 01111111 Bin 10110000 10110001 10110010 10110011 10110100 10110101 10110110 10110111 10111000 10111001 10111010 10111011 10111100 10111101 10111110 10111111 Bin 11110000 11110001

Dec Hex Oct 192 C0 300 193 C1 301

Bin Dec Hex Oct 11000000 208 D0 320 11000001 209 D1 321

Bin Dec Hex Oct 11010000 224 E0 340 11010001 225 E1 341

Dec Hex Oct 240 F0 360 241 F1 361

11

194 195 196 197 198 199 200 201 202 203 204 205 206 207

C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF

302 303 304 305 306 307 310 311 312 313 314 315 316 317

11000010 11000011 11000100 11000101 11000110 11000111 11001000 11001001 11001010 11001011 11001100 11001101 11001110 11001111

210 211 212 213 214 215 216 217 218 219 220 221 222 223

D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF

322 323 324 325 326 327 330 331 332 333 334 335 336 337

11010010 11010011 11010100 11010101 11010110 11010111 11011000 11011001 11011010 11011011 11011100 11011101 11011110 11011111

226 227 228 229 230 231 232 233 234 235 236 237 238 239

E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF

342 343 344 345 346 347 350 351 352 353 354 355 356 357

11100010 11100011 11100100 11100101 11100110 11100111 11101000 11101001 11101010 11101011 11101100 11101101 11101110 11101111

242 243 244 245 246 247 248 249 250 251 252 253 254 255

F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

362 363 364 365 366 367 370 371 372 373 374 375 376 377

11110010 11110011 11110100 11110101 11110110 11110111 11111000 11111001 11111010 11111011 11111100 11111101 11111110 11111111

12

Tipos de Datos. Tipos de datos fundamentales El tipo int es usado para representar valores enteros. El espacio de almacenamiento de int es usualmente una palabra. El tipo char es usado para representar caracteres. El espacio de almacenamiento suministrado por char es suficiente para almacenar un slo carcter dentro de la implementacin. El tipo float y double son usados para manejar nmeros en punto flotante El tipo void es un tipo que indica que una funcin acta como procedimiento.

Tipos adicionales y mecanismos de creacin de tipos en C++. El tipo enum es un tipo el cual permite un nmero de constantes relacionadas a ser definidas. El tipo struct es un tipo definido que permite el agrupamiento de varias variables de algn tipo. Este agrupamiento es tambin manejable siendo as permite a C++ manejar datos los cuales no se ocupan completamente existe un tipo de dato - campos de bit. El tipo union es un tipo definido permite el agrupamiento de varias variables de algn tipo. El typedef puede ser usado para renombrar tipos.

Existen varios prefijos para tipos, el cual modifica el tipo unsigned Aplicado a int y char signed Aplicado a int y char Este prefijo toma la interpretacin de un entero signed, esto no es normalmente usado con int por que por default es signed! long Aplicado a int Este prefijo tomara la cantidad de almacenamiento tan larga posible dentro de la implementacin. Tambin este prefijo es solamente sustituible a un tipo de dato, es posible abreviar long int como long. Esto es tpicamente de 32 bits. short Aplicado a int Este prefijo tomara la cantidad ms pequea posible dentro de la implementacin. Este prefijo tambin es solamente sustituible para un tipo de dato, es posible abreviar short int como short. const Aplicado a todos los tipos Variables con este prefijo deben y pueden ser solamente inicializados en tiempo de declaracin. Constantes tiene varios usos y la palabra clave const tiene varios significados dependiendo del contexto.

13

Como asignar datos a una variable:

Modificar tipos en una operacin. En una operacin, si queremos que la respuesta sea de tipo DOUBLE, al menos uno de los numeros de la divisin ha de ser de dicho tipo.

Tambin se puede escribir asi.

14

Conversiones de tipos de datos.

Conversin de INTDOUBLE.

Conversin de STRING INT. Se emplea la funcin atoi(servar.cstr( )); Declarar la librera:

Ejemplo:

Conversin de INT STRING. Hacer uso de la funcin itoa de stdlib.h. Ejemplo:

15

Conversin de STRING INTEGER. o Empleamos la funcin atoi de la librera string. o Atencin, no usar punteros en el tipo de dato string. o Ejemplo: #include

#include using namespace std; int main () { int integer; string buffer = "123456789"; cout