Академический Документы
Профессиональный Документы
Культура Документы
EstudiaparaChef
enArgentina
Representacingrfica:
En su forma ms tpica y bsica, esta estructura requiere una variable entera que
cumple la funcin de un CONTADOR de vueltas. En la seccin indicada como
"inicializacin contador", se suele colocar el nombre de la variable que har de
contador,asignndoleadichavariableunvalorinicial.Enlaseccinde"condicin"
secolocalacondicinquedeberserverdaderaparaqueelciclocontine(encaso
de un falso, el ciclo se detendr). Y finalmente, en la seccin de "incremento
contador"secolocaunainstruccinquepermitemodificarelvalordelavariableque
hacedecontador(parapermitirquealgunavezlacondicinseafalsa)
Cuandoelciclocomienza,antesdedarlaprimeravuelta,lavariabledelfortomael
valor indicado en la seccin de de "inicializacin contador". Inmediatamente se
verifica, en forma automtica, si la condicin es verdadera. En caso de serlo se
ejecuta el bloque de operaciones del ciclo, y al finalizar el mismo se ejecuta la
instruccinquesehayacolocadoenlatercerseccin.
Seguidamente, se vuelve a controlar el valor de la condicin, y as prosigue hasta
quedichacondicinentregueunfalso.
Siconocemoslacantidaddevecesqueserepiteelbloqueesmuysencilloemplear
un for, por ejemplo si queremo que se repita 50 veces el bloque de instrucciones
puedehacerseas:
Lavariabledelforpuedetenercualquiernombre.Enesteejemploselahadefinido
conelnombref.
Analicemoselejemplo:
Lavariableftomainicialmenteelvalor1.
Secontrolaautomticamenteelvalordelacondicin:comofvale1yestoes
que50,lacondicindaverdadero.
Comolacondicinfueverdadera,seejecutanla/soperacin/es.
Alfinalizardeejecutarlas,seretornaalainstruccinf++,porloquela
variablefseincrementaenuno.
Sevuelveacontrolar(automticamente)sifesmenoroiguala50.
Comoahorasuvalores2,seejecutanuevamenteelbloquedeinstruccionese
incrementanuevamentelavariabledelforalterminarelmismo.
Elprocesoserepetirhastaquelavariablefseaincrementadaalvalor51.
Enestemomentolacondicinserfalsa,yelciclosedetendr.
La variable f PUEDE ser modificada dentro del bloque de operaciones del for,
aunqueestopodracausarproblemasdelgicasielprogramadoresinexperto.
Lavariablefpuedeserinicializadaencualquiervaloryfinalizarencualquiervalor.
Adems,noesobligatorioquelainstruccindemodificacinseaunincrementodel
tipocontador(f++).
Cualquierinstruccinquemodifiqueelvalordelavariableesvlida.Siporejemplo
se escribe f=f+2 en lugar de f++, el valor de f ser incrementado de a 2 en cada
vuelta, y no de a 1. En este caso, esto significar que el ciclo no efectuar las 50
vueltassinoslo25.
Problema1:
Realizarunprogramaqueimprimaenpantallalosnmerosdel1al100.
Diagramadeflujo:
publicclassEstructuraRepetitivaFor1{
publicstaticvoidmain(String[]ar){
intf
for(f=1f<=100f++){
System.out.print(f)
System.out.print("")
}
}
}
Problema2:
: Desarrollar un programa que permita la carga de 10 valores por teclado y nos
muestre posteriormente la suma de los valores ingresados y su promedio. Este
problemayalodesarrollamos,loresolveremosempleandolaestructurafor.
Diagramadeflujo:
Enestecaso,alavariabledelfor(f)sloselarequiereparaqueserepitaelbloque
deinstrucciones10veces.
Programa:
importjava.util.Scanner
publicclassEstructuraRepetitivaFor2{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in)
intsuma,f,valor,promedio
suma=0
for(f=1f<=10f++){
System.out.print("Ingresevalor:")
valor=teclado.nextInt()
suma=suma+valor
}
System.out.print("Lasumaes:")
System.out.println(suma)
promedio=suma/10
System.out.print("Elpromedioes:")
System.out.print(promedio)
}
}
Elproblemarequierequesecarguen10valoresysesumenlosmismos.
Tener en cuenta encerrar entre llaves bloque de instrucciones a repetir dentro del
for.
Elpromediosecalculafueradelforluegodehabercargadolos10valores.
Problema3:
Escribir un programa que lea 10 notas de alumnos y nos informe cuntos tienen
notasmayoresoigualesa7ycuntosmenores.
Pararesolveresteproblemaserequierentrescontadores:
aprobados(Cuentalacantidaddealumnosaprobados)
reprobados(Cuentalacantidaddereprobados)
f(eselcontadordelfor)
Dentrodelaestructurarepetitivadebemoshacerlacargadelavariablenotayverificar
conunaestructuracondicionalsielcontenidodelavariablenotaesmayoroiguala7
para incrementar el contador aprobados, en caso de que la condicin retorne falso
debemosincrementarlavariablereprobados.
Diagramadeflujo:
LoscontadoresaprobadosyreprobadosdebenimprimirseFUERAdelaestructura
repetitiva.
Esfundamentalinicializarloscontadoresaprobadosyreprobadosenceroantesde
entraralaestructurafor.
Importante: Un error comn es inicializar los contadores dentro de la estructura
repetitiva. En caso de hacer esto los contadores se fijan en cero en cada ciclo del
for,porloquealfinalizarelforcomomximoelcontadorpuedetenerelvalor1.
Programa:
importjava.util.Scanner
publicclassEstructuraRepetitivaFor3{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in)
intaprobados,reprobados,f,nota
aprobados=0
reprobados=0
for(f=1f<=10f++){
System.out.print("Ingreselanota:")
nota=teclado.nextInt()
if(nota>=7){
aprobados=aprobados+1
}else{
reprobados=reprobados+1
}
}
System.out.print("Cantidaddeaprobados:")
System.out.println(aprobados)
System.out.print("Cantidaddereprobados:")
System.out.print(reprobados)
}
}
Problema4:
Escribirunprogramaquelea10nmerosenterosyluegomuestrecuntosvalores
ingresadosfueronmltiplosde3ycuntosde5.Debemostenerencuentaquehay
nmerosquesonmltiplosde3yde5alavez.
Diagramadeflujo:
ingresamosportecladoescero,setratadeunmltiplodedichovalor.
Ahora bien por qu no hemos dispuesto una estructura if anidada? Porque hay
valores que son mltiplos de 3 y de 5 a la vez. Por lo tanto con if anidados no
podramosanalizarlosdoscasos.
Esimportantedarsecuentacuandoconvieneemplearifanidadosycuandonodebe
emplearse.
Programa:
importjava.util.Scanner
publicclassEstructuraRepetitivaFor4{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in)
intmul3,mul5,valor,f
mul3=0
mul5=0
for(f=1f<=10f++){
System.out.print("Ingreseunvalor:")
valor=teclado.nextInt()
if(valor%3==0){
mul3=mul3+1
}
if(valor%5==0){
mul5=mul5+1
}
}
System.out.print("Cantidaddevaloresingresadosmlt
System.out.println(mul3)
System.out.print("Cantidaddevaloresingresadosmlt
System.out.print(mul5)
}
}
Problema5:
Escribir un programa que lea n nmeros enteros y calcule la cantidad de valores
mayoresoigualesa1000.
Estetipodeproblemastambinsepuederesolverempleandolaestructurarepetitiva
for. Lo primero que se hace es cargar una variable que indique la cantidad de
valoresaingresar.Dichavariablesecargaantesdeentraralaestructurarepetitiva
for.
Laestructuraforpermitequeelvalorinicialofinaldependadeunavariablecargada
previamenteporteclado.
Diagramadeflujo:
Tenemosuncontadorllamadocantidadyfqueeselcontadordelfor.
Lavariableenteransecargaprevioaliniciodelfor,porloquepodemosfijarelvalor
finaldelforconlavariablen.
Por ejemplo si el operador carga 5 en n la estructura repetitiva for se ejecutar 5
veces.
Lavariablevalorseingresadentrodelaestructurarepetitiva,yseverificasielvalor
de la misma es mayor o igual a 1000, en dicho caso se incrementa en uno el
contadorcantidad.
Fuera de la estructura repetitiva imprimimos el contador cantidad que tiene
almacenadolacantidaddevaloresingresadosmayoresoigualesa1000.
Programa:
importjava.util.Scanner
publicclassEstructuraRepetitivaFor5{
publicstaticvoidmain(String[]ar){
Scannerteclado=newScanner(System.in)
intcantidad,n,f,valor
cantidad=0
System.out.print("Cuantosvaloresingresar:")
n=teclado.nextInt()
for(f=1f<=nf++){
System.out.print("Ingreseelvalor:")
valor=teclado.nextInt()
if(valor>=1000){
cantidad=cantidad+1
}
}
System.out.print("Lacantidaddevaloresingresadosm
System.out.print(cantidad)
}
}
Problemaspropuestos
Ha llegado nuevamente la parte fundamental, que es el momento donde uno
desarrollaindividualmenteunalgoritmoparalaresolucindeunproblema.
1. Confeccionar un programa que lea n pares de datos, cada par de datos
corresponde a la medida de la base y la altura de un tringulo. El programa
deberinformar:
a)Decadatringulolamedidadesubase,sualturaysusuperficie.
b)Lacantidaddetringuloscuyasuperficieesmayora12.
2. Desarrollarunprogramaquesolicitelacargade10nmeroseimprimalasuma
delosltimos5valoresingresados.
3. Desarrollarunprogramaquemuestrelatablademultiplicardel5(del5al50)
4. Confeccionar un programa que permita ingresar un valor del 1 al 10 y nos
muestrelatablademultiplicardelmismo(losprimeros12trminos)
Ejemplo: Si ingreso 3 deber aparecer en pantalla los valores 3, 6, 9, hasta el
36.
5. Realizarunprogramaquelealosladosdentringulos,einformar:
a)Decadaunodeellos,qutipodetringuloes:equiltero(tresladosiguales),
issceles(dosladosiguales),oescaleno(ningnladoigual)
b)Cantidaddetringulosdecadatipo.
c)Tipodetringuloqueposeemenorcantidad.
6. Escribir un programa que pida ingresar coordenadas (x,y) que representan
puntosenelplano.
Informarcuntospuntossehaningresadoenelprimer,segundo,tercerycuarto
cuadrante. Al comenzar el programa se pide que se ingrese la cantidad de
puntosaprocesar.
7. Serealizalacargade10valoresenterosporteclado.Sedeseaconocer:
a)Lacantidaddevaloresingresadosnegativos.
b)Lacantidaddevaloresingresadospositivos.
c)Lacantidaddemltiplosde15.
d)Elvaloracumuladodelosnmerosingresadosquesonpares.
8. Secuentaconlasiguienteinformacin:
Lasedadesde50estudiantesdelturnomaana.
Lasedadesde60estudiantesdelturnotarde.
Lasedadesde110estudiantesdelturnonoche.
Lasedadesdecadaestudiantedebeningresarseporteclado.
a)Obtenerelpromediodelasedadesdecadaturno(trespromedios)
b)Imprimirdichospromedios(promediodecadaturno)
c)Mostrarporpantallaunmensajequeindiquecualdelostresturnostieneun
promediodeedadesmayor.
Solucin
Retornar