Está en la página 1de 193

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

El lenguaje C#
1.1.1. Introduccin
Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje
de programacin surgieron en 1998 , haciendo referencia a un lenguaje que
entonces llamaban COOL y que decan era muy similar a Java.
En junio de 2000, Microsoft despej todas las dudas liberando la especificacin de un
nuevo lenguaje llamado C#. A esto le sigui rpidamente la primera versin de
prueba del entorno de desarrollo estndar (SDK) .Net, que inclua un compilador de
C#. El nuevo lenguaje estaba diseado por Anders Hejlsberg ( creador de Turbo Pascal
y arquitecto de Delphi ), Scott Wiltamuth y Peter Golde. Entonces describieron
el lenguaje como "...simple, moderno, orientado a objetos, de tipado seguro y con
una fuerte herencia de
C/C++".

Porqu C#?
La plataforma .NET acepta varios lenguajes. Por ahora, C#, Visual Basic, C++ gestionado,
Nemerle, FORTRAN, Java, Python, etc. , y con capacidad para aceptar prcticamente
cualquier lenguaje. Entonces
la pregunta es, porqu se eligi C# en lugar de cualquier otro lenguaje?.
La razn fundamental es que C# se dise para la plataforma .NET y es capaz de
utilizar todo su potencial. Tambin es cierto que es un lenguaje "limpio" en el
sentido de que al no tener que
proporcionar compatibilidad hacia detrs se ha tenido ms libertad en el diseo y se ha
puesto especial incapi en la simplicidad. Por ejemplo, en C# hay un tipo de clase y
siempre se le aplica el recolector de basura mientras que en C++ gestionado hay dos
tipos de clases, una a las que se le aplica el recolector y otra a la que no.

Tipos
Importancia de los tipos de datos
Los tipos son la base de cualquier programa. Un tipo no es ms que un espacio en el
que se almacena una informacin, ya sean nmeros, palabras o tu fecha de
nacimiento.
Los tipos de datos son especialmente importantes en C# porque es un lenguaje con
informacin de tipos. Esto significa que, en todas las operaciones, el compilador
comprueba los tipos para ver su
compatibilidad. Las operaciones no vlidas no se compilan. De esta forma se evitan
muchos errores y se consigue una mayor fiabilidad

Tipos en C#
En C# los tipos bsicos no son ms que alias para tipos predefinidos en la librera
base de la plataforma
Mono/.NET . As, el tipo entero int, no es ms que una forma rpida de escribir
System.Int32 .
Los tipos del lenguaje C# son divididos en dos grandes categoras: tipos por valor y
tipos por referencia. Existe una tercera categora de tipos, disponible solo cuando se
usa cdigo no seguro: los punteros, que

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

se discutirn ms adelante.Los tipos por valor difieren de los tipos por referencia en
que las variables de los tipos por valor contienen directamente su valor, mientras
que las variables de los tipos por referencia almacenan referencias a objetos. Con
los tipos por referencia, es posible que dos variables se refieran al mismo objeto, y
por tanto es posible que las operaciones sobre una variable afecten al objeto al que
hace
referencia otra variable. Con los tipos por valor, cada variable tienen su propia
copia de los datos, y las operaciones sobre una no afectar a la otra.

Enteros
Los tipos que sirven para almacenar nmeros enteros son: byte, sbyte. short, ushort,
int, uint, long y ulong. Como se aprecia en la tabla, C# define versiones con y sin signo
para tipos con los mismo bytes utilizados. La diferencia entre enteros con signo y sin
signo radica en el modo de interpretar el bit de
nivel superior del entero. Si se especifica un entero con signo, el compilador entender
que el primer bit indica el signo: 0 si es positivo, 1 si es negativo. Sin embargo, los
enteros sin signo, ese bit se puede
utilizar para almacen el nmero y as se consigue que los enteros sin signo puedan
almacenar nmeros el doble de grandes que los enteros con signo.
Probablemente el tipo ms utilizado es el int, pus se utiliza para controlar matrices,
inidizar arreglos adems de las operaciones normales con enteros. Adems, se trata de
un entero de tamao medio: ms pequeo que long y ulong, pero ms grande que byte,
sbyte, short y ushort.
El siguiente ejemplo muestra la declaracin y uso de algunos tipos enteros
calculando el nmero de segundos en una hora, dia y en un ao.
using System;
class Enteros{
public static void Main()
{
int Minuto = 60;
//segundos por
minuto int Hora = Minuto*60;
int Dia = Hora*24;
long Anio = Dia*365;
Console.WriteLine("Segundos en un dia: {0}", Dia);
Console.WriteLine("Segundos en un ao: {0}", Anio);
}
}
De nuevo hemos usado el mtodo Console.WriteLine para imprimir los resultados por la
consola. El
identificador {0} dentro de la cadena de texto indica que se sustituye {0} por el primer
argumento. si hubiera ms de un argumento, se seguira con {1}, y as sucesivamente.
Por ejemplo, las dos lneas que utilizan Console.WriteLine se pueden simplificar as:
Console.WriteLine("En un dia: {0}; en un ao: {1}", Dia, Anio );
La clase Console, se describe ms en detalle.

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

2.2.3. Tipos de coma flotante


Los tipos de coma flotante sirven para representar a nmeros con parte fraccionaria.
La representacin por supuesto puede no ser exacta, bien por errores de la
mquina, bien porque el nmero de decimales que se puede alojar es finito.
Existen dos clases de tipos de punto flotante, float y double. De los dos, el ms usado es
double, pus es
el valor que devuelven la mayora de las funciones matemticas de la librera base.
El siguiente ejemplo calcula la raz cuadrada y el logaritmo de dos:
using System;
class Flotante{
public static void Main()
{
int a = 2;
double log2 = Math.Log(2);
double raiz2 = Math.Sqrt(2);
Console.WriteLine("El logaritmo de dos es {0}", log2 );
Console.WriteLine("La raiz de dos es {0}", raiz2 );
}
}

y la salida ser la siguiente:


El logaritmo de dos es 0.693147180559945
La raiz de dos es 1.4142135623731

si intentamos cambiar el tipo de log2 a otro de menos precisin, como float o int, el compilador
protestar. Esto se debe, como hemos dicho a que el valor devuelto por Math.Log() es de tipo
double y si
se quiere convertir a float, pus se perdern datos. Lo mismo ocurre con la mayora de los
miembros de
la clase Math, como Math.Sin(), Math.Tan(), etc.

2.2.4. El tipo decimal


El tipo decimal es un tipo "nuevo" en el sentido de que no tiene equivalente en C/C++. Es
muy parecido
a los tipo de coma flotante float y double.
En la aritmtica de los tipos de coma flotante ordinarios, se pueden producir leves
errores de redondeo.
El tipo decimal elimina estos errores y puede representar correctamente hasta 28 lugares
decimales. Esta capacidad para representar valores decimales sin errores de redondeo lo
hace especialmente eficaz para clculos monetarios.

El tipo bool

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

El tipo bool sirve para expresar los valores verdadero/falso, que en C# se muestran con las
palabras reservadas true y false.
En C#, por ejemplo, una instruccin if solo puede estar gobernada por un valor bool, no como en
C/C++, que lo puede estar tambin por un entero. De esta forma se ayuda a eliminar el error tan
frecuente en programadores de C/C++ cuando usa "=" en lugar de "==". En definitiva, la inclusin
del tipo bool en el lenguaje ayuda a la claridad del cdigo y evita algunos errores muy comunes

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

10

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

11

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

12

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

13

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

14

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

15

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

16

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

17

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

18

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

19

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

20

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

21

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

22

Carlos Rodrguez Torvisco Algortmica

23

Lengu
uaje de Prog
gramacin

Carlos Rodrrguez Torvissco Algortm


mica

Es
Estru
uctu
ura Secue
Se
encia
al
2.1 Conceptto
Una estructura
e
se
ecuencial es aquella en la que las ins
strucciones estn
e
una a ccontinuacin
n de la
otra siguiendo
s
un
na secuencia
a nica, sin cambios de
e ruta. La esstructura seccuencial tiene una
entra
ada y una salida.
En la Figura se muestra
m
el pseudocdigo
p
o y el diagram
ma de flujo de
d una estru
uctura secuencial.
Pseudocdigo
Inic
cio
Ac
ccin

Ac
ccin

Ac
ccin

.
.
.
Ac
ccion n
Fin

24

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

PROBLEMAS RESUELTOS
1.Ecribir un algoritmo que determine la suma de dos nmeros enteros.
Datos
Numero 1
5
9

Numero 2
8
5

Resultado
Suma
13
14

1.1.Algoritmo
Inicio {calcular la suma de dos nmeros}
{Ingresamos los nmeros}
Leer a
Leer b
{Calculamos la suma en una variable suma}
Suma=a+b
{Mostramos el resultado}
Escribir suma
Fin
1.2.Codificacion(C#)
static void Main(string[] args)
{
//declaramos nuestras variables
int numero1,numero2, suma;
//introducimos el primer nmero
Console.Write("ingrese el primer nmero : ");
//leemos nuestro nmero
numero1 = int.Parse(Console.ReadLine());
//introducimos el segundo nmero
Console.Write("ingrese el segundo nmero : ");
//leemos nuestro segundo nmero
numero2 = int.Parse(Console.ReadLine());
//sumamos los datos que tenemos
suma = numero1 + numero2;
//mostramos los resultados
Console.Write("la suma es : {0}", suma);
Console.ReadLine();//pausa la pantalla
}

2.escribir un algoritmo y su codificacion para calcular el area de trinagulo.


Datos
base
4
9

altura
5
5

Resultado
Area
10
22,5

Lenguaje de Programacin

25

Carlos Rodrguez Torvisco Algortmica

2.1.Algoritmo
Inicio {calcular el area de un triangulo}
{Ingresamos base y altura}
Leer bas
Leer altura
{Calculamos el area de un triangulo}
Area = (bas * altura) / 2
{Mostramos el resultado}
Escribir Area
Fin
2.2.Codificacion(C#)
static void Main(string[] args)
{
//declaramos nuestras variables
int bas, altura;
double area;
//ingresamos los datos
Console.Write("Ingresa base : ");
bas = int.Parse(Console.ReadLine());
Console.Write("Ingresa altura : ");
altura = int.Parse(Console.ReadLine());
//hacemos la operacion
area = (bas * altura) / 2;
//mostramos los resultados por pantalla
Console.Write("el area del triangulo es : {0}", area);
Console.ReadLine();
}

3.escribir un algoritmo y su codificacion que convierta una distancia medida en metros a


pies.
Datos
Distancia en metros
4
5
9
20

3.1.Algoritmo
Inicio {convertir una distancia medida en metros a pies}
{Ingresamos distancia en metros}
Leer metros
{Convertir distancia a pies}
pies = metros / (12 / 39.27)

{Mostramos el resultado}
Escribir pies
Fin

Resultado
Distancia en pies
13.09
16.362
29.45
65.45

Lenguaje de Programacin

26

Carlos Rodrguez Torvisco Algortmica

3.2.Codificacion(C#)
static void Main(string[] args)
{
//declaramos nuestras variables
float metros, pies;
//ingresamos los datos para almacenar en nuestras variables "metros"
Console.Write("Ingresa Metros : ");
metros = float.Parse(Console.ReadLine());
//hacemos la operacion
pies = metros / (12 / 39.27f);
//1 pie = 0.3048 metros
//1 pulgada = 25.4 mm
//mostramos los resultados por pantalla
Console.Write("el equivalente en pies es : {0}", pies);
Console.ReadLine();
}

4. escribir un algoritmo y su codificacion para calcular el total a pagar de un consumo


ingresado por el usuario , finalmente mostrar el IGV y el total a pagar por pantalla (incluye
IGV=0.19).
Datos
consumo
524.25
45.00

Resultado
IGV
99,61
8.55

TOTAL A PAGAR
623.86
53.55

4.1.Algoritmo
Inicio {calcular el igv y el monto total a pagar de un consumo ingresado por el usuario}
{Ingresamos consumo}
Leer consumo
{Calculamos el igv}
igv=consumo*0.19
{calculamos el totap a pagar}
tap=consumo+igv
{Mostramos el resultado}
Escribir igv
Escribir tap
Fin
4.2.Codificacion(C#)
static void Main(string[] args)
{
//definiciones de variables
float consumo, igv, tap;
//ingresando consumo
Console.Write("Ingrese el monto de su consumo: ");
consumo = float.Parse(Console.ReadLine());
//calculamos el igv

27

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

igv = consumo * 0.19f;


//calculamos el total a pagar
tap = consumo + igv;
Console.WriteLine("El IGV es : {0}",igv);
Console.Write("Total a pagar:{0}",tap);
Console.Read();
}

5. escribir un algoritmo y su codificacion para calcular la edad de una persona


Datos
Fecha de nacimiento
1991
1985

Fecha actual
2008
2008

Resultado
Edad
17
23

5.1.Algoritmo
Inicio {calcular la edad de una persona}
{Ingresamos fecha de nacimiento}
Leer fnac
{Ingresamos fecha actual}
Leer fac
{calculamos la edad}
Edad=facfnac
{Mostramos el resultado}
Escribir Edad
Fin
5.2.Codificacion(C#)
static void Main(string[] args)
{
//declaramos nuestras variables
int edad, fnac, fac;
Console.Write("ingrese el ao que nacio :");
fnac = int.Parse(Console.ReadLine());
Console.Write("ingrese el ao actual :");
fac = int.Parse(Console.ReadLine());
//calculamos la edad
edad = fac - fnac;
//mostramos la edad de la persona
Console.Write("su edad es : {0}", edad);
Console.Read();
}

6. escribir un algoritmo y su codificacion para que un ingeniero de sistemas que desea


invertir su capital en un banco y desea saber cunto dinero ganar despues en un mes si el
banco paga a razn de 2% mensual.
Datos
Capital
800
400
500
1050

Resultado
Ganancia
16
8
10
21

28

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

6.1.Algoritmo
Inicio {calcular la ganancia de un mes de un ingeniero}
{Ingresamos capital}
Leer capital
{Calculamos el capital}
ganancia = capital * 0.02
{Mostramos el resultado}
Escribir ganancia
Fin
6.2.Codificacion(C#)
static void Main(string[] args)
{
double cap, gan;
Console.Write("ingrese su capital : ");
cap = double.Parse(Console.ReadLine());
gan = cap * 0.02;
Console.Write("su ganacia es :{0} ", gan);
Console.Read();
}

7. escribir un algoritmo y su codificacion para que un profesor determine el porcentaje de


hombres y el porcentaje de mujeres hay en un grupo de estudiantes.
Datos
Numero de hombres
Numero de mujeres
20
15

20
29

Resultado
Porcentaje de
Porcentaje de
hombres
mujeres
50%
50%
34%
66%

7.1.Algoritmo
Inicio {calcular el porcentaje de varones y el porcentaje de mujeres de un grupo de
Estudiantes}
{Ingresamos nmero de hombres}
Leer nh
{Ingresamos nmero de mujeres}
Leer nm
{Calculamos el total de estudiantes}
ta=nh+nm
{calculamos el porcentaje de hombres}
ph=nh*100 div ta
{calculamos el porcentaje de mujeres}
pm=nm*100 div ta
{Mostramos el resultado}
Escribir ph
Escribir pm
Fin

29

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

7.2.Codificacion(C#)
static void Main(string[] args)
{
int nh, nm;
int ph, ta, pm;
//ingresamos el numero de hombres
Console.Write("ingrese numero de hombres : ");
nh = int.Parse(Console.ReadLine());
//ingresamos el numero de mujeres
Console.Write("ingrese numero de mujeres : ");
nm = int.Parse(Console.ReadLine());
//calculamos el total de alumnos
ta = nh + nm;
//calculamos el porcentaje de hombres
ph = nh *100 / ta;
//calculamos el porcentaje de mujeres
pm = nm * 100/ta;
Console.WriteLine("el porcentaje de hombres es :{0}%",ph);
Console.WriteLine("el porcentaje de mujeres es :{0}%",pm);
Console.Read();
}

8. Construya un programa tal, que dado el costo de un articulo vendido y la cantidad de


dinero entregado por el cliente, calcule e imprima el cambio que debe entregrsele al
mismo.

Precio del Producto


50
20

Datos
Pago que Realiza el Cliente
70
25

Resultado
(cambio a entregar)
20
5

8.1.Algoritmo
Inicio {Cambio}
{Ingresamos Precio del Producto}
Leer prepro
{Ingresamos Pago que Realiza el Cliente}
Leer pago
{Calculamos la Devolucion o el Vuelto}
Devo=pago prepro;
Escribir Devo
Fin
8.2.Codificacion(C#)
static void Main(string[] args)
{
float prepro, pago, devo = 0;
//Ingresamos Precio del Producto
Console.Write("Ingrese el Precio del Producto : ");

Lenguaje de Programacin

30

Carlos Rodrguez Torvisco Algortmica

prepro = float.Parse(Console.ReadLine());
//Ingresamos Pago que Realiza el cliente
Console.Write("Ingrese el Pago que Realiza el Cliente: ");
pago = float.Parse(Console.ReadLine());
//Calculamos el Vuelto o Devolucion
devo = pago - prepro;
//Mostramos el Cambio
Console.WriteLine("El cambio a entregar es :s/.{0}", devo);
Console.ReadLine();

9 Hacer un programa que al dar la hora hh, mm minuto , ss segundo, escriba la hora
correspondiente al segundo anterior.

Hora
3
5

Datos
Minuto
20
2

segundo
25
0

Resultado(segundo anterior)
Hora
Minuto
Segundo
3
20
24
5
1
59

9.1.Algoritmo
Inicio {la hora al segundo anterior}
Leer hh,mm,ss
TotalSegundos=(hh*3600+mm*60+ss)1
hh = (TotalSegundos div 3600) mod 24;
mm = (TotalSegundos mod 3600) div 60;
ss = (TotalSegundos % 3600) div 60;
{Mostramos la Hora Correspondiente al Segundo Anterior}
Escribir hh,mm,ss
Fin
9.2.Codificacion(C#)
static void Main(string[] args)
{
int hh, mm, ss;
Console.Write("Ingresa Hora:");
hh = int.Parse(Console.ReadLine());
Console.Write("Ingresa Minuto:");
mm = int.Parse(Console.ReadLine());
Console.Write("Ingresa Segundo:");
ss = int.Parse(Console.ReadLine());
int TotalSegundos = (hh * 3600 + mm * 60 + ss) -1;
hh = (TotalSegundos / 3600) % 24;
mm = (TotalSegundos % 3600) / 60;
ss = (TotalSegundos % 3600) % 60;
//mostramos la hora al segundo anterior
Console.WriteLine("{0}:{1}:{2}", hh, mm, ss);
Console.Read();
}

10. Hacer un programa que al dar la hora hh, mm minuto , ss segundo, escriba la hora
correspondiente despues de 2 segundos

31

Lenguaje de Programacin

Hora
3
5

Datos
Minuto
20
2

segundo
25
59

Carlos Rodrguez Torvisco Algortmica


Resultado(despus de 2 segundos)
Hora
Minuto
Segundo
3
20
27
5
3
1

10.1.Algoritmo
Inicio {la hora despus de 2 segundos }
Leer hh,mm,ss
TotalSegundos=(hh*3600+mm*60+ss)+2
hh = (TotalSegundos div 3600) mod 24;
mm = (TotalSegundos mod 3600) div 60;
ss = (TotalSegundos % 3600) div 60;
{Mostramos la Hora Correspondiente despues de 2 segundos}
Escribir hh,mm,ss
Fin

10.2.Codificacion(C#)
static void Main(string[] args)
{
int hh, mm, ss;
Console.Write("Ingresa Hora:");
hh = int.Parse(Console.ReadLine());
Console.Write("Ingresa Minuto:");
mm = int.Parse(Console.ReadLine());
Console.Write("Ingresa Segundo:");
ss = int.Parse(Console.ReadLine());
int TotalSegundos = (hh * 3600 + mm * 60 + ss) + 2;
hh = (TotalSegundos / 3600) % 24;
mm = (TotalSegundos % 3600) / 60;
ss = (TotalSegundos % 3600) % 60;
//mostramos la hora despues de 2 segundos
Console.WriteLine("{0}:{1}:{2}", hh, mm, ss);
Console.Read();
}

11 Disear un algoritmo que me permita ingresar un valor inicial y luego un valor final, para
luego Calcular el valor central de los nmeros.
Datos
Valor Inicial
2
10

11.1.Algoritmo
Inicio {Calcular el Valor Medio}
Leer ValorInicial,ValorFinal
{Calculo del Valor Central}

Valor Final
4
20

Resultado
Valor Central
3
15

32

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

ValorCentral=( ValorInicial+ValorFinal)/ 2
Escribir ValorCentral
Fin
11.2.Codificacion(C#)
static void Main(string[] args)
{
int A1, A2;
int C;
Console.Write("Ingresa Valor Inicial:");
A1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Valor Final:");
A2 = int.Parse(Console.ReadLine());
C = (A1 + A2) / 2;
Console.WriteLine("Valor Central: " + C);
Console.ReadLine();
}

12.Escriba un programa tal, que dados el nombre de un dinosaurio, su peso y su longitud,


expresados estos dos ltimos en toneladas y pies, respectivamente, escriba el nombre del
dinosaurio, su peso expresado en kilogramos y su longitud expresada en metros.

Nombre
Rinoceronte
Choclosauri
o

Datos
Peso(Tonelada
s)
1
2

Longitud(Pies
)
25
59

Nombre
Rinoceronte
Choclosauri
o

1 Tonelada= 1000 kilos


12.1.Algoritmo
Inicio {Conversion}
{Ingresamos El Nombre del Dinosaurio}
Leer Nomb
{Ingresamos El Peso en Toneladas}
Leer pes
{Ingresamos La Longitud en Pies}
Leer lon
peskil = peso * 1000;
lonmet = lon * 0.3047f;
Escribir Nomb, peskil, lonmet
Fin
12.2.Codificacion(C#)
static void Main(string[] args)
{
float peso, lon, peskil = 0, lonmet = 0;

Resultado
Peso(Kilos Longitud(Metro
)
s)
1000
7,6175
2000
17,97

Lenguaje de Programacin

33

Carlos Rodrguez Torvisco Algortmica

string Nomb;
Console.Write("Ingrese el Nombre del Dinosaurio:");
Nomb = Console.ReadLine();
Console.Write("Ingrese el Peso en Toneladas : ");
peso = float.Parse(Console.ReadLine());
Console.Write("Ingrese la Longitud en Pies : ");
lon = float.Parse(Console.ReadLine());
peskil = peso * 1000;
lonmet = lon * 0.3047f;
Console.WriteLine("Nombre del Dinosaurio: " + Nomb);
Console.WriteLine("El Peso en Kilos es: " + peskil);
Console.WriteLine("La Longitud en Metros es: " + lonmet);
Console.ReadLine();

13.Una persona compr una estancia en Abancay. La extensin de la estancia esta


especificada en acres. Construya un programa, tal que dado como dato la extensin del
campo en "acres", calcule e imprima la extensin del mismo en hectreas
Datos
Extencion en Acres
200
100
500
450

Resultado
Extencion en Hectareas
80,94
40,47
202,35
182,115

13.1.Algoritmo
Inicio {calcular hectareas}
{Ingresamos extencion en Acres}
Leer exten
Escribir extcam * 4047 / 10000
Fin
13.2.Codificacion(C#)
static void Main(string[] args)
{
float extcam, extha;
Console.Write("Ingresar la Extensin del Campo en Acres: ");
extcam = float.Parse(Console.ReadLine());
extha = extcam * 4047 / 10000;
Console.WriteLine("La Extensin del Campo en Hectreas es: " +
extha);
Console.ReadLine();
}

14.Construya un programa que calcule e imprima el nmero de segundos que hay en un


determinado nmero de das.
Datos
Cantidad de Dias
1
30
24

Resultado
Total de Segundos
86400
2592000
2073600

34

Lenguaje de Programacin
15

Carlos Rodrguez Torvisco Algortmica


1296000

14.1.Algoritmo
Inicio {calcular total de segundos}
{Ingresamos el numero de dias}
Leer dias
Escribir dias*24*60*60
Fin
14.2.Codificacion(C#)
static void Main(string[] args)
{
int seg, dias;
Console.Write("Ingresar el Nmero de Das: ");
dias = int.Parse(Console.ReadLine());
seg = dias * 24 * 60 * 60;
Console.WriteLine(" ****En {0} Das hay {1} Segundos****", dias,
seg);
Console.ReadLine();
}

15.Contruya un programa que resuelva el problema que tienen en una gasolineria. Los
surtidores de la
misma registran lo que "surten" en galones, pero el precio de la
gasolina esta fijado en litros. El Programa debe calcular e imprimir lo que hay que cobrarle al
cliente.
Datos
Numero de Galones
4
3
2
15

Resultado
Total a Pagar
15,5182
11,63
7,75
58,19

15.1.Algoritmo
Inicio {calcular el total a pagar}
{Ingresamos el numero de galones}
Leer cons
Escribir cons * 3.785f * 1.025;
Fin
15.2.Codificacion(C#)
static void Main(string[] args)
{
float cons, total = 0;
Console.Write("Ingrese el Nmero de Galones Surtidos: ");
cons = float.Parse(Console.ReadLine());
total = cons * 3.785f * 1.025f;
Console.WriteLine("El Total es:" + total);

35

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Console.ReadLine();

16.En las olimpiadas de invierno, el tiempo que realizan los participantes en la competencia
de velocidad en pista, se mide en minutos, segundos y centsimas. La distancia que recorren,
por otra parte, se expresa en metros. Construya un programa que calcule la velocidad de los
participantes en kilmetros por hora de las diferentes competencias.
DAT0S

RESULTADO

Minutos

Segundos

Centsimas de
Segundo

Distancia en
Metros

Distancia
Recorrida

Velocidad
(KM/H)

59
45

60
12

0
25

1000
5000

1000
5000

1
6,63

16.1.Algoritmo
Inicio {calcular velocidad}
{Ingresamos el tiempo}
Leer min,seg,cen,dis
tiemseg = min * 60 + seg + (cen / 100)
veloms = dis / tiemseg
velokh = (veloms * 3600) / 1000
Escribir dis,velokh
Fin
16.2.Codificacion(C#)
static void Main(string[] args)
{
int min, seg, cen;
float veloms, velokh, tiemseg = 0, dis;
Console.WriteLine("Ingresar el Tiempo Empleado en la Competencia");
Console.Write("Minutos : ");
min = int.Parse(Console.ReadLine());
Console.Write("Segundos : ");
seg = int.Parse(Console.ReadLine());
Console.Write("Centsimas de Segundo : ");
cen = int.Parse(Console.ReadLine());
Console.Write("Ingresar la Distancia Recorrida en Metros: ");
dis = float.Parse(Console.ReadLine());
tiemseg = min * 60 + seg + (cen / 100);
veloms = dis / tiemseg;
velokh = (veloms * 3600) / 1000;
Console.WriteLine("La Distancia Recorrida es: {0} metros", dis);
Console.WriteLine("La Velocidad es de: {0} (Km/h)", velokh);
Console.ReadLine();
}

17 escribir un algoritmo y su codificacion para invertir un numero de tres digitos.


Datos
Numero

Resultado
Numero Invertido

36

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

154
541
987
325

451
145
789
523

17.1.Algoritmo
Inicio {invertir un nmero de tres dgitos}
{Ingresamos nmero de tres dgitos}
Leer nmero
{Sepranos el nmero en unidad, decena y centena}
Unidad=numero mod 10
Centena=numero div 100
Decena= (numero mod 100) div 10
{Invertir nmero}
numero_invertido=Unidad*100+Decena*10+Centena
{Mostramos el resultado}
Escribir numero_invertido
Fin
17.2.Codificacion(C#)
static void Main(string[] args)
{
int numero, numero_invertido, Decenas, Unidades, Centenas;
//leer numero de tres digitos
Console.Write("ingres numero de tres cifras : ");
numero = int.Parse(Console.ReadLine());
//separar el numero en undades , decenas y centenas
Unidades = numero % 10;
Decenas = (numero % 100) / 10;
Centenas = numero / 100;
//invertir numero
numero_invertido = Unidades * 100 + Decenas * 10 + Centenas;
//Escribir numero invertido
Console.WriteLine("numero original : {0}", numero);
Console.WriteLine("Numero invertido : {0}", numero_invertido);
Console.ReadLine();
}

18. escribir un algoritmo y su codificacion para sumar los digitos de un numero de 2 cifras.
Datos
Numero
15
41
97
32

Resultado
Suma de cifras
6
5
16
5

37

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

18.1.Algoritmo
Inicio {sumar los dgitos de un nmero de 2 cifras}
{Ingresamos nmero de dos dgitos}
Leer nmero
{Sepranos el nmero en unidad y decena}
Unidad=numero mod 10
Decena= numero div 10
{Calculamos la suma de los dgitos}
suma = Unidad*100+Decena*10+Centena
{Mostramos el resultado}
Escribir suma
Fin
18.2.Codificacion(C#)
static void Main(string[] args)
{
int numero, suma, Decenas, Unidades;
//ingresar numero de dos digitos
Console.Write("ingres numero de dos cifras : ");
numero = int.Parse(Console.ReadLine());
//separar el numero en undades , decenas
Unidades = numero % 10;
Decenas = numero / 10;
//sumar digitos
suma = Unidades+Decenas;
//Escribir suma
Console.WriteLine("La Suma de sus Digitos es:{0}", suma);
Console.ReadLine();
}

19. escribir un algoritmo y su codificacion para calcular el ultimo digito de un numero


entero.
Datos
Numero
154
541
987
325

19.1.Algoritmo
Inicio {calcular el ltimo digito de un nmero cualquiera}
{Ingresamos un nmero}
Leer nmero
{Calculamos la ltima cifra}
Ultima_cifra=numero mod 10
Escribir Ultima_cifra
{Mostramos el resultado}

Resultado
Ultima Cifra
4
1
7
5

38

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Fin
19.2.Codificacion(C#)
static void Main(string[] args)
{
int numero,Ultima_cifra;
//ingresar un numero
Console.Write("ingres numero de dos cifras : ");
numero = int.Parse(Console.ReadLine());
//calculamos el ultimo digito de un numero cualquiera
Ultima_cifra = numero % 10;
//mostramos el ultimo digito
Console.WriteLine("El Ultimo digito es :{0}",Ultima_cifra);
Console.ReadLine();
}

20. escribir un algoritmo y su codificacion


ingresadas por teclado.

Nota 1
20
15

para calcular el promedio de tres notas

Datos
Nota 2
20
12

20.1.Algoritmo
Inicio {calcular el promedio de tres notas dadas}
{Ingresamos la primera nota}
Leer nota1
{Ingresamos la segunda nota}
Leer nota2
{Ingresamos la tercera nota}
Leer nota3
{Calculamos el promedio}
promedio=(nota1+nota2+nota3)/3
{Mostramos el resultado}
Escribir promedio
Fin
20.2.Codificacion(C#)
static void Main(string[] args)
{//declaramos nuestras variables
int nota1, nota2, nota3, promedio;
//ingresamos las notas
Console.Write("Ingrese Nota 1:");
nota1 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Nota 2:");
nota2 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Nota 3:");
nota3 = int.Parse(Console.ReadLine());
//calculamos el promedio

Nota 3
20
18

Resultado
Promedio
20
15

39

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

promedio = (nota1 + nota2 + nota3) / 3;


//mostramos el resultado
Console.Write("El Promedio es :{0}",promedio);
Console.Read();
}

21. escribir un algoritmo y su codificacion para un vendedor que recibe un sueldo base
ms un 10% extra por comisin de sus ventas,el vendedor desea saber cuanto dinero
obtendr por conceptos de comisiones por las tres ventas que realiza en el mes y el total que
recibir en el mes tomando en cuenta su sueldo base y comisiones.
Datos
Sueldo base
450
800

Venta 1
500
1005

Resultado
Venta 2
645
2000

Venta 3
800
1540

Comisin
194.5
454.5

21.1.Algoritmo
Inicio {calcular la comisin y el total a pagar de un vendedor}
{Ingresamos el sueldo base}
Leer sb
{Ingresamos la primera venta}
Leer v1
{Ingresamos la segunda venta}
Leer v2
{Ingresamos la tercera venta}
Leer v3
{Calculamos el total de venta}
total_venta=v1+v2+v3
{Calculamos la comisin}
Comisin=total_venta*0.10
{Calculamos el total a pagar}
tpag=sb+comision
{Mostramos el resultado}
Escribir comisin
Escribir tpag
Fin
21.2.Codificacion(C#)
static void Main(string[] args)
{
double sb, v1, v2, v3, comision, tpag, total_venta;
//ingresamos el sueldo base
Console.Write("ingrese su sueldo base : ");
sb = double.Parse(Console.ReadLine());
//ingresamos las tres ventas
Console.Write("ingrese venta 1 : ");
v1 = double.Parse(Console.ReadLine());
Console.Write("ingrese venta 2 : ");

Total a pagar
644.5
1254.5

Lenguaje de Programacin

40

Carlos Rodrguez Torvisco Algortmica

v2 = double.Parse(Console.ReadLine());
Console.Write("ingrese venta 3 : ");
v3 = double.Parse(Console.ReadLine());
//calculamos el total de venta
total_venta = v1 + v2 + v3;
//calculamos la comision
comision = total_venta * 0.10;
//calculamos el total a pagar
tpag = sb + comision;
//mostramos los resultados
Console.WriteLine("su total a pagar es : {0} ", tpag);
Console.WriteLine("su comision es : {0} ", comision);
Console.ReadLine();
}

22. escribir un algoritmo y su codificacion para una tienda que ofrece un descuento de 15%
sobre el total de la compra y un cliente desea saber cuanto deber pagar finalmente por su
compra.
Datos
Total de compra
154
541
987
325

22.1.Algoritmo
Inicio {calcular el total a pagar}
{Ingresamos el total de compra}
Leer tc
{Calculamos el descuento}
d=tc*0.15
{Calculamos el total a pagar}
tp=tcd
{Mostramos el resultado}
Escribir tp
Fin
22.2.Codificacion(C#)
static void Main(string[] args)
{
float tc,d,tp;
//ingresamos el total de compra
Console.Write("ingrese total de la compra : ");
tc = float.Parse(Console.ReadLine());
//calculamos el descuento
d = tc * 0.15f;
//calculamos el total a pgar
tp = tc - d;
//mostramos el total a pgar
Console.Write("el total a pagar es : {0}", tp);

Resultado
Total a pagar
130.9
459.85
838.95
276.25

41

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Console.ReadLine();
}

23. escribir un algoritmo y su codificacion para un alumno que desea saber cual ser su
calificacion final en la materia de lenguaje de programacion.Dicha calificacion se compone
de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales
30% de la calificacion del examen final
15% de la calificacion de un trabajo final
Datos
Calificacin
1
15
11

Calificacin
2
12
12

Calificacin
3
11
14

Resultado
Examen final

Trabajo final

15
10

17
08

Calificacin
final
14.02
10.98

23.1.Algoritmo
Inicio {calcular la calificacin final}
{Ingresamos las tres calificaciones}
Leer c1, c2, c3
{Ingresamos el examen final y el trabajo final}
Leer ef, tf
{Calculamos el promedio de las tres calificaciones}
prom= (c1, c2,c3)/3
ppar=prom*0.55
ef=ef*0.30
tf=tf*0.15
{Mostramos la calificacin final}
Escribir cf
Fin
23.2.Codificacion(C#)
static void Main(string[] args)
{
float c1, c2, c3, ef, tf, prom, ppar, pef, ptf, cf;
//ingresamos las tres primeras calificaciones
Console.Write("ingrese su primera calificacion : ");
c1 = float.Parse(Console.ReadLine());
Console.Write("ingrese su segunda calificacion : ");
c2 = float.Parse(Console.ReadLine());
Console.Write("ingrese su tercera calificacion : ");
c3 = float.Parse(Console.ReadLine());
//ingresamos la nota del examen final
Console.Write("ingrese la nota de su examen final : ");
ef = float.Parse(Console.ReadLine());
//ingresamos la calificacion de su trabajo final
Console.Write("ingrese la calificacion de su trabajo final : ");

42

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

tf = float.Parse(Console.ReadLine());
//calculamos el promedio de las tres calificaciones
prom = (c1 + c2 + c3) / 3;
//calculamos el 55% de las tres calificaciones
ppar = prom * 0.55f;
//calculamos el 30% de examen final
pef = ef * 0.30f;
//calculamos el 15% del trabajo final
ptf = tf * 0.15f;
//calcuamos la calificacion final del alumno
cf = ppar + pef + ptf;
Console.Write("su calificacion final es : {0}", cf);
Console.Read();
}

24. escribir un algoritmo y su codificacion para sacar la raiz cuadrada de un numero


cualquiera.

Datos
numero
4
25
81
49

Resultado
Raz cuadrada
2
5
9
7

24.1.Algoritmo
Inicio {calcular la raz cuadrada}
{Ingresamos un nmero cualquiera}
Leer a
{Calculamos la raz cuadra de un nmero}
b=
{Mostramos la raz cuadrada}
Escribir b
Fin
24.2.Codificacion(C#)
static void Main(string[] args)
{
double a, b;
Console.WriteLine("Ingresa un numero para sacarle su raiz cuadrada:");

a = int.Parse(Console.ReadLine());
b = Math.Sqrt(a);
Console.WriteLine("La Raiz cuadrada es de :{0}", b);
Console.Read();
}

25 escribir un algoritmo y su codificacion para dada una medida de tiempo expresada en


horas,minutos y segundos ingresados por teclado, entonces transformar dicha medida en
una expresin correcta y mostrarla por pantalla.

43

Lenguaje de Programacin

Hora

Datos
Minuto

segundo

3
5

118
98

195
154

Carlos Rodrguez Torvisco Algortmica

Hora
Correcta
5
6

Resultado
Minuto
Correcto
1
40

Segundo
Correcto
15
34

25.1.Algoritmo
Inicio {calcular la hora correcta}
{Ingresamos horas, minutos, segundos}
Leer hora, minuto, segundo
{Convertimos a segundos}
totalsegundos=hora*3600+minuto*60+segundo
{Distribuimos el totalsegundos en hora, minuto, segundos correctamente}
hora=totalsegundos div 3600
hora=hora mod 24
minuto = (totalsegundos mod 3600) div 60
segudo = (totalsegundos mod 3600) mod 60
{Mostramos la hora correctamente}
Escribir hora, minuto, segundo
Fin

25.2.Codificacion(C#)
static void Main(string[] args)
{
int hora, minuto, segudo, totalsegundos;
//ingresamos hora,minuto,segundos
Console.Write("Ingresa Hora:");
hora = int.Parse(Console.ReadLine());
Console.Write("Ingresa Minuto:");
minuto = int.Parse(Console.ReadLine());
Console.Write("Ingresa Segundo:");
segudo= int.Parse(Console.ReadLine());
//convertimos todo a segundo
totalsegundos = hora * 3600 + minuto * 60 + segudo;
//distribuimos el totalsegundos en horas,segundos,minutos correctamente

hora = totalsegundos / 3600;


hora = hora % 24;
minuto = (totalsegundos % 3600) / 60;
segudo = (totalsegundos % 3600) % 60;
//mostramos la hora correctamente
Console.Write("{0}:{1}:{2}",hora,minuto,segudo);
Console.Read();
}

26. escribir un algoritmo y su codificacion que calcule el nmero mnimo de billetes de


200,100,50,20,10 y 5 nuevos soles y monedas de 1 Nuevo Sol:50,10 y 1 centimo que son
necesarias para cambiar un cheque bancario.(Nota:El cheque bancario contiene cntimos).

44

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Supongamos que el Monto Ingresado sea 4587.75


El cambio seria lo siguiente:
s/.200
22

s/.100
1

s/.50
1

s/.20
1

s/.10
1

5 soles
1

1 sol
2

Ejemplo codificado

26.1.Algoritmo
Inicio {cambio de cheque bancario}
{Ingresamos monto a cambiar}
Leer monto
monto =monto*100
{Calcular nmero mnimo de billetes de cada denominacin}
billete200= (int) monto div (200*100)
Resto= (int) monto mod (200*100)
billete100 = resto div (100 * 100);
resto = resto mod (100 * 100);
billete50 = resto div (50 * 100);
resto = resto mod (50 * 100);
billete20 = resto div (20 * 100);
resto = resto mod (20 * 100);
billete10 = resto div (10 * 100);
resto = resto mod (10 * 100);
moneda5 = resto div (5 * 100);
resto = resto mod (5 * 100);
moneda1 = resto div (1 * 100);
resto = resto mod (1 * 100);
monedacincuenta = resto div 50;
resto = resto mod 50;
monedadiez = resto div 10;
resto = resto mod 10;
monedauncentimo = resto div 1;
{Mostramos el cambio}
Escribir billete200
Escribir billete100
Escribir billete50
Escribir billete20

0.50
1

0.10
2

0.01
5

Lenguaje de Programacin

45

Carlos Rodrguez Torvisco Algortmica

Escribir billete10
Escribir moneda5
Escribir moneda1
Escribir monedacincuenta
Escribir monedadiez
Escribir monedauncentimo
Fin

26.2.Codificacion(C#)
static void Main(string[] args)
{
double monto;
int billete100, billete200, billete50, billete20, billete10;
int moneda5, moneda1, monedacincuenta, monedadiez, monedauncentimo;
int resto;
Console.Write("Ingrese Monto:");
monto = double.Parse(Console.ReadLine());
monto = monto * 100;
//calcular numero minimo de billetes de cada denominacion
billete200 = (int)monto / (200 * 100);
resto = (int)monto % (200 * 100);
billete100 = resto / (100 * 100);
resto = resto % (100 * 100);
billete50 = resto / (50 * 100);
resto = resto % (50 * 100);
billete20 = resto / (20 * 100);
resto = resto % (20 * 100);
billete10 = resto / (10 * 100);
resto = resto % (10 * 100);
moneda5 = resto / (5 * 100);
resto = resto % (5 * 100);
moneda1 = resto / (1 * 100);
resto = resto % (1 * 100);
monedacincuenta = resto / 50;
resto = resto % 50;
monedadiez = resto / 10;
resto = resto % 10;
monedauncentimo = resto / 1;
//mostramos el cambio respectivo
Console.WriteLine("{0} Billetes de 200", billete200);
Console.WriteLine("{0} Billetes de 100", billete100);
Console.WriteLine("{0} Billetes de 50", billete50);
Console.WriteLine("{0} Billetes de 20", billete20);
Console.WriteLine("{0} Billetes de 10", billete10);
Console.WriteLine("{0} Monedas de 5 Soles", moneda5);
Console.WriteLine("{0} Monedas de 1 Sol", moneda1);
Console.WriteLine("{0} Monedas de 0.50 Centimos", monedacincuenta);
Console.WriteLine("{0} Monedas de 0.10 Centimos", monedadiez);
Console.WriteLine("{0} Monedas de 0.01 Centimo", monedauncentimo);
Console.Read();
}

27. Los organizadores de la competencia automovilista 3 vueltas al rio pachachaca


tienen los tiempos (en HH,MM,SS) empleados por cada participante y en cada vuelta.Ellos
desean determinar el tiempo promedio por vuelta empleado por cada participante.Escribir

Lenguaje de Programacin

46

Carlos Rodrguez Torvisco Algortmica

un algoritmo y su codificacion para determinar el tiempo promedio por vuelta de un


participante.

1 vuelta
Hora,minuto,seg
undo
8:31:25
3:3:5

Datos
2 vuelta
Hora,minuto,seg
undo
11:34:11
5:2:56

Resultado
3 vuelta
Hora,minuto,seg
undo
14:12:48
8:43:11

Hora
promedio
11
5

Ejemplo codificado

27.1.Algoritmo
Inicio {calcular el tiempo promedio}
{Ingresamos horas, minutos, segundos de la primera vuelta}
Leer hh, mm, ss
{Ingresamos horas, minutos, segundos de la segunda vuelta}
Leer hh2, mm2, ss2
{Ingresamos horas, minutos, segundos de la tercera vuelta}
Leer hh2, mm2, ss2
{Convertimos a segundos}
Vuelta1=hh*3600+mm*60+ss
Vuelta2= hh2*3600+mm2*60+ss2
Vuelta3= hh3*3600+mm3*60+ss3
{Sumamos las tres vueltas y dividimos entre 3}
Totalsegundos= (Vuelta1+Vuelta2+Vuelta3)/3
{Distribuimos el totalsegundos para que nos de el tiempo promedio}
Horapromedio= Totalsegundos div 3600
Horapromedio=Horapromedio mod 24
Minutopromedio= (Totalsegundos mod 3600) div 60
Segundopromedio= (Totalsegundos mod 3600) mod 3600
{Mostramos la hora correctamente}
Escribir Horapromedio, Minutopromedio, Segundopromedio
Fin
27.2.Codificacion(C#)

Minuto
prom.
26
36

Segundo
promedio
8
24

47

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

static void Main(string[] args)


{
int hh, mm, ss, totalsegundos, hh2, mm2, ss2, hh3, mm3, ss3;
int vuelta1, vuelta2, vuelta3;
int horapromedio, minutopromedio, segundopromedio;
//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL PRIMERA VUELTA
Console.ForegroundColor = ConsoleColor.Blue;//color de letra
Console.Write("HH:");
hh = int.Parse(Console.ReadLine());
Console.Write("MM:");
mm = int.Parse(Console.ReadLine());
Console.Write("SS:");
ss = int.Parse(Console.ReadLine());
//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL SEGUNDA VUELTA
Console.ForegroundColor = ConsoleColor.Red;//color de letra de la
segunda vuelta
Console.WriteLine("Segunda Vuelta");
Console.Write("HH:");
hh2 = int.Parse(Console.ReadLine());
Console.Write("MM:");
mm2 = int.Parse(Console.ReadLine());
Console.Write("SS:");
ss2 = int.Parse(Console.ReadLine());
//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL TERCERA VUELTA
Console.ForegroundColor = ConsoleColor.Cyan;//color de letra de la
tercera vuelta
Console.WriteLine("Tercera Vuelta");
Console.Write("HH:");
hh3 = int.Parse(Console.ReadLine());
Console.Write("MM:");
mm3 = int.Parse(Console.ReadLine());
Console.Write("SS:");
ss3 = int.Parse(Console.ReadLine());
//CONVERTIR A SEGUNDO CADA VUELTA
vuelta1 = hh * 3600 + mm * 60 + ss;
vuelta2 = hh2 * 3600 + mm2 * 60 + ss2;
vuelta3 = hh3 * 3600 + mm3 * 60 + ss3;
//SUMAR TODAS LAS VUELTAS
totalsegundos =(vuelta1+vuelta2+vuelta3)/3;
//Distribuimos el totalsegundos para que nos de el tiempo promedio
horapromedio = totalsegundos / 3600;
horapromedio = horapromedio % 24;
minutopromedio = (totalsegundos % 3600) / 60;
segundopromedio = (totalsegundos % 3600) % 60;
Console.Write("el promedio es :{0}:{1}:{2}", horapromedio,
minutopromedio, segundopromedio);
Console.Read();
}

28.En el curso de lenguaje de programacin I se tomaron dos exmenes parciales y un


examen prctica. El promedio final se calcula considerando que los exmenes parciales
tienes peso dos y la practica peso uno. Escribir un algoritmo y su codificacin que calcule el
Promedio final.

Examen parcial 1
20
15

Datos
Examen parcial 2
20
12

Examen practica
20
18

Resultado
Promedio final
20
14.4

48

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

28.1.Algoritmo
Inicio {calcular el promedio}
{Ingresamos los dos exmenes parciales y el examen practica}
Leer examenparcial1, examenparcial2, examenpractica
Promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica)/5
{Mostramos el promedio}
Escribir promedio
Fin
28.2.Codificacion(C#)
static void Main(string[] args)
{
float examenparcial1, examenparcial2, examenpractica, promediofinal;
Console.Write("Ingresa el Primer Examen Parcial:");
examenparcial1 = float.Parse(Console.ReadLine());
Console.Write("Ingresa el Segundo Examen Parcial:");
examenparcial2 = float.Parse(Console.ReadLine());
Console.Write("Ingresa el Examen Practica:");
examenpractica = float.Parse(Console.ReadLine());
promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) +
examenpractica) / 5;
Console.Write("El Promedio final es : {0}", promediofinal);
Console.Read();
}

29.Disee un pseudocdigo y su codificacin que halle el rea y el permetro de un


rectngulo.
Considere que: rea=base x altura y permetro = 2 * (base + altura)
Datos
base
10
15

Resultado
altura
5
29

29.1.Algoritmo
Inicio {calcular el rea y el permetro de un rectngulo}
{Ingresamos base y altura}
Leer bas, altura
{Calculamos el area}
Area=bas*altura
{Calculamos el permetro}
Permetro=2*(bas+altura)
{Mostramos el area y el permetro}
Escribir area, perimetro
Fin

rea
50
435

permetro
30
88

Lenguaje de Programacin

49

Carlos Rodrguez Torvisco Algortmica

29.2.Codificacion(C#)
static void Main(string[] args)
{
//declaramos nuestras variables
double area, bas, perimetro, altura;
//ingresamos base y altura
Console.Write("Ingrese Altura:");
altura = double.Parse(Console.ReadLine());
Console.Write("Ingrese Base:");
bas = double.Parse(Console.ReadLine());
//proceso de calculo
area = bas * altura;
perimetro=2*(bas+altura);
// mostrar de resultados
Console.WriteLine("El Area es :{0}",area);
Console.WriteLine("El Perimetro es :{0}",perimetro);
Console.Read();
}

30.Disee un pseudocdigo y su codificacin que lea la hora actual del da HH:MM:SS y


determine cuantas horas, minutos y segundos restan para culminar el da.

Hora
6
20

Datos
Minuto
14
41

segundo
19
12

Resultado(para que termine el da)


Hora
Minuto
Segundo
17
45
41
3
18
48

30.1.Algoritmo
Inicio {calcular la hora que falta para que acabe el da}
{Ingresamos hora, segundo, minuto}
Leer hor1, min1, seg1
{Calculo de la cantidad de segundos que restan para culminar el da}
segres=86400(hor1*3600+min1*60+seg)
{Descomposicin de sgres en horas, minutos y segundos}
Hor2=segres div 3600
Resto=segres mod 3600
Min2=resto div 60
Seg2=resto mod 60
{Mostramos la hora que falta para culminar el da}
Escribir hor2, min2, seg2
Fin
30.2.Codificacion(C#)
static void Main(string[] args)
{
//declaracion de variables
int hor1, min1, seg1, hor2, min2, seg2, segres, resto;
//ingresar el tiempo

Lenguaje de Programacin

50

Carlos Rodrguez Torvisco Algortmica

Console.Write("Ingresa Hora:");
hor1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Mintuo:");
min1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Segundo:");
seg1 = int.Parse(Console.ReadLine());
//calculo de la cantidad de segundos que restan para culminar el da
segres = 86400 - (hor1 * 3600 + min1 * 60 + seg1);
//descomposicion de segres en horas, minutos y segundos
hor2 = segres / 3600;
resto = segres % 3600;
min2 = resto / 60;
seg2 = resto % 60;
//mostrar la hora que falta para culminar el da
Console.WriteLine("Falta:{0}:{1}:{2}",hor2,min2,seg2);
Console.Read();
}

31.Tres Hermanos constituyen una empresa. Al Primer Hermano le corresponde el 50% de


las acciones. Al segundo hermano le corresponde una cantidad equivalente a las 2/3 partes
de las acciones del primer hermano. El resto de las acciones pertenece al tercer hermano. Al
final de cada mes se debe repartir las utilidades generadas por la empresa en forma
proporcional a las acciones de cada hermano. Escribir un algoritmo y su codificacin que
determine el monto correspondiente a cada hermano.

Datos
Monto
5648
554788

Primer
hermano
2824
277394

Resultado
Segundo
hermano
1882.7
184929.3

31.1.Algoritmo
Inicio {calcular cuanto le corresponde a cada hermano}
{Ingresamos monto}
Leer monto
{Calculo cuanto le pertenece al primer hermano}
PrimerHermano=monto*0.50
{Calculo cuanto le pertenece al segundo hermano}
SegundoHermano=PrimerHermano*2/3
{Calculo cuanto le pertenece al tercer hermano}
TercerHermano=PrimerHermanoSegundoHermano
{Mostramos cuanto le corresponde a cada hermano}
Escribir PrimerHermano, SegundoHermano, TercerHermano
Fin
31.2.Codificacion(C#)
static void Main(string[] args)
{
float PrimerHermano, SegundoHermano, TercerHermano, Monto;

Tercer
hermano
941.3
92464.67

Lenguaje de Programacin

51

Carlos Rodrguez Torvisco Algortmica

//ingreso monto
Console.Write("Ingrese Monto: ");
Monto = int.Parse(Console.ReadLine());
//calculamos cuanto le pertence al primer hermano
PrimerHermano = Monto * 0.50f;
//calculamos cuanto le pertence al segundo hermano
SegundoHermano = PrimerHermano * 2 / 3f;
//calculamos cuanto le pertence al tercer hermano
TercerHermano = PrimerHermano - SegundoHermano;
//escribir cuanto le corresponde a cada hermano
Console.WriteLine("Primer hermano le corresponde el : {0}", PrimerHermano);
Console.WriteLine("Segundo hermano le coresponde el : {0}", SegundoHermano);
Console.WriteLine("Tercer hermano le corresponde el : {0}", TercerHermano);

Console.ReadLine();
}

32.Escribir un algoritmo y su codificacin para calcular el rea y el volumen de un hexaedro.


Datos
Lado
5
2

Resultado
rea
150
24

Volumen
125
8

32.1.Algoritmo
Inicio {calcular el area y el volumen de un hexaedro}
{Ingresamos Lado}
Leer lado
{Calculamos el area}
area =(lado*lado)*6
{Calculamos el volumen)
volumen= (lado*lado*lado)
{Mostramos el volumen y area}
Escribir area, volumen
Fin
32.2.Codificacion(C#)
static void Main(string[] args)
{
double lado, area, volumen;
//ingresamos el lado del hexaedro
Console.Write("Ingrese Lado:");
lado = double.Parse(Console.ReadLine());
//calculamos el area
area = (lado * lado) * 6;
//calculamos el volumen
volumen = Math.Pow(lado, 3);
//mostramos el area y el volumen del hexaedro
Console.WriteLine("El Area del Hexaedro es :{0}",area);
Console.WriteLine("El Volumen del Hexaedro es :{0}",volumen);
Console.Read();
}

Lenguaje de Programacin

52

Carlos Rodrguez Torvisco Algortmica

33.Un coche se mueve, partiendo del reposo, con una aceleracin constante de 8 m/s2.
Escribir el algoritmo y su codificacin que calcule:
a) La velocidad instantnea al cabo de 5 segundos
b) la velocidad media durante los primeros 5 segundos del recorrido
Velocidad instantnea = velocidad inicial + aceleracin * tiempo
Velocidad media = (velocidad inicial + velocidad final)/2

33.1.Algoritmo
Inicio {calcular velocidad media y velocidad instantnea al cabo de 5 segundos}
{Ingresamos velocidad inicial, aceleracin y tiempo}
Leer velocidad0,aceleracion,tiempo
{Calculo de la velocidad media y la velocidad instantnea}
velocidad5=velocidad0+ (aceleracin*tiempo)
velocidadmedia5= (velocidad0+velocidad5)/2
{Mostramos los resultados}
Escribir velocidad5, velocidadmedia5
Fin
33.2.Codificacion(C#)
static void Main(string[] args)
{
//declaramos nuestras variables
float velocidad0, aceleracion, tiempo;
float velocidad5, velocmedia5;
//ingresamos la velocidad inical,aceleracion y el tiempo
Console.Write("Ingresa Velocidad Inicial:");
velocidad0 = float.Parse(Console.ReadLine());
Console.Write("Ingresa Aceleracin:");
aceleracion = float.Parse(Console.ReadLine());
Console.Write("Ingresa Tiempo:");
tiempo = float.Parse(Console.ReadLine());
//velocidad instantanea=velocidad inicial+aceleracion * tiempo
//velocidad media=(velocidad inicial + velocidad final)/2
velocidad5 = velocidad0 + (aceleracion * tiempo);
velocmedia5 = (velocidad0 + velocidad5) / 2;
//mostramos la velocidad media y la velocidad al cabo de 5 segundos
Console.Write("-La velocidad al cabo de 5 segundos es de : {0}", velocidad5);
Console.Write("\n-La velocidad media durante los 5 segundos es : {0}", velocmedia5);

Console.Read();
}

34Emusap puso su siguiente tarifa: por el consumo de agua potable es de S/0.30 por metro
cubico de agua consumida. Adicionalmente se cobra por gastos de emisin de facturas y
reparto de recibos S/.1.00 por usuario y un 19% por impuesto general a las ventas al costo
del servicio. Escribir un algoritmo y su codificacin que calcule el monto que debe pagar un
usuario.

Lenguaje de Programacin

53

Carlos Rodrguez Torvisco Algortmica

Datos
Consumo(m3)
50
20
15
10

Resultado
Total a Pagar
18.85
8.14
6.36
4.57

34.1.Algoritmo
Inicio {calcular el monto a pagar por el consumo de agua}
{Ingresamos consumo en metros cbicos}
Leer consumo
{Calculo del subtotal}
Subtotal=consumo*0.30
{Calculo del igv}
Igv=subtotal*0.19
{Calculo del total a pagar}
Total=subtotal+igv+1.00
{Mostramos los resultados}
Escribir Total
Fin
34.2.Codificacion(C#)
static void Main(string[] args)
{
//declaro mis variables
float total, subtotal, igv;
int consumo;
//ingreso consumo
Console.Write("Ingrese el consumo de agua (m3):");
consumo = int.Parse(Console.ReadLine());
//calculo el subtotal
subtotal = consumo * 0.30f;
//calculo el igv
igv = subtotal * 0.19f;
//calculo el total a pagar
total = subtotal + igv + 1.00f;
//muestro el total a pagar
Console.Write("\nEl monto a pagar por el usuario es : {0}", total);
Console.Read();
}

35.Escribir un programa para saber el tamao en bytes de :


int
short
long
char
float
double

54

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

bool
35.1Codificacion(C#)
static void Main(string[]
{
Console.Write("El Tamao
Console.Write("El Tamao
Console.Write("El Tamao
Console.Write("El Tamao
Console.Write("El Tamao
Console.Write("El Tamao
Console.Write("El Tamao
Console.Read();
}

args)
de
de
de
de
de
de
de

un
un
un
un
un
un
un

int es :{0} bytes\n", sizeof(int));


short es :{0} bytes\n", sizeof(short));
long es :{0} bytes\n", sizeof(long));
char es :{0} bytes\n", sizeof(char));
float es :{0} bytes\n", sizeof(float));
double es :{0} bytes\n", sizeof(double));
bool es :{0} bytes\n", sizeof(bool));

PROBLEMAS PROPUESTOS
1.Escribir un algoritmo y su codificacin para que sume dos nmeros complejos
2.Escribir un algoritmo y su codificacin para que multiplique dos nmeros complejos
3.La Universidad Tecnolgica de los Andes ah recibido tres donaciones en soles, dlares y
marcos. La donacin ser repartida en tres rubros: 60% para la implementacin de un centro
de estudios, 40% para un comedor de estudiantes y el resto para gastos administrativos.
Disee un algoritmo y su codificacin que determine el monto en euros que le corresponde a
cada rubro. Considere que: 1 dlar=3.52 soles, 1 dlar=2.08 marcos, 1 dlar=1.07 euros.
4.En una competencia atltica de velocidad el tiempo se mide en minutos, segundos y
centsimas de segundo y, el espacio recorrido se mide en metros. Disee un algoritmo y su
codificacin para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1
hora= 60 minutos, 1 minuto = 60 segundos, 1 segundo=100 centsimas de segundo, 1
kilometro=1000 metros.
5. Disee un algoritmo y su codificacin que determine la suma de las cifras de un nmero
entero positivo de 4 cifras.
6.Disee un algoritmo y su codificacin para sumar dos tiempos dados en horas, minutos y
segundos.
7.El sueldo neto de un vendedor se calcula como la suma de un sueldo bsico de S/250 ms
el 12% del monto total vendido. Disee un algoritmo y su codificacin que determine el
sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes.
8.En pases de habla inglesa es comn dar la estatura de una persona como la suma de una
cantidad entera de pies ms una cantidad entera de pulgadas. As, la estatura de una
persona podra ser 3 2 (3 pies 2 pulgadas).Disee un algoritmo y su codificacin que
determine la estatura de una persona en metros, conociendo su estatura en el formato
ingles. Considere que : 1 pie=12 plg, 1 plg= 2.54 cm , 1 m = 100cm.

Lenguaje de Programacin

55

Carlos Rodrguez Torvisco Algortmica

9.Disee un algoritmo y su codificacin que exprese la capacidad de un disco duro en


megabytes, kilobytes y bytes, conociendo la capacidad del disco en gigabytes. Considere
que:1 kilobyte=1024 bytes, 1 megabyte=1024 kilobyte, 1 gigabyte= 1024 megabytes.
10.Disee un algoritmo y su codificacin que intercambie las cifras de las unidades de dos
nmeros naturales.
11.Disear un algoritmo y su codificacin que lea dos valores reales y nos muestre los
resultados de sumar,restar,dividir y multiplicar dichos nmeros.
12.Queremos conocer los datos estadsticos de una asignatura, por lo tanto, necesitamos un
algoritmo y su codificacin que lea el nmero de suspensos, aprobados,notables y
sobresalientes de una asgnatura, y nos devuelva:
a.El tanto por ciento de alumnos que han superado la asignatura.
b. El tanto por ciento de suspensos, aprobados, notables y sobresalientes de la asignatura.
13. El siguiente es el men de un restaurante de bocadillos. Disear un algoritmo y su
codificacin capaz de leer el nmero de unidades consumidas de cada alimento ordenado y
calcular la cuenta total.
Bocadillo de jamn (250 pts)
Bocadillo de queso (200 pts)
Papas Fritas (100 pts)
Refresco (175 pts)
Cerveza (125 pts)
14.El coste de un automvil nuevo para un comprador es la suma total del coste del
vehculo, del porcentaje de la ganacia del vendedor y de los impuestos locales o estatales
aplicables (sobre el precio de venta).Suponer una ganancia del vendedor del 12 % en todas
lasunidades y un impuesto del 6% y disear un algoritmo y su codificacin para leer el coste
total del automvil e imprimir el coste para el consumidor.
15. Queremos realizar un pequeo programa para introducirlo en el ordenador de a bordo
de nuestro coche y que nos informe del consumo medio del coche. Disea un algoritmo que
lea el kilometraje de la ltima vez que se repost, el kilometraje actual, los litros de gasolina
que se repostaron la ltima vez y la cantidad de gasolina actual. El algoritmo devolver la
cantidad de litros cada 100 kilmetros que consume nuestro coche.
16.Dada las horas trabajadas de una persona y el valor por hora. Disee un algoritmo y su
codificacin para calcular su salario e imprimirlo.
17.Disee un algoritmo y su codificacin correspondiente a un programa que escribe el
porcentaje descontado en una compra, introduciendo por teclado el precio de la tarifa y el
precio pagado.

Lenguaje de Programacin

56

Carlos Rodrguez Torvisco Algortmica

18.Disear un algoritmo y su codificacin correspondiente a un programa que calcule el


rea y el permetro de un tringulo rectngulo dada la base y la altura.
19.Disear un algoritmo y su codificacin correspondiente a un programa que exprese en
horas, minutos y segundos un tiempo expresado en segundos.
20. Disear el algoritmo y su codificacin que pida el total de kilmetros recorridos, el
precio de la gasolina (por litro), el dinero de gasolina gastado en el viaje y el tiempo que se
ha tardado (en horas y minutos) y que calculo:
Consumo de gasolina (en litros y euros) por cada 100 km.
Consumo de gasolina (en litros y euros) por cada km
Velocidad media (en km/h y m/s)
21.Disee un algoritmo y su codificacin que al introducir una cantidad de dinero expresado
en euros nos indique cuantos billetes y monedas se puede tener como mnimo.
22.Suponiendo que una paella se puede cocinar exclusivamente con arroz y gambas, y que
para cada cuatro personas se utiliza medio kilo de arroz y un cuarto de kilo de gamas,
escribir un programa que pida por pantalla el nmero de comensales para paella, el precio
por kilo de los ingredientes y muestre las cantidades de los ingredientes necesarios y el coste
de la misma.
23.leer un numero y escribir el valor absoluto del mismo.
24.la presin, el volumen y la temperatura de una masa de aire se relacionan por la frmula
Masa= (presin*volumen)/ (0.37*(temperatura+460))
25. Calcula el numero de pulsaciones que una persona debe tener por cada 10 segundos de
ejercicio, si la frmula es:
Num.pulsaciones= (220 edad)/10
26.Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario
anterior.
27. Escribir un programa que calcule la velocidad de un proyectil que recorre 2 Km en 5
minutos. Expresar el resultado en metros/segundo.
Velocidad=espacio/tiempo
28. Escribir un programa que calcule el rea y el volumen de un tetraedro.
29. Escribir un programa que calcule el area y el volumen de un cono.
30. Escribir un programa que lea dos nmeros enteros A y B, y obtenga los valores A div B,
A mod B.

57

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

31. Escribir un programa que calcule el numero de horas, minutos y segundos que hay en
3700 segundos.
32.Escribir un programa que calcula la siguiente expresin trigonomtrica para un valor
angular de 90
(sen x * cos x)/ (tan x)
33. Escribir un programa que calcule el rea de un rectngulo a partir de sus coordenadas.

Estructuras de control
Instruccin if
Esta sentencia sirve para ejecutar unas instrucciones en caso de que se cumpla
determinada condicin. La forma completa de la instruccin if es

Pseucododigo
Si(condicin ) entonces
Instruccin 1
Instruccin 2
..
sino
Instruccin 1
Instruccin 2
..
Finsi

58

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

PROBLEMAS RESUELTOS
1.Escribir un programa y su codificacin para determinar el mayor de tres nmeros.

Numero 1
20
48

Datos
Numero 2
210
412

Numero 3
2220
818

Resultado
Mayor
2220
818

1.1.Algoritmo
Inicio {Calcular el mayor de tres nmeros}
{Ingresamos los tres nmeros}
Leer numero1,numero2,numero3
{Empezamos a Comparar los Tres Nmeros}
Si(numero1>numero2) y (numero1>numero3) entonces
Mayor=numero1
Sino
Si(numero2>numero1) y (numero2>numero3) entonces
Mayor=numero2
Sino
Mayor=numero3
{Mostramos el nmero mayor}
Escribir mayor
Fin
1.2Codificacion(C#)
static void Main(string[] args)
{
int numero1, numero2, numero3,mayor;
//ingresamos los tres numeros
Console.Write("Ingrese Numero 1:");
numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero 2:");
numero2 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero 3:");
numero3 = int.Parse(Console.ReadLine());
//calculamos el mayor
if (numero1 > numero2&& numero1> numero3)
mayor = numero1;
else if (numero2 > numero1 && numero2> numero3)
mayor = numero2;
else
mayor = numero3;
//mostramos el mayor
Console.WriteLine("El Mayor es :{0}",mayor);
Console.Read();
}

2.Escribir un programa y su codificacin que lea 2 nmeros; si son iguales que los
multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.

59

Lenguaje de Programacin

Datos
Numero 1
45
23

Numero 2
45
12

Carlos Rodrguez Torvisco Algortmica

Resultado
Condicin
Resultado
Numero1=Numero2
45*45=2025
Numero1>Numero2
2312=11

2.1.Algoritmo
Inicio {Calculo de 2 nmeros: suma, resta y multiplicacin}
{Ingresamos los dos nmeros}
Leer numero1,numero2
{Empezamos a Comparar los 2 Nmeros}
Si(numero1=numero2) entonces
Resultado=numero1*numero2
Sino
Si(numero1>numero2) entonces
Resultado=numero1numero2
Sino
Resultado=numero1+numero2
{Mostramos el nmero resutlado}
Escribir resultado
Fin
2.2.Codificacion(C#)
static void Main(string[] args)
{
int numero1, numero2;
int resultado;
//ingresamos los 2 numeros
Console.Write("Ingrese Numero 1:");
numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero 2:");
numero2 = int.Parse(Console.ReadLine());
//preguntamos si los nuemros son iguales
if (numero1 == numero2)
resultado = numero1 * numero2;
else if (numero1>numero2)
resultado = numero1 - numero2;
else
resultado = numero1 + numero2;
//mostramos el resultado
Console.WriteLine("El Resultado es :{0}",resultado);
Console.Read();
}

3.Determinar si un alumno aprueba o reprueba un curso, sabiendo que aprobara si su


promedio de tres calificaciones es mayor o igual a 10; reprueba en caso contrario.

60

Lenguaje de Programacin

Calificacin 1
8
14

Datos
Calificacin 2
7
16

Carlos Rodrguez Torvisco Algortmica

Calificacin 3
10
10

Resultado
Mensaje
reprueba
aprueba

3.1.Algoritmo
Inicio {Calculo del promedio de un alumno para saber si aprueba o desaprueba}
{Ingresamos las tres calificaciones}
Leer calif1,calif2,calif3
{Calculamos el promedio de las tres calificaciones}
Promedio=( calif1+calif2+calif3)/3
Si (promedio>=10) entonces
Escribir Alumno Aprobado
Sino
Escribir Alumno Reprobado
Finsi
Fin
3.2.Codificacion(C#)
static void Main(string[] args)
{
float calif1, calif2, calf3, promedio;
Console.Write("ingrese su primera calificacion : ");
calif1 = float.Parse(Console.ReadLine());
Console.Write("ingrese su segunda calificacion : ");
calif2 = float.Parse(Console.ReadLine());
Console.Write("ingrese su tercera calificacion : ");
calf3 = float.Parse(Console.ReadLine());
promedio = (calif1 + calif2 + calf3) / 3;
if (promedio >= 10)
{
Console.WriteLine("Alumno Aprobado");
}
else
{
Console.WriteLine("Alumno Reprobado");
}
Console.Read();
}

4.En un almacn se hace un 20% de descuento a los clientes cuya compra supere los S/.1000
Disear un algoritmo y su codificacin para que Cul ser la cantidad que pagar una
persona por su compra?
Datos
Resultado
Compra
Total a Pagar
20000
16000
2412
1929.6

61

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

100
1051

100
840.8

4.1.Algoritmo
Inicio {Calculo del total a Pagar}
{Ingresamos la compra}
Leer compra
Si (compra>1000) entonces
Descuento=compra *0.20
Sino
Descuento=0
Finsi
{Hacemos clculo del total a pagar}
Tap=compraDescuento
{Imprimimos el total a pagar}
Escribir Tap
Fin
4.2.Codificacion(C#)
static void Main(string[] args)
{
float compra,descuento,tap;
//ingresamos el consumo
Console.Write("ingresa su consumo :");
compra = float.Parse(Console.ReadLine());
if (compra > 1000)
{
descuento = compra * 0.20f;
}
else
descuento = 0;
//calculamos el total a pagar
tap = compra-descuento;
//mostramos el total a pagar
Console.Write("total a pagas es :{0}",tap);
Console.Read();
}

5.Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera:
Si trabaja 40 horas o menos se le paga S/. 16 por hora, si trabaja ms de 40 horas se le paga
S/.16 por cada una de las primeras 40 horas y S/.20 por cada hora extra.

Datos
Horas Trabajadas
55
46
20
15

Resultado
Salario Semanal
940
760
320
240

62

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

5.1.Algoritmo
Inicio {Calculo del Salario Semanal}
{Ingresamos Horas Trabajadas}
Leer ht
Si (ht>40) entonces
{Calculamos sus horas extras}
he=ht40
{Calculamos el salario semanal}
ss=he*20+40*16
Sino
{Calculamos el salario semanal del caso contrario}
ss=ht*16
Finsi
{Imprimimos el salario semanal}
Escribir ss
Fin
5.2.Codificacion(C#)
static void Main(string[] args)
{
float ss;
int ht, he;
//ingresamos las horas trabajadas
Console.Write("Ingresa Horas Trabajadas:");
ht = int.Parse(Console.ReadLine());
if (ht > 40)
{
//calculamos las horas extras
he = ht - 40;
//calculamos el salario semanal
ss = he * 20 + 40 * 16;
}
else
{
//calculamos el salario semanal del caso contrario
ss = ht * 16;
}
//mostramos el salario semanal
Console.Write("El Salario Semanal es :{0}",ss);
Console.ReadLine();
}

6.Disear un algoritmo y su codificacin que lea dos nmeros y los imprima en forma
ascendente.
Datos
45
4

12
4

Resultado
12,45
4,4

63

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

6.1.Algoritmo
Inicio {Ordenar dos nmeros en forma ascendente}
{Ingresamos los numeros}
Leer numero1,numero2
Si (numero1<numero2) entonces
{Mostramos los nmeros en forma ascendente}
Escribir numero1, numero2
Sino
Escribir numero2, numero1
Finsi
Fin
6.2.Codificacion(C#)
static void Main(string[] args)
{
int numero1, numero2;
Console.Write("Ingresa Numero 1:");
numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 2:");
numero2 = int.Parse(Console.ReadLine());
if (numero1 < numero2)
Console.Write("{0},{1}",numero1,numero2);
else
Console.Write("{0},{1}", numero2, numero1);
Console.Read();
}

7.Disear un algoritmo y su codificacin que lea tres nmeros y los imprima en forma
ascendente.

Numero 1
8
14

Datos
Numero 2
7
16

7.1.Algoritmo
Inicio {Ordenar 3 nmeros en forma ascendente}
{Ingresamos los nmeros}
Leer numero1,numero2,numero3
{ordenar los numeros en forma ascendente}
Si (numero1>numero3) entonces
{Intercambiar numero1 y numero3}
temporal=numero1
numero1=numero3
numero3=temporal
Finsi
Si (numero2>numero3) entonces

Numero 3
10
10

Resultado
Mostrar
7,8,10
10,14,16

Lenguaje de Programacin

64

Carlos Rodrguez Torvisco Algortmica

{Intercambiar numero2 y numero3}


temporal=numero2
numero2=numero3
numero3=temporal
Finsi
Si (numero1>numero2) entonces
{Intercambiar numero1 y numero2}
temporal=numero1
numero1=numero2
numero2=temporal
Finsi
{escribir nmeros en forma ascendente}
Escribir numero1, numero2, numero3
Fin
7.2.Codificacion(C#)
static void Main(string[] args)
{
int numero1, numero2,numero3,temporal;
Console.Write("Ingresa Numero 1:");
numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 2:");
numero2 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 3:");
numero3 = int.Parse(Console.ReadLine());
if (numero1 > numero3)//intercambiar numero1 y numero 3
{
temporal = numero1;
numero1 = numero3;
numero3 = temporal;
}
if (numero2 > numero3)//intercambiar numero2 y numero 3
{
temporal = numero2;
numero2 = numero3;
numero3 = temporal;
}
if (numero1 > numero2)//intercambiar numero1 y numero 2
{
temporal = numero1;
numero1 = numero2;
numero2 = temporal;
}
//mostrar los datos en forma ascendente
Console.Write("{0},{1},{2}",numero1,numero2,numero3);
Console.Read();
}

8. El nmero de sonidos emitidos por un grillo en un minuto, es una fraccin de la


temperatura. Como resultado de esto, es posible determinar el nivel de la temperatura
haciendo uso de un grillo como termmetro.

65

Lenguaje de Programacin

Datos(Numero de Sonidos)
30
48

Carlos Rodrguez Torvisco Algortmica

Resultado(Temperatura F)
47 F
52F

8.1.Algoritmo
Inicio {Calcular el total de grados que emite el sonido de un grillo}
{Ingresamos el total de sonidos emitidos por el grillo}
Leer n
Si (n>=0) entonces
{Calculamos el total de grados}
t = n / 4 + 40;
{Mostrar la Temperatura en Grados Fahrenheit}
Escribir t
Finsi
Fin
8.1.Codificacion(C#)
static void Main(string[] args)
{
int n;
float t;
//Ingresamos el Total de Sonidos Emitido por el Grillo
Console.Write("Ingresar Nmero de Sonidos Emitidos por el Grillo en
1 Minuto: ");
n = int.Parse(Console.ReadLine());
if (n >= 0)
{
t = n / 4 + 40;
Console.Write(" La Temperatura en Grados Fahrenheit es :{0}", t);
}
Console.ReadLine();
}

9. Construya un programa tal, que dados como datos los valores enteros P y Q. determine si
los mismos satisfacen la siguiente expresin: P 3 + Q 2 2P 2 680 En caso afirmativo
debe imprimir los valores P y Q.
Datos
P
50
3

Q
20
9

9.1.Algoritmo
Inicio {Calcular los Valores para P y Q}
{Ingresamos el valor para P y Q}

Exp
120400<=680
90<=680

Resultado
Mensaje
No satisfacen
Si satisfacen

VALORES

P=3
Q=9

Lenguaje de Programacin

66

Carlos Rodrguez Torvisco Algortmica

Leer p , Leer q
{Calculamos la Expresion}
Exp=(p*p*p) +(q*q)2(p*p)
Si (Exp<=680) entonces
{Escribimos el Valor de la Expresion Matematica}
Escribir Exp
{Mostramos los Valores de P y Q}
Escribir p,q
Sino
Escribir La Expresion es Mayor a 680
Finsi
Fin
9.2.Codificacion(C#)
static void Main(string[] args)
{
int p, q;
double exp;
Console.Write("Ingresar el valor de P: ");
p = int.Parse(Console.ReadLine());
Console.Write("Ingresar el valor de Q: ");
q = int.Parse(Console.ReadLine());
//Calculamos la Expresion
exp = Math.Pow(p, 3) + Math.Pow(q, 2) - 2 * Math.Pow(p, 2);
if (exp <= 680)
{
Console.WriteLine("EL Valor de la

EXPRESION MATEMATICA es : {0}", exp);

Console.WriteLine("P={0} , Q={1}", p, q);


Console.WriteLine("Los Valores si Satisfacen La expresin Matemtica ");

}
else
{

Console.WriteLine("Los valores no satisfacen la expresin matemtica");

}
Console.ReadLine();

10. Dado como dato el sueldo de un trabajador, considere un aumento del 15% si su sueldo
es inferior a s/.1000, y de un 12% en caso contrario. Imprima el sueldo con el aumento
incorporado. Haga el programa correspondiente.
Datos
Sueldo
1500
900

Auxiliar
Condicion
Descuento
1500<1000
12%
90<1000
15%

10.1.Algoritmo
Inicio {Calcular Sueldo Nuevo de un Trabajador}
{Ingresamos Sueldo}

Resultado
Sueldo Actual
1680
1035

Lenguaje de Programacin

67

Carlos Rodrguez Torvisco Algortmica

Leer sue
Si (sue<1000) entonces {Preguntamos si el sueldo es inferior a 1000}
{Calculamos el Sueldo Nuevo con 15% de Descuento}
nsue=sue*1.15
Sino
{Calculamos el Sueldo Nuevo con 12% de Descuento}
nsue=sue*1.12
Finsi
{Mostrar el nuevo sueldo}
Escribir nsue
Fin
10.2.Codificacion(C#)
static void Main(string[] args)
{
float sue, nsue;
Console.Write("Ingresar el Sueldo Actual: ");
sue = float.Parse(Console.ReadLine());
if (sue < 1000) //Cuando solo hay un Proceso no es Necesario LLaves
nsue = sue * 1.15f;
else
nsue = sue * 1.12f;
Console.WriteLine("El Nuevo Sueldo es: {0} ", nsue);
Console.ReadLine();
}

11. Construya un programa tal, que dado como dato el sueldo de un trabajador, calcule su
aumento
segn el siguiente criterio:
SUELDO <= s/.1000
> AUMENTO 25%
s/. 1000 > SUELDO <= s/. 1500 > AUMENTO 21%
SUELDO > s/. 1500
> AUMENTO 18%
Imprima el nuevo sueldo del trabajador.

Datos
Sueldo
1500
900
1700

Auxiliar
Condicion
Descuento
1000>1500<=1500
21%
900<=1000
25%
1700>1500
18%

11.1.Algoritmo
Inicio {Calcular Sueldo Nuevo de un Trabajador}
{Ingresamos Sueldo}
Leer sue
Si (sue<=1000) entonces {Preguntamos si el sueldo es inferior a 1000}
{Calculamos el Sueldo Nuevo con 25% de Descuento}

Resultado
Sueldo Actual
1815
1125
2006

68

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

nsue=sue*1.25
Sino
Si (sue<=1500) entonces
{Calculamos el Sueldo Nuevo con 21% de Descuento}
nsue=sue*1.21
Sino
{Calculamos el Sueldo Nuevo con 21% de Descuento}
nsue=sue*1.21
Finsi
Finsi
{Mostrar el nuevo sueldo}
Escribir nsue
Fin
11.2.Codificacion(C#)
static void Main(string[] args)
{
double sue, nsue;
Console.Write("Ingresar el Sueldo Actual: ");
sue = double.Parse(Console.ReadLine());
if (sue < 1000)
nsue = sue * 1.25;
else
if (sue <= 1500)
nsue = sue * 1.21;
else
nsue = sue * 1.18;
Console.WriteLine("El Nuevo Sueldo es:{0}", nsue);
Console.ReadLine();
}

12. Construya un programa que pueda determinar, dados dos nmeros enteros, si un
nmero es divisor de otro.

Datos
Numero 1
2
8
5

Numero2
4
2
9

Resultado
Mensaje
Si es divisor
Si es divisor
No es divisor

12.1.Algoritmo
Inicio {Calcular si 2 numeros son divisores}
{Ingresamos numero 1 y numero 2}
Leer n1,n2
Si (n2 mod n1 =0) entonces
Escribir n1, es divisor de,n2

69

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Sino
Si (n1 mod n2 =0) entonces
Escribir n2, es divisor de,n1
Sino
Escribir no hay numeros divisores
Finsi
Finsi
Fin
12.2.Codificacion(C#)
static void Main(string[] args)
{
int n1, n2;
Console.Write("Ingresa el Primer Nmero:");
n1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa el Segundo Nmero:");
n2 = int.Parse(Console.ReadLine());
if ((n2 % n1) == 0)
{
Console.WriteLine("{0} es Divisor de {1}", n1, n2);
}
else if ((n1 % n2) == 0)
{
Console.WriteLine("{0} es Divisor de {1}", n2, n1);
}
else
{
Console.WriteLine("No hay nmeros divisores");
}
Console.ReadLine();
}

13. Haga un programa para calcular el precio del billete de ida y vuelta en
ferrocarril,conociendo la distancia del viaje de ida y el tiempo de estancia. Se sabe adems
que si el nmero de dias de estancia es superior a 7 y la distancia total (ida y vuelta) a
recorrer es superior a 800 km, el billete tiene una reduccin del 30%. El precio por km es de
s/. 0.17.

Datos
Distancia(viaje de ida)
400
500

Tiempo
4
8

13.1.Algoritmo
Inicio {Calcular el Costo de Billete de un Ferrocarril}
{Ingresamos Distancia y tiempo }
Leer dist,tiem
Si (((dist * 2) > 800) y (tiem > 7)) entonces
{Calculamos el costo de billete}
costo = dist * 2 * 0.17 * 0.70;

Resultado
Costo del Billete
136
119

Lenguaje de Programacin

70

Carlos Rodrguez Torvisco Algortmica

Sino
costo = dist * 2 * 0.17;
Finsi
{Mostrar el costo del billete}
Escribir costo
Fin
13.2.Codificacion(C#)
static void Main(string[] args)
{
int dist, tiem;
double costo;
Console.Write("Ingresar Distancia del Viaje de ida: ");
dist = int.Parse(Console.ReadLine());
Console.Write("Ingresar Tiempo de Estancia: ");
tiem = int.Parse(Console.ReadLine());
if (((dist * 2) > 800) && (tiem > 7))
{
costo = dist * 2 * 0.17 * 0.70;
//Otra Forma
//costo=(dist*2*0.17)*0.30;
//CostoTotal=(dist*2*0.17)-costo
}
else
costo = dist * 2 * 0.17;
Console.WriteLine("El Costo del Billete es: S/.{0}", costo);
Console.ReadLine();
}

14.Construya un programa tal, que dados como datos de entrada tres nmeros enteros,
determine si los mismos estn en orden creciente.

Numero 1
8
1

Datos
Numero 2
7
2

Numero 3
10
3

14.1.Algoritmo
Inicio {Calcular si 3 numeros estn en orden creciente o no}
{Ingresamos los tres numeros}
Leer a,b,c,
Si (a<b) entonces
Si (b<c) entonces
Escribir los nmeros estn en orden creciente
Sino
Escribir los nmeros no estn en orden creciente
Finsi
Sino

Resultado
Mensaje
No estn en orden creciente
Estn en orden creciente

71

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Escribir los nmeros no estn en orden creciente


Finsi
Fin
14.2.Codificacion(C#)
static void Main(string[] args)
{
int a, b, c;
Console.Write("Ingresar el 1 Numero: ");
a = int.Parse(Console.ReadLine());
Console.Write("Ingresar el 2 Numero: ");
b = int.Parse(Console.ReadLine());
Console.Write("Ingresar el 3 Numero: ");
c = int.Parse(Console.ReadLine());
if (a < b)
{
if (b < c)
{
Console.Write("Los nmeros estn en orden creciente");
}
else
{
Console.Write("Los nmeros no estn en orden creciente");
}
}
else
{
Console.Write("Los nmeros no estn en orden creciente");
}
Console.ReadLine();
}

15.Construya un programa de flujo tal, que dados como datos A y N, compruebe la igualdad
de la siguiente expresion:

1
(A 0)
AN
, 1/54 =1/625=0,0016 entonces 0,0016 = 0,0016 se

A N =

A=5 , N=4
54= 0,0016
comprueba la igualdad
15.1.Algoritmo

Inicio {Comprobar la igualdad d de la expresin}


{Ingresamos Base y Exponente}
Leer A,N
Si (A<>0) entonces
cal1=A^N
cal2=1/A^N
Si (cal1=cal2) entonces
Escribir se comprueba la igualdad
Sino
Escribir no se comprueba la igualdad

72

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Finsi
Sino
Escribir A tiene que ser Diferente de 0
Finsi
Fin
15.2.Codificacion(C#)
static void Main(string[] args)
{
int N;
double A, cal1, cal2;
Console.Write("Ingresar A: ");
A = double.Parse(Console.ReadLine());
Console.Write("Ingresa N:");
N = int.Parse(Console.ReadLine());
if (A != 0)
{
cal1 = Math.Pow(A, -N);
cal2 = 1 / Math.Pow(A, N);
if (cal1 == cal2)
{
Console.WriteLine("Se comprueba la igualdad");
}
else
{
Console.WriteLine("No se comprueba la igualdad");
}
}
else
{
Console.WriteLine("A tiene que ser diferente de cero");
}
Console.ReadLine();
}

16.Construya un programa tal, que dados como datos A, B y N, compruebe la igualdad de la


N

siguiente expresin:

AN
A
= N
B
B

16.1.Algoritmo
Inicio {Comprobar la igualdad d de la expresin}
{Ingresamos los Datos Necesarios}
Leer A,B,N
Si (B<>0) entonces
cal1=(A/B)^N
cal2=(A^N)/(B^N)
Si (cal1=cal2) entonces
Escribir se comprueba la igualdad
Sino
Escribir no se comprueba la igualdad
Finsi

Lenguaje de Programacin

73

Carlos Rodrguez Torvisco Algortmica

Sino
Escribir B tiene que ser Diferente de 0
Finsi
Fin
16.2.Codificacion(C#)
static void Main(string[] args)
{
int N;
double a, b, cal1, cal2;
Console.Write("Ingresar A: ");
a = double.Parse(Console.ReadLine());
Console.Write("Ingresar B: ");
b = double.Parse(Console.ReadLine());
Console.Write("Ingresar N: ");
N = int.Parse(Console.ReadLine());
if (b != 0)
{
cal1 = Math.Pow((a / b), N);
cal2 = Math.Pow(a, N) / Math.Pow(b, N);
if (cal1 == cal2)
{
Console.WriteLine("Se comprueba la igualdad");
}
else
{
Console.WriteLine("No se comprueba la igualdad");
}
}
else
{
Console.WriteLine("B tiene que ser diferente de cero");
}
Console.ReadLine();
}

17.En una tienda efectan un descuento a los clientes dependiendo del monto de la
compra. El descuento se efecta con base en el siguiente criterio:
Si el monto es menor que s/.500 > no hay descuento.
Si el monto est comprendido entre s/. 500 y s/. 1000
inclusive > 5% de descuento.
Si el monto est comprendido entre s/. 1000 y s/. 7000
inclusive > 11% de descuento.
Si el monto est comprendido entre s/. 7000 y s/. 15000
inclusive > 18% de descuento.
Si el monto es mayor a 15000
Inclusive > 25%
Construya un programa tal, que dado el monto de la compra

Lenguaje de Programacin

74

Carlos Rodrguez Torvisco Algortmica

de un cliente, determine lo que el mismo debe pagar.


Datos
Compra
7500
900
1700
400

Auxiliar
Condicion
Descuento
7000<7500<=15000
18%
500<900<=1000
5%
1000<1700<=7000
11%
400<500
0

17.1.Algoritmo
Inicio {Calcular el Monto a Pagar}
{Ingresamos el Total de Compra
Leer compra
Si (compra<500) entonces {no recibe descuento}
Pagar = compra
Sino
Si (compra<=1000) entonces
pagar = compra compra * 0.05;
Sino
Si (compra<=7000) entonces
pagar = compra compra * 0.11;
Sino
Si (compra<= 15000) entonces
pagar = compra compra * 0.18;
Sino
pagar = compra compra * 0.25;
Finsi
Finsi
Finsi
Finsi
{Mostrar el total a pagar}
Escribir pagar
Fin
17.2.Codificacion(C#)
static void Main(string[] args)
{
double compra, pagar;
Console.Write("Ingresar Monto de la Compra: ");
compra = double.Parse(Console.ReadLine());
if (compra < 500)
pagar = compra;
else
{
if (compra <= 1000)
pagar = compra - compra * 0.05;
else

Resultado
Monto a Pagar
5625
855
1275
400

Lenguaje de Programacin
{

75

Carlos Rodrguez Torvisco Algortmica

if (compra <= 700)


pagar = compra - compra * 0.11;
else
{
if (compra <= 1500)
pagar = compra - compra * 0.18;
else
pagar = compra - compra * 0.25;
}

}
}
Console.WriteLine("El Monto a Pagar es:{0}", pagar);
Console.ReadLine();
}

18.Construya un programa tal, que dado como dato Y, calcule el resultado de la siguiente
funcin:
3 * Y + 36
2
Y 10
X= 3
2
Y + Y 1
0

si0 < Y 11

si33 < Y 64

para cualquier otro valor deY

si11 < Y 33

Imprima X e Y.
18.2.Codificacion(C#)
static void Main(string[] args)
{
float y, x=0;
Console.Write("Ingresa Y:");
y = int.Parse(Console.ReadLine());
if ((y <= 0) || (y >= 64))
{
x = 0;
Console.WriteLine("El Numero est fuera del Rango!! ");
}
else
{
if (y <= 11)
x = 3 * y + 36;
else
{
if (y <= 33)
x = y * y - 10;
else
if(y<=64)
x = (y * y * y) + (y * y) - 1;
}
}
Console.WriteLine("para Y={0}, el resultado de la funcion es:{1}",y,x);

Console.ReadLine();

Lenguaje de Programacin

76

Carlos Rodrguez Torvisco Algortmica

19. En la Ciudad de Abancay, el impuesto que se debe pagar por los artculos se calcula
mediante la siguiente regla: los primeros s/. 20 no causan impuesto, los siguientes S/. 20
tienen el 30% de impuesto, y el resto el 40% de impuesto, pero si el costo del producto es
mayor a s/. 500, entonces en lugar de 40% se cobra el 50%. Disee un programa que lea el
costo basico de un articulo y calcule su precio total(precio total = precio bsico + impuesto).

Datos
Precio Basico
25
15
550

Resultado
Monto a Pagar
26,5
15
785

19.1.Algoritmo
Inicio {Calcular el impuesto de una persona}
{Ingresamos precio basico}
Leer prebas
Si (prebas > 20 y prebas <= 40) entonces
{Calculamos el Impuesto a Pagar}
imp = (prebas 20) * 0.3;
Sino
Si (prebas > 40 y prebas <= 500) entonces
imp = 20 * 0.30 + (prebas 40) * 0.4;
Sino
Si(prebas > 500) entonces
imp = 20 * 0.30 + (prebas 40) * 0.4 + (prebas 500) * 0.5;
Sino
imp = 0;{no se le aplica impuesto}
Finsi
Finsi
Finsi
Escribir prebas +imp
Fin
19.2.Codificacion(C#)
static void Main(string[] args)
{
double prebas, imp, pretot;
Console.Write("Ingresar Precio Basico del Producto: ");
prebas = double.Parse(Console.ReadLine());
if (prebas > 20 && prebas <= 40)
imp = (prebas - 20) * 0.3;
else
{
if (prebas > 40 && prebas <= 500)
imp = 20 * 0.30 + (prebas - 40) * 0.4;
else
{
if (prebas > 500)
imp = 20 * 0.30 + (prebas - 40) * 0.4 + (prebas - 500) * 0.5;

77

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

else
imp = 0;

}
}
pretot = prebas + imp;
Console.WriteLine("Precio Basico: {0}", prebas);
Console.WriteLine("Precio Total: {0}", pretot);
Console.ReadLine();

20. Construya un programa tal, que dado como dato una temperatura en grados Fahrenheit,
determine el deporte que es apropiado practicar a esa temperatura, teniendo en cuenta la
siguiente tabla:
DEPORTE

TEMPERATURA

Natacin

>85

Tenis

70<temp<=85

Golf

32<temp<=70

Esqu

10<temp<=32

Marcha

<=10

Datos
Temperatura(F)
87
75
50
27
5
20.1.Algoritmo
Inicio {Calcular el deporte mas apropiado}
{Ingresamos la temperatura en grados Fahrenheit}
Leer temp
Si (temp>85) entonces
Escribir Es Apropiado para la Natacion
Sino
Si (temp>70) entonces
Escribir Es Apropiado para el Tenis
Sino
Si (temp>32) entonces
Escribir Es Apropiado para el Golf
Sino
Si (temp>10) entonces
Escribir Es Apropiado para el Esqui

Resultado
Mensaje
NATACION
TENIS
GOLF
ESQU
MARCHA

Lenguaje de Programacin

78

Carlos Rodrguez Torvisco Algortmica

Sino
Escribir Es Apropiado para Marcha
Finsi
Finsi
Finsi
Finsi
Fin
20.2.Codificacion(C#)
static void Main(string[] args)
{
float temp;
Console.Write("Ingresar Temperatura en Grados Fahrenheit: ");
temp = float.Parse(Console.ReadLine());
if (temp > 85)
Console.WriteLine("Es apropiado practicar Natacin");
else
{
if (temp > 70)
Console.WriteLine("Es apropiado practicar Tenis");
else
{
if (temp > 32)
Console.WriteLine("Es apropiado practicar Golf");
else
{
if (temp > 10)
Console.WriteLine("Es apropiado practicar Esqui");
else
Console.WriteLine("Es apropiado practicar Marcha");
}

}
Console.ReadLine();

21. Haga un programa que permita calcular el valor de F(x), segn la expresin:

X 2

x
F(x) = 6
X

X 3 + 5

si (X mod 4) = 0

si (Xmod 4) = 1

si (X mod 4) = 2

si (X mod 4) = 3

X=4 =4 mod 4 ==0 entonces 4*4=16


X=5 = 5mod 4 == 1 entonces 5/6=0.83333
X=10 = 10 mod 4 == 2 entonces 10=3,1622
X=15= 15 mod 4 == 3 entonces 15*15*15+5=3380

Lenguaje de Programacin

79

Carlos Rodrguez Torvisco Algortmica

21.1.Algoritmo
Inicio {Calcular F(X)}
{Ingresamos x}
Leer x
res=(ent)x mod 4
Si (res=0) entonces
Resu=x*x
Sino
Si (res=1) entonces
Resu=x/6
Sino
Si (res=2) entonces
Resu=
Sino
Si (res=3) entonces
Resu=x*x*x+5
Finsi
Finsi
Finsi
Finsi
{Mostrar el total de caloras}
Escribir Resu
Fin
21.2.Codificacion(C#)
static void Main(string[] args)
{
double x;
int res;
double resu=0;
Console.Write("Ingrese X:");
x = int.Parse(Console.ReadLine());
res = (int)x % 4;
if (res == 0)
resu = x * x;
else if (res == 1)
resu = x / 6;
else if (res == 2)
resu = Math.Sqrt(x);
else if (res == 3)
resu = x * x * x + 5;
Console.WriteLine("El Resultado es:"+resu);
Console.ReadLine();
}

22.Una Persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuantas
caloras consume su cuerpo durante todo el tiempo que realice una misma actividad.

80

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Las actividades que tienen permitido realizar son nicamente dormir o estar sentado en
reposo. Los datos que tiene son que estando dormido consume 1.08 caloras por minuto y
estando sentado en reposo consume 1.66 caloras por minuto.
Datos
Estado
Dormido
Sentado

Tiempo
30
21

Resultado
Cantidad Caloras
32,4
34.86

22.1.Algoritmo
Inicio {Calcular el total de caloras de un persona enferma}
{Ingresamos estado y tiempo}
Leer estado,tiempo
Si (estado=dormido) entonces
{Calculamos el total de caloras en estado dormido}
cg=1.08*tiempo
Sino
{Calculamos el total de caloras en estado sentado}
cg=1.66*tiempo
Finsi
{Mostrar el total de caloras}
Escribir cg
Fin
22.2.Codificacion(C#)
static void Main(string[] args)
{
string estado;
int tiempo;
double cg;
//Ingresamos el estado y el tiempo
Console.Write("Ingrese Estado(dormido/sentado):");
estado = Console.ReadLine();
Console.Write("Ingrese Tiempo:");
tiempo = int.Parse(Console.ReadLine());
if (estado == "dormido")
{
//calculamos el total de calorias en estado dormido
cg = 1.08 * tiempo;
}
else
{
//calculamos el total de caloras en estado sentado
cg = 1.66 * tiempo;
}
//mostramos el total de caloras
Console.Write("Total de Caloras es :{0}",cg);
Console.Read();
}

Lenguaje de Programacin

81

Carlos Rodrguez Torvisco Algortmica

23.Hacer un algoritmo que imprima el nombre de un artculo, clave, precio original y su


precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el descuento
es del 10% y si la clave es 02 el descuento es del 20%(solo existen dos claves).
Ejemplo codificado.

23.1.Algoritmo
Inicio {Calcular el precio con descuento}
{Ingresamos nombre, clave, precio original}
Leer nombre, clave, precio_original
Si (clave=01) entonces
{Calculamos el precio con descuento}
Prec_desc=precio_originalprecio_original*0.01
Sino
{Calculamos el precio con descuento del caso contrario}
Prec_desc=precio_originalprecio_original*0.02
Finsi
{Mostrar el precio con descuento, el nombre, la clave y el precio original}
Escribir nombre, clave, precio_original, Prec_desc
Fin
23.2.Codificacion(C#)
static void Main(string[] args)
{

82

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

string nombre;
double precio_original, clave,precio_descuento;
//ingresamos el nombre la clave y el precio original
Console.Write("Ingresa Nombre:");
nombre = Console.ReadLine();
Console.Write("Ingresa Clave:");
clave = int.Parse(Console.ReadLine());
Console.Write("Ingresa Precio Original:");
precio_original = double.Parse(Console.ReadLine());
if (clave == 1)
{
//calculamos el precio de descuento
precio_descuento = precio_original - precio_original * 0.10;
}
else
{
//calculamos el precio de descuento del caso contrario
precio_descuento = precio_original - precio_original * 0.20;
}
//mostramos los resultados necesarios
Console.WriteLine("\nNombre:" + nombre);
Console.WriteLine("Clave:"+clave);
Console.WriteLine("Precio Original:"+precio_original);
Console.WriteLine("Precio con Descuento:"+precio_descuento);
Console.ReadLine();
}

24.Hacer un algoritmo y su codificacin que calcule el total a pagar por la compra de


camisas. Si se compran tres camisas o ms se aplica un descuento del 20% sobre el total de la
compra y si compra menos de tres camisas un descuento del 10%.
Datos
Numero de camisas
2
4

Precio
30
21

24.1.Algoritmo
Inicio {Calcular el total a pagar por el consumo de camisas}
{Ingresamos numero de camisas y el precio por camisa}
Leer numero_camisas,precio
{Calculamos el total de compra}
Totalcom=numero_camisas*precio
Si (numero_camisas>=3) entonces
{Calculamos el total total a pagar }
totpag=totalcomtotcom*0.20
Sino
{Calculamos el total total a pagar del caso contrario }
totpag=totalcomtotcom*0.10
Finsi
{Mostrar el total a pagar por la compra de camisas}
Escribir totpag
Fin

Resultado
Total a pagar
54
67,2

Lenguaje de Programacin

83

Carlos Rodrguez Torvisco Algortmica

24.2.Codificacion(C#)
static void Main(string[] args)
{
int numero_camisas;
float precio, totpag, totalcom;
//ingresamos el numero de camisas y el precio por camisa
Console.Write("Ingresa Numero de Camisas:");
numero_camisas = int.Parse(Console.ReadLine());
Console.Write("Ingresa su precio:");
precio = int.Parse(Console.ReadLine());
//calculamos el total de compra
totalcom = numero_camisas * precio;
if (numero_camisas >= 3)
{
//calculamos el total a pagar
totpag = totalcom - (totalcom * 0.20f);
}
else
{
//calculamos el total a pagar del caso contrario
totpag = totalcom - (totalcom * 0.10f);
}
//mostramos el total a pagar
Console.Write("su total a pagar es:{0}", totpag);
Console.Read();
}

25.Una empresa quiere hacer una compra de varias piezas de la misma clase a una fbrica
de refacciones. La empresa, dependiendo del monto total de la compra, decidir que hacer
para pagar al fabricante.
Si el monto total de la compra excede de S/.500 000 la empresa tendr la capacidad de
invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30%
y el resto lo pagara solicitando un crdito al fabricante. Si el monto total de la compra no
excede de S/.500 000 la empresa tendr capacidad de invertir de su propio dinero un 70% y
el restante 30% lo pagara solicitando crdito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a
crdito.

25.1.Algoritmo
Inicio
{Ingresamos numero piezas y el costo por pieza}
Leer numero_pieza, costo_pieza

Lenguaje de Programacin

84

Carlos Rodrguez Torvisco Algortmica

{Calculamos el total de compra}


Totalcom=numero_pieza*costo_pieza
Si (totalcompra>500000) entonces
{Calculamos el el prstamo , crdito, inters y la cantidad invertida }
Cantidadinvertida=totalcompra*0.55
Prstamo=totalcompra*0.30
Crdito=totalcomp*0.15
Sino
{Calculamos el el prstamo , crdito, inters y la cantidad invertida del caso contrario }
Cantidadinvertida=totalcompra*0.70
Crdito=totalcomp*0.15
Prstamo=0
Finsi
{Calculamos el concepto de interes}
Inters=crdito*0.20
{mostramos prstamo,cantidad invertida, crdito, inters}
Escribir cantidadinvertida, prstamo, crdito, interes
Fin
25.2.Codificacion(C#)
static void Main(string[] args)
{
double costo_pieza, numero_pieza, totalcompra, credito, prestamo;
double cantidadinvertida;
double interes;
//ingresamos el el costo por pieza y el numero de piezas
Console.Write("Ingrese Numero de Pieza:");
numero_pieza = int.Parse(Console.ReadLine());
Console.Write("Ingrese Costo por Pieza:");
costo_pieza = double.Parse(Console.ReadLine());
//calculamos el total de compra
totalcompra = costo_pieza * numero_pieza;
if (totalcompra > 500000)
{
cantidadinvertida = totalcompra * 0.55;
prestamo = totalcompra * 0.30;
credito = totalcompra * 0.15;
}
else
{
cantidadinvertida = totalcompra * 0.70;
credito = totalcompra * 0.30;
prestamo = 0;
}
//calculamos el concepto de intereses
interes = credito * 0.20;
//mostramos los resultados necesariso
Console.WriteLine("Cantidad Invertida:"+cantidadinvertida);
Console.WriteLine("Prestamo:"+prestamo);
Console.WriteLine("Credito:"+credito);
Console.WriteLine("Interes:"+interes);
Console.Read();
}

85

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

26.Determinar la cantidad de dinero que recibir un trabajador por concepto de las horas
extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de
40,el resto consideran horas extras y que estas se pagan al doble de una hora normal cuando
no exceden de 8;si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que
se pagan las horas normales y el resto al triple.
Datos
Horas trabajadas
29
50

Pago por Hora


30
20

Resultado
Total a pagar
870
1240

Inicio {pago a un trabajador por sus horas extras}


{Ingresamos horas trabajadas y el precio por hora}
Leer horatrabajadas,precioporhora
Si (horatrabajadas<=40) entonces
{pago de horas normales sin horas extras }
tp=horatrabajadas*preciohora
Sino
horaextras=horatrabajadas40
Si (horaextras<=8) entonces
pagoextra=horaextras*precioporhora*2
Sino
pagoextradelextra=8*precioporhora*2
pagoextra=((horaextras8)*precioporhora*3)+pagoextradelextra
Finsi
tp=40*precioporhora+pagoextra
Finsi
{mostramos el dinero que recibir el trabajador}
Escribir tp
Fin
26.2.Codificacion(C#)
static void Main(string[] args)
{
double horatrabajadas,precioporhora,horaextras;
double pagoextra,pagoextradelextra,tp;
//ingresamos las horas trabajadas y el precio por hora
Console.WriteLine("Ingrese Hora Trabajadas:");
horatrabajadas = int.Parse(Console.ReadLine());
Console.WriteLine("Ingrese Precio por Hora:");
precioporhora = int.Parse(Console.ReadLine());
if (horatrabajadas <= 40)
{
//pago de horas normales sin horas extras
tp = horatrabajadas * precioporhora;
}
else
{

Lenguaje de Programacin

86

Carlos Rodrguez Torvisco Algortmica

horaextras = horatrabajadas - 40;


if (horaextras <= 8)
{
pagoextra = horaextras * precioporhora * 2;
}
else
{
pagoextradelextra = 8 * precioporhora * 2;
pagoextra = ((horaextras - 8) * precioporhora * 3) +

pagoextradelextra;

}
tp = 40 * precioporhora + pagoextra;
}
//mostramos el dinero que reciibira el trabajador
Console.WriteLine("El Pago es :{0}",tp);
Console.Read();

27.La caja municipal cusco, tiene dos tarifas que esta de acuerdo al consumo del usuario.
Para los primeros 40 metros cbicos cobra 0.5 nuevos soles y para el consumo por encima de
40 metros cbicos cobra 0.8 nuevos soles por metro cubico. Escribir un algoritmo y su
codificacin que permita calcular el monto total a cobrar por un determinado consumo
incluyendo el impuesto general a las ventas de 18%.
Datos consumo
30
30*0.5*1.18
40
40*0.5*1.18
46
(40*0.5+ (4640)*0.8)*1.18

ResultadoMonto a cobrar
17.7
23.6
29.26

27.1.Algoritmo
Inicio {calcular monto a cobrar por consumo}
{ingresar consumo}
Leer consumo
{Calculamos el monto total a cobrar}
Si (consumo<=40) entonces
MontoaCobrar=consumo*0.05*1.18
Sino
MontoaCobrar=(40*0.05+(consumo40)*0.8)*1.18
Finsi
{mostrar el monto a cobrar}
Escribir MontoaCobrar
Fin
27.2.Codificacion(C#)
static void Main(string[] args)
{
double consumo, montoacobrar;
//ingresamos el consumo
Console.WriteLine("Ingresa Consumo:");
consumo = int.Parse(Console.ReadLine());

87

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

//calcular el monto total a cobrar


if (consumo <= 40)
{
montoacobrar = consumo * 0.5 * 1.18;
}
else
{
montoacobrar = (40 * 0.5 + (consumo - 40) * 0.8) * 1.18;
}
//mostrar el monto a cobrar
Console.WriteLine("El Monto a Cobrar es :"+montoacobrar);
Console.Read();
}

28.El Profesor de una asignatura durante un semestre tomo cuatro exmenes parciales. Al
final del semestre les informa a sus alumnos que pueden calcular su promedio final
eliminando la nota ms baja y promediando las tres restantes.
Datos
Nota1 Nota2 Nota3 Nota4
12
15
14
13
10
16
07
13
03
10
05
06
09
02
05
04

Resultado
Nota Menor
12
07
03
02

28.1.Algoritmo
Inicio {Promediar las tres notas ms altas}
{Ingresar Notas}
Leer nota1, nota2, nota3, nota4
{Calcular el promedio de tres notas ms altas}
Notemenor=nota1
Si (Notamenor>nota2) entonces
Notamenor=nota2
Finsi
Si (Notamenor>nota3) entonces
Notamenor=nota3
Finsi
Si (Notamenor>nota4) entonces
Notamenor=nota4
Finsi
{Determinar el promedio eliminando la nota menor}
Promedio= (nota1+nota2+nota3+nota3Notamenor)/3
{Escribir el promedio}
Escribir Promedio
Fin

Promedio
14
13
07
06

Lenguaje de Programacin

88

Carlos Rodrguez Torvisco Algortmica

28.2.Codificacion(C#)
static void Main(string[] args)
{
int nota1, nota2, nota3, nota4, promedio, Notamenor;
//ingresamos las notas
Console.Write("Ingrese Nota 1:");
nota1 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Nota 2:");
nota2 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Nota 3:");
nota3 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Nota 4:");
nota4 = int.Parse(Console.ReadLine());
//calcular el promedio de tres notas ms altas
//supongamos que la nota menor sea la nota 1
Notamenor = nota1;
if (Notamenor > nota2)
Notamenor = nota2;
if (Notamenor > nota3)
Notamenor = nota3;
if (Notamenor > nota4)
Notamenor = nota4;
//determinamos el promedio eliminando la nota mas baja
promedio=(nota1+nota2+nota3+nota4-Notamenor)/3;
//mostramos el promedio
Console.Write("El Promedio es :"+promedio);
Console.Read();
}

29.Escribir un algoritmo y su codificacin que lea una fecha (Da, mes y ao) y determine la
fecha correspondiente al da siguiente.

Dato
Fecha Inicial
Da Mes Ao
15
01 94
31
01 94
28
02 93
28
02 96
30
03 94
30
04 98
31
12 2008

mas un da
mas un da
mas un da
mas un da
mas un da
mas un da
mas un da

Dato
Fecha Final
Da Mes Ao
16
01 94
01
02 94
01
03 93
29
02 96
31
03 94
01
05 98
01
01 2009

Lenguaje de Programacin

89

Carlos Rodrguez Torvisco Algortmica

29.1.Algoritmo
Inicio {Determinar la fecha del da siguiente}
{Ingresar Fecha}
Leer DD1,MM1,AA1
{Determinar fecha del da siguiente}
Si (MM1=1) o(MM1=3)o(MM1=5)o(MM1=7)o(MM1=8)o(MM1=10)o(MM1=12) entonces
Nrodiasmes=31
Sino
Si (MM1=4) o(MM1=6)o(MM1=9)o(MM1=11)entonces
Nrodiasmes=30
Sino
Si (AA1 mod 4)=0 entonces
{ao bisiesto}
Nrodiasmes=29
Sino
{ao no bisiesto}
Nrodiasmes=28
Finsi
Finsi
{Agregar a fecha un da}
Si (DD1<Nrodiasmes) entonces
DD2=DD1+1
MM2=MM1
AA2=AA1
Sino
Si (MM1<12) entonces
DD2=1
MM2=MM1+1
AA2=AA1
Sino
DD2=1
MM2=1
AA2=AA1+1
Finsi
{Escribir el Fecha del da siguiente}
Escribir DD2
Escribir MM2
Escribir AA2
Fin
29.2.Codificacion(C#)
static void Main(string[] args)
{

Lenguaje de Programacin

90

int DD1, MM1, AA1, DD2, MM2, AA2;


int Nrodiasmes;
//ingresa la fecha
Console.Write("Dia:");
DD1 = int.Parse(Console.ReadLine());
Console.Write("Mes:");
MM1 = int.Parse(Console.ReadLine());
Console.Write("Ao:");
AA1 = int.Parse(Console.ReadLine());
//determinar fecha del dia siguiente
//determinar nmero de dias del mes
if ((MM1 == 1) || (MM1 == 3) || (MM1 == 5) ||
{

Carlos Rodrguez Torvisco Algortmica

(MM1 == 7) || (MM1 == 8) || (MM1 == 10)

|| (MM1 == 12))

Nrodiasmes = 31;
}
else if ((MM1 == 4) || (MM1 == 6) || (MM1 == 9) || (MM1 == 11))
{
Nrodiasmes = 30;
}
else
{
if (AA1 % 4 == 0)
Nrodiasmes = 29;
else
Nrodiasmes = 28;
}
//agregar a fecha un da
if (DD1 < Nrodiasmes)
{
DD2 = DD1 + 1;
MM2 = MM1;
AA2 = AA1;
}
else if (MM1 < 12)
{
DD2 = 1;
MM2 = MM1 + 1;
AA2 = AA1;
}
else
{
DD2 = 1;
MM2 = 1;
AA2 = AA1+1;
}
//escribir la fecha al da siguiente
Console.Write("{0}/{1}/{2}",DD2,MM2,AA2);
Console.Read();
}

30.Escribir un algoritmo que encuentre la solucin de una ecuacin de segundo grado:


AX2+BX+C=0
Utilizaremos el mtodo de baskara

2
Ejemplo:

Lenguaje de Programacin

91

Carlos Rodrguez Torvisco Algortmica

Dada la siguiente ecuacin: X2+5X+6


Reemplazando se tiene:
X1=

= 2

X2 =

= 3

Existen casos de ecuaciones de segundo grado que no se puede resolver completamente con
la ecuacin de Baskara.
X2+4X+6
0X2+3X+9
0X2+0X+9

No tiene solucin real


Tiene Solucin Lineal
No tiene solucin

30.1.Algoritmo
Inicio {Resolver una ecuacin de segundo grado}
{Ingresar Coeficientes}
Leer A, B, C
{Calcular Solucin de la ecuacin de segundo grado}
Si (A<>0) entonces
{Posible solucin cuadrtica}
D=B24AC
Si (D>=0) entonces
{Existe solucin Real}
X1= (B + )/ (2*A)
X1= (B )/ (2*A)
Sino
Escribir No existe solucin real
Sino {A=0}
{Posible solucin lineal}
Si (B<>0) entonces
X1=B/C
Escribir X1
Sino {(A=0) y (B=0)}
Escribir Ecuacin no tiene solucin
Finsi
Fin
30.2.Codificacion(C#)
static void Main(string[] args)
{
double A, B,C;

Lenguaje de Programacin

92

Carlos Rodrguez Torvisco Algortmica

double D,X1,X2;
//Ingresar los coeficientes
Console.Write("A:");
A = double.Parse(Console.ReadLine());
Console.Write("B:");
B = double.Parse(Console.ReadLine());
Console.Write("C:");
C = double.Parse(Console.ReadLine());
//calcular solucion de la ecuacion de segundo grado
if (A != 0)
{
//posible solucion cuadratica
D = (B * B) - (4 * A * C);
if (D >= 0)
{
//existe solucion real
X1 = (-B + Math.Sqrt(D)) / (2 * A);
X2 = (-B - Math.Sqrt(D)) / (2 * A);
Console.WriteLine("X1:{0}", X1);
Console.WriteLine("X2:{0}", X2);
}
else //d<0
{
Console.Write("No Existe Solucion Real");
}
}
else //a=0
{
//posible solucion lineal
if (B != 0)
{
//solucion lineal
X1 = -B / C;
Console.Write("X1:{0}", X1);
}
else //a=0 y b=0
Console.Write("Ecuacion no tiene solucion");
}
Console.Read();
}

31.Una empresa codifica los artculos de su almacn con cdigos numricos de 4 dgitos. El
cdigo para ser valido debe estar formado por tres dgitos impares y un digito par. Escribir
un algoritmo y su codificacin que lea un nmero de 4 dgitos y determine si puede ser o no
ser utilizado como un cdigo.
Datos
2222
1572
2457
1493
Inicio {Calcular si un cdigo es valido o no es valido}

Resultado
No valido
Valido
No valido
valido

{Ingresar Cdigo}
Leer Codigo
{Separa el Nmero en Unidad, Decena, Centena y Unidad de Millar}
u = codigo mod 10;

Lenguaje de Programacin

93

Carlos Rodrguez Torvisco Algortmica

d = (codigo div 10) mod 10;


c = (codigo div 100) mod 10;
um = codigo div 1000;
Si ((u mod 2) =00 y ((d mod 2) <> 0 y ((c mod 2 <> 0) y ((um mod 2) <> 0)))) entonces
Escribir el cdigo es valido
Sino
Si ((u mod 2) <>0 y ((d mod 2) =0 0 y ((c mod 2 <> 0) y ((um mod 2) <> 0)))) entonces
Escribir el cdigo es valido
Sino
Si ((u mod 2) <>0 y ((d mod 2) <> 0 y ((c mod 2 =0 0) y ((um mod 2) <> 0)))) entonces
Escribir el cdigo es valido
Sino
Si ((u mod 2) <>0 y ((d mod 2)<> 0 y ((c mod 2 <> 0) y ((um mod 2)= 0)))) entonces
Escribirel cdigo es valido
Sino
Escribir el cdigo no es valido
Finsi
Fin
31.2.Codificacion(C#)
static void Main(string[] args)
{
int codigo, u, d, c, um;
//ingresa el codigo
Console.Write("Ingrese Codigo:");
codigo = int.Parse(Console.ReadLine());
//separar el numero en unidad,decena,centena y unidad de millar
u = codigo % 10;
d = (codigo / 10) % 10;
c = (codigo / 100) % 10;
um = codigo / 1000;
//preguntar si puede ser valido si oh no el codigo

if ((u % 2) == 0 && ((d % 2) != 0 && ((c % 2 != 0) && ((um % 2) != 0))))

Console.Write("ES Valido");
else if ((u % 2) != 0 && ((d % 2) == 0 && ((c % 2 != 0) && ((um % 2) != 0))))

Console.Write("ES Valido");

else if ((u % 2) != 0 && ((d % 2) != 0 && ((c % 2 == 0) && ((um % 2) != 0))))

Console.Write("ES Valido");

else if ((u % 2) != 0 && ((d % 2) != 0 && ((c % 2 != 0) && ((um % 2) == 0))))

Console.Write("ES Valido");
else
Console.Write("no valido");
Console.Read();
}

32.En un examen de suficiencia un postulante es evaluado por tres jurados, cada jurado
emite una nota de 0 a 20. Para determinar la nota final del postulante, slo las dos notas
ms prximas, descartndose la nota ms discordante. Escribir un programa que permita
calcular la nota final del postulante. Nota.si no hay nota discordante se promedia las dos
ms altas.

Lenguaje de Programacin

94

Datos
Nota1 Nota2 Nota3
12
15
14
10
16
07
03
10
05
09
10
11

Carlos Rodrguez Torvisco Algortmica

Resultado
Nota Discordante
12
16
10
no hay

Promedio
14.5
8.5
4.0
(11+10)/2=10.5

static void Main(string[] args)


{
//declaramos las notas
double nota1, nota2, nota3;
//declaramos las variables auxiliares
double temporal,tempora2, tempora3;
double promedio;
//ingresamos las tres notas
Console.Write("Ingresa Nota 1:");
nota1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Nota 2:");
nota2 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Nota 3:");
nota3 = int.Parse(Console.ReadLine());
//ordenamos los numeros de mayor a menor
if (nota1 < nota3)
{
temporal = nota1;
nota1 = nota3;
nota3 = temporal;
}
if (nota2 < nota3)
{
temporal = nota2;
nota2 = nota3;
nota3 = temporal;
}
if (nota1 < nota2)
{
temporal = nota1;
nota1 = nota2;
nota2 = temporal;
}
tempora2 = nota1-nota2;
tempora3 = nota2-nota3;
//hacemos las comparaciones
if (tempora2 > tempora3)
{
promedio = (nota2 + nota3) / 2;
}
else
promedio = (nota2 + nota1) / 2;
Console.WriteLine("El Promedio es :{0:F1}", promedio);
Console.Read();
}

33.Disee un algoritmo que lea un numero de tres cifras y determine si es o no capica .Un
numero es capica si es igual al revs del nmero.

Lenguaje de Programacin

95

Carlos Rodrguez Torvisco Algortmica

Observacin.como el numero tiene tres cifras, para ser capica basta con que la cifra de las
unidades sea igual a las cifras de las centenas. Por ejemplo 353, 878, 989, etc
Datos
456
151
353
484

Resultado
No es capica
Si es capica
Si es capica
Si es capica

33.1 Algoritmo
Inicio {Determinar si un nmero es capica o no}
{Ingresar Nmero}
Leer numero
{Si el nmero tiene tres cifras}
Si (numero>=100 y numero<=999) entonces
{determina la cifra de las unidades y la cifra de las centenas}
Unidades=numero mod 10
Centenas=numero div 100
Si (unidades==centenas) entonces
tipoNumero=El Numero es capica
Sino
tipoNumero=El Numero no es capica
Finsi
{muestra el tipo de numero}
Escribir tipoNumero
Sino
Escribir no es un numero de tres cifras
Fin
33.2.Codificacion(C#)
static void Main(string[] args)
{
int numero, unidad, centena;
string TipoNumero;
//ingresar numero de tres digitos
Console.Write("Ingrese Nmero:");
numero = int.Parse(Console.ReadLine());
//si el numero tiene tres cifras...
if (numero >= 100 && numero <= 999)
{
//determina la cifra de la unidad y de la centena
unidad = numero % 10;
centena = numero / 100;
//determina el tipo de numero entre capica o no capica
if (unidad == centena)
TipoNumero = "El Numero es Capica";
else
TipoNumero = "El Numero no es Capica";
//muestra el tipo de numero
Console.Write(TipoNumero);
}

96

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

else
Console.Write("no es un numero de tres cifras");
Console.Read();
}

34.En una playa de estacionamiento cobra S/.2.5 por hora o fraccin. Disee un algoritmo
que determine cuanto debe pagar un cliente por el estacionamiento de su vehculo,
conociendo el tiempo de estacionamiento eh horas y minutos.
Datos
Horas
12
4

Mintuos
30
0

Resultado
Total a pagar
32.5
10

34.1 Algoritmo
Inicio {Determinar el pago}
{Ingresar Hora y minutos}
Leer hora, minuto
{Si hay alguna fraccin de hora, incrementa las horas a pagar en una unidad}
Si (minuto>0) entonces
hora=hora+1
Finsi
Pago=hora*2.5
{mostrar pago}
Escribir pago
Fin
34.2 Codificacin(C#)
static void Main(string[] args)
{
int horas, minutos;
double pago;
//ingresamos los datos
Console.Write("Ingresa Horas:");
horas = int.Parse(Console.ReadLine());
Console.Write("Ingresa Minutos:");
minutos = int.Parse(Console.ReadLine());
//si hay alguna fraccin de hora, incrementa las horas a pagar en una unidad

if (minutos > 0)
horas = horas + 1;
//determinar el importe a pagar
pago = horas * 2.5;
//mostrar pago
Console.WriteLine("el pago es:"+pago);
Console.Read();
}

35. Dado un monto calcular el descuento considerando que por encima de s/.350 el
descuento es del 35% y por debajo de 350 es de 10%.

Lenguaje de Programacin
Datos
MONTO
151
353
484

97

Carlos Rodrguez Torvisco Algortmica

Resultado
DESCUENTO
CONDICION
15,1
151<350 =10%
123,55
353>350=35%
169,4
484>350=35%

35.1 Algoritmo
Inicio {Determinar Descuento}
{Ingresar Total de Consumo}
Leer monto
{Si monto es mayor a 350}
Si (monto>350) entonces
Descuento=monto*0.35
Sino
Descuento=monto*0.10
Finsi
{mostrar Descuento}
Escribir Descuento
Fin
35.2 Codificacin(C#)
static void Main(string[] args)
{
double monto,descuento;
Console.Write("Ingresa Monto:");
monto = double.Parse(Console.ReadLine());
if (monto > 350)
descuento = monto * 35 / 100;
else
descuento = monto * 10 / 100;
Console.WriteLine("El Descuento es:" + descuento);
Console.Read();
}

36. Dada la duracin en minutos de una llamada calcular el costo, considerando. Hasta tres
minutos el costo es 0.50.Por encima de tres minutos es 0.50 ms 0.1 x cada minuto adicional
a los tres primeros.
36.1 Algoritmo
Inicio {Determinar Costo de Llamadas}
{Ingresar Total de Minutos Hablados}
Leer minutos
{Si minutos es menor o igual a 3 solo pagara cincuenta centimos}
Si (minutos<=3) entonces
C=0.50
Sino
C=0.50+0.1*(minutos3)
Finsi
{mostrar Costo de las LLamadas}

Lenguaje de Programacin

98

Carlos Rodrguez Torvisco Algortmica

Escribir C
Fin
36.2 Codificacin(C#)
static void Main(string[] args)
{
int minutos;
double C;
Console.Write("Ingresa Minutos:");
minutos = int.Parse(Console.ReadLine());
if (minutos <= 3)
{
C = 0.50;
}
else
{
C = 0.50 + 0.1 * (minutos - 3);
}
Console.WriteLine("El Costo es:" + C);
Console.Read();
}

INSTRUCCIN SWITCH (ESTRUCTURA MULTIPLE)


La solucin de muchos problemas requiere algoritmos que hacen uso de mltiples decisiones.
Este Problema, se podra resolver con estructuras selectivas anidadas del tipo: SIENTONCES
SINO, tal como se vio en algunos ejemplos. Sin embargo, la excesiva anidacin hace los
algoritmos ms ilegibles.
La mayora de los lenguajes de programacin ofrecen estructuras selectivas mltiples, que
permite implementar este tipo de algoritmos de una manera muy simple y sobre todo legible.

Pseucodogico

C#

Segn_sea variable_selector hacer


Caso 1 : bloque de instrucciones 1

switch(variable_selector)
{
case 1 : bloque 1 break;

Caso 2 : bloque de instrucciones 2

case 2: bloque 2 break;

Caso 3 : bloque de instrucciones 3

Caso N : bloque de instrucciones N


Fin Segn_sea

case 3:bloque 3 break;

case N:bloque N break;


}

37.Escribir el algoritmo que lea el mes y el ao de una fecha y determine el nmero de das
del mes.
Dato
Fecha Inicial

Resultado
Nro. Das Mes

99

Lenguaje de Programacin
Mes Ao
01
98
02
92
02
94
06
99

Carlos Rodrguez Torvisco Algortmica

31
29
28
30

Inicio {Determinar el nmero de das del mes}


{Ingresar Mes y Ao}
Leer Mes, Ao
{Determinar nmero de dias del mes }
Segn_sea Mes hacer
Case 1, 3, 5, 7, 8, 10, 12: NroDiasMes=31
Case 4, 6, 9, 11
: NroDiasMes=30
Case 2
: Si (ao mod 4)=0 Entonces
NroDiasMes=29
Sino
NroDiasMes=28
Fin Segn_sea
{Escribir das del mes}
Escribir NroDiasMes
Fin
37.2 Codificacin(C#)
static void Main(string[] args)
{
int mes, ao, NroDiasMes=0;
//ingresar mes y ao
Console.WriteLine("Ingresa Mes:");
mes = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa Ao:");
ao = int.Parse(Console.ReadLine());
//determinar numero de dias del mes
switch (mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: NroDiasMes = 31; break;
case 4:
case 6:
case 9:
case 11: NroDiasMes = 30; break;
case 2: if (ao % 4 == 0)
{
NroDiasMes = 29;
}
else
{
NroDiasMes = 28;

100

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

break;
}
//escribir dias del mes
Console.WriteLine("Los dias del mes son :{0}",NroDiasMes);
Console.Read();
}

37.Construya un programa que permita realizar operaciones aritmticas elementales, segn


la clave ingresada.

Numero 1
20
5
35
250

Datos
Numero 2
20
3
12
5

Inicio {Determinar el nmero de das del mes}


{Ingresar los nmeros a Operar}
Leer Num1, Num2
{Ingresar Operador}
Leer Clave
Segn_sea Clave hacer
Caso + : resu=Num1+Num2
Caso : resu=Num1Num2
Caso * : resu=Num1*Num2
Caso / : resu=Num1/Num2
Fin Segn_sea
{Escribir El Resultado de las Operaciones}
Escribir resu
Fin
38.2 Codificacin(C#)

static void Main(string[] args)


{
float Num1, Num2, resu=0;
char clave;
Console.Write("Ingresar Numero 1: ");
Num1 = int.Parse(Console.ReadLine());
Console.Write("Ingresar Numero 2: ");
Num2 = int.Parse(Console.ReadLine());
Console.Write("Ingresar Clave: ");
clave=char.Parse(Console.ReadLine());
switch (clave)

Operador
/
*
+

Resultado
1
15
47
245

101

Lenguaje de Programacin
{

case '+':
resu = Num1
break;
case '-':
resu = Num1
break;
case '*':
resu = Num1
break;
case '/':
resu = Num1
break;

Carlos Rodrguez Torvisco Algortmica

+ Num2;
- Num2;
* Num2;
/ Num2;

}
Console.WriteLine("{0} {1} {2} = {3}",Num1,clave,Num2,resu);
Console.ReadLine();
}

39- Construya un programa tal, que dados como datos el modelo de un vehculo y su precio,
determine el valor final que debe pagar el comprador. El concesionario est haciendo
descuentos teniendo en cuenta el modelo, con base en la siguiente tabla.
MODELO
Cutlass
Cavalier
Chevy
Century

DESCUENTO
8%
5%
6%
9%

Datos
Modelo
C
V
H
E

Precio
200000
450000
150000
354000

Inicio {Determinar el precio final a pagar}


{Ingresar los Modelo del Automovil y el Precio}
Leer Modelo, Precio
Segn_sea Modelo hacer
Caso C : finpre = precio (precio * 0.08)
Caso V : finpre=precio (precio * 0.05)
Caso H : finpre=precio (precio * 0.06)
Caso E : finpre = precio (precio * 0.09)
Fin Segn_sea
{Escribir PRECIO FINAL A PAGAR}
Escribir finpre
Fin
39.2 Codificacin(C#)
static void Main(string[] args)

Descuento
8%
5%
6%
9%

Resultado
184000
427500
141000
322140

102

Lenguaje de Programacin
{

Carlos Rodrguez Torvisco Algortmica

string modelo;
float precio, finpre=0;
Console.WriteLine("Ingresar modelo de vehculo en maysculas");
Console.WriteLine("CUTLASS:[C]");
Console.WriteLine("CAVALIES:[V]");
Console.WriteLine("CHEVY:[H]");
Console.WriteLine("CENTURY:[E]");
Console.Write("Modelo:");
modelo = Console.ReadLine();
//ingresamos el precio del automovil
Console.Write("Ingrese Precio:");
precio = float.Parse(Console.ReadLine());
switch (modelo)
{
case "C": finpre = precio - (precio * 0.08f); break;
case "V": finpre=precio - (precio * 0.05f); break;
case "H": finpre=precio - (precio * 0.06f); break;
case "E": finpre = precio - (precio * 0.09f); break;
}
Console.WriteLine("El Precio Final es:"+finpre);
Console.Read();

40.El costo de las llamadas telefnicas internacionales, depende de la zona geogrfica en la


que se encuentra el pas destino, y del nmero de minutos hablados. En la siguiente tabla se
presenta el costo por minuto, por zona. A cada zona se le ha asociado una clave.
CLAVE
ZONA
PRECIO
12
Amrica del Norte
2
15
Amrica Central
2.2
18
Amrica del Sur
4.5
19
Europa
3.5
23
Asia
6
25
frica
6
29
Oceana
5
Construya un programa que le permita calcular e imprimir el costo total de una llamada.
Datos
CLAVE
12
23
18
29

Tiempo(minutos)
5
15
2
3

Inicio {Determinar el precio a pagar por llamadas }


{Ingresar la Clave y el total de minutos hablados}
Leer clave, numin
Segn_sea clave hacer
Caso 12 : cost = numin * 2
Caso 15 : cost = numin * 2.2
Caso 18 : cost = numin * 4.5

Precio
2
6
4.5
5

Resultado
Costo Total
10
90
9
15

Lenguaje de Programacin

103

Carlos Rodrguez Torvisco Algortmica

Caso 19 : cost = numin * 3.5


Caso 23 : cost = numin * 6
Caso 25 : cost = numin * 6
Caso 29 : cost = numin * 5
Fin Segn_sea
{Escribir PRECIO a Pagar por las Llamadas}
Escribir cost
Fin
40.2 Codificacin(C#)
static void Main(string[] args)
{
int clave, numin;
double cost = 0;
Console.WriteLine("Ingresar Clave de la Zona Geogrfica:\n ");
Console.WriteLine("Zona Amrica del Norte :[12]");
Console.WriteLine("Zona Amrica Central :[15]");
Console.WriteLine("Zona Amrica del Sur :[18]");
Console.WriteLine("Zona Europa :[19]");
Console.WriteLine("Zona Asia :[23]");
Console.WriteLine("Zona frica :[25]");
Console.WriteLine("Zona Oceana :[29]");
Console.Write("Clave:");
clave = int.Parse(Console.ReadLine());
Console.Write("Ingresar Duracin de la Llamada [min]: ");
numin = int.Parse(Console.ReadLine());
switch (clave)
{
case 12:
cost = numin * 2;
break;
case 15:
cost = numin * 2.2;
break;
case 18:
cost = numin * 4.5;
break;
case 19:
cost = numin * 3.5;
break;
case 23:
cost = numin * 6;
break;
case 25:
cost = numin * 6;
break;
case 29:
cost = numin * 5;
break;
default: Console.WriteLine("No Existe esa Clave"); break;
}
if (cost != 0)
Console.WriteLine("Costo Total de la Llamada: {0}", cost);
Console.Read();
}

104

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

41.Escriba un programa que permita calcular lo que hay que pagarle a un trabajador
teniendo en cuenta su sueldo y las horas extras trabajadas. Para el pago de horas extras se
tienen en cuenta adems de la categora del trabajador.

CATEGORIA
1
2
3
4

PRECIO HORA EXTRA


S/. 30
S/. 38
S/. 50
S/. 70

Datos
Sueldo Basico
250
500
850
695

Categoria
4
3
2
1

Hora Extra
2
6
4
5

Resultado
Total a Pagarle
390
800
1002
845

Inicio {Determinar el precio a pagar por horas extras a un trabajador }


{Ingresar la sueldo, categora, y las horas extras que trabajo}
Leer sue, cate, he
Segn_sea cate hacer
Caso 1 : phe = 30
Caso 2 : phe = 38
Caso 3 : phe = 50
Caso 4 phe = 70
Otros: phe =0
Fin Segn_sea
Si (he > 30)e ntonces
nsue = sue + 30 * phe;
Sino
nsue = sue + he * phe;
Finsi
Escribir nsue
Fin

41.2 Codificacin(C#)
static void Main(string[] args)
{
int cate, he;
float sue, phe, nsue;
Console.Write("Ingresar Sueldo basico del trabajador: ");
sue = float.Parse(Console.ReadLine());

Lenguaje de Programacin

105

Carlos Rodrguez Torvisco Algortmica

Console.Write("Categoria: ");
cate = int.Parse(Console.ReadLine());
Console.Write("Horas extras trabajadas: ");
he = int.Parse(Console.ReadLine());
switch (cate)
{
case 1:
phe = 30;
break;
case 2:
phe = 38;
break;
case 3:
phe = 50;
break;
case 4:
phe = 70;
break;
default:
phe = 0;
break;
}
if (he > 30)
nsue = sue + 30 * phe;
else
nsue = sue + he * phe;
Console.WriteLine("El sueldo neto es: {0}", nsue);
Console.ReadLine();
}

42.Escribir un programa que lea un numero de tres dgitos o menos y muestre su respectivo
nombre.
Datos
Numero
12
46
8
159

resultados
Doce
Cuarenta y seis
Ocho
Ciento cincuenta y nueve

static void Main(string[] args)


{
int Numero, D, U, C;
Console.Write("Ingrese Numero de 3 Digitos o menos:");
Numero = int.Parse(Console.ReadLine());
D = (Numero % 100) / 10;
U = Numero % 10;
C = Numero / 100;
if (Numero >= 0 && Numero < 20)
{
switch (Numero)
{
case 0: Console.Write("Cero"); break;
case 1: Console.Write("Uno"); break;
case 2: Console.Write("Dos"); break;
case 3: Console.Write("Tres"); break;
case 4: Console.Write("Cuatro"); break;
case 5: Console.Write("Cinco"); break;
case 6: Console.Write("Seis"); break;
case 7: Console.Write("Siete"); break;
case 8: Console.Write("Ocho"); break;

Lenguaje de Programacin
case
case
case
case
case
case
case
case
case
case
case

106

Carlos Rodrguez Torvisco Algortmica

9: Console.Write("Nueve"); break;
10: Console.Write("Diez"); break;
11: Console.Write("Once"); break;
12: Console.Write("Doce"); break;
13: Console.Write("Trece"); break;
14: Console.Write("Catorce"); break;
15: Console.Write("Quince"); break;
16: Console.Write("Dieciseis"); break;
17: Console.Write("Diecisiete"); break;
18: Console.Write("Dieciocho"); break;
19: Console.Write("Diecinueve"); break;

}
}
if (Numero >= 20 && Numero < 100)
{
switch (D)
{
case 2: if (U != 0)
Console.Write("Veinti");
else
Console.Write("Veinte"); break;
case 3: Console.Write("Treinta"); break;
case 4: Console.Write("Cuarenta"); break;
case 5: Console.Write("Cincuenta"); break;
case 6: Console.Write("Sesenta"); break;
case 7: Console.Write("Setenta"); break;
case 8: Console.Write("Ochenta"); break;
case 9: Console.Write("Noventa"); break;
}
Console.Write(" y ");
switch (U)
{
case 1: Console.Write("Uno"); break;
case 2: Console.Write("Dos"); break;
case 3: Console.Write("Tres"); break;
case 4: Console.Write("Cuatro"); break;
case 5: Console.Write("Cinco"); break;
case 6: Console.Write("Seis"); break;
case 7: Console.Write("Siete"); break;
case 8: Console.Write("Ocho"); break;
case 9: Console.Write("Nueve"); break;
}
}
if (Numero == 100)
{
Console.Write("Cien");
}
if (Numero > 100 && Numero < 1000)
{
switch (C)
{
case 1: Console.Write("Ciento"); break;
case 2: Console.Write("Doscientos"); break;
case 3: Console.Write("Trescientos"); break;
case 4: Console.Write("Cuatrocientos"); break;
case 5: Console.Write("Quinientos"); break;
case 6: Console.Write("Seiscientos"); break;
case 7: Console.Write("Setecientos"); break;
case 8: Console.Write("Ochocientos"); break;
case 9: Console.Write("Novecientos"); break;
}
switch (D)
{
case 2: Console.Write(" Veinte"); break;
case 3: Console.Write(" Treinta"); break;

107

Lenguaje de Programacin
case
case
case
case
case
case

4:
5:
6:
7:
8:
9:

Console.Write("
Console.Write("
Console.Write("
Console.Write("
Console.Write("
Console.Write("

Carlos Rodrguez Torvisco Algortmica

Cuarenta"); break;
Cincuenta"); break;
Sesenta"); break;
Setenta"); break;
Ochenta"); break;
Noventa"); break;

}
if (U != 0 && D != 0 && D != 1 && D != 2)
Console.Write(" y ");
if (D != 1)
{
switch (U)
{
case 1: Console.Write("Uno"); break;
case 2: Console.Write("Dos"); break;
case 3: Console.Write("Tres"); break;
case 4: Console.Write("Cuatro"); break;
case 5: Console.Write("Cinco"); break;
case 6: Console.Write("Seis"); break;
case 7: Console.Write("Siete"); break;
case 8: Console.Write("Ocho"); break;
case 9: Console.Write("Nueve"); break;
}
}
}
Console.Read();
}

43Escribir un programa que lea un numero y lo convierta a nmeros romanos


Datos
Numero
212
346
10
1

resultados
CCXII
CCCXLVI
X
I

Inicio
Leer N
Miles = N div 1000
Resto = N mod 1000
Cen = Resto div 100
Resto = Resto mod 100
Uni = Resto mod 10
Escribir "En romanos es:"
Segn sea (Miles)
Caso 1: Escribir "M"
Caso 2: Escribir "MM"
Caso 3: Escribir "MMM"
Fin_Segn
Segn sea (Cen)
Caso 1:Escribir "C"
Caso 2: Escribir "CC"
Caso 3: Escribir "CCC"
Caso 4: Escribir "CD"

Lenguaje de Programacin

108

Carlos Rodrguez Torvisco Algortmica

Caso 5: Escribir "D"


Caso 6: Escribir "DC"
Caso 7: Escribir "DCC"
Caso 8: Escribir "DCCC"
Caso 9: Escribir "CM"
Fin_Segn
Segn sea (Dec)
Caso 1: Escribir "X"
Caso 2: Escribir "XX"
Caso 3: Escribir "XXX"
Caso 4: Escribir "XL"
Caso 5: Escribir "L"
Caso 6: Escribir "LX"
Caso 7: Escribir "LXX"
Caso 8: Escribir "LXXX"
Caso 9: Escribir "XC"
Fin_Segn
Segn sea (Uni)
Caso 1: Escribir "I"
Caso 2: Escribir "II"
Caso 3: Escribir "III"
Caso 4: Escribir "IV"
Caso 5: Escribir "V"
Caso 6: Escribir "VI"
Caso 7: Escribir "VII"
Caso 8: Escribir "VIII"
Caso 9: Escribir "IX"
Fin_Segn
Fin
static void Main(string[] args)
{
int N;
int Miles, Resto, Cen, Dec, Uni;
Console.WriteLine("Ingresa Nmero(1-3999):");
N = int.Parse(Console.ReadLine());
Miles = N / 1000;
Resto = N % 1000;
Cen = Resto / 100;
Resto = Resto % 100;
Dec = Resto / 10;
Resto = Resto % 10;
Uni = Resto;
Console.Write("En Nmero Romanos es : ");
switch (Miles)
{
case 1: Console.Write("M"); break;
case 2: Console.Write("MM"); break;
case 3: Console.Write("MMM"); break;
}
switch (Cen)
{
case 1: Console.Write("C"); break;
case 2: Console.Write("CC"); break;
case 3: Console.Write("CCC"); break;
case 4: Console.Write("CD"); break;

Lenguaje de Programacin

109

Carlos Rodrguez Torvisco Algortmica

case 5: Console.Write("D"); break;


case 6: Console.Write("DC"); break;
case 7: Console.Write("DCC"); break;
case 8: Console.Write("DCCC"); break;
case 9: Console.Write("CM"); break;
}
switch (Dec)
{
case 1: Console.Write("X");
break;
case 2: Console.Write("XX");
break;
case 3: Console.Write("XXX");
break;
case 4: Console.Write("XL");
break;
case 5: Console.Write("L");
break;
case 6: Console.Write("LX");
break;
case 7: Console.Write("LXX");
break;
case 8: Console.Write("LXXX");
break;
case 9: Console.Write("XC");
break;
}
switch (Uni)
{
case 1: Console.Write("I"); break;
case 2: Console.Write("II"); break;
case 3: Console.Write("III"); break;
case 4: Console.Write("IV"); break;
case 5: Console.Write("V"); break;
case 6: Console.Write("VI"); break;
case 7: Console.Write("VII"); break;
case 8: Console.Write("VIII"); break;
case 9: Console.Write("IX"); break;
}
Console.Read();
}

EJERCICIOS PROPUESTOS
1.Una tienda ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un
descuento del 15% por la compra de ms de 3 docenas y 10% en caso contrario. Adems por
la compra de ms de 3 docenas se obsequia una unidad del producto por cada docena en
exceso sobre 3. Disee un algoritmo que determine el monto de la compra, el monto del
descuento, el monto a pagar y el nmero de unidades de obsequio por la compra de cierta
cantidad de docenas del producto.
2.Disee un algoritmo que califique el puntaje obtenido en el lanzamiento de tres dados en
base a la cantidad seis obtenidos, de acuerdo a lo siguiente: tres seis, excelente; dos seis,
muy bien; un seis, regular; ningn seis, psimo.

Lenguaje de Programacin

110

Carlos Rodrguez Torvisco Algortmica

3.Una compaa dedicada al alquiler de automviles cobra un monto fijo de s/.30 para los
primeros 300 km de recorrido. Para ms de 300 km y hasta 1000 km, cobra un monto
adicional de s/.0.15 por cada kilometro en exceso sobre 300. Para ms de 1000 km cobra un
monto adicional de S/.0.10 por cada kilometro en exceso sobre 100.Los precios ya incluyen
el 18% del impuesto general a las ventas, IGV. Disee un algoritmo que determine el monto
a pagar por el alquiler de un vehculo y el monto incluido del impuesto.
4.Disee un algoritmo que determine quienes son contemporneos entre Juan, Mario y
Pedro.
5.Disee un algoritmo que lea tres longitudes y determine si forman o no un triangulo. Si es
un triangulo determine de que tipo de triangulo se trata entre: equiltero (si tiene tres lados
iguales), issceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales).
Considere que para formar un tringulo se requiere que:el lado mayor sea menor que la
suma de los otros dos lados.
6.Disee un algoritmo que lea tres nmeros enteros y determine el menor valor positivo. Si
los nmeros positivos son iguales, dar como menor a cualquiera de ellos.
7.Disee un algoritmo que lea tres nmeros y los imprima de mayor a menor y de menor a
mayor.
8.Disee un algoritmo para obtener el grado de eficiencia de un operario de una fbrica de
tornillos, de acuerdo a las siguientes condiciones, que se le imponen para un periodo de
prueba:
menos de 200 tornillos defectuosos.
mas de 10000 tornillos producidos.
El grado de eficiencia se determina de la siguiente manera:
Si no cumple ninguna de las condiciones, grado 5.
si solo cumple la primera condicin, grado 6.
si solo cumple la segunda condicin, grado 7.
si cumple las dos condiciones, grado 8.
9.Escribir un algoritmo que determine si un numero es par o impar.
10.Escribir un algoritmo que indique si el numero introducido es mayor o menor que 100.
11.Se cuenta con los votos obtenidos por Juan, Pedro y Mara en una eleccin democrtica a
la presidencia de un club. Para ganar la eleccin se debe obtener como mnimo el 50% de los
votas ms 1. En caso que no haya un ganador se repite la eleccin en una segunda vuelta.
Van a la segunda vuelta los dos candidatos que obtengan la ms alta votacin. Se anula la
eleccin en caso de producirse un empate doble por el segundo lugar o un empate triple.
Disee un algoritmo que determine el resultado de la eleccin.

Lenguaje de Programacin

111

Carlos Rodrguez Torvisco Algortmica

12.Disee un algoritmo que la un numero entero de 3 cifras, y forme el mayor nmero


posible con las cifras del nmero ingresado. El nmero formado debe tener el mismo signo
que el nmero ingresado.
13.Disear un algoritmo para calcular la divisin de dos nmeros complejos.
14.Calcular el total que una persona debe pagar en una llantera, si el precio de cada llanta
es de S/.800 si se compran menos de 5 llantas y de S/.700 si se compran 5 o ms.
15.En un supermercado se hace una promocin, mediante la cual el cliente obtiene un
descuento dependiendo de un nmero que se escoge al azar. Si el nmero escogido es
menor que 74 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el
descuento es del 20% obtener cuanto dinero se le descuenta.
16.Calcular el nmero de pulsaciones que debe tener una persona por cada 10 segundos de
ejercicio aerbico; la formula que se aplica cuando el sexo femenino es:
Num.pulsaciones= (220edad)/10 y si el sexo es masculino es:
Num.pulsaciones= (210edad)/10

17.Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inversin en el banco. El decidir reinvertir los intereses siempre y
cuando estos excedan a S/.7000 y en ese caso desea saber cuanto dinero tendr finalmente
en su cuenta.
18.Escribir un algoritmo para resolver el sistema de ecuaciones siguiente:
AX+BY=C
DX+EY=f
19.Escribir un algoritmo que determine si un numero de 3 dgitos es igual a la suma de los
cubos de sus dgitos.
20.Escribir un algoritmo que transforme coordenadas rectangulares a coordenadas polares.
21.Escribir un algoritmo para resolver problemas de interpolacin lineal.
22.Escribir un algoritmo que determine el numero de das existentes entre dos fechas
dadas.
23.Escribir un algoritmo que lea una fecha(Dia,Mes y Ao) y determine la fecha
correspondiente al da anterior.
24.Dado un numero de 4 digitos determine cual de sus digitos es el mayor.
25.Escribir un programa que lea tres nmeros y que determine si corresponde a las medidas
de los lados de un triangulo rectngulo.

112

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

26.Una compaa paga a un programador S/.5.00 por hora si trabaja 40 horas o menos. Si
labora ms de 40 hroas se le paga S/.7.50 por cada hora extra. Escribir un algoritmo que
determine el pago de un programador.
27.Dados tres datos enteros positivos, que representan las longitudes de los lados de un
probable tringulo; haga un programa que determine si los datos corresponden a aun
tringulo. En caso de que si corresponden, escriba si el tringulo es equiltero, issceles o
escaleno. Calcule adems su rea.
Considere que es tringulo, si se cumple que la suma de los dos lados menores es mayor que
la del lado mayor. Tome en cuenta adems que el rea de un tringulo la calculamos como:

AREA = (S(S A)(S B)(S C)) 1/2


28.Retome el problema 40, ahora considerando que se aplican distintos precios segn la
duracin de la llamada. Para calcular el costo final
se sigue lo indicado en la siguiente
tabla.
PRECIO/MINUTO
PRECIO/MINUTO
(3 primeros)
(del 4 en adelante)
12
Amrcica del Norte
2
1.5
15
Amrcica Central
2.2
1.8
18
Amrcica del Sur
4.5
3.5
19
Europa
3.5
2.7
23
Asia
6
4.6
25
frica
6
4.6
29
Oceana
5
3.9
29.En un hospital se ha hecho un estudio sobre los pacientes registrados durante los ltimos
10 aos, con el objeto de hacer una aproximacin de los costos de internacin por paciente.
Se obtuvo un costo promedio diario segn el tipo de enfermedad que aqueja al paciente;
adems se pudo determinar que en promedio todos los pacientes con edad entre 14 y 22
aos se implica un costo adicional del 10%. La siguiente tabla expresa los costos diarios,
segn el tipo de enfermedad.
CLAVE

ZONA

TIPO DE ENFERMEDAD
1
2
3
4

COSTO/ PACIENTE/DIA
25
16
20
32

Construya un programa que calcule e imprima el costo total que representa un paciente.
30.Construya un programa tal, que dados como datos la matricula de un alumno, la carrera
en la que este inscrito, su semestre y su promedio; determine si el mismo es apto para
pertenecer a alguna de las facultades menores que tiene la universidad.

Lenguaje de Programacin

113

Carlos Rodrguez Torvisco Algortmica

Si el alumno es aceptado teniendo en cuenta las especificaciones que se listan abajo, se debe
imprimir su matricula, carrera y la palabra "aceptado".

Especificaciones para pertenecer a las facultades menores:


Economa:
Computacin:
Administracin:
Contabilidad:

Semestre >= 6 y promedio >= 8.8


Semestre > 6 y promedio > 8.5
Semestre > 5 y promedio > 8.5
Semestre > 5 y promedio > 8.5

31.Escriba un programa que permita realizar la conversin de pesos y medidas. Considere


las siguientes equivalencias:
Medidas de longitud:
1 pulgada equivale a 25.40 milmetros
1 yarda equivale a 0.91.44 metros
1 milla equivale a 1.6093 kilmetros
1 pulgada2 equivale a 6.452 centmetros2
1 pie2 equivale a 0.009290 metros2
1 yarda2 equivale a 0.8361 metros2
1 acre equivale a 0.4047 hectreas
1 milla equivale a 2.59 kilmetros2
Medidadas de volmen:
1 pie3 equivale a 0.028320 metros3
1 yarda3 equivale a 0.7646 metros3
1 pinta equivale a 0.56826 litros
1 galn equivale a 4.54609 litros
Medidas de peso:
1 onza equivale a 28.35 gramos
1 libra equivale a 0.45359 kilogramos
1 ton inglesa equivale a 1.0160 toneladas
32.Escriba un programa que permita convertir de pulgada a milmetros, de yardas a metros
y millas a kilmetros.
33.Dados tres nmeros reales A, B y C, identifique cual es el mayor. Considere, a fin de
simplificar el problema, que los nmeros son diferentes. Haga el programa correspondiente.
34. Retome el problema 37, pero ahora suponga que OPER2 puede tomar cualquier valor,
incluso 0. Construya un programa que considere este caso. Los datos y la operaciones son las
mismas del problema previamente resuelto.

Lenguaje de Programacin

114

Carlos Rodrguez Torvisco Algortmica

35.Realziar su Algoritmo del Problema 42 y Analizarlo Paso a Paso.

Estructuras Repetitivas
En todos los algoritmos realizados hasta este punto, cada instruccin se ha ejecutado solo una
vez ya sea en forma secuencial o en forma selectiva. Sin embargo, con frecuencia, Cierto tipo
de problemsa requieren de la ejecucin reiterada o repetida de un grupo de instrucciones.
Para la ejecucin repetida de un conjunto de instrucciones los lenguajes de programacin
ofrecen una variedad de sentencias o cdigos, los que se denominan estructuras repetitivas,
estructuras iterativas o simplemente bucles.
CONTADORES Y ACUMULADORES
Existen dos conceptos asociados a las estructuras repetitivas: Contadores y Acumuladores.
Contador: un contador es una variable auxiliar o de proceso, cuyo propsito es llevar la
cuenta del numero de veces que se est ejecutando un conjunto de sentencias o un
determinado proceso. Estas Variables generalmente se verifican para salir del bucle.
Acumulador: El Acumulador es tambin una variable auxiliar o de proceso, cuyo propsito es
suma (acumular) diferentes valores del mismo tipo.
Generalmente la implementacin de los procesos con un acumulador tiene el siguiente
formato:
S=S+<Variable>
En esta expresin, S es el acumulador y < Variable> es el valor que se desea agregar a S.
TIPOS DE ESTRUCTURAS REPETITIVAS
En forma indistinta se utiliza estructura repetitiva, estructura iterativa o bucle para referirse a
la repeticin de un proceso un nmero fijo o variable de veces.
En el Desarrollo de los procesos iterativos se distinguen los siguientes tipos de bucles:
a) Bucles variables:
Estructura Hace Mientras
Estructura Mientras
Toda estructura repetitiva tiene las siguientes partes:
a) Inicializacin.en la cual se asigna valores iniciales a las variables que intervienn en el
test de salida.

Lenguaje de Programacin

115

Carlos Rodrguez Torvisco Algortmica

b) Acumulacin.en la que se actualizan las variables que intervienen en el test de salida.


c) Instrucciones de procesos.parte del bucle en el que se escribe las instrucciones que
se deben repetir.
d) Test de Salida.en la que se controla si el bucle contina o se sale del bucle.
Bucles Variables
Son estructura repetitivas en las que no se conoce el nmero de veces que se ejecutaran las
instrucciones que se encuentran dentro del bucle, por ejemplo, si se trata de contar el nmero
de dgitos de un nmero entero positivo sabemos cuantos dgitos tendr el numero;
consiguientemente n se sabe cuantas veces realizara el proceso de contar, Otro ejemplo si el
nmero de clientes que debe atender un cajero de banco, quin no sabe a priori cuantas
personas existen en cola para ser atendidas
Bucles Fijos
Son estructuras repetitivas en que se conoce al priori el nmero de veces que se ejecutaran las
instrucciones que se encuentran dentro del bucle. Ejemplo si se trata de ingresar 5 notas a
priori se sabe que se debe leer repetidamente 5 notas, consiguientemente el proceso de leer
se repetir 5 veces.
Pseudocdigo
Hacermientras

mientrashacer

hacer

mientras (condicin)

Instrucciones de bloque
Instrucciones de actualizacin
Mientras (condicin);

instruccin de proceso
actualizacin de las variables del test de salida
finmientras

Parahacer
Para (inicializacin de la variable) hasta (condicin) con incremento X hacer
Instrucciones de bloque
FinPara
C#
while
do_while
while(condicin)
do
{
{
Instrucciones de bloque
instruccin de proceso
Instrucciones de actualizacin
actualizacin de las variables
}while(condicin);
}

116

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

For
For (inicializacin de la variable; condicion; incremento)
{
}
EJERCICIOS RESUELTOS
1.escribir un algoritmo para que muestre la tabla de multiplicar del 8.
8 * 1= 8
8 * 2=16
8 * 3= 24
8 * 4= 32
8 * 5= 40
8 * 6= 48
8 *7= 56
8 * 8= 64
8 * 9= 72
8 * 10= 80
8 * 11= 88
8 * 11= 96
1.1.Algoritmo
Inicio{hacer la tabla de multiplicar del 8}
{Inicializamos nuestro contador en 0}
c=0
hacer
k=k+1
Escribir k*8
mientras(k<12)
Fin
2.1. Codificacin (C#)
static void Main(string[] args)
{
int c;
c = 0;
do
{
c++;
Console.WriteLine("8 * {0} = {1}", c, c * 8);
} while (c < 12);
Console.Read();
}

Lenguaje de Programacin

117

Carlos Rodrguez Torvisco Algortmica

2.Escribir un algoritmo que imprima el nmero,el cuadrado y el cubo de los n primeros numeros
enteros positivos.
Numero
1
2
3

Cuadrado
1
4
9

Cubo
1
8
27

1.1.Algoritmo
Inicio{escribir la tabla de cuadrados y cubos de los N primeros enteros}
{Leer nmero de elementos}
Leer N
{Escribir nmeros, cuadrados y cubos}
k=0
hacer
k=k+1
cuadrado=numero*numero
cubo=cuadrado*numero
escribir cuadrado, cubo
mientras(k<12)
Fin
2.2 Codificacin C#
static void Main(string[] args)
{
int c,numero,cuadrado,cubo;
//inicialiazamos el contandor
c = 0;
//ingresamos el numero
Console.Write("Ingresa Nmero:");
numero = int.Parse(Console.ReadLine());
do
{
c++;
cuadrado = c*c;
cubo = cuadrado * c;
Console.WriteLine("Numero
{0} ,c);
Console.WriteLine("el cuadrado es :{0}", cuadrado);
Console.WriteLine("el cubo es :{0}", cubo);
} while (c < numero);
Console.Read();
}

3.se tiene la relacin de n alumnos. Para cada alumno se tiene 3 notas. Escribir un algoritmo
que calcule el promedio de cada alumno.
Alumno
1
2
3

Nota 1
12
11
08

Nota 2
14
11
06

Nota 3
13
12
10

Promedio
13.00
11.00
08.00

Lenguaje de Programacin

118

Carlos Rodrguez Torvisco Algortmica

3.1 Algoritmo
Inicio{calcular el promedio de 3 notas para N alumnos}
{Leer nmero de alumnos}
Leer N
NroAlumno=0
hacer
NroAlumno=NroAlumno+1
Leer nota1
Leer nota2
Leer nota3
{calcular promedio de notas del alumno}
Promedio=(nota1+nota2+nota3)/3
escribir promedio
mientras(NroAlumno<N)
Fin
3.2 Codificacin C#
static void Main(string[] args)
{
int NroAlumno, N,promedio;
int nota1, nota2, nota3;
//inicialiazamos el contandor
NroAlumno = 0;
//ingresamos el numero
Console.Write("Ingresa Cantidad de Alumno:");
N = int.Parse(Console.ReadLine());
do
{
//procesar notas dels siguiente alumno
NroAlumno++;
//leer notas del alumno

Console.WriteLine("Calcular el Promedio para el Alumno {0}",NroAlumno);

Console.WriteLine("Ingrese Nota 1:");


nota1 = int.Parse(Console.ReadLine());
Console.WriteLine("Ingrese Nota 2:");
nota2 = int.Parse(Console.ReadLine());
Console.WriteLine("Ingrese Nota 3:");
nota3 = int.Parse(Console.ReadLine());
//calcular promedio de notas del alumno
promedio=(nota1+nota2+nota3)/3;
//mostrar el promedio
Console.WriteLine("El Promedio es :{0}",promedio);
} while (NroAlumno < N);
Console.Read();
}

4.Escribir un algoritmo que calcule la suma de los n primeros nmeros enteros positivos.

119

Lenguaje de Programacin
Datos N
1
2
3
4

Carlos Rodrguez Torvisco Algortmica

Resultados suma
1
3
6
10

4.1 Algoritmo
Inicio{Calcular la suma de los N primeros nmeros enteros positivos}
{Leer nmero de enteros a sumar}
Leer N
{calcular suma de los N primeros nmeros enteros}
Suma=0
k=0
hacer
k=k+1 {Procesar el siguiente nmero}
suma=suma+k {acumular el numero en suma}
mientras(NroAlumno<N)
Fin
static void Main(string[] args)
{
int N,suma,k;
//ingresamos los numeros enteros a suma
Console.WriteLine("Ingrese N:");
N = int.Parse(Console.ReadLine());
//calcular suma de los N primeros numeros enteros
suma = 0;
k = 0;
do
{
k++;//procesar el siguiente nmero
suma+= k; //acumular el nmero en suma
} while (k < N);
//mostrar la suma
Console.WriteLine(suma);
Console.Read();
}

5.Escribir un algoritmo que calcule la suma de la siguiente expresin:

1/100 + 2/99 + 3/98 + 4/97 + + 99/2 + 100/1


5.1 Algoritmo
Inicio{Calcular la suma de la expresin}
{Leer nmero de enteros a sumar}
Suma=0
Numerador=0 {primer valor al actualizar =1 }
Denominador=100 {primer valor al actualizar = 100}

Lenguaje de Programacin

120

Carlos Rodrguez Torvisco Algortmica

{calcular suma de los N primeros nmeros enteros}


hacer
{actualizar numerador y denominador}
Numerador=numerador+1
Denominador=denominador1
{acumular valores en suma }
Suma=suma+Numerador/Denominador
mientras(numerador=100)
Fin
5.2 Codificacin (C#)
static void Main(string[] args)
{
int suma, numerador, denominador;
//calcular la suma de la expresion
suma = 0;
numerador = 0; //primer valor al actualizar =1
denominador = 101; //primer valor al actualizar = 100
do
{
//actualizar numerador y denominador
numerador = numerador++;//el numerordor crecer
denominador = denominador--;//el denominador decrece
//acumular valores en la suma
suma = suma + numerador / denominador;
} while (numerador == 100);
Console.WriteLine("La Suma de la Expresin es :{0}",suma);
Console.Read();
}

6.Escribir un algoritmo que evale la siguiente expresin:


12 22 + 32+9921002
Se suma los elementos de la serie
Suma = 5050
6.1 Algoritmo
Inicio{Evaluar 12 22 + 32+9921002}
{Evaluar Expresin}
Suma=0
Numero=0
hacer
{El numero va a ser impar. sumar}
Numero=numero+1
Suma=suma+numero*numero
{El nmero va a ser par. Restar}
Numero=numero+1
Suma=sumanumero*numero
mientras(numerador=100)
Escribir suma

Lenguaje de Programacin

121

Carlos Rodrguez Torvisco Algortmica

Fin
6.2 Codificacin C#
static void Main(string[] args)
{
int suma, numero;
suma = 0;
numero = 0;
do
{
//el numero va a ser impar.Sumar
numero = numero + 1;
suma = suma + numero * numero;
//el numero va a ser par. Restar
numero = numero + 1;
suma = suma - numero * numero;
} while (numero != 100);
Console.WriteLine("La suma es:"+suma);
Console.Read();
}

7.Escribir un algoritmo para calcular el promedio aritmtico de N nmeros.


Datos
Nmero
10
06
12
04
08

Var. De Proceso
Suma
40

7.1 Algoritmo
Inicio{calcular el promedio de N nmeros}
{leer numero de elementos, validando}
hacer
Leer N
mientras(N<2)
{Leer nmeros y calcular promedio}
k=0
sumaElementos=0
hacer
k=k+1
leer numero
sumaElemtos=sumaElementos+numero
mientras(k<N)
promedio=SumaElemetnos/N
{escribir promedio}
Escribir promedio

Resultado
Promedio
8

Lenguaje de Programacin

122

Carlos Rodrguez Torvisco Algortmica

Fin
7.2 Codificacin C#
static void Main(string[] args)
{
int sumaElementos=0, N, k=0, numero;
int promedio;
//leer numero de elemtos, validando
do
{
Console.WriteLine("Ingrese N:");
N = int.Parse(Console.ReadLine());
} while (N < 2);
//leer numeros y calcular el promedio
do
{
k++;
Console.WriteLine("Ingresa Numero {0}",k);
numero = int.Parse(Console.ReadLine());
sumaElementos += numero;
} while (k < N);
//calcular el promedio
promedio = sumaElementos / N;
Console.WriteLine("el Promedio es:"+promedio);
Console.Read();
}

8.Escribir un algoritmo que permita calcular el factorial de un nmero entero positivo.

Datos
5
6
3

Resultado
120
170
6

8.1 Algoritmo
Inicio{calcular factorial de un numero entero positivo }
{leer numero entero positivo, validando}
hacer
Leer N
mientras(N<2)
{Calcular el Factorial}
k=0
factorial=1
mientras(k<N)
k=k+1
factorial=factorial*k
finmientras
{escribir factorial}
Escribir factorial

123

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Fin
8.2 Codificacin C#
static void Main(string[] args)
{
int N, factorial,k;
//ingresar numero entero positivo validado
do
{
Console.WriteLine("Ingresa Nmero:");
N = int.Parse(Console.ReadLine());
} while (N < 0);
//calcular factorial
factorial = 1;
k = 0;
while (k < N)
{
k++;
factorial *= k;
}
//mostrar factorial
Console.WriteLine("El Factorial es :"+factorial);
Console.Read();
}

9.Calcular el maximo comn divisor de 2 numeros enteros positivos.

Datos
A
45
18

B
100
27

Resultado
MCD
5
9

9.1 Algoritmo
Inicio{calcular mximo comn divisor de 2 nmeros }
{Leer dos nmeros enteros positivos y validarlos}
hacer
Leer A
mientras(A<0)
hacer
Leer B
mientras(B<0)
{Calcular mximo comn divisor de 2 nmeros}
Resto= A mod B
mientras(resto <> 0) hacer
A=B
B=resto
Resto=A mod B
finmientras
MCD=B

Lenguaje de Programacin

124

Carlos Rodrguez Torvisco Algortmica

Escribir MCD
Fin
9.2 Codificacin C#
static void Main(string[] args)
{
int A, B, MCD,resto;
do
{
Console.Write("Ingresa Numero 1:");
A = int.Parse(Console.ReadLine());
} while (A < 0);
do
{
Console.Write("Ingresa Numero 2:");
B = int.Parse(Console.ReadLine());
} while (B < 0);
//calcular maximo comun divisor de 2 nmeros
resto = A % B;
while (resto != 0)
{
A = B;
B = resto;
resto = A % B;
}
MCD = B;
//escribir el maximo comn divisor
Console.WriteLine("El Maximo Comn Divisor es:"+MCD);
Console.Read();
}

10.Escribir un algoritmo que permita determinar el nmero de dgitos de un nmero entero


positivo.
Dato
Numero
5
345
2865
0

Resultado
NroDigitos
1
3
4
1

10.1 Algoritmo
Inicio{Determina el numero de digitos de un nmero}
{Leer numero y validarlo}
hacer
Leer Numero
mientras(Numero<0)
NroDigitos=0
{inicializacin}
si(numero==0) entonces {test de salida}
Escribir La cantidad de dgitos es 1
sino
mientras(numero<> 0) hacer
numero=numero div 10 {Actualizacin}
NroDigitos=NroDigitos+1 {Instrucciones}

125

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

finmientras
finsi
Escribir NroDigitos
Fin
static void Main(string[] args)
{
int numero, NroDigitos = 0;
do
{
Console.Clear();//limpia la pantalla
Console.WriteLine("Ingresa Nmero:");
numero = int.Parse(Console.ReadLine());
} while (numero < 0);
if (numero == 0)
{
Console.WriteLine("La Cantidad de Digitos es :1");
}
else
{
while (numero != 0)
{
numero /= 10;
NroDigitos++;
}
Console.WriteLine("La Cantidad de Digitos es :"+NroDigitos);
}
Console.Read();
}

11.Escribir un algoritmo que permita calcular el Cociente y el Resto entero de la divisin de


2 nmeros enteros mediante restas sucesivas.
Datos
Dividiendo
20
25

Resultado
Divisor
4
8

Cociente
5
3

10.1 Algoritmo
Inicio{Calcular el cociente y el resto de la divisin entera de 2 Nmeros}
{Leer dividendo y el divisor}
Leer Dividiendo, Divisor
{calcular el cociente y el resto}
Resto=Dividendo
mientras(Resto>=Divisor)
hacer
Resto=restodivisor
cociente=cociente+1
finmientras
{escribir el cociente y el resto}
Escribir cociente, Resto
Fin
11.2 Codificacin C#

Resto
0
1

126

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

static void Main(string[] args)


{
int resto, dividendo, divisor,cociente=0;
Console.Write("Ingresa Dividendo:");
dividendo = int.Parse(Console.ReadLine());
Console.Write("Ingresa Divisor:");
divisor = int.Parse(Console.ReadLine());
//calcular el cociente y el resto
resto = dividendo;
while (resto >= divisor)
{
resto = resto - divisor;
cociente++;
}
//mostar el cociente y el resto
Console.WriteLine("el cociente es :{0} y el resto es

{1}",cociente,resto);

Console.Read();
}

12.Escribir un algoritmo que permita calcular el producto de 2 nmeros enteros positivos


utilizando el algoritmo ruso de la multiplicacion.
Datos
Numero 1
25
24

Numero 2
24
25

12.1 Algoritmo
Inicio{calcular el producto de 2 Nmeros mediante el algoritmo ruso}
{Leer los factores}
Leer Factor1, Factor2
{calcular el producto de los 2 factores}
Producto=0
mientras(Factor2 >0)hacer
si (Factor2 mod 2 =1) entonces {acumular factor 1}
producto=producto+factor1
finsi
factor1=factor1*2
factor2=factor2 div 2
finmientras
{escribir el cociente y el resto}
Escribir producto
Fin
12.2 Codificacin C#
static void Main(string[] args)
{
int factor1, factor2,producto;
//leer los factores

Resultado
Producto
600
600

Lenguaje de Programacin

127

Carlos Rodrguez Torvisco Algortmica

Console.WriteLine("Ingresa Factor 1:");


factor1 = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa Factor 2:");
factor2 = int.Parse(Console.ReadLine());
//calcular el producto de los 2 factores
producto = 0;
while (factor2 > 0)
{
if (factor2 % 2 == 1)
producto = producto + factor1;
factor1 = factor1 * 2;
factor2 = factor2 / 2;
}
//mostrar el producto
Console.WriteLine("El Producto es :{0}",producto);
Console.Read();
}

13.Programa que calcula la suma de los 200 primeros numeros pares y los 200 primeros
numeros impares simultaneamente.
Resultado
La suma de nuemros impares es 10000
La suma de numeros pars es 10100
13.1 Algoritmo
Inicio{calcular de la suma de los 200 pares e impares}
{inicializar contador en cero}
j=0
mientras(j<200)hacer
suma_imp=suma_imp+(j=j + 1)
suma_par=suma_par+(j=j + 1)
finmientras
{escribir el la suma de pares e impares}
Escribir suma_imp,suma_par
Fin

13.2 Codificacin C#
static void Main(string[] args)
{
int j, suma_par = 0, suma_imp = 0;
j = 0;
while (j < 200)
{
suma_imp = suma_imp + ++j;
suma_par = suma_par + ++j;
}
Console.WriteLine("la suma de nmero impares es : {0}", suma_imp);
Console.WriteLine("la suma de nmero pares
es : {0}", suma_par);
Console.ReadKey();
}

Lenguaje de Programacin

128

14.Algoritmo pa que muestre la siguiente figura:


109876543210
9876543210
876543210
76543210
6543210
543210
43210
3210
210
10
14.1 Algoritmo
Inicio{calcular cono de numero}
{inicializar a en diez}
a=10
mientras(a<>0)hacer
{b tomara el valor de a}
b=a
mientras(b>=0)hacer
escribir b
b=b1
finmientras
Escribir \n **cambio de lnea
{a decrementa}
a=a1
finmientras
Fin
14.2 Codificacin C#
static void Main(string[] args)
{
int a, b;
//a tomara el valor de 10
a = 10;
while (a != 0)
{
//b tomara ahora el valor de a
b = a;
while (b >= 0)
{
Console.Write(b);
b--;
}
Console.Write("\n");
a--;

Carlos Rodrguez Torvisco Algortmica

Lenguaje de Programacin

129

Carlos Rodrguez Torvisco Algortmica

}
Console.Read();

15.Programa que escribe la suma una seria de nemros recogidos del teclado.La entrada de
datos finaliza al evaluar la respuesta dada a un jmensaje que diga Continuar (S/N)?
mostrado una vez finalizadas las operaciones del bucle.
Entrada de datos
23
Continuar (S/N) S
1
Continuar (S/N) S
4
Continuar (S/N) S
67
Continuar (S/N) N
Salida de Resultados
La suma es : 95
15. Codificacin C#
static void Main(string[] args)
{
int suma=0, num;
string remp;
do
{
Console.Write("Ingresa Numero: ");
num = int.Parse(Console.ReadLine());
suma += num;
Console.Write("Continuar (S/N)?");
Console.Write("\n");
remp = Console.ReadLine();
} while (remp == "S" || remp == "s");
Console.Write("la suma es:"+suma);
Console.ReadLine();
}

16.Hacer un programa para calcular el valor maximo y cuantas veces se aparece dicho valor
repetido de una serie de N numeros .
Introduce un nmero:1
Introduce un nmero:4
Introduce un nmero:7
Introduce un nmero:99
Introduce un nmero:40
Introduce un nmero:345
Introduce un nmero:23

Lenguaje de Programacin

130

Carlos Rodrguez Torvisco Algortmica

Introduce un nmero:345
Introduce un nmero:5
El Valor Maximo es 345 con 2 repeticiones
16.1 Algoritmo
Inicio{Determina el valor mximo de N nmeros y cuantas veces se repite}
{Leer N y validarlo}
hacer
Leer N
mientras(Numero<2)
Leer mximo
Cantidad = 1
C=1
Hacer
C=C+1
Leer numero
Si (numero>mximo) entonces
mximo=numero
Cantidad=1
Sino
Si(numero=mximo) entonces
Cantidad=Cantidad+1
Finsi
Mientas(C<N)
Escribir mximo, Cantidad
Fin
16. Codification C#
static void Main(string[] args)
{
int numero, maximo, cantidad, c = 1,N;
do
{
//ingresamos cantidad de datos validados
Console.Write("Ingrese Cantidad de Datos:");
N = int.Parse(Console.ReadLine());
} while (N < 2);
//ingresamos el primer dato y supongamos que sea el valor maximo
Console.WriteLine("Ingrese Numero 1:");
maximo = int.Parse(Console.ReadLine());
cantidad = 1;
do
{
c++;//actualizamos nuestro contador
//ingresamos los numeros restantes
Console.WriteLine("Ingrese Numero {0}",c);
numero = int.Parse(Console.ReadLine());
if (numero > maximo)
{
maximo = numero;
cantidad = 1;

Lenguaje de Programacin

131

Carlos Rodrguez Torvisco Algortmica

}
else if (numero == maximo)
cantidad++;
} while (c < N);
Console.WriteLine("El Valor Maximo es {0} con {1} repeticiones",maximo,cantidad);

Console.Read();

17.Programa que lee cinco valores nmericos enteros y calcula su producto mostrando el
resultado en el dispositivo estandar de salidda(pantalla).
ENTRADA DE DATOS
12 3 6 8 9
SALIDA DE RESULTADOS
Prodcuto = 15552
17.1 Algoritmo
Inicio{Determina el producto de 5 numeros}
p=1
para(c=1) hasta (c<=5) incremento en 1 hacer
Leer n
p=p*n
FinPara
Escribir p
Fin
17. Codification C#
static void Main(string[] args)
{
int p, c, n;
p = 1;
for (c = 1; c <= 5; c++)
{
Console.Write("ingrese los nmeros : ");
n = int.Parse(Console.ReadLine());
p = p * n;
}
Console.Write("producto= {0}", p);
Console.ReadKey();
}

18.Programa que halla la suma de los 10 primeros numeros pares mostrando el resultado en
pantalla. El 0 puede ser considerado como par o impar indistintamente.
Salida de Resultados
El resultado de la suma es 110

Lenguaje de Programacin

132

Carlos Rodrguez Torvisco Algortmica

18.1 Algoritmo
Inicio{Determina la suma de los 10 primeros pares}
Suma=0
para(num=0) hasta (num<=20) incremento en 2 hacer
suma=suma+num
FinPara
Escribir suma
Fin
18. Codification C#
static void Main(string[] args)
{
int num, suma = 0;
for (num = 0; num <= 20; num += 2)
{
suma = suma + num;
}
Console.WriteLine("el resultado de la suma es : {0}", suma);
Console.ReadKey();
}

19.Programa que halla los 15 primeros multiplos de 3 motrandolos en el dispositivo de


estandar de salida(pantalla).
Salida de Resultados
El Numero 3 es multiplo de 3.
El Numero 6 es multiplo de 3.
El Numero 9 es multiplo de 3.
El Numero 12 es multiplo de 3.
El Numero 15 es multiplo de 3.
El Numero 18 es multiplo de 3.
El Numero 21 es multiplo de 3.
El Numero 24 es multiplo de 3.
El Numero 27 es multiplo de 3.
El Numero 30 es multiplo de 3.
El Numero 33 es multiplo de 3.
El Numero 36es multiplo de 3.
El Numero 39 es multiplo de 3.
El Numero 42 es multiplo de 3.
El Numero 45 es multiplo de 3.
19.1 Algoritmo
Inicio{mostrar los 15 multiplos de 3}
para(i=1) hasta (i<=15) incremento en 1 hacer
m=i*3

133

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

escribir m
FinPara
Fin
19. Codification C#
static void Main(string[] args)
{
int num, suma = 0;
for (num = 0; num <= 20; num += 2)
{
suma = suma + num;
}
Console.WriteLine("el resultado de la suma es : {0}", suma);
Console.ReadKey();
}

20.El siguiente programa muestra en pantalla las coordenadas de una tabla cuyas
dimensiones son 5x5 (filas x columnas)
Salida de Resultados
0,0
1,0
2,0
3,0
4,0

0,1
1,1
2,1
3,1
4,1

0,2
1,2
2,2
3,2
4,2

0,3
1,3
2,3
3,3
4,3

0,4
1,4
2,4
3,4
4,4

20.1 Algoritmo
Inicio{mostrar una tabla de 5 x 5}
para(f=0) hasta (f<5) incremento en 1 hacer
para(c=0) hasta (c<5) incremento en 1 hacer
Escribir f , , c
FinPara
Escribir \n **carcter de salto de linea
FinPara
Fin
20. Codification C#
static void Main(string[] args)
{
int f, c;
for (f = 0; f < 5; f++)
{
for (c = 0; c < 5; c++)
Console.Write(" {0},{1} ", f, c);
Console.Write("\n");
}
Console.ReadKey();
}

Lenguaje de Programacin

134

Carlos Rodrguez Torvisco Algortmica

21.Programa que calcula la suma de los 5 primeros nmeros pares y el producto de los 5
primeros nmeros impares simultneamente.
21.1 Algoritmo
Inicio{Determina la suma y el producto de los 5 primeros nmeros pares }
sp=0,pi=1,c=0,sw=0
Hacer
c=c+1
Si (sw=0) entonces
pi=pi*c {producto de los pares}
Sino
{suma de los pares}
sp=sp+c
sw=0
Finsi
Mientas(c<10)
Escribir pi,sp
Fin
21.2. Codification C#
static void Main(string[] args)
{
int sp, pi, c, sw;
sp = 0;
pi = 1;
c = 0;
sw = 0;
do
{
c++;
if (sw==0)
{
pi *= c;//calculo del producto de los impares
sw = 1;
}
else
{
sp += c;//calculo de la suma de los pares
sw = 0;
}
} while (c < 10);
//mostramos la suma y el producto por pantalla
Console.WriteLine("La suma es :{0}, Producto es :{1}\n",sp,pi);
Console.ReadLine();
}

22.Programa que calcula la potencia de un nmero dado el valor de su base y su exponente.

135

Lenguaje de Programacin

Base
5
7
2

exponente
0
3
3

Carlos Rodrguez Torvisco Algortmica

potencia
1
343
8

22.1 Algoritmo
Inicio {calcular la potencia dada la base y el exponente}
pot=1,c=1
Leer bas, exp
mientras (c<= exp) hacer
pot=pot * bas
c=c+1
finmientras
escribir pot
Fin
22.2 Codificacin en C#
static void Main(string[] args)
{
int pot, c, bae, exp;
pot = 1;
c = 1;
//ingresamos base
Console.Write("Ingresa Base:");
bae = int.Parse(Console.ReadLine());
//ingresamos exponente
Console.Write("Ingresa Exponente:");
exp = int.Parse(Console.ReadLine());
while (c <= exp)
{
pot *= bae;
c++;
}
//mostramos la potencia
Console.Write("La potencia es :{0}",pot);
Console.ReadLine();
}

23.Escribir un programa que permita convertir de base 10 a:


Base 2, Base 8, Base 16.
Numero
31
12
15
451

Base 2
Base 8
11111
37
1100
14
1111
17
111000011
703

23. Codificacin C#

Base 16
1F
C
F
1C3

Lenguaje de Programacin

136

Carlos Rodrguez Torvisco Algortmica

static void Main(string[] args)


{
int numero, numero2,numero3;
string cadena = string.Empty;
string cadena2 = string.Empty;
string Cadena = string.Empty;
int digito;
Console.WriteLine("Ingrese Numero:");
numero = int.Parse(Console.ReadLine());
numero2 = numero;
numero3 = numero;
//ahora en base
8
Console.Write("\nBASE 8:");
while (numero > 0)
{
cadena = cadena + Convert.ToString(numero % 8);
numero = numero / 8;
}
cadena.ToCharArray();
for (int i = cadena.Length - 1; i >= 0; i--)
{
Console.Write(cadena[i]);
}
//ahora en base 2
Console.WriteLine();
Console.Write("BASE 2:");
while (numero2 > 0)
{
cadena2 = cadena2 + Convert.ToString(numero2 % 2);
numero2 = numero2 / 2;
}
cadena2.ToCharArray();
for (int i = cadena2.Length - 1; i >= 0; i--)
{
Console.Write(cadena2[i]);
}
//ahora en base 16
Console.WriteLine();
Console.Write("BASE 16:");
while (numero3 > 0)
{
digito = numero3 % 16;
if (digito >= 10)
{
switch (digito)
{
case 10: Cadena
break;
case 11: Cadena
break;
case 12: Cadena
break;
case 13: Cadena
break;
case 14: Cadena
break;
case 15: Cadena
break;

= Cadena + Convert.ToString("A");
= Cadena + Convert.ToString("B");
= Cadena + Convert.ToString("C");
= Cadena + Convert.ToString("D");
= Cadena + Convert.ToString("E");
= Cadena + Convert.ToString("F");

Lenguaje de Programacin

137

Carlos Rodrguez Torvisco Algortmica

}
}
else
{
Cadena = Cadena + Convert.ToString(numero3 % 16);
}
numero3 = numero3 / 16;
}
Cadena.ToCharArray();
for (int i = Cadena.Length - 1; i >= 0; i--)
{
Console.Write(Cadena[i]);
}
Console.Read();
}

24.un numero primo es aquel que es divisible solo por la unidad y por si mismo. Escribir un
programa que determine los factores primos de cualquier nmero entero.
24.1 Algoritmo
Inicio {calcular si un nmero es o no primo}
Bandera=0
Leer numero
para(i=2) hasta (i<numero) incremento en 1 hacer
Si((numero mod )i =0) entonces
Bandera=1
i=numero1
Finsi
finpara
Si(bandera=1) entonces
Escribir El Numero no es Primo
Sino
Escribir El Numero es Primo
Finsi
Fin
24.2. Codificacin C#
static void Main(string[] args)
{

int bandera = 0;
int numero;
Console.Write("Numero:");
numero = int.Parse(Console.ReadLine());
for (int i = 2; i < numero; i = i + 1)
{
if (numero % i == 0)
{
bandera = 1;
i = numero - 1;
}
}
if (bandera == 1)
Console.Write("no primo");
else
Console.Write("primo");

Console.Read();

Lenguaje de Programacin

138

Carlos Rodrguez Torvisco Algortmica

25Escribir un programa que calcule la suma de los numeros enteros comprendidos entre N y
M.

25.1 Algoritmo
Inicio {calcularla suma de N yM}
Suma=0
Leer N ,M
Mientras (N<=M) hacer
Escribir N
Suma =Suma+N
N=N+1
Finmientras
Escribir suma
Fin
25.2. Codificacin C#
static void Main(string[] args)
{
int N, M, suma = 0;
Console.Write("Ingresa N:");
N = int.Parse(Console.ReadLine());
Console.Write("Ingresa M:");
M = int.Parse(Console.ReadLine());
while (N <= M)
{
Console.WriteLine(N);
suma = suma + N;
N = N + 1;
}
Console.Write("La Suma es : {0}", suma);
Console.Read();
}

26. Una tcnica para calcular la depreciacin de una maquinaria es el mtodo de los dgitos
de los aos. Por ejemplo, supongamos que una maquinaria tiene una vida til esperada de
cinco aos. La suma de los dgitos de los aos ser: 1+2+3+4+5, o sea, 15. Durante el primer
ao, el valor del activo se depreciar en 5/15, durante el segundo ao se depreciar en 4/15,
y as sucesivamente hasta que, en el transcurso que lea el quinto ao, se depreciar el 1/15
restante. Escribir un programa que lea el Valor de una maquinaria y su vida til esperada y
luego imprima un plan de depreciacin.
lugar a un cargo decreciente por depreciacin basado en una fraccin decreciente del costo depreciable (el costo
original menos el valor de desecho). Con cada fraccin se usa la suma de los aos como denominador
(5+4+3+2+1=15), mientras que el nmero de aos de vida estimada que resta al principiar el ao viene a ser el
numerador. Con este mtodo, el numerador disminuye ao con ao aunque el denominador permanece constante
(5/15,4/15,3/15,2/15 y 1/15) al terminar la vida til del activo, el saldo debe ser igual al valor de desecho. Ejemplo:

139

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Ao

Base de la
depreciacin

Vida restante en
aos

Fraccin de la
depreciacin

Gasto por
depreciacin

Valor en libros al
finalizar el ao

450000

5/15

150000

350000

450000

4/15

12000

230000

450000

2/15

60000

80000

450000

50000

1/15

30000

15

15/15

450000

26.1 Algoritmo
Inicio {programa que demuestre plan de depreciacin}
Leer valor,vidaultil
SumaDigitos=0
para(i=1) hasta (i<=vidautil) incremento en 1 hacer
SumaDigitos=SumaDigitos+1
Finpara
i=vidautil
Mientras (i >=1) hacer
Depreciacion=valor*i/SumaDigitos
Escribir i,Depreciacion
i=i1
valor=i/SumaDigitos*valor
Finmientras
Fin
26.2. Codificacin C#

static void Main(string[] args)


{
double vidautil;
int c = 1;
int suma = 0;
double fraccion_depreciacion;
double valormaquinaria, valorenlibrosalfinalizar, gaspordrepciacion;
Console.Write("Ingrese Vida til:");
vidautil = int.Parse(Console.ReadLine());
Console.Write("Ingrese Valor de la Maquinaria:");
valormaquinaria = double.Parse(Console.ReadLine());
while (c <= vidautil)
{
suma = suma + c;
c++;
}
while (vidautil != 0)
{
fraccion_depreciacion = vidautil / suma;
gaspordrepciacion = (fraccion_depreciacion * valormaquinaria);
valorenlibrosalfinalizar = valormaquinaria - gaspordrepciacion;
Console.WriteLine("{0}
{1}
{2}/{3}
{4:F0} ",
valormaquinaria, vidautil, vidautil, suma, gaspordrepciacion, valorenlibrosalfinalizar);
vidautil = vidautil - 1;
}
Console.Read();
}

Lenguaje de Programacin

140

Carlos Rodrguez Torvisco Algortmica

27.Escribir un programa que muestre los numeros del 1 al 100


27.1 Algoritmo
Inicio {programa que nos muestre los nmeros del 1 al 100}
N=1,M=10
Mientras (N<=M) hacer
Escribir N
N=N+1
Finmientras
Fin
27.2. Codificacin C#
static void Main(string[] args)
{
int N=1, M=10;
while (N <= M)
{
Console.WriteLine(N);
N = N + 1;
}
Console.Read();
}

28.Escribir un programa que muestre los numeros del 100 al 1


100 99 98 97 96 95 94 93 10 9 8 7 6 5 4 3 2 1
28.1 Algoritmo
Inicio {programa que nos muestre los nmeros del 100 al 1}
N=100
Mientras (N<>0) hacer
Escribir N
N=N1
Finmientras
Fin
28.2. Codificacin C#
static void Main(string[] args)
{
int N=100;
while (N !=0)
{
Console.WriteLine(N);
N = N -1;
}
Console.Read();
}

Lenguaje de Programacin

141

Carlos Rodrguez Torvisco Algortmica

29.Escribir un programa que determine todo los conjuntos de tres nmeros enteros
menores de 25, que den el mismo resultado cuando se multipliquen o se sumen. Es decir,
Nro1 * Nro2 * Nro3 = Nro1 + Nro2 + Nro3
Nota: incluye el 0
Ejemplo : 1 * 2 *3 = 1 + 2 +3 > 1*2*3 = 6 y 1 +2 +3 =6 entonces 6=6 si entonces el conjunto
de salida sera : 123
29.1 Algoritmo
Inicio {determinar 3 numeros enteros}
para(i=0) hasta (i<=25) incremento en 1 hacer
para(j=0) hasta (j<=25) incremento en 1 hacer
para(k=0) hasta (k<=25) incremento en 1 hacer
Si ( i * j * k= i + j + k) entonces
Escribir i,j,k
Finsi
Finpara
Finpara
Finpara
Fin
29.2. Codificacin C#
static void Main(string[] args)
{
for (int i = 0; i < 25; i++)
for (int j = 0; j < 25; j++)
for (int z = 0; z < 25; z++)
if (i * j * z == i + j + z)
Console.WriteLine("{0}-{1}-{2}", i, j, z);
Console.Read();
}

30.Un numero entero es perfecto si resulta ser la suma de sus divisors propios. Por ejemplo
6=1 + 2 + 3
28=1 + 2 + 4 + 7+ 14
29.1 Algoritmo
Inicio {determinar si un numero es perfecto o no}
s=0,c=1
{ingresamos el numero}
Leer num
{Descomprimir en sus divisores propios}
Mientras ( c < num) hacer
r = num mod c
Si (r = 0)entonces
s=s+c
Finsi
c = c + 1;

Lenguaje de Programacin

142

Carlos Rodrguez Torvisco Algortmica

FinMientras
Si ( s = num)entonces
Escribir el numero es perfecto
Sino
Escribir el numero no es perfecto
Finsi
Fin
30.2. Codificacin C#
static void Main(string[] args)
{
int num, s, c, r;
Console.Write("Ingresa Numero:");
num = int.Parse(Console.ReadLine());
s = 0;
c = 1;
while (c < num)
{
r = num % c;
if (r == 0)
s = s + c; //Cuando Tenemos solo una instruccion no es necesario las llaves
c = c + 1;
}
if (s == num)
Console.Write("el numero es perfecto");
else
Console.Write("el numero no es perfecto");
Console.Read();
}

31.Escriba un programa que determine los factores primos de cualquier numero entero.
31.1 Algoritmo
Inicio {determinar los factores primos de un numero entero}
{Leer el numero}
Leer num
{determinar y escribir factores primos}
i=2
Mientras ( i<=num) hacer
Si (num mod i = 0)entonces
num = num div i
Escribir i
Sino
i=i +1
Finsi
FinMientras
Fin
31.2. Codificacin C#
static void Main(string[] args)
{
int num, i;

Lenguaje de Programacin

143

Carlos Rodrguez Torvisco Algortmica

Console.Write("Introduce Numero:");
num = int.Parse(Console.ReadLine());
i = 2;
while (i <= num)
{
if (num % i == 0)
{
num = num / i;
Console.WriteLine(i);
}
else
i++;
}
Console.Read();
}

32. Escribir un algoritmo que determine cuantos digitos pares y cuantos digitos impares
tiene un nmero de n digitos.
35 = tiene 2 digitos impares y 0 pares
24869 = tiene 1 digito impar y 4 pares
32.1 Algoritmo
Inicio {determinar cuantos digitos pares e impares tiene un numero}
{Leer el numero}
Leer num
{determinar los digitos pares e impares}
CanImp = 0 {Inicializamos el acumulador para que almacene el total de digitos impares}
CanPar=0 {Inicializamos el acumulador para que almacene el total de digitos pares}
Mientras ( num > 0) hacer
R = num mod 10
Si (num mod 2 = 0)entonces {el digito biene hacer par}
{entonces acumulamos en cantidad de pares}
CanPar=CanPar+1
Sino
{entonces el digito biene hacer impar y acumulamos en CanImp}
CanImp=CanImp+1
Finsi
num = num div 10
FinMientras
{Esciribir el total de digitos pares e impares de un numero }
Escribir CanPar,CanImp
Fin
32.2. Codificacin C#
static void Main(string[] args)
{
int CantPares = 0, CatnImp = 0;
int N, R;
Console.Write("Ingresa Nmero:");
N = int.Parse(Console.ReadLine());

144

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

while (N > 0)
{
R = N % 10;
if (R % 2 == 0)
CantPares++;
else
CatnImp++;
N /= 10;
}
Console.WriteLine("Cantidad de Pares:{0}", CantPares);
Console.WriteLine("Cantidad de Impares:{0}", CatnImp);
Console.Read();

33. Escribir un programa que permita tabular la siguiente funcin:


F(X)=3.20*X/(0.45 * X 0.25)
Para X= 0.00,0.05,0.10,0.15,,2.00
X
0.00
0.05
0.10

1.95
2.00

F(X)
0.00
0.7032967
1.56097561

9.94422311
9.84615385

33.1 Algoritmo
Inicio {tabular la siguiente funcin f(x)}
hacer
fx=3.20*x/(0.45*x0.25)
Escribir fx
x=x+0.05
Mientras(x<2.05){si ponemos 2.00 solo nos mostrara hasta el 1.95}
Fin
33.2. Codificacin C#
static void Main(string[] args)
{
double x;
x = 0.00;
do
{
double fx = 3.20 * x / (0.45 * x - 0.25);
Console.WriteLine("F({0})={1}", x, fx);
x += 0.05;//x=x+0.05
} while (x < 2.05);
Console.Read();
}

34.Escribir un programa que determine el mximo comn divisor de tres nmeros enteros
positivos.
3 9 18 3 MCD= 3
24 36 72 3 MCD = 3 * 4 = 12
136
8 12 24 4

145

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

2 3 6
34.1 Algoritmo
Inicio {calcular el mximo comn divisor de 3 nmeros}
{Leemos los tres numeros}
Leer A,B,C
Resto=A mod B
Mientras(Resto <> 0) hacer
A=B
B=Resto
Resto= A mod B
Finmientras
{como B vale el mcd de A y B ahora hacemos lo mismo con c}
Resto=B mod C
Mientras(Resto <> 0) hacer
B=C
c=Resto
Resto=B mod C
Finmientras
Escribir c
Fin
34.2. Codificacin C#
static void Main(string[] args)
{
//declarmaos nuestras variables
int A, B, C, Resto;
Console.Write("Ingresa El Primer Nmero:");
A = int.Parse(Console.ReadLine());
Console.Write("Ingresa El Segundo Nmero:");
B = int.Parse(Console.ReadLine());
Console.Write("Ingresa El Tercer Nmero:");
C = int.Parse(Console.ReadLine());
Resto = A % B;
while (Resto != 0)
{
A = B;
B = Resto;
Resto = A % B;
}
Resto = B % C;
while (Resto != 0)
{
B = C;
C = Resto;
Resto = B % B;
}
Console.Write("El Maximo Comn Divisor es :" + C);
Console.Read();
}

35.En el ultimo censo dela ciudad de Abancay, se consigno la siguiente informacion en las
fichas respectivas:

146

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Edad
Sexo(1=Hombre y 2 = Mujer)
Estado Civil (s = soltero, c = casado, v= viudo,d=divorciado)

Escribir un programa que determine:


Nmero de varones y nmero de mujeres.
Nmero de muchachas solteras entre las edades de 16 y 21 aos.
EJEMPLO:
Supongamos que la cantidad de cesantes es 9

EDAD
17
40
35
48
20
30
150
16
20

DATOS
SEXO
2
1
2
2
1
1
1
2
1

ESTADO C.
S
C
V
V
C
S
S
S
V

Nmero de Varones: 5
Nmero de Mujeres:4
Nmero de muchachas solteras entre las edades de 16 y 21 aos : 2
35.1 Algoritmo
Inicio {determinar resultados encuesta}
J=0,Numero=0,H=0,M=0{inicializamos }
Leer num {Leemos el numero de personas que queramos hacerle el censo}
Mientras ( j < num) hacer
Leer sexo , edad, estadc {ingresamos sexo , edad y estado civil de la persona}
Si (sexo = 1) entonces
H= H +1 {acumulamos el total de varones del censo}
Sino
M=M+1 {acumulamos el total de mujeres del censo}
Finsi
Si ((edad>=16 y edad <=21) y (sexo = 2) y (estadc = s)) entonces
Numero=Numero + 1 {acumulamos las solteras de 16 y 21 aos}
Finsi
j=j+1
FinMientras
Escribir H , M , Numero{escribimos el total de mujeres y varones }
Fin
35.2. Codificacin C#

Lenguaje de Programacin

147

Carlos Rodrguez Torvisco Algortmica

static void Main(string[] args)


{
int j = 0, numero = 0, h = 0, m = 0;
string op;e
int sexo, edad;
int num;
//ingresamos la cantidad de personas que queremos censar
Console.Write("Ingrese Cantidad de Censantes:");
num = int.Parse(Console.ReadLine());
while (j < num)
{
Console.Clear();
Console.Write("
Numero de Censo {0}", j + 1);
Console.Write("\nIngrese Sexo(Hombre=1/Mujer=2):");
sexo = int.Parse(Console.ReadLine());
Console.Write("Ingrese Edad:");
edad = int.Parse(Console.ReadLine());
Console.Write("Estado Civil");
Console.Write("\n1.-Soltero(s)");
Console.Write("\n2.-Casado(c)");
Console.Write("\n3.-Viudo(v)");
Console.WriteLine("\n4.-Divorciado(d)");
op = Console.ReadLine();
//hallamos la cantidad de varones
if (sexo == 1)
h++;
else if (sexo == 2)//hallamos la cantidad de mujeres
m++;
if ((edad >= 16) && (edad <= 21) && (sexo == 2) && op == "s")
numero++;
j++;
}
Console.Write("\nEl Total de Numero de Muchachas Solteras");
Console.Write("\nque estan entre 16 y 21 aos es de : {0}", numero);
Console.Write("\nTotal de Varones es :{0} y Total de Mujeres es :{1}", h, m);

Console.Read();
}

36. Escriba un programa que obtenga la suma, e imprima los terminos de la siguiente serie:
2, 5, 7, 10, 12, 17, ... , 1800.
La suma de la serie es : 2 + 5+7+10+12+17+20+22+25++1800 = 648720
36.1 Algoritmo
Inicio {determinar la suma de la siguiente serie}
I=2,sumaser=0
Mientras ( j <=1800) hacer
sumaser = sumaser + i
Escribir i {mostramos los trminos de la serie}
Si (band = T) entonces
i=i+3
band= F
Sino
i=i+2

148

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

band= T
Finsi
FinMientras
Escribir sumaser{escribimos la suma de la serie}
Fin
36.2. Codificacin C#
static void Main(string[] args)
{
float i = 2, sumaser = 0;
char band = 'T';
while (i <= 1800)
{
sumaser += i;
Console.WriteLine(i);
if (band == 'T')
{
i += 3;
band = 'F';
}
else
{
i += 2;
band = 'T';
}
}
Console.WriteLine("La Suma de la Serie es:" + sumaser);
Console.Read();
}

37.Haga un programa para sumar los pares comprendidos entre 1 y 10


1

10

Entonces agarramos los pares: 2 , 4 ,6 ,8,10 = 2+4+6+8+10 = 30


37.1 Algoritmo
Inicio {calcular la suma de los pares del 1 al 10}
Sumapar=0,numpar=2
Mientras (numpar<=10) hacer
Sumpar = Sumpar + numpar
numpar = numpar +2
FinMientras
Escribir Sumpar{escribimos la suma de los nmeros pares}
Fin
37.2. Codificacin C#
static void Main(string[] args)
{
int numpar = 2, sum = 0;
Console.WriteLine("Suma de los nmeros pares entre 1 y 10");

Lenguaje de Programacin

149

Carlos Rodrguez Torvisco Algortmica

while (numpar <= 10)


{
sum = sum + numpar;
numpar = numpar + 2;
}
Console.WriteLine("La Suma es:" + sum);
Console.Read();

38.Haga un programa para obtener la tabla de multiplicacion de un nmero entero k,


comenzando desde 1 hasta el 12.
K= 5 entoces

TABLA DE MULTIPLICAR DEL 5


5* 1 = 5
5* 2 = 10
5* 3 = 15
5* 4 = 20
5* 5 = 25
5* 6 = 30
5* 7 = 35
5* 8 = 40
5* 9 = 45
5* 10 = 50
5* 11 = 55
5* 12 = 60

38.1 Algoritmo
Inicio {calcular la tabla de multiplicar de un numero k}
Leer K {leemos el numero para mostrar su tabla de multiplicar}
Para (i=1)hasta (i<=12) incremento 1 hacer
Mult=K*i
Escribir K,*,i,=,Mult
FinPara
Fin
38.2. Codificacin C#
static void Main(string[] args)
{
int i, K;
float mul;
Console.Write("Ingresar el nmero: ");
K = int.Parse(Console.ReadLine());
Console.WriteLine("\n\tTabla de Multiplicar del {0}\n",K);
for (i = 1; i <= 12; i++)
{
mul = K * i;
Console.WriteLine("\t{0} * {1} = {2}", K, i, mul);
}

Lenguaje de Programacin

150

Carlos Rodrguez Torvisco Algortmica

Console.ReadLine();
}

39. Escriba un programa de flujo que lea un nmero entero N y calcule el resultado de la
siguiente serie: 1 + 1/2 + 1/3 + 1/4 + ... + 1/N
N = 5 =====> 1 + 1/2 + 1/3+1/4 + 1/5 = 2,28
N= 20 =====> 1 + 1/2 + 1/3+1/4+1/5 + + 1/20 =3,59774
39.1 Algoritmo
Inicio {calcular la suma de la serie}
Serie=0
Leer N
Para (i=1)hasta (i<=N) incremento 1 hacer
Serie=Serie + (1 / i)
FinPara
Escribir Serie {Mostramos la Suma de la Serie}
Fin
39.2. Codificacin C#
static void Main(string[] args)
{
int N;
float i, serie = 0;
Console.Write("Ingresar el nmero N: ");
N = int.Parse(Console.ReadLine());
for (i = 1; i <= N; i++)
{
if (i == 1)
Console.Write("1 +", i);
else
{
if (N == i)
Console.Write("1/{0}", i);
else
Console.Write("1/{0} + ", i);
}
serie = serie + (1 / i);
}
Console.WriteLine("\nLa suma es: {0}", serie);
Console.ReadLine();
}

40. Escriba un programa de flujo que lea un nmero entero N y calcule el resultado de la
siguiente serie: 1 1/2 + 1/3 1/4 + ... + 1/N
N = 5 =====> 1 1/2 + 1/31/4 + 1/5 = 0,78
N= 20 =====> 1 1/2 + 1/31/4+1/5 1/20 =0,6687717
40.1 Algoritmo
Inicio {calcular la suma de la serie}
Leer N
Serie=0,Serie2=0

Lenguaje de Programacin

151

Carlos Rodrguez Torvisco Algortmica

Para (i=1)hasta (i<=N) incremento 1 hacer


j=i
Si(i mod 2 ==0) entonces {cuando i va hacer par va ser negativo}
Serie=Serie (1 / j)
Sino {cuando es impar es positivo}
Serie2=Serie2 + (1/j)
Finsi
FinPara
Escribir Serie+Serie2 {Mostramos la Suma }
Fin
40.2. Codificacin C#
static void Main(string[] args)
{
int N, i;
float serie1 = 0.0f, serie2 = 0.0f, serie = 0.0f, j;
Console.Write("Ingresar el nmero N: ");
N = int.Parse(Console.ReadLine());
for (i = 1; i <= N; i++)
{
if (i == 1)
Console.Write("1-", i);
else
{
if (i % 2 == 0 && i != N)
Console.Write("1/{0} +", i);
else
{
if (i != N)
Console.Write("1/{0} -", i);
else
Console.Write("1/{0}", i);
}
}
j = i;
if (i % 2 == 0)
serie1 = serie1 - (1 / j);
else
serie2 = serie2 + (1 / j);

}
serie = serie1 + serie2;
Console.WriteLine("\nLa suma es: {0}", serie);
Console.ReadLine();
}

41. Dado el sueldo de N trabajadores, considere un aumento del 15% a cada uno de ellos,
si su sueldo es inferior a s/. 800. Imprima el sueldo con aumento incorporado (su
corresponde). Haga el Programa correspondiente.

Lenguaje de Programacin

152

Carlos Rodrguez Torvisco Algortmica

41.1 Algoritmo
Inicio {calcular el sueldo de N trabajadores}
Leer N
Para (i=1)hasta (i<=N) incremento 1 hacer
Leer sue
Si(sue < 800) entonces {si el sueldo es inferior a 800 entonces recibe aumento }
sue=sue * 1.15 {Tambin se pude hacer sue = sue+(sue * 0.15)}
Finsi
Escribir sue {Mostramos sueldo del trabajador}
FinPara
Fin
41.2. Codificacin C#
static void Main(string[] args)
{
int i, N;
float sue;
Console.Write("Ingrese el nmero de trabajadores: ");
N = int.Parse(Console.ReadLine());
for (i = 1; i <= N; i++)
{
Console.Write("Ingrese el sueldo del trabajador {0}: ", i);
sue = float.Parse(Console.ReadLine());
if (sue < 800)
sue = sue * 1.15f;
Console.WriteLine("El sueldo neto es:{0}\n", sue);
}
Console.ReadLine();
}

42. Calcule el aumento de sueldo para un grupo de empleados de una empresa,


teniendo en cuenta el siguiente criterio.
Si el sueldo es inferior a S/. 1000
: Aumento 15%
Si el sueldo es mayor o igual a S/. 1000 : Aumento 12%
Imprima el sueldo nuevo del trabajador y el total de nomina de la empresa,
considernado este nuevo aumento.

Lenguaje de Programacin

153

Carlos Rodrguez Torvisco Algortmica

42.1 Algoritmo
Inicio {calcular el sueldo y la nomina de una empresa}
nom=0
Leer sue
Mientras (sue <> 1) hacer
Si(sue <1000) entonces {si el sueldo es inferior a 1000 entonces recibe aumento }
nsue=sue * 1.15
Sino
nsue=sue * 1.12
Finsi
nom = nom + nsue
Escribir sue {Mostramos sueldo del trabajador}
Leer sue
FinMientras
Escribir nom {al final mostrar la nomima de la empresa}
Fin
42.2. Codificacin C#
static void Main(string[] args)
{
float nom, sue, nsue;
nom = 0;
Console.Write("\nIngresar el sueldo: ");
sue = float.Parse(Console.ReadLine());
while (sue != -1)
{
if (sue < 1000)
nsue = sue * 1.15f;
else
nsue = sue * 1.12f;
nom = nom + nsue;

Console.WriteLine("El nuevo sueldo del trabajador es: {0}",


nsue);
Console.Write("\nIngresar el sueldo:");
sue = float.Parse(Console.ReadLine());

Lenguaje de Programacin

154

Carlos Rodrguez Torvisco Algortmica

Console.WriteLine("\n***El total de la nmina de la empresa es:


{0}***", nom);
Console.ReadLine();
}

43.La siguiente serie se llama la conjetura de ULAM en honor al matematico S. Ulam:


a) Comience con cualquier entero positivo.
b) Si es par, dividalo entre 2; si es impar, multipliquelo por 3 y agreguele 1.
c) Obtenga enteros sucesivamente repitiendo el proceso.
Al final, obtenga el nmero 1, independientemente del entero inicial. Por
cuando el entero inicial es 26, la secuencia ser :

ejemplo,

26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.


Construya un programa que lea un entreo positivo y obtenga e imprima la sucesin de
ULAM.

43.1 Algoritmo
Inicio {calcular la serie ULAM}
Leer N
Si(N>0) entonces
Escribir N
Mientras (N<>1) hacer
Si((1^N)>0) entonces {tambin pueden utilizar ( N mod 2 == 0)}
N=N/2
Sino
N=N*3+1
Finsi
Escribir N
FinMientras
Sino
Escribir El Numero tiene que ser entero positivo
Finsi
Fin
43.2. Codificacin C#
static void Main(string[] args)
{
int N;
Console.Write("Ingresar nmero: ");
N = int.Parse(Console.ReadLine());
if (N > 0)
{
Console.Write("{0} ", N);

Lenguaje de Programacin

while (N !=
{
if (N%2
N =
else
N =
}

155

Carlos Rodrguez Torvisco Algortmica

1)
== 0)
N / 2;
N * 3 + 1;

Console.Write("{0} ", N);

}
else
Console.WriteLine("El nmero tiene que ser mayor que 0.");
Console.ReadLine();
}

44. En una escuela, donde se tienen registros con las caractersticas fsicas de los
alumnos, se desea conocer la lista de los alumnos con aptitudes para practicar basquet. Haga
un programa que obtenga lo siguiente:
a) Lista de alumnas con aptitudes para jugar al basquet.
Requerimientos: ALTURA>=1.73 y 50<=PESO<=83
b) Porcentaje de alumnas con estas aptitudes de la poblacin estudiantil
femenina.
c) Lista de alumnos con aptitudes fsicas para jugar al basquet.
Requerimientos: ALTURA>=1.83 y 73<=PESO<=105
d) Porcentaje de alumnos con estas aptitudes de la poblacin estudiantil
masculina.
Por cada alumno se ingresa su NOMBRE, SEXO, EDAD, PESO Y ALTURA.

Lenguaje de Programacin

156

Carlos Rodrguez Torvisco Algortmica

44.1 Algoritmo
Inicio {calcular cuantos son aptos para jugar basket}
porf = 0, porm = 0, fembas = 0, masbas = 0, amas = 0, afem = 0
Leer n
Para (i=1)hasta(i<= n)incremento 1 hacer
Leer name,sex,edad,peso,alt
Si(sex <f) entonces {si el sexo es femenino }
aAfem=afem + 1 {va contar la cantidad de mujeres}
Si(alt>=1.73 y peso >=50 y peso <= 83)entonces
femas=fembas +1 {contar la cantidad de mujers aptas para el basket}
Esciribr Califica Basquet
Sino
Esciribr no Califica
Finsi
Sino
amas=amas+1 {va contar la cantidad de hombres}
Si(alt>=1.83 y peso >=73 y peso <= 105)entonces
masbas=masbas +1 {contar las personas aptas }
Esciribr Califica Basquet
Sino
Esciribr no Califica
Finsi
Finsi
FinPara
porf=(fembas / afem) * 100 {Calcula el Porcentaje de Mujeres aptas para el basket}
porm=(masbas / amas) * 100 {Calcula el Porcentaje de Hombres aptos para el bastek}
Escribir porf,porm
Fin
44.2. Codificacin C#
static void Main(string[] args)
{
int edad, i, n;
float alt, peso, porf = 0, porm = 0;
float fembas = 0, masbas = 0, amas = 0, afem = 0;
string name, sex;
Console.Write("\n\tIngresar el nmero de alumnos a evaluar: ");
n = int.Parse(Console.ReadLine());
for (i = 1; i <= n; ++i)
{
Console.Write("\n\n\tEscribir nombres y apellidos del
alumno({0}):\n\t", i);
name = Console.ReadLine();
Console.Write("\tIngresar sexo(m o f): ");
sex = Console.ReadLine();
Console.Write("\tIngresar edad: ");
edad = int.Parse(Console.ReadLine());
Console.Write("\tIngresar peso(gr): ");

Lenguaje de Programacin

157

Carlos Rodrguez Torvisco Algortmica

peso = float.Parse(Console.ReadLine());
Console.Write("\tIngresar altura(mt): ");
alt = float.Parse(Console.ReadLine());
if (sex == "f")
{
afem += 1;
if (alt >= 1.73f && peso >= 50 && peso <= 83)
{
fembas += 1;
Console.WriteLine("\n\t{0}\t BASQUET\n", name);
}
else
Console.WriteLine("\n\tno califica");
}
else
{
amas += 1;
if (alt >= 1.83f && peso >= 73 && peso <= 105)
{
masbas += 1;
Console.WriteLine("\n\t{0}\t BASQUET\n", name);
}
else
Console.WriteLine("\n\tno califica\n");
}

}
porf = (fembas / afem) * 100;
porm = (masbas / amas) * 100;
Console.WriteLine("\n\tEl porcentaje aptos para el basket de alumnas
es: {0}%\n", porf);
Console.WriteLine("\tEl porcentaje aptos para el basket de alumnos
es: {0}%\n", porm);
Console.ReadLine();

45. En una empresa con N empleados se necesita obtener cierta informacin.


Por cada empleado se ingresan los siguientes datos CLAVE, EDAD, SEXO y SUELDO. Haga un
programa para calcular e imprimar lo siguiente:
a) Nmero de hombres.
b) Nmero de mujeres.
c) Nmero de mujeres que ganen con mas de s/. 1000.
d) Nmero de hombres menores de 40 aos que ganen menos de s/. 100.
e) Nmero de empleadosmayores de 50 aos.

Lenguaje de Programacin

158

Carlos Rodrguez Torvisco Algortmica

45.1 Algoritmo
Inicio
I = 0,nh = 0, nm = 0, nmg = 0,nem = 0,nhm = 0
Leer n
Para (i=1)hasta(i<= n)incremento 1 hacer
Leer clave,edad,sexo,sueldo
Si(edad>50) entonces {personas mayores de 50 aos}
nem=nem +1
Finsi
Segn_sea sexo hacer
Caso 1: nh =nh +1 {contar el numero de hombres}
Si (edad < 40 y sueldo < 1000)entonces
nhm = nhm + 1
Finsi
Caso 2: nm = nm + 1; {contar el numero de mujeres}
Si (sueldo > 1000)entonces {mujeres que ganan mas de mil soles}
nmg = nmg + 1
Finsi
Finsegn_sea
FinPara
Escribir nh,nm,nem,nmg,nhm
Fin
45.2. Codificacin C#
static void Main(string[] args)
{
int I, N, clave, edad, sexo;
int nh, nm, nem, nhm, nmg;

Lenguaje de Programacin

159

Carlos Rodrguez Torvisco Algortmica

double sueldo;
I = 0;
nh = 0;
nm = 0;
nmg = 0;
nem = 0;
nhm = 0;
Console.Write("Ingresar el nmero de empleados de la empresa: ");
N = int.Parse(Console.ReadLine());
for (I = 1; I <= N; I++)
{
Console.Write("\n\tIngresar Clave: ");
clave = int.Parse(Console.ReadLine());
Console.Write("\tEdad: ");
edad = int.Parse(Console.ReadLine());
Console.Write("\tSexo (mujer[0]/hombre[1]): ");
sexo = int.Parse(Console.ReadLine());
Console.Write("\tSueldo: ");
sueldo = double.Parse(Console.ReadLine());
if (edad > 50)
nem = nem + 1;
switch (sexo)
{
case 1:
nh = nh + 1;
if (edad < 40 && sueldo < 1000)
nhm = nhm + 1;
break;
case 0:
nm = nm + 1;
if (sueldo > 1000)
nmg = nmg + 1;
break;
}

}
Console.WriteLine("\n\tNMERO DE HOMBRES: {0}\n", nh);
Console.WriteLine("\tNMERO DE MUJERES: {0}\n", nm);
Console.WriteLine("\n\tNmero de empleados mayores de 50 aos:
{0}\n", nem);
Console.WriteLine("\n\tMujeres que ganan ms de 1000: {0}\n", nmg);
Console.WriteLine("\tHombres < 40 aos que ganan ms de 1000: {0}",
nhm);
Console.ReadLine();
}

46. Escriba un programa que imprima todos los pares de m y n que cumplan la siguiente
condicin (M y N solo pueden ser valores positivos):

m4 + 7 * n2 < 540

160

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

46.1 Algoritmo
Inicio {calcular cuantos pares cumplen la condicin}
m=1 , n=1
Mientras(m^4 + 7 * n^2 < 540) hacer
Mientras(m^4 + 7 * n^2 < 540) hacer
Si(m mod 2 = 0 y n mod 2 = 0)entonces
Escribir m , n
Finsi
Finmientras
m=m+1
n=1
Finmientras
Fin
46.2. Codificacin C#
static void Main(string[] args)
{
int m = 1, n = 1;
Console.WriteLine("Los siguientes pares cumplen con la condicion: ");
Console.WriteLine("M^4 + 7*N^2 < 540\n");
while (Math.Pow(m, 4) + 7 * Math.Pow(n, 2) < 540)
{
while (Math.Pow(m, 4) + 7 * Math.Pow(n, 2) < 540)
{
if (m % 2 == 0 && n % 2 == 0)
Console.WriteLine("M={0} y N={1}", m, n);
n++;
}
m++;
n = 1;
}
Console.ReadLine();
}

47. Escriba un programa que imprima todos los valores de X,Y y Z que satisfagan la siguiente
expresin:

18 * X 3 + 11* Y 5 + 8 * Z 6 < 6300

47.1 Algoritmo
Inicio
X=0,Z=0,Y=0
res=18*X^3+11*Y^5+8*Z^6
Mientras(res<6800) hacer
Mientras(res<6800) hacer
Mientras(res<6800) hacer
Escribir X,Y,Z
res=18*X^3+11*Y^5+8*Z^6

Lenguaje de Programacin

161

Carlos Rodrguez Torvisco Algortmica

Finmientras
Y=Y+1
Z=0
res=18*X^3+11*Y^5+8*Z^6
Finmientras
X=X+1
Z=0
Y=0
res=18*X^3+11*Y^5+8*Z^6
Finmientras
Fin
47.2. Codificacin C#
static void Main(string[] args)
{
int x = 0, y = 0, z = 0;
double res = 0;
res = 18 * Math.Pow(x, 3) + 11 * Math.Pow(y, 5) + 8 * Math.Pow(z, 6);

while (res < 6300)


{
while (res < 6300)
{
while (res < 6300)
{
Console.WriteLine("(X={0},Y={1},Z={2})", x, y, z);
z++;
res = 18 * Math.Pow(x, 3) + 11 * Math.Pow(y, 5) + 8 * Math.Pow(z,
}
y++;
z = 0;

6);

res = 18 * Math.Pow(x, 3) + 11 * Math.Pow(y, 5) + 8 * Math.Pow(z, 6);

}
x++;
y = 0;
z = 0;

res = 18 * Math.Pow(x, 3) + 11 * Math.Pow(y, 5) + 8 * Math.Pow(z, 6);

}
Console.ReadLine();
}

48. Una empresa automotriz necesita manejar los montos de ventas de sus N sucursales, a
lo largo de los ltimos 14 aos. Haga un programa que calcule lo siguiente:
a) Sucursal que ms ha vendido en cada ao.
b) Promedio de ventas por ao.
c) Ao con mayor promedio de ventas.
d) Ventas totales de la empresa (considerando las N sucursales durante 14 aos).
47.1 Algoritmo
Inicio
anno=0,suc=0,annomay=0,totven=0
Leer N
Para(i=1) hasta (i<=14) incremento 1 hacer
J=1

Lenguaje de Programacin

162

Carlos Rodrguez Torvisco Algortmica

mayven=0
venanno=0
Para(J=1) hasta (J<=N) incremento 1 hacer
Leer venta
venanno=venanno + venta
si(venta>mayven)entonces
mayven=venta
suc=J
Finsi
Finpara
Escribir suc {escribimos la sucursal que ms vendi }
Escribir mayven {Escribimos cuanto vendio}
proanno=venanno / N {calculamos el promedio de ventas}
Escribir proanno
Si(venanno > annomay) entonces
annomay=venanno
anno=I
Finsi
totven=totven + veanno
Finpara
{Escribimos ao que mas vendi en la empresa}
Escribir anno
{Escribimos su venta}
Escribir annomay
{Escribimos el total de venta}
Escribir totven
Fin
48.2. Codificacin C#
static void Main(string[] args)
{
int I, anno = 0, N, J, suc = 0;
double totven, annomay, venanno, mayven, venta, proanno;
I = 1;
annomay = 0;
totven = 0;
Console.Write("Ingresar nmero de sucursales: ");
N = int.Parse(Console.ReadLine());
for (I = 1; I <= 14; I++)
{
Console.WriteLine("***** AO
{0} *****", I);
J = 1;
mayven = 0;
venanno = 0;
for (J = 1; J <= N; J++)
{
Console.WriteLine("*** SUCURSAL {0} ***", J);
Console.Write("Ingresar Venta S/.: ");
venta = double.Parse(Console.ReadLine());
venanno = venanno + venta;

Lenguaje de Programacin

163

Carlos Rodrguez Torvisco Algortmica

if (venta > mayven)


{
mayven = venta;
suc = J;
}

}
Console.WriteLine("Sucursal que ms vendio en el ao {0}:
Sucursal {1} ", I, suc);
Console.WriteLine("Vendi: S/.{0}", mayven);
proanno = venanno / (N);
Console.WriteLine("PROMEDIO VENTAS AO {0} :

S/.{1}", I, proanno);

if (venanno > annomay)


{
annomay = venanno;
anno = I;
}
totven = totven + venanno;

}
Console.WriteLine("Ao que ms vendio la empresa: Ao {0} ", anno);
Console.WriteLine("Ventas : S/.{0}", annomay);
Console.WriteLine("TOTAL VENTAS DE LA EMPRESA : S/.{0}", totven);
Console.ReadLine();

49. Escriba un programa que obtenga e imprima todos los nmeros "Primos Gemelos"
comprendidos entre A y B (enteros positivos). Los primos gemelos son parejas de nmeros
primos con una diferencia entre s de exactamente dos. Ejemplo: 3 y 5 son primos gemelos.
En primer lugar, cules o qu son los nmeros primos gemelos?
Dos nmeros primos "p" y "q" son nmeros primos gemelos si la diferencia entre ellos es de 2,
es decir, si "q=p+2". Los primeros nmeros primos gemelos son:
(1,3),(3, 5),(5, 7),(11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73), (101, 103), (107,
109), (137, 139), (149, 151), (179, 181), (191, 193), (197, 199), (227, 229), (239, 241), (269,
271),(281, 283), (311, 313), (347, 349), (419, 421), (431, 433), (461, 463), (521, 523), (569,
571), (599,601), (617, 619), (641, 643), (659, 661), (809, 811), (821, 823), (827, 829), ...
As, que para que dos nmeros sean primos gemelos se deben cumplir dos condiciones:
1. La diferencia entre uno y otro debe ser 2. Ejemplo: 3 y 5 se diferencian en dos unidades.
2. Ambos nmeros deben ser primos. Ejemplo: 3 es n primo y 5 tambin.
Una ves que ya sabemos qu es podemos pensar en como resolverlo el problema que nos
plantean.
As, lo que hacemos es buscar en las parejas sucesivas de (p, q) : (1, 3), (2, 4), (3, 5), (4, 6), ...,
Cules cumplen las condiciones necesarias.
Este algoritmo es muy sencillo, lo que lo hace adecuado para iniciados. Si tu nivel es mayor,
Puedes mejorarlo.

Lenguaje de Programacin

164

49.1 Algoritmo
Inicio
I=0,band=,band2=
Leer A,B
Si(A < B y A > 0 y B > 0)entonces
Si((1^A)>0)entonces
I=A+1
Sino
I=A
Finsi
band1 = "F";
Finsi
Mientras(I<=B) hacer
Band2=v
j=3
Mientras (J < (I div 2) y band2 =vhacer
Si(I mod j = 0)hacer
band2=F
Finsi
j=j+2
Finmientras
Si (band2 = v) entonces
Si (band1 = "F") entonces
band1 = "v"
Sino
Escribir I 2, I
Finsi
Sino
band1 = "F";
Finsi
I=I+2
Finmientras
Fin
49.2. Codificacin C#
static void Main(string[] args)
{
int A, B, J, I = 0;

Carlos Rodrguez Torvisco Algortmica

165

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

string band1 = "", band2;


Console.WriteLine("Primos gemelos entre A y B (solo enteros positivos)");

Console.Write("\nIngresar A:");
A = int.Parse(Console.ReadLine());
Console.Write("Ingresar B:");
B = int.Parse(Console.ReadLine());
if (A < B && A > 0 && B > 0)
{
if (Math.Pow(-1, A) > 0)
I = A + 1;
else
I = A;
band1 = "F";
}
while (I <= B)
{
band2 = "V";
J = 3;
while (J < (I / 2) && band2 == "V")
{
if (I % J == 0)
band2 = "F";
J = J + 2;
}
if (band2 == "V")
{
if (band1 == "F")
band1 = "V";
else
Console.WriteLine("PRIMOS GEMELOS: {0}

}
else
band1 = "F";
I = I + 2;

{1} \n", I - 2, I);

}
Console.ReadLine();
}

50. Es posible demostrar que la suma de un nmero "suficiente" de trminos

de la serie:

X3 X5 X7
+

+ ...
3!
5!
7!

Es un nmero considerablemente cercano a SEN(X), y que la diferencia entre SEN(X) y


la suma antes mencionada se vuelve menor conforme se toman ms trminos. Escriba
un programa para que, dada una X cualquiera, calcule el SEN(X), utilizando la serie
anterior, de tal modo que dicha diferencia sea menor o igual a 0.05. Imprima el
nmero de trminos requeridos para obtener esta precisin.
50.1 Algoritmo
Inicio
I=3,cal=0
Leer X
sum=X , ter=1,band = F
Mientras(|sum|>=0.05) hacer

Lenguaje de Programacin

166

Carlos Rodrguez Torvisco Algortmica

fact=1
J=1
Para(J=1) hasta (J<=I) incremento 1 hacer
fact=fact*J
Finpara
cal=(X^I/fact)
Si(band == F) entonces
sum=sum + cal
band=F
Sino
sum=sumcal
band=T
Finsi
ter=ter+1
I=I+2
Finmientras
Escribir ter
Fin
50.2. Codificacin C#
static void Main(string[] args)
{
int I, J, X, ter;
double sum, fact;
double cal = 0;
string band;
I = 3;
Console.Write("buscar el nmero de terminos X para obtener\n");
Console.WriteLine("la diferencia (sen(X) - Suma)) <= 0.05\n");
Console.WriteLine("FUNCION :

X - X^3/3! + X^5/5! - X^7/7! + ...\n");

Console.Write("Ingresar nmero [X]: ");


X = int.Parse(Console.ReadLine());
sum = X;
ter = 1;
band = "F";
while (Math.Abs(sum) >= 0.05)
{
fact = 1;
J = 1;
for (J = 1; J <= I; J++)
{
fact = fact * J;
}
cal = (Math.Pow(X, I) / fact);
if (band == "F")
{
sum = sum + cal;
band = "F";
}
else
{
sum = sum - cal;
band = "T";
}
ter = ter + 1;

Lenguaje de Programacin

167

Carlos Rodrguez Torvisco Algortmica

I = I + 2;

Console.WriteLine("\nEl nmero de terminos de la serie es: {0}", ter);

Console.ReadLine();

EJERCICIOS PROPUESTOS
1. Escribir un programa que calcule la suma de todos los mltiplos de 5 menores de N.
2.Programa que calcula el cuadrado de los 100 primeros nmeros pares.
3.Programa que calcula la suma de los cubos de los 50 primeros nmeros naturales.
4.Disear un programa que calcule el producto de los N primeros nmeros pares.
5.Escribir un programa que lea un numero entero N y muestre en pantalla los cuadrados y
los cubos de los N primeros nmeros naturales.
6.Hacer un Programa que lea 30 nmeros y determine cuales y cuantos de ellos son
mltiplos de 7.
7. Escribir un programa que realice un bucle con do while y muestre en pantalla del 1 al
10
8.Escribir un programa que visualice en pantalla los nmeros pares entre 1 y 25
9.Escribir un programa que visualice en pantalla los nmeros mltiplos de 5 comprendidos
entre 1 y 100
10.Escribir un programa que genere la tabla de multiplicar de un nmero introducido por el
teclado.
11.Escribir un programa que realice la pregunta Desea continuar S/N? y que no deje de
hacerla hasta que el usuario teclee N.
12.Escribir un programa que calcule cuantos aos tarda en duplicarse un capital depositado
al 5% de inters anual.
13.Escribir un programa que calcule la suma de los nmeros hasta un nmero
dado (introducido por el usuario).
14.Escribir un programa que pida un numero y si el que se introduce por teclado es menor
de 100 que vuelva a solicitarlo.
15.escribir un programa que calcule la depreciacin de un objeto segn el mtodo de la
lnea recta. Calcular el nmero de aos que tarda en hacerse 0. En este mtodo el valor
original del objeto se divide por su vida(numero de aos).El cociente resultante ser la
cantidad en la que el objeto se deprecia anualmente. Por ejemplo, si un objeto se deprecia
8000 dlares en diez aos, entonces la depreciacin anual ser 8000/10=800 dlares. Por
tanto, el valor del objeto habr disminuido en 800 dlares cada ao. Ntese que la
depreciacin anual es la misma cada ao cuando se utiliza este mtodo.

Lenguaje de Programacin

168

Carlos Rodrguez Torvisco Algortmica

16.Escribir un programa que calcule la depreciacin de un objeto segn el mtodo del


balance doblemente declinante. En este mtodo, el valor del objeto disminuye cada ao en
un porcentaje constante. Por tanto, la verdadera cantidad depreciada, en dlares, variara de
un ao al siguiente. Para obtener el factor de depreciacin, dividimos por dos la vida del
objeto. Este factor se multiplica por el valor del objeto al comienzo de cada ao ( y no el
valor del original del objeto) para obtener la depreciacin anual. Supongamos, por ejemplo
que deseamos depreciar un objeto de 8000 dlares por diez aos; el factor de depreciacin
ser 2/10=0.2,por tanto, la depreciacin el primer ao ser 0.2 X 8000=1600 dlares, la
depreciacin del segundo ser 0,2 X 6400=1280 dlares; la depreciacin del tercer ao ser
0,2 X 5120=1024 dlares, y as sucesivamente.
17. Calcule el aumento de sueldo para N empleados de una empresa, bajo el siguiente
criterio:
Si el sueldo es menor a $ 1000
:
Aumento 12%
Si el sueldo esta comprendido entre $ 100 y $ 2500 :
Aumento 10%
Si el sueldo es mayor a $ 2500
:
Aumento 8%
Imprima lo siguiente:
a) El nuevo sueldo del trabajador.
b) El monto total de la nmina.
18. Construya un programa que lea 100 nmeros naturales y cuente cuntos
de ellos son positivos, negativos o nulos.
19. Dado N nmeros enteros como datos, haga un programa que:
a) Obtenga cuntos nmeros ledos fueron mayores que cero.
b) Calcule el promedio de los nmeros positivos.
c) Obtenga el promedio de todos los nmeros.

20. Haga un programa que calcule e imprima el producto de los


naturales.

primeros

nmeros

i =1

21. Escriba un programa tal, que dado N nmeros enteros como datos, calcule cul es el
mayor y el menor de estos nmeros.
22. Escriba un programa tal, que dado el peso, la altura y el sexo de N personas que
pertenecen a un estado de la repblica; obtenga el promedio del peso y la altura de esta
poblacin.
23. Resuelva el problema anterior, pero considere adems el promedio de la
altura y
del peso en funcin del sexo. Es decir, nos interesa obtener el promedio de la altura y peso
de la poblacin femenina y masculina.
24. Un vendedor ha hecho una serie de ventas y desea saber cuntas de estas fueron de $
200 o menos; cuntas fueron mayores a $ 200 pero inferiores a $ 400; y cuantas de $ 400 o
superiores a tal cantidad.

169

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Haga un programa que le proporcione al vendedor esta informacin despus de haber ledo
los datos de entrada.
25. Se tienen las calificaciones de un grupo de alumnos que presentaron un examen de
computacin. Haga un programa que calcule e imprima cuntas calificaciones hay en cada
uno de los siguientes rangos:
0
4
6
8

...
...
...

3.99
5.99
7.99
10.0

26. Una persona invierte en un banco un cierto capital y requiere saber cunto obtendr al
cabo de cierto tiempo, si el dinero se coloc a una determinada tasa de inters mensual.
Haga el programa correspondiente.
27. Escriba un programa que reciba como entrada 24 nmeros reales que representan las
temperaturas del exterior en un periodo de 24 horas. Encuentre la temperatura media del
da y las temperaturas ms alta y ms baja del da.
28. Supngase que en una reciente eleccin hubo 4 candidatos (con identificadores 1,2,3,4).
Usted habr de encontrar, mediante un programa, el nmero de votos correspondientes a
cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El usuario
teclear los votos de manera desorganizada, tal y como se obtuvieron en la eleccin, el final
de datos esta representado por un cero. Observe, como ejemplo la siguiente lista:
13142214111213140
Donde 1 representa un voto para el candidato 1; 3 un voto para el candidato 3; y asi
sucesivamente.
29. Dado N valores de Y, haga un programa para calcular el resultado de la siguiente
funcin:

3 * Y + 36
4
Y 10
X = 15
10
Y + Y 1
0

si0 < Y 11

si11 < Y 33

si33 < Y 64

para cualquier otro caso

30.- Resuelva el problema anterior, pero ahora considere que no existe la operacin de
potencia.
31. De una empresa con N empleados, necesitamos obtener el nmero de empleado y
sueldo del trabajador con el mayor sueldo de la empresa. Haga el porgrama
correspondiente.
32. La compaa de Luz "del Centro" desea imprimir los recibos de cobro de los cuenta
habitantes, en el ltimo periodo. Desea obtener tambin el total de cobros del periodo. Por
cada cliente se ingresa su nombre, direccin, registro inicial y registro final. El cobro se
efecta con base en la siguiente tabla.

170

Lenguaje de Programacin

140 KVH o menos >


Los siguientes KVH >
Exceso sobre 310 KVH

Carlos Rodrguez Torvisco Algortmica

s/. 3.20
s/. 0.15 por KVH
>
s/. 0.097 por KVH

Haga un programa para calcular lo solicitado anteriormente.


33. En una universidad se necesita obtener una lista de alumnos candidatos a la Facultad
Menor de Economa, Administracin, Contabilidad e Ingeniera en Computacin. Las
condiciones para ser seleccionado como presunto candidato para entrar a la facultad menor,
varan de carrera en carrera y se presentan a continuacin:
Condiciones para Facultad Menor de Economa:
Semestre >= 5 y promedio >= 8.5
Condiciones para Facultad Menor de Administracin:
semestre >= 5 y promedio >= 8.8
Condiciones para Facultad Menor de Contabilidad:
semestre >= 5 y promedio >= 8.5
Condiciones para Facultad Menor de Computacin:
semestre >= 5 y promedio >= 8.8

34. En una clase de una universidad se tienen 35 alumnos. Haga un programa que calcule e
imprima la matricula y el promedio de calificaciones de cada alumno. Cabe aclarar que cada
alumno de la clase tiene 5 calificaciones.
35. Resuelva el ejercicio anterior, pero considere que las cinco calificaciones del alumno se
leern dentro de un ciclo.
36. Resuelva el problema anterior con las consideraciones planteadas en el mismo, pero
slo imprima matricula y promedio del mejor y del peor alumno.

MODULARIDAD
En este capitulo haremos en la METODOLOGIA DESCENDENTE llamada tambin
METODOLOGA DE ARRIBA HACIA, ABAJO (TOPDOWN METHOD),introduciremos un nuevo
elemento llamado modulo,que es la estructura bsica de esta metodologa.
En resmen, esta metodologa produce una estructura jerarquizada tal como se muestra en la
figura.

171

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

Problema
Problema

Subproblema1

Subproblema21

Subproblema2

Subproblema22

Subprobleman

Subproblema2n

La relacion que existe entre la metodologa descendente y la programacion modular es


que la programacion modular es la implementacin de las unidades logicas o modulos
identificados con la metodologa descendente.
Programacin modular
Es una metodologia que permite la metodologia descendente donde un programa es un
conjunto de mdulos relacionados entre si.
Concepto de mdulo
Modulo tiene diferentes acepciones, inicialmente consideramos la definicin ms general del
DRAE.
Pieza o conjunto unitario de piezas que se repiten en una construccion de cualquier tipo, para
hacerla ms facl regular y economica.
En el contexto informatico, tomaremos tambin esta acepcion como base para la defincion de
mdulo. De aqu en adelante, un mdulo ser la pieza base de construccin de programas, es
decir, un programa ser una organizacin de uno o varios mdulos relacionados entre s. Una
definicion mas formal es : un modulo es un conjunto de instrucciones que efectuan un
proceso unico y completamentedefinido, que son referenciados mediante un nombre y
pueden ser invocados desde diferentes puntos de un programa u otros modulos.

172

Lenguaje de Programacin

Carlos Rodrguez Torvisco Algortmica

En este ejemplo vemos la definicin (declaracin) de un procedimiento en pseudocdigo para


calcular la suma de dos nmeros enteros, los cuales son pasados al subprograma como
parmetros de entrada. El procedimiento calcula la suma y la devuelve como un parmetro de
salida.
Luego vemos como podemos utilizar el procedimiento invocndolo desde el programa
principal u otro procedimiento. Ntese que los nombres de los parmetros en la definicin
(parmetro1 y parmetro2) no necesariamente tienen que ser los mismos que los utilizados
en la invocacin (a y b). Ntese tambin que el compilador chequear previamente que el tipo
de dato del parmetro de salida del procedimiento (en este caso un nmero entero) pueda ser
asignado a la variable c segn su tipo.
Al nombre del procedimiento junto con la lista ordenada de sus parmetros de entrada se la
conoce como firma del procedimiento. En general, no puede haber dentro del mismo
programa dos procedimientos con la misma firma.
Un procedimiento se define

static void Nombre_delProcedimiento(int n)


{
//accion a realizar sin retornar un valor
}
Una Funcion se define:
static int Nombre_delaFuncion(int n)
{
//accioin a realizar y retorna un valor con la palabra reservada
return
}

Lenguaje de Programacin

173

Carlos Rodrguez Torvisco Algortmica

EJERCICIOS RESUELTOS
1.Escrbir un programa modular que muestre en la pantalla las opciones de
sumar,multiplicar,restar y dividir dos numeros cualquiera.
static void Main(string[] args)
{
int i;
i = 0;
Console.WriteLine("1: Sumar");
Console.WriteLine("2: Restar");
Console.WriteLine("3: Multiplicar");
Console.WriteLine("4: Dividir");
Console.Write("Ingrese Opcion: ");
i = int.Parse(Console.ReadLine());
if (i == 1)
{
float N1, N2, Suma;
Console.Clear();
N1 = Leer_Numero();
N2 = Leer_Numero();
Suma = Sumar(N1, N2);
Console.WriteLine("La suma es: {0}", Suma);
Console.Read();
}
if (i == 2)
{
float N1, N2, resta;
Console.Clear();
N1 = Leer_Numero();
N2 = Leer_Numero();
resta = Restar(N1, N2);
Console.Write("La Resta es {0}", resta);
Console.ReadLine();
}
if (i == 3)
{
float N1, N2, Multiplicacion;
Console.Clear();
N1 = Leer_Numero();
N2 = Leer_Numero();
Multiplicacion = Multiplicar(N1, N2);
Console.Write("La Multiplicacion es :{0}", Multiplicacion);
Console.ReadLine();
}
if (i == 4)
{
float N1, N2, Divicion;
Console.Clear();
N1 = Leer_Numero();
N2 = Leer_Numero();
Divicion = Dividir(N1, N2);
Console.WriteLine("La Divicion es:{0}", Divicion);
if (N2 == 0)
{
Console.Write("La Divicion es infinito ");
}
Console.ReadLine();
}
}

Lenguaje de Programacin

174

Carlos Rodrguez Torvisco Algortmica

//modulo de ingresar numero


static float Leer_Numero()
{
float N;
Console.Write("Ingrese Numero:");
N = float.Parse(Console.ReadLine());
return N;
}
//modulo para calcular la suma
static float Sumar(float N1, float N2)
{
return N1 + N2; //va a devolver o retornar la suma de dos numeros
}
//modulo para calcular la Resta
static float Restar(float N1, float N2)
{
return N1 - N2;//va a devolver o retornar la resta de dos numeros
}
//modulo para calcular la Multiplicacion
static float Multiplicar(float N1, float N2)
{
return N1 * N2;//va a devolver o retornar la multiplicacion
}
//modulo para calcular la Division
static float Dividir(float N1, float N2)
{
return N1 / N2;//va a devolver o retornar la divison de dos numeros
}

2.Escribir un programa modular que muestre en la pantalla la tabla de suma y multiplicar de


los nmeros del 1 al 12.
static void Main(string[] args)
{
int Opcion;
Opcion = 0;
Menu();
Opcion = int.Parse(Console.ReadLine());
switch (Opcion)
{
case 1: TablaSumar();
break;
case 2: TablaMultiplicar();
break;
}
Console.ReadLine();
}
//modulo de la tabla de sumar
static void TablaSumar()
{
int Numero;
Console.Clear();
Console.Write("Cual es su Nmero: ");
Numero = int.Parse(Console.ReadLine());
for (int i = 1; i <= 12; i = i + 1)
{
Console.WriteLine("{0} + {1} = {2}",i,Numero,i+Numero);
}
Console.ReadLine();
}

Lenguaje de Programacin

175

Carlos Rodrguez Torvisco Algortmica

//modulo de la tabla de multiplicar


static void TablaMultiplicar()
{
int Numero;
Console.Clear();
Console.Write("Cual es su Nmero: ");
Numero = int.Parse(Console.ReadLine());
for (int i = 1; i <= 12; i = i + 1)
{
Console.WriteLine("{0} x {1} = {2}", i, Numero, i * Numero);
}
Console.ReadLine();
}
//modulo menu de tipo procedimiento
static void Menu()
{
Console.Clear();
Console.WriteLine("Tablas Aritmeticas");
Console.WriteLine("1. Tabla Sumar");
Console.WriteLine("2. Tabla Multiplicar");
Console.Write("Ingrese Opcion: ");
}

3.Escribir un programa modular determine el mayor de dos nmeros.


static void Main(string[] args)
{
int Numero1, Numero2,Resultado;
Console.Write("Ingrese Numero 1: ");
Numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero 2: ");
Numero2 = int.Parse(Console.ReadLine());
Resultado = CalcularMayor(Numero1, Numero2);
Console.WriteLine("El Mayor es:{0}",Resultado);
Console.ReadLine();
}
static int CalcularMayor(int N1,int N2)
{
int Mayor;
if (N1 > N2)
Mayor = N1;
else
Mayor = N2;
return Mayor;
}

4.Escribir un programa modular determine el mayor de tres nmeros.


static void Main(string[] args)
{
int numero1, numero2, mayorr, numero3;
Console.Write("Ingresa Numero 1:");
numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 2:");
numero2 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 3:");
numero3 = int.Parse(Console.ReadLine());
mayorr = determinarmayor(numero1, numero2);
mayorr = determinarmayor(numero3, mayorr);
Console.Write("El Mayor es : {0}", mayorr);
Console.Read();

Lenguaje de Programacin

176

Carlos Rodrguez Torvisco Algortmica

}
static int determinarmayor(int numero1, int numero2)
{
int mayor;
if (numero1 > numero2)
mayor = numero1;
else
mayor = numero2;
return mayor;
}

5.Escribir un programa modular que ordene ters nmeros en forma ascendente.


static void Main(string[] args)
{
int numero1, numero2, numero3;
Console.Write("Ingresa Numero 1:");
numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 2:");
numero2 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 3:");
numero3 = int.Parse(Console.ReadLine());
ordenartresnumeros(ref numero1,ref numero3);
ordenartresnumeros(ref numero2, ref numero3);
ordenartresnumeros(ref numero1, ref numero2);
Console.WriteLine("{0},{1},{2}",numero1,numero2,numero3);
Console.Read();
}
static void ordenartresnumeros(ref int numero1, ref int numero2)
{
int tempora;
if (numero1 > numero2)
{
tempora = numero1;
numero1 = numero2;
numero2 = tempora;
}
}

6.Escribir un programa modualar que muestre el calendario.


static void Main(string[] args)
{
int Mes, Anio;
int DiaInicio = 0, NroDiasMes = 0;
Console.Write("Ingresa Mes:");
Mes = int.Parse(Console.ReadLine());
Console.Write("Ingresa Ao:");
Anio = int.Parse(Console.ReadLine());
DeterminarInicicioNroDias(Mes, Anio, ref DiaInicio, ref NroDiasMes);
EscribirCalendario(Mes, Anio, DiaInicio, NroDiasMes);
Console.ReadLine();
}
static void EscribirCalendario(int Mes, int Anio, int DiaInicio, int NroDiasMes)

int i, pos;
Console.WriteLine("MES :" + Mes + " AO: " + Anio);
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.SetCursorPosition(5, 0);

Lenguaje de Programacin

177

Carlos Rodrguez Torvisco Algortmica

Console.Write("DO");
Console.SetCursorPosition(10, 0);
Console.Write("LU");
Console.SetCursorPosition(15, 0);
Console.Write("MA");
Console.SetCursorPosition(20, 0);
Console.Write("MI");
Console.SetCursorPosition(25, 0);
Console.Write("JU");
Console.SetCursorPosition(30, 0);
Console.Write("VI");
Console.SetCursorPosition(35, 0);
Console.Write("SA");
Console.ForegroundColor = ConsoleColor.Gray;
pos = DiaInicio;
int j = 1;
for (i = 1; i <= NroDiasMes; i++)
{
if (i == 1)
{
Console.SetCursorPosition(5 * (pos + 1), j);
Console.Write(i);
}
else
{
Console.SetCursorPosition(5 * (pos + 1), j);
Console.Write(i);
}
pos = pos + 1;
if (pos == 7)
{
Console.WriteLine();
pos = 0;
j++;
}
}
}
static void DeterminarInicicioNroDias(int Mes, int Anio, ref int DiaInicio,
ref int NroDiasMes)

int a, b, c;
//Determianr el da de inicio del mes, Utilizando la Congruencia de
Zeller,
//El Valor de dia estar entre 0 y 6
//0 significa Domingo,1 Lunes , etc
if (Mes <= 2)
{
a = Mes + 10;
b = (Anio - 1) % 100;
c = (Anio - 1) / 100;
}
else
{
a = Mes - 2;
b = Anio % 100;
c = Anio / 100;
}
DiaInicio = (700 + (26 * a - 2) / 10 + 1 + b + b / 4 + c / 4 - 2 * c) % 7;

//Determinar el numero de das del mes intresado


switch (Mes)
{
case 1:

Lenguaje de Programacin

178

Carlos Rodrguez Torvisco Algortmica

case 3:
case 5:
case 7:
case 8:
case 10:
case 12: NroDiasMes = 31; break;
case 4:
case 6:
case 9:
case 11: NroDiasMes = 30; break;
case 2:
if (Anio % 4 == 0)
{
NroDiasMes = 29;
}
else NroDiasMes = 28; break;

7.hacer un programa para saber si una palabra es capicua o no .


Una palabra es capicua cuando se lee de izquierda a derecha y derecha a izquierda la
pronunciacion es igual ejemplo : lol ,
static void Main(string[] args)
{
Console.WriteLine("Digite la palabra");
string palabra = Console.ReadLine();
string invertida = invertir(palabra);
if (palabra.Equals(invertida))
Console.WriteLine("La palabra es Capica");
else
Console.WriteLine("La palabra NO es Capica");
Console.Read();
}
static string invertir(string cadena)
{
string invertido = "";
for (int i = cadena.Length - 1; i >= 0; i--)
invertido = invertido + cadena.Substring(i, 1);
return invertido;
}

8.hacer un programa modular para convertir de base 10 a:


base 2 , base 8 , base 16
static void Main(string[] args)
{
int numero;
string cadena, cadena8, cadena16;
Console.Write("Ingresa Numero:");
numero = int.Parse(Console.ReadLine());
cadena = CambioBase(numero, 2);
cadena8 = CambioBase(numero, 8);
cadena16 = CambioBase(numero, 16);
Console.WriteLine("\n El nmero {0} en Base 2 es: {1}", numero, cadena);
Console.WriteLine("\n El nmero {0} en Base 8 es: {1}", numero, cadena8);
Console.WriteLine("\n El nmero {0} en Base 16 es: {1}", numero, cadena16);

Console.Read();
}
static String CambioBase(int numero, int Base)
{

Lenguaje de Programacin

179

Carlos Rodrguez Torvisco Algortmica

int numero2;
int digito;
string Cadena = string.Empty;
string Ncadena = string.Empty;
numero2 = numero;
while (numero2 > 0)
{
digito = numero2 % Base;
if (digito >= 10)
{
switch (digito)
{
case 10: Cadena = Cadena + Convert.ToString("A");
break;
case 11: Cadena = Cadena + Convert.ToString("B");
break;
case 12: Cadena = Cadena + Convert.ToString("C");
break;
case 13: Cadena = Cadena + Convert.ToString("D");
break;
case 14: Cadena = Cadena + Convert.ToString("E");
break;
case 15: Cadena = Cadena + Convert.ToString("F");
break;
}
}
else
{
Cadena = Cadena + Convert.ToString(numero2 % Base);
}
numero2 = numero2 / Base;
}
Cadena.ToCharArray();
for (int i = Cadena.Length - 1; i >= 0; i--)
{
Ncadena += Cadena[i];
}
return Ncadena;

9.hacer un programa modular para Calcular la suma de la serie fibonacci s=1+1+2+3+5+8+..


static void Main(string[] args)
{
int n, y;
Console.WriteLine("Ingresa n:");
n = int.Parse(Console.ReadLine());
y = Suma(n);

Console.WriteLine("La Suma de los {0} primeros numeros es :{1}", n, y);

Console.ReadKey();

}
static int Suma(int cantidad)
{
int f1, f2, f3 = 0, i;
if (cantidad == 1)
f3 = 1;
else if (cantidad == 2)
f3 = 2;
else
{
f1 = 1;

180

Lenguaje de Programacin
f2 = 2;
i = 2;
while (i
{
f3 =
f1 =
f2 =
i++;
}

Carlos Rodrguez Torvisco Algortmica

< cantidad)
f1 + f2;
f2;
f3;

}
return f3;

10.Hacer un Programa Modular para saber si 2 numeros son primos gemelos.


static void Main(string[] args)
{
int p, q;
//tomamos la variable "p" y haremos que tome los valores
//sucesivos:1,2,3,4,5,6...,empezando por 1.
Console.WriteLine("Ingrese Numero 1:");
p = int.Parse(Console.ReadLine());
Console.WriteLine("Ingrese Numero 2:");
q = int.Parse(Console.ReadLine());
if (q - p == 2 || p - q == 2)
{
if (es_primo(p) != 1 && es_primo(q) != 1)
{
Console.Write("si son primos gemelos");
}
else
Console.Write("no son primos gemelos");
}
else
Console.Write("no son primos gemelos");
Console.Read();
}
static int es_primo(int n)
{
int primo;//almacena 0 si el numero es primo, 1 en caso contrario
int i;//almacena los numeros de 2 a "n"
primo = 0;
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
primo = 1;

}
}
return primo;//retornamos o devolvemos el resultado

11.Hacer un Programa Modular para Ordenar 4 Nmeros.


public
public
public
public
static
{

static int Numero1


static int Numero2
static int Numero3
static int Numero4
void Main(string[]

= 0;
= 0;
= 0;
= 0;
args)

Lenguaje de Programacin
do
{

181

Carlos Rodrguez Torvisco Algortmica

Console.Clear();
Console.Write("Ingrese Numero1: ");
Numero1 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero2: ");
Numero2 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero3: ");
Numero3 = int.Parse(Console.ReadLine());
Console.Write("Ingrese Numero4: ");
Numero4 = int.Parse(Console.ReadLine());

Ordenar2Numeros(ref Numero1, ref Numero2);


Ordenar2Numeros(ref Numero1, ref Numero3);
Ordenar2Numeros(ref Numero1, ref Numero4);
Ordenar2Numeros(ref Numero2, ref Numero3);
Ordenar2Numeros(ref Numero2, ref Numero4);
Ordenar2Numeros(ref Numero3, ref Numero4);
Console.WriteLine("Los Numero Ordenados son: {0}, {1}, {2} ,
{3}", Numero1, Numero2, Numero3, Numero4);
Console.Write("\nDESEAS CONTINUAR (s/n):");
} while (Console.ReadKey().Key != ConsoleKey.N);
System.Environment.Exit(0);
Console.ReadKey();

}
static void Ordenar2Numeros(ref int N1, ref int N2)
{
int Temp;
if (N1 > N2)
{
Temp = N2;
N2 = N1;
N1 = Temp;
}
}

12.hacer un programa modular para invertir un numero.


static void Main(string[] args)
{
int n;
int num;
Console.WriteLine("Ingrese Nmero:");
n = int.Parse(Console.ReadLine());
num = cambio(n);
Console.WriteLine("El Numero Invertido es : {0}", num);
Console.ReadKey();
}
static int cambio(int numero)
{
int d, ni, cambioo;
ni = 0;
while (numero != 0)
{
d = numero % 10;
ni = ni * 10 + d;
numero = numero / 10;
}
cambioo = ni;
return cambioo;
}

Lenguaje de Programacin

182

Carlos Rodrguez Torvisco Algortmica

13.hacer un programa modular para hacer una minicalculadora.


static void Main(string[] args)
{
float primero; //el primer numero
float segundo; //el segundo numero
string operacion; //operacion a realizar
Console.Title = "Mini-Calculadora";//damos formato
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.Blue;
Console.Clear();
Console.SetCursorPosition(3, 2);
Console.WriteLine("Introduzca el primer nmero:");
Console.SetCursorPosition(60, 2);
primero = float.Parse(Console.ReadLine());
Console.SetCursorPosition(3, 3);
Console.WriteLine("Introduzca operacin a realizar:");
Console.SetCursorPosition(59, 3);
operacion = Console.ReadLine();
Console.SetCursorPosition(3, 4); //pedimos el segunos nmero
Console.WriteLine("Introduzca el segundo nmero:");
Console.SetCursorPosition(60, 4);
segundo = float.Parse(Console.ReadLine());
Console.SetCursorPosition(57, 5);
Console.WriteLine("--------");
Console.SetCursorPosition(3, 6);
Console.WriteLine("El resultado es :");
Console.SetCursorPosition(60, 6);
Console.WriteLine(calcular(primero, segundo, operacion));
Console.ReadKey();
}
static string calcular(float primero, float segundo, string operacion)
{
float temp;
switch (operacion)
{
case "+": temp = primero + segundo;
return temp.ToString();
case "-": temp = primero - segundo;
return temp.ToString();
case "*": temp = primero * segundo;
return temp.ToString();
case "/": temp = primero / segundo;
return temp.ToString();
}
return "-1";
}

14.hacer un programa modular que nos muestre los primeros n numeros primos gemelos.
static void Main(string[] args)
{
int n;
int p, q, encontrados;
//tomamos la variable "p" y haremos que tome los valores
//sucesivos:1,2,3,4,5,6...,empezando por 1.

Lenguaje de Programacin

183

Carlos Rodrguez Torvisco Algortmica

p = 1;
encontrados = 0;
Console.WriteLine("Ingrese N:");
n = int.Parse(Console.ReadLine());
while (encontrados < n)
{
q = p + 2;
if (es_primo(p) != 1 && es_primo(q) != 1)
{
Console.WriteLine("({0},{1})", p, q);
encontrados++;
}
p++;
}
Console.Read();

}
static int es_primo(int n)
{
int primo;//almacena 0 si el numero es primo, 1 en caso contrario
int i;//almacena los numeros de 2 a "n"
primo = 0;
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
primo = 1;

}
}
return primo;//retornamos o devolvemos el resultado

15.hacer un programa modular para calcular el maximo comun divisor de N numeros.


static void Main(string[] args)
{
//declarmaos nuestras variables
int N, n1, n2, n, c = 2, resto, resto1 = 0, choclo;
string Cadena = string.Empty;
do
{
Console.Clear();
Console.Write("Ingrese Cantidad de Datos:");
N = int.Parse(Console.ReadLine());
} while (N < 2);
Console.Write("Ingresa Numero 1:");
n1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa Numero 2:");
n2 = int.Parse(Console.ReadLine());
resto = CalcularMaximo(n1, n2);
if (N >= 3)
{
while (c != N)
{
c++;
Console.Write("Ingresa Numero {0}:", c);
n = int.Parse(Console.ReadLine());
resto1 = CalcularMaximo(resto, n);
resto = resto1;
}

Lenguaje de Programacin

184

Carlos Rodrguez Torvisco Algortmica

Console.WriteLine("El Maximo Comn Divisor es :" + resto1);


}
else
Console.WriteLine("El Maximo Comn Divisor es :" + resto);
Console.Read();

}
static int CalcularMaximo(int a, int b)
{
int resto, mcd;
resto = a % b;
while (resto != 0)
{
a = b;
b = resto;
resto = a % b;
}
mcd = b;
return mcd;
}

16.Hacer un Programa Modualr para calcular el Ordinal de una Fecha.


static int bisiesto(int ao)
{
if ((ao % 4 == 0) && (ao % 100 != 0) || (ao % 400 == 0))
return 1;
else
return 0;
}
static int diasdemes(int mes, int a)
{
int Nrodias = 0;
switch (mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: Nrodias = 31; break;
case 2: if (bisiesto(a) == 1)
Nrodias = 29;
else
Nrodias = 28;
break;
case 4:
case 6:
case 9:
case 11: Nrodias = 30; break;
}
return Nrodias;

}
static int fechacorrecta(int d, int m, int a)
{
int pepe = 0;
if (a > 0 && m >= 1 && m <= 12)
{
if (d >= 1 && d <= diasdemes(m, a))

Lenguaje de Programacin

185

Carlos Rodrguez Torvisco Algortmica

pepe = 1;
else
pepe = 2;

}
return pepe;

}
static int diadanio(int d, int m, int a)
{
int dias;
int cm;
dias = 0;
for (cm = 1; cm <= m - 1; cm++)
dias += diasdemes(cm, a);
dias += d;
return dias;
}
static void Mostras_ordinal(int n)
{
int u, d, c;
u = n % 10;
n = n / 10;
d = n % 10;
c = n / 10;
switch (c)
{
case 3: Console.Write("tricentsimo "); break;
case 2: Console.Write("bicentsimo "); break;
case 1: Console.Write("centsimo "); break;
}
switch (d)
{
case 9: Console.Write("nonagsimo "); break;
case 8: Console.Write("octagsimo "); break;
case 7: Console.Write("septuagsimo "); break;
case 6: Console.Write("sexagsimo "); break;
case 5: Console.Write("quicuagsimo "); break;
case 4: Console.Write("cuadragsimo "); break;
case 3: Console.Write("trigsimo "); break;
case 2: Console.Write("vigsimo "); break;
case 1: Console.Write("dcimo "); break;
}
switch (u)
{
case 9: Console.Write("noveno"); break;
case 8: Console.Write("octavo "); break;
case 7: Console.Write("septimo"); break;
case 6: Console.Write("sexto "); break;
case 5: Console.Write("quinto "); break;
case 4: Console.Write("cuarto "); break;
case 3: Console.Write("terer "); break;
case 2: Console.Write("segundo "); break;
case 1: Console.Write("primer "); break;
}
Console.WriteLine("da del ao \n\n");

}
static void Main(string[] args)
{
//calculo del dia del ao que hace una determinada fecha
int dia, mes, anio;

Lenguaje de Programacin

186

Carlos Rodrguez Torvisco Algortmica

Console.WriteLine("Ingresa dia:");
dia = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa mes:");
mes = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa ao:");
anio = int.Parse(Console.ReadLine());
if (fechacorrecta(dia, mes, anio) == 1)
Mostras_ordinal(diadanio(dia, mes, anio));
else
Console.WriteLine("Fecha Incorrecta\n\n");
Console.Read();

INTRODUCCION A ARREGLOS
Un arreglo es una estructura de dato que tiene la siguiente caractersticas.
1.Es una coleccin finita de n elementos homogneos almacenados en posiciones contiguas
de memoria.
2.Es identificado con un nombre unico, que representa a todos los elementos, y asu vez cada
elemento se identifica mediante el nombre la estructura y su subindice.
Esto implica que los arreglos son estrucutras de datos que utilizan una celda para cada valor y
que todos los valores estn en memoria a la vez.Muchas aplicaciones requieres de este tipo de
organizaciones de datos, asi: Vectores, polinomios, matrices,tablas,procesos estadisticos,etc.
Los arreglos pueden ser organizados con un solo subindice en forma de
vector(unidimensionales), con dos subindices en forma de matriz(bidimensionales), con tres
subindices(tridimensionales), etc.
C# utiliza corchetes [ ] para definicin de arrays
string[] telefonos; //Definicion de un Arreglo de strings
telefonos = new string[3]; //De 3 elementos
telefonos[0] = 1245; //Seteo del 1er elemento del arreglo
//Definicion y asignacion de una vez
telefonos = new string[] {1,2,3};

EJERCICIOS RESUELTOS
1.se tiene la relacin de N notas. Escribir un programa que calcule el promedio y determine
cuntas notas son mayores al promedio.
Entrada de datos
N=5
Notas=17,11,12,16,14

Lenguaje de Programacin

187

Carlos Rodrguez Torvisco Algortmica

Salida de Datos
Promedio=14
Nro Nota Mayores=2

static void Main(string[] args)


{
//declaramos nuestro arreglo y le damos un tamao
int[] notas;
notas = new int[50];//en este caso le damos un tamao de 50
int N,proemdio,NroNotasMayores=0,suma=0;
//ingresamos cantidad de notas
Console.Write("Ingresa N:");
N = int.Parse(Console.ReadLine());
//usamos un bucle para ingresar es cantidad de notas
for (int i = 1; i <= N; i++)
{
Console.Write("Ingrese Nota {0}:",i);
notas[i] = int.Parse(Console.ReadLine());
suma += notas[i];
}
//calculamos el promedio
proemdio = suma / N;
//ahora calculamos cuantas notas son mayores al promedio
//y hacemos uso de otro bucle
for (int i = 1; i <= N; i++)
{
if (notas[i] > proemdio)
NroNotasMayores++;
}
//al final mostramos el promedio y la cantidad
//de notas que son mayores
Console.WriteLine("El Promedio es :{0}",proemdio);
Console.WriteLine("Las Notas Mayores que el Promedio son:{0}",NroNotasMayores);

Console.ReadLine();
}

2.Hacer un programa que:


a) Cree un array unidimensional de nombre vector y cinco elementos, siendo sus
componentes de tipo numerico entero.
b)Asigne a cada elemento o componente del array el valor cero.
c)Calcule el tamao (en bytes) que dicho array ocupa en memoria.Mostrando el resultado
obtendio en pantalla.
static void Main(string[] args)
{
//declaramos nuestro arreglo y le damos un tamao
int i;
int[] numeros;
numeros = new int[5];//el tamao del vector es de 5
//a los primeros 5 numeros le damos el valor de 0
for (i = 0; i < 5; i++)
numeros[i] = 0;
//mostramso los numeros con su dicho valor

Lenguaje de Programacin

188

Carlos Rodrguez Torvisco Algortmica

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


Console.Write("{0}", numeros[i]);
//mostramos el espacio que una en byes
Console.Write("\n-el tamao del array es de {0} bytes.\n", sizeof(int)*5);

Console.Read();
}

2.Hacer un programa que:


a)cree un array unidimensional de 20 elementos de tipo nmerico entero y nombre pares.
b) Cargue el array con los 20 primeros numeros pares.
c)muestre el contenido del array por pantalla.
Salida de Resultados
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
static void Main(string[] args)
{
//declaramos nuestro arreglo y le damos un tamao
int[] pares;
pares = new int[20];//tamao del vector es de 20
int i, p=0;
//calculamos los 20 primeros pars
for(i=0;i<20;i++)
{
pares[i] = p+=2;
}
//mostramos los numeros pares almacenados en nuestro array
for (i = 0; i < 20; i++)
Console.Write(" {0}",pares[i]);
Console.Read();
}

3.crear un array de 20 numeros enteros y que contabilize el numero de valores


positivos,negativos y ceros almacenados en el proceso de carga y finalmente mostrarlo por
pantalla.
Entrada de Datos
2 6 13 7 50 4 0 0 11 3 0 8 0 0 0 45 2 2 0 0
Salida de Resultados
Hay 10 nmeros positivos, 2 negativos y 8 ceros
static void Main(string[] args)
{
int[] numeros;
numeros = new int[20];
int i;
int pos, neg, cero;
//ingresamos los 20 numeros para llenar el arreglo
for (i = 0; i < 20; i++)
{
Console.Write("Ingrese los datos para el arreglo : ");
numeros[i] = int.Parse(Console.ReadLine());

Lenguaje de Programacin

189

Carlos Rodrguez Torvisco Algortmica

}
//inicializamos los contadores
pos = 0;
neg = 0;
cero = 0;
//calculamos cuantos son neutros,positivos y negativos
for (i = 0; i < 20; i++)
{
if (numeros[i] < 0)
neg++;
else if (numeros[i] > 0)
pos++;
else
cero++;
}
//finalmente mostrar todos los resultados por pantalla
Console.Write("\nHay {0} nmeros positivos, {1} negativos y {2} ceros", pos, neg,
cero);

Console.ReadKey();
}
4.Cree un array de 15 elementos de tipo numerico entero y halle la suma de los primeros N
elementos almacenados en el array finalmente muestre el resultado obtendio, as como el
contenido del array en pantalla.

static void Main(string[] args)


{
int[] vector;
vector = new int[15];
int i, suma = 0, num;
Console.Write("-Introduce los valors que cargan la tabla.\n");
for (i = 0; i < 4; i++)
vector[i] = int.Parse(Console.ReadLine());
Console.Write("Cuntos valores quieres sumar?\n");
num = int.Parse(Console.ReadLine());
for (i = 0; i < num; i++)
suma += vector[i];
Console.Write("-El resultado de sumar los {0} primeros numeros es :
{1}\n", num, suma);
Console.Write("-Los elementos del vector, son :");
for (i = 0; i < 4; i++)
{
Console.Write("{0}", vector[i]);
}
Console.Read();
}

Lenguaje de Programacin

190

Carlos Rodrguez Torvisco Algortmica

5. Cree un array unidimensional de 20 valores de tipo nmerico y mostar por pantalla todos
aquellos elementos mayores de 30 junto con la posicin que ocupan en la tabla.En caso de
no existir ninguno.se mostrara el siguiente mensaje:no hay nmeros mayores que 30.

static void Main(string[] args)


{
int[] array;
array = new int[20];
int i;
int sw = 0;
Console.Write("-Introduce los valors que cargan la tabla.\n");
for (i = 0; i < 20; i++)
{
array[i] = int.Parse(Console.ReadLine());
}
Console.Write("-Los elementos mayores que 30 son: \n");
for (i = 0; i < 15; i++)
{
if (array[i] > 30)
{
sw = 1;
Console.Write("Array[{0}]={1}\n", i, array[i]);
}
}
if (sw == 0)
Console.Write("No hay nmeros mayores que 30\n");
Console.Read();
}

5.Cree un array de nombre notas para almacenar las calificaciones correspondientes a


diez asignaturas y almacenarlas en el array notas de forma consecutiva.Calcule e imprima
su nota media.

Lenguaje de Programacin

191

Carlos Rodrguez Torvisco Algortmica

static void Main(string[] args)


{
double[] notas;
notas = new double[10];
int i;
double suma, media;
for (i = 0; i < 10; i++)
{
Console.Write("- Nota de la asignatura {0} : ", i + 1);
notas[i] = double.Parse(Console.ReadLine());
}
suma = 0;
for (i = 0; i < 10; i++)
{
suma = suma + notas[i];
}
media = suma / 10;
Console.Write("- Nota media de las 10 asignaturas : {0:F2}", media);
Console.ReadKey();
}

6.Lea un secuencia de 15 nmeros enteros, almacenndolos en un array de nombre


numeros.Escribir un programa que los visualice en el dispositivo estndar de salida en
orden inverso al de entrada.

Lenguaje de Programacin

192

Carlos Rodrguez Torvisco Algortmica

static void Main(string[] args)


{
int[] numeros;
numeros = new int[15];
int i;
//ingresamos los numeros
for(i=0;i<15;i++)
{
Console.Write("Ingresa Numero:");
numeros[i] = int.Parse(Console.ReadLine());
}
//mostrar los nmeros en forma invertida
Console.WriteLine("Forma Invertida del ingreso");
for (i = 14; i >= 0; i--)
{
Console.WriteLine("{0}",numeros[i]);
}
Console.ReadLine();
}

7.Leer una secuencia de 20 valores numericos enteros y los almacene en un array de


nombre numero, calcule cul es el valor maximo, asi como la posicin que ocupa en la
tabla y finalmente muestre el valor maximo encontrado junto con la posicion que ocupa en
el array. En caso de aparecer repetido el valor mximo se mostrar el que se ocupa la
posicin situada ms a la izquierda.

static void Main(string[] args)


{
int[] numero;
numero = new int[20];
int k, p;
int maximo;
for (k = 0; k < 10; k++)
{
Console.Write("- Valor de la componente [{0}] : ", k);
numero[k] = int.Parse(Console.ReadLine());
}
maximo = numero[0];
p = 0;
for (k = 1; k < 10; k++)
{
if (maximo < numero[k])
{
maximo = numero[k];
p = k;
}

Lenguaje de Programacin

193

Carlos Rodrguez Torvisco Algortmica

}
Console.Write(" \n el valor maximo es el numero {0}
encontrado en la posicion {1}\n", maximo, p);
Console.ReadKey();
}

También podría gustarte