SlideShare una empresa de Scribd logo
Inicio A, B C++ Curso Básico A>B A menor que  B A mayor que B A mayor que B Final
Prerrequisitos ,[object Object]
 Curso de metodología de la programación,[object Object]
Concepto de Memoria: Los nombres de variable tales como entero1, entero2 y suma en realidad corresponden a lugares en la memoria de la computadora. Toda variable tiene un nombre, un tipo y un valor. Ejemplo: Int entero1; Int entero2; Int suma;
Toma de Decisiones: Operadores de igualad y de Relación. Palabras reservadas.
Ejemplo: /* Mi primer programa*/ # include <stdio.h> /* la función main inicia la ejecución del  programa*/    int main()    {     printf(“Bienvenido a C!”);     return 0; /* Indica que el programa termino con éxito*/    } /*Fin del programa*/ /* */ -indican comentarios. # include <stdio.h> directiva del preprocesador de C. son procesadas por el preprocesador antes de que el programa  se compile. Int main()  todo programa en C comienza su ejecución en la función main. {  inicia el cuerpo de cada función. }  finaliza cada función. Return 0 indica que el programa termino con éxito.
Estructuras de control ,[object Object],   la computadora ejecuta de manera automática  las instrucciones  en C, una a una, en el orden en el orden en que están escritas.     Ejemplo:  Programa de suma */ #include <stdio.h> /* la función main inicia la ejecución del programa */ int main() {    int entero1; /* primer número introducido por el usuario  */    int entero2; /* segundo número introducido por el usuario */    int suma;    /* variable en la cual se almacena la suma   */     printf( "Introduzca el primer entero" ); /* indicador */    scanf( "%d", &entero1 );          /* lee un entero */    printf( "Introduzca el segundo entero" ); /* indicador */    scanf( "%d", &entero2 );          /* lee un entero */    suma = entero1 + entero2; /* asigna el total a suma */    printf( "La suma es %d", suma ); /* imprime la suma */    return 0; /* indica que el programa terminó con éxito */ } /* fin de la función main */
[object Object],  C proporciona tres tipos : La instrucción  If (simple): realiza una acción si la condición es verdadera, o      ignora la acción si la condición es falsa. Ejemplo       if (Nota >=60)          printf(“Aprobado”); La instrucción if …. Else (doble): realiza una acción si la condición es  verdadera y realiza una acción diferente si la condición es falsa. if (Nota >=60)          printf(“Aprobado”);       else printf(“Reprobado”); La instrucción Switch(múltiple):realiza una de muchas acciones  dependiendo del valor de una expresión.
Switch  (Nota) {        case ‘A’:         printf(“Aprobado”);         break;    /* fin de Switch*/        case ‘B’:         printf(“Muy bueno”);         break;   /* fin de Switch*/        case ‘C’:         printf(“Bueno”);         break;  /* fin de Switch*/        case ‘D’:         printf(“Insuficiente”); break;  /* fin de Switch*/ } ,[object Object],  de repetición en forma de instrucciones.   While   Do….While   For
Instrucción de repetición While: permite especificar que una acción se va a repetir mientras una condición sea verdadera. La ejecución del programa continua con la siguiente instrucción después del While. La condición se evalúa al principio del ciclo antes de que el cuerpo de este se ejecute. producto=2;  While (producto<=500)         producto=2*producto; Repetición controlada por contador: esta técnica utiliza una variable llamada contador para especificar el numero de veces que se ejecuta un conjunto de instrucciones. While (contador<=10) {       printf(“Introduzca calificación:”);       scanf(“%d”, &calificación);       total= total+ calificación;       contador=contador+1; }
Repetición controlada por centinela: también llamado valor de bandera. Indica el fin de la entrada de datos. While (calificación != -1) {       total= total+ calificación;       contador=contador+1;       printf(“Introduzca calificación, -1 para terminar:”);       scanf(“%d”, &calificación); } Instrucción de repetición For: la instrucción For maneja todos los detalles de la repetición controlada por contador. La forma general es:    For(expresion1; expresion2; expresion3)          instrucciones Ejemplo For (contador=1; contador<=10; contador++) {        printf(“%d”, contador);   }
Instrucción de repetición Do…While: es parecida a la instrucción While con la diferencia de que do…While evalúa la condición de continuación del ciclo después de que el cuerpo de este se ejecute. Por lo tanto el cuerpo del ciclo se ejecutara al menos una vez. ejemplo Do {       printf (“%d ”, contador);  } While (++contador <=10);
Funciones Permiten a los usuarios dividir un programa en módulos. Todas las variables que se definen en una función son variables locales, es decir, se conocen solamente en la función en la que se definen. La mayoría de las funciones tienen una lista de parámetros. Los parámetros proporcionan los medios para transferir información entre fusiones. Los parámetros de una función también son variables locales de dicha función. Formato de una definición de función: Tipo-valor-retorno nombre - función ( lista parámetros)  {   definiciones   instrucciones  }  Llamada a funciones(Por Valor y por Referencia): cuando los argumentos se pasan por valor, se crea una copia del argumento y se pasa y se pasa a la función que se invoco. Los cambios hechos a la copia no afectan el valor original de la variable dentro de la función que hace la llamada. Cuando el argumento se pasa por referencia la función que hace la llamada en realidad permite a la función llamada modificar el valor original de la variable.
Int máximo(int x, int y, int z) {   int Max=x;     if (y>Max){     Max=y;   }  if (z>Max){     Max=z;  }   return Max; }
Arreglos Un arreglo es un grupo consecutivo de localidades de memoria relacionadas por el hecho de que tienen el mismo nombre y tipo. Para hacer referencia a un elemento del arreglo en particular, especificamos el nombre del arreglo y la posición numérica del elemento en particular dentro del arreglo. A [0] Nombre del arreglo A [1] A [2] A [3] A [4] A [5] A [6] A [7] Posición Numérica en el arreglo
Declaración de arreglos: Los arreglos ocupan espacio en memoria por tanto por lo tanto se especifica el tipo de cada arreglo y el numero de elementos que necesita el arreglo, de manera que la computadora pueda reservar la cantidad adecuada de memoria. Ejemplo: Int A[8]; Inicializar un arreglo */ #include <stdio.h> /* la función main inicia la ejecución del programa */ int main() { int n[10];  int i;  For (i=0; i<10; i++) {          n[i]=0    }    printf( “%s%13s“, “Elemento”, “”Valor );  For (i=0; i<10; i++){    printf( “%7d%13d“, i, n[i] ); return 0; /* indica que el programa terminó con éxito */ }/* fin de la función main */
Ordenamiento de Arreglos: El ordenamiento de datos es una de las aplicaciones de computo mas importantes. Esto puede ser de forma ascendente o descendente. A continuación se mostrara una técnica conocida como ordenamiento burbuja o hundimiento ya que los valores mas pequeños flotan gradualmente hacia arriba, hacia el encabezado del arreglo mientras que los valores mas grandes se hunden en el fondo del arreglo. Ejemplo: /* Ciclo para controlar el numero de pasos*/ For (pasadas=1; pasadas<tamaño; pasadas++) {       /* Ciclo para controlar el numero de comparaciones por paso*/       For (i=0; i<tamaño-1; i++) { /* compara los elementos adyacentes  y los intercambia si el primer   elemento es mayor que el segundo*/          if (a[i]>a[i+1]) {             almacena=a[i];             a[i]=a[i+1];             a[i+1]=almacena;             }         }   }
Búsqueda en Arreglos: Al proceso de encontrar un elemento en particular de un arreglo se le conoce como búsqueda. A continuación mostraremos dos técnicas de búsqueda: Búsqueda Lineal: compara cada elemento de un arreglo con la clave de búsqueda. Ejemplo: /* Ciclo a través del arreglo*/ For (n=0; n<tamaño; n++) {      if (arreglo[n]==llave){         return n; /* devuelve la ubicación de la llave*/ }  }  return -1; /*llave no encontrada*/ }
Búsqueda Binaria: Si el arreglo se encuentra ordenado, se puede utilizar la técnica de búsqueda binaria. Después de cada comparación el algoritmo elimina la mitad de los elementos del arreglo ordenado en el que se busca. El algoritmo localiza el elemento central de un arreglo y lo compara con la clave de búsqueda. Si son iguales, entonces localizo la clave de búsqueda y devuelve el subíndice del elemento del arreglo. De lo contrario, el problema se reduce a buscar en una mitad del arreglo. Si la clave de búsqueda es menor que el elemento central del arreglo, la búsqueda se realiza en la primera mitad de este; de lo contrario la búsqueda se realiza en la segunda mitad. Si el elemento no se encuentra en el subarreglo especificado, el algoritmo se repite en un cuarto del arreglo original. La búsqueda continua hasta que la clave de búsqueda es igual al elemento de un subarreglo, o hasta que el subarreglo consista en un elemento que no sea igual a la clave de búsqueda.
While (bajo<=alto){   central=(bajo+alto)/2;      if (ClavedeBusqueda==b[central]){         return central; /* devuelve la ubicación de la llave*/      }      else  if (ClavedeBusqueda<b[central]){               alto=central-1      }      else{      bajo=central+1;    }  }  return -1; /*llave no encontrada*/ }
Apuntadores Los apuntadores son variable cuyos valores son direcciones de memoria. Por lo general, una variable contiene un valor especifico. Por otro lado un apuntador contiene la dirección de una variable que contiene un valor especifico. Al proceso de referenciar a un valor a través de un apuntador se le llama indireccion. Los apuntadores deben definirse antes de que se puedan utilizar. Int *ptrCuenta /*Apuntador de tipo entero*/ Esto se lee ptrCuenta apunta a un objeto de tipo int. El asterisco solo se aplica la variable que se define como apuntador. Los apuntadores pueden definirse para apuntar a objetos de cualquier tipo de dato. Los apuntadores deben inicializarse en el momento en que se definen o en una instrucción de asignación. Un apuntador puede inicializarse en 0, NULL o en una dirección.
Operadores para apuntadores: El &, u operador de dirección, es un operador unario que devuelve la dirección de su operando. El operador *, por lo general llamado operador de indireccion u operador de desreferencia, devuelve el valor del objeto al que apunta su operando.   Int main() {    int a;    int *ptrA;    a=7;    ptrA=&a;    printf(“La dirección de a es %p”              “El valor de ptrA es %p”, &a, ptrA);    printf(“El valor de a es %d”              “El valor de ptrA es %d”, a, *ptrA);    printf(“Muestra de que * y & son complementos”              “uno del otro&*ptrA=%p”              “*&prtA=%p”, &*ptrA, *&ptrA);    return 0; }
Clases ++ es una mejoría sobre muchas de las características de C, y proporciona capacidades de P.O.O. que promete mucho para incrementar la productividad, calidad y reutilización del software. En C, la unidad de programación es la función, con lo cual, se trata de una programación orientada a la acción. En C++, la unidad de programación es la clase a partir de la cual, los objetos son producidos. Se trata, pues, de una programación orientada al objeto. C++ permite un tratamiento común de entradas/salidas de tipos definidos por usuario. Este tipo de estado común facilita el desarrollo de software en general y de la reutilización de software en particular. La salida de flujo puede ser ejecutada mediante el operador de inserción de flujo : <<. Se hace la homonimia del operador << para extraer elementos de datos de tipos incorporados, para extraer cadenas y para extraer valores de apuntadores. C
Ejemplo: // Programa que muestra mensaje de bienvenida a C++. // Salida de una cadena usando inserción de flujo. # include <iostream.h> main( ) { cout <<''¡ Bienvenido a C++! ''; return 0; } Todas las palabras claves de C++ están en minúsculas. En C++, las mayúsculas y minúsculas son diferentes.
C++ COMO UN ''C MEJORADO'' COMENTARIOS Y DECLARACIONES EN C++ C++ permite empezar un comentario con // y usar el resto de la línea para texto del comentario; El fin de la línea da de manera automática por terminado el comentario. También es aceptable la forma de C : /* */. En C++, a diferencia de C, las declaraciones pueden ser colocadas en cualquier parte de un enunciado ejecutable, siempre y cuando las declaraciones antecedan el uso de lo que se está declarando. También, las variables pueden ser declaradas en la sección de inicialización de una estructura for; dichas variables se mantienen en alcance hasta el final del bloque en el cual la estructura for está definida. El alcance de una variable local C++ empieza en su declaración y se extiende hasta la llave derecha de cierre. Las declaraciones de variables no pueden ser colocadas en la condición de una estructura while, do/while, for o if.
FLUJO DE ENTRADA/SALIDA DE C++ C++ ofrece una alternativa a las llamadas de función printf y scanf para manejar la entrada/salida de los tipos y cadenas de datos estándar. Así, en lugar de printf usamos el flujo estándar de salida cout y el operador << (''colocar en''); y en lugar de scanf usamos el flujo de entrada estándar cin y el operador >> (''obtener de''). Estos operadores de inserción y extracción de flujo, a diferencia de printf y scanf, no requieren de cadenas de formato y de especificadores de conversión para indicar los tipos de datos que son extraídos o introducidos. Para utilizar entradas/salidas de flujo, se debe incluir el archivo de cabecera iostream.h. COMO CREAR NUEVOS TIPOS DE DATOS EN C++ C++ proporciona la capacidad de crear tipos definidos por el usuario mediante el uso de las palabras reservadas enum, Struct, unión y la nueva palabra reservada class. A diferencia de C, una enumeración ( enum ) en C++, cuando se declara, se convierte en un tipo nuevo. Para declarar la variable del nuevo tipo, la palabra reservada enum no es requerida. Lo mismo para Struct, unión y class. Los nombres de etiqueta pueden ser utilizados para declarar variables. Las enumeraciones por omisión son evaluadas iniciándose en cero.
ASIGNACION DINAMICA DE MEMORIA MEDIANTE NEW Y DELETE En C++, el enunciado ptr = new typeName; asigna memoria para un objeto del tipo typeName. El operador new crea automáticamente un objeto del tamaño apropiado, y regresa un apuntador (ptr)del tipo apropiado. Si mediante new no se puede asignar memoria, se regresa un apuntador nulo. Para liberar el espacio para este objeto se usa delete ptr; El operador delete sólo puede ser utilizado para desasignar memoria ya asignada mediante el operando new. PRIMERAS EXTENSIONES ORIENTADAS A OBJETOS COMO PONER EN PRACTICA UN TDA CON UNA CLASE Las clases permiten que el programador modele objetos que tienen atributos (miembros de datos) y comportamientos u operaciones (funciones miembro). Los tipos contienen miembros de datos y funciones miembro, y son definidos mediante la palabra reservada class. El nombre de la clase (una vez definida) puede ser utilizado para declarar objetos de dicha clase.
Ejemplo: class Punto // Declaración de la clase Punto. { int _x, _y; // Coordenadas del punto. public: // Principio de la declaración de interface. void setX (const int val); void setY (const int val); int getX( ) {return _x;} int getY( ) {return _y;} }; Punto apunto; // Definición del objeto apunto. La definición de una clase comienza con la palabra reservada class . El cuerpo de la definición de clase se delimita mediante llaves. La definición de clase termina con un punto y coma. En el cuerpo de la definición existen partes nuevas: la etiqueta public: y private: se conocen como especificadores de acceso de miembro. Cualquier miembro de datos o función miembro declarado después del especificador de acceso de miembro public: (y antes del siguiente especificador de acceso de miembro) es accesible, siempre que el programa tenga acceso a un objeto de la clase. Cualquier miembro de datos o función miembro declarada después del especificador de acceso de miembro private: (y hasta el siguiente especificador de acceso de miembro) sólo es accesible a las funciones miembro de la clase.
ALCANCE DE CLASE Y ACCESO A MIEMBROS DE CLASE Los nombres de variables y los de función declarados en una definición de clase, y los nombres de datos y funciones miembro de una clase, pertenecen al alcance de dicha clase. Dentro del alcance de clase, los miembros de clase son accesibles por todas las funciones miembro de dicha clase y pueden ser referenciados sólo por su nombre. Fuera del alcance de una clase, los miembros de clase se referencian, ya sea a través del nombre del objeto, una referencia a un objeto, o un apuntador a un objeto.
COMO CONTROLAR EL ACCESO A MIEMBROS Se puede tener acceso a los miembros de clase privado sólo por miembros (y amigos) de dicha clase. Se puede tener acceso a los miembros públicos de una clase mediante cualquier función del programa. El cliente de una clase puede ser una función miembro de otra clase, o puede ser una función global. Los miembros de clase públicos presentan una vista de los servicios que proporciona la clase. Para miembros de una clase, el acceso por omisión es privado. El acceso a los datos privados de una clase puede ser controlado con cuidado mediante el uso de las funciones miembro conocidas como funciones de acceso. Si una clase desea permitir que los clientes lean datos privados, la clase puede proporcionar una función ''get''. Para permitir que los clientes modifiquen datos privados, la clase puede proveer una función ''set''.
COMO INICIALIZAR OBJETOS DE CLASE : CONSTRUCTORES Los constructores son métodos que se usan para inicializar un objeto al momento de su definición o para asignar almacenamiento en memoria. Cuando se declara un objeto de una clase, se pueden dar inicializadores en paréntesis a la derecha del nombre del objeto y antes del punto y coma. Estos inicializadores son pasados como argumentos al constructor de la clase. Los constructores pueden tener argumentos por omisión. Si para una clase no se define ningún constructor, el compilador creará un constructor por omisión. Dicho constructor no ejecutará ninguna inicialización. Debemos incluir siempre un constructor que ejecute la inicialización adecuada para su clase.
Ejemplo: class Punto { int _x, _y; public : Punto( ) { _x = _y = 0; } void SetX( const int val ); void SetY( const int val ); int getX { return _x; } int getY { return _y; } }; Los constructores tienen el mismo nombre de la clase. No regresan ningún valor. Pueden llevar argumentos. Así: class Punto { int _x, _y; public: Punto() { _x = _y = 0; }
// Continuamos con el ejemplo: Punto (const int x, const int y) { _x = x; // Para poder inicializar un punto en _y = y; // otras coordenadas que no sean (0,0). } void setX (const int val); void setY (const int val); int getX() { return _x;} int getY() { return _y;} }; Los constructores son llamados implícitamente cuando definimos objetos de sus clases: Punto apunto; // Punto :: Punto() Punto bpunto(12,34); // Punto :: Punto(const int, const int)
DESTRUCTORES Un destructor de clase es llamado automáticamente cuando un objeto de una clase se sale de alcance: debemos asegurarnos de que la memoria asignada sea liberada. Este método especial llamado destructor es llamado una vez por cada objeto en el momento de su destrucción. Un destructor no recibe parámetros ni regresa ningún valor. Una clase sólo puede tener un destructor: la homonimia de destructores no está permitida. La destrucción de los objetos tiene lugar cuando el objeto abandona su ámbito de definición o es explícitamente destruido. Esto último sucede cuando nosotros dinámicamente asignamos un objeto y lo liberamos cuando ya no nos es necesario. Los destructores se declaran con el nombre de la clase prefijado con una tilde ( ~ ):
class Punto { int _x, _y; public: Punto() { _x = _y = 0; } // Continuamos con el ejemplo: Punto (const int x, const int y) { _x = xval; _y = yval; } Punto (const Punto &desde) { _x = desde._x; _y = desde._y; } ~ Punto() { /* ¡Nada que hacer! */} void setX(const int val); void setY(const int val); int getX() {return _x;} int getY() {return _y;} };
CUANDO SON LLAMADOS LOS DESTRUCTORES Y CONSTRUCTORES Por lo regular, son llamados de forma automática. En general, las llamadas de destructor se efectúan en orden inverso a las llamadas de constructor.
ANEXOS
Instalación del editor y compilador de código C/C++ Dev-C++ ,[object Object]
Nos preguntará el idioma, y lógicamente elegiremos “Español”. Aceptaremos todas las demás opciones con los valores predeterminados hasta que finalice la instalación.
En la primera ejecución del programa, debemos seleccionar de nuevo el idioma, eligiendo “Español (Castellano)” y “XP Theme: ,[object Object],[object Object]
Ese es el código fuente de nuestro primer programa en lenguaje C. El código fuente será el archivo llamado “hola.c”, y el programa ejecutable resultado que construiremos inmediatamente se llamará “hola.exe”.  Para construir el programa ejecutable, pulsaremos en el menú “Ejecutar” y en la opción “Compilar y Ejecutar”. Con esto, conseguimos que el compilador revise nuestro código fuente, y, si está bien escrito, creará un nuevo archivo en la misma carpeta donde está el archivo con el código fuente que será el ejecutable resultado que hace lo que tiene programado el código fuente.
Vemos que se ha ejecutado un archivo que está en “C:ev-Cpp” llamado “hola.exe” (recién creado), y simplemente abre una ventana de consola y muestra el texto “hola”, además muestra otro texto que pide que se pulse cualquier tecla para que se cierre la ventana.

Más contenido relacionado

La actualidad más candente

Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
compumet sac
 
Condiciones
CondicionesCondiciones
Condiciones
yesid19
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoEnAutomático
 
Funcion printf
Funcion printfFuncion printf
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioLenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioCarlos
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
yesid19
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++die_dex
 
Instrucciones para c_
Instrucciones para c_Instrucciones para c_
Instrucciones para c_
GamePlayer35
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
ANDRES FELIPE CRUZ ERAZO
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
Idalia Tristan
 
Punteros a Funciones en C
Punteros a Funciones en CPunteros a Funciones en C
Punteros a Funciones en C
AnesGy SD
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
flaquita_dany
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
Zalimanunezc
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
Abrirllave
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
Fabiola Cortes
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
Richard Robalino
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlKarina Arguedas Ruelas
 
La estructura basica_para_c_
La estructura basica_para_c_La estructura basica_para_c_
La estructura basica_para_c_
GamePlayer35
 

La actualidad más candente (20)

Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
 
Condiciones
CondicionesCondiciones
Condiciones
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Funcion printf
Funcion printfFuncion printf
Funcion printf
 
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioLenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Instrucciones para c_
Instrucciones para c_Instrucciones para c_
Instrucciones para c_
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
 
Punteros a Funciones en C
Punteros a Funciones en CPunteros a Funciones en C
Punteros a Funciones en C
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de Control
 
La estructura basica_para_c_
La estructura basica_para_c_La estructura basica_para_c_
La estructura basica_para_c_
 

Similar a Introduccion a C++

Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
computaciondosunefm
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
andermijan
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
Mar15marian
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
Mar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
Mar15marian
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
Raymond Marquina
 
Funciones
FuncionesFunciones
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funcioneseulo10
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
elidetjc
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacionYsaac Ruiz
 
Separata java script
Separata java scriptSeparata java script
Separata java script
Carlos Enrique Huamán Solis
 
Funciones en C.docx
Funciones en C.docxFunciones en C.docx
Funciones en C.docx
JesusCordova52
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++
jose machado
 
Arreglos
ArreglosArreglos
Arregloslichic
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
Ronny Parra
 
C# calculadora
C# calculadoraC# calculadora

Similar a Introduccion a C++ (20)

Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Java básico
Java  básicoJava  básico
Java básico
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 
Funciones
FuncionesFunciones
Funciones
 
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Funciones en C.docx
Funciones en C.docxFunciones en C.docx
Funciones en C.docx
 
Escuela
EscuelaEscuela
Escuela
 
Escuela
EscuelaEscuela
Escuela
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 

Introduccion a C++

  • 1. Inicio A, B C++ Curso Básico A>B A menor que B A mayor que B A mayor que B Final
  • 2.
  • 3.
  • 4. Concepto de Memoria: Los nombres de variable tales como entero1, entero2 y suma en realidad corresponden a lugares en la memoria de la computadora. Toda variable tiene un nombre, un tipo y un valor. Ejemplo: Int entero1; Int entero2; Int suma;
  • 5. Toma de Decisiones: Operadores de igualad y de Relación. Palabras reservadas.
  • 6. Ejemplo: /* Mi primer programa*/ # include <stdio.h> /* la función main inicia la ejecución del programa*/ int main() { printf(“Bienvenido a C!”); return 0; /* Indica que el programa termino con éxito*/ } /*Fin del programa*/ /* */ -indican comentarios. # include <stdio.h> directiva del preprocesador de C. son procesadas por el preprocesador antes de que el programa se compile. Int main()  todo programa en C comienza su ejecución en la función main. {  inicia el cuerpo de cada función. }  finaliza cada función. Return 0 indica que el programa termino con éxito.
  • 7.
  • 8.
  • 9.
  • 10. Instrucción de repetición While: permite especificar que una acción se va a repetir mientras una condición sea verdadera. La ejecución del programa continua con la siguiente instrucción después del While. La condición se evalúa al principio del ciclo antes de que el cuerpo de este se ejecute. producto=2; While (producto<=500) producto=2*producto; Repetición controlada por contador: esta técnica utiliza una variable llamada contador para especificar el numero de veces que se ejecuta un conjunto de instrucciones. While (contador<=10) { printf(“Introduzca calificación:”); scanf(“%d”, &calificación); total= total+ calificación; contador=contador+1; }
  • 11. Repetición controlada por centinela: también llamado valor de bandera. Indica el fin de la entrada de datos. While (calificación != -1) { total= total+ calificación; contador=contador+1; printf(“Introduzca calificación, -1 para terminar:”); scanf(“%d”, &calificación); } Instrucción de repetición For: la instrucción For maneja todos los detalles de la repetición controlada por contador. La forma general es: For(expresion1; expresion2; expresion3) instrucciones Ejemplo For (contador=1; contador<=10; contador++) { printf(“%d”, contador); }
  • 12. Instrucción de repetición Do…While: es parecida a la instrucción While con la diferencia de que do…While evalúa la condición de continuación del ciclo después de que el cuerpo de este se ejecute. Por lo tanto el cuerpo del ciclo se ejecutara al menos una vez. ejemplo Do { printf (“%d ”, contador); } While (++contador <=10);
  • 13. Funciones Permiten a los usuarios dividir un programa en módulos. Todas las variables que se definen en una función son variables locales, es decir, se conocen solamente en la función en la que se definen. La mayoría de las funciones tienen una lista de parámetros. Los parámetros proporcionan los medios para transferir información entre fusiones. Los parámetros de una función también son variables locales de dicha función. Formato de una definición de función: Tipo-valor-retorno nombre - función ( lista parámetros) { definiciones instrucciones } Llamada a funciones(Por Valor y por Referencia): cuando los argumentos se pasan por valor, se crea una copia del argumento y se pasa y se pasa a la función que se invoco. Los cambios hechos a la copia no afectan el valor original de la variable dentro de la función que hace la llamada. Cuando el argumento se pasa por referencia la función que hace la llamada en realidad permite a la función llamada modificar el valor original de la variable.
  • 14. Int máximo(int x, int y, int z) { int Max=x; if (y>Max){ Max=y; } if (z>Max){ Max=z; } return Max; }
  • 15. Arreglos Un arreglo es un grupo consecutivo de localidades de memoria relacionadas por el hecho de que tienen el mismo nombre y tipo. Para hacer referencia a un elemento del arreglo en particular, especificamos el nombre del arreglo y la posición numérica del elemento en particular dentro del arreglo. A [0] Nombre del arreglo A [1] A [2] A [3] A [4] A [5] A [6] A [7] Posición Numérica en el arreglo
  • 16. Declaración de arreglos: Los arreglos ocupan espacio en memoria por tanto por lo tanto se especifica el tipo de cada arreglo y el numero de elementos que necesita el arreglo, de manera que la computadora pueda reservar la cantidad adecuada de memoria. Ejemplo: Int A[8]; Inicializar un arreglo */ #include <stdio.h> /* la función main inicia la ejecución del programa */ int main() { int n[10]; int i; For (i=0; i<10; i++) { n[i]=0 } printf( “%s%13s“, “Elemento”, “”Valor ); For (i=0; i<10; i++){ printf( “%7d%13d“, i, n[i] ); return 0; /* indica que el programa terminó con éxito */ }/* fin de la función main */
  • 17. Ordenamiento de Arreglos: El ordenamiento de datos es una de las aplicaciones de computo mas importantes. Esto puede ser de forma ascendente o descendente. A continuación se mostrara una técnica conocida como ordenamiento burbuja o hundimiento ya que los valores mas pequeños flotan gradualmente hacia arriba, hacia el encabezado del arreglo mientras que los valores mas grandes se hunden en el fondo del arreglo. Ejemplo: /* Ciclo para controlar el numero de pasos*/ For (pasadas=1; pasadas<tamaño; pasadas++) { /* Ciclo para controlar el numero de comparaciones por paso*/ For (i=0; i<tamaño-1; i++) { /* compara los elementos adyacentes y los intercambia si el primer elemento es mayor que el segundo*/ if (a[i]>a[i+1]) { almacena=a[i]; a[i]=a[i+1]; a[i+1]=almacena; } } }
  • 18. Búsqueda en Arreglos: Al proceso de encontrar un elemento en particular de un arreglo se le conoce como búsqueda. A continuación mostraremos dos técnicas de búsqueda: Búsqueda Lineal: compara cada elemento de un arreglo con la clave de búsqueda. Ejemplo: /* Ciclo a través del arreglo*/ For (n=0; n<tamaño; n++) { if (arreglo[n]==llave){ return n; /* devuelve la ubicación de la llave*/ } } return -1; /*llave no encontrada*/ }
  • 19. Búsqueda Binaria: Si el arreglo se encuentra ordenado, se puede utilizar la técnica de búsqueda binaria. Después de cada comparación el algoritmo elimina la mitad de los elementos del arreglo ordenado en el que se busca. El algoritmo localiza el elemento central de un arreglo y lo compara con la clave de búsqueda. Si son iguales, entonces localizo la clave de búsqueda y devuelve el subíndice del elemento del arreglo. De lo contrario, el problema se reduce a buscar en una mitad del arreglo. Si la clave de búsqueda es menor que el elemento central del arreglo, la búsqueda se realiza en la primera mitad de este; de lo contrario la búsqueda se realiza en la segunda mitad. Si el elemento no se encuentra en el subarreglo especificado, el algoritmo se repite en un cuarto del arreglo original. La búsqueda continua hasta que la clave de búsqueda es igual al elemento de un subarreglo, o hasta que el subarreglo consista en un elemento que no sea igual a la clave de búsqueda.
  • 20. While (bajo<=alto){ central=(bajo+alto)/2; if (ClavedeBusqueda==b[central]){ return central; /* devuelve la ubicación de la llave*/ } else if (ClavedeBusqueda<b[central]){ alto=central-1 } else{ bajo=central+1; } } return -1; /*llave no encontrada*/ }
  • 21. Apuntadores Los apuntadores son variable cuyos valores son direcciones de memoria. Por lo general, una variable contiene un valor especifico. Por otro lado un apuntador contiene la dirección de una variable que contiene un valor especifico. Al proceso de referenciar a un valor a través de un apuntador se le llama indireccion. Los apuntadores deben definirse antes de que se puedan utilizar. Int *ptrCuenta /*Apuntador de tipo entero*/ Esto se lee ptrCuenta apunta a un objeto de tipo int. El asterisco solo se aplica la variable que se define como apuntador. Los apuntadores pueden definirse para apuntar a objetos de cualquier tipo de dato. Los apuntadores deben inicializarse en el momento en que se definen o en una instrucción de asignación. Un apuntador puede inicializarse en 0, NULL o en una dirección.
  • 22. Operadores para apuntadores: El &, u operador de dirección, es un operador unario que devuelve la dirección de su operando. El operador *, por lo general llamado operador de indireccion u operador de desreferencia, devuelve el valor del objeto al que apunta su operando. Int main() { int a; int *ptrA; a=7; ptrA=&a; printf(“La dirección de a es %p” “El valor de ptrA es %p”, &a, ptrA); printf(“El valor de a es %d” “El valor de ptrA es %d”, a, *ptrA); printf(“Muestra de que * y & son complementos” “uno del otro&*ptrA=%p” “*&prtA=%p”, &*ptrA, *&ptrA); return 0; }
  • 23. Clases ++ es una mejoría sobre muchas de las características de C, y proporciona capacidades de P.O.O. que promete mucho para incrementar la productividad, calidad y reutilización del software. En C, la unidad de programación es la función, con lo cual, se trata de una programación orientada a la acción. En C++, la unidad de programación es la clase a partir de la cual, los objetos son producidos. Se trata, pues, de una programación orientada al objeto. C++ permite un tratamiento común de entradas/salidas de tipos definidos por usuario. Este tipo de estado común facilita el desarrollo de software en general y de la reutilización de software en particular. La salida de flujo puede ser ejecutada mediante el operador de inserción de flujo : <<. Se hace la homonimia del operador << para extraer elementos de datos de tipos incorporados, para extraer cadenas y para extraer valores de apuntadores. C
  • 24. Ejemplo: // Programa que muestra mensaje de bienvenida a C++. // Salida de una cadena usando inserción de flujo. # include <iostream.h> main( ) { cout <<''¡ Bienvenido a C++! ''; return 0; } Todas las palabras claves de C++ están en minúsculas. En C++, las mayúsculas y minúsculas son diferentes.
  • 25. C++ COMO UN ''C MEJORADO'' COMENTARIOS Y DECLARACIONES EN C++ C++ permite empezar un comentario con // y usar el resto de la línea para texto del comentario; El fin de la línea da de manera automática por terminado el comentario. También es aceptable la forma de C : /* */. En C++, a diferencia de C, las declaraciones pueden ser colocadas en cualquier parte de un enunciado ejecutable, siempre y cuando las declaraciones antecedan el uso de lo que se está declarando. También, las variables pueden ser declaradas en la sección de inicialización de una estructura for; dichas variables se mantienen en alcance hasta el final del bloque en el cual la estructura for está definida. El alcance de una variable local C++ empieza en su declaración y se extiende hasta la llave derecha de cierre. Las declaraciones de variables no pueden ser colocadas en la condición de una estructura while, do/while, for o if.
  • 26. FLUJO DE ENTRADA/SALIDA DE C++ C++ ofrece una alternativa a las llamadas de función printf y scanf para manejar la entrada/salida de los tipos y cadenas de datos estándar. Así, en lugar de printf usamos el flujo estándar de salida cout y el operador << (''colocar en''); y en lugar de scanf usamos el flujo de entrada estándar cin y el operador >> (''obtener de''). Estos operadores de inserción y extracción de flujo, a diferencia de printf y scanf, no requieren de cadenas de formato y de especificadores de conversión para indicar los tipos de datos que son extraídos o introducidos. Para utilizar entradas/salidas de flujo, se debe incluir el archivo de cabecera iostream.h. COMO CREAR NUEVOS TIPOS DE DATOS EN C++ C++ proporciona la capacidad de crear tipos definidos por el usuario mediante el uso de las palabras reservadas enum, Struct, unión y la nueva palabra reservada class. A diferencia de C, una enumeración ( enum ) en C++, cuando se declara, se convierte en un tipo nuevo. Para declarar la variable del nuevo tipo, la palabra reservada enum no es requerida. Lo mismo para Struct, unión y class. Los nombres de etiqueta pueden ser utilizados para declarar variables. Las enumeraciones por omisión son evaluadas iniciándose en cero.
  • 27. ASIGNACION DINAMICA DE MEMORIA MEDIANTE NEW Y DELETE En C++, el enunciado ptr = new typeName; asigna memoria para un objeto del tipo typeName. El operador new crea automáticamente un objeto del tamaño apropiado, y regresa un apuntador (ptr)del tipo apropiado. Si mediante new no se puede asignar memoria, se regresa un apuntador nulo. Para liberar el espacio para este objeto se usa delete ptr; El operador delete sólo puede ser utilizado para desasignar memoria ya asignada mediante el operando new. PRIMERAS EXTENSIONES ORIENTADAS A OBJETOS COMO PONER EN PRACTICA UN TDA CON UNA CLASE Las clases permiten que el programador modele objetos que tienen atributos (miembros de datos) y comportamientos u operaciones (funciones miembro). Los tipos contienen miembros de datos y funciones miembro, y son definidos mediante la palabra reservada class. El nombre de la clase (una vez definida) puede ser utilizado para declarar objetos de dicha clase.
  • 28. Ejemplo: class Punto // Declaración de la clase Punto. { int _x, _y; // Coordenadas del punto. public: // Principio de la declaración de interface. void setX (const int val); void setY (const int val); int getX( ) {return _x;} int getY( ) {return _y;} }; Punto apunto; // Definición del objeto apunto. La definición de una clase comienza con la palabra reservada class . El cuerpo de la definición de clase se delimita mediante llaves. La definición de clase termina con un punto y coma. En el cuerpo de la definición existen partes nuevas: la etiqueta public: y private: se conocen como especificadores de acceso de miembro. Cualquier miembro de datos o función miembro declarado después del especificador de acceso de miembro public: (y antes del siguiente especificador de acceso de miembro) es accesible, siempre que el programa tenga acceso a un objeto de la clase. Cualquier miembro de datos o función miembro declarada después del especificador de acceso de miembro private: (y hasta el siguiente especificador de acceso de miembro) sólo es accesible a las funciones miembro de la clase.
  • 29. ALCANCE DE CLASE Y ACCESO A MIEMBROS DE CLASE Los nombres de variables y los de función declarados en una definición de clase, y los nombres de datos y funciones miembro de una clase, pertenecen al alcance de dicha clase. Dentro del alcance de clase, los miembros de clase son accesibles por todas las funciones miembro de dicha clase y pueden ser referenciados sólo por su nombre. Fuera del alcance de una clase, los miembros de clase se referencian, ya sea a través del nombre del objeto, una referencia a un objeto, o un apuntador a un objeto.
  • 30. COMO CONTROLAR EL ACCESO A MIEMBROS Se puede tener acceso a los miembros de clase privado sólo por miembros (y amigos) de dicha clase. Se puede tener acceso a los miembros públicos de una clase mediante cualquier función del programa. El cliente de una clase puede ser una función miembro de otra clase, o puede ser una función global. Los miembros de clase públicos presentan una vista de los servicios que proporciona la clase. Para miembros de una clase, el acceso por omisión es privado. El acceso a los datos privados de una clase puede ser controlado con cuidado mediante el uso de las funciones miembro conocidas como funciones de acceso. Si una clase desea permitir que los clientes lean datos privados, la clase puede proporcionar una función ''get''. Para permitir que los clientes modifiquen datos privados, la clase puede proveer una función ''set''.
  • 31. COMO INICIALIZAR OBJETOS DE CLASE : CONSTRUCTORES Los constructores son métodos que se usan para inicializar un objeto al momento de su definición o para asignar almacenamiento en memoria. Cuando se declara un objeto de una clase, se pueden dar inicializadores en paréntesis a la derecha del nombre del objeto y antes del punto y coma. Estos inicializadores son pasados como argumentos al constructor de la clase. Los constructores pueden tener argumentos por omisión. Si para una clase no se define ningún constructor, el compilador creará un constructor por omisión. Dicho constructor no ejecutará ninguna inicialización. Debemos incluir siempre un constructor que ejecute la inicialización adecuada para su clase.
  • 32. Ejemplo: class Punto { int _x, _y; public : Punto( ) { _x = _y = 0; } void SetX( const int val ); void SetY( const int val ); int getX { return _x; } int getY { return _y; } }; Los constructores tienen el mismo nombre de la clase. No regresan ningún valor. Pueden llevar argumentos. Así: class Punto { int _x, _y; public: Punto() { _x = _y = 0; }
  • 33. // Continuamos con el ejemplo: Punto (const int x, const int y) { _x = x; // Para poder inicializar un punto en _y = y; // otras coordenadas que no sean (0,0). } void setX (const int val); void setY (const int val); int getX() { return _x;} int getY() { return _y;} }; Los constructores son llamados implícitamente cuando definimos objetos de sus clases: Punto apunto; // Punto :: Punto() Punto bpunto(12,34); // Punto :: Punto(const int, const int)
  • 34. DESTRUCTORES Un destructor de clase es llamado automáticamente cuando un objeto de una clase se sale de alcance: debemos asegurarnos de que la memoria asignada sea liberada. Este método especial llamado destructor es llamado una vez por cada objeto en el momento de su destrucción. Un destructor no recibe parámetros ni regresa ningún valor. Una clase sólo puede tener un destructor: la homonimia de destructores no está permitida. La destrucción de los objetos tiene lugar cuando el objeto abandona su ámbito de definición o es explícitamente destruido. Esto último sucede cuando nosotros dinámicamente asignamos un objeto y lo liberamos cuando ya no nos es necesario. Los destructores se declaran con el nombre de la clase prefijado con una tilde ( ~ ):
  • 35. class Punto { int _x, _y; public: Punto() { _x = _y = 0; } // Continuamos con el ejemplo: Punto (const int x, const int y) { _x = xval; _y = yval; } Punto (const Punto &desde) { _x = desde._x; _y = desde._y; } ~ Punto() { /* ¡Nada que hacer! */} void setX(const int val); void setY(const int val); int getX() {return _x;} int getY() {return _y;} };
  • 36. CUANDO SON LLAMADOS LOS DESTRUCTORES Y CONSTRUCTORES Por lo regular, son llamados de forma automática. En general, las llamadas de destructor se efectúan en orden inverso a las llamadas de constructor.
  • 38.
  • 39. Nos preguntará el idioma, y lógicamente elegiremos “Español”. Aceptaremos todas las demás opciones con los valores predeterminados hasta que finalice la instalación.
  • 40.
  • 41.
  • 42. Ese es el código fuente de nuestro primer programa en lenguaje C. El código fuente será el archivo llamado “hola.c”, y el programa ejecutable resultado que construiremos inmediatamente se llamará “hola.exe”. Para construir el programa ejecutable, pulsaremos en el menú “Ejecutar” y en la opción “Compilar y Ejecutar”. Con esto, conseguimos que el compilador revise nuestro código fuente, y, si está bien escrito, creará un nuevo archivo en la misma carpeta donde está el archivo con el código fuente que será el ejecutable resultado que hace lo que tiene programado el código fuente.
  • 43. Vemos que se ha ejecutado un archivo que está en “C:ev-Cpp” llamado “hola.exe” (recién creado), y simplemente abre una ventana de consola y muestra el texto “hola”, además muestra otro texto que pide que se pulse cualquier tecla para que se cierre la ventana.