Professional Documents
Culture Documents
INTRODUCCIONALAPROGRAMACIONENC
1Elementosqueformanunprogramaenc:
Escribaelsiguientecdigo:
/*Prog001.cpp*/
#include<stdio.h>
//1
voidmain()
//2
//3
printf("CursodeProgramacinEstructuradaenC");
//4
//5
Identifiquecadaunodesuscomponentes.
//1Archivosdecabecera:dondeseencuentranlasfuncionesdeCquesevanausar
//2Funcionmainoprogramaprincipal:siempredebedeexistir
//3Iniciodeprogramaprincipal
//4Sentenciasaejecutar
//5findeprogramaprincipal
2ManejodesalidadedatosestndarenC:
Escribaelsiguientecdigo:
/*Prog002.cpp*/
#include<stdio.h>
voidmain()
{
printf("\n");/*Lneaenblanco*/
//1
printf("SegundaLinea");
//2
//3
//4
printf("\nAhoraestamosenlacuartalnea");
//5
/***********************************
COMENTARIO
************************************/
printf("continuamosenla2lnea\n");
/*
Hastaluego
//6
....................................*/
}
Identifiquequeescadaunodesuscomponentes.Desdeel//1hastael//6.
3TiposdedatosenC:
Escribeelsiguientecdigo:
Prog003.cpp
/*Prog003.cpp*/
#include<stdio.h>
voidmain()
{
charnom[20];
printf("\nEscribetunombre:");
scanf("%s",nom);
printf("\nHola%s",nom);
}
EnellenguajeChaydostiposdedatos:ConstantesyVariables.
Enunprograma,unaconstanteesundatoquenopuedeservariadodurantesuejecucin.
El dato Escribe tu nombre: del PROG4 es una constante, ya que cada vez que ejecutamos el
programa,aparecelamismafrase:nohayposibilidaddecambiarla.
Enunprograma,unavariableesundatoquespuedecambiarmientrasseejecutaunprograma.
EldatonomdelPROG4esunavariable,yaquecadavezqueejecutamoselprogramaadquiere
elvalorcorrespondientealoqueescribimosantelaorden:Escribetunombre:
Lasentencia:charnom[20];
Define (declara) la variable nom, cuyo contenido sern caracteres (de ah la palabra char que
abrelalnea),enunnmeronosuperiora20.
Lasentencia:printf(\nHola%s,nom);
Elprintfencuestin,escribeenpantalladosdatos:UnaconstanteHolayelvalordelavariable
nom.
Elsmbolo%sesunindicadordeformato,quesirveparadeciralprintf,cmoqueremosquenos
muestreelvalordelavariablenom.Lasdelindicadorprovienedelapalabrastring(cadenaen
ingls).
Endefinitiva:printf(\nHola%s,nom);Escribeenpantallaunalneaenblanco,debidaa\n
Hola%s
%sSesubstituyeporelvalordelavariablenom
La sentencia: scanf(%s, nom); Inmovilizar la ejecucin del programa, hasta que nosotros
escribamosalgunacosa.
Loqueescribamosseguardarenlavariabledenombrenom
Hemos de introducir el indicador de formato: %s, correspondiente a datos tipo carcter para
queloqueescribamosseainterpretadocomounacadenadecaracteres.
Scanfigualqueprintfesunafuncindelficherodecabecera:stdio.h
4TiposdeDatos:
/*Prog004.cpp*/
#include<stdio.h>
voidmain()
{
floata,b,c;
printf("\nPrimersumando:");
scanf("%f",&a);
printf("\nSegundosumando:");
scanf("%f",&b);
c=a+b;
printf("\n\nLasumade%fy%fes%f",a,b,c);
}
Lasentencia:floata,b,c;Define(declara)3variables(a,byc)numricastipofloat(nmeros
reales).
TiposdeVariablesnumricasmsimportantes:
INT
nmeroentero
LONG
nmeroenterodedobleprecisin
FLOAT
nmeroreal
DOUBLE
nmerorealdedobleprecisin
Elindicadordeformato%enprintf()yscanf():
Lautilizacindevariablesfloat,determinaqueelindicadordeformatosea%f
Variable:
Indicadordeformato:
CHAR
%c
FLOAT
%f
INT
%d
DOUBLE
%s
%lf
Elsmbolo&
Unavariablesimpledebeaparecerenelscanfprecedidadelsmbolo&:scanf(%f,&b)
Si la variable es compuesta, como en el caso de un arreglo de caracteres, no es necesario el
smbolo&.
Lasentencia:c=a+b
Eslaformadeasignarelvalordeunavariable,apartirdelvalordeotras.
5Asignacindevariables:
/*Prog005.cpp*/
#include<stdio.h>
voidmain()
{
doublenum;
printf("\nEscribeunnmero=");
scanf("%lf",&num);
printf("\nElcuadradode%lfes%lf",num,num*num);
printf("\nElcubode%lfes%lf",num,num*num*num);
}
Observalasintxiscompletadeprintf:
6RangodeDatos.
/*Prog006.cpp*/
#include<stdio.h>
#include<values.h>
//1
voidmain()
{
printf("\nEscribeelmximonmeroentero:%d",MAXINT);
printf("\nEscribeelmximonmeroenterolargo:%ld",MAXLONG);
printf("\nEscribeelmnimonmerofloat:%e",MINFLOAT);
printf("\nEscribeelmximonmerofloat:%e",MAXFLOAT);
printf("\nEscribeelmnimonmerodouble:%e",MINDOUBLE);
printf("\nEscribeelmximonmerodouble:%e",MAXDOUBLE);
}
MAXINT,MAXLONG,MINFLOAT,MAXFLOAT,MINDOUBLE,MAXDOUBLEsonconstantesqueestn
definidasenelficherovalues.h,porlotantoparaquefuncioneelprogramanecesitamoslalnea:
#include<values.h>
//1
El cdigo de formato %e indica que queremos visualizar el nmero en notacin exponencial
(cientfica).
PROGRAMASPARACOMPROBACIONDEAPRENDIZAJE
1 El siguiente programa tiene errores. Escrbelo (grbalo con el nombre EVAL1A para generar
reportes)ycorrgeloparaquefuncione:
#include<stdio.h>
voidmain()
{
floatradio;
pi=3.141592
printf("Radio=");
scanf("%f",radio);
printf("\n\nLongitud=%f",2*pi*radio);
printf("\n\nrea=%f",pi*radio*radio);
}
2Hazunprogramaquefuncionedelasiguienteforma:
Elprogramanospidequeintroduzcamoslabasedeuntringulo.
Elprogramanospidequeintroduzcamoslaalturadeuntringulo.
Elprogramanosdaelresultadodelreadeltringulocorrespondiente.
GrabaelprogramaconelnombreEVAL1B.
3Hazunprogramaquesirvaparacalcularundeterminantede2orden.
Recuerda:
|ab|
|cd|esiguala:a*dc*b
GrabaelprogramaconelnombreEVAL1C
4Hazunprogramaquesirvaparacalcularelreayelpermetrodeunrectngulo.
(rea=basexalturayPerimetro=2veceslabase+2veceslaaltura)
GrabaelprogramaconelnombreEVAL1D
5Hazunprogramaquenospidaunnmeroenteroyacontinuacinelprogramanosescribelos2
enterossiguientesalquehemosintroducido.
GrabaelprogramaconelnombreEVAL1F
ESTRUCTURASDEPROGRAMACION
OperadoresLgicosyRelacionales
>,>=,<,<=
==
igualdad
!=
diferente
&&
yoANDlgico
||
ouORlgico
noonegacin
LaEstructuraIFELSE
/*Prog014.cpp*/
#include<stdio.h>
voidmain()
{
floata,b;
printf("\nEscribeelprimernmeroa=");
scanf("%f",&a);
printf("\nEscribeelsegundonmerob=");
scanf("%f",&b);
if(a==b)printf("\nLosdosnmerossoniguales\n");
if(a!=b)printf("\nLosdosnmerossondistintos\n");
if(a>b)printf("\nElnmero%fesmayorque%f\n",a,b);
elseprintf("\nElnmero%fnoesmayorque%f\n",a,b);
if((a>b)&&(100>a))
{
printf("\nElnmero%fesmayorque%f",a,b);
printf("\nAdemslosdossonmenoresde100");
}
else
{printf("\nElnmero%fnoesmayorque%f",a,b);
printf("Ounodelosdosnmerosesmayorde100");
}
}
Ejectaloenlossiguientescasos,observandodetenidamenteloqueaparece:
1)Sia=70yb=2
2)Sia=50yb=30
3)Sia=7yb=11
4)Sia=100yb=50
5)Sia=50yb=100
Observaelusodelosoperadoresrelacionalesylgicos.Observatambinquecadarelacinhemos
deencerrarlaentreparntesis.
Observaenprimerlugarlasintxisdiferenteentrelos4IFdelprograma:
Los2primerossonigualesymssimples:IF(condicin)sentencia;
Quequieredecir:Sisecumplelacondicinseejecutarlasentencia.
EltercerIF:
IF(condicin)sentencia1;
elsesentencia2;
Que quiere decir: Si se cumple la (condicin) se ejecutar la sentencia1, en caso contrario se
ejecutarlasentencia2.
ElcuartoIFeselmscompleto:
IF(condicin)
{
sentencia1;
sentencia2;
}
else
{
sentencia3;
sentencia4;
}
Que quiere decir: Si se cumple la condicin se ejcutar la sentencia1 y la sentencia2, en caso
contrarioseejecutarla3yla4.
LaEstructuraWHILE
/*Prog015.cpp*/
#include<stdio.h>
voidmain()
{intx;x=0;
while(x<6)
{printf("\nElvalordexes%d",x);
x=x+1;
}
}
LaestructuradeprogramacinWHILEes:
While(condicin)
{
sentencia1;
sentencia2;
sentencia3;
;
;
}
Quequieredecir:mientrassecumplalacondicin,ejecutalassentenciasquehayentrellaves.
Elcontador:
La sentencia x=x+1 se llama contador y es muy usada en programacin. Un contador se
incrementaodecrementasiempreenlamismacantidad.
/*Prog016.cpp*/
#include<stdio.h>
voidmain()
{
inti,j;
i=2;
j=7;
while(i<j)
{
printf("\ni=%dj=%d",i,j);
i++;
j;
}
}
i++
Esequivalenteaescribiri=i+1
Esequivalenteaescribirj=j1
Elacumulador.
sum=sum+num
Eslaformaqueconseguimosacumularenlasuma(variablesum)losdiferentesvaloresdenum.
pro=pro*num
Eslaformaqueconseguimosacumularenelproducto(variablepro)losvaloresdenum.
LaEstructuradeProgramacinFOR
/*Prog019.cpp*/
#include<stdio.h>
voidmain()
{
intx;
for(x=1;x<=10;x=x+1)
{
printf("\nEstructuraFOR");
printf("Ahorax=%d",x);
}
}
LaEstructuraFOR:
for(valorinicial;condicin;incremento)
{
sentencia1;
sentencia2;
;
;
}
Quequieredecir:Repitelaejecucindelassentenciasdeprogramaquehayencerradasentre
llaves,tantasvecescomoteindicoenvalorinicial,condicin,incremento.
for(x=1;x<=10;x=x+1)
Laslneasdeprogramadenuestroforserepetirn:desdex=1hastax=10de1en1,esdecir10
veces.
Siescribiramos:for(x=23;x<=76;x=x+4),querradecir:repitelaslneasdeprogramadesdex=23
hastax=76de4en4.
Siesunasolalasentenciaarepetirporelfor,noseencierraentrellaves.
LassentenciasBREAKyCONTINUE
/*Prog032.cpp*/
#include<stdio.h>
voidmain()
{
intx;
for(x=5;x<15;x++)
{
if(x==8)break;
printf("\nx=%d",x);
}
printf("\n\n");
for(x=5;x<15;x++)
{
if(x==8)continue;
printf("\nx=%d",x);
}
}
Lasentenciabreaknosobligaasalirdelciclofor.Porestaraznelprimerfordelprograma,slo
escribedel5hastael7.
Lasentenciacontinuesaltaalfinaldelcicloforycontinuaejecutandoelciclo.Porestaraznel
segundocicloforescribetodoslosnmerosdel5al14exceptuandoel8.
LaestructuradeprogramacinSWITCH
switch(x)
{
case valor1:
lnea de programa1;
lnea de programa2;
-----------------------;
-----------------------;
break;
case valor2:
lnea de programa3;
lnea de programa4;
-----------------------;
-----------------------;
break;
default:
lnea de programa1;
lnea de programa2;
-----------------------;
-----------------------;
break;
}
Segn el valor que tome la variable x, se ejecutarn las lneas de programa del case
correspondiente.Observaquecadacaseterminaconbreak.Silavariablexnotomael valorde
ningn case, se ejecutarn las lneas correspondientes al default, que termina con el
correspondientebreak.
Laestructuradeprogramacindowhile
LaestructuradeprogramacinDOWHILEes:
do
{
sentencia1;
sentencia2;
sentencia3;
;
;
}While(condicin)
/*Prog039.cpp*/
#include<ctype.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
voidmain()
{
charrespuesta;
floatx;
do
{
printf("Dameunnmero:");
scanf("%f",&x);
x=fabs(x);
printf("Suvalorabsolutoes:%f\n",x);
printf("Continuar...\n");
respuesta=toupper(getch());
//toupper()obtienelamaysculadeuncarcter
//siemprequeseaunaletra
}while(respuesta!='N');
}
PROGRAMASPARACOMPROBACIONDEAPRENDIZAJE
1Elsiguienteprogramatieneerrores.Escrbelo(grbaloconelnombreEVAL2Aparagenerar
reportes)ycorrgeloparaquefuncione:
/*eval2a*/
#include<stdio.h>
/*ConversindeTemperaturas
voidmain()
{
intcuenta;
intfarenheit;
intcelsius;
printf("TemperaturasFarenheityCelsius/n\n");
for(cuenta=2;cuenta<=12;cuenta=cuenta+1)
{
celsius=10*cuenta;
farenheit=32+(celsius*9)/5;
printf("C=%4dF=%4f",celsius,farenheit);
if(celsius==0)printf("PuntodecongelacindelAGUA");
if(celsius==100)printf("PuntodeebullicindelAGUA");
printf("\n");
}
}
2Hazunprogramaquefuncionedelasiguientemanera:
Elprogramanospidequeescribamosdosnmerospositivosmenoresde57
Elprogramanosdacomoresultadoelproductodelosdosnmeros.
Silosnmerosnosonpositivososonmayoresoigualesa57,elprogramanoslodiceyseacaba
laejecucindelmismo.
Elprogramanospreguntaalfinalsiqueremosvolveraempezar.
GrabaelprogramaconelnombreEVAL2B
3Escribeunprogramaquenosvayapidiendonmeros.Siescribimoselnmero9999seacaba;
porltimoelprogramanosdacomoresultadoelnmerodenmerosintroducidos,exceptuando
el9999.
GrabaelprogramaconelnombreEVAL2C
4Hazunprogramaquehagalomismoqueelanterior,peroademsnosdlasumadetodoslos
nmerosintroducidos,exceptuandoel9999.
GrabaelprogramaconelnombreEVAL2D.
5Hazunprogramaquehagalomismoqueelanterior,peroademsquenosdelproductodelos
nmerosintroducidos,exceptuandoel9999.
GrabaelprogramaconelnombreEVAL2E
6Hazunprogramaquesirvaparacalcularuncatetodeuntringulorectnguloapartirdelotro
catetoylahipotenusa,delasiguienteforma:
Elprogramanospideelvalordelahipotenusa.
Elprogramanospideelvalordeuncateto.
Sielcatetoesmayorquelahipotenusa,elprogramanosdaunmensajedeerroryseacaba
Elprogramanosdacomoresultadoelvalordelotrocatetoynospreguntasiqueremosvolvera
empezar.
GrabaelprogramaconelnombreEVAL2F.
7Hazunprogramaquesirvapararesolverecuacionesde2gradodeltipoax2+bx=0
GrabaelprogramaconelnombreEVAL2G.
8Hazunprogramaqueteindiquecuantosdastieneunmesdndoleelnumerodelmes.Use
SWITCHCASEparahacerlo.
GrabaelprogramaconelnombreEVAL2H.
9Elsiguienteprogramatieneerrores,indcalosyexplicadetalladamenteloquehaceelprograma:
#include<stdio.h>
voidmain()
{
intI;I=0;
while(I<5);
{
printf(\nN=%f,I);
I++;
}
}
GrabaelprogramaconelnombreEVAL2I.