Documentos de Académico
Documentos de Profesional
Documentos de Cultura
"
:
;
.
.
<<
<
Cuan%o 9 =ale < la con%icin %e la e#tructura re$etiti=a retorna *al#o! en e#te ca#o
*inali>a el %iagrama.
Im$ortante: $odemos observar que el bloque repetitivo puede no e3ecutarse ninguna vez si
la condicin retorna falso la primera vez.
La variable ( debe estar inicializada con algn valor antes que se e3ecute la operacin (F( H
en caso de no estar inicializada aparece un error de compilacin.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
namespace EstructuraRepetitivaWhile1
{
class Program
{
static void Main(string[] args)
{
int x;
x = 1;
while (x <= 100)
{
Console.Write(x);
Console.Write(" - ");
x = x + 1;
}
Console.ReadKey();
}
}
}
Recordemos que un problema no estar ;;L solucionado si no 1acemos el programa en
CW que muestre los resultados buscados.
$robemos algunas modificaciones de este programa y veamos que cambios se deber%an
1acer para"
1 - Imprimir los nmeros del 1 al 500.
2 - Imprimir los nmeros del 50 al 100.
3 - Imprimir los nmeros del -50 al 0.
4 - Imprimir los nmeros del 2 al 100 pero de 2 en 2
(2,4,6,8 ....100).
Respuestas"
1 - Debemos cambiar la condicin del !ile con "#$500.
2 - Debemos iniciali%ar " con el &alor 50.
3 - Iniciali%ar " con el &alor -50 ' (i)ar la condicin "#$0.
4 - Iniciali%ar a " con el &alor 2 ' den*ro del blo+,e repe*i*i&o
incremen*ar a " en 2
( " $ " - 2 )
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Problema ":
*scribir un programa que solicite la carga de un valor positivo y nos muestre desde 1asta
el valor ingresado de uno en uno.
*3emplo" &i ingresamos ,; se debe mostrar en pantalla los nmeros del al ,;.
*s de CA09#/*0T#L importancia analizar los diagramas de flu3o y la posterior codificacin
en CW de los siguientes problemas, en varios problemas se presentan otras situaciones no
vistas en el e3ercicio anterior.
Diagrama %e *lu+o:
$odemos observar que se ingresa por teclado la variable n. *l operador puede cargar
cualquier valor.
&i el operador carga ; el bloque repetitivo se e3ecutar ; veces, ya que la condicin es
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
O/ientras (EFn Q, es decir Omientras ( sea menor o igual a ;Q= pues ( comienza en uno y se
incrementa en uno cada vez que se e3ecuta el bloque repetitivo.
# la prueba del diagrama la podemos realizar dndole valores a las variables= por e3emplo,
si ingresamos D el seguimiento es el siguiente"
n "
5 1 (.e imprime el con*enido de ")
2 / /
3 / /
4 / /
5 / /
6 (.ale del !ile por+,e 6 no es menor o i0,al a 5)
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaWhile2
{
class Program
{
static void Main(string[] args)
{
int n,x;
string linea;
Console.Write("Ingrese el valor final:");
linea=Console.ReadLine();
n=int.Parse(linea);
x=1;
while (x<=n)
{
Console.Write(x);
Console.Write(" - ");
x = x + 1;
}
Console.ReadKey();
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
}
}
}
Los nombres de las variables n y ( pueden ser palabras o letras )como en este caso+
La variable ( recibe el nombre de C80T#98R. An contador es un tipo especial de variable
que se incrementa o decrementa con valores constantes durante la e3ecucin del programa.
*l contador ( nos indica en cada momento la cantidad de valores impresos en pantalla.
Problema ::
9esarrollar un programa que permita la carga de ; valores por teclado y nos muestre
posteriormente la suma de los valores ingresados y su promedio.
Diagrama %e *lu+o:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
*n este problema, a seme3anza de los anteriores, llevamos un C80T#98R llamado ( que
nos sirve para contar las vueltas que debe repetir el V1ile.
Tambi-n aparece el concepto de #CA/AL#98R )un acumulador es un tipo especial de
variable que se incrementa o decrementa con valores variables durante la e3ecucin del
programa+
7emos dado el nombre de suma a nuestro acumulador. Cada ciclo que se repita la
estructura repetitiva, la variable suma se incrementa con el contenido ingresado en la
variable valor.
La prueba del diagrama se realiza dndole valores a las variables"
&alor s,ma " promedio
0 0
(1n*es de en*rar a la es*r,c*,ra repe*i*i&a es*os son los &alores).
5 5 1
16 21 2
2 28 3
10 38 4
2 40 5
20 60 6
5 65 2
5 20 8
10 80 3
2 82 10
8 30 11
3
*ste es un seguimiento del diagrama planteado. Los nmeros que toma la variable valor
depender de qu- cifras cargue el operador durante la e3ecucin del programa.
*l promedio se calcula al salir de la estructura repetitiva )es decir primero sumamos los ;
valores ingresados y luego los dividimos por ;+
7ay que tener en cuenta que cuando en la variable valor se carga el primer valor )en este
e3emplo D+ al cargarse el segundo valor )T+ el valor anterior D se pierde, por ello la
necesidad de ir almacenando en la variable suma los valores ingresados.
Programa:
using System;
using System.Collections.Generic;
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaWhile3
{
class Program
{
static void Main(string[] args)
{
int x,suma,valor,promedio;
string linea;
x=1;
suma=0;
while (x<=10)
{
Console.Write("Ingrese un valor:");
linea = Console.ReadLine();
valor=int.Parse(linea);
suma=suma+valor;
x=x+1;
}
promedio=suma/10;
Console.Write("La suma de los 10 valores
es:");
Console.WriteLine(suma);
Console.Write("El promedio es:");
Console.Write(promedio);
Console.ReadKey();
}
}
}
Problema ;:
Ana planta que fabrica perfiles de 1ierro posee un lote de n piezas.
Confeccionar un programa que pida ingresar por teclado la cantidad de piezas a procesar y
luego ingrese la longitud de cada perfil= sabiendo que la pieza cuya longitud est-
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
comprendida en el rango de ,!; y ,,; son aptas. :mprimir por pantalla la cantidad de
piezas aptas que 1ay en el lote.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
$odemos observar que dentro de una estructura repetitiva puede 1aber estructuras
condicionales )inclusive puede 1aber otras estructuras repetitivas que veremos ms
adelante+
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
*n este problema 1ay que cargar inicialmente la cantidad de piezas a ingresar ) n +,
seguidamente se cargan n valores de largos de piezas.
Cada vez que ingresamos un largo de pieza )largo+ verificamos si es una medida correcta
)debe estar entre .!; y .,; el largo para que sea correcta+, en caso de ser correcta la
C80T#/8& )incrementamos la variable cantidad en +
#l contador cantidad lo inicializamos en cero porque inicialmente no se 1a cargado ningn
largo de medida.
Cuando salimos de la estructura repetitiva porque se 1an cargado n largos de piezas
mostramos por pantalla el contador cantidad )que representa la cantidad de piezas aptas+
*n este problema tenemos dos C80T#98R*&"
" (4,en*a la can*idad de pie%as car0adas !as*a el
momen*o)
can*idad (4,en*a los per(iles de !ierro ap*os)
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaWhile4
{
class Program
{
static void Main(string[] args)
{
int x,cantidad,n;
float largo;
string linea;
x=1;
cantidad=0;
Console.Write("Cuantas piezar procesar:");
linea = Console.ReadLine();
n=int.Parse(linea);
while (x<=n)
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
{
Console.Write("Ingrese la medida de la
pieza:");
linea = Console.ReadLine();
largo=float.Parse(linea);
if (largo>=1.20 && largo<=1.30)
{
cantidad = cantidad +1;
}
x=x + 1;
}
Console.Write("La cantidad de piezas aptas
son:");
Console.Write(cantidad);
Console.ReadKey();
}
}
}
Problemas propuestos
7a llegado la parte fundamental, que es el momento donde uno desarrolla individualmente
un algoritmo para la resolucin de problemas.
*l tiempo a dedicar a esta seccin *X*RC:C:8& $R8$A*&T8& debe ser muc1o mayor
que el empleado a la seccin de *X*RC:C:8& R*&A*LT8&.
La e(periencia dice que debemos dedicar el Y;L del tiempo a la resolucin individual de
problemas y el otro !;L al anlisis y codificacin de problemas ya resueltos por otras
personas.
*s de vital importancia para llegar a ser un buen $R8ZR#/#98R poder resolver
problemas en forma individual.
. *scribir un programa que solicite ingresar ; notas de alumnos y nos informe
cuntos tienen notas mayores o iguales a N y cuntos menores.
!. &e ingresan un con3unto de n alturas de personas por teclado. /ostrar la altura
promedio de las personas.
,. *n una empresa traba3an n empleados cuyos sueldos oscilan entre [;; y [D;;,
realizar un programa que lea los sueldos que cobra cada empleado e informe
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
cuntos empleados cobran entre [;; y [,;; y cuntos cobran ms de [,;;.
#dems el programa deber informar el importe que gasta la empresa en sueldos al
personal.
.. Realizar un programa que imprima !D t-rminos de la serie I !! I ,, I .., etc. )0o
se ingresan valores por teclado+
D. /ostrar los mltiplos de Y 1asta el valor D;;. 9ebe aparecer en pantalla Y I T I !.,
etc.
T. Realizar un programa que permita cargar dos listas de D valores cada una. :nformar
con un mensa3e cual de las dos listas tiene un valor acumulado mayor )mensa3es
<Lista mayor<, <Lista ! mayor<, <Listas iguales<+
Tener en cuenta que puede 1aber dos o ms estructuras repetitivas en un algoritmo.
N. 9esarrollar un programa que permita cargar n nmeros enteros y luego nos informe
cuntos valores fueron pares y cuntos impares.
*mplear el operador OLQ en la condicin de la estructura condicional"
i( (&alor52$$0) 66.i el i( da &erdadero l,e0o es par.
Estructura repett!a %OR
Cualquier problema que requiera una estructura repetitiva se puede resolver empleando la
estructura V1ile. $ero 1ay otra estructura repetitiva cuyo planteo es ms sencillo en ciertas
situaciones.
*n general, la estructura for se usa en aquellas situaciones en las cuales C808C*/8& la
cantidad de veces que queremos que se e3ecute el bloque de instrucciones. *3emplo" cargar
; nmeros, ingresar D notas de alumnos, etc. Conocemos de antemano la cantidad de
veces que queremos que el bloque se repita. @eremos, sin embargo, que en el lengua3e CW
la estructura for puede usarse en cualquier situacin repetitiva, porque en ltima instancia
no es otra cosa que una estructura V1ile generalizada.
Representacin grfica"
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
*n su forma ms t%pica y bsica, esta estructura requiere una variable entera que cumple la
funcin de un C80T#98R de vueltas. *n la seccin indicada como <inicializacin
contador<, se suele colocar el nombre de la variable que 1ar de contador, asignndole a
dic1a variable un valor inicial. *n la seccin de <condicin< se coloca la condicin que
deber ser verdadera para que el ciclo contine )en caso de un falso, el ciclo se detendr+.
P finalmente, en la seccin de <incremento contador< se coloca una instruccin que permite
modificar el valor de la variable que 1ace de contador )para permitir que alguna vez la
condicin sea falsa+
Cuando el ciclo comienza, antes de dar la primera vuelta, la variable del for toma el valor
indicado en la seccin de de <inicializacin contador<. :nmediatamente se verifica, en forma
automtica, si la condicin es verdadera. *n caso de serlo se e3ecuta el bloque de
operaciones del ciclo, y al finalizar el mismo se e3ecuta la instruccin que se 1aya colocado
en la tercer seccin.
&eguidamente, se vuelve a controlar el valor de la condicin, y as% prosigue 1asta que dic1a
condicin entregue un falso.
&i conocemos la cantidad de veces que se repite el bloque es muy sencillo emplear un for,
por e3emplo si queremos que se repita D; veces el bloque de instrucciones puede 1acerse
as%"
La variable del for puede tener cualquier nombre. *n este e3emplo se la 1a definido con el
nombre f.
#nalicemos el e3emplo"
- 7a &ariable ( *oma inicialmen*e el &alor 1.
- .e con*rola a,*om8*icamen*e el &alor de la condicin9 como ( &ale
1 ' es*o es menor +,e 50, la condicin da &erdadero.
- 4omo la condicin (,e &erdadera, se e)ec,*an la6s operacin6es.
- 1l (inali%ar de e)ec,*arlas, se re*orna a la ins*r,ccin (--, por
lo +,e la &ariable ( se incremen*a en ,no.
- .e &,el&e a con*rolar (a,*om8*icamen*e) si ( es menor o i0,al a
50.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
4omo a!ora s, &alor es 2, se e)ec,*a n,e&amen*e el blo+,e de
ins*r,cciones e incremen*a n,e&amen*e la &ariable del (or al
*erminar el mismo.
- :l proceso se repe*ir8 !as*a +,e la &ariable ( sea incremen*ada al
&alor 51.
:n es*e momen*o la condicin ser8 (alsa, ' el ciclo se de*endr8.
La variable f $A*9* ser modificada dentro del bloque de operaciones del for, aunque esto
podr%a causar problemas de lgica si el programador es ine(perto.
La variable f puede ser inicializada en cualquier valor y finalizar en cualquier valor. #dems,
no es obligatorio que la instruccin de modificacin sea un incremento del tipo contador )fH
H+.
Cualquier instruccin que modifique el valor de la variable es vlida. &i por e3emplo se
escribe fFfH! en lugar de fHH, el valor de f ser incrementado de a ! en cada vuelta, y no de
a . *n este caso, esto significar que el ciclo no efectuar las D; vueltas sino slo !D.
Problema :
Realizar un programa que imprima en pantalla los nmeros del al ;;.
Diagrama %e *lu+o:
$odemos observar y comparar con el problema realizado con el V1ile. Con la estructura
V1ile el C80T#98R ( sirve para contar las vueltas. Con el for el C80T#98R f cumple
dic1a funcin.
:nicialmente f vale y como no es superior a ;; se e3ecuta el bloque, imprimimos el
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
contenido de f, al finalizar el bloque repetitivo se incrementa la variable f en , como ! no es
superior a ;; se repite el bloque de instrucciones.
Cuando la variable del for llega a ; sale de la estructura repetitiva y contina la e3ecucin
del algoritmo que se indica despu-s del c%rculo.
La variable f )o como sea que se decida llamarla+ debe estar definida como una variable
ms.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaFor1
{
class Program
{
static void Main(string[] args)
{
int f;
for(f=1;f<=100;f++)
{
Console.Write(f);
Console.Write("-");
}
Console.ReadKey();
}
}
}
Problema ":
" 9esarrollar un programa que permita la carga de ; valores por teclado y nos muestre
posteriormente la suma de los valores ingresados y su promedio. *ste problema ya lo
desarrollamos, lo resolveremos empleando la estructura for.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
*n este caso, a la variable del for )f+ slo se la requiere para que se repita el bloque de
instrucciones ; veces.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
namespace EstructuraRepetitivaFor2
{
class Program
{
static void Main(string[] args)
{
int suma,f,valor,promedio;
string linea;
suma=0;
for(f=1;f<=10;f++)
{
Console.Write("Ingrese valor:");
linea=Console.ReadLine();
valor=int.Parse(linea);
suma=suma+valor;
}
Console.Write("La suma es:");
Console.WriteLine(suma);
promedio=suma/10;
Console.Write("El promedio es:");
Console.Write(promedio);
Console.ReadKey();
}
}
}
*l problema requiere que se carguen ; valores y se sumen los mismos.
Tener en cuenta encerrar entre llaves bloque de instrucciones a repetir dentro del for.
*l promedio se calcula fuera del for luego de 1aber cargado los ; valores.
Problema ::
*scribir un programa que lea ; notas de alumnos y nos informe cuntos tienen notas
mayores o iguales a N y cuntos menores.
$ara resolver este problema se requieren tres contadores"
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
aprobados (4,en*a la can*idad de al,mnos aprobados)
reprobados (4,en*a la can*idad de reprobados)
( (es el con*ador del (or)
9entro de la estructura repetitiva debemos 1acer la carga de la variable nota y verificar con
una estructura condicional si el contenido de la variable nota es mayor o igual a N para
incrementar el contador aprobados, en caso de que la condicin retorne falso debemos
incrementar la variable reprobados.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
Los contadores aprobados y reprobados deben imprimirse CA*R# de la estructura
repetitiva.
*s fundamental inicializar los contadores aprobados y reprobados en cero antes de entrar a
la estructura for.
Im$ortante: An error comn es inicializar los contadores dentro de la estructura repetitiva.
*n caso de 1acer esto los contadores se fi3an en cero en cada ciclo del for, por lo que al
finalizar el for como m(imo el contador puede tener el valor .
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaFor3
{
class Program
{
static void Main(string[] args)
{
int aprobados,reprobados,f,nota;
string linea;
aprobados=0;
reprobados=0;
for(f=1;f<=10;f++)
{
Console.Write("Ingrese la nota:");
linea = Console.ReadLine();
nota=int.Parse(linea);
if (nota>=7)
{
aprobados=aprobados+1;
}
else
{
reprobados=reprobados+1;
}
}
Console.Write("Cantidad de aprobados:");
Console.WriteLine(aprobados);
Console.Write("Cantidad de reprobados:");
Console.Write(reprobados);
Console.ReadKey();
}
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
}
}
Problema ;:
*scribir un programa que lea ; nmeros enteros y luego muestre cuntos valores
ingresados fueron mltiplos de , y cuntos de D. 9ebemos tener en cuenta que 1ay
nmeros que son mltiplos de , y de D a la vez.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Tengamos en cuenta que el operador matemtico L retorna el resto de dividir un valor por
otro, en este caso" valorL, retorna el resto de dividir el valor que ingresamos por teclado,
por tres.
@eamos" si ingresamos T el resto de dividirlo por , es ;, si ingresamos ! el resto de
dividirlo por , es ;. Zeneralizando" cuando el resto de dividir por , al valor que ingresamos
por teclado es cero, se trata de un mltiplo de dic1o valor.
#1ora bien 2por qu- no 1emos dispuesto una estructura if anidada5 $orque 1ay valores que
son mltiplos de , y de D a la vez. $or lo tanto con if anidados no podr%amos analizar los
dos casos.
*s importante darse cuenta cuando conviene emplear if anidados y cuando no debe
emplearse.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaFor4
{
class Program
{
static void Main(string[] args)
{
int mul3,mul5,valor,f;
string linea;
mul3=0;
mul5=0;
for(f=1;f<=10;f++)
{
Console.Write("Ingrese un valor:");
linea = Console.ReadLine();
valor=int.Parse(linea);
if (valor%3==0)
{
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
mul3=mul3+1;
}
if (valor%5==0)
{
mul5=mul5+1;
}
}
Console.Write("Cantidad de valores
ingresados mltiplos de 3:");
Console.WriteLine(mul3);
Console.Write("Cantidad de valores
ingresados mltiplos de 5:");
Console.Write(mul5);
Console.ReadKey();
}
}
}
Problema ?:
*scribir un programa que lea n nmeros enteros y calcule la cantidad de valores mayores o
iguales a ;;;.
*ste tipo de problemas tambi-n se puede resolver empleando la estructura repetitiva for. Lo
primero que se 1ace es cargar una variable que indique la cantidad de valores a ingresar.
9ic1a variable se carga antes de entrar a la estructura repetitiva for.
La estructura for permite que el valor inicial o final dependa de una variable cargada
previamente por teclado.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
Tenemos un contador llamado cantidad y f que es el contador del for.
La variable entera n se carga previo al inicio del for, por lo que podemos fi3ar el valor final
del for con la variable n.
$or e3emplo si el operador carga D en n la estructura repetitiva for se e3ecutar D veces.
La variable valor se ingresa dentro de la estructura repetitiva, y se verifica si el valor de la
misma es mayor o igual a ;;;, en dic1o caso se incrementa en uno el contador cantidad.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Cuera de la estructura repetitiva imprimimos el contador cantidad que tiene almacenado la
cantidad de valores ingresados mayores o iguales a ;;;.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaFor5
{
class Program
{
static void Main(string[] args)
{
int cantidad,n,f,valor;
string linea;
cantidad=0;
Console.Write("Cuantos valores ingresar:");
linea = Console.ReadLine();
n=int.Parse(linea);
for(f=1;f<=n;f++)
{
Console.Write("Ingrese el valor:");
linea = Console.ReadLine();
valor = int.Parse(linea);
if (valor>=1000)
{
cantidad=cantidad+1;
}
}
Console.Write("La cantidad de valores
ingresados mayores o iguales a 1000 son:");
Console.Write(cantidad);
Console.ReadKey();
}
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
}
}
Problemas propuestos
7a llegado nuevamente la parte fundamental, que es el momento donde uno desarrolla
individualmente un algoritmo para la resolucin de un problema.
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. *l programa deber informar"
a+ 9e cada tringulo la medida de su base, su altura y su superficie.
b+ La cantidad de tringulos cuya superficie es mayor a !.
!. 9esarrollar un programa que solicite la carga de ; nmeros e imprima la suma de
los ltimos D valores ingresados.
,. 9esarrollar un programa que muestre la tabla de multiplicar del D )del D al D;+
.. Confeccionar un programa que permita ingresar un valor del al ; y nos muestre la
tabla de multiplicar del mismo )los primeros ! t-rminos+
*3emplo" &i ingreso , deber aparecer en pantalla los valores ,, T, M, 1asta el ,T.
D. Realizar un programa que lea los lados de n tringulos, e informar"
a+ 9e cada uno de ellos, qu- tipo de tringulo es" equiltero )tres lados iguales+,
issceles )dos lados iguales+, o escaleno )ningn lado igual+
b+ Cantidad de tringulos de cada tipo.
c+ Tipo de tringulo que posee menor cantidad.
T. *scribir un programa que pida ingresar coordenadas )(,y+ que representan puntos en
el plano.
:nformar cuntos puntos se 1an ingresado en el primer, segundo, tercer y cuarto
cuadrante. #l comenzar el programa se pide que se ingrese la cantidad de puntos a
procesar.
N. &e realiza la carga de ; valores enteros por teclado. &e desea conocer"
a+ La cantidad de valores ingresados negativos.
b+ La cantidad de valores ingresados positivos.
c+ La cantidad de mltiplos de D.
d+ *l valor acumulado de los nmeros ingresados que son pares.
Y. &e cuenta con la siguiente informacin"
Las edades de D; estudiantes del turno ma6ana.
Las edades de T; estudiantes del turno tarde.
Las edades de ; estudiantes del turno noc1e.
Las edades de cada estudiante deben ingresarse por teclado.
a+ 8btener el promedio de las edades de cada turno )tres promedios+
b+ :mprimir dic1os promedios )promedio de cada turno+
c+ /ostrar por pantalla un mensa3e que indique cual de los tres turno
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Estructura repett!a do &#le
La estructura do V1ile es otra estructura repetitiva, la cual e3ecuta al menos una vez su
bloque repetitivo, a diferencia del V1ile o del for que pod%an no e3ecutar el bloque.
*sta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una
vez se e3ecutar el bloque repetitivo.
La condicin de la estructura est aba3o del bloque a repetir, a diferencia del V1ile o del for
que est en la parte superior.
Representacin grfica"
*l bloque de operaciones se repite /:*0TR#& que la condicin sea @erdadera.
&i la condicin retorna Calso el ciclo se detiene. *n CW, todos los ciclos repiten por
verdadero y cortan por falso.
*s importante analizar y ver que las operaciones se e3ecutan como m%nimo una vez.
Problema :
*scribir un programa que solicite la carga de un nmero entre ; y MMM, y nos muestre un
mensa3e de cuntos d%gitos tiene el mismo. Cinalizar el programa cuando se cargue el valor
;.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
0o 1ay que confundir los rombos de las estructuras condicionales con los de las estructuras
repetitivas do V1ile.
*n este problema por lo menos se carga un valor. &i se carga un valor mayor o igual a ;;
se trata de un nmero de tres cifras, si es mayor o igual a ; se trata de un valor de dos
d%gitos, en caso contrario se trata de un valor de un d%gito. *ste bloque se repite 1asta que
se ingresa en la variable valor el nmero ; con lo que la condicin de la estructura do V1ile
retorna falso y sale del bloque repetitivo finalizando el programa.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaDoWhile1
{
class Program
{
static void Main(string[] args)
{
int valor;
string linea;
do {
Console.Write("Ingrese un valor entre 0
y 999 (0 finaliza):");
linea = Console.ReadLine();
valor=int.Parse(linea);
if (valor>=100)
{
Console.WriteLine("Tiene 3
dgitos.");
}
else
{
if (valor>=10)
{
Console.WriteLine("Tiene 2
dgitos.");
}
else
{
Console.WriteLine("Tiene 1
dgito.");
}
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
}
} while (valor!=0);
}
}
}
Problema ":
*scribir un programa que solicite la carga de nmeros por teclado, obtener su promedio.
Cinalizar la carga de valores cuando se cargue el valor ;.
Cuando la finalizacin depende de algn valor ingresado por el operador conviene el
empleo de la estructura do V1ile, por lo menos se cargar un valor )en el caso ms e(tremo
se carga ;, que indica la finalizacin de la carga de valores+
Diagrama %e *lu+o
:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
*s importante analizar este diagrama de flu3o.
9efinimos un contador cant que cuenta la cantidad de valores ingresados por el operador
)no lo incrementa si ingresamos ;+
*l valor ; no es parte de la serie de valores que se deben sumar.
9efinimos el acumulador suma que almacena todos los valores ingresados por teclado.
La estructura repetitiva do V1ile se repite 1asta que ingresamos el valor ;. Con dic1o valor
la condicin del ciclo retorna falso y contina con el flu3o del diagrama.
9isponemos por ltimo una estructura condicional para el caso que el operador cargue
nicamente un ; y por lo tanto no podemos calcular el promedio ya que no e(iste la divisin
por ;.
*n caso que el contador cant tenga un valor distinto a ; el promedio se obtiene dividiendo el
acumulador suma por el contador cant que tiene la cantidad de valores ingresados antes de
introducir el ;.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaDoWhile2
{
class Program
{
static void Main(string[] args)
{
int suma,cant,valor,promedio;
string linea;
suma=0;
cant=0;
do {
Console.Write("Ingrese un valor (0 para
finalizar):");
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
linea = Console.ReadLine();
valor=int.Parse(linea);
if (valor!=0) {
suma=suma+valor;
cant++;
}
} while (valor!=0);
if (cant!=0) {
promedio=suma/cant;
Console.Write("El promedio de los
valores ingresados es:");
Console.Write(promedio);
} else {
Console.Write("No se ingresaron
valores.");
}
Console.ReadLine();
}
}
}
*l contador cant 9*4* inicializarse antes del ciclo, lo mismo que el acumulador suma. *l
promedio se calcula siempre y cuando el contador cant sea distinto a ;.
Problema ::
Realizar un programa que permita ingresar el peso )en \ilogramos+ de piezas. *l proceso
termina cuando ingresamos el valor ;. &e debe informar"
a+ Cuntas piezas tienen un peso entre M.Y ]g. y ;.! ]g.5, cuntas con ms de ;.! ]g.5
y cuntas con menos de M.Y ]g.5
b+ La cantidad total de piezas procesadas.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
Los tres contadores cont, cont!, y cont, se inicializan en ; antes de entrar a la estructura
repetitiva.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
# la variable suma no se la inicializa en ; porque no es un acumulador, sino que guarda la
suma del contenido de las variables cont, cont! y cont,.
La estructura se repite 1asta que se ingresa el valor ; en la variable peso. *ste valor no se
lo considera un peso menor a M.Y ]g., sino que indica que 1a finalizado la carga de valores
por teclado.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraRepetitivaDoWhile3
{
class Program
{
static void Main(string[] args)
{
int cant1,cant2,cant3,suma;
float peso;
string linea;
cant1=0;
cant2=0;
cant3=0;
do {
Console.Write("Ingrese el peso de la
pieza (0 pera finalizar):");
linea = Console.ReadLine();
peso=float.Parse(linea);
if (peso>10.2)
{
cant1++;
}
else
{
if (peso>=9.8)
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
{
cant2++;
}
else
{
if (peso>0)
{
cant3++;
}
}
}
} while(peso!=0);
suma=cant1+cant2+cant3;
Console.Write("Piezas aptas:");
Console.WriteLine(cant2);
Console.Write("Piezas con un peso superior a
10.2:");
Console.WriteLine(cant1);
Console.Write("Piezas con un peso inferior a
9.8:");
Console.WriteLine(cant3);
Console.ReadLine();
}
}
}
Problemas propuestos
. Realizar un programa que acumule )sume+ valores ingresados por teclado 1asta ingresar
el MMMM )no sumar dic1o valor, indica que 1a finalizado la carga+. :mprimir el valor
acumulado e informar si dic1o valor es cero, mayor a cero o menor a cero.
!. *n un banco se procesan datos de las cuentas corrientes de sus clientes. 9e cada
cuenta corriente se conoce" nmero de cuenta y saldo actual. *l ingreso de datos debe
finalizar al ingresar un valor negativo en el nmero de cuenta.
&e pide confeccionar un programa que lea los datos de las cuentas corrientes e informe"
a+ 9e cada cuenta" nmero de cuenta y estado de la cuenta segn su saldo,
sabiendo que"
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
:s*ado de la c,en*a
;1creedor; si el saldo es <0.
;De,dor; si el saldo es #0.
;=,lo; si el saldo es $0.
b+ La suma total de los saldos acreedores.