Está en la página 1de 63

SERVICIO NACIONAL DE APRENDIZAJE, SENA

MDULO DE FORMACIN EVALUACIN DEL


APRENDIZAJE
ESTRUCTURAS CONDICIONALES EN C#
ESTRUCTURA DE PROGRAMACION SECUENCIAL
Cuando en un problema slo participan operaciones, entradas y salidas se la denomina una
estructura secuencial.
Los problemas diagramados y codificados previamente emplean solo estructuras
secuenciales.
La programacin requiere una prctica ininterrumpida de diagramacin y codificacin de
problemas.
Problema:
Realizar la carga de dos nmeros enteros por teclado e imprimir su suma y su producto.
Solucin.
Tenemos dos entradas num y num!, dos operaciones" realizacin de la suma y del
producto de los valores ingresados y dos salidas, que son los resultados de la suma y el
producto de los valores ingresados.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SumaProductoNumeros
{
class Program
{
static void Main(string[] args)
{
int num1, num2, suma, producto;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
CENTRO DE INDUSTRIA Y DE LA CONSTRUCCIN
TECNLOGO ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
num1 = int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
suma = num1 + num2;
producto = num1 * num2;
Console.Write("La suma de los dos valores
es:");
Console.WriteLine(suma);
Console.Write("El producto de los dos
valores es:");
Console.WriteLine(producto);
Console.ReadKey();
}
}
}
Recordemos que tenemos que seguir todos los pasos vistos para la creacin de un
proyecto.
#lgunas cosas nuevas que podemos notar"
$odemos definir varias variables en la misma l%nea"
int num! num"! #uma! $ro%ucto&
&i llamamos a la funcin 'riteLine en lugar de 'rite, la impresin siguiente se
efectuar en la pr(ima l%nea"
Con#ole.'riteLine(#uma)&
Problemas propuestos
. Realizar la carga del lado de un cuadrado, mostrar por pantalla el per%metro del mismo
)*l per%metro de un cuadrado se calcula multiplicando el valor del lado por cuatro+
!. *scribir un programa en el cual se ingresen cuatro nmeros, calcular e informar la suma
de los dos primeros y el producto del tercero y el cuarto.
,. Realizar un programa que lea cuatro valores num-ricos e informar su suma y promedio.
.. &e debe desarrollar un programa que pida el ingreso del precio de un art%culo y la
cantidad que lleva el cliente. /ostrar lo que debe abonar el comprador.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
ESTRUCTURAS CONDICIONALES SIMPLES Y COMPUESTAS
0o todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando
1ay que tomar una decisin aparecen las estructuras condicionales.
*n nuestra vida diaria se nos presentan situaciones donde debemos decidir.
2*li3o la carrera # o la carrera 45
2/e pongo este pantaln5
$ara ir al traba3o, 2eli3o el camino # o el camino 45
#l cursar una carrera, 2eli3o el turno ma6ana, tarde o noc1e5
$or supuesto que en un problema se combinan estructuras secuenciales y condicionales.
E#tructura con%icional #im$le.
Cuando se presenta la eleccin tenemos la opcin de realizar una actividad o no realizar
ninguna.
Representacin grfica"
$odemos observar" *l rombo representa la condicin. 7ay dos opciones que se pueden
tomar. &i la condicin da verdadera se sigue el camino del verdadero, o sea el de la
derec1a, si la condicin da falsa se sigue el camino de la izquierda.
&e trata de una estructura C809:C:80#L &:/$L* porque por el camino del verdadero 1ay
actividades y por el camino del falso no 1ay actividades.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
$or el camino del verdadero pueden e(istir varias operaciones, entradas y salidas, inclusive
ya veremos que puede 1aber otras estructuras condicionales.
Problema:
:ngresar el sueldo de una persona, si supera los ,;;; pesos mostrar un mensa3e en
pantalla indicando que debe abonar impuestos.
Diagrama %e *lu+o:
$odemos observar lo siguiente" &iempre se 1ace la carga del sueldo, pero si el sueldo que
ingresamos supera ,;;; pesos se mostrar por pantalla el mensa3e <*sta persona debe
abonar impuestos<, en caso que la persona cobre ,;;; o menos no aparece nada por
pantalla.
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 EstructuraCondicionalSimple1
{
class Program
{
static void Main(string[] args)
{
float sueldo;
string linea;
Console.Write("Ingrese el sueldo:");
linea=Console.ReadLine();
sueldo=float.Parse(linea);
if (sueldo>3000)
{
Console.Write("Esta persona debe abonar
impuestos");
}
Console.ReadKey();
}
}
}
La palabra clave <if< indica que estamos en presencia de una estructura condicional=
seguidamente disponemos la condicin entre par-ntesis. $or ltimo encerrada entre llaves
las instrucciones de la rama del verdadero.
*s necesario que las instrucciones a e3ecutar en caso que la condicin sea verdadera est-n
encerradas entre llaves > ?, con ellas marcamos el comienzo y el fin del bloque del
verdadero.
*3ecutando el programa e ingresamos un sueldo superior a ,;;; pesos. $odemos observar
como aparece en pantalla el mensa3e <*sta persona debe abonar impuestos<, ya que la
condicin del if es verdadera.
@olvamos a e3ecutar el programa y carguemos un sueldo menor o igual a ,;;; pesos. 0o
debe aparecer mensa3e en pantalla.
E#tructura con%icional com$ue#ta.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Cuando se presenta la eleccin tenemos la opcin de realizar una actividad u otra. *s decir
tenemos actividades por el verdadero y por el falso de la condicin. Lo ms importante que
1ay que tener en cuenta que se realizan las actividades de la rama del verdadero o las del
falso, 0A0C# se realizan las actividades de las dos ramas.
Representacin grfica"
*n una estructura condicional compuesta tenemos entradas, salidas, operaciones, tanto por
la rama del verdadero como por la rama del falso.
Problema:
Realizar un programa que solicite ingresar dos nmeros distintos y muestre por pantalla el
mayor de ellos.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama de flujo:
&e 1ace la entrada de num y num! por teclado. $ara saber cul variable tiene un valor
mayor preguntamos si el contenido de num es mayor )B+ que el contenido de num!, si la
respuesta es verdadera vamos por la rama de la derec1a e imprimimos num, en caso que
la condicin sea falsa vamos por la rama de la izquierda )Calsa+ e imprimimos num!.
Como podemos observar nunca se imprimen num y num! simultneamente.
*stamos en presencia de una *&TRACTAR# C809:C:80#L C8/$A*&T# ya que
tenemos actividades por la rama del verdadero y del falso.
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 EstructuraCondicionalCompuesta1
{
class Program
{
static void Main(string[] args)
{
int num1, num2;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
num1 = int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
if (num1 > num2)
{
Console.Write(num1);
}
else
{
Console.Write(num2);
}
Console.ReadKey();
}
}
}
Cote3emos el diagrama de flu3o y la codificacin y observemos que el primer bloque de
llaves despu-s del if representa la rama del verdadero y el segundo bloque de llaves
representa la rama del falso.
Compilemos el programa, si 1ubo errores sintcticos corri3amos y carguemos dos valores,
como por e3emplo"
:ngrese el primer valor" ;
:ngrese el segundo valor" .
Resultado en pantalla" ;
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
&i ingresamos los valores ; y . la condicin del if retorna verdadero y e3ecuta el primer
bloque.
An programa se controla y corrige probando todos sus posibles resultados.
*3ecutemos nuevamente el programa e ingresemos"
:ngrese el primer valor" ;
:ngrese el segundo valor" D.
Resultado en pantalla D.
Cuando a un programa le corregimos todos los errores sintcticos y lgicos 1a terminado
nuestra tarea y podemos entregar el mismo al A&A#R:8 que nos lo solicit.
Operadores
*n una condicin deben disponerse nicamente variables, valores constantes y operadores
relacionales.
,O$era%ore# Relacionale#:
B )mayor+
E )menor+
BF )mayor o igual+
EF )menor o igual+
FF )igual+
GF )distinto+
O$era%ore# -atem.tico#
H )ms+
I )menos+
J )producto+
K )divisin+
L )resto de una divisin+
*3." (F,LD= >se guarda ,?
7ay que tener en cuenta que al disponer una condicin debemos seleccionar que operador
relacional se adapta a la pregunta.
*3emplos"
&e ingresa un nmero multiplicarlo por ; si es distinto a ;. )GF+
&e ingresan dos nmeros mostrar una advertencia si son iguales. )FF+
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Los problemas que se pueden presentar son infinitos y la correcta eleccin del operador
slo se alcanza con la prctica intensiva en la resolucin de problemas.
Problemas propuestos
. Realizar un programa que lea por teclado dos nmeros, si el primero es mayor al
segundo informar su suma y diferencia, en caso contrario informar el producto y la
divisin del primero respecto al segundo.
!. &e ingresan tres notas de un alumno, si el promedio es mayor o igual a siete mostrar un
mensa3e <$romocionado<.
,. &e ingresa por teclado un nmero positivo de uno o dos d%gitos )..MM+ mostrar un
mensa3e indicando si el nmero tiene uno o dos d%gitos.
)Tener en cuenta que condicin debe cumplirse para tener dos d%gitos, un nmero
entero+
ESTRUCTURAS CONDICIONALES ANIDADAS
9ecimos que una estructura condicional es anidada cuando por la rama del verdadero o el
falso de una estructura condicional 1ay otra estructura condicional.
*l diagrama de flu3o que se presenta contiene dos estructuras condicionales. La principal se
trata de una estructura condicional compuesta y la segunda es una estructura condicional
simple y est contenida por la rama del falso de la primer estructura.
*s comn que se presenten estructuras condicionales anidadas an ms comple3as.
Problema:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el
promedio e imprima alguno de estos mensa3es"
&i el promedio es BFN mostrar <$romocionado<.
&i el promedio es BF. y EN mostrar <Regular<.
&i el promedio es E. mostrar <Reprobado<.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
#nalicemos el siguiente diagrama. &e ingresan tres valores por teclado que representan las
notas de un alumno, se obtiene el promedio sumando los tres valores y dividiendo por ,
dic1o resultado )Tener en cuenta que si el resultado es un valor real solo se almacena la
parte entera+.
$rimeramente preguntamos si el promedio es superior o igual a N, en caso afirmativo va por
la rama del verdadero de la estructura condicional mostramos un mensa3e que indica
<$romocionado< )con comillas indicamos un te(to que debe imprimirse en pantalla+.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
*n caso que la condicin nos de falso, por la rama del falso aparece otra estructura
condicional, porque todav%a debemos averiguar si el promedio del alumno es superior o
igual a cuatro o inferior a cuatro.
*stamos en presencia de dos estructuras condicionales compuestas.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraCondicionalAnidada1
{
class Program
{
static void Main(string[] args)
{
int nota1,nota2,nota3;
string linea;
Console.Write("Ingrese primer nota:");
linea = Console.ReadLine();
nota1=int.Parse(linea);
Console.Write("Ingrese segunda nota:");
linea = Console.ReadLine();
nota2 = int.Parse(linea);
Console.Write("Ingrese tercer nota:");
linea = Console.ReadLine();
nota3 = int.Parse(linea);
int promedio=(nota1 + nota2 + nota3) / 3;
if (promedio>=7)
{
Console.Write("Promocionado");
}
else
{
if (promedio>=4)
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
{
Console.Write("Regular");
}
else
{
Console.Write("Reprobado");
}
}
Console.ReadKey();
}
}
}
Codifiquemos y e3ecutemos este programa. #l correr el programa deber solicitar por
teclado la carga de tres notas y mostrarnos un mensa3e segn el promedio de las mismas.
$odemos definir un con3unto de variables del mismo tipo en una misma l%nea"
int nota1,nota2,nota3;
*sto no es obligatorio pero a veces, por estar relacionadas, conviene.
# la codificacin del if anidado podemos observarla por el else del primer if.
$ara no tener problemas )olvidarnos+ con las llaves de apertura y cerrado podemos ver la
siguiente regla"
Cada v-rtice representa una llave de apertura y una de cierre"
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Problemas propuestos
. &e cargan por teclado tres nmeros distintos. /ostrar por pantalla el mayor de ellos.
!. &e ingresa por teclado un valor entero, mostrar una leyenda que indique si el nmero
es positivo, nulo o negativo.
,. Confeccionar un programa que permita cargar un nmero entero positivo de 1asta
tres cifras y muestre un mensa3e indicando si tiene , !, o , cifras. /ostrar un mensa3e
de error si el nmero de cifras es mayor.
.. An postulante a un empleo, realiza un test de capacitacin, se obtuvo la siguiente
informacin" cantidad total de preguntas que se le realizaron y la cantidad de preguntas
que contest correctamente. &e pide confeccionar un programa que ingrese los dos
datos por teclado e informe el nivel del mismo segn el porcenta3e de respuestas
correctas que 1a obtenido, y sabiendo que"
0ivel m(imo" $orcenta3eBFM;L.
0ivel medio" $orcenta3eBFNDL y EM;L.
0ivel regular" $orcenta3eBFD;L y ENDL.
Cuera de nivel" $orcenta3eED;L.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
ESTRUCTURAS CONDICIONALES COMPUESTAS CON OPERADORES
LOGICOS
7asta a1ora 1emos visto los operadores"
Relacionale# (,! /! ,0! /0 ! 00! 10)
-atem.tico# (2! 3! 4! 5! 6)
pero nos estn faltando otros operadores imprescindibles"
Lgico# (77! 88).
*stos dos operadores se emplean fundamentalmente en las estructuras condicionales para
agrupar varias condiciones simples.
O$era%or 77
Traducido se lo lee como OPQ. &i la Condicin es verdadera P la condicin ! es verdadera
luego e3ecutar la rama del verdadero.
Cuando vinculamos dos o ms condiciones con el operador ORRQ, las dos condiciones
deben ser verdaderas para que el resultado de la condicin compuesta de @erdadero y
contine por la rama del verdadero de la estructura condicional.
La utilizacin de operadores lgicos permiten en muc1os casos plantear algoritmos ms
cortos y comprensibles.
Problema:
Confeccionar un programa que lea por teclado tres nmeros distintos y nos muestre el
mayor.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
*ste e3ercicio est resuelto sin emplear operadores lgicos en un concepto anterior del
tutorial. La primera estructura condicional es una *&TRACTAR# C809:C:80#L
C8/$A*&T# con una C809:C:80 C8/$A*&T#.
$odemos leerla de la siguiente forma"
&i el contenido de la variable num es mayor al contenido de la variable num! P si el
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
contenido de la variable num es mayor al contenido de la variable num, entonces la
C809:C:80 C8/$A*&T# resulta @erdadera.
&i una de las condiciones simples da falso la C809:C:80 C8/$A*&T# da Calso y
continua por la rama del falso.
*s decir que se mostrar el contenido de num si y slo si numBnum! y numBnum,.
*n caso de ser Calsa la condicin, analizamos el contenido de num! y num, para ver cual
tiene un valor mayor.
*n esta segunda estructura condicional no se requieren operadores lgicos al 1aber una
condicin simple.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CondicionCompuesta1
{
class Program
{
static void Main(string[] args)
{
int num1,num2,num3;
string linea;
Console.Write("Ingrese primer valor:");
linea = Console.ReadLine();
num1=int.Parse(linea);
Console.Write("Ingrese segundo valor:");
linea = Console.ReadLine();
num2 = int.Parse(linea);
Console.Write("Ingrese tercer valor:");
linea = Console.ReadLine();
num3 = int.Parse(linea);
if (num1>num2 && num1>num3)
{
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Console.Write(num1);
}
else
{
if (num2>num3)
{
Console.Write(num2);
}
else
{
Console.Write(num3);
}
}
Console.ReadKey();
}
}
}
O$era%or 88
Traducido se lo lee como O8Q. &i la condicin es @erdadera 8 la condicin ! es @erdadera,
luego e3ecutar la rama del @erdadero.
Cuando vinculamos dos o ms condiciones con el operador O8r<, con que una de las dos
condiciones sea @erdadera alcanza para que el resultado de la condicin compuesta sea
@erdadero.
Problema:
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
&e carga una fec1a )d%a, mes y a6o+ por teclado. /ostrar un mensa3e si corresponde al
primer trimestre del a6o )enero, febrero o marzo+ Cargar por teclado el valor num-rico del
d%a, mes y a6o.
*3emplo" dia"; mes" a6o"!;;.
Diagrama %e *lu+o:
La carga de una fec1a se 1ace por partes, ingresamos las variables dia, mes y a6o.
/ostramos el mensa3e <Corresponde al primer trimestre< en caso que el mes ingresado por
teclado sea igual a , ! ,.
*n la condicin no participan las variables dia y a6o.
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 CondicionCompuesta2
{
class Program
{
static void Main(string[] args)
{
int dia,mes,ao;
string linea;
Console.Write("Ingrese nro de da:");
linea = Console.ReadLine();
dia = int.Parse(linea); ;
Console.Write("Ingrese nro de mes:");
linea = Console.ReadLine();
mes=int.Parse(linea);
Console.Write("Ingrese nro de ao:");
linea = Console.ReadLine();
ao=int.Parse(linea);
if (mes==1 || mes==2 || mes==3)
{
Console.Write("Corresponde al primer
trimestre");
}
Console.ReadLine();
}
}
}
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Problemas propuestos
. Realizar un programa que pida cargar una fec1a cualquiera, luego verificar si dic1a
fec1a corresponde a 0avidad.
!. &e ingresan tres valores por teclado, si todos son iguales se imprime la suma del
primero con el segundo y a este resultado se lo multiplica por el tercero.
,. &e ingresan por teclado tres nmeros, si todos los valores ingresados son menores a
;, imprimir en pantalla la leyenda <Todos los nmeros son menores a diez<.
.. &e ingresan por teclado tres nmeros, si al menos uno de los valores ingresados es
menor a ;, imprimir en pantalla la leyenda <#lguno de los nmeros es menor a diez<.
D. *scribir un programa que pida ingresar la coordenada de un punto en el plano, es
decir dos valores enteros ( e y )distintos a cero+.
$osteriormente imprimir en pantalla en que cuadrante se ubica dic1o punto. )S
Cuadrante si ( B ; P y B ; , !S Cuadrante" ( E ; P y B ;, etc.+
T. 9e un operario se conoce su sueldo y los a6os de antigUedad. &e pide confeccionar
un programa que lea los datos de entrada e informe"
a+ &i el sueldo es inferior a D;; y su antigUedad es igual o superior a ; a6os,
otorgarle un aumento del !; L, mostrar el sueldo a pagar.
b+&i el sueldo es inferior a D;; pero su antigUedad es menor a ; a6os, otorgarle un
aumento de D L.
c+ &i el sueldo es mayor o igual a D;; mostrar el sueldo en pantalla sin cambios.
N. *scribir un programa en el cual" dada una lista de tres valores num-ricos distintos se
calcule e informe su rango de variacin )debe mostrar el mayor y el menor de ellos+
ESTRUCTURAS REPETITIVAS
7asta a1ora 1emos empleado estructuras &*CA*0C:#L*& y C809:C:80#L*&. *(iste
otro tipo de estructuras tan importantes como las anteriores que son las estructuras
R*$*T:T:@#&.
Ana estructura repetitiva permite e3ecutar una instruccin o un con3unto de instrucciones
varias veces.
Ana e3ecucin repetitiva de sentencias se caracteriza por"
I La o las sentencias que se repiten.
I *l test o prueba de condicin antes de cada repeticin, que motivar que se repitan o no
las sentencias.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Estructura repett!a "#le$
Representacin grfica de la estructura V1ile"
0o debemos confundir la representacin grfica de la estructura repetitiva V1ile )/ientras+
con la estructura condicional if )&i+
Cuncionamiento" *n primer lugar se verifica la condicin, si la misma resulta verdadera se
e3ecutan las operaciones que indicamos por la rama del @erdadero.
# la rama del verdadero la graficamos en la parte inferior de la condicin. Ana l%nea al final
del bloque de repeticin la conecta con la parte superior de la estructura repetitiva.
*n caso que la condicin sea Calsa contina por la rama del Calso y sale de la estructura
repetitiva para continuar con la e3ecucin del algoritmo.
*l bloque se repite /:*0TR#& la condicin sea @erdadera.
Im$ortante: &i la condicin siempre retorna verdadero estamos en presencia de un ciclo
repetitivo infinito. 9ic1a situacin es un error de programacin, nunca finalizar el programa.
Problema :
Realizar un programa que imprima en pantalla los nmeros del al ;;.
&in conocer las estructuras repetitivas podemos resolver el problema empleando una
estructura secuencial. :nicializamos una variable con el valor , luego imprimimos la
variable, incrementamos nuevamente la variable y as% sucesivamente.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
Diagrama %e *lu+o:
&i continuamos con el diagrama no nos alcanzar%an las pr(imas D pginas para finalizarlo.
*mplear una estructura secuencial para resolver este problema produce un diagrama de
flu3o y un programa en CW muy largo.
#1ora veamos la solucin empleando una estructura repetitiva V1ile"
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
*s muy importante analizar este diagrama"
La primera operacin inicializa la variable ( en , seguidamente comienza la estructura
repetitiva V1ile y disponemos la siguiente condicin )( EF ;;+, se lee /:*0TR#& la
variable ( sea menor o igual a ;;.
#l e3ecutarse la condicin retorna @*R9#9*R8 porque el contenido de ( )+ es menor o
igual a ;;. #l ser la condicin verdadera se e3ecuta el bloque de instrucciones que contiene
la estructura V1ile. *l bloque de instrucciones contiene una salida y una operacin.
&e imprime el contenido de (, y seguidamente se incrementa la variable ( en uno.
La operacin (F( H se lee como <en la variable ( se guarda el contenido de ( ms <. *s
decir, si ( contiene luego de e3ecutarse esta operacin se almacenar en ( un !.
#l finalizar el bloque de instrucciones que contiene la estructura repetitiva se verifica
nuevamente la condicin de la estructura repetitiva y se repite el proceso e(plicado
anteriormente.
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MDULO DE FORMACIN EVALUACIN DEL
APRENDIZAJE
/ientras la condicin retorne verdadero se e3ecuta el bloque de instrucciones= al retornar
falso la verificacin de la condicin se sale de la estructura repetitiva y continua el algoritmo,
en este caso finaliza el programa.
Lo ms dif%cil es la definicin de la condicin de la estructura V1ile y qu- bloque de
instrucciones se van a repetir. 8bservar que si, por e3emplo, disponemos la condicin (
BF;; ) si ( es mayor o igual a ;;+ no provoca ningn error sintctico pero estamos en
presencia de un error lgico porque al evaluarse por primera vez la condicin retorna falso y
no se e3ecuta el bloque de instrucciones que quer%amos repetir ;; veces.
0o e(iste una R*C*T# para definir una condicin de una estructura repetitiva, sino que se
logra con una prctica continua solucionando problemas.
Ana vez planteado el diagrama debemos verificar si el mismo es una solucin vlida al
problema )en este caso se debe imprimir los nmeros del al ;; en pantalla+, para ello
podemos 1acer un seguimiento del flu3o del diagrama y los valores que toman las variables
a lo largo de la e3ecucin"
9

"
:
;
.
.
<<
<
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.

También podría gustarte