You are on page 1of 22

MANUALDEPRACTICASPROGRAMACIONESTRUCTURADA

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.

You might also like