Cómo aprender C++ para principiantes

Como Aprender C Para Principiantes



C ++ es el lenguaje de programación más utilizado y más utilizado. Este lenguaje se estableció como una mejora del lenguaje C desarrollado inicialmente e influenciado por el lenguaje C, por lo que es un superconjunto del lenguaje de programación C que también funciona junto con las otras herramientas y bibliotecas que eran accesibles y se usaban en el lenguaje C. . Es un lenguaje compilado que también es imperioso.

El comienzo del lenguaje C++ se produjo en 1983, poco después cuando 'Bjare Stroustrup' se trabajó con clases en lenguaje C inclusive con algunas características adicionales como la sobrecarga de operadores. Las extensiones de archivo utilizadas son '.c' y '.cpp'. C++ es extensible y no depende de la plataforma e incluye STL, que es la abreviatura de Biblioteca de plantillas estándar. Entonces, básicamente, el lenguaje C++ conocido en realidad se conoce como un lenguaje compilado que tiene el archivo fuente compilado para formar archivos de objetos, que cuando se combina con un enlazador produce un programa ejecutable.

Por otro lado, si hablamos de su nivel, es de nivel medio interpretando la ventaja de la programación de bajo nivel como controladores o kernels y también las aplicaciones de nivel superior como juegos, GUI o aplicaciones de escritorio. Pero la sintaxis es casi la misma tanto para C como para C++.







Componentes del lenguaje C++:

#incluir



Este comando es un archivo de encabezado que comprende el comando 'cout'. Puede haber más de un archivo de encabezado dependiendo de las necesidades y preferencias del usuario.



int principal()





Esta declaración es la función del programa maestro que es un requisito previo para cada programa C++, lo que significa que sin esta declaración no se puede ejecutar ningún programa C++. Aquí 'int' es el tipo de datos de la variable de retorno que indica el tipo de datos que devuelve la función.

Declaración:



Las variables se declaran y se les asignan nombres.

Planteamiento del problema:

Esto es esencial en un programa y podría ser un bucle 'while', un bucle 'for' o cualquier otra condición aplicada.

Operadores:

Los operadores se usan en programas C++ y algunos son cruciales porque se aplican a las condiciones. Algunos operadores importantes son &&, ||, !, &, !=, |, &=, |=, ^, ^=.

Salida de entrada C++:

Ahora, discutiremos las capacidades de entrada y salida en C++. Todas las bibliotecas estándar usadas en C++ brindan capacidades máximas de entrada y salida que se realizan en forma de una secuencia de bytes o normalmente están relacionadas con los flujos.

Flujo de entrada:

En caso de que los bytes se transmitan desde el dispositivo a la memoria principal, es el flujo de entrada.

Salida de corriente:

Si los bytes se transmiten en la dirección opuesta, es el flujo de salida.

Se utiliza un archivo de encabezado para facilitar la entrada y salida en C++. Está escrito como , que proporciona métodos, por ejemplo, guiso y precisión establecida. Los comandos de entrada y salida son cin, cout, cerr y clog. Aquí, 'cin' denota la entrada estándar y 'cout' significa el dispositivo de salida estándar utilizado con los operadores de inserción de flujo (<<) para mostrar declaraciones en la pantalla.

Ejemplo:

Mostraremos un mensaje de cadena usando una cadena de tipo de carácter.

En la primera línea, incluimos 'iostream' que tiene casi todas las bibliotecas esenciales que podríamos necesitar para la ejecución de un programa C++. En la siguiente línea, declaramos un espacio de nombres que proporciona el alcance de los identificadores. Después de llamar a la función principal, estamos inicializando una matriz de tipo de carácter que almacena el mensaje de cadena y 'cout' lo muestra mediante la concatenación. Estamos usando 'cout' para mostrar el texto en la pantalla. Además, tomamos una variable 'A' que tiene una matriz de tipo de datos de caracteres para almacenar una cadena de caracteres y luego agregamos el mensaje de matriz junto con el mensaje estático usando el comando 'cout'.

La salida generada se muestra a continuación:

Ejemplo:

En este caso, representaríamos la edad del usuario en un mensaje de cadena simple.

En el primer paso estamos incluyendo la biblioteca. Después de eso, estamos usando un espacio de nombres que proporcionaría el alcance de los identificadores. En el siguiente paso, estamos llamando al principal() función. Después de lo cual, estamos inicializando la edad como una variable 'int'. Estamos utilizando el comando 'cin' para la entrada y el comando 'cout' para la salida del mensaje de cadena simple. El 'cin' ingresa el valor de la edad del usuario y el 'cout' lo muestra en el otro mensaje estático.

Este mensaje se muestra en la pantalla después de ejecutar el programa para que el usuario pueda obtener la edad y luego presione ENTER.

Ejemplo:

Aquí, demostramos cómo imprimir una cadena mediante el uso de 'cout'.

Para imprimir una cadena, inicialmente incluimos una biblioteca y luego el espacio de nombres para los identificadores. los principal() se llama la función. Además, estamos imprimiendo una salida de cadena usando el comando 'cout' con el operador de inserción que luego muestra el mensaje estático en la pantalla.

Tipos de datos de C++:

Los tipos de datos en C++ son un tema muy importante y ampliamente conocido porque es la base del lenguaje de programación C++. Del mismo modo, cualquier variable utilizada debe ser de un tipo de datos especificado o identificado.

Sabemos que para todas las variables, usamos el tipo de datos durante la declaración para limitar el tipo de datos que se necesita restaurar. O bien, podríamos decir que los tipos de datos siempre le dicen a una variable el tipo de datos que está almacenando. Cada vez que definimos una variable, el compilador asigna la memoria en función del tipo de datos declarado, ya que cada tipo de datos tiene una capacidad de almacenamiento de memoria diferente.

El lenguaje C ++ está ayudando a la diversidad de tipos de datos para que el programador pueda seleccionar el tipo de datos apropiado que pueda necesitar.

C++ facilita el uso de los tipos de datos que se indican a continuación:

  1. Tipos de datos definidos por el usuario
  2. Tipos de datos derivados
  3. Tipos de datos integrados

Por ejemplo, las siguientes líneas se dan para ilustrar la importancia de los tipos de datos al inicializar algunos tipos de datos comunes:

En t a = 2 ; // valor entero

flotar F_N = 3.66 ; // valor de punto flotante

doble D_N = 8.87 ; // valor de coma flotante doble

carbonizarse Alfa = 'pags' ; // personaje

bool b = verdadero ; // Booleano

A continuación se muestran algunos tipos de datos comunes: qué tamaño especifican y qué tipo de información almacenarán sus variables:

  • Char: Con el tamaño de un byte, almacenará un solo carácter, letra, número o valores ASCII.
  • Booleano: con el tamaño de 1 byte, almacenará y devolverá valores como verdadero o falso.
  • Int: Con un tamaño de 2 o 4 bytes, almacenará números enteros sin decimales.
  • Punto flotante: Con un tamaño de 4 bytes, almacenará números fraccionarios que tengan uno o más decimales. Esto es adecuado para almacenar hasta 7 dígitos decimales.
  • Punto flotante doble: Con un tamaño de 8 bytes, también almacenará los números fraccionarios que tengan uno o más decimales. Esto es adecuado para almacenar hasta 15 dígitos decimales.
  • Vacío: Sin un tamaño especificado, un vacío contiene algo sin valor. Por lo tanto, se utiliza para las funciones que devuelven un valor nulo.
  • Carácter ancho: con un tamaño superior a 8 bits, que suele tener una longitud de 2 o 4 bytes, se representa mediante wchar_t, que es similar a char y, por lo tanto, también almacena un valor de carácter.

El tamaño de las variables mencionadas anteriormente puede diferir según el uso del programa o el compilador.

Ejemplo:

Simplemente escribamos un código simple en C++ que producirá los tamaños exactos de algunos tipos de datos descritos anteriormente:

En este código, estamos integrando la biblioteca . Después de lo cual, estamos usando 'espacio de nombres'. En la siguiente línea, estamos llamando a la principal() función en la que estamos utilizando un comando 'cout' que imprimirá los tamaños de todos los tipos de datos especificados en el programa. Para encontrar el tamaño de las variables, tenemos que aplicar el tamaño de() método.

La salida se recibe en bytes como se muestra en la figura:

Ejemplo:

Aquí agregaríamos el tamaño de dos tipos de datos diferentes.

Primero, estamos incorporando un archivo de encabezado que utiliza un 'espacio de nombres estándar' para los identificadores. A continuación, el principal() Se llama a la función en la que estamos inicializando la variable 'int' al principio y luego una variable 'doble' para verificar la diferencia entre los tamaños de estos dos. Luego, sus tamaños se concatenan mediante el uso de la tamaño de() función. La salida se muestra mediante la declaración 'cout'.

Hay un término más que debe mencionarse aquí y es 'Modificadores de datos' . El nombre sugiere que los 'modificadores de datos' se utilizan junto con los tipos de datos incorporados para modificar sus longitudes que un determinado tipo de datos puede mantener según la necesidad o el requisito del compilador.

Los siguientes son los modificadores de datos a los que se puede acceder en C++:

  1. firmado
  2. No firmado
  3. Largo
  4. Corto

El tamaño modificado y también el rango apropiado de los tipos de datos incorporados se mencionan a continuación cuando se combinan con los modificadores de tipo de datos:

  • Short int: Con un tamaño de 2 bytes, tiene un rango de modificaciones de -32.768 a 32.767
  • Unsigned short int: Con un tamaño de 2 bytes, tiene un rango de modificaciones de 0 a 65,535
  • Unsigned int: Con un tamaño de 4 bytes, tiene un rango de modificaciones de 0 a 4,294,967,295
  • Int: Al tener el tamaño de 4 bytes, tiene un rango de modificación de -2,147,483,648 a 2,147,483,647
  • Long int: Teniendo el tamaño de 4 bytes, tiene un rango de modificación de -2,147,483,648 a 2,147,483,647
  • Unsigned long int: Con un tamaño de 4 bytes, tiene un rango de modificaciones de 0 a 4,294,967.295
  • Long long int: Con un tamaño de 8 bytes, tiene un rango de modificaciones desde –(2^63) a (2^63)-1
  • Unsigned long long int: Con un tamaño de 8 bytes, tiene un rango de modificaciones de 0 a 18,446,744,073,709,551,615
  • Carácter firmado: tiene el tamaño de 1 byte, tiene un rango de modificaciones de -128 a 127
  • Unsigned char: Teniendo el tamaño de 1 byte, tiene un rango de modificaciones de 0 a 255.

C++ Enumeración:

En el lenguaje de programación C++, 'Enumeración' es un tipo de datos definido por el usuario. La enumeración se declara como un ' enumeración en C++. Se utiliza para asignar nombres específicos a cualquier constante utilizada en el programa. Mejora la legibilidad y usabilidad del programa.

Sintaxis:

Declaramos la enumeración en C++ de la siguiente manera:

enumeración nombre_enum { Constante1 , constante2 , Constante3… }

Ventajas de la enumeración en C++:

Enum se puede usar de las siguientes maneras:

  • Se puede usar con frecuencia en declaraciones de cambio de caso.
  • Puede utilizar constructores, campos y métodos.
  • Solo puede extender la clase 'enum', no cualquier otra clase.
  • Puede aumentar el tiempo de compilación.
  • Se puede atravesar.

Desventajas de la enumeración en C++:

Enum también tiene algunas desventajas:

Si una vez que se enumera un nombre, no se puede volver a utilizar en el mismo ámbito.

Por ejemplo:

enumeración Días

{ Se sentó , Sol , Mi } ;

En t Se sentó = 8 ; // Esta linea tiene error

Enum no se puede declarar hacia adelante.

Por ejemplo:

enumeración formas ;

color de clase

{

vacío dibujar ( formas una forma ) ; //las formas no han sido declaradas

} ;

Parecen nombres pero son números enteros. Por lo tanto, pueden convertir automáticamente a cualquier otro tipo de datos.

Por ejemplo:

enumeración formas

{

Triángulo , circulo , cuadrado

} ;

En t color = azul ;

color = cuadrado ;

Ejemplo:

En este ejemplo, vemos el uso de la enumeración de C++:

En esta ejecución de código, en primer lugar, comenzamos con #include . es una de las ricas bibliotecas de C++. Es una biblioteca integrada. Se trata de flujos de datos de entrada y salida . Después de esto, usamos el espacio de nombres estándar. Luego, declaramos 'enumeración' como un nombre específico como Materia y asignamos tres materias que son Matemáticas, Inglés y Urdu. A Math se le asigna el valor 1. Nuestro objetivo es imprimir valores de Sujeto declarados en enumeración. Entonces, invocamos la principal() función. En principal() tenemos cout<<, donde 'c' significa 'carácter' y out significa 'salida'. 'Cout' se utiliza para mostrar la salida . << indica el operador de inserción. Al usar 'cout<<', imprimimos valores de enumeración. A continuación, utilizaremos el comando 'return 0'. Este comando devuelve el resultado que está en forma de valores.

Aquí está nuestro resultado del programa ejecutado:

Entonces, como puede ver, tenemos valores de Asunto: Matemáticas, Urdu, Inglés; eso es 1,2,3.

Ejemplo:

Aquí hay otro ejemplo a través del cual aclaramos nuestros conceptos sobre enumeración:

En este programa, comenzamos integrando el archivo de cabecera . Es una biblioteca integrada. Se trata de flujos de datos de entrada y salida. Después de esto, tenemos que utilizar el espacio de nombres estándar. Luego, asignamos valores de enumeración a las constantes que son jugadores. Nuestro objetivo es mostrar de quién es. A continuación, llamamos a nuestro principal() función. En el principal() función asignamos dos constantes: Shadab, cuyo valor es 20 a la variable de enumeración 'bowler1'; y Afridi, cuyo valor es 25 para la variable de enumeración 'bowler2'.

Tenemos que usar una sentencia if-else . También hemos utilizado el operador de comparación dentro de la declaración 'if', lo que significa que estamos comparando si 'bowler2' es mayor que 'bowler1'. Luego, se ejecuta el bloque 'si', lo que significa que se acabó Afridi. Luego, ingresamos 'cout<<' para mostrar la salida. Primero, imprimimos la declaración 'Se acabó'. Luego, el valor de 'bowler2'. Si no, se invoca el bloque else, lo que significa que se acabó Shadab. Luego, al aplicar el comando 'cout<<', mostramos la declaración 'Se acabó'. Luego, el valor de 'bowler1'.

De acuerdo con la declaración If-else, tenemos más de 25, que es el valor de Afridi. Significa que el valor de la variable de enumeración 'bowler2' es mayor que 'bowler1', por eso se ejecuta la declaración 'if'.

C++ Si no, cambia:

En el lenguaje de programación C ++, usamos la 'sentencia if' y la 'sentencia switch' para modificar el flujo del programa. Estas declaraciones se utilizan para proporcionar varios conjuntos de comandos para la implementación del programa, según el valor real de las declaraciones mencionadas, respectivamente. En la mayoría de los casos, usamos operadores como alternativas a la declaración 'si'. Todas estas declaraciones mencionadas anteriormente son las declaraciones de selección que se conocen como declaraciones de decisión o condicionales.

La declaración 'si':

Esta declaración se usa para probar una condición dada siempre que desee cambiar el flujo de cualquier programa. Aquí, si una condición es verdadera, el programa ejecutará las instrucciones escritas, pero si la condición es falsa, simplemente terminará. Consideremos un ejemplo;

Esta es la declaración 'si' simple utilizada, donde estamos inicializando una variable 'int' como 10. Luego, se toma un valor del usuario y se verifica en la declaración 'si'. Si cumple las condiciones aplicadas en la declaración 'if', entonces se muestra la salida.

Como el dígito elegido fue 40, la salida es el mensaje.

La declaración 'If-else':

En un programa más complejo donde la declaración 'if' no suele cooperar, usamos la declaración 'if-else'. En el caso dado, estamos usando la declaración 'si no' para verificar las condiciones aplicadas.

Primero, declararemos una variable de tipo de datos 'int' llamada 'x' cuyo valor se toma del usuario. Ahora, se utiliza la declaración 'si' donde aplicamos una condición de que si el valor entero ingresado por el usuario es 2. El resultado será el deseado y se mostrará un mensaje simple de 'BUEN INTENTO'. De lo contrario, si el número ingresado no es 2, la salida sería diferente.

Cuando el usuario escribe el número 2, se muestra el siguiente resultado.

Cuando el usuario escribe cualquier otro número excepto 2, el resultado que obtenemos es:

La sentencia If-else-if:

Las declaraciones if-else-if anidadas son bastante complejas y se utilizan cuando se aplican varias condiciones en el mismo código. Reflexionemos sobre esto usando otro ejemplo:

Aquí, después de integrar el archivo de encabezado y el espacio de nombres, inicializamos un valor de la variable 'm' como 200. Luego, el valor de 'm' se toma del usuario y luego se verifica con las múltiples condiciones establecidas en el programa.

Aquí, el usuario eligió el valor 195. Es por eso que la salida muestra que este es el valor real de 'm'.

Declaración de cambio:

Una declaración de 'cambio' se usa en C ++ para una variable que debe probarse si es igual a una lista de múltiples valores. En la declaración de 'cambio', identificamos condiciones en forma de casos distintos y todos los casos tienen un descanso incluido al final de cada declaración de caso. A varios casos se les aplican condiciones y declaraciones adecuadas con declaraciones de interrupción que finalizan la declaración de cambio y pasan a una declaración predeterminada en caso de que no se admita ninguna condición.

Palabra clave 'romper':

La declaración de cambio contiene la palabra clave 'romper'. Impide que el código se ejecute en el caso siguiente. La ejecución de la declaración de cambio finaliza cuando el compilador de C++ encuentra la palabra clave 'romper' y el control se mueve a la línea que sigue a la declaración de cambio. No es necesario utilizar una declaración de interrupción en un interruptor. La ejecución pasa al siguiente caso si no se utiliza.

En la primera línea del código compartido, estamos incluyendo la biblioteca. Después de lo cual, estamos agregando 'espacio de nombres'. invocamos el principal() función. Luego, estamos declarando una calificación de tipo de datos de caracteres como 'F'. Esta calificación podría ser su deseo y el resultado se mostraría respectivamente para los casos elegidos. Aplicamos la declaración de cambio para obtener el resultado.

Si elegimos 'F' como calificación, el resultado es 'mejor suerte la próxima vez' porque esta es la declaración que queremos que se imprima en caso de que la calificación sea 'F'.

Cambiemos la calificación a X y veamos qué sucede. Escribí 'X' como calificación y el resultado recibido se muestra a continuación:

Entonces, el caso incorrecto en el 'cambio' mueve automáticamente el puntero directamente a la declaración predeterminada y finaliza el programa.

Las sentencias if-else y switch tienen algunas características comunes:

  • Estas declaraciones se utilizan para administrar cómo se ejecuta el programa.
  • Ambos evalúan una condición y eso determina cómo fluye el programa.
  • A pesar de tener diferentes estilos de representación, pueden usarse para el mismo propósito.

Las sentencias if-else y switch difieren en ciertos aspectos:

  • Mientras que el usuario definió los valores en las declaraciones de caso 'cambiar', mientras que las restricciones determinan los valores en las declaraciones 'if-else'.
  • Se necesita tiempo para determinar dónde se debe hacer el cambio, es un desafío modificar las declaraciones 'if-else'. Por otro lado, las declaraciones de 'cambio' son fáciles de actualizar porque se pueden modificar fácilmente.
  • Para incluir muchas expresiones, podemos utilizar numerosas declaraciones 'if-else'.

Bucles de C++:

Ahora, descubriremos cómo usar bucles en la programación de C++. La estructura de control conocida como 'bucle' repite una serie de declaraciones. En otras palabras, se llama estructura repetitiva. Todas las declaraciones se ejecutan a la vez en una estructura secuencial. . Por otro lado, dependiendo de la declaración especificada, la estructura de condición puede ejecutar u omitir una expresión. Puede ser necesario ejecutar una declaración más de una vez en situaciones particulares.

Tipos de bucle:

Hay tres categorías de bucles:

En bucle:

Loop es algo que se repite como un ciclo y se detiene cuando no valida la condición proporcionada. Un bucle 'for' implementa una secuencia de instrucciones varias veces y condensa el código que se ocupa de la variable de bucle. Esto demuestra cómo un bucle 'for' es un tipo específico de estructura de control iterativo que nos permite crear un bucle que se repite un número determinado de veces. El bucle nos permitiría ejecutar el número “N” de pasos usando solo un código de una sola línea. Hablemos de la sintaxis que usaremos para que se ejecute un bucle 'for' en su aplicación de software.

La sintaxis de la ejecución del bucle 'for':

Ejemplo:

Aquí, usamos una variable de bucle para regular este bucle en un bucle 'for'. El primer paso sería asignar un valor a esta variable que estamos enunciando como bucle. Después de eso, debemos definir si es menor o mayor que el valor del contador. Ahora, se ejecutará el cuerpo del ciclo y también se actualizará la variable del ciclo en caso de que la declaración devuelva verdadero. Los pasos anteriores se repiten con frecuencia hasta llegar a la condición de salida.

  • Expresión de inicialización: Primero, necesitamos establecer el contador de bucle en cualquier valor inicial en esta expresión.
  • Expresión de prueba : Ahora, necesitamos probar la condición dada en la expresión dada. Si se cumplen los criterios, realizaremos el cuerpo del bucle 'for' y continuaremos actualizando la expresión; si no, debemos parar.
  • Actualizar expresión: Esta expresión aumenta o disminuye la variable del bucle en un cierto valor después de que se haya ejecutado el cuerpo del bucle.

Ejemplos de programas en C++ para validar un bucle 'For':

Ejemplo:

Este ejemplo muestra la impresión de valores enteros del 0 al 10.

En este escenario, se supone que debemos imprimir los números enteros del 0 al 10. Primero, inicializamos una variable aleatoria i con un valor dado '0' y luego el parámetro de condición que ya usamos verifica la condición si i<=10. Y cuando cumple la condición y se vuelve verdadero, comienza la ejecución del bucle 'for'. Luego de la ejecución, entre los dos parámetros de incremento o decremento, se ejecutará uno y en el cual hasta que la condición especificada i<=10 sea falsa, se incrementa el valor de la variable i.

No. de Iteraciones con condición i<10:

Nº de

iteraciones

Variables yo<10 Acción
Primero yo=0 verdadero Se muestra 0 y i se incrementa en 1.
Segundo yo=1 verdadero Se muestra 1 y i se incrementa en 2.
Tercero yo=2 verdadero Se muestra 2 y i se incrementa en 3.
Cuatro yo=3 verdadero Se muestra 3 y i se incrementa en 4.
Quinto yo=4 verdadero Se muestra 4 y i se incrementa en 5.
Sexto yo=5 verdadero Se muestra 5 y i se incrementa en 6.
Séptimo yo=6 verdadero Se muestra 6 y i se incrementa en 7.
Octavo yo=7 verdadero Se muestra 7 y i se incrementa en 8
Noveno yo=8 verdadero Se muestra 8 y i se incrementa en 9.
Décimo yo=9 verdadero Se muestra 9 y i se incrementa en 10.
Undécimo yo=10 verdadero Se muestra 10 y i se incrementa en 11.
Duodécimo yo=11 falso El bucle se termina.

Ejemplo:

La siguiente instancia muestra el valor del entero:

En el caso anterior, una variable llamada 'a' se inicializa con un valor dado 50. Se aplica una condición donde la variable 'a' es menor que 70. Luego, el valor de 'a' se actualiza de modo que se suma con 2. Luego, el valor de 'a' se inicia desde un valor inicial que era 50 y se agrega 2 simultáneamente a lo largo del ciclo hasta que la condición devuelve falso y el valor de 'a' aumenta de 70 y el ciclo termina.

Nº de iteraciones:

Nº de

Iteración

Variable un = 50 Acción
Primero un = 50 verdadero El valor de a se actualiza sumando dos enteros más y 50 se convierte en 52
Segundo un=52 verdadero El valor de a se actualiza sumando dos enteros más y 52 se convierte en 54
Tercero un=54 verdadero El valor de a se actualiza sumando dos enteros más y 54 se convierte en 56
Cuatro un=56 verdadero El valor de a se actualiza sumando dos enteros más y 56 se convierte en 58
Quinto un=58 verdadero El valor de a se actualiza sumando dos enteros más y 58 se convierte en 60
Sexto un=60 verdadero El valor de a se actualiza sumando dos enteros más y 60 se convierte en 62
Séptimo un=62 verdadero El valor de a se actualiza sumando dos enteros más y 62 se convierte en 64
Octavo un=64 verdadero El valor de a se actualiza sumando dos enteros más y 64 se convierte en 66
Noveno un=66 verdadero El valor de a se actualiza sumando dos enteros más y 66 se convierte en 68
Décimo un=68 verdadero El valor de a se actualiza sumando dos enteros más y 68 se convierte en 70
Undécimo un=70 falso El bucle se termina

Mientras Bucle:

Hasta que se cumpla la condición definida, se pueden ejecutar una o más sentencias. Cuando la iteración se desconoce de antemano, es muy útil. Primero, la condición se verifica y luego ingresa al cuerpo del bucle para ejecutar o implementar la declaración.

En la primera línea, incorporamos el archivo de encabezado y el espacio de nombres estándar. llamamos al principal() función. Aquí, inicializamos una variable 'a'. En la siguiente línea, aplicamos la condición while. Dentro de la condición while, usamos la declaración 'cout' para mostrar el valor que se escribe. Luego, utilizamos el operador de incremento para aumentar el conteo. En la última línea, utilizamos la instrucción 'return 0' para finalizar el programa.

Bucle Do-While:

Cuando se cumple la condición definida, se llevan a cabo una serie de sentencias. Primero, se lleva a cabo el cuerpo del bucle. Después de eso, se comprueba si la condición es verdadera o no. Por lo tanto, la instrucción se ejecuta una vez. El cuerpo del bucle se procesa en un bucle 'Do-while' antes de evaluar la condición. El programa se ejecuta siempre que se cumpla la condición requerida. De lo contrario, cuando la condición es falsa, el programa termina.

Aquí, integramos el archivo de cabecera . utilizamos el principal() función en el programa. Luego, inicializamos cuatro enteros y usamos la declaración 'cin', para que el usuario pueda ingresar el valor. En la siguiente línea, inicializamos dos enteros diferentes. Aplicamos la declaración 'do'. Dentro de la declaración, utilizamos dos funciones aritméticas. Primero, utilizamos el operador de multiplicación y segundo, utilizamos el operador de suma. Luego, aplicamos la condición 'while' en el programa fuera de la instrucción 'do'. Además, agregamos la declaración 'cout' para imprimir el resultado a través del entero 'resultado'. En la última línea, para terminar el programa, usamos los comandos return 0.

C++ Continuar/Pausa:

Declaración de continuación de C++:

La declaración de continuación se usa en el lenguaje de programación C++ para evitar una encarnación actual de un bucle, así como para mover el control a la iteración posterior. Durante el bucle, la declaración de continuación se puede usar para omitir ciertas declaraciones. También se utiliza dentro del ciclo junto con declaraciones ejecutivas. Si la condición específica es verdadera, todas las instrucciones que siguen a la instrucción continuar no se implementan.

Con bucle for:

En este caso, usamos el 'bucle for' con la declaración de continuación de C++ para obtener el resultado requerido al pasar algunos requisitos específicos.

Comenzamos incluyendo la biblioteca y usando 'namespace std'. Entonces estamos llamando a la principal() función. Utilizamos bucle for. Dentro del bucle for, declaramos una variable 'k' que se considera que se encuentra entre 3 y 8. Hacemos uso de una condición para continuar la iteración incluso si (k = = 5). Luego usó la declaración 'continuar' después de especificar la condición. Al final. para mostrar la salida, hacemos uso del comando 'cout' junto con el comando 'return 0'.

Con un bucle while:

A lo largo de esta demostración, usamos tanto el 'bucle while' como la instrucción 'continuar' de C++, incluidas algunas condiciones para ver qué tipo de salida se puede generar.

En este ejemplo, establecemos una condición para agregar números hasta 40 únicamente. Si el número entero ingresado es un número negativo, entonces el ciclo 'while' terminará. Por otro lado, si el número es mayor que 40, ese número específico se omitirá de la iteración.

Incluiremos la biblioteca , utilizando 'namespace std' y luego llamaremos al principal() función. Inicializamos una variable 's'. Otra variable 'número' se declara en el siguiente paso. Usamos el bucle 'while'. Ahora, especificamos la condición de que el valor requerido será mayor o igual a cero. Para sumar todos los números positivos, utilizamos la declaración 's += número'. Se aplicará el comando 'cout' para mostrar el mensaje en la consola 'Ingrese cualquier número'. Obtenemos el número entero del usuario utilizando la declaración 'cin'. También empleamos la declaración 'si'. Siempre que el número definido sea superior a 40, se mostrará el mensaje. Luego, usamos el comando 'continuar'. Después de todos estos pasos, se ejecutará la instrucción 'continuar'. Para mostrar la suma de todos los números, utilizamos la instrucción 'cout'.

Declaración de interrupción de C ++:

Cada vez que se usa la instrucción break en un ciclo en C++, el ciclo finaliza instantáneamente y el control del programa se reinicia en la declaración posterior al ciclo. También es posible finalizar un caso dentro de una declaración de 'cambio'.

Con bucle for:

Aquí, utilizaremos el ciclo 'for' con la declaración 'break' para observar la salida al iterar sobre diferentes valores.

Primero, incorporamos un archivo de encabezado . A continuación, utilizamos 'namespace std'. Después de llamar a la función main(), usamos for the loop. Aquí, inicializaríamos la variable 'm'. Aplicaremos la condición de que el valor de 'm' esté entre 10 y 20. La condición de 'romper' se ejecutará como si (m == 17). Para imprimir el resultado, utilizamos 'cout'. Luego, se aplicará el comando 'return 0'.

Con un bucle while:

Vamos a emplear el ciclo 'while' junto con la instrucción break.

Comenzamos importando la biblioteca . Se incluirá el 'espacio de nombres estándar'. Dentro del método main(), se inicializarían dos variables 'nbr' y 'x'. Usamos el bucle 'while' y pasamos 'true' como argumento. Para obtener valor del usuario, empleamos el comando 'cin'. A continuación, utilizamos la declaración 'si'. Junto con esto, se aplica la condición de 'romper' para especificar la condición si (nbr < 0). Para sumar todos los valores positivos, utilizamos las fórmulas 'x += nbr'. Para mostrar esta suma, agregamos la declaración 'cout'.

Funciones C++:

Las funciones se utilizan para estructurar un programa ya conocido en múltiples fragmentos de códigos que se ejecutan solo cuando se llama. En el lenguaje de programación C++, una función se define como un grupo de declaraciones a las que se les da un nombre apropiado y las llaman. El usuario puede pasar datos a las funciones que llamamos parámetros. Las funciones son responsables de implementar las acciones cuando es más probable que se reutilice el código.

Creación de una función:

Aunque C++ ofrece muchas funciones predefinidas como principal(), lo que facilita la ejecución del código. De la misma manera, puede crear y definir sus funciones de acuerdo a su requerimiento. Al igual que todas las funciones ordinarias, aquí necesita un nombre para su función para una declaración que se agrega con un paréntesis después de '()'.

Sintaxis:

Trabajo nulo ( )

{

// cuerpo de la función

}

Void es el tipo de retorno de la función. Labor es el nombre que se le da y los corchetes encierran el cuerpo de la función donde agregamos el código para su ejecución.

Llamando a una función:

Las funciones que se declaran en el código se ejecutan solo cuando se invocan. Para llamar a una función, debe especificar el nombre de la función junto con el paréntesis seguido de un punto y coma ';'.

Ejemplo:

Declaremos y construyamos una función definida por el usuario en esta situación.

Inicialmente, como se describe en cada programa, se nos asigna una biblioteca y un espacio de nombres para apoyar la ejecución del programa. La función definida por el usuario mano de obra() siempre se llama antes de anotar el principal() función. Una función llamada mano de obra() se declara donde se muestra el mensaje '¡Un trabajo merece respeto!'. En el principal() función con el tipo de retorno entero, estamos llamando a la función mano de obra() función.

Este es el mensaje simple que se definió en la función definida por el usuario que se muestra aquí con la ayuda del principal() función.

Vacío:

En el caso mencionado anteriormente, notamos que el tipo de retorno de la función definida por el usuario es nulo. Esto indica que la función no devuelve ningún valor. Esto representa que el valor no está presente o probablemente sea nulo. Porque cada vez que una función solo imprime los mensajes, no necesita ningún valor de retorno.

Este vacío se usa de manera similar en el espacio de parámetros de la función para indicar claramente que esta función no toma ningún valor real mientras se llama. En la situación anterior, también llamaríamos a la mano de obra() funcionan como:

trabajo nulo ( vacío )

{

salida << “Un trabajo merece respeto ! ;

}

Los parámetros reales:

Uno puede definir parámetros para la función. Los parámetros de una función se definen en la lista de argumentos de la función que se suma al nombre de la función. Cada vez que llamamos a la función, necesitamos pasar los valores genuinos de los parámetros para completar la ejecución. Estos se concluyen como los parámetros reales. Mientras que los parámetros que se definen mientras se define la función se conocen como parámetros formales.

Ejemplo:

En este ejemplo, estamos a punto de intercambiar o sustituir los dos valores enteros a través de una función.

Al principio, estamos tomando el archivo de encabezado. La función definida por el usuario es el nombre declarado y definido sub(). Esta función se utiliza para la sustitución de los dos valores enteros que son i y n. A continuación, los operadores aritméticos se utilizan para el intercambio de estos dos números enteros. El valor del primer entero 'i' se almacena en lugar del valor 'n' y el valor de n se guarda en lugar del valor de 'i'. Luego, se imprime el resultado después de cambiar los valores. Si hablamos de la principal() función, estamos tomando los valores de los dos enteros del usuario y se muestran. En el último paso, la función definida por el usuario sub() se llama y los dos valores se intercambian.

En este caso de sustituir los dos números, podemos ver claramente que al usar el sub() función, el valor de 'i' y 'n' dentro de la lista de parámetros son los parámetros formales. Los parámetros reales son el parámetro que pasa al final del principal() función donde se llama a la función de sustitución.

Punteros de C++:

Pointer en C++ es bastante más fácil de aprender y excelente de usar. En el lenguaje C++ se utilizan punteros porque facilitan nuestro trabajo y todas las operaciones funcionan con gran eficiencia cuando se trata de punteros. Además, hay algunas tareas que no se realizarán a menos que se utilicen punteros como asignación de memoria dinámica. Hablando de punteros, la idea principal que uno debe comprender es que el puntero es solo una variable que almacenará la dirección de memoria exacta como su valor. El uso extensivo de punteros en C++ se debe a las siguientes razones:

  • Para pasar una función a otra.
  • Para asignar los nuevos objetos en el montón.
  • Para la iteración de elementos en una matriz

Por lo general, el operador '&' (ampersand) se usa para acceder a la dirección de cualquier objeto en la memoria.

Punteros y sus tipos:

El puntero tiene varios tipos siguientes:

  • Punteros nulos: Estos son punteros con un valor de cero almacenados en las bibliotecas de C++.
  • Puntero aritmético: Incluye cuatro operadores aritméticos principales que son accesibles, que son ++, –, +, -.
  • Una matriz de punteros: Son matrices que se utilizan para almacenar algunos punteros.
  • Puntero a puntero: Es donde se usa un puntero sobre un puntero.

Ejemplo:

Reflexione sobre el siguiente ejemplo en el que se imprimen las direcciones de algunas variables.

Después de incluir el archivo de encabezado y el espacio de nombres estándar, estamos inicializando dos variables. Uno es un valor entero representado por i' y otro es una matriz de tipo de carácter 'I' con un tamaño de 10 caracteres. Las direcciones de ambas variables se muestran luego usando el comando 'cout'.

El resultado que hemos recibido se muestra a continuación:

Este resultado muestra la dirección de ambas variables.

Por otro lado, un puntero se considera una variable cuyo valor en sí mismo es la dirección de una variable diferente. Un puntero siempre apunta a un tipo de datos que tiene el mismo tipo que se crea con un operador (*).

Declaración de un puntero:

El puntero se declara de esta manera:

escribe * estaba - nombre ;

El tipo base del puntero se indica con 'tipo', mientras que el nombre del puntero se expresa con 'var-name'. Y para dar derecho a una variable al puntero se utiliza el asterisco (*).

Formas de asignar punteros a las variables:

En t * Pi ; //puntero de un tipo de dato entero

Doble * p.d. ; //puntero de un tipo de datos doble

Flotar * por favor ; // puntero de un tipo de datos flotante

Carbonizarse * ordenador personal ; // puntero de un tipo de datos char

Casi siempre hay un número hexadecimal largo que representa la dirección de memoria que inicialmente es la misma para todos los punteros independientemente de sus tipos de datos.

Ejemplo:

La siguiente instancia demostraría cómo los punteros reemplazan el operador '&' y almacenan la dirección de las variables.

Vamos a integrar el soporte de bibliotecas y directorios. Entonces, invocaríamos el principal() función donde primero declaramos e inicializamos una variable 'n' de tipo 'int' con el valor 55. En la siguiente línea, estamos inicializando una variable de puntero llamada 'p1'. Después de esto, asignamos la dirección de la variable 'n' al puntero 'p1' y luego mostramos el valor de la variable 'n'. Se muestra la dirección de 'n' que está almacenada en el puntero 'p1'. Luego, el valor de '*p1' se imprime en la pantalla utilizando el comando 'cout'. La salida es la siguiente:

Aquí, vemos que el valor de 'n' es 55 y la dirección de 'n' que se almacenó en el puntero 'p1' se muestra como 0x6ffe14. Se encuentra el valor de la variable de puntero y es 55, que es el mismo que el valor de la variable entera. Por lo tanto, un puntero almacena la dirección de la variable, y también el puntero *, tiene almacenado el valor del entero que, como resultado, devolverá el valor de la variable almacenada inicialmente.

Ejemplo:

Consideremos otro ejemplo donde estamos usando un puntero que almacena la dirección de una cadena.

En este código, estamos agregando bibliotecas y espacios de nombres primero. En el principal() tenemos que declarar una cadena llamada 'maquillaje' que tiene el valor 'Máscara'. Se utiliza un puntero de tipo cadena '*p2' para almacenar la dirección de la variable de maquillaje. El valor de la variable 'maquillaje' se muestra en la pantalla utilizando la instrucción 'cout'. Después de esto, se imprime la dirección de la variable 'maquillaje' y, al final, se muestra la variable de puntero 'p2' que muestra la dirección de memoria de la variable 'maquillaje' con el puntero.

El resultado recibido del código anterior es el siguiente:

La primera línea muestra el valor de la variable 'maquillaje'. La segunda línea muestra la dirección de la variable 'maquillaje'. En la última línea, se muestra la dirección de memoria de la variable 'maquillaje' con el uso del puntero.

Gestión de memoria C++:

Para una gestión eficaz de la memoria en C++, muchas operaciones son útiles para la gestión de la memoria mientras se trabaja en C++. Cuando usamos C++, el procedimiento de asignación de memoria más comúnmente utilizado es la asignación de memoria dinámica donde las memorias se asignan a las variables durante el tiempo de ejecución; no como otros lenguajes de programación donde el compilador podría asignar la memoria a las variables. En C++, la desasignación de las variables que se asignaron dinámicamente es necesaria, de modo que la memoria se libere cuando la variable ya no esté en uso.

Para la asignación y desasignación dinámica de la memoria en C++, hacemos el ' nuevo' y 'Eliminar' operaciones. Es fundamental administrar la memoria para que no se desperdicie memoria. La asignación de la memoria se vuelve fácil y eficaz. En cualquier programa de C++, la memoria se emplea en uno de dos aspectos: ya sea como un montón o como una pila.

  • Pila : Todas las variables que se declaran dentro de la función y todos los demás detalles que están interrelacionados con la función se almacenan en la pila.
  • Montón : Cualquier tipo de memoria no utilizada o la parte desde donde asignamos o asignamos la memoria dinámica durante la ejecución de un programa se conoce como montón.

Al usar matrices, la asignación de memoria es una tarea en la que simplemente no podemos determinar la memoria a menos que el tiempo de ejecución. Por lo tanto, asignamos la memoria máxima a la matriz, pero esto tampoco es una buena práctica, ya que en la mayoría de los casos la memoria permanece sin usar y de alguna manera se desperdicia, lo que simplemente no es una buena opción o práctica para su computadora personal. Es por eso que tenemos algunos operadores que se utilizan para asignar memoria del montón durante el tiempo de ejecución. Los dos operadores principales 'nuevo' y 'eliminar' se utilizan para la asignación y desasignación de memoria eficientes.

Nuevo operador de C++:

El operador new es responsable de la asignación de la memoria y se utiliza de la siguiente manera:

En este código, incluimos la biblioteca y el espacio de nombres. Luego, inicializamos un puntero con el tipo de datos 'int'. En la línea siguiente, a este puntero se le asigna el operador 'nuevo'.

La memoria se ha asignado a la variable 'int' con éxito con el uso de un puntero.

Operador de eliminación de C++:

Siempre que terminemos de usar una variable, debemos desasignar la memoria que una vez le asignamos porque ya no está en uso. Para esto, utilizamos el operador 'eliminar' para liberar la memoria.

El ejemplo que vamos a revisar ahora es tener ambos operadores incluidos.

Estamos calculando el promedio de tres valores diferentes tomados del usuario. Las variables de puntero se asignan con el operador 'nuevo' para almacenar los valores. Se implementa la fórmula del promedio. Después de esto, se utiliza el operador 'eliminar' que elimina los valores que se almacenaron en las variables de puntero utilizando el operador 'nuevo'. Esta es la asignación dinámica donde la asignación se realiza durante el tiempo de ejecución y luego la desasignación ocurre poco después de que finaliza el programa.

Uso de la matriz para la asignación de memoria:

Ahora, vamos a ver cómo se utilizan los operadores 'nuevo' y 'eliminar' al utilizar arreglos. La asignación dinámica ocurre de la misma manera que sucedió con las variables, ya que la sintaxis es casi la misma.

En el caso dado, estamos considerando la matriz de elementos cuyo valor se toma del usuario. Se toman los elementos de la matriz y se declara la variable de puntero y luego se asigna la memoria. Poco después de la asignación de memoria, se inicia el procedimiento de entrada de los elementos de la matriz. A continuación, la salida de los elementos de la matriz se muestra mediante un bucle 'for'. Este ciclo tiene la condición de iteración de elementos que tienen un tamaño menor que el tamaño real de la matriz que está representada por n.

Cuando se usen todos los elementos y no haya más requisitos para que se vuelvan a usar, la memoria asignada a los elementos se desasignará mediante el operador 'eliminar'.

En la salida, pudimos ver conjuntos de valores impresos dos veces. El primer bucle 'for' se usó para escribir los valores de los elementos y el otro bucle 'for' se usa para imprimir los valores ya escritos que muestran que el usuario ha escrito estos valores para mayor claridad.

ventajas:

El operador 'nuevo' y 'eliminar' es siempre la prioridad en el lenguaje de programación C++ y se usa ampliamente. Al tener una discusión y comprensión exhaustivas, se observa que el operador 'nuevo' tiene demasiadas ventajas. Las ventajas del operador 'nuevo' para la asignación de la memoria son las siguientes:

  • El nuevo operador se puede sobrecargar con mayor facilidad.
  • Al asignar memoria durante el tiempo de ejecución, siempre que no haya suficiente memoria, se lanzará una excepción automática en lugar de que solo se termine el programa.
  • El ajetreo de usar el procedimiento de encasillamiento no está presente aquí porque el operador 'nuevo' tiene el mismo tipo que la memoria que hemos asignado.
  • El operador 'nuevo' también rechaza la idea de usar el operador sizeof() ya que 'nuevo' inevitablemente calculará el tamaño de los objetos.
  • El operador 'nuevo' nos permite inicializar y declarar los objetos a pesar de que está generando el espacio para ellos de forma espontánea.

Matrices C++:

Vamos a tener una discusión detallada sobre qué son los arreglos y cómo se declaran e implementan en un programa C++. La matriz es una estructura de datos utilizada para almacenar múltiples valores en una sola variable, lo que reduce el ajetreo de declarar muchas variables de forma independiente.

Declaración de matrices:

Para declarar una matriz, primero se debe definir el tipo de variable y dar un nombre apropiado a la matriz que luego se agrega entre corchetes. Esto contendrá la cantidad de elementos que muestran el tamaño de una matriz en particular.

Por ejemplo:

Maquillaje de hilo [ 5 ] ;

Esta variable se declara mostrando que contiene cinco cadenas en una matriz llamada 'maquillaje'. Para identificar e ilustrar los valores de esta matriz, necesitamos usar corchetes, con cada elemento encerrado por separado entre comillas dobles, cada uno separado por una sola coma entre ellos.

Por ejemplo:

Maquillaje de hilo [ 5 ] = { 'Máscara' , 'Tinte' , 'Lápiz labial' , 'Base' , “Primer” } ;

De manera similar, si tiene ganas de crear otra matriz con un tipo de datos diferente que se supone que es 'int', entonces el procedimiento sería el mismo, solo necesita cambiar el tipo de datos de la variable como se muestra a continuación:

En t múltiplos [ 5 ] = { 2 , 4 , 6 , 8 , 10 } ;

Al asignar valores enteros a la matriz, uno no debe contenerlos entre comillas, lo que solo funcionaría para la variable de cadena. Entonces, de manera concluyente, una matriz es una colección de elementos de datos interrelacionados con tipos de datos derivados almacenados en ellos.

¿Cómo acceden a los elementos de la matriz?

A todos los elementos incluidos en la matriz se les asigna un número distinto, que es su número de índice que se utiliza para acceder a un elemento de la matriz. El valor del índice comienza con un 0 hasta uno menos que el tamaño de la matriz. El primer valor tiene el valor de índice de 0.

Ejemplo:

Considere un ejemplo muy básico y fácil en el que inicializaremos variables en una matriz.

En el primer paso, estamos incorporando el archivo de encabezado , que agregará automáticamente todas las bibliotecas necesarias en el programa. El espacio de nombres 'std' proporcionará el alcance de los directorios. En la tercera línea, estamos llamando a la principal() función. El corchete significa el comienzo de la función. Después de ingresar a la función, declararemos la matriz de tipo 'int' llamada 'dígitos'. Contiene el tamaño de 4, lo que significa que podría contener solo 4 valores enteros a la vez. A cada uno de los elementos de la matriz se le ha asignado un dígito único y diferente por separado. A continuación, se muestra la matriz completa y cada elemento se llama individualmente.

Este es el resultado recibido del código anterior. La palabra clave 'endl' mueve el otro elemento a la siguiente línea automáticamente.

Ejemplo:

En este código, estamos usando un bucle 'for' para imprimir los elementos de una matriz.

En el caso anterior, estamos agregando la biblioteca esencial. Se está agregando el espacio de nombres estándar. los principal() function es la función donde vamos a realizar todas las funcionalidades para la ejecución de un programa en particular. A continuación, declaramos una matriz de tipo int llamada 'Num', que tiene un tamaño de 10. El valor de estas diez variables se toma del usuario con el uso del bucle 'for'. Para la visualización de esta matriz, se utiliza nuevamente un bucle 'for'. Los 10 enteros almacenados en la matriz se muestran con la ayuda de la declaración 'cout'.

Este es el resultado que obtuvimos de la ejecución del código anterior, que muestra 10 números enteros con valores diferentes.

Ejemplo:

En este escenario, estamos a punto de averiguar el puntaje promedio de un estudiante y el porcentaje que ha obtenido en la clase.

Primero, debe agregar una biblioteca que proporcione soporte inicial al programa C++. A continuación, especificamos el tamaño 5 de la matriz denominada 'Puntuación'. Luego, inicializamos una variable 'suma' de tipo de datos flotante. Las puntuaciones de cada asignatura se toman del usuario manualmente. Luego, se usa un bucle 'for' para averiguar el promedio y el porcentaje de todos los temas incluidos. La suma se obtiene usando la matriz y el bucle 'for'. Luego, el promedio se encuentra usando la fórmula de promedio. Después de averiguar el promedio, estamos pasando su valor al porcentaje que se suma a la fórmula para obtener el porcentaje. Luego se calculan y muestran el promedio y el porcentaje.

Este es el resultado final donde se toman las puntuaciones del usuario para cada tema individualmente y se calcula el promedio y el porcentaje respectivamente.

Ventajas de usar Matrices:

  • Los elementos de la matriz son de fácil acceso debido al número de índice que se les asigna.
  • Podemos realizar fácilmente la operación de búsqueda sobre una matriz.
  • En caso de que desee complejidades en la programación, puede usar una matriz bidimensional que también caracteriza las matrices.
  • Para almacenar múltiples valores que tienen un tipo de datos similar, se podría utilizar fácilmente una matriz.

Desventajas de usar matrices:

  • Las matrices tienen un tamaño fijo.
  • Las matrices son homogéneas, lo que significa que solo se almacena un único tipo de valor.
  • Los arreglos almacenan datos en la memoria física individualmente.
  • El proceso de inserción y eliminación no es fácil para las matrices.

Objetos y clases de C++:

C++ es un lenguaje de programación orientado a objetos, lo que significa que los objetos juegan un papel vital en C++. Hablando de objetos, primero hay que considerar qué son los objetos, por lo que un objeto es cualquier instancia de la clase. Como C++ se ocupa de los conceptos de programación orientada a objetos, los aspectos más importantes que se discutirán son los objetos y las clases. Las clases son, de hecho, tipos de datos definidos por el propio usuario y designados para encapsular los miembros de datos y las funciones a las que solo se puede acceder cuando se crea la instancia de la clase en particular. Los miembros de datos son las variables que se definen dentro de la clase.



La clase, en otras palabras, es un esquema o diseño que es responsable de la definición y declaración de los miembros de datos y las funciones asignadas a esos miembros de datos. Cada uno de los objetos que se declaran en la clase podría compartir todas las características o funciones demostradas por la clase.

Supongamos que hay una clase llamada pájaros, ahora inicialmente todos los pájaros podrían volar y tener alas. Por tanto, volar es un comportamiento que adoptan estas aves y las alas son parte de su cuerpo o una característica básica.







Definición de una clase:

Para definir una clase, debe seguir la sintaxis y restablecerla de acuerdo con su clase. La palabra clave 'clase' se usa para definir la clase y todos los demás miembros de datos y funciones se definen dentro de las llaves seguidas de la definición de la clase.





Clase NombreDeClase

{

Especificador de acceso :

Miembros de datos ;

Funciones de miembro de datos ( ) ;

} ;

Declarar objetos:

Poco después de definir una clase, necesitamos crear los objetos para acceder y definir las funciones especificadas por la clase. Para eso, tenemos que escribir el nombre de la clase y luego el nombre del objeto para la declaración.



Acceso a miembros de datos:

Se accede a las funciones y los miembros de datos con la ayuda de un simple punto '.' Operador. También se accede a los miembros de datos públicos con este operador, pero en el caso de los miembros de datos privados, simplemente no puede acceder a ellos directamente. El acceso de los miembros de datos depende de los controles de acceso que les otorgan los modificadores de acceso que son privados, públicos o protegidos. Aquí hay un escenario que demuestra cómo declarar la clase simple, los miembros de datos y las funciones.











Ejemplo:

En este ejemplo, definiremos algunas funciones y accederemos a las funciones de clase y miembros de datos con la ayuda de los objetos.



En el primer paso, estamos integrando la biblioteca, después de lo cual debemos incluir los directorios de soporte. La clase se define explícitamente antes de llamar al principal() función. Esta clase se denomina 'vehículo'. Los miembros de datos eran el 'nombre del vehículo y la 'id' de ese vehículo, que es el número de placa de ese vehículo que tiene una cadena y el tipo de datos int, respectivamente. Las dos funciones se declaran para estos dos miembros de datos. los identificación() La función muestra la identificación del vehículo. Como los miembros de datos de la clase son públicos, también podemos acceder a ellos fuera de la clase. Por lo tanto, estamos llamando a la nombre() función fuera de la clase y luego tomando el valor para el 'VehicleName' del usuario e imprimiéndolo en el siguiente paso. En el principal() función, estamos declarando un objeto de la clase requerida que ayudará a acceder a los miembros de datos y funciones de la clase. Además, estamos inicializando los valores para el nombre del vehículo y su identificación, solo si el usuario no proporciona el valor para el nombre del vehículo.

Esta es la salida recibida cuando el usuario da el nombre del vehículo y las placas de matrícula son el valor estático que se le asigna.

Hablando de la definición de las funciones miembro, uno debe entender que no siempre es obligatorio definir la función dentro de la clase. Como puede ver en el ejemplo anterior, estamos definiendo la función de la clase fuera de la clase porque los miembros de datos se declaran públicamente y esto se hace con la ayuda del operador de resolución de alcance que se muestra como '::' junto con el nombre de la clase y el nombre de la función.

C++ Constructores and Destructores:

Vamos a tener una visión completa de este tema con la ayuda de ejemplos. La eliminación y creación de objetos en la programación C++ son muy importantes. Por eso, cada vez que creamos una instancia para una clase, llamamos automáticamente a los métodos constructores en algunos casos.

Constructores:

Como su nombre lo indica, un constructor se deriva de la palabra 'construir' que especifica la creación de algo. Entonces, un constructor se define como una función derivada de la clase recién creada que comparte el nombre de la clase. Y se utiliza para la inicialización de los objetos incluidos en la clase. Además, un constructor no tiene un valor de retorno por sí mismo, lo que significa que su tipo de retorno tampoco será nulo. No es obligatorio aceptar los argumentos, pero se pueden agregar si es necesario. Los constructores son útiles en la asignación de memoria al objeto de una clase y para establecer el valor inicial de las variables miembro. El valor inicial podría pasarse en forma de argumentos a la función constructora una vez que se inicializa el objeto.

Sintaxis:

NombreDeLaClase ( )
{
//cuerpo del constructor
}

Tipos de constructores:

Constructor parametrizado:

Como se discutió anteriormente, un constructor no tiene ningún parámetro, pero uno puede agregar un parámetro de su elección. Esto inicializará el valor del objeto mientras se crea. Para comprender mejor este concepto, considere el siguiente ejemplo:

Ejemplo:

En este caso, crearíamos un constructor de la clase y declararíamos parámetros.

Estamos incluyendo el archivo de encabezado en el primer paso. El siguiente paso para usar un espacio de nombres es admitir directorios para el programa. Se declara una clase llamada 'dígitos' donde primero, las variables se inicializan públicamente para que puedan ser accesibles en todo el programa. Se declara una variable llamada 'dig1' con tipo de datos entero. A continuación, hemos declarado un constructor cuyo nombre es similar al nombre de la clase. A este constructor se le pasa una variable entera como 'n' y la variable de clase 'dig1' se establece igual a n. En el principal() función del programa, se crean tres objetos para la clase 'dígitos' y se les asignan algunos valores aleatorios. Estos objetos luego se utilizan para llamar a las variables de clase que se asignan con los mismos valores automáticamente.

Los valores enteros se presentan en la pantalla como salida.

Copiar constructor:

Es el tipo de constructor que considera los objetos como argumentos y duplica los valores de los miembros de datos de un objeto a otro. Por lo tanto, estos constructores se utilizan para declarar e inicializar un objeto a partir del otro. Este proceso se denomina inicialización de copia.

Ejemplo:

En este caso, se declarará el constructor de copias.

Primero, estamos integrando la biblioteca y el directorio. Se declara una clase llamada 'Nuevo' en la que los enteros se inicializan como 'e' y 'o'. El constructor se hace público donde se asignan los valores a las dos variables y estas variables se declaran en la clase. Luego, estos valores se muestran con la ayuda del principal() función con 'int' como tipo de retorno. los monitor() La función se llama y se define después donde los números se muestran en la pantalla. Dentro de principal() función, los objetos se hacen y estos objetos asignados se inicializan con valores aleatorios y luego el monitor() se utiliza el método.

El resultado recibido por el uso del constructor de copia se revela a continuación.

Destructores:

Como su nombre lo define, los destructores se utilizan para destruir los objetos creados por el constructor. Comparables a los constructores, los destructores tienen el mismo nombre que la clase pero con una tilde adicional (~) seguida.

Sintaxis:

~Nuevo ( )
{
}

El destructor no acepta ningún argumento y ni siquiera tiene ningún valor de retorno. El compilador apela implícitamente a la salida del programa para limpiar el almacenamiento al que ya no se puede acceder.

Ejemplo:

En este escenario, estamos utilizando un destructor para eliminar un objeto.

Aquí se hace una clase de 'Zapatos'. Se crea un constructor que tiene un nombre similar al de la clase. En el constructor, se muestra un mensaje donde se crea el objeto. Después del constructor, se crea el destructor que elimina los objetos creados con el constructor. En el principal() función, se crea un objeto de puntero llamado 's' y se utiliza una palabra clave 'delete' para eliminar este objeto.

Esta es la salida que recibimos del programa donde el destructor limpia y destruye el objeto creado.

Diferencia entre constructores y destructores:

Constructores Destructores
Crea la instancia de la clase. Destruye la instancia de la clase.
Tiene argumentos a lo largo del nombre de la clase. No tiene argumentos ni parámetros.
Se llama cuando se crea el objeto. Llamado cuando el objeto es destruido.
Asigna la memoria a los objetos. Desasigna la memoria de los objetos.
Se puede sobrecargar. No se puede sobrecargar.

Herencia C++:

Ahora, aprenderemos sobre la herencia de C++ y su alcance.

La herencia es el método a través del cual se genera una nueva clase o se desciende de una clase existente. La clase actual se denomina 'clase base' o también 'clase principal' y la nueva clase que se crea se denomina 'clase derivada'. Cuando decimos que una clase secundaria se hereda de una clase principal, significa que la clase secundaria posee todas las propiedades de la clase principal.

La herencia se refiere a una (es una) relación. Llamamos herencia a cualquier relación si se usa 'is-a' entre dos clases.

Por ejemplo:

  • Un loro es un pájaro.
  • Una computadora es una máquina.

Sintaxis:

En programación C++, usamos o escribimos Herencia de la siguiente manera:

clase < derivado - clase >: < acceso - especificador >< base - clase >

Modos de herencia C++:

La herencia implica 3 modos de heredar clases:

  • Público: En este modo, si se declara una clase secundaria, la clase secundaria hereda los miembros de una clase principal como lo mismo en una clase principal.
  • Protegido: yo En este modo, los miembros públicos de la clase principal se convierten en miembros protegidos de la clase secundaria.
  • Privado : En este modo, todos los miembros de una clase principal se vuelven privados en la clase secundaria.

Tipos de herencia de C++:

Los siguientes son los tipos de herencia de C++:

1. Herencia única:

Con este tipo de herencia, las clases se originaron a partir de una clase base.

Sintaxis:

clase M
{
Cuerpo
} ;
clase N : publico m
{
Cuerpo
} ;

2. Herencia múltiple:

En este tipo de herencia, una clase puede descender de diferentes clases base.

Sintaxis:

clase M

{

Cuerpo

} ;

clase N

{

Cuerpo

} ;

clase O : publico m , publico norte

{

Cuerpo

} ;

3. Herencia multinivel:

Una clase secundaria desciende de otra clase secundaria en esta forma de herencia.

Sintaxis:

clase M

{

Cuerpo

} ;

clase N : publico m

{

Cuerpo

} ;

clase O : publico norte

{

Cuerpo

} ;

4. Herencia jerárquica:

Varias subclases se crean a partir de una clase base en este método de herencia.

Sintaxis:

clase M

{

Cuerpo

} ;

clase N : publico m

{

Cuerpo

} ;

clase O : publico m

{

} ;

5. Herencia híbrida:

En este tipo de herencia se combinan múltiples herencias.

Sintaxis:

clase M

{

Cuerpo

} ;

clase N : publico m

{

Cuerpo

} ;

clase O

{

Cuerpo

} ;

clase P : publico norte , pública O

{

Cuerpo

} ;

Ejemplo:

Vamos a ejecutar el código para demostrar el concepto de herencia múltiple en la programación de C++.

Como comenzamos con una biblioteca estándar de entrada y salida, le dimos el nombre de clase base 'Bird' y lo hicimos público para que sus miembros puedan ser accesibles. Luego, tenemos la clase base 'Reptile' y también la hicimos pública. Luego, tenemos 'cout' para imprimir la salida. Después de esto, creamos un 'pingüino' de clase infantil. En el principal() función hemos hecho el objeto de la clase pingüino 'p1'. Primero se ejecutará la clase 'Pájaro' y luego la clase 'Reptil'.

Después de la ejecución del código en C++, obtenemos las declaraciones de salida de las clases base 'Bird' y 'Reptile'. Significa que una clase 'pingüino' se deriva de las clases base 'Pájaro' y 'Reptil' porque un pingüino es un pájaro además de un reptil. Puede volar tanto como gatear. Por lo tanto, las herencias múltiples demostraron que una clase secundaria puede derivarse de muchas clases base.

Ejemplo:

Aquí ejecutaremos un programa para mostrar cómo utilizar la herencia multinivel.

Comenzamos nuestro programa utilizando flujos de entrada y salida. Luego, hemos declarado una clase principal 'M' que está configurada para ser pública. hemos llamado la monitor() función y el comando 'cout' para mostrar la declaración. A continuación, hemos creado una clase secundaria 'N' que se deriva de la clase principal 'M'. Tenemos una nueva clase secundaria 'O' derivada de la clase secundaria 'N' y el cuerpo de ambas clases derivadas está vacío. Al final, invocamos la principal() función en la que tenemos que inicializar el objeto de la clase 'O'. los monitor() La función del objeto se utiliza para demostrar el resultado.

En esta figura, tenemos el resultado de la clase 'M', que es la clase principal porque teníamos una monitor() función en ella. Entonces, la clase 'N' se deriva de la clase principal 'M' y la clase 'O' de la clase principal 'N', que se refiere a la herencia multinivel.

Polimorfismo de C++:

El término 'Polimorfismo' representa una colección de dos palabras 'escuela politécnica' y ' morfismo' . La palabra 'Poly' representa 'muchos' y 'morfismo' representa 'formas'. El polimorfismo significa que un objeto puede comportarse de manera diferente en diferentes condiciones. Permite a un programador reutilizar y ampliar el código. El mismo código actúa de manera diferente según la condición. La promulgación de un objeto se puede emplear en tiempo de ejecución.

Categorías de polimorfismo:

El polimorfismo ocurre principalmente en dos métodos:

  1. Polimorfismo de tiempo de compilación
  2. Polimorfismo de tiempo de ejecución

Expliquemos

6. Polimorfismo de tiempo de compilación:

Durante este tiempo, el programa ingresado se convierte en un programa ejecutable. Antes del despliegue del código, se detectan los errores. Hay principalmente dos categorías de la misma.

  • Sobrecarga de funciones
  • Sobrecarga del operador

Veamos cómo utilizamos estas dos categorías.

7. Sobrecarga de funciones:

Significa que una función puede realizar diferentes tareas. Las funciones se conocen como sobrecargadas cuando hay varias funciones con un nombre similar pero argumentos distintos.

Primero, empleamos la biblioteca así como el espacio de nombres estándar. Entonces declararíamos la clase definida por el usuario 'Agregar'. Dentro de la clase, definimos una función ADD() con dos parámetros como público. Nuevamente, declare una nueva función dentro del cuerpo de la clase con el mismo nombre pero esta función no tiene parámetros. Aquí inicializamos tres cadenas. Las dos primeras cadenas tienen algún valor y la última cadena se usa para concatenar las dos primeras cadenas. Utilizamos el comando 'cout' para imprimir el resultado. A continuación, llamamos a la principal() método fuera de la clase. Construimos un objeto de la clase requerida 'Agregar'. Ahora, llamamos a la primera función con dos parámetros y luego llamamos también a la segunda función. En el último paso, incluimos la instrucción 'return 0' para finalizar el programa.

Sobrecarga del operador:

El proceso de definición de múltiples funcionalidades de un operador se denomina sobrecarga de operadores.

El ejemplo anterior incluye el archivo de encabezado . Entonces, hemos estado utilizando un espacio de nombres estándar. Definimos la clase 'Integer'. Dentro de esta clase, especificamos un número entero como miembro privado de una clase. A continuación, declaramos el constructor parametrizado como miembro público e inicializamos el valor del entero en él. Definimos un constructor con un operador de prefijo de sobrecarga. Dentro de este constructor, realizamos la operación de prefijo. Además, creamos una función que muestra el valor del incremento usando la instrucción 'cout'. Mientras tanto, invocamos la principal() función. Aquí, creamos dos objetos de clase. El primer objeto pasa un valor del entero. Luego, utilice la declaración 'cout' para imprimir la línea 'Antes de incrementar el valor es'. A continuación, llamamos monitor() función para el primer objeto. El segundo objeto utiliza el operador de preincremento. Usamos el comando 'cout' para mostrar la línea 'Después del incremento previo, el valor es'. Entonces, usamos el monitor() función para el segundo objeto.

8. Polimorfismo de tiempo de ejecución:

Es el lapso de tiempo en el que se ejecuta el código. Después del empleo del código, se pueden detectar errores.

Anulación de funciones:

Ocurre cuando una clase derivada usa una definición de función similar a una de las funciones miembro de la clase base.

En la primera línea incorporamos la librería para ejecutar operaciones de entrada y salida. Además, agregamos el espacio de nombres estándar. En la siguiente línea, declaramos una clase padre 'Hombre'. Dentro de la clase, definimos una función con dos parámetros como público. Luego, usamos la declaración 'cout' para mostrar el texto 'Caminando'. Fuera de la clase, creamos una clase secundaria 'Animal' que se deriva de la clase principal. Aquí, creamos una función que tiene un nombre similar al que se declaró anteriormente en la clase principal. Luego, utilice la declaración 'cout' para mostrar el texto 'Comiendo'. usamos el principal() función. Mientras tanto, creamos un objeto de clase 'm'. Luego, llamamos a la función de la clase principal así como a la función de la clase secundaria. Utilice el comando 'devolver 0'.

Cadenas C++:

Ahora, descubriremos cómo declarar e inicializar el String en C++. La cadena se utiliza para almacenar un grupo de caracteres en el programa. Almacena valores alfabéticos, dígitos y símbolos de tipos especiales en el programa. Reservó caracteres como una matriz en el programa C++. Las matrices se utilizan para reservar una colección o combinación de caracteres en la programación de C++. Se utiliza un símbolo especial conocido como carácter nulo para terminar la matriz. Está representado por la secuencia de escape (\0) y se usa para especificar el final de la cadena.

Obtenga la cadena usando el comando 'cin':

Se utiliza para ingresar una variable de cadena sin ningún espacio en blanco. En el caso dado, implementamos un programa C++ que obtiene el nombre del usuario usando el comando 'cin'.

En el primer paso, utilizamos la biblioteca . Mientras tanto, hemos incluido el espacio de nombres estándar. A continuación, declaramos la principal() función. Inicializamos una cadena de tipo de carácter dentro del cuerpo del principal() función. Luego, usamos la declaración 'cout' para imprimir 'Ingrese su nombre'. Utilizamos el comando 'cin' para pedirle la cadena al usuario. Se aplica el comando ‘cout’ para imprimir el nombre que sería escrito por el usuario. La instrucción return 0 se agrega para finalizar el programa.

El usuario ingresa el nombre “Ahmed Chaudry”. Pero solo obtenemos 'Ahmed' como salida en lugar de 'Ahmed Chaudry' completo porque el comando 'cin' no puede almacenar una cadena con espacios en blanco. Solo almacena el valor antes del espacio.

Obtenga la cadena usando la función cin.get():

los obtener() La función del comando cin se utiliza para obtener la cadena del teclado que puede contener espacios en blanco.

El ejemplo anterior incluye la biblioteca para realizar operaciones de entrada y salida. Luego, usamos un espacio de nombres estándar. los principal() se llama la función. Después de eso, inicializamos una cadena llamada 's'. En el siguiente paso, el comando 'cout' se utiliza para mostrar la declaración 'Ingrese una cadena'. los cin.get() se aplica para obtener la cadena del usuario. Al usar el cin.get() función pasamos un valor de cadena y especificamos el tamaño de la cadena como parámetro. El comando 'cout' se utiliza nuevamente para mostrar la salida del programa. Al final, sumamos el retorno 0.

El usuario ingresa una cadena 'Mi nombre es Ali'. Obtenemos la cadena completa 'Mi nombre es Ali' como resultado porque la función cin.get() acepta las cadenas que contienen espacios en blanco.

Uso de matriz de cadenas 2D (bidimensional):

En este caso, tomamos la entrada (nombre de tres ciudades) del usuario utilizando una matriz 2D de cadenas.

Primero, integramos el archivo de encabezado y un espacio de nombres estándar. invocamos el principal() función. Luego, inicializamos una matriz bidimensional de caracteres con tres filas y quince columnas. En el siguiente paso, se usa for loop para contar la variable 'i' para iterar sobre la cadena requerida hasta que se identifique el carácter nulo. Dentro del cuerpo del ciclo 'for', utilizamos el comando 'cout' para mostrar la línea 'Ingrese el nombre de la ciudad'. Luego use la declaración 'cin' para obtener el nombre de la ciudad. Nuevamente utilizamos otro ciclo 'for' y declaración 'cout' para mostrar el nombre de las ciudades en una secuencia hasta que finaliza el ciclo. A continuación, se utiliza el comando 'return 0'.

Aquí, el usuario ingresa el nombre de tres ciudades diferentes. El programa usa un índice de fila para obtener tres valores de cadena. Cada valor se conserva en su propia fila. La primera cadena se almacena en la primera fila y así sucesivamente. Cada valor de cadena se muestra de la misma manera utilizando el índice de fila.

Biblioteca estándar de C++:

La biblioteca de C++ es un grupo o agrupación de muchas funciones, clases, constantes y todos los elementos relacionados encerrados en un conjunto casi adecuado, siempre definiendo y declarando los archivos de encabezado estandarizados. La implementación de estos incluye dos nuevos archivos de encabezado que no son requeridos por el estándar C++ llamados y . Existe una larga lista de archivos de encabezado obligatorios que depende de los requisitos del compilador. Los archivos de encabezado contienen la lista de encabezados que tiene todo el contenido de la biblioteca estándar de C++, incluidos los archivos de encabezado específicos para la plantilla de biblioteca de stand (STL).

La biblioteca estándar elimina el ajetreo de reescribir las instrucciones durante la programación. Tiene muchas bibliotecas en su interior que tienen código almacenado para muchas funciones. Para hacer un buen uso de estas bibliotecas, es obligatorio vincularlas con la ayuda de archivos de cabecera. Cuando importamos la biblioteca de entrada o salida, esto significa que estamos importando todo el código que se ha almacenado dentro de esa biblioteca y así es como podemos usar las funciones incluidas en ella también ocultando todo el código subyacente que quizás no necesite. ver.

La biblioteca estándar de C++ admite los dos tipos siguientes:

  • Una implementación alojada que aprovisiona todos los archivos de encabezado de biblioteca estándar esenciales descritos por el estándar ISO de C++.
  • Una implementación independiente que solo requiere una parte de los archivos de encabezado de la biblioteca estándar. El subconjunto apropiado es:
(declarando al menos

Atomic_signed_lock_free y atomic-unsigned_lock_free)

(declarando al menos atexit,abort, at_quick_exit, exit, quick_exit)

Algunos de los archivos de encabezado han sido deplorados desde que llegaron los últimos 11 C++: son , y .

Las diferencias entre las implementaciones alojadas e independientes se ilustran a continuación:

  • En la implementación alojada, necesitamos usar una función global que es la función principal. Mientras se encuentra en una implementación independiente, el usuario puede declarar y definir funciones de inicio y finalización por sí mismo.
  • Una implementación de alojamiento tiene un subproceso en ejecución obligatorio en el momento de la coincidencia. Mientras que, en la implementación independiente, los implementadores decidirán ellos mismos si necesitan el soporte del subproceso concurrente en su biblioteca.

Tipos:

Tanto el independiente como el alojado son compatibles con C++. Los archivos de cabecera se dividen en los dos siguientes:

  • piezas de iostream
  • Piezas STL de C++ (biblioteca estándar)

Cada vez que escribimos un programa para su ejecución en C++, siempre llamamos a las funciones que ya están implementadas dentro de la STL. Estas funciones conocidas toman la entrada y muestran la salida usando operadores identificados con eficiencia.

Teniendo en cuenta la historia, la STL se denominó inicialmente Biblioteca de plantillas estándar. Luego, las partes de la biblioteca STL se estandarizaron en la biblioteca estándar de C++ que se usa hoy en día. Estos incluyen la biblioteca de tiempo de ejecución ISO C ++ y algunos fragmentos de la biblioteca Boost, que incluyen algunas otras funciones importantes. Ocasionalmente, el STL denota los contenedores o, más frecuentemente, los algoritmos de la biblioteca estándar de C++. Ahora bien, esta STL o Biblioteca de Plantillas Estándar habla completamente de la conocida Biblioteca Estándar de C++.

El espacio de nombres estándar y los archivos de encabezado:

Todas las declaraciones de funciones o variables se realizan dentro de la biblioteca estándar con la ayuda de archivos de encabezado que se distribuyen uniformemente entre ellos. La declaración no sucederá a menos que no incluya los archivos de encabezado.

Supongamos que alguien está usando listas y cadenas, necesita agregar los siguientes archivos de encabezado:

#incluir

#incluir

Estos corchetes angulares '<>' significan que uno debe buscar este archivo de encabezado en particular en el directorio que se está definiendo e incluyendo. También se puede agregar una extensión '.h' a esta biblioteca, que se realiza si es necesario o se desea. Si excluimos la biblioteca '.h', necesitamos una 'c' adicional justo antes del inicio del nombre del archivo, solo como una indicación de que este archivo de encabezado pertenece a una biblioteca C. Por ejemplo, puede escribir (#include o #include ).

Hablando del espacio de nombres, toda la biblioteca estándar de C++ se encuentra dentro de este espacio de nombres denominado std. Esta es la razón por la cual los nombres de biblioteca estandarizados deben ser definidos de manera competente por los usuarios. Por ejemplo:

estándar :: cout << “Esto pasará !/ norte' ;

Vectores C++:

Hay muchas formas de almacenar datos o valores en C++. Pero por ahora, estamos buscando la forma más fácil y flexible de almacenar los valores mientras escribimos los programas en el lenguaje C++. Así, los vectores son contenedores que están debidamente secuenciados en un patrón de serie cuyo tamaño varía en el momento de la ejecución dependiendo de la inserción y deducción de los elementos. Esto significa que el programador podría cambiar el tamaño del vector según su deseo durante la ejecución del programa. Se asemejan a los arreglos de tal manera que también tienen posiciones de almacenamiento comunicables para sus elementos incluidos. Para verificar el número de valores o elementos presentes dentro de los vectores, necesitamos usar un ' std::contar' función. Los vectores se incluyen en la biblioteca de plantillas estándar de C++, por lo que tiene un archivo de encabezado definido que debe incluirse primero, es decir:

#incluir

Declaración:

La declaración de un vector se muestra a continuación.

estándar :: vector < DT > NombreDeVector ;

Aquí, el vector es la palabra clave utilizada, el DT muestra el tipo de datos del vector que se puede reemplazar con int, float, char o cualquier otro tipo de datos relacionado. La declaración anterior se puede reescribir como:

Vector < flotar > Porcentaje ;

No se especifica el tamaño del vector porque el tamaño puede aumentar o disminuir durante la ejecución.

Inicialización de Vectores:

Para la inicialización de los vectores, hay más de una forma en C++.

Técnica número 1:

Vector < En t > v1 = { 71 , 98 , 34 , 65 } ;

Vector < En t > v2 = { 71 , 98 , 34 , 65 } ;

En este procedimiento, estamos asignando directamente los valores para ambos vectores. Los valores asignados a ambos son exactamente similares.

Técnica número 2:

Vector < En t > v3 ( 3 , 15 ) ;

En este proceso de inicialización, 3 dicta el tamaño del vector y 15 es el dato o valor que se ha almacenado en él. Se crea un vector de tipo de datos 'int' con el tamaño dado de 3 que almacena el valor 15, lo que significa que el vector 'v3' almacena lo siguiente:

Vector < En t > v3 = { 15 , 15 , 15 } ;

Operaciones principales:

Las principales operaciones que vamos a implementar en los vectores dentro de la clase vector son:

  • Agregar un valor
  • Acceder a un valor
  • Alterar un valor
  • Eliminación de un valor

Adición y eliminación:

La adición y eliminación de los elementos dentro del vector se realizan de forma sistemática. En la mayoría de los casos, los elementos se insertan al final de los contenedores de vectores, pero también puede agregar valores en el lugar deseado, lo que eventualmente cambiará los otros elementos a sus nuevas ubicaciones. Mientras que, en la eliminación, cuando se eliminan los valores de la última posición, automáticamente se reducirá el tamaño del contenedor. Pero cuando los valores dentro del contenedor se eliminan aleatoriamente de una ubicación particular, las nuevas ubicaciones se asignan a los otros valores automáticamente.

Funciones utilizadas:

Para alterar o cambiar los valores almacenados dentro del vector, existen algunas funciones predefinidas conocidas como modificadores. Son los siguientes:

  • Insert(): se usa para agregar un valor dentro de un contenedor de vectores en una ubicación particular.
  • Erase(): se utiliza para eliminar o eliminar un valor dentro de un contenedor de vectores en una ubicación particular.
  • Swap(): Se utiliza para el intercambio de valores dentro de un contenedor vectorial que pertenece al mismo tipo de datos.
  • Assign(): se utiliza para la asignación de un nuevo valor al valor previamente almacenado dentro del contenedor de vectores.
  • Begin(): se utiliza para devolver un iterador dentro de un ciclo que aborda el primer valor del vector dentro del primer elemento.
  • Clear(): Se utiliza para la eliminación de todos los valores almacenados dentro de un contenedor de vectores.
  • Push_back(): Se utiliza para la adición de un valor al final del contenedor de vectores.
  • Pop_back(): Se utiliza para la eliminación de un valor al finalizar el contenedor de vectores.

Ejemplo:

En este ejemplo, se utilizan modificadores a lo largo de los vectores.

Primero, estamos incluyendo los archivos de encabezado y . Después de esto, el espacio de nombres std se integra para agregar todas las clases a la vez. Para escribir la lógica del programa completo, estamos llamando a la función main() donde se inicializa un vector llamado 'dígitos'. La asignación de este vector se realiza en el siguiente paso donde 'dígitos' ha dado un valor de 6 y 24, lo que significa que se almacenan 6 elementos dentro del contenedor de vectores, cada uno con el valor de 24. Estos valores se muestran luego usando el 'cout ' dominio. Se utiliza un bucle 'for' para la función modificadora push_back() para agregar los elementos dentro del contenedor. Ahora, se agrega 3 valores a los dígitos al final. Luego, inicializamos una variable 'x' para mantener el registro del tamaño del contenedor vectorial. Ahora, se muestra el valor del último elemento y el pop_back() la función eliminaría el número '3' almacenado dentro del contenedor. Para la visualización de todos los elementos, estamos usando un bucle 'for' nuevamente con el insertar() modificador que insertará los valores. Aquí, 4 se insertará al comienzo del contenedor de vectores y se mostrará en la pantalla. los claro() El modificador borrará o eliminará todos los valores almacenados dentro del contenedor. El tamaño del vector se muestra después de que se realiza la limpieza.

La salida se muestra a continuación.

Salida de entrada de archivos C++:

Un archivo es un conjunto de datos interrelacionados. En C++, un archivo es una secuencia de bytes que se recopilan en orden cronológico. La mayoría de los archivos existen dentro del disco. Pero también se incluyen en los archivos dispositivos de hardware como cintas magnéticas, impresoras y líneas de comunicación.

La entrada y salida en archivos se caracterizan por las tres clases principales:

  • La clase 'istream' se utiliza para recibir entradas.
  • La clase 'ostream' se emplea para mostrar la salida.
  • Para entrada y salida, use la clase 'iostream'.

Los archivos se manejan como secuencias en C++. Cuando estamos tomando entrada y salida en un archivo o desde un archivo, las siguientes son las clases que se utilizan:

  • Fuera de corriente: Es una clase de flujo que se utiliza para escribir en un archivo.
  • Si corriente: Es una clase de flujo que se utiliza para leer el contenido de un archivo.
  • Corriente: Es una clase de flujo que se usa tanto para leer como para escribir en un archivo o desde un archivo.

Las clases 'istream' y 'ostream' son los ancestros de todas las clases mencionadas anteriormente. Los flujos de archivos son tan fáciles de usar como los comandos 'cin' y 'cout', con la única diferencia de asociar estos flujos de archivos a otros archivos. Veamos un ejemplo para estudiar brevemente sobre la clase 'fstream':

Ejemplo:

En este caso, estamos escribiendo datos en un archivo.

Estamos integrando el flujo de entrada y salida en el primer paso. Luego se agrega el archivo de encabezado porque vamos a escribir y leer datos del archivo. Después de esto, las clases se llaman con la ayuda del espacio de nombres. los principal() se llama a la función para el cuerpo del programa donde se usa el 'ofstream' que escribe los datos en un archivo, el archivo se crea como New_File. En el siguiente paso, estamos abriendo un archivo de texto llamado 'ejemplo' utilizando el abierto( ) método. Estamos escribiendo un texto con la ayuda de corchetes angulares en el archivo. Cada expediente está destinado a ser cerrado una vez que ha sido abordado. Por eso se cierra el expediente con la ayuda del cerca() función.

El archivo 'ejemplo' se abre desde la computadora personal y el texto escrito en el archivo se imprime en este archivo de texto como se muestra arriba.

Abriendo un archivo:

Cuando se abre un archivo, se representa mediante una secuencia. Se crea un objeto para el archivo como se creó New_File en el ejemplo anterior. Todas las operaciones de entrada y salida que se han realizado en la secuencia se aplican automáticamente al propio archivo. Para la apertura de un archivo, la función open() se utiliza como:

Abierto ( NombreDeArchivo , modo ) ;

Aquí, el modo no es obligatorio.

Cerrar un archivo:

Una vez finalizadas todas las operaciones de entrada y salida, debemos cerrar el archivo que se abrió para editar. Estamos obligados a emplear un cerca() funcionar en esta situación.

Archivo nuevo. cerca ( ) ;

Cuando se hace esto, el archivo deja de estar disponible. Si por alguna circunstancia se destruye el objeto, incluso estando vinculado al archivo, el destructor llamará espontáneamente a la función close().

Archivos de texto:

Los archivos de texto se utilizan para almacenar el texto. Por lo tanto, si el texto se ingresa o se muestra, tendrá algunas alteraciones de formato. La operación de escritura dentro del archivo de texto es la misma que ejecutamos con el comando 'cout'.

Ejemplo:

En este escenario, estamos escribiendo datos en el archivo de texto que ya se hizo en la ilustración anterior.

Aquí, estamos escribiendo datos en el archivo llamado 'ejemplo' usando la función New_File(). Abrimos el archivo 'example' usando el abierto() método. El 'ofstream' se utiliza para agregar los datos al archivo. Después de hacer todo el trabajo dentro del archivo, el archivo requerido se cierra mediante el uso de la cerca() función. Si el archivo no se abre, se muestra el mensaje de error 'El archivo no es compatible, error al cargar el archivo'.

El archivo se abre y el texto se muestra en la consola.

Lectura de un archivo de texto:

La lectura de un archivo se muestra con la ayuda del siguiente ejemplo.

Ejemplo:

El 'ifstream' se utiliza para leer los datos almacenados dentro del archivo.

El ejemplo incluye los principales archivos de encabezado al principio. Luego, use 'ifstream' dentro del principal() función. Con la ayuda de 'ifstream', leeremos los datos con el archivo 'New_File' que muestra el texto almacenado dentro del archivo de texto 'example'. empleamos el abierto() método para abrir el archivo. A continuación, utilizaremos el bucle 'while'. Después de leer los datos del archivo de texto 'ejemplo', el cerca() La función se utiliza para cerrar el archivo requerido. Si el sistema no tiene el archivo en particular, aparece el mensaje 'No se puede abrir el archivo'.

Toda la información almacenada dentro del archivo de texto se muestra en la pantalla como se muestra.

Conclusión

En la guía anterior, hemos aprendido sobre el lenguaje C++ en detalle. Junto con los ejemplos, se demuestra y explica cada tema, y ​​se elabora cada acción.