Fundamentos de la Programación en C++
char: ocupa un byte en memoria, se suele utilizar para almacenar caracteres, pues el ASCII-E usa exactamente 8 bits para representar un caracter. (-128 a +127 ó 0 a 255).
int: ocupa 4 bytes y es actualmente el tamaño de la palabra de un ordenador de 32 bits, salvo que se esté en posesión de un ordenador de 64 bits con un SO que lo soporte (-2^31 a 2^31-1 ó 0 a 2^32-1).
long ó long int: generalmente ocupa dos palabras (64 bits u 8 bytes) pero depende del ordenador.
float: ocupa una palabra y se usa para representar números reales dado que su rango es mucho mayor, usaremos este tipo para la representación de números reales.
double: ocupa dos palabras y tiene una capacidad mucho mayor que un float.
short: ocupa dos bytes en memoria, lo usaremos exclusivamente cuando vayamos a necesitas grandes cantidades de memoria y nos sobre precisión, si no, utilizaremos o el int o char, por cuestiones de arquitectura del ordenador (-2^15 a 2^15-1 ó 0 a 2^16-1).
unsigned: se usa para especificar que la variable no tiene signo, por lo que "aumenta" su capacidad en cuanto a número positivos.
void: esto no es un tipo de dato en sí mismo, pero se usa para determinar que una función no recibe parámetros o no devuelve un resultado. No pueden existir variables del tipo void.
Estructura General de un programa en C++
Así como un algoritmo tiene una estructura, son casi idénticos solo que en el programa intervienen librerías, funciones, y otras partes más que en un algoritmo no se pueden llegar a usar por complejidad.
Analizado por puntos:
ARCHIVO DE CABECERA
Librerías: indica que se tengan en cuenta las funciones y tipos definidos en la librería que se escoja, por ejemplo tenemos:
#include < nombre de fichero >
podemos ver donde dice: ” nombre de fichero ” va como su nombre lo indica un “fichero cabecera” por lo general en c++ usamos iostream que son las siglas iniciales de: [ input output stream ].
Cada fichero cabecera sirve para indicarle al programa “que funciones podemos usar”, es decir que al colocarle el iostream, tendremos funciones que se nos permitirá usar c0mo el system (“pause”) para dar una pausa al programa que hemos hecho y observar bien los resultados, entre otras; tambien podemos usar recursos como es el cin (para que el usuario/a ingrese datos) y el cout (para mostrarle datos al usuario/a).
Entonces quedamos con una cabecera asi:
#include <iostream.h>
CABECERA DE FUNCION – FUNCION PRINCIPAL
Debajo de la cabecera principal del programa, se coloca la “cabecera de funcion”, ésta funcion es obligatoria en cada programa porque indica el comienzo del programa:
main ( )
Y se requiere de los parentesis despues de la palabra restringida “main“
CUERPO – DESARROLLO
Después de colocar main ( ) es decir nuestro indicador que comienza el programa, ya podemos comenzar con la programación, ya que la programación va en el cuerpo del programa, se debe indicar cual es el cuerpo, ósea los limites. En un programa los limites son marcados por el simbolo “ las llaves “, es decir { }
{
. . . .
. . . . . . .
}
Por ultimo tenemos las sentencias, es decir nuestra programación, lo que vayamos realizando en el cuerpo del programa, lo que va a hacer el programa al compilarlo y ejecutarlo. Todo eso va a ir en el cuerpo es decir DENTRO de los limites que establecimos (las llaves principales del programa)
Al final tenemos que, la estructura de un programa en c++ es así:
ESTRUCTURA
#include <iostream.h>
main ( )
{
. . . .
. . . . . . .
}
Creación de un programa
A continuación los pasos para la creación de un programa en C++:
Crea un nuevo proyecto,
agrega un nuevo archivo al proyecto,
edita el archivo para agregar código C++,
compila y ejecuta el programa mediante Visual
Ejecución de un programa
Ejemplo de ejecución de un programa
Dim aceptar As Integer
Private Sub Command1_Click()
Text2.Text = UCase(Text1.Text) + (" hola como estas")
Text3 = ""
'esta es la estructura que me mandaste ahora te pido que me
'ayudes a acomodar los bucles ya que no les he podido entender
'entre comentarios he puesto a como yo le he entendido en libro
Dim formulario As Form
Set formulario = fa.frm
fa.Show
' repeat
' Form1
'until text=""
'For aceptar = 1 To Text3.Text < 99
' Print Form1
'Next
'Do
' Form1
'Loop Until Text3 < 99
' Do Until Text3.Text < 99
' aceptar = aceptar + 1
'Loop
End Sub
Private Sub Command2_Click()
mensaje = "¿Esta seguro que desea salir?"
If MsgBox(mensaje, vbYesNo + vbQuestion, "Atención") = vbNo Then
Text1.Text = " "
Text2.Text = " "
Else
End
End If
End Sub
Depuración de un programa
Para ver lo que ocurre cuando se destruye un objeto Cardgame, vea el destructor para la clase Cardgame.
En el menú Ver, haga clic en Vista de clases o haga clic en la ficha Vista de clases en la ventana Explorador de soluciones.
Expanda el árbol de proyecto game y haga clic en la clase Cardgame.
El área siguiente muestra los miembros y métodos de la clase.
Haga clic con el botón secundario en el destructor ~ Cardgame(void) y haga clic en Ir a definición.
Para disminuir el valor de totalparticipants cuando finaliza el juego de cartas, escriba el código siguiente entre las llaves de apertura y de cierre del destructor Cardgame::~Cardgame:
Copiar
totalparticipants -= players;
cout << players << " players have finished their game. There are now "
<< totalparticipants << " players in total." << endl;
}
El archivo Cardgame.cpp debe tener un aspecto similar al siguiente tras los cambios:
Copiar
#include "Cardgame.h"
#include <iostream>
using namespace std;
Cardgame::Cardgame(int p)
{
players = p;
totalparticipants += p;
cout << players << " players have started a new game. There are now "
<< totalparticipants << " players in total." << endl;
}
Cardgame::~Cardgame(void)
{
totalparticipants -= players;
cout << players << " players have finished their game. There are now "
<< totalparticipants << " players in total." << endl;
}
En el menú Generar, haga clic en Generar solución.
En el menú Depuración, haga clic en Iniciar depuración o presione F5 para ejecutar el programa en modo de depuración. El programa se detiene en el primer punto de interrupción.
En el menú Depuración, haga clic en Paso a paso por procedimientos o presione F10 para recorrer paso a paso el programa.
Observe que después de ejecutar cada constructor de Cardgame, el valor de totalparticipants se incrementa. Después de eliminar cada puntero (y llamar al destructor), el valor de totalparticipants se reduce.
Diríjase a la última línea del programa. Justo antes de que se ejecute la instrucción return, totalparticipants es igual a 0. Continúe recorriendo paso a paso el programa hasta que se cierre o, en el menú Depurar, haga clic en Continuar o presione F5 para dejar que el programa se ejecute hasta que se cierre.
Tipos de Datos:
A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato específico.
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil del propio programa.
Los tipos de datos más comunes en C++ son:
TIPO DATO ESPACIO MEMORIA RANGO
unsigned char 8 bits 0 a 255
char 8 bits -128 a 127
short int 16 bits -32,768 a 32,767
unsigned int 32 bits 0 a 4,294,967,295
int 32 bits -2,147,483,648 a 2,147,483,647
unsigned long 32 bits 0 a 4,294,967,295
enum 16 bits -2,147,483,648 a 2,147,483,647
long 32 bits -2,147,483,648 a 2,147,483,647
float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)
double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)
long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932
void sin valor
Para manejar cadenas de caracteres (strings), se deberá usar un arreglo de caracteres con el siguiente formato.
Char nomstring[cant de elementos];
Ejemplo
Char nombre[30];
Char ciudad[20];
Para cargar con un dato se usa el siguiente código;
strcpy(carrera,”ing sistemas”);
Variables arreglos de caracteres, tienen que usar sus funciones de manipulación que vienen en la libreria string.h, algunas de estas funciones son: strcpy(), strcat(), strcmp(), strlen(), etc.
Constantes y Variables
Una variable, como su nombre lo indica, es un determinado objeto cuyo valor puede cambiar durante el proceso de una tarea específica. Contrario a una variable, una constante es un determinado objeto cuyo valor no puede ser alterado durante el proceso de una tarea específica. En C, C++ para declarar variables no existe una palabra especial, es decir, las variables se declaran escribiendo el tipo seguido de uno o más identificadores o nombres de variables. Por otro lado, para declarar constantes existe la palabra reservada const., así como la directiva #define.
A continuación se muestran ejemplos de declaración de variables y constantes.
Variables
|
Constates
|
Constantes
|
| int a; | const int a = 100; |
#define a 100
|
| float b; | const int a = 100; | #define b 100 |
Notas:
A diferencia de las constantes declaradas con la palabra const. los símbolos definidos con #define no ocupan espacio en la memoria del código ejecutable resultante.
El tipo de la variable o constante puede ser cualquiera de los listados en Tipos primitivos, o bien de un tipo definido por el usuario.
Las constantes son usadas a menudo con un doble propósito, el primero es con el fin de hacer más legible el código del programa, es decir, si se tiene (por ejemplo) la constante numérica 3.1416 y esta representa al número pi, entonces podemos hacer declaraciones tales como:
#define pi 3.1416En este caso podremos usar la palabra pi en cualquier parte del programa y el compilador se encargará de cambiar dicho símbolo por 3.1416.
o bien,
const pi = 3.1416;En este otro caso podremos usar la palabra pi en cualquier parte del programa y el compilador se encargará de cambiar dicho símbolo
por una referencia a la constante pi guardada en la memoria.
Entradas y Salidas
Cuando nos referimos a entrada/salida estándar (E/S estándar) queremos decir que los datos o bien se están leyendo del teclado, ó bien se están escribiendo en el monitor de video. Como se utilizan muy frecuentemente se consideran como los dispositivos de E/S por default y no necesitan ser nombrados en las instrucciones de E/S.
En el lenguaje c++ tenemos varias alternativas para ingresar y/o mostrar datos, dependiendo de la librería que vamos a utilizar para desarrollar el programa, entre estas están: iostream.h y sodio.h.
Operaciones y Expresiones
En C#, un operador es un término o un símbolo que acepta como entrada una o más expresiones, u operando, y devuelve un valor. Los operadores que requieren un operando, como el operador de incremento (++) o new, se conocen como operadores unarios. Los operadores que requieren dos operandos, como los operadores aritméticos (+,-,*,/) se conocen como operadores binarios. Un operador, el operador condicional (?:), utiliza tres operandos y es el único operador terciario de C#.
La instrucción de C# siguiente contiene un solo operador unario y un solo operando. El operador de incremento, ++, modifica el valor del operando y:
Expresiones.
Una expresión es una combinación de operadores y operandos de cuya evaluación se obtiene un valor. Los operandos pueden ser nombres que denoten objetos variables o constantes, funciones, literales de cualquier tipo adecuado de acuerdo con los operadores u otras expresiones más simples. La evaluación de una expresión da lugar a un valor de algún tipo, una expresión se dice que es del tipo de su resultado.
Las expresiones se evalúan de acuerdo con la precedencia de los operadores. Ante una secuencia de operadores de igual precedencia, la evaluación se realiza según el orden de escritura, de izquierda a derecha. El orden de evaluación puede modificarse usando paréntesis.
Operadores de máxima prioridad.
Los operadores de máxima prioridad son: el operador de cálculo del valor absoluto, definido para cualquier tipo numérico, T1, el operador de negación lógica, definido para cualquier tipo booleano, modular o array monodimensional de componentes booleanos, T 2, y el operador de exponenciación, definido para cualquier tipo entero, T3, o para cualquier tipo real en coma flotante, T4. Cada uno, de acuerdo con las siguientes especificaciones:
Sobrecarga de operadores.
Ada permite que el programador sobrecargue los operadores del lenguaje, esto es, que pueda redefinirlos dándoles nuevos significados. Para sobrecargar un operador, simplemente hay que definir una función cuyo nombre sea el operador entre comillas y que tenga los parámetros adecuados.
La sobrecarga de operadores es uno de los mecanismos que nos permite ampliar las capacidas de los lenguajes de programación orientados al objeto. En C++, la declaración y definición de una sobrecarga de operador es muy similar a la declaración y definición de una función cualquiera. El ejemplo más sencillo de una sobrecarga de operadores nos lo da el lenguaje mismo, es decir, en una operación aritmética (por ejemplo, una suma ) el compilador determina el tipo de operación requerida de acuerdo con el tipo de datos involucrados. Vamos a suponer que se tienen las variables: int A, B; double X, Y; int R; y las siguientes instrucciones:
R = A + B;
R = A + X;
R = X + Y;
Ahora bien:
en el primer caso el compilador determina que el tipo de operación requerida es una suma de enteros debido a que los dos miembros ( A y B ) de la suma son del tipo entero.
en el segundo caso parece ser que las cosas no son tan claras, ya que en este los miembros involucrados en la suma s on de tipos diferentes, sin embargo el compilador determinará el tipo de operación requerida y depositará en el resultado ( R )el valor resultante redondeado.
en el tercero y último de los casos el compilador determina que el tipo de operación requerida es una suma de reales debido a que los dos miembros ( X e Y ) de la suma son del tipo double. También en este caso el resultado de la suma se redondea antes de ponerlo en R.