Vous êtes sur la page 1sur 5

Pero antes … ejercicios

ICIN 051  Desarrolle un programa que solicite un


Programación de Computadores RUT y calcule el dígito verificador.
Semestre 01/2006
Oscar Mapocho Salazar Cerna
mapocho@gmail.com
 Recuerde que:
 Un RUT no tiene más de 8 dígitos
 Supongamos que RUT=d1d2d3d4d5d6d7d8
 Calculo 3*d1+2*d2+7*d3+6*d4+5*d5+4*d6+3*d7+2*d8
Clase 6: Iteración de instrucciones
 Calculo resto de dividir la suma anterior por 11
 Luego a 11 le resto el “resto” anterior y:
 Si da 10, entonces el dígito verificador es K
 Si da 11, entonces el dígito verificador es 0
 Si no, el dígito verificador el número obtenido
Instituto de Computación - Universidad Austral de Chile - Campus Puerto Montt
Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Una solución Continuación de solución

 Declaro las variables auxiliares:  Hago los cálculos necesarios


// Variables auxiliares para los calculos d8= Rut % 10;
int d1, d2, d3, d4, d5, d6, d7, d8, suma, resto; d7= (Rut / 10) % 10;
char dv; d6= (Rut / 100) % 10;
d5= (Rut / 1000) % 10;
 Leo el rut como un entero: d4= (Rut / 10000) % 10;
Console.Write("Ingrese un RUT: "); d3= (Rut / 100000) % 10;
Rut= Convert.ToInt32(Console.ReadLine()); d2= (Rut / 1000000) % 10;
d1= (Rut / 10000000) % 10;
suma= 3*d1+2*d2+7*d3+6*d4+5*d5+4*d6+3*d7+2*d8;
resto= 11 - suma % 11;

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

1
Y finalmente Otro ejercicio más

if (resto==10) {
 Desarrolle un programa que solicite una
dv= 'K';
} else if (resto==11) { fecha (3 enteros que indiquen el día, el
dv= '0'; mes y el año) y muestre en pantalla a
} else { qué día del año corresponde.
dv= Convert.ToChar(resto);
}  Por ejemplo:
Console.WriteLine( "Rut= {0}-{1}", Rut, dv);  La fecha 16/01/2000 corresponde al día 15
Console.ReadLine(); del año 2000.
 La fecha 11/03/2006 corresponde al día 70
del año 2000.

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Y más todavía Iteraciones

 Desarrolle un programa que solicite una  Se usan para ejecutar una o varias
fecha (3 enteros que indiquen el día, el instrucciones muchas veces
mes y el año) y muestre en pantalla a
qué día de la semana cayó o caerá.  Se puede resumir como:
 Hacer algo hasta que …
 Asuma que el 01/01/0001 cayó día
Sábado.  Mientras pase esto, hacer esto otro
 Hacer esto n veces
 Por ejemplo:
 La fecha 20/05/1902 cayó día Martes
 La fecha 06/11/2006 caerá día Lunes
 La fecha 12/10/1492 cayó día Viernes
Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

2
El ciclo for Ejemplo del for

for( inicialización; condición; iteración ) using System;


{
class CicloFor{
instrucciones; public static void Main()
} {
int i; //el contador

for( i = 0; i < 10; i++)


{
Console.WriteLine( i );
}
}
}

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Ejemplo ciclo for más difícil Ciclo While

using System;
While( condición )
class CicloForAnidado{
public static void Main()
{
{ instrucciones;
int i;
int j; }
for( i=0, j=10; i<j; i++, j--)
{
Console.WriteLine("( {0} , {1} )", i, j);
}
}
}

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

3
Ejemplo while Ciclo infinito con el while

using System; using System;

class BucleWhile{ class CicloInfinitoWhile{


public static void Main() public static void Main()
{ {
int i = 0; int i = 0;
while( i<10) while( true)
{ {
Console.WriteLine( i ); Console.WriteLine( i );
i = i+1; i = i+1;
} }
} }
} }

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Ciclo do-while Ejemplo do-while

class BucleDoWhile {
do { public static void Main() {
string s = "";
instrucciones;
do {
} Console.WriteLine( “Ingresa si para salir del ciclo" );
s = Console.ReadLine();
while( condición ); }
while( s != "si" );
}
}

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

4
Usando continue y break Ejemplo continue/break

using System;
 Permiten saltar incondicionalmente:
 continue: al inicio de un ciclo class continueBreak {
public static void Main() {
 break: afuera de un ciclo for(int i = 0; i<10; i++ ) {
if (i==5)
continue;
if (i==9)
break;
Console.Write("{0},",i);
}
}
}

Material para módulo “ICIN 051 – Programación de Computadores” Material para módulo “ICIN 051 – Programación de Computadores”
Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Ejercicios

 Desarrollo el ejercicio del RUT pero


ahora usando un ciclo.
 Desarrolle un programa que solicite
números reales en forma cíclica hasta
leer un valor 0, momento en el cual
despliega en pantalla el promedio de
los valores ingresados.

Material para módulo “ICIN 051 – Programación de Computadores”


Departamento de Ingeniería Industrial - Universidad Austral de Chile – Campus Puerto Montt

Vous aimerez peut-être aussi