Guía práctica. Ing. Douglas González Curso C++ Tipos fundamentales
Los datos de tipo fundamental se pueden clasificar en:
Tipos enteros: char (carácter),short (formato corto), int (entero), long (formato largo) yenum (enumeración). Tipos reales: float (precisión simple), double (precisión doble) y long double (formato largo).
Otros: void (vacío). Operadores
A continuación resumimos en una tabla los operadores del C++. Están agrupados por orden de precedencia, donde cada caja tiene mayor precedencia que las cajas de abajo.
Algunos operandos ya se estudiarán en capítulos posteriores, sobre todo los relacionados con las clases. Operadores Descripción Sintaxis
---++ postincremento Ivalue + + ++ preincremento + + Ivalue postdecremento Ivalue -- -- predecremento -- -- Ivalue ... * multiplicación expr * expr
/ división espr / expr % resto expr % expr
... + suma expr + expr
- resta expr - expr
... < menor que expr < expr
< = menor o igual que expr < = expr > mayor que expr > expr
> = mayor o igual que expr > = expr
... = = igual que expr = = expr
Función !kbhit:
Para repetir un bucle hasta pulsar una tecla puedes
usar la función !kbhit de la librería conio.h.
while (!kbhit())
{
//aquí va lo quieres que se repita
hasta pulsar una tecla
}
Comando Sleep(x):
Para hacer una pausa usas Sleep(x); // x son los
milisegundos. Por ejemplo :
Sleep(500);. Debes usar la librería windows.h
Sentencia cout escribir: #include <iostream.h> int main()
{
cout << "Este es mi primer programa\n"; cout << "Aquí salto la linea, ";
cout << " pero aquí escribió seguido\n"; system("PAUSE");
cout << "Ahora continua\n";
cout << "Ahora limpiara pantalla\n"; system("PAUSE");
system("CLS");
cout << "Esto es todo\n"; system("PAUSE"); return 0;
}
Sentencia cin leer: #include<iostream.h> int main()
{
int ano, edad; char nombre[11];
cout << "Escribe tu nombre: "; cin >> nombre;
cout << "Escribe el ano de tu nacimiento: "; cin >> ano;
edad = 2009-ano;
cout << "Hola: "<<nombre << " tienes: " << edad<<" anos \n\n";
system("PAUSE"); return 0;
}
VARIABLES: INT, FLOAT, CHAR, CHAR[] /* operaciones con tipos diferentes*/ #include <iostream.h>
int main (void) {
int i=1;
double x=-1.26; double y=2;
cout<<"i=2 x=-1,26 y=2 \n";
x+=y; //x=x+y, suma double de dos doubles, x=0.74 cout<<"x=x+y "<<x<<"\n";
y*=y; //Y=Y*Y, producto double de dos doubles, y=4 cout<<"y=y+y "<<y<<"\n";
x=x+i; //suma double de un double y un entero, x=1.74 cout<<"x=x+i "<<x<<"\n";
cout<<"i=i+x "<<i<<"\n";
cout<<"x+y "<<x+y<<" i="<<i<<endl; // x+y=5.74 i=2 system("pause");
return 0 ;} Bucles for
La sentencia for permite ejecutar una instrucción, o un conjunto de ellas, un cierto número de veces deseado.
La sintaxis de esta sentencia es la siguiente:
for (variable = valor ; condición ; progresión-condición) { sentencia 1; sentencia 2; ... } 1-/* bucles for */ # include <iostream.h> int main (void)
{
for (int i=2; i<4; i++)
cout <<"escribo el "<<i<<endl; return 0; } 3-#include <iostream.h> int main() { int num;
cout << "Introduzca el número "; cin >> num;
for (int cont=0; cont < 10; cont++) {
cout << num <<endl; }
system("pause"); return 0;
}
2-/* Escribir la tabla de multiplicar de un cierto número*/
#include <iostream.h> int main (void)
{ int n;
cout << “Introduzca el número cuya tabla de multiplicar desea:”; cin >> n;
if (n==0)
cout << “la tabla es nula” <<endl ; else
{
cout << “la tabla de multiplicar del número”<<n<<“es:”<<endl; for (int i=1; i<10;i++)
cout <<i<<“*”<<n<<“=“<<i*n<<endl; }
return 0 ; }
4.-/* Listar los 20 primeros números pares/impares en orden decreciente*/
#include <iostream.h> main (){
int n;
cout<<"Los 20 primero números pares en orden decreciente"<<endl;
for (int i=0; i<21; i+=2)
{ n=20; n-=i; cout <<"numero par:"<<n<<endl; } cout<<"Los 20 primero números impares en orden decreciente"<<endl;
for (int j=19; j>0; j-=2)
{ cout <<"numero impar:"<<j<<endl;} system("pause"); return 0; } 7.-#include <iostream.h> main() {
cout << "Lista de numeros pares del 0 al 20\n"; int i,n;
for (int cont=1; cont<=20; cont++) { i=cont%2; if (i==0) { cout << cont << "\n"; } } system("PAUSE"); return 0; } 5.-#include <iostream.h>; int main() { int i,inicio,fin,n; cout<<"Ciclo for:\n"; cout<<"da el inicio: "; cin>>i; cout<<"da el fin: "; cin>>n;
for (int cont=i;cont<=n;cont++) { cout<<cont << endl; } system("pause"); } 6.-#include <iostream.h>; int main() { int i,inicio,fin,n; 8.-#include <iostream.h> main() {
cout<<"Ciclo for:\n"; cout<<"da el inicio: "; cin>>i;
cout<<"da el fin: "; cin>>n;
for (int cont=i;cont>=n;cont--) { cout<<cont << endl; } system("pause"); } int i,n;
for (int cont=1; cont<=20; cont++) { i=cont%2; if (i!=0) { cout << cont << "\n"; } } system("PAUSE"); return 0; } Sentencias tipo if-else
La sentencia if permite a un programa tomar una decisión para ejecutar una acción u otra, basándose en el resultado verdadero o falso de una expresión.
La sintaxis de esta sentencia es la siguiente: if (condición)
{
sentencia 1; //hacer algo sentencia 2;
} else {
sentencia 3; //hacer otra cosa sentencia 4;
}
Control de flujo. Condicionales I
1-/*Sentencias tipo if/else. Anidamientos y operaciones lógicas*/ #include <iostream.h> int main() { int i,j; cout<<"Introduzca el valor de i: "; cin>>i; cout<<"Introduzca el valor de j: "; cin>>j; if (i<j)
{cout <<"i es menor que j"<<endl;} else
{cout <<"i es mayor que j"<<endl;} system("PAUSE");
return 0; }
2-/*pregunta dos números, que operación deseas hacer y muestra resultado*/
#include <iostream.h> int main (void)
{
double a, b; int c;
cout << “Introduzca el primer número” <<endl ; cin >> a;
cout << “Introduzca el segundo número” <<endl ;
cin >> b;
cout << “Que operación deseas hacer, 1(suma), 2(producto)” <<endl ;
cin >> c;
if (c==1) {cout <<“el resultado es:”<<a+b<<endl;} else {cout <<“el resultado es:”<<a*b<<endl;} return 0 ;
}
3-/* Calcular áreas de diferentes polígonos*/ #include <iostream.h>
int main (void) {
double a, b; double Area; int figura;
cout<<“figura = cuadrado(1), rectángulo(2), triángulo(3)”<<endl;
cout<<“¿que área quieres calcular?”<<endl; cin>>figura;
if (figura==1)
{ cout <<“valor del lado=“; cin >>a; Area=a*a;} else if (figura==2)
{cout <<“valor del lado menor =“; cin >> a;
cout <<“valor del lado mayor =“; cin >>b;
Area=a*b;} else if (figura==3)
{cout <<“valor de la base =“; cin >>a;
cout <<“valor de la altura =“; cin >>b;
Area=a*b/2.0;} else
{cout <<“figura equivocada“<<endl; Area=0;}
cout<<“El área de la figura es=“<<Area<<endl; return 0 ;}
(operadores lógicos) /*Operadores lógicos*/ #include <iostream.h> int main (void)
{
int a=5; int b=0;
int e=a||b; cout << e; // operador || OR int f=!a; cout << f; // operador ! NOT return 0;
}
Anidamientos de sentencias if
Se dice que una sentencia if-else está anidada cuando dentro de su formato general se encuentra otrassentencias if. Esto es;
if (condición 1) { if (condición 2) sentencia 1; } else sentencia 2;
Las llaves del código anterior indican que la cláusula else está emparejada con el primer if.
Cuando en el código de un programa aparecen sentencias if-else anidadas, y no existen llaves que definan claramente cómo emparejar los else y los if, la regla que se debe utilizar es que cada else corresponde con el if más próximo que no haya sido emparejado. Ejemplo: if (condición 1)
if (condición 2) sentencia 1; else
sentencia 2;
En el código anterior, la cláusula else corresponde al segundo if.
Como es fácilmente comprensible, el anidamiento conduce a una lectura difícil del código. La manera de mantener legible la estructura lógica es utilizar las cláusulas y el sangrado para señalar cada bloque.
Comparando los dos códigos inferiores, y mediante el sangrado, se puede seguir de forma clara qué está realizando el código. if (condición 1) if (condición 1) { { if (condición 2) if (condición 2) {sentencia 1;} {sentencia 1;} else } {sentencia 2;} else } {sentencia 2;}
Control de flujo. Condicionales II Sentencias tipo switch-break
La sentencia switch permite ejecutar una de varias acciones, en función del valor de una expresión. Es una sentencia muy útil para decisiones múltiples.
La sintaxis de esta sentencia es la siguiente: switch (expresión) { case expresión-constante 1: sentencia 1; break; case expresión-constante 2: sentencia 2; break; case expresión-constante 3: case expresión-constante 4: sentencia 3; break; default: sentencia n; break; }
Código de trabajo ( switch / break ) /*Sentencia tipo switch*/
#include <iostream.h> int main (void)
{ int i;
cout<<"de una opcion 1 2 o 3 "; cin>>i;
switch (i) {
case 1:
cout <<"opcion es 1"<<endl; break;
case 2:
cout <<"opcion es 2"<<endl; break;
case 25:
cout << "opcion es 25" << endl; default:
cout <<"opcion no es ni 1 ni 2"<<endl; break; } system("pause"); return 0; }
1-/* el programa pregunta dos números, que operación deseas hacer
y muestra el resultado*/ #include <iostream.h> int main (void)
{
double a, b; int c;
cout << “Introduzca el primer número” <<endl ; cin >> a; cout << “Introduzca el segundo número” <<endl ; cin >> b; cout << “Que operación deseas hacer, 1(suma), 2(producto)” <<endl ; cin >> c;
switch (c) {
case 1:
cout <<“el resultado es:”<<a+b<<endl; break;
default:
cout <<“el resultado es:”<<a*b<<endl; break;
}
return 0 ; }
#include <iostream.h> int main (void)
{
double a, b, Area; int figura;
cout<<”figura = rectángulo(1), triángulo(2)”<<endl; cout<<“¿que área quieres calcular?”<<endl; cin>>figura; switch (figura)
{ case 1:
cout <<“valor del lado menor =“; cin >>a;
cout <<“valor del lado mayor =“; cin >>b; Area=a*b; break;
case 2:
cout <<“valor de la base =“; cin >>a;
cout <<“valor de la altura =“; cin >>b; Area=a*b/2.0; break;
default:
cout <<“figura equivocada“<<endl; Area=0; break;
}
if (Area) cout<<“El área de la figura es=“<<Area<<endl; else cerr <<”error, la figura no tiene area”<<endl; return 0 ;
}
Sentencias tipo do-while
La sentencia do-while ejecuta una sentencia (simple o compuesta) una o más veces, dependiendo del
valor de una expresión. Su sintaxis es : do { sentencias ; } while (condición);
Nótese que la sentencia do-while finaliza con un ;
1-/* Sentencias tipo do-while */ #include <iostream.h> int main (void)
{
int i=0, j=6; do
{
cout<<"el número 6 es mayor que el"<<i<<endl; }
while (i++<j); return 0; }
2-/* Listar los 20 primeros números pares en orden decreciente*/
#include <iostream.h> void main (void) {
cout<<“lista de los 20 primero números pares en orden decreciente”<<endl; int i=22;
do {
i-=2; cout <<“numero par:“<<i<<endl; }
while (i>0); }
Sentencias tipo while
La sentencia while funciona de forma parecida al bucle do-while. La diferencia principal estriba en que el bucle do-while asegura que, al menos, se ejecuta una vez el código contenido entre las llaves; mientras que el while depende de la condición lógica. Su sintaxis es : while (condición) { sentencias; }
1-/* Sentencias tipo while */ #include <iostream.h> int main (void)
{ int i=0; while (i<6) {
cout<<"el número 6 es mayor que el "<<i++<<endl; }
return 0; }
2- /* Listar los 20 primeros números pares en orden decreciente*/
#include <iostream.h> int main (void)
{
cout<<“lista de los 20 primero números pares en orden decreciente”<<endl;
int i=22; while (i>0) {
cout <<“numero par: “<<i<<endl; i-=2;
}
return 0 ; }