SlideShare una empresa de Scribd logo
1 de 21
Libreria:
assert
ctype
errno
limits
locale
setjmp
signal
stdarg
stddef
stdio
stdlib
string
¿Qué es una clase?
Visual Studio2008 Otras versiones
Actualización:noviembre 2007
En estalección,aprenderáautilizarclasespararepresentar objetosensusprogramas.
Comoaprendióenunalecciónanterior,losprogramasde Visual Basicse generanconobjetos
como formulariosycontroles.Losobjetostambiénse puedenutilizarpararepresentarcosas
realescomopersonas,equiposinformáticosoinclusoalgomásabstracto,comouna cuenta
bancaria.
Una clase es simplementeunarepresentaciónde untipode objeto;piense enellacomoun
planoque describe el objeto.Asícomounplanopuede utilizarse paraconstruirvariosedificios,
una clase puede utilizarse paracrearvariascopiasde unobjeto.
Aunque puede que nose hayadadocuenta,ya ha utilizadolasclases.Porejemplo,el control
TextBox lodefine unaclase TextBox,que definesuaspectoysus funciones.Cadavezque
arrastra un control TextBox a unformulario,realmente estácreandounanuevainstanciade la
clase TextBox.
Cada control TextBox esunacopia exacta,aunque distinta,de laclase que lodefine,laclase
TextBox.Puestoque cadaobjetoesuna"instancia"independientede unaclase,laacciónde
crear una clase se denominacreaciónde instancias.
Hasta ahora ha agregadoloscontrolesTextBox asu formularioarrastrándolosdesde el Cuadro
de herramientas,perotambiénpuede crearinstanciasde unobjetoTextBoxensucódigosi
utilizalapalabraclave New.
VB
DimTextbox1AsNewTextBox
Obtendrámásinformaciónsobre creary utilizarlasclasesenlasleccionessiguientes.
¿Qué hay dentrode una clase?
En una lecciónanterior,Informacióndetallada:comprenderpropiedades,métodosy eventos,
aprendióque todoslosobjetostienenpropiedadesque describensusatributos,métodosque
definensusaccionesyeventosque definensusrespuestas.Igualmente,laclase que define un
objetotiene suspropiaspropiedades,métodosyeventos( avecesllamadosmiembros)que se
pasan a todaslas instanciasde esaclase.
Por ejemplo,unaclase que representaunacuentabancariapodría tenerpropiedadescomo
AccountNumberoAccountBalance,métodoscomoCalculateInterestyeventoscomo
BalanceChanged.Unavezcreadala instanciade unobjetode cuentabancaria,puede tener
acceso a suspropiedades,métodosyeventosde igual maneraque si se tratara de un objeto
TextBox.
Algunosmiembrosde unaclase sonprivados;sólose tiene accesoaellosmediante código
dentrode la clase.Porejemplo,unaclase de cuentabancariapuede tenerunmétodopara
calcularun saldo.Lo lógicoespermitirque unprogramaleaese balance perono que pueda
cambiarlodirectamente.
Puede ocultarlosmiembrosde unaclase si losdeclaracomo Private oexponerlossi losdeclara
como Public.Tambiénpuede permitirel accesoauna propiedadya lavezimpedirque el
programa cambie suvalordeclarándolocomoReadOnly.El códigosiguiente muestracómo
podría seruna clase BankAccount.
VB
ClassBankAccount
Private AccountNumberAsString
Private AccountBalance AsDecimal
PublicSubUpdateBalance()
' add code to recalculate balance.
End Sub
ReadOnlyPropertyBalance()AsDecimal
Get
ReturnAccountBalance
EndGet
End Property
End Class
fichero
Un ficheroo archivoesun sistemareal ovirtual de organizaciónde lainformaciónmediante
una clasificacióndeterminada.
Se le llamafichero a unconjuntode informaciónclasificadayalmacenadade diversasformas
para su conservaciónyfácil accesoencualquiermomento.
Un ficheropuede serunsistemade archivosfísicoscontenidosencajasuotroselementosde
almacenamientoque formanparte de unconjuntomayorcomo una bibliotecaoarchivo
públicooprivado.A menudo,el ficheroutilizaunataxonomíaosistemade clasificacióncomún
para todossus contenidosque permitenlabúsquedade datosespecíficosde formarápiday
sencilla.El máscomúnes el ordenalfabéticoporconceptooautor,perotambiénpuede
clasificarse lainformaciónsegúnáreastemáticas,porordencronológicouotroscriterios
dependiendode lainformacióncontenidaenel fichero.
En informática,unarchivoo fichero tambiénesunconjuntode informaciónque se almacena
enforma virtual paraser leídoy/oaccedidopormediode una computadora.
Las posibilidadesde almacenamientoyclasificaciónsonmuchomásricas enun sistema
informático,yaque lainformaciónnoocupaun espaciofísicoy,por ende,esposible conservar
millonesde datosenundispositivomuypequeño.Inclusive,se puede guardarinformaciónde
texto,audioovideoenunmismolugarsininconveniente alguno.
A su vez,el sistemasueleorganizartaxonómicamentelainformaciónenformaautomática,
permitiendoque el usuariolaencuentreconsóloingresarpalabrasclave enunbuscador
específico,locual supone unaoperaciónrápidayútil cuandola informaciónalmacenadaes
múltiple.A suvez,lossistemas informáticossuelenreplicarlosficherosfísicosy,así,organizar
el contenidoencarpetasysubcarpetascreadasy administradasporel usuarioque son
ubicadasenel discointernoyque puedenserabiertasmediante accesosdirectosdispuestos
enel escritoriovirtual del ordenador.
Procesode desarrollode unprograma[editar]
Si se deseaescribirunprogramaenC++ se debe ejecutarcomomínimolossiguientespasos:
Escribircon un editorde textoplanounprogramasintácticamente válidoousarun entornode
desarrollo(IDE) apropiadoparatal fin
Compilarel programay asegurarse de que nohan habidoerroresde compilación
Ejecutarel programa y comprobarque no hay erroresde ejecución
Este últimopasoesel más costoso,por que enprogramas grandes,averiguarsi hayo no un
falloprácticamente puedeserunatareatotémica.
Comoejemplo,si se deseaescribirunarchivoconel nombre hola.cppyen él escribirun
programa con emacs,por ejemplo,que esunprogramade ediciónde textos,se puede,en
GNU, ejecutarel siguientecomando:
$emacs hola.cpp&
Para otros sistemasoperativosuotrosentornosde desarrollo,nonecesariamentese sigue
este paso.
A continuaciónse escribe el siguiente códigoenC++:
Ejemplo
// Aquí generalmente se suele indicarqué se quiere conel programaa hacer
// Programa que muestra'Holamundo'por pantallay finaliza
// Aquí se sitúantodaslas libreriasque se vayanausar con #include,
// que se verá posteriormente
// Las libreriasdel sistemasonlassiguientes
#include <iostream>
// Funciónmain
// Recibe:void
// Devuelve:int
// Funciónprincipal,encargadade mostrar"HolaMundo",porpantalla
int main(void)
{
// Este tipode líneasde códigoque comienzanpor'//' soncomentarios
// El compiladorlosomite,ysirvenparaayudar a otrosprogramadoreso
// a unomismoencaso de volverarevisarel código
// Es una prácticasana ponercomentariosdonde se necesiten,
std::cout<< "HolaMundo" << std::endl;
// Mostrar por std::cout el mensaje HolaMundoy comienzaunanuevalínea
return0;
// se devuelve un0.
//que eneste casoquiere decirque lasalidase ha efectuadoconéxito.
}
Mediante simple inspección,el códigoparece enorme,peroel compiladorloúnicoque leerá
para la creacióndel programaes losiguiente:
Ejemplo
#include <iostream>
int main(void){ std::cout<<"HolaMundo" << std::endl;return0;}
Comose puede observar,este códigoyel original nodifierenenmuchosalvoenlossaltosde
líneay que loscomentarios,de losque se detallanposteriormente,estánomitidosytansólo
ha quedado"el esqueleto"del códigolegible parael compilador.Parael compilador,todolo
demás,sobra.
O este otro,que es,enparte, comoel lenguaje C,ensuversiónC99, es:
Ejemplo
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf( "HolaMundon");
returnEXIT_SUCCESS;
// 'EXIT_SUCCESS' esuna definiciónque estádentrode 'stdlib.h'
// tambienfuncionareturn0
}
Nota:si se usa Windows,el códigoesel mismo,perodebemosagregarunmetodomaspara
que el programa se mantengaabiertoyno se cierre la consola,cosaque en GNU, no es
necesariaporque la consolaya estaabierta(al mandara ejecutar).
Para estopodemosusarcin.get() que nospermitiraleerdel teclado,porloque el programano
finalizara,hastaque el usuariopulse enter.
Ejemplo
#include <iostream>
int main(void)
{
std::cout<< "Hola Mundo"<< std::endl;
std::cin.get();
//con 'std::cin.get();'loque se hace esesperarhasta que el usuariopulse enter.
return0;
}
Los pasossiguientessonparaunacompilaciónenGNUo sistemaoperativoUnix.EnWindows
tampocoes aplicable.
Con ctrl-x ctrl-sse guarda el archivo.Ahorapara generarel ejecutable delprogramase compila
con g++ de la siguienteforma:
$ g++ hola.cpp -ohola
Para poderverlosresultadosdel programaenacción,se ejecutael programade lasiguiente
forma:
$./hola
Y a continuaciónse debe mostraralgocomo losiguiente:
Hola Mundo
§Comentarios[editar]
Cuandose escribenprogramasesmuyútil agregar comentariosque ayudenaexplicarloque
realizaunprograma.En C++ se puedenutilizartrestiposde comentarios:al estiloC,al estilo
C++ y usando preprocesador.
Los comentariosal estiloCse caracterizanpor losiguiente:comenzarel "bloque"de
comentarioscon/* y terminardicho"bloque"de comentarioscon*/
Ej:
/*
Este es un comentarioal estiloC.
Todo loescritodentrode lasetiquetasde aperturaycierre esun comentario.
A estoscomentariosse le llamanmultilinea,logicamente
por el hechode permitirvariaslineasde comentarios.
*/
Si se usaneste tipode etiquetasde comentarios,hayque tenercuidadoconel cierre (*/),por
que el compiladorpuede tomartodoel textocomocomentario,ocerrar antesde lodeseado.
Usando el estilode códigode C++ sólopuedenocuparunalíneacomo enel siguiente código:
// Este esun comentarioal estiloC++
Una buenapráctica de programaciónes pensarque se programa a sabiendasde que otro
programador,tal vezel lectormismoenunfuturo,tengaque "desencriptar"qué quisohacer
ahí y por qué.
Otra posible formade comentarcódigoesusandoel preprocesador.Estose detallarámás
adelante en profundidad,porahorala parte útil del preprocesadorque interesaesla
siguiente:
#if 0
Comentariossobre el programa/parte del programa.
Puedenocuparmúltipleslíneas.
Más complicadode visualizarque loscomentariosC/C++
#endif
Este tipode comentariosse usanrara vez.Generalmentesondifícilesde localizar,inclusopara
programadoresexperimentadosque trabajanenpapel,ysonfácilesde distinguirencasi
cualquierIDE.Es recomendableindicarque se tratande comentarios,odirectamente no
usarlos,salvosi songrandescantidadesde comentarios.Se verámásadelante que también
puede tenerotrosusos.
§Utilizaciónde laconsolao terminal[editar]
En losejemplosanterioresse utilizaron'std::cout'.'std::cout'esun"objeto"que permite
escribirenlaconsola(laterminal enGNU/Unix/MacOSX),solose puedeutilizargraciasaque
se ha incluidodefinicionesde suusocon lalínea de código'#include <iostream>'.
std::cout<< ALGO;
Donde ALGO puede serloque seaque 'std::cout' seacapaz de mostrarpor consola.Más
adelante se tratamás sobre el endetalle yaclarandoposiblesdudasque ahorapuedansurgir.
Tambiénse utilizó'std::endl',estopermite que el textose escribaenunanuevalínea.
Un ejemplomáscompletosobre laescrituraenconsolaesel siguiente.Hade tenerse en
cuentaque se haneliminadoalgunoscomentariossuperfluosdel primerprogramadebidoa
que ahora se está tratandocon más detalle acercadel usode imprimirtextoenlaconsola:
Ejemplo
// Programa que muestradiversostextosporconsola
// Las libreríasdel sistemausadassonlassiguientes
#include <iostream>
// Función:main
// Recibe:void
// Devuelve:int
// Es la funciónprincipal encargadade mostrarporconsoladiferentestextos
int main(void)
{
// Ejemploconunaúnica línea,se muestrael usode std::couty std::endl
std::cout<< "Bienvenido.Soyunprograma.Estoyenuna lineade codigo."<< std::endl;
// Ejemploconunaúnica líneade códigoque se puede fraccionarmediante el usode '<<'
std::cout<< "Ahora"
<< "estoyfraccionadoenel codigo,peroenlaconsolame muestrocomo unaunica frase."
<< std::endl;
// Uso de un códigolargo,que cuestaleerpara un programador,yque se ejecutarásin
problemas.
// *** Nose recomiendahacerlíneasde estamanera,estaformade programar no es
apropiada***
std::cout<< "Un gran textopuede ocuparmuchaslineas."
<< std::endl
<< "Peroesono frenaal programador a que todose puedaponerenuna unica lineade
codigoy que"
<< std::endl
<< "el programa,al ejecutarse,lositue comoel programadorquiso"
<< std::endl;
return0; //Y se terminacon éxito.
}
Se reta a compilareste códigoya observarsusresultados.Eneste momentoel lectorestá
capacitadopara escribirprogramasque imprimanporpantallael mensaje que se quiera.
Atención:Se hace hincapié enlaposibilidadde que laspalabrasacentuadasnose puedan
mostrar enla consola.Depende completamente del compiladorel que se puedaverlo
siguiente:
std::cout<< "programación";
Con algunoscompiladores,verá'programación',peroconotrospuede verincluso'programaci
n'.
Advertencia:coutpuede serutilizadosintenerstd::de formapreviaporque se puede
introducirunadirectiva,denominada'using',que acomodatodosloscout.De otro modo
habría un error de compilador.Este temase trata endetalle másadelante.
usingnamespace std;
§Sintaxis[editar]
Sintaxiseslaformacorrecta enque se debenescribirlasinstruccionesparael computadoren
un lenguaje de programaciónespecífico.C++heredalasintaxisde Cestándar,esdecir,la
mayoría de programas escritosparael C estándarpuedensercompiladosenC++.
§El puntoy coma[editar]
El puntoy coma esuno de los simbólosmásusadosenC, C++; y se usacon el finde indicarel
final de unalíneade instrucción.El puntoycoma esde uso obligatorio.
ejemplo
´´´´´´
clrscr();//Limpiarpantalla,funcionasoloconlalibreríaconiode BorlandC++
x = a + b;
stringIP = "127.0.0.1"; // Variable IPtipostring
cout << IP<< endl;//Devuelve 127.0.0.1
char Saludo[5] = "Hola";// Variable Saludotipochar
cout << Saludo[0] << endl;//Igual a H
cout << Saludo[1] << endl;//Igual a o
cout << Saludo[2] << endl;//Igual a l
cout << Saludo[3] << endl;//Igual a a
El puntoy coma se usa tambiénparaseparar contadores,condicionalese incrementadores
dentrode un sentenciafor
ejemplo
for (i=0;i < 10; i++) cout << i;
§Espaciosy tabuladores[editar]
Usar caracteres extrasde espaciadootabuladores( caracterestab ) esun mecanismoque nos
permite ordenarde maneramásclara el códigodel programa que estemosescribiendo,sin
embargo,el usode estosesopcional ya que el compiladorignoralapresenciade losmismos.
Por ejemplo,el segundode losejemplosanterioresse podríaescribircomo:
for (inti=0; i < 10; i++) { cout << i * x; x++; }
y el compiladornopondríaningúnreparo.
§Tiposprimitivos[editar]
En un lenguaje de programaciónesindispensable poder almacenarinformación,paraestoen
C++ estándisponibleslossiguientestiposque permitenalmacenarinformaciónnuméricade
tipoenteroo real:
Nombre Descripción Tamaño* Rango de valores*
char Carácter o enteropequeño 1byte con signo:-128 to 127
sinsigno:0 a 255
short int(short)Enterocorto 2bytes con signo:-32768 a 32767
sinsigno:0 a 65535
int Entero 4bytes con signo:-2147483648 a 2147483647
sinsigno:0 a 4294967295
longint(long) Enterolargo 8bytes con signo:-2147483648 a 2147483647
sinsigno:0 a 4294967295
bool Valorbooleano.Puedetomardosvalores:verdaderoofalso 1byte true o false
float Númerode puntoflotante 4bytes 3.4e +/- 38 (7 digitos)
double De puntoflotante de doble precisión 8bytes 1.7e +/- 308 (15 digitos)
longdouble Long de puntoflotante de doble precisión 8bytes 1.7e +/- 308 (15
digitos)
Los valoresdependende laarquitecturautilizada.Losmostradossonlosque generalmentese
encuentranenunamáquinatípica de arquitectura32 bits.
§El modificadorlong[editar]
El modificadorlongle indicaal compiladorque el tipodebe utilizarmásbitsque los
normalmente utilizadosporejemplosi tenemosenunamaquinade 32 bitscomo un Pentium
de Intel,normalmentede unintocupara32 bits,perosi al declararloun enterole
antecedemoslongel enteroocupa64 bits,el siguiente códigomuestracomoutilizareste
modificador:
intcorto; // Enterode 32 bits
longintlargo;// Enterode 64 bits
§El Modificadorshort[editar]
Similaral anterior,peroindicaque se debenutilizarmenosbits.Porejemplo,enun
computadorde 32 bits,un shortint ocupa16 bits.
§El Modificadorunsigned[editar]
El modificadorunsignedesutilizadoúnicamente conlosenteros,suutilizaciónpermite utilizar
enlosenterosúnicamente laparte positiva,
inta; // Almacenavaloresentre -32768 y 32767
unsignedinta;// Almacenavaloresentre 0y65535
§El Modificadorregister[editar]
Este modificadorsobre unavariable le indicaal compiladorque lavariable debe almacenarse
enun registroenel compilador,que parael caso de losIA32, es unregistroreal de la propia
CPU, y por tantoel tiempode accesoes másrápidorespectoa la memoriaRAM.Hoy endía
apenasse utilizaeste modificador,yaque loscompiladoressoncapacesde determinarde
maneraóptimala asignaciónde registrosavariablesdel programa.
§El Modificadorvolatile[editar]
Al contrarioque el modificadorregistrer,volatile obligaal compiladoraforzarel código
resultante de maneraque lavariable modificadaconeste modificador,seaalmacenada
siempre enlamemoria.El efectoque tiene esque cuandolavariable se modificaconotro
valor,dichavariable se almacenadirectamente enmemoriaynoquedalocalizadoel valor sólo
enel registrode la CPU como pasabaen el caso de registeroencondicionesnormales.Unuso
muycomún enel que se suele empleareste modificador,esparaaccedera variablesque están
siendoutilizadaspordriversoporperiféricos,yaque si nodeclarásemosestapropiedad,
podría darse el caso que la CPU usase el valorde la variable,porloque la caché guardael
valor,y poco despuéslaCPUusase de nuevodichavariable,perocomoéstaestáencache, la
CPU coge el valorque existe enlacaché,que puede serbiendistintaal real puestoque un
posible periféricopuedehabermodificadosuvalor.
§El Modificadorstatic[editar]
Dependiendodel entornodonde se declarelavariable que lamodifiquemoscomostatic,
puede significardoscosasmuydistintas:
Si declaramosunavariable staticdentrodel cuerpode una función,loque estamos
indicándole al compiladoresque dichavariable seainicializadasolounavez(laprimeravez
que se llamaa lafunción),yel restode vecesque se llame ala función,lavariable contendráel
últimovalorasignado.Estavariable sólopodráservisibledesdelafunciónque declaradicha
variable.Porejemplo:
voidmifuncion(){
staticinti=0;
cout<<"En la entradai vale "<<i<<endl;
for(intj=0;j<10;j++)
i++;
cout<<"En la salidai vale "<<i<<endl;
}
Si declaramosunavariable staticfueradel cuerpode una función,loque le estamosindicando
al compilador,esque dichavariable esprivadaparael modulodonde se implementael código
del contextode lavariable,esdecir,que otroficheroobjetobinario,nopodráteneraccesoa
dichavariable utilizandoel modificadorextern.Ejemplo:
#import"prueba.h"
//variable privadaparaprueba.cpp
staticint i=0;
voidmifuncion(){
cout<<"En la entradai vale "<<i<<endl;
for(intj=0;j<10;j++)
i++;
cout<<"En la salidai vale "<<i<<endl;
}
Tengaen cuentaque para este últimocaso,ustedpodráaccedera la variable ydesde
cualquierfunciónque definadentrode prueba.cpp,peronotendráaccesodesde cualquier
ficheroobjetoofuente que noseaprueba.cpp
§Espacio que ocupanla variables(enmáquinasx86)[editar]
El espacioenbitsque ocupanenla computadorauna variable de este tipose puede verenla
siguiente tabla:
Tipo Númerode Bits
char 8
short 16
int 32
longint64
float 32
double 64
§Rango de losTiposPrimitivos[editar]
El rango que puede almacenarlostiposprimitivosenC++ esmuyimportante,parapodersaber
cual esel rango de valoresque puede almacenaruntipoesnecesarioconocerel númerode
bitsdel tipo.El caso para enterosypara flotantesesdistinto.Paraenterosse debe sabersi el
tipoescon signoo sinsigno.si es sinsignoel rangode valoresque puede almacenaresel
siguiente:
[0 , 2^{Bits} - 1 ]
Si el tipoes con signoel rangoes el siguiente
[-2^{Bits- 1} , 2^{Bits - 1} - 1]
Para ilustrarloanteriorsupongamosque tenemosunenterode 16bitssinsigno,entoncesel
rango de valoresque puede almacenaresel siguiente:
[0 , 2^{16} -1] = [0 , 65535]
Para obtenerel rangode un enterode 32 bitscon signose puede realizarel siguientecalculo:
[-2^{31} , 2^{31}-1] = [-2147483648 , 2147483647]
El caso de losnúmerosflotantesesdistintoydependeengranmaneradel compiladoryel
procesadorque este utilizando.Sinembargohoyendíala mayoría de loscompiladoresylos
procesadoresutilizanenestándarde laIEEE para representaciónencomaflotante.Parasaber
mas al respectoverIEEE floating-pointstandard.
§Tiposenumerados(enum)[editar]
Los tiposenumeradossonunmecanismousadoenCy C++ con el objetivode agruparde
algunamaneraconstantessimbólicas.Paradefinirtiposenumeradosse usalapalabra
reservadaenum.
Ejemplo1
enumdias{ domingo,lunes,martes,miercoles,jueves,viernes,sabado};
En el ejemploanteriorse definepormediode enumel tipoenumeradodias,enel mismo
ejemplose debe observarque dentrode laconstrucciónse definenlasconstantessimbólicas:
domingo,lunes,...sabado;yque a lasmismasel compiladorlesasignarárespectivamentey
por defectolosvalores:0,1, 2, 3, 4, 5, 6. Es decir,lasconstantesmencionadaspuedenusarse
dentrodel programay este sabrá a que valorhace referenciacadaunade las mismas.Por
ejemplo, lainstrucción:cout<< domingo;desplegará0 enla pantalla.El siguienteejemplo
muestracomo usarlas constantesenumeradasenunciclofor.
for (intd= domingo;d<= sabado;d++) cout << d;
En el siguiente ejemplose definepormediode enumel tipoenumeradocolores,enel mismo
se debe de observarlaelinacióndel comportamientopordefectoyaque a laprimera
constante (gris) se le asignaenformaespecíficael valorde 7, de tal maneraque la siguiente
constante (grisoscuro) tendráunvalorigual a8 y la constante amarilloseráigual a14.
Ejemplo2
enumcolores{ gris = 7, grisoscuro,amarillo=14 };
§Tiposdefinidosporel usuario[editar]
En muchas ocasionesdescubriremosque lostiposprimitivosnobastanpara llevaracabo
ciertastareas,debidoaestoel lenguaje C,C++ da el soporte necesarioparaque el
programadordefinasuspropiostipos.Paradefinirtiposse usalapalabrareservadatypedef.
Por ejemplo,si deseamos definiruntipode dato llamadoenteropodemosusarlasintaxis:
typedef intentero;
Luego,podremosdeclararvariables,constantesyfuncionesdel tipoentero.Porejemplo,
enteroedad= 33;
Un uso más útil ycomún esel empleode typedef paradefinirdatosestructurados.Por
ejemplo, supongamosque deseamosdefiniruntipoestructuradollamadopersonayque
contenganombre,edadysexo.Entoncespodemosdefinirpersonacomo:
typedef structpersona{
char nombre[32];
int edad;
char sexo;
};
Una vez que untipoya se ha definido,el mismopuede emplearse paradeclararvariablesy
constantesde este.Porejemplo,conlainstrucción:
personahombre;
se está declarandolavariable hombre del tipopersona.Luego,paraaccedera cada elemento
de la variable hombre usaremosunmecanismoconocidocomodireccionamientodirectopor
mediodel carácterde punto ( . ). Por ejemplo,laedadde hombre se debe indicarcomo:
hombre.edad
§Variablesyconstantes[editar]
Una variable,comosunombre lo indica,esundeterminadoobjetocuyovalorpuede cambiar
durante el procesode una tareaespecífica.Contrarioauna variable,unaconstante esun
determinadoobjetocuyovalornopuede seralteradodurante el procesode unatarea
específica.EnC, C++ para declararvariablesnoexiste unapalabraespecial,esdecir,las
variablesse declaránescribiendoel tiposeguidode unoomás identificadoresonombresde
variables.Porotrolado,para declararconstantesexiste lapalabrareservadaconst,asícomola
directiva#define.A continuaciónse muestranejemplosde declaraciónde variablesy
constantes.
Variables Constantes Constantes
inta; const inta = 100; #define a100
floatb; const floatb= 100; #define b100
Notas:
A diferenciade lasconstantesdeclaradasconlapalabraconst lossímbolosdefinidoscon
#define noocupanespacioenlamemoriadel códigoejecutable resultante.
El tipode la variable oconstante puede sercualquierade loslistadosenTiposprimitivos, o
biende untipo definidoporel usuario.
Las constantessonusadasa menudoconun doble propósito,elprimeroesconel finde hacer
más legibleel códigodel programa,esdecir,si se tiene (porejemplo) laconstante numerica
3.1416 y estarepresentaal númeropi,entoncespodemoshacerdeclaracionestalescomo:
#define pi 3.1416
En este caso podremosusarla palabrapi en cualquierparte del
programa y el compiladorse encargaráde cambiar dichosimbolopor3.1416.
o bien,
const pi = 3.1416;
En este otro caso podremosusarlapalabra pi encualquierparte del programay el compilador
se encargará
de cambiar dichosímboloporuna referenciaala constante pi guardadaenla memoria.
Programa suma de dos
“1”
En Lenguaje C
#include<stdio.h>
#include<conio.h>
voidmain()
{
intn1,n2;
printf ("Primernumero:");
scanf ("%d",&n1);
printf ("Segundonumero:");
scanf ("%d",&n2);
printf ("Lasuma es:%d",n1+n2);
getch();
}
“2”
este esel códigoenc++
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
floata,b,c;
printf ("introduce el primernumero");
scanf ("%f",&a);
printf ("introduce el segundonumero");
scanf ("%f",&b);
c=a+b;
printf ("susumaes = %f",c);
getch();
}
“3”
Visual Basic
Metesdos cajasde texto
un Botónde comando
Código:
private subCommand1_Click()
msgbox Val(text1) +val(text2)
End sub
ESTO SERIA LA MANERA ,MAS SENCILLA DE HACERLO, CLAROESTÁ, SIN VALIDARNADA (ES
DECIR, SINO METES NÚMEROS Y DASCLIC DARÁ ERROR)
Perosi metes dosnúmerosy dasclic tododeberíair bien
“4”
estabiente escribire el codigoenvisual basic6.0
tendrasque hacer 2 cajas de texto(paralonumerosasumar),un label(mostrarel resultado) y
un button(oprimirparainiciarlasuma).
' estosonsolo comentarios,conestacomillasimple'
dimnum_1 as integer
dimnum_2 as integer'declarandolasvariables'
dimsuma as integer
subprogram clickbutton1 'iniciaprocedimiento'
suma=num1+ num2 'sumandolosnumeros'
label.caption=suma'muestraen el labelel resultadode lasuma'
endsub'terminael procedimiento'
y listo,enrealidadnoesnadadificil,esunbuenlenguaje paraprogramar.

Más contenido relacionado

La actualidad más candente

Curso puppet lenguaje_2
Curso puppet lenguaje_2Curso puppet lenguaje_2
Curso puppet lenguaje_2
martacdehesa
 
Manual de Lenguaje Batch
Manual de Lenguaje BatchManual de Lenguaje Batch
Manual de Lenguaje Batch
Mauricio Melo
 
Sandra saldaña instalarunix
Sandra saldaña instalarunixSandra saldaña instalarunix
Sandra saldaña instalarunix
sandrasal23
 

La actualidad más candente (16)

Sistema operativo NachOS
Sistema operativo NachOSSistema operativo NachOS
Sistema operativo NachOS
 
Iniciacion a-python-3-freelibros.com
Iniciacion a-python-3-freelibros.comIniciacion a-python-3-freelibros.com
Iniciacion a-python-3-freelibros.com
 
Gestionando servidores con Puppet
Gestionando servidores con PuppetGestionando servidores con Puppet
Gestionando servidores con Puppet
 
Curso puppet lenguaje_2
Curso puppet lenguaje_2Curso puppet lenguaje_2
Curso puppet lenguaje_2
 
Azucenabarzola
AzucenabarzolaAzucenabarzola
Azucenabarzola
 
Manual de Lenguaje Batch
Manual de Lenguaje BatchManual de Lenguaje Batch
Manual de Lenguaje Batch
 
Screencast aprende python - anexo python en winshit
Screencast   aprende python - anexo python en winshitScreencast   aprende python - anexo python en winshit
Screencast aprende python - anexo python en winshit
 
Como instalar unix erazo gloria
Como instalar unix erazo gloriaComo instalar unix erazo gloria
Como instalar unix erazo gloria
 
Utilerias de windows y terceros
Utilerias de windows y tercerosUtilerias de windows y terceros
Utilerias de windows y terceros
 
Matlab 2 Capitulo 2
Matlab 2 Capitulo 2Matlab 2 Capitulo 2
Matlab 2 Capitulo 2
 
Como instalar Prolog en Windows
Como instalar Prolog en WindowsComo instalar Prolog en Windows
Como instalar Prolog en Windows
 
Viviana medina MATERIA
Viviana medina MATERIAViviana medina MATERIA
Viviana medina MATERIA
 
Exploits y stack overflows en windows 2017
Exploits y stack overflows en windows 2017Exploits y stack overflows en windows 2017
Exploits y stack overflows en windows 2017
 
Sandra saldaña instalarunix
Sandra saldaña instalarunixSandra saldaña instalarunix
Sandra saldaña instalarunix
 
Instalar unixElvis Urquizo
Instalar unixElvis UrquizoInstalar unixElvis Urquizo
Instalar unixElvis Urquizo
 
Doc. bismarck brito
Doc. bismarck britoDoc. bismarck brito
Doc. bismarck brito
 

Destacado

Seminario iii
Seminario iiiSeminario iii
Seminario iii
lauvazarz
 
Keychoices
KeychoicesKeychoices
Keychoices
caldinio
 

Destacado (20)

Información del proyecto a la Comunidad Tecnológico AITEC
Información del proyecto a la Comunidad Tecnológico AITECInformación del proyecto a la Comunidad Tecnológico AITEC
Información del proyecto a la Comunidad Tecnológico AITEC
 
Html
Html Html
Html
 
Piramide. embudo & diamante
Piramide. embudo & diamante Piramide. embudo & diamante
Piramide. embudo & diamante
 
Test 1
Test 1 Test 1
Test 1
 
R
RR
R
 
Followership
FollowershipFollowership
Followership
 
Seminario iii
Seminario iiiSeminario iii
Seminario iii
 
Sistema jurídico en el ecuador
Sistema jurídico en el ecuadorSistema jurídico en el ecuador
Sistema jurídico en el ecuador
 
Keychoices
KeychoicesKeychoices
Keychoices
 
Ensayo
Ensayo Ensayo
Ensayo
 
Entrevista vigilante
Entrevista vigilante Entrevista vigilante
Entrevista vigilante
 
Entrevista y encuesta grupal
Entrevista y encuesta grupal Entrevista y encuesta grupal
Entrevista y encuesta grupal
 
Sistema jurídico en el ecuador
Sistema jurídico en el ecuadorSistema jurídico en el ecuador
Sistema jurídico en el ecuador
 
初審
初審初審
初審
 
Requerimientos y Recolección de Información
Requerimientos y Recolección de InformaciónRequerimientos y Recolección de Información
Requerimientos y Recolección de Información
 
B0560816
B0560816B0560816
B0560816
 
Ficha técnica de equipos de computo full
Ficha técnica de equipos de computo full Ficha técnica de equipos de computo full
Ficha técnica de equipos de computo full
 
Proyecto creación club fútbol FPI
Proyecto creación club fútbol FPIProyecto creación club fútbol FPI
Proyecto creación club fútbol FPI
 
Janecek karel
Janecek karelJanecek karel
Janecek karel
 
Hoja de vida kam
Hoja de vida kam Hoja de vida kam
Hoja de vida kam
 

Similar a Libreria (20)

PRUEBA OFIMATICA WEB
PRUEBA OFIMATICA WEBPRUEBA OFIMATICA WEB
PRUEBA OFIMATICA WEB
 
Taller html valentina montoya
Taller html  valentina montoyaTaller html  valentina montoya
Taller html valentina montoya
 
Taller html valentina montoya
Taller html  valentina montoyaTaller html  valentina montoya
Taller html valentina montoya
 
Taller html yuliana monsalve
Taller html yuliana monsalveTaller html yuliana monsalve
Taller html yuliana monsalve
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
Archivo power
Archivo powerArchivo power
Archivo power
 
Framework
FrameworkFramework
Framework
 
Manual de-c-dev
Manual de-c-devManual de-c-dev
Manual de-c-dev
 
Manual C++ 3ra parte
Manual C++ 3ra parteManual C++ 3ra parte
Manual C++ 3ra parte
 
/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp
 
Cursocpp
CursocppCursocpp
Cursocpp
 
2154086 curso-c-c-con-clase
2154086 curso-c-c-con-clase2154086 curso-c-c-con-clase
2154086 curso-c-c-con-clase
 
Cursocpp
CursocppCursocpp
Cursocpp
 
Practicas bloque 1
Practicas bloque 1Practicas bloque 1
Practicas bloque 1
 
Accesorios de windows
Accesorios de windowsAccesorios de windows
Accesorios de windows
 
Que son los archivos batch
Que son los archivos batchQue son los archivos batch
Que son los archivos batch
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Manual Bàsic PS Tools
Manual Bàsic PS ToolsManual Bàsic PS Tools
Manual Bàsic PS Tools
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
Linux
LinuxLinux
Linux
 

Más de Katherine Arenas Marin (14)

Mi Historia De Vida
Mi Historia De VidaMi Historia De Vida
Mi Historia De Vida
 
Uml Caso De Uso
Uml Caso De Uso Uml Caso De Uso
Uml Caso De Uso
 
TGS
TGSTGS
TGS
 
Test 2
Test 2 Test 2
Test 2
 
Reconociendo Nuestro Entorno Socioeconómico
Reconociendo Nuestro Entorno SocioeconómicoReconociendo Nuestro Entorno Socioeconómico
Reconociendo Nuestro Entorno Socioeconómico
 
Recoleccion de Datos
Recoleccion de DatosRecoleccion de Datos
Recoleccion de Datos
 
Que es HTML
Que es HTMLQue es HTML
Que es HTML
 
Mapa conceptual
Mapa conceptual Mapa conceptual
Mapa conceptual
 
Conceptualización de sistemas
Conceptualización de sistemas Conceptualización de sistemas
Conceptualización de sistemas
 
Casos de uso
Casos de uso Casos de uso
Casos de uso
 
C++
C++ C++
C++
 
Algoritmos kam
Algoritmos kamAlgoritmos kam
Algoritmos kam
 
Actividad de apropiación del conocimiento
Actividad de apropiación del conocimiento Actividad de apropiación del conocimiento
Actividad de apropiación del conocimiento
 
Deberes y Derechos Del Sena
Deberes y Derechos Del SenaDeberes y Derechos Del Sena
Deberes y Derechos Del Sena
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
zulyvero07
 

Último (20)

TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 

Libreria

  • 1. Libreria: assert ctype errno limits locale setjmp signal stdarg stddef stdio stdlib string ¿Qué es una clase? Visual Studio2008 Otras versiones Actualización:noviembre 2007 En estalección,aprenderáautilizarclasespararepresentar objetosensusprogramas. Comoaprendióenunalecciónanterior,losprogramasde Visual Basicse generanconobjetos como formulariosycontroles.Losobjetostambiénse puedenutilizarpararepresentarcosas realescomopersonas,equiposinformáticosoinclusoalgomásabstracto,comouna cuenta bancaria. Una clase es simplementeunarepresentaciónde untipode objeto;piense enellacomoun planoque describe el objeto.Asícomounplanopuede utilizarse paraconstruirvariosedificios, una clase puede utilizarse paracrearvariascopiasde unobjeto. Aunque puede que nose hayadadocuenta,ya ha utilizadolasclases.Porejemplo,el control TextBox lodefine unaclase TextBox,que definesuaspectoysus funciones.Cadavezque arrastra un control TextBox a unformulario,realmente estácreandounanuevainstanciade la clase TextBox. Cada control TextBox esunacopia exacta,aunque distinta,de laclase que lodefine,laclase TextBox.Puestoque cadaobjetoesuna"instancia"independientede unaclase,laacciónde crear una clase se denominacreaciónde instancias.
  • 2. Hasta ahora ha agregadoloscontrolesTextBox asu formularioarrastrándolosdesde el Cuadro de herramientas,perotambiénpuede crearinstanciasde unobjetoTextBoxensucódigosi utilizalapalabraclave New. VB DimTextbox1AsNewTextBox Obtendrámásinformaciónsobre creary utilizarlasclasesenlasleccionessiguientes. ¿Qué hay dentrode una clase? En una lecciónanterior,Informacióndetallada:comprenderpropiedades,métodosy eventos, aprendióque todoslosobjetostienenpropiedadesque describensusatributos,métodosque definensusaccionesyeventosque definensusrespuestas.Igualmente,laclase que define un objetotiene suspropiaspropiedades,métodosyeventos( avecesllamadosmiembros)que se pasan a todaslas instanciasde esaclase. Por ejemplo,unaclase que representaunacuentabancariapodría tenerpropiedadescomo AccountNumberoAccountBalance,métodoscomoCalculateInterestyeventoscomo BalanceChanged.Unavezcreadala instanciade unobjetode cuentabancaria,puede tener acceso a suspropiedades,métodosyeventosde igual maneraque si se tratara de un objeto TextBox. Algunosmiembrosde unaclase sonprivados;sólose tiene accesoaellosmediante código dentrode la clase.Porejemplo,unaclase de cuentabancariapuede tenerunmétodopara calcularun saldo.Lo lógicoespermitirque unprogramaleaese balance perono que pueda cambiarlodirectamente. Puede ocultarlosmiembrosde unaclase si losdeclaracomo Private oexponerlossi losdeclara como Public.Tambiénpuede permitirel accesoauna propiedadya lavezimpedirque el programa cambie suvalordeclarándolocomoReadOnly.El códigosiguiente muestracómo podría seruna clase BankAccount. VB ClassBankAccount Private AccountNumberAsString Private AccountBalance AsDecimal PublicSubUpdateBalance() ' add code to recalculate balance. End Sub ReadOnlyPropertyBalance()AsDecimal Get
  • 3. ReturnAccountBalance EndGet End Property End Class fichero Un ficheroo archivoesun sistemareal ovirtual de organizaciónde lainformaciónmediante una clasificacióndeterminada. Se le llamafichero a unconjuntode informaciónclasificadayalmacenadade diversasformas para su conservaciónyfácil accesoencualquiermomento. Un ficheropuede serunsistemade archivosfísicoscontenidosencajasuotroselementosde almacenamientoque formanparte de unconjuntomayorcomo una bibliotecaoarchivo públicooprivado.A menudo,el ficheroutilizaunataxonomíaosistemade clasificacióncomún para todossus contenidosque permitenlabúsquedade datosespecíficosde formarápiday sencilla.El máscomúnes el ordenalfabéticoporconceptooautor,perotambiénpuede clasificarse lainformaciónsegúnáreastemáticas,porordencronológicouotroscriterios dependiendode lainformacióncontenidaenel fichero. En informática,unarchivoo fichero tambiénesunconjuntode informaciónque se almacena enforma virtual paraser leídoy/oaccedidopormediode una computadora. Las posibilidadesde almacenamientoyclasificaciónsonmuchomásricas enun sistema informático,yaque lainformaciónnoocupaun espaciofísicoy,por ende,esposible conservar millonesde datosenundispositivomuypequeño.Inclusive,se puede guardarinformaciónde texto,audioovideoenunmismolugarsininconveniente alguno. A su vez,el sistemasueleorganizartaxonómicamentelainformaciónenformaautomática, permitiendoque el usuariolaencuentreconsóloingresarpalabrasclave enunbuscador específico,locual supone unaoperaciónrápidayútil cuandola informaciónalmacenadaes múltiple.A suvez,lossistemas informáticossuelenreplicarlosficherosfísicosy,así,organizar el contenidoencarpetasysubcarpetascreadasy administradasporel usuarioque son ubicadasenel discointernoyque puedenserabiertasmediante accesosdirectosdispuestos enel escritoriovirtual del ordenador. Procesode desarrollode unprograma[editar] Si se deseaescribirunprogramaenC++ se debe ejecutarcomomínimolossiguientespasos: Escribircon un editorde textoplanounprogramasintácticamente válidoousarun entornode desarrollo(IDE) apropiadoparatal fin Compilarel programay asegurarse de que nohan habidoerroresde compilación
  • 4. Ejecutarel programa y comprobarque no hay erroresde ejecución Este últimopasoesel más costoso,por que enprogramas grandes,averiguarsi hayo no un falloprácticamente puedeserunatareatotémica. Comoejemplo,si se deseaescribirunarchivoconel nombre hola.cppyen él escribirun programa con emacs,por ejemplo,que esunprogramade ediciónde textos,se puede,en GNU, ejecutarel siguientecomando: $emacs hola.cpp& Para otros sistemasoperativosuotrosentornosde desarrollo,nonecesariamentese sigue este paso. A continuaciónse escribe el siguiente códigoenC++: Ejemplo // Aquí generalmente se suele indicarqué se quiere conel programaa hacer // Programa que muestra'Holamundo'por pantallay finaliza // Aquí se sitúantodaslas libreriasque se vayanausar con #include, // que se verá posteriormente // Las libreriasdel sistemasonlassiguientes #include <iostream> // Funciónmain // Recibe:void // Devuelve:int // Funciónprincipal,encargadade mostrar"HolaMundo",porpantalla int main(void)
  • 5. { // Este tipode líneasde códigoque comienzanpor'//' soncomentarios // El compiladorlosomite,ysirvenparaayudar a otrosprogramadoreso // a unomismoencaso de volverarevisarel código // Es una prácticasana ponercomentariosdonde se necesiten, std::cout<< "HolaMundo" << std::endl; // Mostrar por std::cout el mensaje HolaMundoy comienzaunanuevalínea return0; // se devuelve un0. //que eneste casoquiere decirque lasalidase ha efectuadoconéxito. } Mediante simple inspección,el códigoparece enorme,peroel compiladorloúnicoque leerá para la creacióndel programaes losiguiente: Ejemplo #include <iostream> int main(void){ std::cout<<"HolaMundo" << std::endl;return0;} Comose puede observar,este códigoyel original nodifierenenmuchosalvoenlossaltosde líneay que loscomentarios,de losque se detallanposteriormente,estánomitidosytansólo ha quedado"el esqueleto"del códigolegible parael compilador.Parael compilador,todolo demás,sobra. O este otro,que es,enparte, comoel lenguaje C,ensuversiónC99, es: Ejemplo
  • 6. #include <stdio.h> #include <stdlib.h> int main(void) { printf( "HolaMundon"); returnEXIT_SUCCESS; // 'EXIT_SUCCESS' esuna definiciónque estádentrode 'stdlib.h' // tambienfuncionareturn0 } Nota:si se usa Windows,el códigoesel mismo,perodebemosagregarunmetodomaspara que el programa se mantengaabiertoyno se cierre la consola,cosaque en GNU, no es necesariaporque la consolaya estaabierta(al mandara ejecutar). Para estopodemosusarcin.get() que nospermitiraleerdel teclado,porloque el programano finalizara,hastaque el usuariopulse enter. Ejemplo #include <iostream> int main(void) { std::cout<< "Hola Mundo"<< std::endl; std::cin.get(); //con 'std::cin.get();'loque se hace esesperarhasta que el usuariopulse enter. return0;
  • 7. } Los pasossiguientessonparaunacompilaciónenGNUo sistemaoperativoUnix.EnWindows tampocoes aplicable. Con ctrl-x ctrl-sse guarda el archivo.Ahorapara generarel ejecutable delprogramase compila con g++ de la siguienteforma: $ g++ hola.cpp -ohola Para poderverlosresultadosdel programaenacción,se ejecutael programade lasiguiente forma: $./hola Y a continuaciónse debe mostraralgocomo losiguiente: Hola Mundo §Comentarios[editar] Cuandose escribenprogramasesmuyútil agregar comentariosque ayudenaexplicarloque realizaunprograma.En C++ se puedenutilizartrestiposde comentarios:al estiloC,al estilo C++ y usando preprocesador. Los comentariosal estiloCse caracterizanpor losiguiente:comenzarel "bloque"de comentarioscon/* y terminardicho"bloque"de comentarioscon*/ Ej: /* Este es un comentarioal estiloC. Todo loescritodentrode lasetiquetasde aperturaycierre esun comentario.
  • 8. A estoscomentariosse le llamanmultilinea,logicamente por el hechode permitirvariaslineasde comentarios. */ Si se usaneste tipode etiquetasde comentarios,hayque tenercuidadoconel cierre (*/),por que el compiladorpuede tomartodoel textocomocomentario,ocerrar antesde lodeseado. Usando el estilode códigode C++ sólopuedenocuparunalíneacomo enel siguiente código: // Este esun comentarioal estiloC++ Una buenapráctica de programaciónes pensarque se programa a sabiendasde que otro programador,tal vezel lectormismoenunfuturo,tengaque "desencriptar"qué quisohacer ahí y por qué. Otra posible formade comentarcódigoesusandoel preprocesador.Estose detallarámás adelante en profundidad,porahorala parte útil del preprocesadorque interesaesla siguiente: #if 0 Comentariossobre el programa/parte del programa. Puedenocuparmúltipleslíneas. Más complicadode visualizarque loscomentariosC/C++ #endif Este tipode comentariosse usanrara vez.Generalmentesondifícilesde localizar,inclusopara programadoresexperimentadosque trabajanenpapel,ysonfácilesde distinguirencasi cualquierIDE.Es recomendableindicarque se tratande comentarios,odirectamente no usarlos,salvosi songrandescantidadesde comentarios.Se verámásadelante que también puede tenerotrosusos.
  • 9. §Utilizaciónde laconsolao terminal[editar] En losejemplosanterioresse utilizaron'std::cout'.'std::cout'esun"objeto"que permite escribirenlaconsola(laterminal enGNU/Unix/MacOSX),solose puedeutilizargraciasaque se ha incluidodefinicionesde suusocon lalínea de código'#include <iostream>'. std::cout<< ALGO; Donde ALGO puede serloque seaque 'std::cout' seacapaz de mostrarpor consola.Más adelante se tratamás sobre el endetalle yaclarandoposiblesdudasque ahorapuedansurgir. Tambiénse utilizó'std::endl',estopermite que el textose escribaenunanuevalínea. Un ejemplomáscompletosobre laescrituraenconsolaesel siguiente.Hade tenerse en cuentaque se haneliminadoalgunoscomentariossuperfluosdel primerprogramadebidoa que ahora se está tratandocon más detalle acercadel usode imprimirtextoenlaconsola: Ejemplo // Programa que muestradiversostextosporconsola // Las libreríasdel sistemausadassonlassiguientes #include <iostream> // Función:main // Recibe:void // Devuelve:int // Es la funciónprincipal encargadade mostrarporconsoladiferentestextos int main(void) { // Ejemploconunaúnica línea,se muestrael usode std::couty std::endl std::cout<< "Bienvenido.Soyunprograma.Estoyenuna lineade codigo."<< std::endl; // Ejemploconunaúnica líneade códigoque se puede fraccionarmediante el usode '<<'
  • 10. std::cout<< "Ahora" << "estoyfraccionadoenel codigo,peroenlaconsolame muestrocomo unaunica frase." << std::endl; // Uso de un códigolargo,que cuestaleerpara un programador,yque se ejecutarásin problemas. // *** Nose recomiendahacerlíneasde estamanera,estaformade programar no es apropiada*** std::cout<< "Un gran textopuede ocuparmuchaslineas." << std::endl << "Peroesono frenaal programador a que todose puedaponerenuna unica lineade codigoy que" << std::endl << "el programa,al ejecutarse,lositue comoel programadorquiso" << std::endl; return0; //Y se terminacon éxito. } Se reta a compilareste códigoya observarsusresultados.Eneste momentoel lectorestá capacitadopara escribirprogramasque imprimanporpantallael mensaje que se quiera. Atención:Se hace hincapié enlaposibilidadde que laspalabrasacentuadasnose puedan mostrar enla consola.Depende completamente del compiladorel que se puedaverlo siguiente: std::cout<< "programación"; Con algunoscompiladores,verá'programación',peroconotrospuede verincluso'programaci n'.
  • 11. Advertencia:coutpuede serutilizadosintenerstd::de formapreviaporque se puede introducirunadirectiva,denominada'using',que acomodatodosloscout.De otro modo habría un error de compilador.Este temase trata endetalle másadelante. usingnamespace std; §Sintaxis[editar] Sintaxiseslaformacorrecta enque se debenescribirlasinstruccionesparael computadoren un lenguaje de programaciónespecífico.C++heredalasintaxisde Cestándar,esdecir,la mayoría de programas escritosparael C estándarpuedensercompiladosenC++. §El puntoy coma[editar] El puntoy coma esuno de los simbólosmásusadosenC, C++; y se usacon el finde indicarel final de unalíneade instrucción.El puntoycoma esde uso obligatorio. ejemplo ´´´´´´ clrscr();//Limpiarpantalla,funcionasoloconlalibreríaconiode BorlandC++ x = a + b; stringIP = "127.0.0.1"; // Variable IPtipostring cout << IP<< endl;//Devuelve 127.0.0.1 char Saludo[5] = "Hola";// Variable Saludotipochar cout << Saludo[0] << endl;//Igual a H cout << Saludo[1] << endl;//Igual a o cout << Saludo[2] << endl;//Igual a l cout << Saludo[3] << endl;//Igual a a
  • 12. El puntoy coma se usa tambiénparaseparar contadores,condicionalese incrementadores dentrode un sentenciafor ejemplo for (i=0;i < 10; i++) cout << i; §Espaciosy tabuladores[editar] Usar caracteres extrasde espaciadootabuladores( caracterestab ) esun mecanismoque nos permite ordenarde maneramásclara el códigodel programa que estemosescribiendo,sin embargo,el usode estosesopcional ya que el compiladorignoralapresenciade losmismos. Por ejemplo,el segundode losejemplosanterioresse podríaescribircomo: for (inti=0; i < 10; i++) { cout << i * x; x++; } y el compiladornopondríaningúnreparo. §Tiposprimitivos[editar] En un lenguaje de programaciónesindispensable poder almacenarinformación,paraestoen C++ estándisponibleslossiguientestiposque permitenalmacenarinformaciónnuméricade tipoenteroo real: Nombre Descripción Tamaño* Rango de valores* char Carácter o enteropequeño 1byte con signo:-128 to 127 sinsigno:0 a 255 short int(short)Enterocorto 2bytes con signo:-32768 a 32767 sinsigno:0 a 65535 int Entero 4bytes con signo:-2147483648 a 2147483647
  • 13. sinsigno:0 a 4294967295 longint(long) Enterolargo 8bytes con signo:-2147483648 a 2147483647 sinsigno:0 a 4294967295 bool Valorbooleano.Puedetomardosvalores:verdaderoofalso 1byte true o false float Númerode puntoflotante 4bytes 3.4e +/- 38 (7 digitos) double De puntoflotante de doble precisión 8bytes 1.7e +/- 308 (15 digitos) longdouble Long de puntoflotante de doble precisión 8bytes 1.7e +/- 308 (15 digitos) Los valoresdependende laarquitecturautilizada.Losmostradossonlosque generalmentese encuentranenunamáquinatípica de arquitectura32 bits. §El modificadorlong[editar] El modificadorlongle indicaal compiladorque el tipodebe utilizarmásbitsque los normalmente utilizadosporejemplosi tenemosenunamaquinade 32 bitscomo un Pentium de Intel,normalmentede unintocupara32 bits,perosi al declararloun enterole antecedemoslongel enteroocupa64 bits,el siguiente códigomuestracomoutilizareste modificador: intcorto; // Enterode 32 bits longintlargo;// Enterode 64 bits §El Modificadorshort[editar] Similaral anterior,peroindicaque se debenutilizarmenosbits.Porejemplo,enun computadorde 32 bits,un shortint ocupa16 bits. §El Modificadorunsigned[editar]
  • 14. El modificadorunsignedesutilizadoúnicamente conlosenteros,suutilizaciónpermite utilizar enlosenterosúnicamente laparte positiva, inta; // Almacenavaloresentre -32768 y 32767 unsignedinta;// Almacenavaloresentre 0y65535 §El Modificadorregister[editar] Este modificadorsobre unavariable le indicaal compiladorque lavariable debe almacenarse enun registroenel compilador,que parael caso de losIA32, es unregistroreal de la propia CPU, y por tantoel tiempode accesoes másrápidorespectoa la memoriaRAM.Hoy endía apenasse utilizaeste modificador,yaque loscompiladoressoncapacesde determinarde maneraóptimala asignaciónde registrosavariablesdel programa. §El Modificadorvolatile[editar] Al contrarioque el modificadorregistrer,volatile obligaal compiladoraforzarel código resultante de maneraque lavariable modificadaconeste modificador,seaalmacenada siempre enlamemoria.El efectoque tiene esque cuandolavariable se modificaconotro valor,dichavariable se almacenadirectamente enmemoriaynoquedalocalizadoel valor sólo enel registrode la CPU como pasabaen el caso de registeroencondicionesnormales.Unuso muycomún enel que se suele empleareste modificador,esparaaccedera variablesque están siendoutilizadaspordriversoporperiféricos,yaque si nodeclarásemosestapropiedad, podría darse el caso que la CPU usase el valorde la variable,porloque la caché guardael valor,y poco despuéslaCPUusase de nuevodichavariable,perocomoéstaestáencache, la CPU coge el valorque existe enlacaché,que puede serbiendistintaal real puestoque un posible periféricopuedehabermodificadosuvalor. §El Modificadorstatic[editar] Dependiendodel entornodonde se declarelavariable que lamodifiquemoscomostatic, puede significardoscosasmuydistintas: Si declaramosunavariable staticdentrodel cuerpode una función,loque estamos indicándole al compiladoresque dichavariable seainicializadasolounavez(laprimeravez que se llamaa lafunción),yel restode vecesque se llame ala función,lavariable contendráel últimovalorasignado.Estavariable sólopodráservisibledesdelafunciónque declaradicha variable.Porejemplo: voidmifuncion(){
  • 15. staticinti=0; cout<<"En la entradai vale "<<i<<endl; for(intj=0;j<10;j++) i++; cout<<"En la salidai vale "<<i<<endl; } Si declaramosunavariable staticfueradel cuerpode una función,loque le estamosindicando al compilador,esque dichavariable esprivadaparael modulodonde se implementael código del contextode lavariable,esdecir,que otroficheroobjetobinario,nopodráteneraccesoa dichavariable utilizandoel modificadorextern.Ejemplo: #import"prueba.h" //variable privadaparaprueba.cpp staticint i=0; voidmifuncion(){ cout<<"En la entradai vale "<<i<<endl; for(intj=0;j<10;j++) i++; cout<<"En la salidai vale "<<i<<endl; } Tengaen cuentaque para este últimocaso,ustedpodráaccedera la variable ydesde cualquierfunciónque definadentrode prueba.cpp,peronotendráaccesodesde cualquier ficheroobjetoofuente que noseaprueba.cpp §Espacio que ocupanla variables(enmáquinasx86)[editar] El espacioenbitsque ocupanenla computadorauna variable de este tipose puede verenla siguiente tabla: Tipo Númerode Bits
  • 16. char 8 short 16 int 32 longint64 float 32 double 64 §Rango de losTiposPrimitivos[editar] El rango que puede almacenarlostiposprimitivosenC++ esmuyimportante,parapodersaber cual esel rango de valoresque puede almacenaruntipoesnecesarioconocerel númerode bitsdel tipo.El caso para enterosypara flotantesesdistinto.Paraenterosse debe sabersi el tipoescon signoo sinsigno.si es sinsignoel rangode valoresque puede almacenaresel siguiente: [0 , 2^{Bits} - 1 ] Si el tipoes con signoel rangoes el siguiente [-2^{Bits- 1} , 2^{Bits - 1} - 1] Para ilustrarloanteriorsupongamosque tenemosunenterode 16bitssinsigno,entoncesel rango de valoresque puede almacenaresel siguiente: [0 , 2^{16} -1] = [0 , 65535] Para obtenerel rangode un enterode 32 bitscon signose puede realizarel siguientecalculo: [-2^{31} , 2^{31}-1] = [-2147483648 , 2147483647] El caso de losnúmerosflotantesesdistintoydependeengranmaneradel compiladoryel procesadorque este utilizando.Sinembargohoyendíala mayoría de loscompiladoresylos procesadoresutilizanenestándarde laIEEE para representaciónencomaflotante.Parasaber mas al respectoverIEEE floating-pointstandard. §Tiposenumerados(enum)[editar] Los tiposenumeradossonunmecanismousadoenCy C++ con el objetivode agruparde algunamaneraconstantessimbólicas.Paradefinirtiposenumeradosse usalapalabra reservadaenum. Ejemplo1 enumdias{ domingo,lunes,martes,miercoles,jueves,viernes,sabado}; En el ejemploanteriorse definepormediode enumel tipoenumeradodias,enel mismo ejemplose debe observarque dentrode laconstrucciónse definenlasconstantessimbólicas:
  • 17. domingo,lunes,...sabado;yque a lasmismasel compiladorlesasignarárespectivamentey por defectolosvalores:0,1, 2, 3, 4, 5, 6. Es decir,lasconstantesmencionadaspuedenusarse dentrodel programay este sabrá a que valorhace referenciacadaunade las mismas.Por ejemplo, lainstrucción:cout<< domingo;desplegará0 enla pantalla.El siguienteejemplo muestracomo usarlas constantesenumeradasenunciclofor. for (intd= domingo;d<= sabado;d++) cout << d; En el siguiente ejemplose definepormediode enumel tipoenumeradocolores,enel mismo se debe de observarlaelinacióndel comportamientopordefectoyaque a laprimera constante (gris) se le asignaenformaespecíficael valorde 7, de tal maneraque la siguiente constante (grisoscuro) tendráunvalorigual a8 y la constante amarilloseráigual a14. Ejemplo2 enumcolores{ gris = 7, grisoscuro,amarillo=14 }; §Tiposdefinidosporel usuario[editar] En muchas ocasionesdescubriremosque lostiposprimitivosnobastanpara llevaracabo ciertastareas,debidoaestoel lenguaje C,C++ da el soporte necesarioparaque el programadordefinasuspropiostipos.Paradefinirtiposse usalapalabrareservadatypedef. Por ejemplo,si deseamos definiruntipode dato llamadoenteropodemosusarlasintaxis: typedef intentero; Luego,podremosdeclararvariables,constantesyfuncionesdel tipoentero.Porejemplo, enteroedad= 33; Un uso más útil ycomún esel empleode typedef paradefinirdatosestructurados.Por ejemplo, supongamosque deseamosdefiniruntipoestructuradollamadopersonayque contenganombre,edadysexo.Entoncespodemosdefinirpersonacomo: typedef structpersona{ char nombre[32]; int edad; char sexo; }; Una vez que untipoya se ha definido,el mismopuede emplearse paradeclararvariablesy constantesde este.Porejemplo,conlainstrucción: personahombre;
  • 18. se está declarandolavariable hombre del tipopersona.Luego,paraaccedera cada elemento de la variable hombre usaremosunmecanismoconocidocomodireccionamientodirectopor mediodel carácterde punto ( . ). Por ejemplo,laedadde hombre se debe indicarcomo: hombre.edad §Variablesyconstantes[editar] Una variable,comosunombre lo indica,esundeterminadoobjetocuyovalorpuede cambiar durante el procesode una tareaespecífica.Contrarioauna variable,unaconstante esun determinadoobjetocuyovalornopuede seralteradodurante el procesode unatarea específica.EnC, C++ para declararvariablesnoexiste unapalabraespecial,esdecir,las variablesse declaránescribiendoel tiposeguidode unoomás identificadoresonombresde variables.Porotrolado,para declararconstantesexiste lapalabrareservadaconst,asícomola directiva#define.A continuaciónse muestranejemplosde declaraciónde variablesy constantes. Variables Constantes Constantes inta; const inta = 100; #define a100 floatb; const floatb= 100; #define b100 Notas: A diferenciade lasconstantesdeclaradasconlapalabraconst lossímbolosdefinidoscon #define noocupanespacioenlamemoriadel códigoejecutable resultante. El tipode la variable oconstante puede sercualquierade loslistadosenTiposprimitivos, o biende untipo definidoporel usuario. Las constantessonusadasa menudoconun doble propósito,elprimeroesconel finde hacer más legibleel códigodel programa,esdecir,si se tiene (porejemplo) laconstante numerica 3.1416 y estarepresentaal númeropi,entoncespodemoshacerdeclaracionestalescomo: #define pi 3.1416 En este caso podremosusarla palabrapi en cualquierparte del programa y el compiladorse encargaráde cambiar dichosimbolopor3.1416. o bien, const pi = 3.1416; En este otro caso podremosusarlapalabra pi encualquierparte del programay el compilador se encargará de cambiar dichosímboloporuna referenciaala constante pi guardadaenla memoria.
  • 19. Programa suma de dos “1” En Lenguaje C #include<stdio.h> #include<conio.h> voidmain() { intn1,n2; printf ("Primernumero:"); scanf ("%d",&n1); printf ("Segundonumero:"); scanf ("%d",&n2); printf ("Lasuma es:%d",n1+n2); getch(); } “2” este esel códigoenc++ #include <stdio.h> #include <conio.h> #include <math.h> main() { floata,b,c; printf ("introduce el primernumero"); scanf ("%f",&a);
  • 20. printf ("introduce el segundonumero"); scanf ("%f",&b); c=a+b; printf ("susumaes = %f",c); getch(); } “3” Visual Basic Metesdos cajasde texto un Botónde comando Código: private subCommand1_Click() msgbox Val(text1) +val(text2) End sub ESTO SERIA LA MANERA ,MAS SENCILLA DE HACERLO, CLAROESTÁ, SIN VALIDARNADA (ES DECIR, SINO METES NÚMEROS Y DASCLIC DARÁ ERROR) Perosi metes dosnúmerosy dasclic tododeberíair bien “4” estabiente escribire el codigoenvisual basic6.0 tendrasque hacer 2 cajas de texto(paralonumerosasumar),un label(mostrarel resultado) y un button(oprimirparainiciarlasuma). ' estosonsolo comentarios,conestacomillasimple'
  • 21. dimnum_1 as integer dimnum_2 as integer'declarandolasvariables' dimsuma as integer subprogram clickbutton1 'iniciaprocedimiento' suma=num1+ num2 'sumandolosnumeros' label.caption=suma'muestraen el labelel resultadode lasuma' endsub'terminael procedimiento' y listo,enrealidadnoesnadadificil,esunbuenlenguaje paraprogramar.