lunes, 7 de noviembre de 2011

Programa para ajustar Recta por mínimos cuadrados y punto de corte [Código fuente] C++

Acá esta el Código fuente de un programa que había subido  ( solo el ejecutable)  anteriormente.


#include <iostream>
#include <conio.h>
#include <stdlib.h>
#define max 50

using namespace std;
//Funcion para Leer los datos
void leer(float *x ,float *y,int n)
 {int i;
  for(i=0;i<n;i++,x++)
{cout<<"Ingrese el valor de X n° "<<(i+1)<<": ";
cin>>*x;
system("cls");
}
  for(i=0;i<n;i++,y++)
{cout<<"Ingrese el valor de Y n° "<<(i+1)<<": ";
cin>>*y;
system("cls");
}
 }
//Funcion para calcular la Pendiente ajustada por minimos cuadrados 
void minimos_cuadrados(float *x,float *y,int n)
 {float k=0,t=0,w=0,k2=0,m;
  int i;
  //Efectuando las respectivas sumas y productos requeridos en la ecuacion
  for(i=0;i<n;i++,x++,y++)
{k+=*x;
t+=*y;
w+= (*x)*(*y);
k2+=(*x)*(*x);
}
  //Resolviendo la ecuacion de la Pendiente ajustada a minimos cuadrados
  m=(n*w-k*t)/(n*k2-k*k);
  cout<<"La pendiente ajustada por minimos cuadrados es m= "<<m<<endl;
 }
//Funcion para calcular el punto de corte
void punto(float *x,float *y,int n)
 {float k=0,t=0,w=0,k2=0,b;
  int i;
 //Efectuando las respectivas sumas y productos requeridos en la ecuacion 
  for(i=0;i<n;i++,x++,y++)
{k+=*x;
t+=*y;
w+= (*x)*(*y);
k2+=(*x)*(*x);
}
//Resolviendo la ecuacion para hallar el punto de corte por minimos cuadrados
  b=(t*k2-k*w)/(n*k2-k*k);
  cout<<"\nEl punto de corte por minimos cuadrados es b= "<<b<<endl;
 }
//Función Principal 
int main ()
{int n,i;
 char c;
 float x[max],y[max];
 cout<<"\t\t**PROGRAMA PARA AJUSTAR RECTA POR MINIMOS CUADRADOS**";
 cout<<"\t\t\t\t\tELABORADO POR: JUAN PASTOR RAMOS BOLIVAR"<<endl;
 cout<<"\t\t\t\tUDO-INGENIERIA EN COMPUTACION"<<endl;
 cout<<"\t\t\t\tTODOS LOS DERECHOS RESERVADOS" ;
 for(i=0;i<19;i++) cout<<endl;
 cout<<"\t\t\t\tPresione enter para continuar...";
 getch();
 system("cls");
do{
  do{
cout<<"Ingrese la cantidad de datos a procesar: ";
cin>>n;
system("cls");
if(n<2 || n>max)
cout<<"Ingrese un valor  entre [2,50]"<<endl;

}while(n<2 || n>max);

leer(x,y,n);
minimos_cuadrados(x,y,n);
punto(x,y,n);
do{
cout<<"\n¿Desea realizar otro ajuste por minimos cuadrados? pulse s o n..."<<endl;
c=getch();
system("cls");
 }while(c!='s' && c!='S' && c!='n' && c!='N');
  }while(c=='s' || c=='S');
  if (c=='n' || c=='N')
  return 0;
}
Captura de Ejecución:


El programa fue compilado en Dev-C++.

Saludos att: LordRamos.

sábado, 30 de julio de 2011

Programa Ordenar Matriz C++

Programa que permite ordenar una matriz en forma de espiral, de zigzag horizontal y vertical, y en forma de lluvia, ademas reducir la matriz.


#include <iostream>
#include <stdio.h>
#define max 15
using namespace std;
//Función leer
void leer(int n,int c[max][max])
  {int i,j;
for(j=0;j<n;j++)
for(i=0;i<n;i++)
 {cout<<"Ingrese el elemento c["<<j<<"]["<<i<<"]: ";
cin>>c[j][i];
system("cls");
 }
}
//Función mostrar
void mostrar(int x[max][max],int n)
  {int i,j;
for(j=0;j<n;j++)
{for(i=0;i<n;i++)
 printf("%5d",x[j][i]);
 cout<<endl;
}
}
//Función para pasar arreglo unidimensional a bidimensional
void pasaarreglo(int a[max][max],int b[max], int r)
  {int j,i ,n=0;
for(j=0;j<r;j++)
for(i=0;i<r;i++,n++)
 a[j][i]=b[n];
  }
 //Función para reducir matriz en orden 2 
void reducemat(int x[max][max],int n){
    int i,j, y[max][max];
     for(j=0;j<n-1;j++)
for(i=0;i<n-1;i++)
y[j][i]=(x[j][i]*x[j+1][i+1])-(x[j+1][i]*x[j][i+1]);
    n--;
    cout<<"\nLa Matriz Original reducida es:"<<endl;
    mostrar(y,n);  
         
     }
 //Función para ordenar en espiral 
void ordenaespiral(int t[max][max],int r)
{
 int aux[max*max],aux2[max][max];
 int tope,a,j,i,n=0;
 if(r%2) tope=r/2+1;
 else tope=r/2;
 for(a=0;a<tope;a++)
  {
for(j=a,i=a;i<r-a;i++,n++)
aux[n]=t[j][i];
for(j=a+1,i--;j<r-a;j++,n++)
aux[n]= t[j][i];
for(i--,j--;i>=a;i--,n++)
aux[n]=t[j][i];
for(i++,j--;j>a;j--,n++)
aux[n]=t[j][i];
  }
 pasaarreglo(aux2,aux,r);
 cout<<"\nLa Matriz ordenada en forma de espiral es:"<<endl;
 mostrar(aux2,r);
 }
//Función para ordenar en zigzag horizontal 
void ordenahorizigzag(int c[max][max],int n)
  {int aux[max*max],aux2[max][max];
int i,j,t=0;
for(j=0;j<n;j++)
 {if(j%2==0)
for(i=0;i<n;i++,t++)
aux[t]=c[j][i];
else
for(i=n-1;i>=0;i--,t++)
aux[t]=c[j][i];
 }
pasaarreglo(aux2,aux,n);
cout<<"\nLa Matriz ordenada en forma de zigzag horizontal es:"<<endl;
mostrar(aux2,n);
}
//Función para ordenar en zigzag vertical
 void ordenavertizigzag(int c[max][max],int n)
 { int aux[max*max],aux2[max][max];
int i,j,t=0;
for(j=0;j<n;j++)
 {if(j%2==0)
for(i=0;i<n;i++,t++)
aux[t]=c[i][j];
else
for(i=n-1;i>=0;i--,t++)
aux[t]=c[i][j];
 }
pasaarreglo(aux2,aux,n);
cout<<"\nLa Matriz ordenada en forma de zigzag vertical es:"<<endl;
mostrar(aux2,n);
  }
//Función para ordenar en forma de lluvia comenzando desde la ultima fila  
void ordenalluvia(int c[max][max],int n)
 {int aux[max*max],aux2[max][max];
  int i=0,j,k,t=0,p;
for (j=n-1;j>=0;j--)
 {for(k=j,i=0;k<n;k++,i++,t++)
aux[t]=c[k][i];
}
         for(p=1;p<n;p++)
for(k=0,i=p;i<n;k++,i++,t++)
aux[t]=c[k][i];
    pasaarreglo(aux2,aux,n);
cout<<"\nLa Matriz ordenada en forma de lluvia es:"<<endl;
mostrar(aux2,n);

 }


//Inicio del main()
main(){
  int n;
  int c[max][max];
  do{
cout<<"Ingrese las dimensiones de la Matriz [3,15]: ";
cin>>n;

}while(n<3 || n>15);
  leer(n,c);
  cout<<"La Matriz original es:"<<endl;
  mostrar(c,n);
  ordenaespiral(c,n);
  ordenahorizigzag(c,n);
  ordenavertizigzag(c,n);
  ordenalluvia(c,n);
  reducemat(c,n);
  system("pause");
 }

Captura de Ejecución:
Saludos att: LordRamos.

jueves, 21 de julio de 2011

Programa para ordenar mitad de arreglo C++

Programa que ordena un arreglo de la mitad izquierda de menor a mayor y de la mitad derecha de mayor a menor.Programa compilado en Dev-C++ . Hacer las respectivas modificaciones para compiladores de Borland (TC++).


#include <iostream>
#include <conio.h>
#define max 30
using namespace std;
 main ()
{ int a[max],n,i,j,t,aux;
do{
cout<<"Ingrese las dimensiones del arreglo: ";
cin>>n;
system("cls");
if(n<2 || n>25)
cout<<"Ha ingresado un valor fuera del rango";
 }while(n<2 ||  n>25);
for (i=0;i<n;i++)
{cout<<"Ingrese el elemento nro "<<i+1<<" del arreglo: ";
 cin>>a[i];
 system("cls");
}
cout<<"El arreglo introducido es:"<<endl;
for (i=0;i<n;i++)
cout<<a[i]<<" ";
//Ordenamiento por metodo Burbuja
    //Primera mitad
    do{t=0;
for(i=0;i<n/2-1;i++)
if (a[i]> a[i+1])
 {aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
t=1;
 }
 }while (t!=0);
   //Segunda Mitad
do{t=0;
for (i=n/2; i<n-1 ; i++)
 if(a[i]< a[i+1])
{aux=a[i];
a[i]= a[i+1];
a[i+1]= aux;
t=1;
}
}while(t!=0);
cout<<"\nEl arreglo ordenado de la mitad izquierda de menor a mayor y de la mitad derecha de mayor a menor es:"<<endl;
for (i=0;i<n;i++)
 cout<<a[i]<<" ";
 getch();
 }

Captura de Ejecución:


Att: LordRamos

miércoles, 20 de julio de 2011

Programa para determinar números primos en un arreglos C++

Programa para determinar cuales son los números primos que se encuentran en un arreglo llenado por el usuario.


#include <iostream> //Colocar.h en TC++
#include <conio.h>
#define max 100
   
     using namespace std; //Eliminar esta linea en TC++
    main (){
    int a[max],b[max],i,j=0,n,div,t=0;
cout<<"Ingrese las dimensiones del arreglo: ";
cin>>n;
system("cls");
for (i=0; i<n;i++)
{
cout<<"Ingrese el  elemento nro "<<i+1<<" del arreglo: ";
cin >>a[i];

}
for(i=0; i<n;i++)
{div=2;
while(div<a[i] && a[i]%div>0) // Determinando si es primo
 div++;
if(div==a[i]){          
       b[j++]=a[i];
       t++; //Contador para saber si encontró al menos un numero primo
       }
}
if(t>0){
    cout<<"\nLos numeros primos de su arreglo son:"<<endl;
    for(i=0;i<j;i++)
    cout<<b[i]<<" ";
    }else cout<<"\nNo hay numeros primos en su arreglo";

 getch();
 }

Captura de Ejecución:
Att: LordRamos

domingo, 17 de julio de 2011

Programa admision Java

Programa de sistema de admisión de la UDO tomando en cuenta nota de Examen presentado y datos personales de un bachiller.

link PruebaAdmision.rar

Captura de Ejecución:



Att: LordRamos.

miércoles, 13 de julio de 2011

Programa para mover figura por teclado y aleatoriamente C++

#include <iostream>
#include <conio.h>
#include <stdlib.h> // libreria para la función rand()
#include <time.h> //libreria para que genere números aleatorios a partir del reloj
#include <windows.h> //libreria para usar la función Sleep

using namespace std; // quitar esta linea en Tc++
 main(){int n,i,j,x=0,y=0,k;
        char c,opc='u', opc2;
    cout<<"Ingrese caracter: ";
    cin>>c;
    do{
       cout<<"Ingrese dimensiones (5-25): ";
       cin>>n;
    }while(n<5 || n>25);
    srand(time(0));  //inicializando la semilla para la función rand() 
    do{
     system("cls"); //limpiado de pantalla
     for(j=0;j<x;j++)
     cout<<endl;
     for(j=0;j<n;j++){
      for(i=0;i<y;i++)
      cout<<" ";
      for(i=0;i<n;i++){
        if(j==0 || i==0 || j==n-1 || i==n-1|| i==j+n/2|| i==j-n/2||j==n/2-i || j==3*n/2-1-i || j==n/2 && i==n/2)
        cout<<c;
        else cout<<" ";}
        cout<<endl;
        }
     //condiciones para volver al menú o presentarlo por primera vez
     if(opc=='u' || opc=='b'&& k==15 || opc=='a' && opc2=='x'){


      k=0;
      opc2='u';
     cout<<"  *Menu*\n a)Para mover figura manualmente\n b)Para que la figura se mueva aleatoriamente \n z)salir \n Opcion: ";
     cin>>opc;
     }
     if(opc=='a'){
      if (opc2=='u')
       cout<<"Para mover figura presione(w/s/a/d/)  x (para volver al menu anterior)";
             
     opc2=getch();
     switch(opc2){
     case 'w': x--;break;
     case 's': if(x<24-n)x++;break;
     case 'a': y--;break;
     case 'd': if(y<79-n)y++;break;
     case 'x': break;
   
     }
     }
     if(opc=='b'){
       k++;
       y=1+rand()%(78-n);
       x=1+rand()%(25);        
       Sleep(600); //pausa de 600 milisegundos
       }
      if(opc!='a' && opc!='b' && opc!='z')
      opc='u';        
     }while(opc!='z');          
     
     }

Captura de Ejecución:


Programa compilado en Dev-c++, hacer las respectivas modificaciones para los que trabajan con TC++.
Att: LordRamos

sábado, 9 de julio de 2011

Mi primer Java Applet

Les dejo este applet  que permite calcular el sueldo de un empleado a partir de su sueldo base y unos datos preestablecidos de seguro social, ley de política habitacional, paro forzoso, entre otros...

link PruebaEmpleados.rar

Captura de Ejecución:


    Att: LordRamos.

domingo, 19 de junio de 2011

Programa para calcular factorial C++

Programa que permite calcular el factorial de un numero que sea menor a 21 debido a que el rango máximo para trabajar enteros grandes es nuestra limitante en este caso.


#include <iostream> //.h en TC++ 
#include <conio.h>
  using namespace std; // borrar esta linea en TC++
  main(){   // colocar void antes de main en TC++
    unsigned long long int n;
    int i;  
    cout<<"Ingrese Numero: ";
    cin>>n;
    if(n==0)
    n++;
    for(i=n-1;i>0;i--)
    n*=i;
    cout<<"El factorial del numero es: "<<n;
getch();
}

Captura de Ejecución:





 Att: LordRamos.

Tienda de Mascotas Java

Programa Tienda de Mascotas que permite adquirir mascotas, venderlas, y mostrar un listado por tipo.

link :Tienda de mascotas

Captura de Ejecución:




Att: LordRamos.

jueves, 16 de junio de 2011

Simple calculadora con Operadores Ternarios

//Calculadora para efectuar operaciones básicas con dos números, Elaborada con los básicos operadores ternarios

#include <iostream> //Colocar .h en TC++
#include <conio.h>

using namespace std; // Eliminar linea en TC++

int main(){
  
    float a,b;
    int opc;
    cout<<"Ingrese primer numero: ";
    cin>>a;
    cout<<"Ingrese segundo numero: ";
    cin>>b;
    cout<<"\nMenu de Operaciones\n1)Sumar\n2)Restar\n3)Multiplicar\n4)Dividir\n5)salir\nIngrese Opcion: ";
    cin>>opc;
    (opc==1)?cout<<"\nLa suma es: "<<a+b<<endl
    :(opc==2)? cout<<"\nLa Resta es : "<<a-b
    :(opc==3)? cout<<"\nLa multiplicacion es: "<<a*b
    :(opc==4)? cout<<"\nLa division es "<<a/b
    : cout<<"Bye";
  
   getch();
   return 0;


}

Captura de Ejecución:


 Att: LordRamos.

jueves, 9 de junio de 2011

Programa para determinar si un numero es primo c++

Esta es la manera mas simple para determinar si un numero es primo.


#include <stdio.h>
#include <conio.h>

int main(){
  
    int n,div=2;
    printf("Ingrese un numero: ");
    scanf("%d",&n);
   /*La condición a continuación establece que mientras el numero  sea mayor  al divisor y  la división del numero entre el divisor no sea exacta entonces se incrementa el divisor*/
    
    while(n>0 && n>div && n%div>0)
    div++;
 /* por tanto si el divisor se incremento hasta ser igual a el numero quiere decir que es el unico divisor (a parte de el 1 que se sobreentiende que divide a todos los numeros  ) del numero y por ende el numero es primo.*/   
    if(div==n)
    printf("\nEl numero es primo");
    else  printf("\nel numero no es primo"); // sino no es primo.
    getch();
    return 0;
}

Si hay dudas no olviden comentar... Att: LordRamos.

domingo, 5 de junio de 2011

Programa Banco Java

Programa de Banco que maneja cuentas de clientes y sus respectivas operaciones  Banco. Att: LordRamos

Por fin algo de Java

Les dejo el programa de el Estacionamiento Estacionamiento java. Att: LordRamos
si hay dudas preguntar...

sábado, 4 de junio de 2011

Fibonacci Programa C++

Les dejo mi programa para generar la famosa serie fibonacci. La sucesión inicia con 0 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores. Ya es necesario que comencemos a manejar los bucle como for, while, do... while. Att: LordRamos.


#include <iostream> // Colocar .h para compilar en tubo c++ 4.5
#include <conio.h>
using namespace std; // Eliminar esta linea para compilar en tc++

int main()
{unsigned int n,a=0,b=1,aux,i;
 cout<<"Ingrese la cantidad de numeros a calcular: ";
 cin>>n;
 cout<<"la serie es:"<<endl;
  for(i=0;i<n;i++)
  { aux=b;
b=a+b;
cout<<a<<", ";
a=aux;
}

  getch();
  return 0;
  }

Programa compilado en Dev-C++
Si hay alguna duda pregunten...

jueves, 2 de junio de 2011

Programa para ajustar recta por mínimos cuadrados

Acá  Mínimos cuadrados subí un programa para ajustar recta por mínimos cuadrados, muy útil para los que están viendo laboratorio de física I, el programa lo hice yo, si necesitan el código pídanlo por comentario.Att LordRamos.

sábado, 28 de mayo de 2011

Compiladores c++

Un par de compiladores para C++, Turbo C++ 4.5 de manera pedagógica porque no sirve para mas nada. Y Dev c++ el que uso actualmente, como beneficio de ser  ser software libre no hay que pagar por la licencia .

C++ mi segundo programa

Este fue el segundo programa que hice cuando curse POO.


//Programa Vuelto Perfecto
#include <iostream>
#include <conio.h>

using namespace std;//No necesario en Tc++4.5
  int main()
  {  float v,vd,y;
 int ve,vde, b100=100, b50=50, b20=20, b10=10, b5=5, b2=2, b1=1;
 int m50=50, m25=25, m10=10, m5=5, m1=1,x;

cout<<"Ingrese la cantidad total a pagar en Bs : ";
cin>>y;
cout<<"Ingrese cantidad que usted pago: ";
cin>>v;
v-=y; //Sacando diferencia para determinar el cambio
cout<<"Debe dar de cambio Bs: "<<v<<endl;
ve = v; //Convirtiendo parte entera del float a int, pueden colocar (int) antes de la variable v
vd = v-ve;
vde = (vd*100); //Convirtiendo parte decimal del float a int
//Billetes
x=ve%b100;  // Sacando el resto que queda al comprobar la division entre el billete de 100
b100= ve/b100;// Dividiendo para comprobar cuantos billetes de 100 correponden
b50=x/b50;
x=x%50;
b20=x/b20;
x=x%20;
b10=x/b10;
x=x%10;
b5=x/b5;
x=x%5;
b2=x/b2;
x=x%2;
b1=x/b1;
//Monedas mismo proceso
x=vde%m50;
m50=vde/m50;
m25=x/m25;
x=x%25;
m10=x/m10;
x=x%10;
m5=x/m5;
x=x%5;
m1=x/m1;
//Impresión  
if(b100>0)cout<<b100<<" billete(s) de 100 Bs"<<endl;
if(b50>0)cout<<b50<<" billete(s) de 50 Bs"<<endl;
if(b20>0)cout<<b20<<" billete(s) de 20 Bs"<<endl;
if(b10>0)cout<<b10<<" billete(s) de 10 Bs"<<endl;
if(b5>0)cout<<b5<<" billete(s) de 5 Bs"<<endl;
if(b2>0)cout<<b2<<" billete(s) de 2 Bs"<<endl;
if(b1>0)cout<<b1<<" moneda(s) de 1 Bs"<<endl;
if(m50>0)cout<<m50<<" moneda(s) de 50 centimos"<<endl;
if(m25>0)cout<<m25<<" moneda(s) de 25 centimos"<<endl;
if(m10>0)cout<<m10<<" moneda(s) de 10 centimos"<<endl;
if(m5>0)cout<<m5<<" moneda(s) de 5 centimos"<<endl;
if(m1>0)cout<<m1<<" moneda(s) de 1 centimo"<<endl;

 getch();
  return 0;
 }


Si hay dudas comenten...

Comenzando a programar en c++

//Programa que calcula el mayor de 3 números. 

#include <iostream> //Colocar .h cuando usen compilador Turbo c++ 4.5
#include <conio.h>
 using namespace std;// No necesario en  Turbo c++ 4.5


 int main() //  pueden usar void main() en  Turbo c++ 4.5  
  { int x,y,z;
cout<<"ingrese primer numero:\n";
cin>>x;
cout<<"ingrese segundo numero:\n";
cin>>y;
cout<<"ingrese tercer numero:\n";
cin>>z;
(x>y && x>z)? cout<<"el mayor es:\n"<<x //Los Operadores ternarios ? : indican si (?) y sino (:)
:(y>x && y>z)? cout<<"el mayor es:\n"<<y
:(z>x && z>y)? cout<<"el mayor es:\n"<<z
: cout<<"los numeros son iguales";

  getch ( ); // Captura un carácter por pantalla sin mostrarlo, en este caso se usa para finalizar el programa
  return 0; // no necesario en turbo c++ 4.5 si se usa void main()
  }

Para los que no entiendas las operaciones lógicas debe leer las nociones básicas posteadas con anterioridad.
Este Programa Fue compilado en Dev c++;

C++ Información Básica Importante pfinal

Para Finalizar con la Información Básica he subido un Pdf que encontré en la red que contiene todo lo mencionado anteriormente y mas información. Aca esta el link Sintaxis c++. Att LordRamos

C++ Información Básica Importante p7

B.4. CONVERSIÓN DE TIPOS


La conversiones explícitas se fuerzan mediante moldes (casts). La conversión forzosa de tipos de C tiene el formato clásico:
(tipo) expresion
C++ ha modificado la notación anterior por una notación funcional como alternativa sintáctica:
nombre del tipo (expresion)
Las notaciones siguientes son equivalentes:
float(x);
//notacion de casteo en C++
(float)x;
//notacion de casteo en C


B.5. DECLARACIÓN DE VARIABLES


En ANSI C, todas las declaraciones de variables y funciones se deben hacer al principio del programa o función. Si se necesitan
declaraciones adicionales, el programador debe volver al bloque de declaraciones al objeto de hacer los ajustes o inserciones
necesarios. Todas las declaraciones deben hacerse antes de que se ejecute cualquier sentencia. Así, la declaración típica en C++,
NombreTipo Nombrevariablel, Nombrevariable2; proporciona declaraciones tales como:
int saldo, meses;
double clipper, salario;
Al igual que en C, se pueden asignar valores a las variables en C++:
int mes =4, dia, anio=1995;
doble salario = 45.675;
En C++, las declaraciones de variables se pueden situar en cualquier parte de un programa. Esta característica hace que el
programador declare sus variables en la proximidad del lugar donde se utilizan las sentencias de su programa. El siguiente programa
es legal en C++ pero no es válido en C:
#include <stdio.h>
int main ()
{
int i ;
for ( i= 0; i<100; ++i)
printf ( “%d\n” , i);
double j;
for ( j= 1.7547; j<25.4675; j+= .001)
printf ( “%lf\n” , j);
}
El programa anterior se podría reescribir, haciendo la declaración y la definición dentro del mismo bucle:
int main ()
{
for ( int i= 0; i<100; ++i)
cout<< i << endl;
for ( int j= 1.7547; j<25.4675; j+= .001)
cout << j <<;
}

C++ Información Básica Importante p6

B.3. CONSTANTES


C++ contiene constantes para cada tipo de dato simple (integer, char,...). Las constantes pueden tener dos sufijos, u, l y f. Que indican tipos unsigned, long y float, respectivamente. Así mismo, se pueden añadir los prefijos o y ox, que representan constantes octales y hexadecimales.
456
0456 0x476 // constante enteras : decima1, octal , hexadecimal
1231 123ul
// constante enteras :long, unsigned, long
 ́B ́  ́b ́  ́4 ́
// constante de tipo char
3.1415f
// constante reales de diferente posición
“cadena de caracteres” // Constante de cadena
Las cadenas de caracteres se encierran entre comillas, y las constantes de un solo carácter se encierran entre comillas simples.


” ” // cadena vacía ‘\0’


B.3.1. Declaración de constantes
En C++, los identificadores de variables/constantes se pueden declarar constantes, significando que su valor no se puede modificar.
Esta declaración se realiza con la palabra reservada const.
contar double PI= 3.11416;
const char BLANCO =  ́  ́;
const double PI_EG = -I;
const double DOBLE_I = 2 * PI ;
El modificador de tipos const se utiliza en C++, también para proporcionar protección de sólo lectura para variables y parámetros
de funciones. Las funciones miembro de una clase que no modifican los miembros dato a que acceden pueden ser declarados const.
Este modificador evita también que parámetros por referencia sean modificados:
void copy (const char *
fuente, char * destino):

Tambien se pueden declarar de esta forma muy usada

 Se declaran con la directiva #define, esto significa que esa constante tendrá el mismo valor a lo largo de todo el programa. El identificador de una constante así definida será una cadena de caracteres que deberá cumplir los mismos requisitos que el de una variable (sin espacios en blanco, no empezar por un dígito numérico, etc).
Ejemplo:
#include <stdio.h>
  #define PI  3.1415926
  
  int main()
  {
    printf("Pi vale %f", PI);
    return 0;
  }
Lo cual mostrará por pantalla:
Pi vale 3.1415926
Es decir, PI es una constante a la que le hemos asignado el valor 3.1415926 mediante la directiva #define.
La directiva #define también se puede utilizar para definir expresiones más elaboradas con operadores (suma, resta, multiplicación etc) y otras constantes que hayan sido definidas previamente, por ejemplo:
#define X  2.4
  #define Y  9.2
  #define Z  X + Y




C++ Información Básica Importante p5

B.2.1. Verificación de tipos

La verificación o comprobación de tipos en C++ es más rígida (estricta) que en C. Algunas consideraciones a tener en cuenta son:
Usar funciones declaradas. Esta acción es ilegal en C++, y está permitida en C:
int main()
{
//...
printf(x)
//C int printf(x)
//C++ es ilegal, ya que printf no esta declarada
return 0;
}
• Fallo al devolver un valor de una función. Una función en C++ declarada con un tipo determinado de retomo, ha de devolver
un valor de ese tipo. En C, está permitido no seguir la regla.
• Asignación de punteros void. La asignación de un tipo void* a un puntero de otro tipo se debe hacer con una conversación
explícita en C++. En C, se realiza implícitamente.
• Inicialización de constantes de cadena. En C++ se debe proporcionar un espacio para el carácter de terminación nulo cuando
se inicializan constantes de cadena. En C, se permite la ausencia de ese carácter
int main()
{
//......
char car[7] = “Cazorla“;
// legal en C
//error en C++
//......
return 0;
}
Una solución al problema que funciona tanto en C como en C++ es: char car [] ="Cazorla";

C++ Información Básica Importante p4

B.2. TIPOS DE DATOS

Los tipos de datos simples en C++ se dividen en dos grandes grupos: integrales (datos enteros) y de coma flotante (datos reales).

char
short
usigned short
float
signed char
int
unsigned
double
unsigned char
long
unsigned long
long double

Los tipos derivados en C++ pueden ser:

enumeraciones (enum),

estructuras (struct),

uniones (union),

arrays,

clases (class y struct),

uniones y enumeraciones anónimas,

punteros,

viernes, 27 de mayo de 2011

C++ Información Básica Importante p3

 B.1.4.Palabras reservadas

Las palabras reservadas o claves no se deben utilizar como identificadores, debido a su significado estricto en C++; tampoco se deben redefinir. La Tabla B. 1 enumera las palabras reservadas de C++ según el ARM(Siglas del libro de BJARNE STROUSTRUP en el que se definen las reglas de sintaxis del lenguaje C++ estándar).

Tabla B.1. Palabras reservadas de C++
asm*
auto
break
case
catch*
char
class*
const
continue
default
delete*
do
double
else
enurn
extern
float
for
friend*
goto
if
inline*
int
long
new*
operator*
private*
protected*
public*
register
return
short
signed
sizeof
static
struct
switch
template*
this*
throw*
try
typedef
union
unsigned
virtual*
void
volatile
while
*Estas palabras no existen en ANSI C.


Los diferentes compiladores comerciales de C++ pueden incluir, además, nuevas palabras reservadas. Estos son los casos de Borland,
Microsoft y Sysmantec.
asm
auto
break
case
catch
_cdecl
_cdecl
char
class
const
continue
_cs
default
delete
do
_double


Tabla B.2. Palabras reservadas de Turbo/Borland C++
_ds
interrup
short
else
_loadds
signed
enum
long
sizeof
_es
_near
_ss
export
near
static
extern
new
struct
far
operator
switch
far
pascal
template
float
pascal
this
for
private
typedef
friend
protected
union
goto
pubic
unsigned
huge
register
virtual
if
return
void
inline
_saveregs
volatile
int
_seg
while
Tabla B.3. Palabras reservadas de Microsoft Visual C/C++ 1.5/2.0
asm
auto
based
break
case
_cdecl
char
const
continue
_declspec
default
dllexport
dllimport
do
doble
else
int
enum
_interrupt
_except _leave
_export _loadds
extern
long
_far
maked
_fastcall _near
_finally _pascal
float
register
for
return
_fortran _saveregs
goto
_self
_huge
_segment
if
_segname
_inline short
signed
sizeof
static
_stcall
struct
switch
thread
_try
typedef
union
unsigned
void
volatile
while
El comité ANSI ha añadido nuevas palabras reservadas (Tabla B.4).


Tabla B.4. Nuevas palabras reservadas de ANSI C++
bool
cons_cast
dynamic_cast
Página 4 de 28
false
mutable
namespace
reinterpretcast
static_cast
true
typeid
using
wchart

C++ Información Básica Importante p2

B.1.3. Identificadores
Los identificadores (nombres de variables, constantes,...) deben comenzar con una letra del alfabeto (mayúscula o minúscula) o con un carácter subrayado, y pueden tener uno o más caracteres. Los caracteres segundo y posteriores pueden ser: letras, dígitos o un subrayado, no permitiéndose caracteres no alfanuméricos ni espacios.
tescprueba // legal
Xl23
// legal
multi_palabra // legal
var25
// legal
l5var
// no legal
C++ es sensible a las mayúsculas.
Paga_mes
es un identificador distinto a paga_mes
Una buena práctica de programación aconseja utilizar identificadores significativos que ayudan a documentar un programa.
nombre apellidos salario precio_neto





C++ Información Básica Importante p1

C++ es considerado un C más grande y potente. La sintaxis de C++ es una extensión de C, al que se han añadido numerosas propiedades, fundamentalmente orientada a objetos. ANSI C ya adoptó numerosas características de C++, por lo que la migración de C a C++ no suele ser difícil.
En este apéndice se muestran las reglas de sintaxis del estándar clásico de C++ recogidas en al Annotated Manual (ARM) de
Stroustrup y Ellis, así como las últimas propuestas incorporadas al nuevo borrador de C++ ANSI, que se incluyen en las versiones 3
(actual) y 4 (futura de AT&T C++).

B.1. ELEMENTOS DEL LENGUAJE
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos (tokens) que comprenden el vocabulario básico del lenguaje. Estos componentes de léxico son: palabras reservadas, identificadores, constantes, constantes de cadena,
operadores y signos de puntuación.

B.1.1. Caracteres
Los caracteres que se pueden utilizar para construir elementos del lenguaje (componentes léxicos o tokens) son:
abcdefghi jklmnopqrstuvwxyz
ABCDEFCHIJKLMNOPQRSTUVWXYZ
0123456789
caracteres espacio (blancos y tabulaciones)

B.1.2. Comentarios
C++ soporta dos tipos de comentarios. Las líneas de comentarios al estilo C y C ANSI, tal como:
/* Comentario estilo C */
/* Comentario mas extenso, pero también es estilo C y ANSI C */
El otro tipo de comentarios se pueden utilizar por los programadores de C++: La versión /*...* / se utiliza para comentarios que excedan una línea de longitud y la versión //... se utiliza, sólo, para comentarios de una línea. Los comentarios no se anidan.