P. 1
C# FUNDAMENTOS DE PROGRAMACION

C# FUNDAMENTOS DE PROGRAMACION

5.0

|Views: 44.769|Likes:

More info:

Published by: Carlos Rodriguez Torvisco on Feb 12, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/20/2015

pdf

text

original

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

1

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

2
El lenguaje C#

1.1.1. Introducción


Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje
de programación surgieron en 1998 , haciendo referencia a un lenguaje que
entonces llamaban COOL y que decían era muy similar a Java.
En junio de 2000, Microsoft despejó todas las dudas liberando la especificación de un
nuevo lenguaje llamado C#. A esto le siguió rápidamente la primera versión de
prueba del entorno de desarrollo estándar (SDK) .Net, que incluía un compilador de
C#. El nuevo lenguaje estaba diseñado 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 prácticamente
cualquier lenguaje. Entonces
la pregunta es, ¿porqué se eligió C# en lugar de cualquier otro lenguaje?.
La razón fundamental es que C# se diseñó para la plataforma .NET y es capaz de
utilizar todo su potencial. También es cierto que es un lenguaje "limpio" en el
sentido de que al no tener que
proporcionar compatibilidad hacia detrás se ha tenido más libertad en el diseño 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 más que un espacio en el
que se almacena una información, ya sean números, palabras o tu fecha de
nacimiento.
Los tipos de datos son especialmente importantes en C# porque es un lenguaje con
información de tipos. Esto significa que, en todas las operaciones, el compilador
comprueba los tipos para ver su
compatibilidad. Las operaciones no válidas no se compilan. De esta forma se evitan
muchos errores y se consigue una mayor fiabilidad

Tipos en C#
En C# los tipos básicos no son más que alias para tipos predefinidos en la librería
base de la plataforma
Mono/.NET . Así, el tipo entero int, no es más que una forma rápida de escribir
System.Int32 .
Los tipos del lenguaje C# son divididos en dos grandes categorías: tipos por valor y
tipos por referencia. Existe una tercera categoría de tipos, disponible solo cuando se
usa código no seguro: los punteros, que
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

3
se discutirán más 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 números 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 número y así se consigue que los enteros sin signo puedan
almacenar números el doble de grandes que los enteros con signo.
Probablemente el tipo más utilizado es el int, pués se utiliza para controlar matrices,
inidizar arreglos además de las operaciones normales con enteros. Además, se trata de
un entero de tamaño medio: más pequeño que long y ulong, pero más grande que byte,
sbyte, short y ushort.

El siguiente ejemplo muestra la declaración y uso de algunos tipos enteros
calculando el número de segundos en una hora, dia y en un año.
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 año: {0}", Anio);
}
}
De nuevo hemos usado el método 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 más de un argumento, se seguiría con {1}, y así sucesivamente.
Por ejemplo, las dos líneas que utilizan Console.WriteLine se pueden simplificar así:

Console.WriteLine("En un dia: {0}; en un año: {1}", Dia, Anio );


La clase Console, se describe más en detalle.

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

4
2.2.3. Tipos de coma flotante


Los tipos de coma flotante sirven para representar a números con parte fraccionaria.
La representación por supuesto puede no ser exacta, bien por errores de la
máquina, bien porque el número de decimales que se puede alojar es finito.


Existen dos clases de tipos de punto flotante, float y double. De los dos, el más usado es
double, pués es
el valor que devuelven la mayoría de las funciones matemáticas de la librería base.


El siguiente ejemplo calcula la raíz 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 precisión, 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, pués se perderán datos. Lo mismo ocurre con la mayoría 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 aritmética 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 cálculos monetarios.

El tipo bool
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

5
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 instrucción if solo puede estar gobernada por un valor bool, no como en
C/C++, que lo puede estar también 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 inclusión
del tipo bool en el lenguaje ayuda a la claridad del código y evita algunos errores muy comunes



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

6



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

7



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

8



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

9



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

10



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

11



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

12



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

13






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

14






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

15






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

16






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

17






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

18






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

19






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

20






Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

21





Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

22




Lengu

2.1
Una e
otra s
entra
En la


uaje de Prog
Es
Concept
estructura se
siguiendo un
ada y una sal
Figura se m
gramación
Est r u
to
ecuencial es
na secuencia
ida.
muestra el p
Pseu
Inic
Ac
Ac
Ac



Ac
Fin

u c t u
aquella en l
a única, sin
pseudocódigo
docódigo
cio
cción 1
cción 2
cción 3
.
.
.
ccion n

23
u r a Se
a que las ins
cambios de
o y el diagram

Carlos Rodr
Sec u e
strucciones e
e ruta. La es
ma de flujo d
ríguez Torvis
en c i a
están una a c
structura sec
de una estru
sco – Algorítm
a l
continuación
cuencial tien
uctura secue
mica
n de la
e una
ncial.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

24

PROBLEMAS RESUELTOS
1.‐Ecribir un algoritmo que determine la suma de dos números enteros.
Datos Resultado
Numero 1 Numero 2 Suma
5 8 13
9 5 14

1.1.‐Algoritmo
Inicio {calcular la suma de dos números}
{Ingresamos los números}
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 nùmero
Console.Write("ingrese el primer nùmero : ");
//leemos nuestro nùmero
numero1 = int.Parse(Console.ReadLine());
//introducimos el segundo nùmero
Console.Write("ingrese el segundo nùmero : ");
//leemos nuestro segundo nùmero
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 Resultado
base altura Area
4 5 10
9 5 22,5


Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

25

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 Resultado
Distancia en metros
4
5
9
20
Distancia en pies
13.09
16.362
29.45
65.45


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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

26



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 Resultado
consumo IGV TOTAL A PAGAR
524.25 99,61 623.86
45.00 8.55 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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

27
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 Resultado
Fecha de nacimiento Fecha actual Edad
1991 2008 17
1985 2008 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=fac‐fnac
{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 año que nacio :");
fnac = int.Parse(Console.ReadLine());
Console.Write("ingrese el año 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 cuánto dinero ganará despues en un mes si el
banco paga a razón de 2% mensual.

Datos Resultado
Capital
800
400
500
1050
Ganancia
16
8
10
21
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

28

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 Resultado
Numero de hombres Numero de mujeres Porcentaje de
hombres
Porcentaje de
mujeres
20 20 50% 50%
15 29 34% 66%

7.1.‐Algoritmo
Inicio {calcular el porcentaje de varones y el porcentaje de mujeres de un grupo de
Estudiantes}
{Ingresamos número de hombres}
Leer nh
{Ingresamos número 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

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

29
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 entregársele al
mismo.

Datos Resultado
(cambio a entregar) Precio del Producto Pago que Realiza el Cliente
50 70 20
20 25 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 Programación Carlos Rodríguez Torvisco – Algorítmica

30
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.
Datos Resultado(segundo anterior)
Hora Minuto segundo Hora Minuto Segundo
3 20 25 3 20 24
5 2 0 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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

31
Datos Resultado(después de 2 segundos)
Hora Minuto segundo Hora Minuto Segundo
3 20 25 3 20 27
5 2 59 5 3 1

10.1.‐Algoritmo
Inicio {la hora después 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‐ Diseñar un algoritmo que me permita ingresar un valor inicial y luego un valor final, para
luego Calcular el valor central de los números.
Datos Resultado
Valor Inicial Valor Final Valor Central
2 4 3
10 20 15

11.1.‐Algoritmo
Inicio {Calcular el Valor Medio}
Leer ValorInicial,ValorFinal
{Calculo del Valor Central}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

32
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.
Datos Resultado
Nombre Peso(Tonelada
s)
Longitud(Pies
)
Nombre Peso(Kilos
)
Longitud(Metro
s)
Rinoceronte 1 25 Rinoceronte 1000 7,6175
Choclosauri
o
2 59 Choclosauri
o
2000 17,97

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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

33
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 extensión de la estancia esta
especificada en acres. Construya un programa, tal que dado como dato la extensión del
campo en "acres", calcule e imprima la extensión del mismo en hectáreas
Datos Resultado
Extencion en Acres
200
100
500
450
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 Extensión del Campo en Acres: ");
extcam = float.Parse(Console.ReadLine());
extha = extcam * 4047 / 10000;
Console.WriteLine("La Extensión del Campo en Hectáreas es: " +
extha);
Console.ReadLine();
}
14.‐Construya un programa que calcule e imprima el número de segundos que hay en un
determinado número de días.
Datos Resultado
Cantidad de Dias
1
30
24
Total de Segundos
86400
2592000
2073600
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

34
15 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 Número de Días: ");
dias = int.Parse(Console.ReadLine());
seg = dias * 24 * 60 * 60;
Console.WriteLine(" ****En {0} Días 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 Resultado
Numero de Galones
4
3
2
15
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 Número de Galones Surtidos: ");
cons = float.Parse(Console.ReadLine());
total = cons * 3.785f * 1.025f;
Console.WriteLine("El Total es:" + total);
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

35
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 centésimas. La distancia que recorren,
por otra parte, se expresa en metros. Construya un programa que calcule la velocidad de los
participantes en kilómetros por hora de las diferentes competencias.
DAT0S RESULTADO
Minutos Segundos Centésimas de
Segundo
Distancia en
Metros
Distancia
Recorrida
Velocidad
(KM/H)
59 60 0 1000 1000 1
45 12 25 5000 5000 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("Centésimas 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 Resultado
Numero Numero Invertido
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

36
154
541
987
325
451
145
789
523

17.1.‐Algoritmo
Inicio {invertir un número de tres dígitos}
{Ingresamos número de tres dígitos}
Leer número
{Sepáranos el número en unidad, decena y centena}
Unidad=numero mod 10
Centena=numero div 100
Decena= (numero mod 100) div 10
{Invertir número}
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 Resultado
Numero
15
41
97
32
Suma de cifras
6
5
16
5

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

37
18.1.‐Algoritmo
Inicio {sumar los dígitos de un número de 2 cifras}
{Ingresamos número de dos dígitos}
Leer número
{Sepáranos el número en unidad y decena}
Unidad=numero mod 10
Decena= numero div 10
{Calculamos la suma de los dígitos}
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 Resultado
Numero
154
541
987
325
Ultima Cifra
4
1
7
5

19.1.‐Algoritmo
Inicio {calcular el último digito de un número cualquiera}
{Ingresamos un número}
Leer número
{Calculamos la última cifra}
Ultima_cifra=numero mod 10
Escribir Ultima_cifra
{Mostramos el resultado}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

38
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 para calcular el promedio de tres notas
ingresadas por teclado.
Datos Resultado
Nota 1 Nota 2 Nota 3 Promedio
20 20 20 20
15 12 18 15

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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

39
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
más un 10% extra por comisión 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

Resultado
Sueldo base Venta 1 Venta 2 Venta 3 Comisión Total a pagar
450 500 645 800 194.5 644.5
800 1005 2000 1540 454.5 1254.5

21.1.‐Algoritmo
Inicio {calcular la comisión 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 comisión}
Comisión=total_venta*0.10
{Calculamos el total a pagar}
tpag=sb+comision
{Mostramos el resultado}
Escribir comisión
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 : ");
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

40
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 Resultado
Total de compra
154
541
987
325
Total a pagar
130.9
459.85
838.95
276.25

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=tc‐d
{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);
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

41
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

Resultado
Calificación
1
Calificación
2
Calificación
3
Examen final Trabajo final Calificación
final
15 12 11 15 17 14.02
11 12 14 10 08 10.98

23.1.‐Algoritmo
Inicio {calcular la calificación 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 calificación 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 : ");
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

42
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 Resultado
numero
4
25
81
49
Raíz cuadrada
2
5
9
7

24.1.‐Algoritmo
Inicio {calcular la raíz cuadrada}
{Ingresamos un número cualquiera}
Leer a
{Calculamos la raíz cuadra de un número}
b=√o
{Mostramos la raíz 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 expresión correcta y mostrarla por pantalla.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

43
Datos Resultado
Hora Minuto segundo Hora
Correcta
Minuto
Correcto
Segundo
Correcto
3 118 195 5 1 15
5 98 154 6 40 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 número mínimo 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 céntimos).
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

44
Supongamos que el Monto Ingresado sea 4587.75
El cambio seria lo siguiente:
s/.200 s/.100 s/.50 s/.20 s/.10 5 soles 1 sol 0.50 0.10 0.01
22 1 1 1 1 1 2 1 2 5

Ejemplo codificado

26.1.‐Algoritmo
Inicio {cambio de cheque bancario}
{Ingresamos monto a cambiar}
Leer monto
monto =monto*100
{Calcular número mínimo de billetes de cada denominación}
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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

45
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 Programación Carlos Rodríguez Torvisco – Algorítmica

46
un algoritmo y su codificacion para determinar el tiempo promedio por vuelta de un
participante.
Datos Resultado
1 vuelta
Hora,minuto,seg‐
undo
2 vuelta
Hora,minuto,seg‐
undo
3 vuelta
Hora,minuto,seg‐
undo

Hora
promedio

Minuto
prom.

Segundo
promedio
8:31:25 11:34:11 14:12:48 11 26 8
3:3:5 5:2:56 8:43:11 5 36 24


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#)
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

47

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 programación I se tomaron dos exámenes parciales y un
examen práctica. El promedio final se calcula considerando que los exámenes parciales
tienes peso dos y la practica peso uno. Escribir un algoritmo y su codificación que calcule el
Promedio final.
Datos Resultado
Examen parcial 1 Examen parcial 2 Examen practica Promedio final
20 20 20 20
15 12 18 14.4
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

48

28.1.‐Algoritmo
Inicio {calcular el promedio}
{Ingresamos los dos exámenes 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.‐Diseñe un pseudocódigo y su codificación que halle el área y el perímetro de un
rectángulo.
Considere que: área=base x altura y perímetro = 2 * (base + altura)

Datos Resultado
base altura Área perímetro
10 5 50 30
15 29 435 88

29.1.‐Algoritmo
Inicio {calcular el área y el perímetro de un rectángulo}
{Ingresamos base y altura}
Leer bas, altura
{Calculamos el area}
Area=bas*altura
{Calculamos el perímetro}
Perímetro=2*(bas+altura)
{Mostramos el area y el perímetro}
Escribir area, perimetro
Fin
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

49

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.‐Diseñe un pseudocódigo y su codificación que lea la hora actual del día HH:MM:SS y
determine cuantas horas, minutos y segundos restan para culminar el día.

Datos Resultado(para que termine el día)
Hora Minuto segundo Hora Minuto Segundo
6 14 19 17 45 41
20 41 12 3 18 48

30.1.‐Algoritmo
Inicio {calcular la hora que falta para que acabe el día}
{Ingresamos hora, segundo, minuto}
Leer hor1, min1, seg1
{Calculo de la cantidad de segundos que restan para culminar el día}
segres=86400‐(hor1*3600+min1*60+seg)
{Descomposición 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 día}
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 Programación Carlos Rodríguez Torvisco – Algorítmica

50
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 día
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 día
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 codificación que
determine el monto correspondiente a cada hermano.


Datos Resultado
Monto Primer
hermano
Segundo
hermano
Tercer
hermano
5648 2824 1882.7 941.3
554788 277394 184929.3 92464.67

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=PrimerHermano‐SegundoHermano
{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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

51
//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 codificación para calcular el área y el volumen de un hexaedro.

Datos Resultado
Lado Área Volumen
5 150 125
2 24 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 Programación Carlos Rodríguez Torvisco – Algorítmica

52
33.‐Un coche se mueve, partiendo del reposo, con una aceleración constante de 8 m/s
2
.
Escribir el algoritmo y su codificación que calcule:
a) La velocidad instantánea al cabo de 5 segundos
b) la velocidad media durante los primeros 5 segundos del recorrido
Velocidad instantánea = velocidad inicial + aceleración * tiempo
Velocidad media = (velocidad inicial + velocidad final)/2

33.1.‐Algoritmo
Inicio {calcular velocidad media y velocidad instantánea al cabo de 5 segundos}
{Ingresamos velocidad inicial, aceleración y tiempo}
Leer velocidad0,aceleracion,tiempo
{Calculo de la velocidad media y la velocidad instantánea}
velocidad5=velocidad0+ (aceleración*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 Aceleración:");
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();
}
34‐Emusap 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 emisión 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 codificación que calcule el monto que debe pagar un
usuario.

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

53
Datos Resultado
Consumo(m
3
)
50
20
15
10
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 cúbicos}
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 tamaño en bytes de :
‐int
‐short
‐long
‐char
‐float
‐double
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

54
‐bool
35.1‐Codificacion(C#)

static void Main(string[] args)
{
Console.Write("El Tamaño de un int es :{0} bytes\n", sizeof(int));
Console.Write("El Tamaño de un short es :{0} bytes\n", sizeof(short));
Console.Write("El Tamaño de un long es :{0} bytes\n", sizeof(long));
Console.Write("El Tamaño de un char es :{0} bytes\n", sizeof(char));
Console.Write("El Tamaño de un float es :{0} bytes\n", sizeof(float));
Console.Write("El Tamaño de un double es :{0} bytes\n", sizeof(double));
Console.Write("El Tamaño de un bool es :{0} bytes\n", sizeof(bool));
Console.Read();
}

PROBLEMAS PROPUESTOS

1.‐Escribir un algoritmo y su codificación para que sume dos números complejos

2.‐Escribir un algoritmo y su codificación para que multiplique dos números complejos

3.‐La Universidad Tecnológica de los Andes ah recibido tres donaciones en soles, dólares y
marcos. La donación será repartida en tres rubros: 60% para la implementación de un centro
de estudios, 40% para un comedor de estudiantes y el resto para gastos administrativos.
Diseñe un algoritmo y su codificación que determine el monto en euros que le corresponde a
cada rubro. Considere que: 1 dólar=3.52 soles, 1 dólar=2.08 marcos, 1 dólar=1.07 euros.

4.‐En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y
centésimas de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo y su
codificación para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1
hora= 60 minutos, 1 minuto = 60 segundos, 1 segundo=100 centésimas de segundo, 1
kilometro=1000 metros.

5.‐ Diseñe un algoritmo y su codificación que determine la suma de las cifras de un número
entero positivo de 4 cifras.

6.‐Diseñe un algoritmo y su codificación 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 básico de S/250 más
el 12% del monto total vendido. Diseñe un algoritmo y su codificación que determine el
sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes.

8.‐En países de habla inglesa es común dar la estatura de una persona como la suma de una
cantidad entera de pies más una cantidad entera de pulgadas. Así, la estatura de una
persona podría ser 3’ 2’’ (3 pies 2 pulgadas).Diseñe un algoritmo y su codificación 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 Programación Carlos Rodríguez Torvisco – Algorítmica

55

9.‐Diseñe un algoritmo y su codificación 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.‐Diseñe un algoritmo y su codificación que intercambie las cifras de las unidades de dos
números naturales.

11.‐Diseñar un algoritmo y su codificación que lea dos valores reales y nos muestre los
resultados de sumar,restar,dividir y multiplicar dichos números.
12.‐Queremos conocer los datos estadísticos de una asignatura, por lo tanto, necesitamos un
algoritmo y su codificación que lea el número 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. Diseñar un algoritmo y su
codificación capaz de leer el número de unidades consumidas de cada alimento ordenado y
calcular la cuenta total.

Bocadillo de jamón (250 pts)
Bocadillo de queso (200 pts)
Papas Fritas (100 pts)
Refresco (175 pts)
Cerveza (125 pts)

14.‐El coste de un automóvil nuevo para un comprador es la suma total del coste del
vehículo, 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 diseñar un algoritmo y su codificación para leer el coste
total del automóvil e imprimir el coste para el consumidor.

15.‐ Queremos realizar un pequeño programa para introducirlo en el ordenador de a bordo
de nuestro coche y que nos informe del consumo medio del coche. Diseña 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 kilómetros que consume nuestro coche.
16.‐Dada las horas trabajadas de una persona y el valor por hora. Diseñe un algoritmo y su
codificación para calcular su salario e imprimirlo.

17.‐Diseñe un algoritmo y su codificación 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 Programación Carlos Rodríguez Torvisco – Algorítmica

56
18.‐Diseñar un algoritmo y su codificación correspondiente a un programa que calcule el
área y el perímetro de un triángulo rectángulo dada la base y la altura.

19.‐Diseñar un algoritmo y su codificación correspondiente a un programa que exprese en
horas, minutos y segundos un tiempo expresado en segundos.
20.‐ Diseñar el algoritmo y su codificación que pida el total de kilómetros 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.‐Diseñe un algoritmo y su codificación que al introducir una cantidad de dinero expresado
en euros nos indique cuantos billetes y monedas se puede tener como mínimo.

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 número 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 presión, el volumen y la temperatura de una masa de aire se relacionan por la fórmula
Masa= (presión*volumen)/ (0.37*(temperatura+460))

25.‐ Calcula el numero de pulsaciones que una persona debe tener por cada 10 segundos de
ejercicio, si la fórmula 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 números enteros A y B, y obtenga los valores A div B,
A mod B.

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

57
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 expresión trigonométrica para un valor
angular de 90º
(sen x * cos x)/ (tan x)

33.‐ Escribir un programa que calcule el área de un rectángulo a partir de sus coordenadas.



Est r u c t u r a s d e c o n t r o l

Instrucción if


Esta sentencia sirve para ejecutar unas instrucciones en caso de que se cumpla
determinada condición. La forma completa de la instrucción if es




Pseucododigo


Si(condición ) entonces

Instrucción 1

Instrucción 2

…………..


sino


Instrucción 1

Instrucción 2

…………..

Finsi





Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

58
PROBLEMAS RESUELTOS
1.‐Escribir un programa y su codificación para determinar el mayor de tres números.

Datos Resultado
Numero 1 Numero 2 Numero 3 Mayor
20 210 2220 2220
48 412 818 818


1.1.‐Algoritmo
Inicio {Calcular el mayor de tres números}
{Ingresamos los tres números}
Leer numero1,numero2,numero3
{Empezamos a Comparar los Tres Números}
Si(numero1>numero2) y (numero1>numero3) entonces
Mayor=numero1
Sino
Si(numero2>numero1) y (numero2>numero3) entonces
Mayor=numero2
Sino
Mayor=numero3
{Mostramos el número mayor}
Escribir mayor
Fin

1.2‐Codificacion(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 codificación que lea 2 números; si son iguales que los
multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

59


Datos Resultado
Numero 1 Numero 2 Condición Resultado
45 45 Numero1=Numero2 45*45=2025
23 12 Numero1>Numero2 23‐12=11

2.1.‐Algoritmo
Inicio {Calculo de 2 números: suma, resta y multiplicación}
{Ingresamos los dos números}
Leer numero1,numero2
{Empezamos a Comparar los 2 Números}
Si(numero1=numero2) entonces
Resultado=numero1*numero2
Sino
Si(numero1>numero2) entonces
Resultado=numero1‐numero2
Sino
Resultado=numero1+numero2
{Mostramos el número 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.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

60


Datos Resultado
Calificación 1 Calificación 2 Calificación 3 Mensaje
8 7 10 reprueba
14 16 10 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 almacén se hace un 20% de descuento a los clientes cuya compra supere los S/.1000
¿Diseñar un algoritmo y su codificación para que Cuál será la cantidad que pagará una
persona por su compra?
Datos Resultado
Compra
20000
2412
Total a Pagar
16000
1929.6
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

61
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 cálculo del total a pagar}
Tap=compra‐Descuento
{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 más de 40 horas se le paga
S/.16 por cada una de las primeras 40 horas y S/.20 por cada hora extra.


Datos Resultado
Horas Trabajadas
55
46
20
15
Salario Semanal
940
760
320
240
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

62

5.1.‐Algoritmo
Inicio {Calculo del Salario Semanal}
{Ingresamos Horas Trabajadas}
Leer ht
Si (ht>40) entonces
{Calculamos sus horas extras}
he=ht‐40
{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.‐Diseñar un algoritmo y su codificación que lea dos números y los imprima en forma
ascendente.

Datos Resultado
45 12 12,45
4 4 4,4

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

63
6.1.‐Algoritmo
Inicio {Ordenar dos números en forma ascendente}
{Ingresamos los numeros}
Leer numero1,numero2
Si (numero1<numero2) entonces
{Mostramos los números 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.‐Diseñar un algoritmo y su codificación que lea tres números y los imprima en forma
ascendente.

Datos Resultado
Numero 1 Numero 2 Numero 3 Mostrar
8 7 10 7,8,10
14 16 10 10,14,16

7.1.‐Algoritmo
Inicio {Ordenar 3 números en forma ascendente}
{Ingresamos los números}
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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

64
{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 números 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 número de sonidos emitidos por un grillo en un minuto, es una fracción de la
temperatura. Como resultado de esto, es posible determinar el nivel de la temperatura
haciendo uso de un grillo como termómetro.


Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

65

Datos(Numero de Sonidos) Resultado(Temperatura ºF)
30
48
47 ºF
52ºF

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 Número 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 expresión: 680 2P Q P
2 2 3
≤ − + En caso afirmativo
debe imprimir los valores P y Q.
Datos Resultado
P Q Exp Mensaje VALORES
50 20 120400<=680 No satisfacen ‐
3 9 90<=680 Si satisfacen P=3 Q=9

9.1.‐Algoritmo
Inicio {Calcular los Valores para P y Q}
{Ingresamos el valor para P y Q}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

66
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 expresión Matemática ");
}
else
{
Console.WriteLine("Los valores no satisfacen la expresión matemática");
}
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 Auxiliar Resultado
Sueldo Condicion Descuento Sueldo Actual
1500 1500<1000 12% 1680
900 90<1000 15% 1035

10.1.‐Algoritmo
Inicio {Calcular Sueldo Nuevo de un Trabajador}
{Ingresamos Sueldo}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

67
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 según 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 Auxiliar Resultado
Sueldo Condicion Descuento Sueldo Actual
1500 1000>1500<=1500 21% 1815
900 900<=1000 25% 1125
1700 1700>1500 18% 2006

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}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

68
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 números enteros, si un
número es divisor de otro.



Datos Resultado
Numero 1 Numero2 Mensaje
2 4 Si es divisor
8 2 Si es divisor
5 9 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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

69
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 Número:");
n1 = int.Parse(Console.ReadLine());
Console.Write("Ingresa el Segundo Número:");
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 números 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 además
que si el número 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 reducción del 30%. El precio por km es de
s/. 0.17.


Datos Resultado
Distancia(viaje de ida) Tiempo Costo del Billete
400 4 136
500 8 119

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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

70
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 números enteros,
determine si los mismos están en orden creciente.

Datos Resultado
Numero 1 Numero 2 Numero 3 Mensaje
8 7 10 No están en orden creciente
1 2 3 Están en orden creciente



14.1.‐Algoritmo
Inicio {Calcular si 3 numeros están en orden creciente o no}
{Ingresamos los tres numeros}
Leer a,b,c,
Si (a<b) entonces
Si (b<c) entonces
Escribir “los números están en orden creciente”
Sino
Escribir “los números no están en orden creciente”
Finsi
Sino
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

71
Escribir “los números no están 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 números estàn en orden creciente");
}
else
{
Console.Write("Los números no estàn en orden creciente");
}
}
else
{
Console.Write("Los números no estàn 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:
0) (A
A
1
A
N
N
≠ =


A=5 , N=4 5
‐4
= 0,0016 , 1/5
4
=1/625=0,0016 entonces 0,0016 = 0,0016 “se
comprueba la igualdad”

15.1.‐Algoritmo
Inicio {Comprobar la igualdad d de la expresión}
{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”
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

72
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
siguiente expresión:
N
N
N
B
A
B
A
= |
.
|

\
|

16.1.‐Algoritmo
Inicio {Comprobar la igualdad d de la expresión}
{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 Programación Carlos Rodríguez Torvisco – Algorítmica

73
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 efectúan un descuento a los clientes dependiendo del monto de la
compra. El descuento se efectúa 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 Programación Carlos Rodríguez Torvisco – Algorítmica

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

Datos Auxiliar Resultado
Compra Condicion Descuento Monto a Pagar
7500 7000<7500<=15000 18% 5625
900 500<900<=1000 5% 855
1700 1000<1700<=7000 11% 1275
400 400<500 0 400

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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

75
{
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
función:

¦
¦
)
¦
¦
`
¹
¦
¦
¹
¦
¦
´
¦
≤ < − +
≤ < −
≤ < +
=
deY valor otro cualquier para 0
64 Y si33 1 Y Y
33 Y si11 10 Y
11 Y si0 36 Y * 3
X
2 3
2

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 Programación Carlos Rodríguez Torvisco – Algorítmica

76
19.‐ En la Ciudad de Abancay, el impuesto que se debe pagar por los artículos 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%. Diseñe un programa que lea el
costo basico de un articulo y calcule su precio total(precio total = precio básico + impuesto).

Datos Resultado
Precio Basico Monto a Pagar
25 26,5
15 15
550 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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

77
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
Natación >85
Tenis 70<temp<=85
Golf 32<temp<=70
Esquí 10<temp<=32
Marcha <=10


Datos Resultado
Temperatura(ºF) Mensaje
87 NATACION
75 TENIS
50 GOLF
27 ESQUÍ
5 MARCHA


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”
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

78
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 Natación");
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), según la expresión:
¦
¦
¦
)
¦
¦
¦
`
¹
¦
¦
¦
¹
¦
¦
¦
´
¦
= +
=
=
=
=
3
2
1
4) mod (X si 5 X
4) mod (X si X
4) (Xmod si
6
x
0 4) mod (X si X
F(x)
3
2

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 √1u=3,1622
X=15= 15 mod 4 == 3 entonces 15*15*15+5=3380
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

79

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=√x
Sino
Si (res=3) entonces
Resu=x*x*x+5
Finsi
Finsi
Finsi
Finsi
{Mostrar el total de calorías}
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
calorías consume su cuerpo durante todo el tiempo que realice una misma actividad.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

80
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 calorías por minuto y
estando sentado en reposo consume 1.66 calorías por minuto.

Datos Resultado
Estado Tiempo Cantidad Calorías
Dormido 30 32,4
Sentado 21 34.86

22.1.‐Algoritmo
Inicio {Calcular el total de calorías de un persona enferma}
{Ingresamos estado y tiempo}
Leer estado,tiempo
Si (estado=”dormido”) entonces
{Calculamos el total de calorías en estado dormido}
cg=1.08*tiempo
Sino
{Calculamos el total de calorías en estado sentado}
cg=1.66*tiempo
Finsi
{Mostrar el total de calorías}
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 calorías en estado sentado
cg = 1.66 * tiempo;
}
//mostramos el total de calorías
Console.Write("Total de Calorías es :{0}",cg);
Console.Read();
}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

81
23.‐Hacer un algoritmo que imprima el nombre de un artículo, 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_original‐precio_original*0.01
Sino
{Calculamos el precio con descuento del caso contrario}
Prec_desc=precio_original‐precio_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)
{
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

82
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 codificación que calcule el total a pagar por la compra de
camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre el total de la
compra y si compra menos de tres camisas un descuento del 10%.

Datos Resultado
Numero de camisas Precio Total a pagar
2 30 54
4 21 67,2

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=totalcom‐totcom*0.20
Sino
{Calculamos el total total a pagar del caso contrario }
totpag=totalcom‐totcom*0.10
Finsi
{Mostrar el total a pagar por la compra de camisas}
Escribir totpag
Fin
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

83
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 fábrica
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 crédito 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 crédito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a
crédito.




25.1.‐Algoritmo
Inicio
{Ingresamos numero piezas y el costo por pieza}
Leer numero_pieza, costo_pieza
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

84
{Calculamos el total de compra}
Totalcom=numero_pieza*costo_pieza
Si (totalcompra>500000) entonces
{Calculamos el el préstamo , crédito, interés y la cantidad invertida }
Cantidadinvertida=totalcompra*0.55
Préstamo=totalcompra*0.30
Crédito=totalcomp*0.15
Sino
{Calculamos el el préstamo , crédito, interés y la cantidad invertida del caso contrario }
Cantidadinvertida=totalcompra*0.70
Crédito=totalcomp*0.15
Préstamo=0
Finsi
{Calculamos el concepto de interes}
Interés=crédito*0.20
{mostramos préstamo,cantidad invertida, crédito, interés}
Escribir cantidadinvertida, préstamo, crédito, 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();
}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

85

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 Resultado
Horas trabajadas Pago por Hora Total a pagar
29 30 870
50 20 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=horatrabajadas‐40
Si (horaextras<=8) entonces
pagoextra=horaextras*precioporhora*2
Sino
pagoextradelextra=8*precioporhora*2
pagoextra=((horaextras‐8)*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 Programación Carlos Rodríguez Torvisco – Algorítmica

86
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 cúbicos cobra 0.5 nuevos soles y para el consumo por encima de
40 metros cúbicos cobra 0.8 nuevos soles por metro cubico. Escribir un algoritmo y su
codificación que permita calcular el monto total a cobrar por un determinado consumo
incluyendo el impuesto general a las ventas de 18%.

Datos consumo Resultado‐Monto a cobrar
30 30*0.5*1.18 17.7
40 40*0.5*1.18 23.6
46 (40*0.5+ (46‐40)*0.8)*1.18 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+(consumo‐40)*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());
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

87
//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 exámenes parciales. Al
final del semestre les informa a sus alumnos que pueden calcular su promedio final
eliminando la nota más baja y promediando las tres restantes.

Datos Resultado

Nota1 Nota2 Nota3 Nota4 Nota Menor Promedio
12 15 14 13 12 14
10 16 07 13 07 13
03 10 05 06 03 07
09 02 05 04 02 06

28.1.‐Algoritmo
Inicio {Promediar las tres notas más altas}
{Ingresar Notas}
Leer nota1, nota2, nota3, nota4
{Calcular el promedio de tres notas más 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+nota3‐Notamenor)/3
{Escribir el promedio}
Escribir Promedio
Fin
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

88
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 más 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 codificación que lea una fecha (Día, mes y año) y determine la
fecha correspondiente al día siguiente.



Dato Dato
Fecha Inicial Fecha Final
Día Mes Año Día Mes Año
15 01 94 mas un día 16 01 94
31 01 94 mas un día 01 02 94
28 02 93 mas un día 01 03 93
28 02 96 mas un día 29 02 96
30 03 94 mas un día 31 03 94
30 04 98 mas un día 01 05 98
31 12 2008 mas un día 01 01 2009





Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

89

29.1.‐Algoritmo
Inicio {Determinar la fecha del día siguiente}
{Ingresar Fecha}
Leer DD1,MM1,AA1
{Determinar fecha del día 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
{año bisiesto}
Nrodiasmes=29
Sino
{año no bisiesto}
Nrodiasmes=28
Finsi
Finsi
{Agregar a fecha un día}
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 día siguiente}
Escribir DD2
Escribir MM2
Escribir AA2
Fin
29.2.‐Codificacion(C#)

static void Main(string[] args)
{
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

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("Año:");
AA1 = int.Parse(Console.ReadLine());
//determinar fecha del dia siguiente
//determinar número de dias del mes
if ((MM1 == 1) || (MM1 == 3) || (MM1 == 5) || (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 día
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 día siguiente
Console.Write("{0}/{1}/{2}",DD2,MM2,AA2);
Console.Read();
}

30.‐Escribir un algoritmo que encuentre la solución de una ecuación de segundo grado:
AX
2
+BX+C=0
Utilizaremos el método de baskara

-b ¬√b
2
- 4oc
2o

Ejemplo:
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

91
Dada la siguiente ecuación: X
2
+5X+6
Reemplazando se tiene:

X1=
-5+.5
2
-4(1)(6)
2(1)
= ‐2

X2 =
-5-.5
2
-4(1)(6)
2(1)
= ‐3

Existen casos de ecuaciones de segundo grado que no se puede resolver completamente con
la ecuación de Baskara.

X
2
+4X+6 No tiene solución real
0X
2
+3X+9 Tiene Solución Lineal
0X
2
+0X+9 No tiene solución

30.1.‐Algoritmo
Inicio {Resolver una ecuación de segundo grado}
{Ingresar Coeficientes}
Leer A, B, C
{Calcular Solución de la ecuación de segundo grado}
Si (A<>0) entonces
{Posible solución cuadrática}
D=B
2
‐4AC
Si (D>=0) entonces
{Existe solución Real}
X1= (‐B + √Ð )/ (2*A)
X1= (‐B ‐ √Ð )/ (2*A)
Sino
Escribir “No existe solución real”
Sino {A=0}
{Posible solución lineal}
Si (B<>0) entonces
X1=‐B/C
Escribir X1
Sino {(A=0) y (B=0)}
Escribir “Ecuación no tiene solución”
Finsi
Fin

30.2.‐Codificacion(C#)

static void Main(string[] args)
{
double A, B,C;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

92
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 artículos de su almacén con códigos numéricos de 4 dígitos. El
código para ser valido debe estar formado por tres dígitos impares y un digito par. Escribir
un algoritmo y su codificación que lea un número de 4 dígitos y determine si puede ser o no
ser utilizado como un código.

Datos Resultado
2222
1572
2457
1493
No valido
Valido
No valido
valido
Inicio {Calcular si un código es valido o no es valido}
{Ingresar Código}
Leer Codigo
{Separa el Número en Unidad, Decena, Centena y Unidad de Millar}
u = codigo mod 10;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

93
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 código 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 código 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 código es valido”
Sino
Si ((u mod 2) <>0 y ((d mod 2)<> 0 y ((c mod 2 <> 0) y ((um mod 2)= 0)))) entonces
Escribir”el código es valido”
Sino
Escribir ”el código 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, sólo las dos notas
más próximas, descartándose la nota más discordante. Escribir un programa que permita
calcular la nota final del postulante. Nota.‐si no hay nota discordante se promedia las dos
más altas.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

94

Datos Resultado

Nota1 Nota2 Nota3 Nota Discordante Promedio
12 15 14 12 14.5
10 16 07 16 8.5
03 10 05 10 4.0
09 10 11 no hay (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.‐Diseñe un algoritmo que lea un numero de tres cifras y determine si es o no capicúa .Un
numero es capicúa si es igual al revés del número.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

95
Observación.‐como el numero tiene tres cifras, para ser capicúa basta con que la cifra de las
unidades sea igual a las cifras de las centenas. Por ejemplo 353, 878, 989, etc…






33.1 Algoritmo
Inicio {Determinar si un número es capicúa o no}
{Ingresar Número}
Leer numero
{Si el número 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 capicúa”
Sino
tipoNumero=”El Numero no es capicúa”
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 Número:");
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 capicúa o no capicúa
if (unidad == centena)
TipoNumero = "El Numero es Capicúa";
else
TipoNumero = "El Numero no es Capicúa";
//muestra el tipo de numero
Console.Write(TipoNumero);
}
Datos Resultado
456
151
353
484
No es capicúa
Si es capicúa
Si es capicúa
Si es capicúa
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

96
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 fracción. Diseñe un algoritmo
que determine cuanto debe pagar un cliente por el estacionamiento de su vehículo,
conociendo el tiempo de estacionamiento eh horas y minutos.

Datos Resultado
Horas Mintuos Total a pagar
12 30 32.5
4 0 10

34.1 Algoritmo
Inicio {Determinar el pago}
{Ingresar Hora y minutos}
Leer hora, minuto
{Si hay alguna fracción 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 Codificación(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 fracción 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 Programación Carlos Rodríguez Torvisco – Algorítmica

97






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 Codificación(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 duración 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 más 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*(minutos‐3)
Finsi
{mostrar Costo de las LLamadas}
Datos Resultado
MONTO
151
353
484
CONDICION
151<350 =10%
353>350=35%
484>350=35%
DESCUENTO
15,1
123,55
169,4
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

98
Escribir C
Fin

36.2 Codificación(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();
}

INSTRUCCIÓN SWITCH (ESTRUCTURA MULTIPLE)

La solución de muchos problemas requiere algoritmos que hacen uso de múltiples decisiones.
Este Problema, se podría resolver con estructuras selectivas anidadas del tipo: SI‐ENTONCES‐
SINO, tal como se vio en algunos ejemplos. Sin embargo, la excesiva anidación hace los
algoritmos más ilegibles.

La mayoría de los lenguajes de programación ofrecen estructuras selectivas múltiples, que
permite implementar este tipo de algoritmos de una manera muy simple y sobre todo legible.


Pseucodogico C#

Según_sea variable_selector hacer switch(variable_selector)
{
Caso 1 : bloque de instrucciones 1 case 1 : bloque 1 break;

Caso 2 : bloque de instrucciones 2 case 2: bloque 2 break;

Caso 3 : bloque de instrucciones 3 case 3:bloque 3 break;
… …
Caso N : bloque de instrucciones N case N:bloque N break;
Fin Según_sea }


37.‐Escribir el algoritmo que lea el mes y el año de una fecha y determine el número de días
del mes.

Dato Resultado
Fecha Inicial Nro. Días Mes
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

99
Mes Año
01 98 31
02 92 29
02 94 28
06 99 30

Inicio {Determinar el número de días del mes}
{Ingresar Mes y Año}
Leer Mes, Año
{Determinar número de dias del mes }
Según_sea Mes hacer
Case 1, 3, 5, 7, 8, 10, 12: NroDiasMes=31
Case 4, 6, 9, 11 : NroDiasMes=30
Case 2 : Si (año mod 4)=0 Entonces
NroDiasMes=29
Sino
NroDiasMes=28
Fin Según_sea
{Escribir días del mes}
Escribir NroDiasMes
Fin

37.2 Codificación(C#)

static void Main(string[] args)
{
int mes, año, NroDiasMes=0;
//ingresar mes y año
Console.WriteLine("Ingresa Mes:");
mes = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa Año:");
año = 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 (año % 4 == 0)
{
NroDiasMes = 29;
}
else
{
NroDiasMes = 28;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

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

37.‐Construya un programa que permita realizar operaciones aritméticas elementales, según
la clave ingresada.

Datos
Resultado Numero 1 Numero 2 Operador
20 20 / 1
5 3 * 15
35 12 + 47
250 5 ‐ 245


Inicio {Determinar el número de días del mes}
{Ingresar los números a Operar}
Leer Num1, Num2
{Ingresar Operador}
Leer Clave
Según_sea Clave hacer
Caso ‘+’ : resu=Num1+Num2
Caso ‘‐’ : resu=Num1‐Num2
Caso ‘*’ : resu=Num1*Num2
Caso ‘/’ : resu=Num1/Num2
Fin Según_sea
{Escribir El Resultado de las Operaciones}
Escribir resu
Fin

38.2 Codificación(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)
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

101
{
case '+':
resu = Num1 + Num2;
break;
case '-':
resu = Num1 - Num2;
break;
case '*':
resu = Num1 * Num2;
break;
case '/':
resu = Num1 / Num2;
break;
}
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 vehículo 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 DESCUENTO
Cutlass 8%
Cavalier 5%
Chevy 6%
Century 9%

Datos
Resultado Modelo Precio Descuento
C 200000 8% 184000
V 450000 5% 427500
H 150000 6% 141000
E 354000 9% 322140

Inicio {Determinar el precio final a pagar}
{Ingresar los Modelo del Automovil y el Precio}
Leer Modelo, Precio
Según_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 Según_sea
{Escribir PRECIO FINAL A PAGAR}
Escribir finpre
Fin
39.2 Codificación(C#)

static void Main(string[] args)
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

102
{
string modelo;
float precio, finpre=0;
Console.WriteLine("Ingresar modelo de vehículo en mayúsculas");
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 telefónicas internacionales, depende de la zona geográfica en la
que se encuentra el país destino, y del número 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 América del Norte 2
15 América Central 2.2
18 América del Sur 4.5
19 Europa 3.5
23 Asia 6
25 África 6
29 Oceanía 5
Construya un programa que le permita calcular e imprimir el costo total de una llamada.

Datos Resultado
CLAVE Tiempo(minutos) Precio Costo Total
12 5 2 10
23 15 6 90
18 2 4.5 9
29 3 5 15

Inicio {Determinar el precio a pagar por llamadas }
{Ingresar la Clave y el total de minutos hablados}
Leer clave, numin
Según_sea clave hacer
Caso 12 : cost = numin * 2
Caso 15 : cost = numin * 2.2
Caso 18 : cost = numin * 4.5
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

103
Caso 19 : cost = numin * 3.5
Caso 23 : cost = numin * 6
Caso 25 : cost = numin * 6
Caso 29 : cost = numin * 5
Fin Según_sea
{Escribir PRECIO a Pagar por las Llamadas}
Escribir cost
Fin

40.2 Codificación(C#)

static void Main(string[] args)
{
int clave, numin;
double cost = 0;
Console.WriteLine("Ingresar Clave de la Zona Geográfica:\n ");
Console.WriteLine("Zona América del Norte :[12]");
Console.WriteLine("Zona América Central :[15]");
Console.WriteLine("Zona América del Sur :[18]");
Console.WriteLine("Zona Europa :[19]");
Console.WriteLine("Zona Asia :[23]");
Console.WriteLine("Zona África :[25]");
Console.WriteLine("Zona Oceanía :[29]");
Console.Write("Clave:");
clave = int.Parse(Console.ReadLine());
Console.Write("Ingresar Duración 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();
}

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

104
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 además de la categoría del trabajador.


CATEGORIA PRECIO HORA EXTRA
1 S/. 30
2 S/. 38
3 S/. 50
4 S/. 70



Datos Resultado
Sueldo Basico Categoria Hora Extra Total a Pagarle
250 4 2 390
500 3 6 800
850 2 4 1002
695 1 5 845

Inicio {Determinar el precio a pagar por horas extras a un trabajador }
{Ingresar la sueldo, categoría, y las horas extras que trabajo}
Leer sue, cate, he
Según_sea cate hacer
Caso 1 : phe = 30
Caso 2 : phe = 38
Caso 3 : phe = 50
Caso 4 phe = 70
Otros: phe =0
Fin Según_sea
Si (he > 30)e ntonces
nsue = sue + 30 * phe;
Sino
nsue = sue + he * phe;
Finsi
Escribir nsue
Fin


41.2 Codificación(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 Programación Carlos Rodríguez Torvisco – Algorítmica

105
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 dígitos o menos y muestre su respectivo
nombre.

Datos resultados
Numero
12 Doce
46 Cuarenta y seis
8 Ocho
159 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 Programación Carlos Rodríguez Torvisco – Algorítmica

106
case 9: Console.Write("Nueve"); break;
case 10: Console.Write("Diez"); break;
case 11: Console.Write("Once"); break;
case 12: Console.Write("Doce"); break;
case 13: Console.Write("Trece"); break;
case 14: Console.Write("Catorce"); break;
case 15: Console.Write("Quince"); break;
case 16: Console.Write("Dieciseis"); break;
case 17: Console.Write("Diecisiete"); break;
case 18: Console.Write("Dieciocho"); break;
case 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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

107
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;
}
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();
}

43‐Escribir un programa que lea un numero y lo convierta a números romanos

Datos resultados
Numero
212 CCXII
346 CCCXLVI
10 X
1 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:"
Según sea (Miles)
Caso 1: Escribir "M"
Caso 2: Escribir "MM"
Caso 3: Escribir "MMM"
Fin_Según
Según sea (Cen)
Caso 1:Escribir "C"
Caso 2: Escribir "CC"
Caso 3: Escribir "CCC"
Caso 4: Escribir "CD"
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

108
Caso 5: Escribir "D"
Caso 6: Escribir "DC"
Caso 7: Escribir "DCC"
Caso 8: Escribir "DCCC"
Caso 9: Escribir "CM"
Fin_Según
Según 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_Según
Según 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_Según
Fin

static void Main(string[] args)
{
int N;
int Miles, Resto, Cen, Dec, Uni;
Console.WriteLine("Ingresa Número(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 Número 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 Programación Carlos Rodríguez Torvisco – Algorítmica

109
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 más de 3 docenas y 10% en caso contrario. Además por
la compra de más de 3 docenas se obsequia una unidad del producto por cada docena en
exceso sobre 3. Diseñe un algoritmo que determine el monto de la compra, el monto del
descuento, el monto a pagar y el número de unidades de obsequio por la compra de cierta
cantidad de docenas del producto.

2.‐Diseñe 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; ningún seis, pésimo.

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

110
3.‐Una compañía dedicada al alquiler de automóviles cobra un monto fijo de s/.30 para los
primeros 300 km de recorrido. Para más de 300 km y hasta 1000 km, cobra un monto
adicional de s/.0.15 por cada kilometro en exceso sobre 300. Para más 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. Diseñe un algoritmo que determine el monto
a pagar por el alquiler de un vehículo y el monto incluido del impuesto.

4.‐Diseñe un algoritmo que determine quienes son contemporáneos entre Juan, Mario y
Pedro.

5.‐Diseñe 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: equilátero (si tiene tres lados
iguales), isósceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales).
Considere que para formar un triángulo se requiere que:”el lado mayor sea menor que la
suma de los otros dos lados”.

6.‐Diseñe un algoritmo que lea tres números enteros y determine el menor valor positivo. Si
los números positivos son iguales, dar como menor a cualquiera de ellos.

7.‐Diseñe un algoritmo que lea tres números y los imprima de mayor a menor y de menor a
mayor.

8.‐Diseñe un algoritmo para obtener el grado de eficiencia de un operario de una fábrica 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 condición, grado 6.
‐si solo cumple la segunda condición, 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 María en una elección democrática a
la presidencia de un club. Para ganar la elección se debe obtener como mínimo el 50% de los
votas más 1. En caso que no haya un ganador se repite la elección en una segunda vuelta.
Van a la segunda vuelta los dos candidatos que obtengan la más alta votación. Se anula la
elección en caso de producirse un empate doble por el segundo lugar o un empate triple.
Diseñe un algoritmo que determine el resultado de la elección.

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

111
12.‐Diseñe un algoritmo que la un numero entero de 3 cifras, y forme el mayor número
posible con las cifras del número ingresado. El número formado debe tener el mismo signo
que el número ingresado.

13.‐Diseñar un algoritmo para calcular la división de dos números 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 más.

15.‐En un supermercado se hace una promoción, mediante la cual el cliente obtiene un
descuento dependiendo de un número que se escoge al azar. Si el número 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 número de pulsaciones que debe tener una persona por cada 10 segundos de
ejercicio aeróbico; la formula que se aplica cuando el sexo femenino es:
Num.pulsaciones= (220‐edad)/10 y si el sexo es masculino es:
Num.pulsaciones= (210‐edad)/10


17.‐Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inversión 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 dígitos es igual a la suma de los
cubos de sus dígitos.

20.‐Escribir un algoritmo que transforme coordenadas rectangulares a coordenadas polares.

21.‐Escribir un algoritmo para resolver problemas de interpolación lineal.

22.‐Escribir un algoritmo que determine el numero de días existentes entre dos fechas
dadas.

23.‐Escribir un algoritmo que lea una fecha(Dia,Mes y Año) y determine la fecha
correspondiente al día anterior.

24.‐Dado un numero de 4 digitos determine cual de sus digitos es el mayor.

25.‐Escribir un programa que lea tres números y que determine si corresponde a las medidas
de los lados de un triangulo rectángulo.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

112

26.‐Una compañía paga a un programador S/.5.00 por hora si trabaja 40 horas o menos. Si
labora más 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 triángulo; haga un programa que determine si los datos corresponden a aun
triángulo. En caso de que si corresponden, escriba si el triángulo es equilátero, isósceles o
escaleno. Calcule además su área.
Considere que es triángulo, si se cumple que la suma de los dos lados menores es mayor que
la del lado mayor. Tome en cuenta además que el área de un triángulo la calculamos como:
1/2
C)) B)(S A)(S (S(S AREA − − − =
28.‐Retome el problema 40, ahora considerando que se aplican distintos precios según la
duración de la llamada. Para calcular el costo final se sigue lo indicado en la siguiente
tabla.

CLAVE
ZONA
PRECIO/MINUTO
(3 primeros)
PRECIO/MINUTO
(del 4º en adelante)
12 Amércica del Norte 2 1.5
15 Amércica Central 2.2 1.8
18 Amércica del Sur 4.5 3.5
19 Europa 3.5 2.7
23 Asia 6 4.6
25 África 6 4.6
29 Oceanía 5 3.9
29.‐En un hospital se ha hecho un estudio sobre los pacientes registrados durante los últimos
10 años, con el objeto de hacer una aproximación de los costos de internación por paciente.
Se obtuvo un costo promedio diario según el tipo de enfermedad que aqueja al paciente;
además se pudo determinar que en promedio todos los pacientes con edad entre 14 y 22
años se implica un costo adicional del 10%. La siguiente tabla expresa los costos diarios,
según el tipo de enfermedad.
TIPO DE ENFERMEDAD COSTO/ PACIENTE/DIA
1 25
2 16
3 20
4 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 Programación Carlos Rodríguez Torvisco – Algorítmica

113
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:

Economía: Semestre >= 6 y promedio >= 8.8
Computación: Semestre > 6 y promedio > 8.5
Administración: Semestre > 5 y promedio > 8.5
Contabilidad: Semestre > 5 y promedio > 8.5

31.‐Escriba un programa que permita realizar la conversión de pesos y medidas. Considere
las siguientes equivalencias:

Medidas de longitud:

1 pulgada equivale a 25.40 milímetros
1 yarda equivale a 0.91.44 metros
1 milla equivale a 1.6093 kilómetros
1 pulgada
2
equivale a 6.452 centímetros
2

1 pie
2
equivale a 0.009290 metros
2

1 yarda
2
equivale a 0.8361 metros
2

1 acre equivale a 0.4047 hectáreas
1 milla equivale a 2.59 kilómetros
2


Medidadas de volúmen:

1 pie
3
equivale a 0.028320 metros
3

1 yarda
3
equivale a 0.7646 metros
3

1 pinta equivale a 0.56826 litros
1 galón 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 milímetros, de yardas a metros
y millas a kilómetros.

33.‐Dados tres números reales A, B y C, identifique cual es el mayor. Considere, a fin de
simplificar el problema, que los números 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 Programación Carlos Rodríguez Torvisco – Algorítmica

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

Estructuras Repetitivas

En todos los algoritmos realizados hasta este punto, cada instrucción 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 ejecución reiterada o repetida de un grupo de instrucciones.

Para la ejecución repetida de un conjunto de instrucciones los lenguajes de programación
ofrecen una variedad de sentencias o códigos, 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 propósito 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 también una variable auxiliar o de proceso, cuyo propósito es
suma (acumular) diferentes valores del mismo tipo.

Generalmente la implementación de los procesos con un acumulador tiene el siguiente
formato:
S=S+<Variable>
En esta expresión, 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 repetición de un proceso un número 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) Inicialización.‐en la cual se asigna valores iniciales a las variables que intervienn en el
test de salida.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

115
b) Acumulación.‐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 continúa o se sale del bucle.

Bucles Variables

Son estructura repetitivas en las que no se conoce el número de veces que se ejecutaran las
instrucciones que se encuentran dentro del bucle, por ejemplo, si se trata de contar el número
de dígitos de un número entero positivo sabemos cuantos dígitos tendrá el numero;
consiguientemente n se sabe cuantas veces realizara el proceso de contar, Otro ejemplo si el
número de clientes que debe atender un cajero de banco, quién no sabe a priori cuantas
personas existen en cola para ser atendidas

Bucles Fijos

Son estructuras repetitivas en que se conoce al priori el número 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.

Pseudocódigo

Hacer‐mientras mientras‐hacer

hacer mientras (condición)

Instrucciones de bloque instrucción de proceso
Instrucciones de actualización actualización de las variables del test de salida

Mientras (condición); fin‐mientras

Para‐hacer

Para (inicialización de la variable) hasta (condición) con incremento X hacer
Instrucciones de bloque
FinPara
C#
do_while while
while(condición)
do {
{
Instrucciones de bloque instrucción de proceso
Instrucciones de actualización actualización de las variables
}while(condición); }
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

116
For
For (inicialización 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. Codificación (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 Programación Carlos Rodríguez Torvisco – Algorítmica

117
2.‐Escribir un algoritmo que imprima el número,el cuadrado y el cubo de los n primeros numeros
enteros positivos.

Numero Cuadrado Cubo
1
2
3
1
4
9
1
8
27

1.1.Algoritmo

Inicio{escribir la tabla de cuadrados y cubos de los N primeros enteros}
{Leer número de elementos}
Leer N
{Escribir números, cuadrados y cubos}
k=0
hacer
k=k+1
cuadrado=numero*numero
cubo=cuadrado*numero
escribir cuadrado, cubo
mientras(k<12)
Fin
2.2 Codificación C#

static void Main(string[] args)
{
int c,numero,cuadrado,cubo;
//inicialiazamos el contandor
c = 0;
//ingresamos el numero
Console.Write("Ingresa Número:");
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 relación de n alumnos. Para cada alumno se tiene 3 notas. Escribir un algoritmo
que calcule el promedio de cada alumno.

Alumno Nota 1 Nota 2 Nota 3 Promedio
1
2
3
12
11
08
14
11
06
13
12
10
13.00
11.00
08.00
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

118

3.1 Algoritmo

Inicio{calcular el promedio de 3 notas para N alumnos}
{Leer número 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 Codificación 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 números enteros positivos.



Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

119
Datos N Resultados suma
1
2
3
4
1
3
6
10


4.1 Algoritmo

Inicio{Calcular la suma de los N primeros números enteros positivos}
{Leer número de enteros a sumar}
Leer N
{calcular suma de los N primeros números enteros}
Suma=0
k=0
hacer
k=k+1 {Procesar el siguiente número}
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 número
suma+= k; //acumular el número en suma
} while (k < N);
//mostrar la suma
Console.WriteLine(suma);
Console.Read();
}

5.‐Escribir un algoritmo que calcule la suma de la siguiente expresión:


1/100 + 2/99 + 3/98 + 4/97 +… + 99/2 + 100/1
5.1 Algoritmo

Inicio{Calcular la suma de la expresión}
{Leer número de enteros a sumar}
Suma=0
Numerador=0 {primer valor al actualizar =1 }
Denominador=100 {primer valor al actualizar = 100}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

120
{calcular suma de los N primeros números enteros}
hacer
{actualizar numerador y denominador}
Numerador=numerador+1
Denominador=denominador‐1
{acumular valores en suma }
Suma=suma+Numerador/Denominador
mientras(numerador=100)
Fin

5.2 Codificación (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 Expresión es :{0}",suma);
Console.Read();
}

6.‐Escribir un algoritmo que evalúe la siguiente expresión:
1
2
‐ 2
2
+ 3
2
…+99
2
‐100
2


Se suma los elementos de la serie
Suma = ‐5050
6.1 Algoritmo
Inicio{Evaluar 1
2
‐ 2
2
+ 3
2
…+99
2
‐100
2
}
{Evaluar Expresión}
Suma=0
Numero=0
hacer
{El numero va a ser impar. sumar}
Numero=numero+1
Suma=suma+numero*numero
{El número va a ser par. Restar}
Numero=numero+1
Suma=suma‐numero*numero
mientras(numerador=100)
Escribir suma
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

121
Fin

6.2 Codificación 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 aritmético de N números.

Datos Var. De Proceso Resultado
Número Suma Promedio
10
06
12
04
08
40 8

7.1 Algoritmo

Inicio{calcular el promedio de N números}
{leer numero de elementos, validando}
hacer
Leer N
mientras(N<2)
{Leer números 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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

122
Fin

7.2 Codificación 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 nùmero entero positivo.


Datos Resultado
5
6
3
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
fin‐mientras
{escribir factorial}
Escribir factorial
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

123
Fin

8.2 Codificación C#

static void Main(string[] args)
{
int N, factorial,k;
//ingresar numero entero positivo validado
do
{
Console.WriteLine("Ingresa Número:");
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 común divisor de 2 numeros enteros positivos.


Datos Resultado
A B MCD
45
18
100
27
5
9

9.1 Algoritmo
Inicio{calcular máximo común divisor de 2 números }
{Leer dos números enteros positivos y validarlos}
hacer
Leer A
mientras(A<0)
hacer
Leer B
mientras(B<0)
{Calcular máximo común divisor de 2 números}
Resto= A mod B
mientras(resto <> 0) hacer
A=B
B=resto
Resto=A mod B
fin‐mientras
MCD=B
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

124
Escribir MCD
Fin
9.2 Codificación 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 números
resto = A % B;
while (resto != 0)
{
A = B;
B = resto;
resto = A % B;
}
MCD = B;
//escribir el maximo común divisor
Console.WriteLine("El Maximo Común Divisor es:"+MCD);
Console.Read();
}
10.‐Escribir un algoritmo que permita determinar el número de dígitos de un número entero
positivo.

Dato
Numero
Resultado
NroDigitos
5
345
2865
0
1
3
4
1

10.1 Algoritmo
Inicio{Determina el numero de digitos de un número}
{Leer numero y validarlo}
hacer
Leer Numero
mientras(Numero<0)
NroDigitos=0 {inicialización}
si(numero==0) entonces {test de salida}
Escribir “La cantidad de dígitos es 1”
sino
mientras(numero<> 0) hacer
numero=numero div 10 {Actualización}
NroDigitos=NroDigitos+1 {Instrucciones}
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

125
fin‐mientras
fin‐si
Escribir NroDigitos
Fin

static void Main(string[] args)
{
int numero, NroDigitos = 0;
do
{
Console.Clear();//limpia la pantalla
Console.WriteLine("Ingresa Número:");
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 división de
2 números enteros mediante restas sucesivas.

Datos Resultado
Dividiendo Divisor Cociente Resto
20
25
4
8
5
3
0
1

10.1 Algoritmo
Inicio{Calcular el cociente y el resto de la división entera de 2 Números}
{Leer dividendo y el divisor}
Leer Dividiendo, Divisor
{calcular el cociente y el resto}
Resto=Dividendo
mientras(Resto>=Divisor) hacer
Resto=resto‐divisor
cociente=cociente+1
fin‐mientras
{escribir el cociente y el resto}
Escribir cociente, Resto
Fin

11.2 Codificación C#
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

126

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 números enteros positivos
utilizando el algoritmo ruso de la multiplicacion.

Datos Resultado
Numero 1 Numero 2 Producto
25
24
24
25
600
600

12.1 Algoritmo
Inicio{calcular el producto de 2 Números 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
fin‐si
factor1=factor1*2
factor2=factor2 div 2
fin‐mientras
{escribir el cociente y el resto}
Escribir producto
Fin

12.2 Codificación C#

static void Main(string[] args)
{
int factor1, factor2,producto;
//leer los factores
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

127
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)
fin‐mientras
{escribir el la suma de pares e impares}
Escribir suma_imp,suma_par
Fin


13.2 Codificación 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 nùmero impares es : {0}", suma_imp);
Console.WriteLine("la suma de nùmero pares es : {0}", suma_par);
Console.ReadKey();
}

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

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=b‐1
fin‐mientras
Escribir “\n” **cambio de línea
{“a” decrementa}
a=a‐1
fin‐mientras

Fin

14.2 Codificación 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--;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

129
}
Console.Read();
}

15.‐Programa que escribe la suma una seria de núemros 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. ‐ Codificación 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 número:1
‐Introduce un número:4
‐Introduce un número:7
‐Introduce un número:99
‐Introduce un número:40
‐Introduce un número:345
‐Introduce un número:23
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

130
‐Introduce un número:345
‐Introduce un número:5
‐El Valor Maximo es 345 con 2 repeticiones

16.1 Algoritmo
Inicio{Determina el valor máximo de N números y cuantas veces se repite}
{Leer N y validarlo}
hacer
Leer N
mientras(Numero<2)
Leer máximo
Cantidad = 1
C=1
Hacer
C=C+1
Leer numero
Si (numero>máximo) entonces
máximo=numero
Cantidad=1
Sino
Si(numero=máximo) entonces
Cantidad=Cantidad+1
Fin‐si
Mientas(C<N)
Escribir máximo, 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 Programación Carlos Rodríguez Torvisco – Algorítmica

131
}
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 númericos 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 nùmeros : ");
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 Programación Carlos Rodríguez Torvisco – Algorítmica

132

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
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

133
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 0,1 0,2 0,3 0,4
1,0 1,1 1,2 1,3 1,4
2,0 2,1 2,2 2,3 2,4
3,0 3,1 3,2 3,3 3,4
4,0 4,1 4,2 4,3 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” **carácter 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 Programación Carlos Rodríguez Torvisco – Algorítmica

134

21.‐Programa que calcula la suma de los 5 primeros números pares y el producto de los 5
primeros números impares simultáneamente.

21.1 Algoritmo

Inicio{Determina la suma y el producto de los 5 primeros números 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
Fin‐si
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 número dado el valor de su base y su exponente.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

135

Base exponente potencia
5 0 1
7 3 343
2 3 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
fin‐mientras
escribir pot
Fin

22.2 Codificación 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 Base 2 Base 8 Base 16
31 11111 37 1F
12 1100 14 C
15 1111 17 F
451 111000011 703 1C3

23.‐ Codificación C#
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

136

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 = 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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

137
}
}
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 número entero.

24.1 Algoritmo
Inicio {calcular si un número 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=numero‐1
Finsi
fin‐para
Si(bandera=1) entonces
Escribir “El Numero no es Primo”
Sino
Escribir “El Numero es Primo”
Finsi
Fin
24.2.‐ Codificación 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 Programación Carlos Rodríguez Torvisco – Algorítmica

138
}
25‐Escribir 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.‐ Codificación 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 técnica para calcular la depreciación de una maquinaria es el método de los dígitos
de los años. Por ejemplo, supongamos que una maquinaria tiene una vida útil esperada de
cinco años. La suma de los dígitos de los años será: 1+2+3+4+5, o sea, 15. Durante el primer
año, el valor del activo se depreciará en 5/15, durante el segundo año se depreciará en 4/15,
y así sucesivamente hasta que, en el transcurso que lea el quinto año, 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 depreciación.
lugar a un cargo decreciente por depreciación basado en una fracción decreciente del costo depreciable (el costo
original menos el valor de desecho). Con cada fracción se usa la suma de los años como denominador
(5+4+3+2+1=15), mientras que el número de años de vida estimada que resta al principiar el año viene a ser el
numerador. Con este método, el numerador disminuye año con año 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:


Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

139
Año
Base de la
depreciación
Vida restante en
años
Fracción de la
depreciación
Gasto por
depreciación
Valor en libros al
finalizar el año
1 450000 5 5/15 150000 350000
2 450000 4 4/15 12000 230000
3 450000 2 2/15 60000 80000
5 450000 1 1/15 30000 50000
15 15/15 450000

26.1 Algoritmo
Inicio {programa que demuestre plan de depreciación}
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=i‐1
valor=i/SumaDigitos*valor
Finmientras
Fin

26.2.‐ Codificación 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 Programación Carlos Rodríguez Torvisco – Algorítmica

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

27.1 Algoritmo
Inicio {programa que nos muestre los números del 1 al 100}
N=1,M=10
Mientras (N<=M) hacer
Escribir N
N=N+1
Finmientras
Fin
27.2.‐ Codificación 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 números del 100 al 1}
N=100
Mientras (N<>0) hacer
Escribir N
N=N‐1
Finmientras
Fin

28.2. ‐ Codificación C#

static void Main(string[] args)
{
int N=100;
while (N !=0)
{
Console.WriteLine(N);
N = N -1;
}
Console.Read();
}

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

141
29.‐Escribir un programa que determine todo los conjuntos de tres números 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 : 1‐2‐3

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. ‐ Codificación 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 Programación Carlos Rodríguez Torvisco – Algorítmica

142
FinMientras
Si ( s = num)entonces
Escribir “el numero es perfecto”
Sino
Escribir “el numero no es perfecto”
Finsi
Fin
30.2. ‐ Codificación 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. ‐ Codificación C#

static void Main(string[] args)
{
int num, i;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

143
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 número 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. ‐ Codificación C#

static void Main(string[] args)
{
int CantPares = 0, CatnImp = 0;
int N, R;
Console.Write("Ingresa Número:");
N = int.Parse(Console.ReadLine());
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

144
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 función:
F(X)=3.20*X/(0.45 * X – 0.25)
Para X= 0.00,0.05,0.10,0.15,…,2.00

X F(X)
0.00 0.00
0.05 ‐0.7032967
0.10 1.56097561
… …
1.95 9.94422311
2.00 9.84615385

33.1 Algoritmo
Inicio {tabular la siguiente función f(x)}
hacer
fx=3.20*x/(0.45*x‐0.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. ‐ Codificación 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 máximo común divisor de tres números enteros
positivos.
3 – 9 – 18 3 MCD= 3 24 ‐ 36 ‐ 72 3 MCD = 3 * 4 = 12
1 – 3 – 6 8 ‐ 12 ‐ 24 4
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

145
2 ‐ 3 ‐ 6

34.1 Algoritmo
Inicio {calcular el máximo común divisor de 3 números}
{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. ‐ Codificación C#

static void Main(string[] args)
{
//declarmaos nuestras variables
int A, B, C, Resto;
Console.Write("Ingresa El Primer Número:");
A = int.Parse(Console.ReadLine());
Console.Write("Ingresa El Segundo Número:");
B = int.Parse(Console.ReadLine());
Console.Write("Ingresa El Tercer Número:");
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 Común Divisor es :" + C);
Console.Read();
}

35.‐En el ultimo censo dela ciudad de Abancay, se consigno la siguiente informacion en las
fichas respectivas:
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

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

Escribir un programa que determine:
• Número de varones y número de mujeres.
• Número de muchachas solteras entre las edades de 16 y 21 años.
EJEMPLO:
Supongamos que la cantidad de cesantes es 9

DATOS
EDAD SEXO ESTADO C.
17 2 S
40 1 C
35 2 V
48 2 V
20 1 C
30 1 S
150 1 S
16 2 S
20 1 V

Número de Varones: 5
Número de Mujeres:4
Número de muchachas solteras entre las edades de 16 y 21 años : 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 años}
Finsi
j=j+1
FinMientras
Escribir H , M , Numero{escribimos el total de mujeres y varones }
Fin
35.2. ‐ Codificación C#

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

147
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 años 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 términos de la serie}
Si (band = ‘T’) entonces
i=i+3
band= ‘F’
Sino
i=i+2
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

148
band= ‘T’
Finsi
FinMientras
Escribir sumaser{escribimos la suma de la serie}
Fin

36.2. ‐ Codificación 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 2 3 4 5 6 7 8 9 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 números pares}
Fin

37.2. ‐ Codificación C#

static void Main(string[] args)
{
int numpar = 2, sum = 0;
Console.WriteLine("Suma de los números pares entre 1 y 10");
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

149
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 número 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. ‐ Codificación C#

static void Main(string[] args)
{
int i, K;
float mul;
Console.Write("Ingresar el número: ");
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 Programación Carlos Rodríguez Torvisco – Algorítmica

150
Console.ReadLine();
}

39.‐ Escriba un programa de flujo que lea un número 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. ‐ Codificación C#

static void Main(string[] args)
{
int N;
float i, serie = 0;
Console.Write("Ingresar el número 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 número 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 = 0,78
N= 20 =====> 1 ‐ 1/2 + 1/3‐1/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 Programación Carlos Rodríguez Torvisco – Algorítmica

151
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. ‐ Codificación C#
static void Main(string[] args)
{
int N, i;
float serie1 = 0.0f, serie2 = 0.0f, serie = 0.0f, j;
Console.Write("Ingresar el número 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 Programación Carlos Rodríguez Torvisco – Algorítmica

152


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 {También se pude hacer sue = sue+(sue * 0.15)}
Finsi
Escribir sue {Mostramos sueldo del trabajador}
FinPara
Fin

41.2. ‐ Codificación C#

static void Main(string[] args)
{
int i, N;
float sue;
Console.Write("Ingrese el número 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 Programación Carlos Rodríguez Torvisco – Algorítmica

153


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. ‐ Codificación 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 Programación Carlos Rodríguez Torvisco – Algorítmica

154
Console.WriteLine("\n***El total de la nómina 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 número 1, independientemente del entero inicial. Por ejemplo,
cuando el entero inicial es 26, la secuencia será :

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

Construya un programa que lea un entreo positivo y obtenga e imprima la sucesión 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 {también 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. ‐ Codificación C#

static void Main(string[] args)
{
int N;
Console.Write("Ingresar número: ");
N = int.Parse(Console.ReadLine());
if (N > 0)
{
Console.Write("{0} ", N);
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

155

while (N != 1)
{
if (N%2 == 0)
N = N / 2;
else
N = N * 3 + 1;

Console.Write("{0} ", N);
}
}
else
Console.WriteLine("El número tiene que ser mayor que 0.");
Console.ReadLine();
}

44.‐ En una escuela, donde se tienen registros con las caracter¡sticas físicas 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 población estudiantil femenina.
c) Lista de alumnos con aptitudes f¡sicas para jugar al basquet.
Requerimientos: ALTURA>=1.83 y 73<=PESO<=105
d) Porcentaje de alumnos con estas aptitudes de la población estudiantil
masculina.
Por cada alumno se ingresa su NOMBRE, SEXO, EDAD, PESO Y ALTURA.








Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

156

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. ‐ Codificación 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 número 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 Programación Carlos Rodríguez Torvisco – Algorítmica

157
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 información.
Por cada empleado se ingresan los siguientes datos CLAVE, EDAD, SEXO y SUELDO. Haga un
programa para calcular e imprimar lo siguiente:
a) Número de hombres.
b) Número de mujeres.
c) Número de mujeres que ganen con mas de s/. 1000.
d) Número de hombres menores de 40 años que ganen menos de s/. 100.
e) Número de empleadosmayores de 50 años.

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

158



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 años}
nem=nem +1
Finsi
Según_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
Finsegún_sea
FinPara
Escribir nh,nm,nem,nmg,nhm
Fin
45.2. ‐ Codificación C#

static void Main(string[] args)
{
int I, N, clave, edad, sexo;
int nh, nm, nem, nhm, nmg;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

159
double sueldo;
I = 0;
nh = 0;
nm = 0;
nmg = 0;
nem = 0;
nhm = 0;
Console.Write("Ingresar el número 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\tNÚMERO DE HOMBRES: {0}\n", nh);
Console.WriteLine("\tNÚMERO DE MUJERES: {0}\n", nm);
Console.WriteLine("\n\tNúmero de empleados mayores de 50 años:
{0}\n", nem);
Console.WriteLine("\n\tMujeres que ganan más de 1000: {0}\n", nmg);
Console.WriteLine("\tHombres < 40 años que ganan más de 1000: {0}",
nhm);
Console.ReadLine();
}

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

540 n * 7 m
2 4
< +

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

160

46.1 Algoritmo
Inicio {calcular cuantos pares cumplen la condición}
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. ‐ Codificación 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
expresión:
6300 Z * 8 Y * 11 X * 18
6 5 3
< + +


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 Programación Carlos Rodríguez Torvisco – Algorítmica

161
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. ‐ Codificación 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, 6);
}
y++;
z = 0;
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 años. Haga un programa que calcule lo siguiente:
a) Sucursal que más ha vendido en cada año.
b) Promedio de ventas por año.
c) Año con mayor promedio de ventas.
d) Ventas totales de la empresa (considerando las N sucursales durante 14 años).

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 Programación Carlos Rodríguez Torvisco – Algorítmica

162
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 más 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 año que mas vendió en la empresa}
Escribir anno
{Escribimos su venta}
Escribir annomay
{Escribimos el total de venta}
Escribir totven
Fin

48.2. ‐ Codificación 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 número de sucursales: ");
N = int.Parse(Console.ReadLine());
for (I = 1; I <= 14; I++)
{
Console.WriteLine("***** AÑO {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 Programación Carlos Rodríguez Torvisco – Algorítmica

163
if (venta > mayven)
{
mayven = venta;
suc = J;
}
}
Console.WriteLine("Sucursal que más vendio en el año {0}:
Sucursal {1} ", I, suc);
Console.WriteLine("Vendió: S/.{0}", mayven);
proanno = venanno / (N);
Console.WriteLine("PROMEDIO VENTAS AÑO {0} : S/.{1}", I, proanno);
if (venanno > annomay)
{
annomay = venanno;
anno = I;
}
totven = totven + venanno;
}
Console.WriteLine("Año que más vendio la empresa: Año {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 números "Primos Gemelos"
comprendidos entre A y B (enteros positivos). Los primos gemelos son parejas de números
primos con una diferencia entre sì de exactamente dos. Ejemplo: 3 y 5 son primos gemelos.

En primer lugar, ¿cuáles o qué son los números primos gemelos?

Dos números primos "p" y "q" son números primos gemelos si la diferencia entre ellos es de 2,
es decir, si "q=p+2". Los primeros números 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 números 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 números deben ser primos. Ejemplo: 3 es nº primo y 5 también.

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), ...,
Cuáles 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 Programación Carlos Rodríguez Torvisco – Algorítmica

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 =”v”hacer
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. ‐ Codificación C#

static void Main(string[] args)
{
int A, B, J, I = 0;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

165
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} - {1} \n", I - 2, I);
}
else
band1 = "F";
I = I + 2;
}
Console.ReadLine();
}

50.‐ Es posible demostrar que la suma de un número "suficiente" de términos
de la serie:
...
7!
X
5!
X
3!
X
X
7 5 3
+ − + −
Es un número considerablemente cercano a SEN(X), y que la diferencia entre SEN(X) y
la suma antes mencionada se vuelve menor conforme se toman más términos. 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
número de términos requeridos para obtener esta precisión.
50.1 Algoritmo
Inicio
I=3,cal=0
Leer X
sum=X , ter=1,band = “F”
Mientras(|sum|>=0.05) hacer
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

166
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=sum‐cal
band=”T”
Finsi
ter=ter+1
I=I+2
Finmientras
Escribir ter
Fin

50.2. ‐ Codificación 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 número 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 número [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 Programación Carlos Rodríguez Torvisco – Algorítmica

167
I = I + 2;
}
Console.WriteLine("\nEl número de terminos de la serie es: {0}", ter);
Console.ReadLine();

EJERCICIOS PROPUESTOS

1.‐ Escribir un programa que calcule la suma de todos los múltiplos de 5 menores de N.
2.‐Programa que calcula el cuadrado de los 100 primeros números pares.
3.‐Programa que calcula la suma de los cubos de los 50 primeros números naturales.
4.‐Diseñar un programa que calcule el producto de los “N” primeros números pares.
5.‐Escribir un programa que lea un numero entero “N” y muestre en pantalla los cuadrados y
los cubos de los “N” primeros números naturales.
6.‐Hacer un Programa que lea 30 números y determine cuales y cuantos de ellos son
múltiplos 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 números pares entre 1 y 25
9.‐Escribir un programa que visualice en pantalla los números múltiplos de 5 comprendidos
entre 1 y 100‐
10.‐Escribir un programa que genere la tabla de multiplicar de un número 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 años tarda en duplicarse un capital depositado
al 5% de interés anual.
13.‐Escribir un programa que calcule la suma de los números hasta un número
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 depreciación de un objeto según el método de la
línea recta. Calcular el número de años que tarda en hacerse 0. En este método el valor
original del objeto se divide por su vida(numero de años).El cociente resultante será la
cantidad en la que el objeto se deprecia anualmente. Por ejemplo, si un objeto se deprecia
8000 dólares en diez años, entonces la depreciación anual será 8000/10=800 dólares. Por
tanto, el valor del objeto habrá disminuido en 800 dólares cada año. Nótese que la
depreciación anual es la misma cada año cuando se utiliza este método.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

168
16.‐Escribir un programa que calcule la depreciación de un objeto según el método del
balance doblemente declinante. En este método, el valor del objeto disminuye cada año en
un porcentaje constante. Por tanto, la verdadera cantidad depreciada, en dólares, variara de
un año al siguiente. Para obtener el factor de depreciación, dividimos por dos la vida del
objeto. Este factor se multiplica por el valor del objeto al comienzo de cada año ( y no el
valor del original del objeto) para obtener la depreciación anual. Supongamos, por ejemplo
que deseamos depreciar un objeto de 8000 dólares por diez años; el factor de depreciación
será 2/10=0.2,por tanto, la depreciación el primer año será 0.2 X 8000=1600 dólares, la
depreciación del segundo será 0,2 X 6400=1280 dólares; la depreciación del tercer año será
0,2 X 5120=1024 dólares, 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 nómina.

18.‐ Construya un programa que lea 100 números naturales y cuente cuántos
de ellos son positivos, negativos o nulos.

19.‐ Dado N números enteros como datos, haga un programa que:
a) Obtenga cuántos números leídos fueron mayores que cero.
b) Calcule el promedio de los números positivos.
c) Obtenga el promedio de todos los números.


20.‐ Haga un programa que calcule e imprima el producto de los N primeros números
naturales.
i π
N
1 i=

21.‐ Escriba un programa tal, que dado N números enteros como datos, calcule cuál es el
mayor y el menor de estos números.

22.‐ Escriba un programa tal, que dado el peso, la altura y el sexo de N personas que
pertenecen a un estado de la república; obtenga el promedio del peso y la altura de esta
población.

23.‐ Resuelva el problema anterior, pero considere además el promedio de la altura y
del peso en función del sexo. Es decir, nos interesa obtener el promedio de la altura y peso
de la población femenina y masculina.

24.‐ Un vendedor ha hecho una serie de ventas y desea saber cuántas de estas fueron de $
200 o menos; cuántas fueron mayores a $ 200 pero inferiores a $ 400; y cuantas de $ 400 o
superiores a tal cantidad.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

169
Haga un programa que le proporcione al vendedor esta información después de haber le¡do
los datos de entrada.
25.‐ Se tienen las calificaciones de un grupo de alumnos que presentaron un examen de
computación. Haga un programa que calcule e imprima cuántas calificaciones hay en cada
uno de los siguientes rangos:

0 ... 3.99
4 ... 5.99
6 ... 7.99
8 … 10.0

26.‐ Una persona invierte en un banco un cierto capital y requiere saber cuánto obtendrá al
cabo de cierto tiempo, si el dinero se colocó a una determinada tasa de interés mensual.
Haga el programa correspondiente.
27.‐ Escriba un programa que reciba como entrada 24 números reales que representan las
temperaturas del exterior en un periodo de 24 horas. Encuentre la temperatura media del
día y las temperaturas más alta y más baja del día.
28.‐ Supóngase que en una reciente elección hubo 4 candidatos (con identificadores 1,2,3,4).
Usted habrá de encontrar, mediante un programa, el número 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 elección, el final
de datos esta representado por un cero. Observe, como ejemplo la siguiente lista:

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

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
función:
¦
¦
)
¦
¦
`
¹
¦
¦
¹
¦
¦
´
¦
≤ < − +
≤ < −
≤ < +
=
caso otro cualquier para 0
64 Y si33 1 Y Y
33 Y si11 10 Y
11 Y si0 36 Y 3
X
10 15
4
*

30.- Resuelva el problema anterior, pero ahora considere que no existe la operación de
potencia.

31.‐ De una empresa con N empleados, necesitamos obtener el número de empleado y
sueldo del trabajador con el mayor sueldo de la empresa. Haga el porgrama
correspondiente.
32.‐ La compañía de Luz "del Centro" desea imprimir los recibos de cobro de los cuenta
habitantes, en el último periodo. Desea obtener también el total de cobros del periodo. Por
cada cliente se ingresa su nombre, dirección, registro inicial y registro final. El cobro se
efectúa con base en la siguiente tabla.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

170

140 KVH o menos ‐‐‐> s/. 3.20
Los siguientes KVH ‐‐‐> s/. 0.15 por KVH
Exceso sobre 310 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 Economía, Administración, Contabilidad e Ingeniería en Computación. Las
condiciones para ser seleccionado como presunto candidato para entrar a la facultad menor,
varían de carrera en carrera y se presentan a continuación:

Condiciones para Facultad Menor de Economía:
Semestre >= 5 y promedio >= 8.5

Condiciones para Facultad Menor de Administración:
semestre >= 5 y promedio >= 8.8

Condiciones para Facultad Menor de Contabilidad:
semestre >= 5 y promedio >= 8.5

Condiciones para Facultad Menor de Computación:
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
leerán dentro de un ciclo.

36.‐ Resuelva el problema anterior con las consideraciones planteadas en el mismo, pero
sólo imprima matricula y promedio del mejor y del peor alumno.




MODULARIDAD

En este capitulo haremos en la “METODOLOGIA DESCENDENTE” llamada también
“METODOLOGÍA DE ARRIBA HACIA, ABAJO” (TOP‐DOWN METHOD),introduciremos un nuevo
elemento llamado “modulo”,que es la estructura básica de esta metodología.

En resúmen, esta metodología produce una estructura jerarquizada tal como se muestra en la
figura.
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

171

Problema










La relacion que existe entre la “metodología descendente” y la “programacion modular” es
que la programacion modular es la implementación de las unidades logicas o modulos
identificados con la metodología descendente.

Programación modular

Es una metodologia que permite la “metodologia descendente” donde un programa es un
conjunto de módulos relacionados entre si.

Concepto de módulo

Modulo tiene diferentes acepciones, inicialmente consideramos la definición más general del
DRAE.
“Pieza o conjunto unitario de piezas que se repiten en una construccion de cualquier tipo, para
hacerla más facíl regular y economica”.

En el contexto informatico, tomaremos también esta acepcion como base para la defincion de
módulo. De aquí en adelante, un módulo será la pieza base de construcción de programas, es
decir, un programa será una organización de uno o varios módulos 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”.

Problema
Sub‐problema1 Sub‐problema2
Sub‐problema
n
Sub‐problema21 Sub‐problema22 Sub‐problema2n
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

172


En este ejemplo vemos la definición (declaración) de un procedimiento en pseudocódigo para
calcular la suma de dos números enteros, los cuales son pasados al subprograma como
parámetros de entrada. El procedimiento calcula la suma y la devuelve como un parámetro de
salida.
Luego vemos como podemos utilizar el procedimiento invocándolo desde el programa
principal u otro procedimiento. Nótese que los nombres de los parámetros en la definición
(parámetro1 y parámetro2) no necesariamente tienen que ser los mismos que los utilizados
en la invocación (a y b). Nótese también que el compilador chequeará previamente que el tipo
de dato del parámetro de salida del procedimiento (en este caso un número entero) pueda ser
asignado a la variable c según su tipo.
Al nombre del procedimiento junto con la lista ordenada de sus parámetros 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 Programación Carlos Rodríguez Torvisco – Algorítmica

173
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 Programación Carlos Rodríguez Torvisco – Algorítmica

174
//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 números 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 Número: ");
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 Programación Carlos Rodríguez Torvisco – Algorítmica

175
//modulo de la tabla de multiplicar
static void TablaMultiplicar()
{
int Numero;
Console.Clear();
Console.Write("Cual es su Número: ");
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 números.

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 números.
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 Programación Carlos Rodríguez Torvisco – Algorítmica

176
}
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 números 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 Año:");
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 + " AÑO: " + Anio);
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.SetCursorPosition(5, 0);
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

177
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 día 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 días del mes intresado
switch (Mes)
{
case 1:
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

178
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 Capicúa");
else
Console.WriteLine("La palabra NO es Capicúa");
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 número {0} en Base 2 es: {1}", numero, cadena);
Console.WriteLine("\n El número {0} en Base 8 es: {1}", numero, cadena8);
Console.WriteLine("\n El número {0} en Base 16 es: {1}", numero, cadena16);
Console.Read();
}
static String CambioBase(int numero, int Base)
{
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

179
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;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

180
f2 = 2;
i = 2;
while (i < cantidad)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
i++;
}
}
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 Números.

public static int Numero1 = 0;
public static int Numero2 = 0;
public static int Numero3 = 0;
public static int Numero4 = 0;
static void Main(string[] args)
{
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

181
do
{
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 Número:");
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 Programación Carlos Rodríguez Torvisco – Algorítmica

182
13.‐hacer un programa modular para hacer una mini‐calculadora.

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 número:");
Console.SetCursorPosition(60, 2);
primero = float.Parse(Console.ReadLine());

Console.SetCursorPosition(3, 3);
Console.WriteLine("Introduzca operación a realizar:");
Console.SetCursorPosition(59, 3);
operacion = Console.ReadLine();

Console.SetCursorPosition(3, 4); //pedimos el segunos número
Console.WriteLine("Introduzca el segundo número:");
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 Programación Carlos Rodríguez Torvisco – Algorítmica

183
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 Programación Carlos Rodríguez Torvisco – Algorítmica

184
Console.WriteLine("El Maximo Común Divisor es :" + resto1);

}
else
Console.WriteLine("El Maximo Común 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 año)
{
if ((año % 4 == 0) && (año % 100 != 0) || (año % 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 Programación Carlos Rodríguez Torvisco – Algorítmica

185
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("tricentésimo "); break;
case 2: Console.Write("bicentésimo "); break;
case 1: Console.Write("centésimo "); break;

}

switch (d)
{
case 9: Console.Write("nonagésimo "); break;
case 8: Console.Write("octagésimo "); break;
case 7: Console.Write("septuagésimo "); break;
case 6: Console.Write("sexagésimo "); break;
case 5: Console.Write("quicuagésimo "); break;
case 4: Console.Write("cuadragésimo "); break;
case 3: Console.Write("trigésimo "); break;
case 2: Console.Write("vigésimo "); break;
case 1: Console.Write("décimo "); 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("día del año \n\n");
}
static void Main(string[] args)
{
//calculo del dia del año que hace una determinada fecha
int dia, mes, anio;
Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

186
Console.WriteLine("Ingresa dia:");
dia = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa mes:");
mes = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa año:");
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 características.

1.‐Es una colección finita de n elementos homogéneos 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 están 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 definición 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 relación de N notas. Escribir un programa que calcule el promedio y determine
cuántas notas son mayores al promedio.

Entrada de datos
N=5
Notas=17,11,12,16,14

Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

187
Salida de Datos
Promedio=14
Nro Nota Mayores=2



static void Main(string[] args)
{
//declaramos nuestro arreglo y le damos un tamaño
int[] notas;
notas = new int[50];//en este caso le damos un tamaño 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 tamaño (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 tamaño
int i;
int[] numeros;
numeros = new int[5];//el tamaño 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 Programación Carlos Rodríguez Torvisco – Algorítmica

188
for (i = 0; i < 5; i++)
Console.Write("{0}", numeros[i]);
//mostramos el espacio que una en byes
Console.Write("\n-el tamaño 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 númerico 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 tamaño
int[] pares;
pares = new int[20];//tamaño 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 números 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 Programación Carlos Rodríguez Torvisco – Algorítmica

189
}
//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} nùmeros 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("¿Cuántos 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 Programación Carlos Rodríguez Torvisco – Algorítmica

190

5.‐ Cree un array unidimensional de 20 valores de tipo númerico y mostar por pantalla todos
aquellos elementos mayores de 30 junto con la posición que ocupan en la tabla.En caso de
no existir ninguno.se mostrara el siguiente mensaje:”no hay números 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 números 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 Programación Carlos Rodríguez Torvisco – Algorítmica

191



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 números enteros, almacenándolos en un array de nombre
“numeros”.Escribir un programa que los visualice en el dispositivo estándar de salida en
orden inverso al de entrada.


Lenguaje de Programación Carlos Rodríguez Torvisco – Algorítmica

192

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 números 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 cuál es el valor maximo, asi como la posición 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 máximo se mostrará el que se ocupa la
posición situada más 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 Programación Carlos Rodríguez Torvisco – Algorítmica

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

Lenguaje de Programación

2

Carlos Rodríguez Torvisco – Algorítmica

El lenguaje C#
1.1.1. Introducción
Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje de programación surgieron en 1998 , haciendo referencia a un lenguaje que entonces llamaban COOL y que decían era muy similar a Java. En junio de 2000, Microsoft despejó todas las dudas liberando la especificación de un nuevo lenguaje llamado C#. A esto le siguió rápidamente la primera versión de prueba del entorno de desarrollo estándar (SDK) .Net, que incluía un compilador de C#. El nuevo lenguaje estaba diseñado 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 prácticamente cualquier lenguaje. Entonces la pregunta es, ¿porqué se eligió C# en lugar de cualquier otro lenguaje?. La razón fundamental es que C# se diseñó para la plataforma .NET y es capaz de utilizar todo su potencial. También es cierto que es un lenguaje "limpio" en el sentido de que al no tener que proporcionar compatibilidad hacia detrás se ha tenido más libertad en el diseño 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 más que un espacio en el que se almacena una información, ya sean números, palabras o tu fecha de nacimiento. Los tipos de datos son especialmente importantes en C# porque es un lenguaje con información de tipos. Esto significa que, en todas las operaciones, el compilador comprueba los tipos para ver su compatibilidad. Las operaciones no válidas no se compilan. De esta forma se evitan muchos errores y se consigue una mayor fiabilidad

Tipos en C#
En C# los tipos básicos no son más que alias para tipos predefinidos en la librería base de la plataforma Mono/.NET . Así, el tipo entero int, no es más que una forma rápida de escribir System.Int32 . Los tipos del lenguaje C# son divididos en dos grandes categorías: tipos por valor y tipos por referencia. Existe una tercera categoría de tipos, disponible solo cuando se usa código no seguro: los punteros, que

Lenguaje de Programación

3

Carlos Rodríguez Torvisco – Algorítmica

se discutirán más 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 números 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 número y así se consigue que los enteros sin signo puedan almacenar números el doble de grandes que los enteros con signo. Probablemente el tipo más utilizado es el int, pués se utiliza para controlar matrices, inidizar arreglos además de las operaciones normales con enteros. Además, se trata de un entero de tamaño medio: más pequeño que long y ulong, pero más grande que byte, sbyte, short y ushort. El siguiente ejemplo muestra la declaración y uso de algunos tipos enteros calculando el número de segundos en una hora, dia y en un año. 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 año: {0}", Anio); } } De nuevo hemos usado el método 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 más de un argumento, se seguiría con {1}, y así sucesivamente. Por ejemplo, las dos líneas que utilizan Console.WriteLine se pueden simplificar así: Console.WriteLine("En un dia: {0}; en un año: {1}", Dia, Anio ); La clase Console, se describe más en detalle.

Existen dos clases de tipos de punto flotante.Sin(). El tipo decimal elimina estos errores y puede representar correctamente hasta 28 lugares decimales. 2. class Flotante{ public static void Main() { int a = 2.4142135623731 si intentamos cambiar el tipo de log2 a otro de menos precisión. pués se perderán datos. como Math. Lo mismo ocurre con la mayoría de los miembros de la clase Math.Tan().WriteLine("El logaritmo de dos es {0}". float y double. como hemos dicho a que el valor devuelto por Math. La representación por supuesto puede no ser exacta.Log(2). bien por errores de la máquina. el compilador protestará.4. double log2 = Math.WriteLine("La raiz de dos es {0}". Console. double raiz2 = Math. El tipo decimal El tipo decimal es un tipo "nuevo" en el sentido de que no tiene equivalente en C/C++.2. como float o int. Esta capacidad para representar valores decimales sin errores de redondeo lo hace especialmente eficaz para cálculos monetarios. Console.Log() es de tipo double y si se quiere convertir a float. log2 ). bien porque el número de decimales que se puede alojar es finito. Es muy parecido a los tipo de coma flotante float y double. Esto se debe. De los dos.3.Lenguaje de Programación 4 Carlos Rodríguez Torvisco – Algorítmica 2. Tipos de coma flotante Los tipos de coma flotante sirven para representar a números con parte fraccionaria.693147180559945 La raiz de dos es 1. raiz2 ). El siguiente ejemplo calcula la raíz cuadrada y el logaritmo de dos: using System. pués es el valor que devuelven la mayoría de las funciones matemáticas de la librería base. El tipo bool . el más usado es double. se pueden producir leves errores de redondeo.2. Math.Sqrt(2). } } y la salida será la siguiente: El logaritmo de dos es 0. En la aritmética de los tipos de coma flotante ordinarios. etc.

En definitiva. En C#. De esta forma se ayuda a eliminar el error tan frecuente en programadores de C/C++ cuando usa "=" en lugar de "==". no como en C/C++.Lenguaje de Programación 5 Carlos Rodríguez Torvisco – Algorítmica El tipo bool sirve para expresar los valores verdadero/falso. que en C# se muestran con las palabras reservadas true y false. una instrucción if solo puede estar gobernada por un valor bool. que lo puede estar también por un entero. por ejemplo. la inclusión del tipo bool en el lenguaje ayuda a la claridad del código y evita algunos errores muy comunes .

Lenguaje de Programación 6 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 7 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 8 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 9 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 10 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 11 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 12 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 13 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 14 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 15 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 16 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 17 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 18 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 19 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 20 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 21 Carlos Rodríguez Torvisco – Algorítmica .

Lenguaje de Programación 22 Carlos Rodríguez Torvisco – Algorítmica .

ada En la Figura se m muestra el p pseudocódigo y el diagram de flujo d una estru o ma de uctura secuencial. Ac ccion n Fin 1 2 3 . sin cambios de ruta. Pseudocódigo Inic cio Ac cción Ac cción Ac cción .Lengu de Prog uaje gramación 23 Carlos Rodr ríguez Torvis – Algorítm sco mica Estru ura Secue Es uctu Se encia al 2. . .1 Concept to Una e estructura se ecuencial es aquella en la que las ins strucciones e están una a c continuación de la n otra s siguiendo un secuencia única. La es na a e structura sec cuencial tiene una entra y una salida.

‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables int numero1.Parse(Console.ReadLine()).5 .‐Algoritmo Inicio {calcular la suma de dos números} {Ingresamos los números} Leer a Leer b {Calculamos la suma en una variable suma} Suma=a+b {Mostramos el resultado} Escribir suma Fin 1.ReadLine()).Write("la suma es : {0}".Write("ingrese el primer nùmero : ").numero2. //leemos nuestro nùmero numero1 = int. //introducimos el primer nùmero Console. Console.ReadLine(). Datos Numero 1 5 9 Numero 2 8 5 Resultado Suma 13 14 1. suma. suma). //mostramos los resultados Console. //introducimos el segundo nùmero Console.‐Ecribir un algoritmo que determine la suma de dos números enteros.//pausa la pantalla } 2.Lenguaje de Programación 24 Carlos Rodríguez Torvisco – Algorítmica PROBLEMAS RESUELTOS 1.Write("ingrese el segundo nùmero : "). //sumamos los datos que tenemos suma = numero1 + numero2.2. //leemos nuestro segundo nùmero numero2 = int.‐escribir un algoritmo y su codificacion para calcular el area de trinagulo. Datos base 4 9 altura 5 5 Resultado Area 10 22.1.Parse(Console.

Console. area).ReadLine()). } 3.27) {Mostramos el resultado} Escribir pies Fin .‐Algoritmo Inicio {convertir una distancia medida en metros a pies} {Ingresamos distancia en metros} Leer metros {Convertir distancia a pies} pies = metros / (12 / 39. bas = int.Lenguaje de Programación 25 Carlos Rodríguez Torvisco – Algorítmica 2.2. altura.09 16.Write("Ingresa altura : ").Write("Ingresa base : "). Console.ReadLine(). altura = int.1. //hacemos la operacion area = (bas * altura) / 2.Parse(Console. //ingresamos los datos Console.Parse(Console. Datos Distancia en metros 4 5 9 20 Resultado Distancia en pies 13.ReadLine()).‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables int bas. double area. //mostramos los resultados por pantalla Console.Write("el area del triangulo es : {0}".362 29.1.45 3.‐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.‐escribir un algoritmo y su codificacion que convierta una distancia medida en metros a pies.45 65.

ReadLine()).‐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. consumo = float.25 45.55 TOTAL A PAGAR 623. metros = float. //calculamos el igv .‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables float metros.2.27f).ReadLine()). Datos consumo 524.4 mm //mostramos los resultados por pantalla Console.Write("el equivalente en pies es : {0}". igv. pies). //ingresamos los datos para almacenar en nuestras variables "metros" Console.2.‐Codificacion(C#) static void Main(string[] args) { //definiciones de variables float consumo.19).Lenguaje de Programación 26 Carlos Rodríguez Torvisco – Algorítmica 3.‐ escribir un algoritmo y su codificacion para calcular el total a pagar de un consumo ingresado por el usuario .00 Resultado IGV 99.55 4.61 8. Console.86 53.Parse(Console. //hacemos la operacion pies = metros / (12 / 39.Parse(Console.19 {calculamos el totap a pagar} tap=consumo+igv {Mostramos el resultado} Escribir igv Escribir tap Fin 4.Write("Ingresa Metros : ").1. } 4. //1 pie = 0.ReadLine(). finalmente mostrar el IGV y el total a pagar por pantalla (incluye IGV=0. pies.Write("Ingrese el monto de su consumo: "). //ingresando consumo Console.3048 metros //1 pulgada = 25. tap.

tap). //calculamos la edad edad = fac .‐ escribir un algoritmo y su codificacion para que un ingeniero de sistemas que desea invertir su capital en un banco y desea saber cuánto dinero ganará despues en un mes si el banco paga a razón de 2% mensual. edad). Console.ReadLine()).Read().‐Algoritmo Inicio {calcular la edad de una persona} {Ingresamos fecha de nacimiento} Leer fnac {Ingresamos fecha actual} Leer fac {calculamos la edad} Edad=fac‐fnac {Mostramos el resultado} Escribir Edad Fin 5. Datos Capital 800 400 500 1050 Resultado Ganancia 16 8 10 21 .fnac.Parse(Console.‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables int edad. Console. //mostramos la edad de la persona Console.Write("ingrese el año actual :").Read().Lenguaje de Programación 27 Carlos Rodríguez Torvisco – Algorítmica igv = consumo * 0.2.ReadLine()). } 5. Console. } 6.1.Parse(Console. fnac = int. fac = int. Console. fnac.igv). fac.‐ 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.Write("su edad es : {0}". Console.Write("Total a pagar:{0}". //calculamos el total a pagar tap = consumo + igv.Write("ingrese el año que nacio :").WriteLine("El IGV es : {0}". Console.19f.

gan).‐Codificacion(C#) static void Main(string[] args) { double cap.02 {Mostramos el resultado} Escribir ganancia Fin 6.Parse(Console.‐Algoritmo Inicio {calcular el porcentaje de varones y el porcentaje de mujeres de un grupo de Estudiantes} {Ingresamos número de hombres} Leer nh {Ingresamos número 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 .2. cap = double.1.Write("ingrese su capital : "). gan.1.02. gan = cap * 0.Write("su ganacia es :{0} ". Console. Datos Numero de hombres Numero de mujeres 20 15 20 29 Resultado Porcentaje de Porcentaje de hombres mujeres 50% 50% 34% 66% 7. Console.‐Algoritmo Inicio {calcular la ganancia de un mes de un ingeniero} {Ingresamos capital} Leer capital {Calculamos el capital} ganancia = capital * 0. } 7. Console.‐ 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.ReadLine()).Read().Lenguaje de Programación 28 Carlos Rodríguez Torvisco – Algorítmica 6.

que dado el costo de un articulo vendido y la cantidad de dinero entregado por el cliente.Read().1. //calculamos el porcentaje de mujeres pm = nm * 100/ta. Console. .WriteLine("el porcentaje de mujeres es :{0}%".‐Codificacion(C#) 29 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int nh.ReadLine()). calcule e imprima el cambio que debe entregársele al mismo. ta. Console. //ingresamos el numero de hombres Console. int ph. //calculamos el porcentaje de hombres ph = nh *100 / ta.Write("ingrese numero de hombres : ").Write("ingrese numero de mujeres : "). } 8. //calculamos el total de alumnos ta = nh + nm. pago.ph).Lenguaje de Programación 7. nm. //ingresamos el numero de mujeres Console.‐Codificacion(C#) static void Main(string[] args) { float prepro. Escribir Devo Fin 8.Write("Ingrese el Precio del Producto : ").pm). nh = int.‐ Construya un programa tal. nm = int.‐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. pm. //Ingresamos Precio del Producto Console.2.ReadLine()). Precio del Producto 50 20 Datos Pago que Realiza el Cliente 70 25 Resultado (cambio a entregar) 20 5 8.Parse(Console.Parse(Console. devo = 0.2. Console.WriteLine("el porcentaje de hombres es :{0}%".

ReadLine()).Parse(Console. Datos Minuto 20 2 Resultado(segundo anterior) Hora Minuto Segundo 3 20 24 5 1 59 Hora 3 5 segundo 25 0 9. Console. } 10. mm minuto .{0}". ss = (TotalSegundos % 3600) div 60.ReadLine().Write("Ingresa Segundo:").Write("Ingresa Minuto:"). {Mostramos la Hora Correspondiente al Segundo Anterior} Escribir hh. ss). pago = float. hh.Write("Ingresa Hora:"). ss. ss = (TotalSegundos % 3600) % 60.ReadLine()). //Mostramos el Cambio Console.Parse(Console. 9‐ Hacer un programa que al dar la hora hh. hh = int.WriteLine("{0}:{1}:{2}".prepro.‐ Hacer un programa que al dar la hora hh. //Ingresamos Pago que Realiza el cliente Console.2. Console. mm = int.Write("Ingrese el Pago que Realiza el Cliente: "). escriba la hora correspondiente despues de 2 segundos .ReadLine()). //mostramos la hora al segundo anterior Console.ss TotalSegundos=(hh*3600+mm*60+ss)‐1 hh = (TotalSegundos div 3600) mod 24.Read(). escriba la hora correspondiente al segundo anterior. ss = int. mm. hh = (TotalSegundos / 3600) % 24.Parse(Console.Parse(Console.ReadLine()).mm.WriteLine("El cambio a entregar es :s/.Parse(Console. Console. ss segundo. Console. mm. int TotalSegundos = (hh * 3600 + mm * 60 + ss) -1.ss Fin 9. ss segundo. mm minuto .Lenguaje de Programación 30 Carlos Rodríguez Torvisco – Algorítmica } prepro = float.‐Codificacion(C#) static void Main(string[] args) { int hh. mm = (TotalSegundos % 3600) / 60.‐Algoritmo Inicio {la hora al segundo anterior} Leer hh.mm. Console.ReadLine()).1. devo). mm = (TotalSegundos mod 3600) div 60. //Calculamos el Vuelto o Devolucion devo = pago .

Datos Valor Inicial 2 10 Valor Final 4 20 Resultado Valor Central 3 15 11. mm = (TotalSegundos % 3600) / 60. ss. para luego Calcular el valor central de los números.‐Algoritmo segundo 25 59 Inicio {la hora después de 2 segundos } Leer hh.ss Fin 10. mm = int.ss TotalSegundos=(hh*3600+mm*60+ss)+2 hh = (TotalSegundos div 3600) mod 24. Console.ValorFinal {Calculo del Valor Central} .Read().Lenguaje de Programación Datos Minuto 20 2 31 Carlos Rodríguez Torvisco – Algorítmica Resultado(después de 2 segundos) Hora Minuto Segundo 3 20 27 5 3 1 Hora 3 5 10. ss = (TotalSegundos % 3600) div 60.mm.mm.Parse(Console.Parse(Console.ReadLine()). mm = (TotalSegundos mod 3600) div 60.1. //mostramos la hora despues de 2 segundos Console. Console.1. {Mostramos la Hora Correspondiente despues de 2 segundos} Escribir hh. ss).WriteLine("{0}:{1}:{2}". mm. ss = int. mm. hh = (TotalSegundos / 3600) % 24.ReadLine()). hh = int. hh. int TotalSegundos = (hh * 3600 + mm * 60 + ss) + 2. Console. } 11‐ Diseñar un algoritmo que me permita ingresar un valor inicial y luego un valor final.Parse(Console.2.‐Algoritmo Inicio {Calcular el Valor Medio} Leer ValorInicial.ReadLine()).Write("Ingresa Hora:"). Console.‐Codificacion(C#) static void Main(string[] args) { int hh.Write("Ingresa Minuto:"). ss = (TotalSegundos % 3600) % 60.Write("Ingresa Segundo:").

ReadLine()).Parse(Console. lonmet = lon * 0. Escribir Nomb. lon. respectivamente. A2.Parse(Console.‐Escriba un programa tal.Write("Ingresa Valor Final:"). expresados estos dos últimos en toneladas y pies.Lenguaje de Programación ValorCentral=( ValorInicial+ValorFinal)/ 2 Escribir ValorCentral Fin 11. su peso expresado en kilogramos y su longitud expresada en metros.6175 2000 17. peskil = 0. lonmet Fin 12. escriba el nombre del dinosaurio. int C. A1 = int. lonmet = 0.WriteLine("Valor Central: " + C). su peso y su longitud. Console. Console.2.ReadLine()). Console. C = (A1 + A2) / 2.‐Codificacion(C#) 32 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int A1.97 Nombre Rinoceronte Choclosauri o Longitud(Pies ) 25 59 Nombre Rinoceronte Choclosauri o 1 Tonelada= 1000 kilos 12.‐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. Datos Peso(Tonelada s) 1 2 Resultado Peso(Kilos Longitud(Metro ) s) 1000 7.2.Write("Ingresa Valor Inicial:"). .1. A2 = int.‐Codificacion(C#) static void Main(string[] args) { float peso. peskil. } 12. Console.3047f. que dados el nombre de un dinosaurio.ReadLine().

ReadLine()).ReadLine().35 182. tal que dado como dato la extensión del campo en "acres". Construya un programa.115 13. Console. Console. Console. Console. peskil = peso * 1000.‐Una persona compró una estancia en Abancay. peso = float.Write("Ingrese el Nombre del Dinosaurio:"). Nomb = Console.ReadLine().WriteLine("La Longitud en Metros es: " + lonmet).ReadLine()). 13.Parse(Console. Console.ReadLine()). extcam = float.Lenguaje de Programación 33 Carlos Rodríguez Torvisco – Algorítmica } string Nomb. Console.2.Write("Ingrese el Peso en Toneladas : "). Console. lon = float.ReadLine().1.‐Algoritmo Inicio {calcular hectareas} {Ingresamos extencion en Acres} Leer exten Escribir extcam * 4047 / 10000 Fin 13.3047f. lonmet = lon * 0. La extensión de la estancia esta especificada en acres.‐Construya un programa que calcule e imprima el número de segundos que hay en un determinado número de días.WriteLine("Nombre del Dinosaurio: " + Nomb).Parse(Console. extha = extcam * 4047 / 10000. Console.WriteLine("La Extensión del Campo en Hectáreas es: " + extha).Parse(Console. } 14. extha.Write("Ingresar la Extensión del Campo en Acres: ").47 202. Datos Cantidad de Dias 1 30 24 Resultado Total de Segundos 86400 2592000 2073600 . Console. calcule e imprima la extensión del mismo en hectáreas Datos Extencion en Acres 200 100 500 450 Resultado Extencion en Hectareas 80.‐Codificacion(C#) static void Main(string[] args) { float extcam.94 40. Console.WriteLine("El Peso en Kilos es: " + peskil).Write("Ingrese la Longitud en Pies : ").

dias.63 7. Console. dias = int.WriteLine("El Total es:" + total).‐Codificacion(C#) static void Main(string[] args) { int seg. Los surtidores de la misma registran lo que "surten" en galones. Fin 15.025. pero el precio de la gasolina esta fijado en litros. Datos Numero de Galones 4 3 2 15 Resultado Total a Pagar 15. Console.WriteLine(" ****En {0} Días hay {1} Segundos****".ReadLine()).Parse(Console. .025f. seg). total = cons * 3.ReadLine().19 15. seg = dias * 24 * 60 * 60.75 58.ReadLine()). dias.‐Codificacion(C#) static void Main(string[] args) { float cons.785f * 1.‐Algoritmo Inicio {calcular total de segundos} {Ingresamos el numero de dias} Leer dias Escribir dias*24*60*60 Fin 14.Lenguaje de Programación 15 34 Carlos Rodríguez Torvisco – Algorítmica 1296000 14.Write("Ingresar el Número de Días: "). total = 0.1.2.‐Contruya un programa que resuelva el problema que tienen en una gasolineria.1. El Programa debe calcular e imprimir lo que hay que cobrarle al cliente.‐Algoritmo Inicio {calcular el total a pagar} {Ingresamos el numero de galones} Leer cons Escribir cons * 3.2. Console. cons = float. Console.785f * 1.Write("Ingrese el Número de Galones Surtidos: ").5182 11. Console. } 15.Parse(Console.

cen.ReadLine(). se expresa en metros. Console.Parse(Console. velokh). dis).Write("Ingresar la Distancia Recorrida en Metros: "). Console. DAT0S Minutos Segundos Centésimas de Segundo Distancia en Metros RESULTADO Distancia Recorrida Velocidad (KM/H) 59 45 60 12 0 25 1000 5000 1000 5000 1 6.ReadLine()). seg.ReadLine()). tiemseg = min * 60 + seg + (cen / 100). Console.velokh Fin 16.dis tiemseg = min * 60 + seg + (cen / 100) veloms = dis / tiemseg velokh = (veloms * 3600) / 1000 Escribir dis. Console.Write("Segundos : "). velokh. Console.‐Codificacion(C#) static void Main(string[] args) { int min. veloms = dis / tiemseg.Write("Centésimas de Segundo : ").ReadLine(). Construya un programa que calcule la velocidad de los participantes en kilómetros por hora de las diferentes competencias.Parse(Console.cen.Parse(Console. velokh = (veloms * 3600) / 1000.1.Parse(Console.63 16. 35 Carlos Rodríguez Torvisco – Algorítmica } 16. Datos Numero Resultado Numero Invertido . Console. } 17‐ escribir un algoritmo y su codificacion para invertir un numero de tres digitos. min = int.ReadLine()).‐En las olimpiadas de invierno.WriteLine("La Distancia Recorrida es: {0} metros".Lenguaje de Programación Console. dis = float. Console.seg. tiemseg = 0.WriteLine("La Velocidad es de: {0} (Km/h)". el tiempo que realizan los participantes en la competencia de velocidad en pista.ReadLine()). por otra parte. cen = int.2. La distancia que recorren.Write("Minutos : "). segundos y centésimas. se mide en minutos. seg = int. Console.WriteLine("Ingresar el Tiempo Empleado en la Competencia"). dis.‐Algoritmo Inicio {calcular velocidad} {Ingresamos el tiempo} Leer min. float veloms.

//separar el numero en undades . Unidades. Datos Numero 15 41 97 32 Resultado Suma de cifras 6 5 16 5 .‐ escribir un algoritmo y su codificacion para sumar los digitos de un numero de 2 cifras. numero = int.‐Algoritmo Inicio {invertir un número de tres dígitos} {Ingresamos número de tres dígitos} Leer número {Sepáranos el número en unidad.WriteLine("numero original : {0}". Console. Decenas = (numero % 100) / 10. decena y centena} Unidad=numero mod 10 Centena=numero div 100 Decena= (numero mod 100) div 10 {Invertir número} numero_invertido=Unidad*100+Decena*10+Centena {Mostramos el resultado} Escribir numero_invertido Fin 17. } 18. //invertir numero numero_invertido = Unidades * 100 + Decenas * 10 + Centenas.Write("ingres numero de tres cifras : ").Parse(Console. numero_invertido.ReadLine(). Console.1. //Escribir numero invertido Console. //leer numero de tres digitos Console. Centenas. decenas y centenas Unidades = numero % 10. Decenas.WriteLine("Numero invertido : {0}". numero).2.ReadLine()).‐Codificacion(C#) static void Main(string[] args) { int numero. Centenas = numero / 100. numero_invertido).Lenguaje de Programación 154 541 987 325 36 Carlos Rodríguez Torvisco – Algorítmica 451 145 789 523 17.

‐Codificacion(C#) static void Main(string[] args) { int numero. //separar el numero en undades .‐ escribir un algoritmo y su codificacion para calcular el ultimo digito de un numero entero. Unidades.ReadLine()).1. //sumar digitos suma = Unidades+Decenas. numero = int.Write("ingres numero de dos cifras : ").WriteLine("La Suma de sus Digitos es:{0}". //Escribir suma Console. Datos Numero 154 541 987 325 Resultado Ultima Cifra 4 1 7 5 19. Decenas = numero / 10.Parse(Console.1. decenas Unidades = numero % 10.ReadLine(). suma. Decenas. suma).Lenguaje de Programación 18. } 19.‐Algoritmo 37 Carlos Rodríguez Torvisco – Algorítmica Inicio {sumar los dígitos de un número de 2 cifras} {Ingresamos número de dos dígitos} Leer número {Sepáranos el número en unidad y decena} Unidad=numero mod 10 Decena= numero div 10 {Calculamos la suma de los dígitos} suma = Unidad*100+Decena*10+Centena {Mostramos el resultado} Escribir suma Fin 18. Console. //ingresar numero de dos digitos Console.2.‐Algoritmo Inicio {calcular el último digito de un número cualquiera} {Ingresamos un número} Leer número {Calculamos la última cifra} Ultima_cifra=numero mod 10 Escribir Ultima_cifra {Mostramos el resultado} .

numero = int.‐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.Write("Ingrese Nota 2:"). promedio.‐Codificacion(C#) 38 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int numero. } 20.Parse(Console.2.Write("ingres numero de dos cifras : "). Console. nota1 = int.ReadLine()).Parse(Console.Ultima_cifra. nota3.‐Codificacion(C#) static void Main(string[] args) {//declaramos nuestras variables int nota1.ReadLine()). //calculamos el promedio . nota2. //calculamos el ultimo digito de un numero cualquiera Ultima_cifra = numero % 10.Ultima_cifra).‐ escribir un algoritmo y su codificacion ingresadas por teclado. //mostramos el ultimo digito Console.ReadLine()).Parse(Console. Console.1. nota3 = int.Lenguaje de Programación Fin 19.WriteLine("El Ultimo digito es :{0}". //ingresar un numero Console.Parse(Console. //ingresamos las notas Console. Console. nota2 = int.ReadLine()).Write("Ingrese Nota 3:").ReadLine(). Datos Nota 2 20 12 para calcular el promedio de tres notas Nota 1 20 15 Nota 3 20 18 Resultado Promedio 20 15 20.Write("Ingrese Nota 1:").

Datos Sueldo base 450 800 Venta 1 500 1005 Venta 2 645 2000 Venta 3 800 1540 Resultado Comisión 194.‐Codificacion(C#) static void Main(string[] args) { double sb.2.Parse(Console. //ingresamos las tres ventas Console. sb = double. total_venta.ReadLine()). Console. v2. } 21. v3.5 1254.10 {Calculamos el total a pagar} tpag=sb+comision {Mostramos el resultado} Escribir comisión Escribir tpag Fin 21. v1.Parse(Console.Write("ingrese venta 1 : ").‐Algoritmo Inicio {calcular la comisión 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 comisión} Comisión=total_venta*0.Lenguaje de Programación 39 Carlos Rodríguez Torvisco – Algorítmica promedio = (nota1 + nota2 + nota3) / 3.promedio).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. Console. tpag.5 Total a pagar 644.Read().5 454.‐ escribir un algoritmo y su codificacion para un vendedor que recibe un sueldo base más un 10% extra por comisión de sus ventas. . comision.ReadLine()).Write("ingrese su sueldo base : ").5 21. //mostramos el resultado Console.Write("ingrese venta 2 : ").Write("El Promedio es :{0}".1. v1 = double. //ingresamos el sueldo base Console.

1.ReadLine()).d.25 22. //calculamos el total de venta total_venta = v1 + v2 + v3. tpag).2. . //calculamos el total a pagar tpag = sb + comision. Console.15 {Calculamos el total a pagar} tp=tc‐d {Mostramos el resultado} Escribir tp Fin 22. } 22. //ingresamos el total de compra Console.WriteLine("su total a pagar es : {0} ".tp. Console.d. //calculamos el descuento d = tc * 0. tc = float.Parse(Console.Write("ingrese venta 3 : ").ReadLine().85 838. //calculamos la comision comision = total_venta * 0.95 276. v3 = double.9 459.Lenguaje de Programación 40 Carlos Rodríguez Torvisco – Algorítmica v2 = double.10.Parse(Console.‐Algoritmo Inicio {calcular el total a pagar} {Ingresamos el total de compra} Leer tc {Calculamos el descuento} d=tc*0. tp). //mostramos el total a pgar Console. //calculamos el total a pgar tp = tc .Write("ingrese total de la compra : ").‐ 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.Write("el total a pagar es : {0}". comision).WriteLine("su comision es : {0} ".15f. Datos Total de compra 154 541 987 325 Resultado Total a pagar 130. Console. //mostramos los resultados Console.Parse(Console.ReadLine()).‐Codificacion(C#) static void Main(string[] args) { float tc.ReadLine()).

tf.Write("ingrese la calificacion de su trabajo final : "). c1 = float.98 23. //ingresamos la nota del examen final Console.ReadLine()). c3 = float. //ingresamos las tres primeras calificaciones Console.55 ef=ef*0.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 Calificación 1 15 11 Calificación 2 12 12 Calificación 3 11 14 Examen final 15 10 Trabajo final 17 08 Resultado Calificación final 14.ReadLine().Parse(Console.‐Algoritmo Inicio {calcular la calificación final} {Ingresamos las tres calificaciones} Leer c1.Write("ingrese su tercera calificacion : ").Write("ingrese su primera calificacion : "). tf {Calculamos el promedio de las tres calificaciones} prom= (c1. ef. //ingresamos la calificacion de su trabajo final Console. ppar. ptf. ef = float.ReadLine()). . Console. c2.Parse(Console. prom.ReadLine()).2. c2.30 tf=tf*0. c3.Write("ingrese su segunda calificacion : ").02 10.Parse(Console. c2 = float. c2.Write("ingrese la nota de su examen final : ").‐ escribir un algoritmo y su codificacion para un alumno que desea saber cual será su calificacion final en la materia de lenguaje de programacion.15 {Mostramos la calificación final} Escribir cf Fin 23. Console.ReadLine()).Parse(Console.Lenguaje de Programación Console. } 41 Carlos Rodríguez Torvisco – Algorítmica 23.c3)/3 ppar=prom*0. pef. c3 {Ingresamos el examen final y el trabajo final} Leer ef. cf.‐Codificacion(C#) static void Main(string[] args) { float c1.1.

Parse(Console. b = Math. } 25‐ escribir un algoritmo y su codificacion para dada una medida de tiempo expresada en horas.2. Console. //calculamos el 30% de examen final pef = ef * 0. Console.WriteLine("La Raiz cuadrada es de :{0}".ReadLine()). cf). .30f. } 24. entonces transformar dicha medida en una expresión correcta y mostrarla por pantalla.Write("su calificacion final es : {0}". Console. Console.Parse(Console.Sqrt(a). //calculamos el promedio de las tres calificaciones prom = (c1 + c2 + c3) / 3. Datos numero 4 25 81 49 Resultado Raíz cuadrada 2 5 9 7 24. //calculamos el 15% del trabajo final ptf = tf * 0.15f.1. //calcuamos la calificacion final del alumno cf = ppar + pef + ptf.‐Algoritmo Inicio {calcular la raíz cuadrada} {Ingresamos un número cualquiera} Leer a {Calculamos la raíz cuadra de un número} b=√ {Mostramos la raíz cuadrada} Escribir b Fin 24.‐ escribir un algoritmo y su codificacion para sacar la raiz cuadrada de un numero cualquiera.55f.WriteLine("Ingresa un numero para sacarle su raiz cuadrada:"). Console.minutos y segundos ingresados por teclado.Read(). b. //calculamos el 55% de las tres calificaciones ppar = prom * 0.Read().ReadLine()).Lenguaje de Programación 42 Carlos Rodríguez Torvisco – Algorítmica tf = float. a = int.‐Codificacion(C#) static void Main(string[] args) { double a. b).

segundos. minutos.‐Codificacion(C#) static void Main(string[] args) { int hora.Parse(Console. minuto = (totalsegundos % 3600) / 60.Write("Ingresa Hora:").minuto.Parse(Console.‐ escribir un algoritmo y su codificacion que calcule el número mínimo de billetes de 200.segudo). minuto.20. totalsegundos. hora = int. minuto.Lenguaje de Programación Datos Minuto 118 98 43 Carlos Rodríguez Torvisco – Algorítmica Resultado Minuto Correcto 1 40 Hora 3 5 segundo 195 154 Hora Correcta 5 6 Segundo Correcto 15 34 25. //convertimos todo a segundo totalsegundos = hora * 3600 + minuto * 60 + segudo.hora. segudo= int. 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. segundo {Convertimos a segundos} totalsegundos=hora*3600+minuto*60+segundo {Distribuimos el totalsegundos en hora. //distribuimos el totalsegundos en horas.segundos Console. segudo.minutos correctamente hora = totalsegundos / 3600.Parse(Console. } 26. minuto. minuto = int.ReadLine()). //mostramos la hora correctamente Console.100.ReadLine()).50.1.ReadLine()).(Nota:El cheque bancario contiene céntimos).‐Algoritmo Inicio {calcular la hora correcta} {Ingresamos horas.2. Console.Write("Ingresa Minuto:").10 y 1 centimo que son necesarias para cambiar un cheque bancario. segudo = (totalsegundos % 3600) % 60.10 y 5 nuevos soles y monedas de 1 Nuevo Sol:50.Write("{0}:{1}:{2}". Console.Write("Ingresa Segundo:"). segundos} Leer hora. //ingresamos hora.Read(). minuto. segundo Fin 25. . hora = hora % 24. Console.minuto.

billete10 = resto div (10 * 100). resto = resto mod 10. resto = resto mod (1 * 100). {Mostramos el cambio} Escribir billete200 Escribir billete100 Escribir billete50 Escribir billete20 . resto = resto mod (50 * 100). billete20 = resto div (20 * 100). moneda1 = resto div (1 * 100). resto = resto mod (10 * 100). resto = resto mod (20 * 100). billete50 = resto div (50 * 100). resto = resto mod (100 * 100). monedadiez = resto div 10. resto = resto mod 50.‐Algoritmo Inicio {cambio de cheque bancario} {Ingresamos monto a cambiar} Leer monto monto =monto*100 {Calcular número mínimo de billetes de cada denominación} billete200= (int) monto div (200*100) Resto= (int) monto mod (200*100) billete100 = resto div (100 * 100).1.50 1 s/. monedacincuenta = resto div 50.Lenguaje de Programación 44 Carlos Rodríguez Torvisco – Algorítmica Supongamos que el Monto Ingresado sea 4587. resto = resto mod (5 * 100).10 1 5 soles 1 1 sol 2 0. monedauncentimo = resto div 1.50 1 0.75 El cambio seria lo siguiente: s/.10 2 0. moneda5 = resto div (5 * 100).100 1 s/.01 5 Ejemplo codificado 26.200 22 s/.20 1 s/.

Console. billete50. billete200).50 Centimos". monedadiez = resto / 10.10 Centimos". Console. monedadiez). billete50 = resto / (50 * 100). billete20). monto = double.2. int resto.WriteLine("{0} Monedas de 5 Soles".WriteLine("{0} Billetes de 50". moneda5 = resto / (5 * 100). billete10. moneda1). resto = resto % (50 * 100).Escribir . resto = resto % (20 * 100). int billete100.WriteLine("{0} Billetes de 100". monto = monto * 100. Console.Parse(Console. billete100). monedacincuenta = resto / 50.WriteLine("{0} Monedas de 0.WriteLine("{0} Billetes de 10". moneda1 = resto / (1 * 100). billete50). resto = resto % 10. resto = resto % (1 * 100).Read(). billete100 = resto / (100 * 100). resto = (int)monto % (200 * 100). Console.Lenguaje de Programación Escribir billete10 Escribir moneda5 Escribir moneda1 Escribir monedacincuenta Escribir monedadiez Escribir monedauncentimo Fin 45 Carlos Rodríguez Torvisco – Algorítmica 26. Console. billete20 = resto / (20 * 100). monedauncentimo = resto / 1. Console. monedauncentimo.‐ Los organizadores de la competencia automovilista “ 3 vueltas al rio pachachaca” tienen los tiempos (en HH. moneda1. billete10 = resto / (10 * 100). resto = resto % 50. Console.WriteLine("{0} Billetes de 20".Ellos desean determinar el tiempo promedio por vuelta empleado por cada participante. billete20.‐Codificacion(C#) static void Main(string[] args) { double monto. Console. resto = resto % (5 * 100). //calcular numero minimo de billetes de cada denominacion billete200 = (int)monto / (200 * 100). int moneda5. Console. billete200. Console. monedacincuenta). } 27. resto = resto % (10 * 100).WriteLine("{0} Monedas de 0.ReadLine()). Console.Write("Ingrese Monto:").WriteLine("{0} Billetes de 200".SS) empleados por cada participante y en cada vuelta.WriteLine("{0} Monedas de 0. monedacincuenta. resto = resto % (100 * 100).WriteLine("{0} Monedas de 1 Sol". monedadiez. moneda5). billete10). monedauncentimo).MM. //mostramos el cambio respectivo Console.01 Centimo".

‐Algoritmo Inicio {calcular el tiempo promedio} {Ingresamos horas. ss {Ingresamos horas.minuto.seg‐ undo 8:31:25 3:3:5 Ejemplo codificado 27. mm2. ss2 {Ingresamos horas.1. mm. Segundopromedio Fin 27. segundos de la tercera vuelta} Leer hh2.‐Codificacion(C#) . 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. minutos.minuto. segundos de la segunda vuelta} Leer hh2. Minutopromedio.minuto.seg‐ undo 14:12:48 8:43:11 Hora promedio 11 5 Minuto prom. minutos.2. 26 36 Segundo promedio 8 24 1 vuelta Hora.seg‐ undo 11:34:11 5:2:56 Resultado 3 vuelta Hora. mm2. Datos 2 vuelta Hora. minutos. segundos de la primera vuelta} Leer hh.Lenguaje de Programación 46 Carlos Rodríguez Torvisco – Algorítmica un algoritmo y su codificacion para determinar el tiempo promedio por vuelta de un participante.

ss.Parse(Console.SEGUNDOS DEL SEGUNDA VUELTA Console.ReadLine()). ss = int.Red.MINUTOS.MINUTOS. ss2 = int.Write("SS:").SEGUNDOS DEL PRIMERA VUELTA Console.ReadLine()). ss3. Console. Datos Examen parcial 2 20 12 Resultado Promedio final 20 14. Console. segundopromedio = (totalsegundos % 3600) % 60.Parse(Console. ss2. mm3. vuelta3 = hh3 * 3600 + mm3 * 60 + ss3.Write("SS:"). segundopromedio). } 28.Write("HH:").ReadLine()). hh2. Console.ForegroundColor = ConsoleColor.ReadLine()). mm.WriteLine("Tercera Vuelta").‐En el curso de lenguaje de programación I se tomaron dos exámenes parciales y un examen práctica.ReadLine()). Escribir un algoritmo y su codificación que calcule el Promedio final. Console.Write("el promedio es :{0}:{1}:{2}". mm2.WriteLine("Segunda Vuelta").//color de letra Console.SEGUNDOS DEL TERCERA VUELTA Console. mm2 = int. hh = int.Read().Parse(Console.Parse(Console.ReadLine()). //Distribuimos el totalsegundos para que nos de el tiempo promedio horapromedio = totalsegundos / 3600.Lenguaje de Programación 47 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int hh.Cyan.ReadLine()). Console. minutopromedio.ReadLine()). //SUMAR TODAS LAS VUELTAS totalsegundos =(vuelta1+vuelta2+vuelta3)/3.Write("SS:"). totalsegundos.Parse(Console. hh3 = int. //CONVERTIR A SEGUNDO CADA VUELTA vuelta1 = hh * 3600 + mm * 60 + ss.MINUTOS. horapromedio. Console. vuelta2. Console. minutopromedio = (totalsegundos % 3600) / 60.Write("HH:").Blue. //INGRESO LAS HORAS.Write("HH:").Parse(Console. int horapromedio.Write("MM:").ReadLine()). hh3. int vuelta1. //INGRESO LAS HORAS.ForegroundColor = ConsoleColor. Console.Parse(Console. vuelta2 = hh2 * 3600 + mm2 * 60 + ss2.Parse(Console. minutopromedio. segundopromedio.ForegroundColor = ConsoleColor. mm3 = int.//color de letra de la tercera vuelta Console.Parse(Console. horapromedio = horapromedio % 24.4 Examen parcial 1 20 15 Examen practica 20 18 .Write("MM:"). Console. ss3 = int.//color de letra de la segunda vuelta Console. Console. El promedio final se calcula considerando que los exámenes parciales tienes peso dos y la practica peso uno. //INGRESO LAS HORAS. hh2 = int. mm = int. vuelta3.Write("MM:").

ReadLine()). promediofinal).‐Algoritmo Inicio {calcular el área y el perímetro de un rectángulo} {Ingresamos base y altura} Leer bas. Console.Write("Ingresa el Primer Examen Parcial:").Read().Write("El Promedio final es : {0}". Console. examenparcial2.‐Algoritmo Inicio {calcular el promedio} {Ingresamos los dos exámenes parciales y el examen practica} Leer examenparcial1. examenpractica. promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica) / 5.Lenguaje de Programación 48 Carlos Rodríguez Torvisco – Algorítmica 28.2.ReadLine()). perimetro Fin .ReadLine()). examenpractica Promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica)/5 {Mostramos el promedio} Escribir promedio Fin 28. } 29.Parse(Console.Write("Ingresa el Examen Practica:"). altura {Calculamos el area} Area=bas*altura {Calculamos el perímetro} Perímetro=2*(bas+altura) {Mostramos el area y el perímetro} Escribir area. Console. Considere que: área=base x altura y perímetro = 2 * (base + altura) Datos base 10 15 altura 5 29 Área 50 435 Resultado perímetro 30 88 29.1. examenparcial1 = float.1. examenparcial2. promediofinal. examenpractica = float.Parse(Console.‐Diseñe un pseudocódigo y su codificación que halle el área y el perímetro de un rectángulo.Parse(Console. Console.Write("Ingresa el Segundo Examen Parcial:").‐Codificacion(C#) static void Main(string[] args) { float examenparcial1. examenparcial2 = float. Console.

min1. bas. 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 día} Escribir hor2.perimetro). perimetro. } 30.ReadLine()). seg1. //ingresar el tiempo .Parse(Console.Read(). seg2 Fin 30.area). //ingresamos base y altura Console.‐Diseñe un pseudocódigo y su codificación que lea la hora actual del día HH:MM:SS y determine cuantas horas. segres. resto. min2.1. //proceso de calculo area = bas * altura.‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables double area.ReadLine()). min2. Console. Datos Minuto 14 41 Resultado(para que termine el día) Hora Minuto Segundo 17 45 41 3 18 48 Hora 6 20 segundo 19 12 30. altura = double. segundo. seg1 {Calculo de la cantidad de segundos que restan para culminar el día} segres=86400‐(hor1*3600+min1*60+seg) {Descomposición de sgres en horas. min1. hor2.2. seg2. Console. Console. altura.‐Algoritmo Inicio {calcular la hora que falta para que acabe el día} {Ingresamos hora.WriteLine("El Area es :{0}".2.WriteLine("El Perimetro es :{0}".Write("Ingrese Base:"). bas = double. perimetro=2*(bas+altura). minuto} Leer hor1. // mostrar de resultados Console.Write("Ingrese Altura:").Parse(Console.‐Codificacion(C#) static void Main(string[] args) { //declaracion de variables int hor1.Lenguaje de Programación 49 Carlos Rodríguez Torvisco – Algorítmica 29. minutos y segundos restan para culminar el día.

} 31.1. Console.2.Parse(Console.hor2. El resto de las acciones pertenece al tercer hermano. seg1 = int.min2. //calculo de la cantidad de segundos que restan para culminar el día segres = 86400 .Write("Ingresa Mintuo:").ReadLine()). //descomposicion de segres en horas. TercerHermano. min1 = int.WriteLine("Falta:{0}:{1}:{2}". resto = segres % 3600.Parse(Console.67 31. Datos Monto 5648 554788 Primer hermano 2824 277394 Resultado Segundo hermano 1882. Escribir un algoritmo y su codificación que determine el monto correspondiente a cada hermano. Al Primer Hermano le corresponde el 50% de las acciones. TercerHermano Fin 31. hor1 = int.3 92464. SegundoHermano.ReadLine()). Al final de cada mes se debe repartir las utilidades generadas por la empresa en forma proporcional a las acciones de cada hermano.3 Tercer hermano 941.‐Algoritmo Inicio {calcular cuanto le corresponde a cada hermano} {Ingresamos monto} Leer monto {Calculo cuanto le pertenece al primer hermano} PrimerHermano=monto*0.7 184929. min2 = resto / 60. Console.Write("Ingresa Segundo:").(hor1 * 3600 + min1 * 60 + seg1).ReadLine()). SegundoHermano. Monto. Console.Write("Ingresa Hora:").Parse(Console. Al segundo hermano le corresponde una cantidad equivalente a las 2/3 partes de las acciones del primer hermano.seg2). minutos y segundos hor2 = segres / 3600.50 {Calculo cuanto le pertenece al segundo hermano} SegundoHermano=PrimerHermano*2/3 {Calculo cuanto le pertenece al tercer hermano} TercerHermano=PrimerHermano‐SegundoHermano {Mostramos cuanto le corresponde a cada hermano} Escribir PrimerHermano.Lenguaje de Programación 50 Carlos Rodríguez Torvisco – Algorítmica Console. //mostrar la hora que falta para culminar el día Console. seg2 = resto % 60.‐Codificacion(C#) static void Main(string[] args) { float PrimerHermano.Read(). .‐Tres Hermanos constituyen una empresa.

//calculamos el volumen volumen = Math. Console.1. area. //ingresamos el lado del hexaedro Console. TercerHermano).Read(). //escribir cuanto le corresponde a cada hermano Console.2.Write("Ingrese Monto: ").Parse(Console. volumen.ReadLine().area).WriteLine("Segundo hermano le coresponde el : {0}".Pow(lado. //calculamos cuanto le pertence al tercer hermano TercerHermano = PrimerHermano .WriteLine("Tercer hermano le corresponde el : {0}". Monto = int.Lenguaje de Programación 51 Carlos Rodríguez Torvisco – Algorítmica //ingreso monto Console. //calculamos el area area = (lado * lado) * 6.‐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).‐Codificacion(C#) static void Main(string[] args) { double lado. //calculamos cuanto le pertence al primer hermano PrimerHermano = Monto * 0.Write("Ingrese Lado:"). 3). //calculamos cuanto le pertence al segundo hermano SegundoHermano = PrimerHermano * 2 / 3f. Datos Lado 5 2 Resultado Área 150 24 Volumen 125 8 32.WriteLine("El Area del Hexaedro es :{0}". Console.Parse(Console.50f.WriteLine("El Volumen del Hexaedro es :{0}".ReadLine()). lado = double.ReadLine()). SegundoHermano). } 32. PrimerHermano). //mostramos el area y el volumen del hexaedro Console. Console. Console.WriteLine("Primer hermano le corresponde el : {0}".‐Escribir un algoritmo y su codificación para calcular el área y el volumen de un hexaedro. } . volumen Fin 32. Console.SegundoHermano.

‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables float velocidad0. .tiempo {Calculo de la velocidad media y la velocidad instantánea} velocidad5=velocidad0+ (aceleración*tiempo) velocidadmedia5= (velocidad0+velocidad5)/2 {Mostramos los resultados} Escribir velocidad5. velocmedia5).‐Algoritmo Inicio {calcular velocidad media y velocidad instantánea al cabo de 5 segundos} {Ingresamos velocidad inicial. 34‐Emusap puso su siguiente tarifa: por el consumo de agua potable es de S/0. Adicionalmente se cobra por gastos de emisión de facturas y reparto de recibos S/. float velocidad5. //velocidad instantanea=velocidad inicial+aceleracion * tiempo //velocidad media=(velocidad inicial + velocidad final)/2 velocidad5 = velocidad0 + (aceleracion * tiempo). aceleracion.Write("Ingresa Velocidad Inicial:"). velocmedia5.ReadLine()).2. Console.1.Lenguaje de Programación 52 Carlos Rodríguez Torvisco – Algorítmica 33. velocidad0 = float.ReadLine()).Write("\n-La velocidad media durante los 5 segundos es : {0}".aceleracion y el tiempo Console. Escribir el algoritmo y su codificación que calcule: a) La velocidad instantánea al cabo de 5 segundos b) la velocidad media durante los primeros 5 segundos del recorrido Velocidad instantánea = velocidad inicial + aceleración * tiempo Velocidad media = (velocidad inicial + velocidad final)/2 33.Write("Ingresa Tiempo:"). con una aceleración constante de 8 m/s2.Parse(Console. aceleración y tiempo} Leer velocidad0.30 por metro cubico de agua consumida. Console.1.Parse(Console. //ingresamos la velocidad inical.00 por usuario y un 19% por impuesto general a las ventas al costo del servicio.Write("-La velocidad al cabo de 5 segundos es de : {0}". velocmedia5 = (velocidad0 + velocidad5) / 2.ReadLine()).Write("Ingresa Aceleración:"). Escribir un algoritmo y su codificación que calcule el monto que debe pagar un usuario. } Console. tiempo = float. velocidad5). Console.Parse(Console.aceleracion.Read(). //mostramos la velocidad media y la velocidad al cabo de 5 segundos Console. partiendo del reposo. tiempo. velocidadmedia5 Fin 33. aceleracion = float.‐Un coche se mueve.

} 35.ReadLine()).36 4. //calculo el total a pagar total = subtotal + igv + 1.30 {Calculo del igv} Igv=subtotal*0. total).‐Codificacion(C#) static void Main(string[] args) { //declaro mis variables float total. Console. igv.‐Algoritmo Inicio {calcular el monto a pagar por el consumo de agua} {Ingresamos consumo en metros cúbicos} Leer consumo {Calculo del subtotal} Subtotal=consumo*0.00 {Mostramos los resultados} Escribir Total Fin 34.Lenguaje de Programación Datos Consumo(m3) 50 20 15 10 53 Carlos Rodríguez Torvisco – Algorítmica Resultado Total a Pagar 18. //calculo el igv igv = subtotal * 0.1.85 8.Write("\nEl monto a pagar por el usuario es : {0}".2. //muestro el total a pagar Console.Write("Ingrese el consumo de agua (m3):").00f. subtotal.14 6.19 {Calculo del total a pagar} Total=subtotal+igv+1. int consumo.19f.‐Escribir un programa para saber el tamaño en bytes de : ‐int ‐short ‐long ‐char ‐float ‐double .Read(). //calculo el subtotal subtotal = consumo * 0. //ingreso consumo Console.57 34.Parse(Console.30f. consumo = int.

la estatura de una persona podría ser 3’ 2’’ (3 pies 2 pulgadas).‐Diseñe un algoritmo y su codificación para sumar dos tiempos dados en horas. short es :{0} bytes\n".Lenguaje de Programación ‐bool 35.52 soles.‐La Universidad Tecnológica de los Andes ah recibido tres donaciones en soles. double es :{0} bytes\n". 7. Considere que: 1 hora= 60 minutos.Write("El Tamaño Console.‐En una competencia atlética de velocidad el tiempo se mide en minutos. 1 plg= 2.Write("El Tamaño Console. sizeof(double)).‐El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de S/250 más el 12% del monto total vendido. sizeof(char)).1‐Codificacion(C#) static void Main(string[] { Console. long es :{0} bytes\n". bool es :{0} bytes\n". PROBLEMAS PROPUESTOS 1.‐En países de habla inglesa es común dar la estatura de una persona como la suma de una cantidad entera de pies más una cantidad entera de pulgadas.‐ Diseñe un algoritmo y su codificación que determine la suma de las cifras de un número entero positivo de 4 cifras.Write("El Tamaño Console. 4.Write("El Tamaño Console. Diseñe un algoritmo y su codificación que determine el sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes. } args) de de de de de de de un un un un un un un 54 Carlos Rodríguez Torvisco – Algorítmica int es :{0} bytes\n".Write("El Tamaño Console. float es :{0} bytes\n". sizeof(int)). 6.07 euros. sizeof(long)).Write("El Tamaño Console. 8. 1 m = 100cm.54 cm . el espacio recorrido se mide en metros. segundos y centésimas de segundo y. sizeof(short)).08 marcos.Diseñe un algoritmo y su codificación que determine la estatura de una persona en metros. 1 minuto = 60 segundos. char es :{0} bytes\n". sizeof(float)). Diseñe un algoritmo y su codificación para determinar la velocidad promedio de un atleta en km/hr. La donación será repartida en tres rubros: 60% para la implementación de un centro de estudios. Considere que: 1 dólar=3. Así. 1 segundo=100 centésimas de segundo. 5. dólares y marcos. 40% para un comedor de estudiantes y el resto para gastos administrativos. 1 kilometro=1000 metros. Diseñe un algoritmo y su codificación que determine el monto en euros que le corresponde a cada rubro. conociendo su estatura en el formato ingles. 1 dólar=2. 1 dólar=1. Considere que : 1 pie=12 plg. minutos y segundos. sizeof(bool)). .‐Escribir un algoritmo y su codificación para que multiplique dos números complejos 3.Read().Write("El Tamaño Console.‐Escribir un algoritmo y su codificación para que sume dos números complejos 2.

1 megabyte=1024 kilobyte.‐Queremos conocer los datos estadísticos de una asignatura.Suponer una ganancia del vendedor del 12 % en todas lasunidades y un impuesto del 6% y diseñar un algoritmo y su codificación para leer el coste total del automóvil e imprimir el coste para el consumidor.‐Dada las horas trabajadas de una persona y el valor por hora.‐ Queremos realizar un pequeño programa para introducirlo en el ordenador de a bordo de nuestro coche y que nos informe del consumo medio del coche. 10. 16. Diseñe un algoritmo y su codificación para calcular su salario e imprimirlo. 11. 17.‐Diseñar un algoritmo y su codificación que lea dos valores reales y nos muestre los resultados de sumar. los litros de gasolina que se repostaron la última vez y la cantidad de gasolina actual. y nos devuelva: a. aprobados. por lo tanto. Bocadillo de jamón (250 pts) Bocadillo de queso (200 pts) Papas Fritas (100 pts) Refresco (175 pts) Cerveza (125 pts) 14. Diseña un algoritmo que lea el kilometraje de la última vez que se repostó. aprobados. kilobytes y bytes. b. El algoritmo devolverá la cantidad de litros cada 100 kilómetros que consume nuestro coche. necesitamos un algoritmo y su codificación que lea el número de suspensos.‐Diseñe un algoritmo y su codificación que intercambie las cifras de las unidades de dos números naturales.Lenguaje de Programación 55 Carlos Rodríguez Torvisco – Algorítmica 9. introduciendo por teclado el precio de la tarifa y el precio pagado. 1 gigabyte= 1024 megabytes.‐Diseñe un algoritmo y su codificación que exprese la capacidad de un disco duro en megabytes. conociendo la capacidad del disco en gigabytes. el kilometraje actual. 12. del porcentaje de la ganacia del vendedor y de los impuestos locales o estatales aplicables (sobre el precio de venta).‐ El siguiente es el menú de un restaurante de bocadillos. 15.‐El coste de un automóvil nuevo para un comprador es la suma total del coste del vehículo. notables y sobresalientes de la asignatura.El tanto por ciento de alumnos que han superado la asignatura. Considere que:1 kilobyte=1024 bytes. El tanto por ciento de suspensos.dividir y multiplicar dichos números. .restar.notables y sobresalientes de una asgnatura. Diseñar un algoritmo y su codificación capaz de leer el número de unidades consumidas de cada alimento ordenado y calcular la cuenta total.‐Diseñe un algoritmo y su codificación correspondiente a un programa que escribe el porcentaje descontado en una compra. 13.

‐ Calcula el numero de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio.‐ Escribir un programa que lea dos números enteros A y B. 30.‐ Escribir un programa que calcule la velocidad de un proyectil que recorre 2 Km en 5 minutos. 24.37*(temperatura+460)) 25. • Consumo de gasolina (en litros y euros) por cada km • Velocidad media (en km/h y m/s) 21. 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. A mod B.‐Diseñe un algoritmo y su codificación que al introducir una cantidad de dinero expresado en euros nos indique cuantos billetes y monedas se puede tener como mínimo. 27.‐ Escribir un programa que calcule el área y el volumen de un tetraedro.‐Diseñar un algoritmo y su codificación correspondiente a un programa que calcule el área y el perímetro de un triángulo rectángulo dada la base y la altura. y que para cada cuatro personas se utiliza medio kilo de arroz y un cuarto de kilo de gamas.‐ Escribir un programa que calcule el area y el volumen de un cono. el volumen y la temperatura de una masa de aire se relacionan por la fórmula Masa= (presión*volumen)/ (0. y obtenga los valores A div B.‐Diseñar un algoritmo y su codificación correspondiente a un programa que exprese en horas. 22. 23.‐Suponiendo que una paella se puede cocinar exclusivamente con arroz y gambas.‐Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.‐la presión. 29.‐ Diseñar el algoritmo y su codificación que pida el total de kilómetros recorridos. Velocidad=espacio/tiempo 28.Lenguaje de Programación 56 Carlos Rodríguez Torvisco – Algorítmica 18. el precio por kilo de los ingredientes y muestre las cantidades de los ingredientes necesarios y el coste de la misma.pulsaciones= (220 ‐ edad)/10 26. Expresar el resultado en metros/segundo. si la fórmula es: Num. . 19. 20. el precio de la gasolina (por litro).‐leer un numero y escribir el valor absoluto del mismo. minutos y segundos un tiempo expresado en segundos. escribir un programa que pida por pantalla el número de comensales para paella.

‐ Escribir un programa que calcule el numero de horas. La forma completa de la instrucción if es Pseucododigo Si(condición ) entonces Instrucción 1 Instrucción 2 …………. Finsi .‐ Escribir un programa que calcule el área de un rectángulo a partir de sus coordenadas. 32.. sino Instrucción 1 Instrucción 2 …………. minutos y segundos que hay en 3700 segundos..‐Escribir un programa que calcula la siguiente expresión trigonométrica para un valor angular de 90º (sen x * cos x)/ (tan x) 33. Estructuras de control Instrucción if Esta sentencia sirve para ejecutar unas instrucciones en caso de que se cumpla determinada condición.Lenguaje de Programación 57 Carlos Rodríguez Torvisco – Algorítmica 31.

Lenguaje de Programación PROBLEMAS RESUELTOS 58 Carlos Rodríguez Torvisco – Algorítmica 1.mayor.Parse(Console. Datos Numero 2 210 412 Resultado Mayor 2220 818 Numero 1 20 48 Numero 3 2220 818 1.2‐Codificacion(C#) static void Main(string[] args) { int numero1.‐Algoritmo Inicio {Calcular el mayor de tres números} {Ingresamos los tres números} Leer numero1. .Read(). //ingresamos los tres numeros Console. //mostramos el mayor Console.Write("Ingrese Numero 1:"). } 2. numero3. numero2 = int.Parse(Console. Console.ReadLine()).numero3 {Empezamos a Comparar los Tres Números} Si(numero1>numero2) y (numero1>numero3) entonces Mayor=numero1 Sino Si(numero2>numero1) y (numero2>numero3) entonces Mayor=numero2 Sino Mayor=numero3 {Mostramos el número mayor} Escribir mayor Fin 1.Parse(Console. si el primero es mayor que el segundo que los reste y si no que los sume. si son iguales que los multiplique.‐Escribir un programa y su codificación para determinar el mayor de tres números.1.mayor). numero1 = int.WriteLine("El Mayor es :{0}". else mayor = numero3.‐Escribir un programa y su codificación que lea 2 números.ReadLine()). Console.ReadLine()).Write("Ingrese Numero 3:").Write("Ingrese Numero 2:"). //calculamos el mayor if (numero1 > numero2&& numero1> numero3) mayor = numero1. Console.numero2. numero2. numero3 = int. else if (numero2 > numero1 && numero2> numero3) mayor = numero2.

numero2.‐Determinar si un alumno aprueba o reprueba un curso. //mostramos el resultado Console. reprueba en caso contrario.ReadLine()).WriteLine("El Resultado es :{0}". . numero2 = int. //ingresamos los 2 numeros Console. } 3.Read(). else resultado = numero1 + numero2.numero2 {Empezamos a Comparar los 2 Números} Si(numero1=numero2) entonces Resultado=numero1*numero2 Sino Si(numero1>numero2) entonces Resultado=numero1‐numero2 Sino Resultado=numero1+numero2 {Mostramos el número resutlado} Escribir resultado Fin 2. else if (numero1>numero2) resultado = numero1 .1. Console.‐Codificacion(C#) static void Main(string[] args) { int numero1.Parse(Console. int resultado.2. sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 10.‐Algoritmo Numero 2 45 12 Resultado Condición Resultado Numero1=Numero2 45*45=2025 Numero1>Numero2 23‐12=11 Inicio {Calculo de 2 números: suma.Write("Ingrese Numero 2:"). resta y multiplicación} {Ingresamos los dos números} Leer numero1.resultado). numero2.Write("Ingrese Numero 1:").Lenguaje de Programación 59 Carlos Rodríguez Torvisco – Algorítmica Datos Numero 1 45 23 2.ReadLine()). //preguntamos si los nuemros son iguales if (numero1 == numero2) resultado = numero1 * numero2.Parse(Console. numero1 = int. Console.

Read(). Console. } else { Console.ReadLine()).1000 ¿Diseñar un algoritmo y su codificación para que Cuál será la cantidad que pagará una persona por su compra? Datos Resultado Compra Total a Pagar 20000 16000 2412 1929. calif2 = float.1.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.Write("ingrese su primera calificacion : "). calif2. } Console.6 .calif2.Lenguaje de Programación 60 Carlos Rodríguez Torvisco – Algorítmica Calificación 1 8 14 3. calf3.2.WriteLine("Alumno Reprobado").Parse(Console. promedio.WriteLine("Alumno Aprobado"). promedio = (calif1 + calif2 + calf3) / 3.Write("ingrese su tercera calificacion : ").‐En un almacén se hace un 20% de descuento a los clientes cuya compra supere los S/.‐Algoritmo Datos Calificación 2 7 16 Calificación 3 10 10 Resultado Mensaje reprueba aprueba Inicio {Calculo del promedio de un alumno para saber si aprueba o desaprueba} {Ingresamos las tres calificaciones} Leer calif1. Console.‐Codificacion(C#) static void Main(string[] args) { float calif1. if (promedio >= 10) { Console.Write("ingrese su segunda calificacion : "). calif1 = float.ReadLine()). calf3 = float. } 4.ReadLine()).Parse(Console.Parse(Console. Console.

} else descuento = 0. Console.Write("total a pagas es :{0}".‐Codificacion(C#) 61 Carlos Rodríguez Torvisco – Algorítmica 100 840.‐Algoritmo Inicio {Calculo del total a Pagar} {Ingresamos la compra} Leer compra Si (compra>1000) entonces Descuento=compra *0. if (compra > 1000) { descuento = compra * 0. //mostramos el total a pagar Console.Read(). el cual se obtiene de la siguiente manera: Si trabaja 40 horas o menos se le paga S/.8 static void Main(string[] args) { float compra.Lenguaje de Programación 100 1051 4.‐Un obrero necesita calcular su salario semanal.1.2. //calculamos el total a pagar tap = compra-descuento.Parse(Console. Datos Horas Trabajadas 55 46 20 15 Resultado Salario Semanal 940 760 320 240 . 16 por hora. compra = float.16 por cada una de las primeras 40 horas y S/.tap).20 Sino Descuento=0 Finsi {Hacemos cálculo del total a pagar} Tap=compra‐Descuento {Imprimimos el total a pagar} Escribir Tap Fin 4.ReadLine()).20 por cada hora extra. } 5.descuento.20f.tap.Write("ingresa su consumo :"). si trabaja más de 40 horas se le paga S/. //ingresamos el consumo Console.

ss).4 .‐Codificacion(C#) static void Main(string[] args) { float ss.Parse(Console. Console. Datos 45 4 12 4 Resultado 12. ht = int. //ingresamos las horas trabajadas Console.‐Algoritmo Inicio {Calculo del Salario Semanal} {Ingresamos Horas Trabajadas} Leer ht Si (ht>40) entonces {Calculamos sus horas extras} he=ht‐40 {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. } else { //calculamos el salario semanal del caso contrario ss = ht * 16.Lenguaje de Programación 62 Carlos Rodríguez Torvisco – Algorítmica 5.1. he.40. int ht. //calculamos el salario semanal ss = he * 20 + 40 * 16.‐Diseñar un algoritmo y su codificación que lea dos números y los imprima en forma ascendente.ReadLine()).45 4.ReadLine().Write("Ingresa Horas Trabajadas:"). } 6. if (ht > 40) { //calculamos las horas extras he = ht .2.Write("El Salario Semanal es :{0}". } //mostramos el salario semanal Console.

‐Diseñar un algoritmo y su codificación que lea tres números y los imprima en forma ascendente.{1}".Parse(Console.14.Write("{0}. numero2 Sino Escribir numero2.Write("Ingresa Numero 1:").1. if (numero1 < numero2) Console.Lenguaje de Programación 6.Read(). Console. Console.‐Algoritmo Inicio {Ordenar 3 números en forma ascendente} {Ingresamos los números} Leer numero1.numero2.10 10.numero2 Si (numero1<numero2) entonces {Mostramos los números en forma ascendente} Escribir numero1. Datos Numero 2 7 16 Resultado Mostrar 7.2.numero1.16 Numero 1 8 14 Numero 3 10 10 7.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 .8. numero2.ReadLine()).‐Codificacion(C#) static void Main(string[] args) { int numero1. numero2.Write("{0}. numero1). numero2 = int. else Console.numero2). Console.{1}". } 7.Write("Ingresa Numero 2:"). numero1 Finsi Fin 6. numero1 = int.1.ReadLine()).‐Algoritmo 63 Carlos Rodríguez Torvisco – Algorítmica Inicio {Ordenar dos números en forma ascendente} {Ingresamos los numeros} Leer numero1.Parse(Console.

numero3 Fin 7.Lenguaje de Programación {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 números en forma ascendente} Escribir numero1. } if (numero2 > numero3)//intercambiar numero2 y numero 3 { temporal = numero2.{2}". } //mostrar los datos en forma ascendente Console. if (numero1 > numero3)//intercambiar numero1 y numero 3 { temporal = numero1.{1}. numero1 = numero2. es posible determinar el nivel de la temperatura haciendo uso de un grillo como termómetro.numero3).numero2. numero3 = temporal.Parse(Console.ReadLine()). numero3 = temporal. } if (numero1 > numero2)//intercambiar numero1 y numero 2 { temporal = numero1. numero1 = int. numero2. numero2. es una fracción de la temperatura. Console.2. Console.‐ El número de sonidos emitidos por un grillo en un minuto.Write("Ingresa Numero 2:").‐Codificacion(C#) 64 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int numero1. numero2 = numero3.Write("Ingresa Numero 3:").Parse(Console.ReadLine()). . } 8. Console.Parse(Console.Write("Ingresa Numero 1:"). numero2 = int. Como resultado de esto. Console. numero3 = int.numero1. numero2 = temporal.Write("{0}.ReadLine()).Read().numero3.temporal. numero1 = numero3.

if (n >= 0) { t = n / 4 + 40. } Console.1. determine si los mismos satisfacen la siguiente expresión: P 3 + Q 2 − 2P 2 ≤ 680 En caso afirmativo debe imprimir los valores P y Q.1.1. que dados como datos los valores enteros P y Q.Parse(Console. Console. float t. n = int. } 9.ReadLine()).‐ Construya un programa tal. t).Lenguaje de Programación 65 Carlos Rodríguez Torvisco – Algorítmica Datos(Numero de Sonidos) 30 48 8. Datos P 50 3 Q 20 9 Exp 120400<=680 90<=680 Resultado Mensaje No satisfacen Si satisfacen VALORES ‐ P=3 Q=9 9.ReadLine().‐Algoritmo Inicio {Calcular los Valores para P y Q} {Ingresamos el valor para P y Q} . {Mostrar la Temperatura en Grados Fahrenheit} Escribir t Finsi Fin 8.Write("Ingresar Número de Sonidos Emitidos por el Grillo en 1 Minuto: "). //Ingresamos el Total de Sonidos Emitido por el Grillo Console.‐Algoritmo Resultado(Temperatura ºF) 47 ºF 52ºF 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.‐Codificacion(C#) static void Main(string[] args) { int n.Write(" La Temperatura en Grados Fahrenheit es :{0}".

Parse(Console.ReadLine()). p = int. 2) . 10.2.Write("Ingresar el valor de Q: "). q). considere un aumento del 15% si su sueldo es inferior a s/. //Calculamos la Expresion exp = Math. } } Console. q = int. Console.Pow(p. if (exp <= 680) { Console.1000.Lenguaje de Programación 66 Carlos Rodríguez Torvisco – Algorítmica Leer p . Q={1}".WriteLine("Los Valores si Satisfacen La expresión Matemática ").WriteLine("EL Valor de la EXPRESION MATEMATICA es : {0}".1.WriteLine("Los valores no satisfacen la expresión matemática"). exp). y de un 12% en caso contrario. Datos Sueldo 1500 900 10. } else { Console.ReadLine()). p.WriteLine("P={0} .Pow(p. Imprima el sueldo con el aumento incorporado.ReadLine().2 * Math.‐Algoritmo Inicio {Calcular Sueldo Nuevo de un Trabajador} {Ingresamos Sueldo} Auxiliar Condicion Descuento 1500<1000 12% 90<1000 15% Resultado Sueldo Actual 1680 1035 .q Sino Escribir “La Expresion es Mayor a 680” Finsi Fin 9. Console.‐Codificacion(C#) static void Main(string[] args) { int p.Pow(q. Console. 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.Parse(Console.Write("Ingresar el valor de P: "). 3) + Math. 2).‐ Dado como dato el sueldo de un trabajador. Console. q. Haga el programa correspondiente. double exp.

‐Codificacion(C#) static void Main(string[] args) { float sue.Lenguaje de Programación 67 Carlos Rodríguez Torvisco – Algorítmica 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.12f.15f.ReadLine(). 1500 ‐‐‐‐‐‐‐> AUMENTO 21% SUELDO > s/.2. Datos Sueldo 1500 900 1700 11. if (sue < 1000) //Cuando solo hay un Proceso no es Necesario LLaves nsue = sue * 1. 1000 > SUELDO <= s/. nsue). sue = float. Console.15 Sino {Calculamos el Sueldo Nuevo con 12% de Descuento} nsue=sue*1. Console. calcule su aumento según el siguiente criterio: SUELDO <= s/.1000 ‐‐‐‐‐‐‐> AUMENTO 25% s/.ReadLine()).1.‐Algoritmo Auxiliar Condicion Descuento 1000>1500<=1500 21% 900<=1000 25% 1700>1500 18% Resultado Sueldo Actual 1815 1125 2006 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} .Write("Ingresar el Sueldo Actual: ").‐ Construya un programa tal.12 Finsi {Mostrar el nuevo sueldo} Escribir nsue Fin 10. que dado como dato el sueldo de un trabajador. else nsue = sue * 1. nsue. } 11.Parse(Console. 1500 ‐‐‐‐‐‐‐> AUMENTO 18% Imprima el nuevo sueldo del trabajador.WriteLine("El Nuevo Sueldo es: {0} ". Console.

si un número es divisor de otro. } 12.25.ReadLine()). Datos Numero 1 2 8 5 12. if (sue < 1000) nsue = sue * 1.Parse(Console. else nsue = sue * 1. “es divisor de”.‐Algoritmo Numero2 4 2 9 Resultado Mensaje Si es divisor Si es divisor No es divisor Inicio {Calcular si 2 numeros son divisores} {Ingresamos numero 1 y numero 2} Leer n1.18.25 Sino Si (sue<=1500) entonces {Calculamos el Sueldo Nuevo con 21% de Descuento} nsue=sue*1.‐Codificacion(C#) static void Main(string[] args) { double sue. dados dos números enteros.WriteLine("El Nuevo Sueldo es:{0}". nsue.1.21 Sino {Calculamos el Sueldo Nuevo con 21% de Descuento} nsue=sue*1.2. else if (sue <= 1500) nsue = sue * 1. Console.21 Finsi Finsi {Mostrar el nuevo sueldo} Escribir nsue Fin 11.Write("Ingresar el Sueldo Actual: ").ReadLine(). nsue).‐ Construya un programa que pueda determinar. Console. Console.n2 .Lenguaje de Programación 68 Carlos Rodríguez Torvisco – Algorítmica nsue=sue*1.n2 Si (n2 mod n1 =0) entonces Escribir n1.21. sue = double.

‐ Haga un programa para calcular el precio del billete de ida y vuelta en ferrocarril.ReadLine()). if ((n2 % n1) == 0) { Console.WriteLine("{0} es Divisor de {1}".‐Algoritmo Inicio {Calcular el Costo de Billete de un Ferrocarril} {Ingresamos Distancia y tiempo } Leer dist.conociendo la distancia del viaje de ida y el tiempo de estancia.WriteLine("No hay números divisores"). El precio por km es de s/. Console. Console.17. n1. } Console.Write("Ingresa el Primer Número:").‐Codificacion(C#) 69 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int n1. n2.1. Se sabe además que si el número de dias de estancia es superior a 7 y la distancia total (ida y vuelta) a recorrer es superior a 800 km.17 * 0. } else { Console.Parse(Console.Parse(Console. n2). } else if ((n1 % n2) == 0) { Console. n2 = int.2. 0. Tiempo 4 8 Resultado Costo del Billete 136 119 . n2.ReadLine(). } 13. “es divisor de”. el billete tiene una reducción del 30%. n1). Datos Distancia(viaje de ida) 400 500 13.WriteLine("{0} es Divisor de {1}".n1 Sino Escribir “no hay numeros divisores” Finsi Finsi Fin 12.Write("Ingresa el Segundo Número:").ReadLine()). n1 = int.70.Lenguaje de Programación Sino Si (n1 mod n2 =0) entonces Escribir n2.tiem Si (((dist * 2) > 800) y (tiem > 7)) entonces {Calculamos el costo de billete} costo = dist * 2 * 0.

17.ReadLine().WriteLine("El Costo del Billete es: S/.ReadLine()). costo).b. tiem = int. determine si los mismos están en orden creciente. Console. Datos Numero 2 7 2 Resultado Mensaje No están en orden creciente Están en orden creciente Numero 1 8 1 Numero 3 10 3 14.Write("Ingresar Distancia del Viaje de ida: ").ReadLine()).30. que dados como datos de entrada tres números enteros. if (((dist * 2) > 800) && (tiem > 7)) { costo = dist * 2 * 0.1.17)*0.‐Algoritmo Inicio {Calcular si 3 numeros están en orden creciente o no} {Ingresamos los tres numeros} Leer a.17. Console.‐Construya un programa tal. double costo. //Otra Forma //costo=(dist*2*0.Parse(Console.17)-costo } else costo = dist * 2 * 0. Console. Console.{0}".Write("Ingresar Tiempo de Estancia: "). dist = int. tiem. Finsi {Mostrar el costo del billete} Escribir costo Fin 13.70.‐Codificacion(C#) 70 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int dist.17 * 0. //CostoTotal=(dist*2*0. } 14. Si (a<b) entonces Si (b<c) entonces Escribir “los números están en orden creciente” Sino Escribir “los números no están en orden creciente” Finsi Sino .Parse(Console.Lenguaje de Programación Sino costo = dist * 2 * 0.2.c.

0016 comprueba la igualdad” 15.0016 entonces 0. } else { Console. N=4 5‐4= 0.0016 = 0.ReadLine()). que dados como datos A y N.Write("Los números estàn en orden creciente"). c = int.0016 “se Inicio {Comprobar la igualdad d de la expresión} {Ingresamos Base y Exponente} Leer A. b. c.Write("Ingresar el 2º Numero: ").Parse(Console.ReadLine()).Parse(Console.2.Lenguaje de Programación 71 Carlos Rodríguez Torvisco – Algorítmica Escribir “los números no están en orden creciente” Finsi Fin 14.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” .Write("Ingresar el 1º Numero: "). } } else { Console. Console. } 15. b = int.ReadLine().1. 1/54 =1/625=0.Write("Los números no estàn en orden creciente"). if (a < b) { if (b < c) { Console.‐Codificacion(C#) static void Main(string[] args) { int a.ReadLine()). compruebe la igualdad de la siguiente expresion: A −N = A=5 . a = int.‐Algoritmo 1 (A ≠ 0) AN .Write("Los números no estàn en orden creciente").‐Construya un programa de flujo tal.Parse(Console. Console. Console. } Console.Write("Ingresar el 3º Numero: ").

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 AN A   = N B B N . -N).Write("Ingresar A: ").Pow(A. cal2.‐Algoritmo Inicio {Comprobar la igualdad d de la expresión} {Ingresamos los Datos Necesarios} Leer A.ReadLine()). que dados como datos A.ReadLine().Parse(Console. if (cal1 == cal2) { Console. } 16.WriteLine("A tiene que ser diferente de cero"). } } else { Console.WriteLine("Se comprueba la igualdad"). N). if (A != 0) { cal1 = Math.Write("Ingresa N:"). A = double. compruebe la igualdad de la siguiente expresión: 16. } Console. Console. cal2 = 1 / Math. Console.Pow(A. double A.‐Codificacion(C#) 72 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int N. } else { Console.B.1.WriteLine("No se comprueba la igualdad").ReadLine()).Lenguaje de Programación Finsi Sino Escribir “A tiene que ser Diferente de 0” Finsi Fin 15. cal1. B y N.Parse(Console. N = int.2.‐Construya un programa tal.

Write("Ingresar A: ").Lenguaje de Programación Sino Escribir “B tiene que ser Diferente de 0” Finsi Fin 16.WriteLine("Se comprueba la igualdad"). if (cal1 == cal2) { Console. cal2 = Math. El descuento se efectúa con base en el siguiente criterio: Si el monto es menor que s/. 15000 inclusive ‐‐‐‐‐‐‐‐‐> 18% de descuento.ReadLine()). N) / Math. Console. N).‐En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra. N = int. 1000 inclusive ‐‐‐‐‐‐‐‐‐> 5% de descuento. } } else { Console. 1000 y s/. double a. } Console. Si el monto est comprendido entre s/. cal2.ReadLine()). b.500 ‐‐‐‐> no hay descuento. 500 y s/.Pow(a. a = double.WriteLine("B tiene que ser diferente de cero"). N). } 17.WriteLine("No se comprueba la igualdad").ReadLine(). } else { Console.Pow(b.ReadLine()). 7000 y s/.2. b = double.Pow((a / b). if (b != 0) { cal1 = Math.Write("Ingresar B: "). Si el monto está comprendido entre s/.‐Codificacion(C#) 73 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int N. que dado el monto de la compra . 7000 inclusive ‐‐‐‐‐‐‐‐‐> 11% de descuento. Si el monto es mayor a 15000 Inclusive ‐‐‐‐‐‐‐‐‐‐‐> 25% Construya un programa tal. Console.Parse(Console. Si el monto est comprendido entre s/. Console. cal1.Parse(Console.Write("Ingresar N: ").Parse(Console.

else Auxiliar Condicion Descuento 7000<7500<=15000 18% 500<900<=1000 5% 1000<1700<=7000 11% 400<500 0 Resultado Monto a Pagar 5625 855 1275 400 . Finsi Finsi Finsi Finsi {Mostrar el total a pagar} Escribir pagar Fin 17.11.‐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.1. if (compra < 500) pagar = compra.Lenguaje de Programación 74 Carlos Rodríguez Torvisco – Algorítmica de un cliente.05. Sino Si (compra<= 15000) entonces pagar = compra ‐ compra * 0. Datos Compra 7500 900 1700 400 17. else { if (compra <= 1000) pagar = compra .Parse(Console. Sino Si (compra<=7000) entonces pagar = compra ‐ compra * 0.2.25.18.ReadLine()). compra = double.05.Write("Ingresar Monto de la Compra: "). pagar.compra * 0. Console. determine lo que el mismo debe pagar. Sino pagar = compra ‐ compra * 0.‐Codificacion(C#) static void Main(string[] args) { double compra.

‐Construya un programa tal. } } Console. y = int.compra * 0.compra * 0. Console. que dado como dato Y.ReadLine(). else if(y<=64) x = (y * y * y) + (y * y) .18.ReadLine()). el resultado de la funcion es:{1}".Lenguaje de Programación { 75 Carlos Rodríguez Torvisco – Algorítmica } } Console. else { if (y <= 33) x = y * y . x=0.WriteLine("para Y={0}.WriteLine("El Numero está fuera del Rango!! ").1. Console.11. 18. if ((y <= 0) || (y >= 64)) { x = 0. else { if (compra <= 1500) pagar = compra . Console.Write("Ingresa Y:"). } else { if (y <= 11) x = 3 * y + 36.25.y. else pagar = compra .Parse(Console. } 18. } . calcule el resultado de la siguiente función: 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.ReadLine().10.‐Codificacion(C#) static void Main(string[] args) { float y.x). } if (compra <= 700) pagar = compra .compra * 0.2.WriteLine("El Monto a Pagar es:{0}". Console. pagar).

500.3. Sino Si (prebas > 40 y prebas <= 500) entonces imp = 20 * 0. Sino imp = 0.‐Codificacion(C#) static void Main(string[] args) { double prebas. prebas = double. Diseñe un programa que lea el costo basico de un articulo y calcule su precio total(precio total = precio básico + impuesto).1.4.4 + (prebas ‐ 500) * 0. else { if (prebas > 40 && prebas <= 500) imp = 20 * 0. 20 tienen el 30% de impuesto.Lenguaje de Programación 76 Carlos Rodríguez Torvisco – Algorítmica 19.5 15 785 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.ReadLine()).20) * 0.‐Algoritmo Resultado Monto a Pagar 26.Parse(Console. pretot. . else { if (prebas > 500) imp = 20 * 0. if (prebas > 20 && prebas <= 40) imp = (prebas . y el resto el 40% de impuesto.30 + (prebas ‐ 40) * 0.30 + (prebas ‐ 40) * 0. pero si el costo del producto es mayor a s/.500) * 0.40) * 0.4. entonces en lugar de 40% se cobra el 50%. 20 no causan impuesto.{no se le aplica impuesto} Finsi Finsi Finsi Escribir prebas +imp Fin 19.Write("Ingresar Precio Basico del Producto: ").5. los siguientes S/. el impuesto que se debe pagar por los artículos se calcula mediante la siguiente regla: los primeros s/.4 + (prebas .3. Sino Si(prebas > 500) entonces imp = 20 * 0. Datos Precio Basico 25 15 550 19.30 + (prebas .30 + (prebas .2.‐ En la Ciudad de Abancay. imp. Console.5.40) * 0.

teniendo en cuenta la siguiente tabla: DEPORTE Natación Tenis Golf Esquí Marcha TEMPERATURA >85 70<temp<=85 32<temp<=70 10<temp<=32 <=10 Datos Temperatura(ºF) 87 75 50 27 5 20.‐ Construya un programa tal. determine el deporte que es apropiado practicar a esa temperatura.ReadLine(). pretot). prebas).1. Console.‐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 . Console. 20. 77 Carlos Rodríguez Torvisco – Algorítmica } } } pretot = prebas + imp.WriteLine("Precio Basico: {0}".WriteLine("Precio Total: {0}". que dado como dato una temperatura en grados Fahrenheit.Lenguaje de Programación else imp = 0. Console.

WriteLine("Es apropiado practicar Esqui"). else { if (temp > 32) Console.1622 X=15= 15 mod 4 == 3 entonces 15*15*15+5=3380 .WriteLine("Es apropiado practicar Natación").Lenguaje de Programación 78 Carlos Rodríguez Torvisco – Algorítmica Sino Escribir “Es Apropiado para Marcha” Finsi Finsi Finsi Finsi Fin 20. else { if (temp > 10) Console.ReadLine()).WriteLine("Es apropiado practicar Marcha"). Console. según la expresión: 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.WriteLine("Es apropiado practicar Golf").Write("Ingresar Temperatura en Grados Fahrenheit: ").2. if (temp > 85) Console.WriteLine("Es apropiado practicar Tenis").Parse(Console.‐Codificacion(C#) static void Main(string[] args) { float temp.ReadLine().83333 X=10 = 10 mod 4 == 2 entonces √10=3.‐ Haga un programa que permita calcular el valor de F(x). temp = float. } } } } Console. else Console. else { if (temp > 70) Console. 21.

else if (res == 3) resu = x * x * x + 5. que pesa 70 kg.ReadLine()). res = (int)x % 4.Write("Ingrese X:"). x = int.‐Una Persona enferma. if (res == 0) resu = x * x. else if (res == 1) resu = x / 6. } 22.ReadLine(). Console. int res. Console.‐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 calorías} Escribir Resu Fin 21. se encuentra en reposo y desea saber cuantas calorías consume su cuerpo durante todo el tiempo que realice una misma actividad. double resu=0. .1. else if (res == 2) resu = Math.2.WriteLine("El Resultado es:"+resu).Sqrt(x).Lenguaje de Programación 79 Carlos Rodríguez Torvisco – Algorítmica 21. Console.Parse(Console.‐Codificacion(C#) static void Main(string[] args) { double x.

} Tiempo 30 21 Resultado Cantidad Calorías 32.‐Algoritmo Inicio {Calcular el total de calorías de un persona enferma} {Ingresamos estado y tiempo} Leer estado. estado = Console. } //mostramos el total de calorías Console.4 34.Write("Ingrese Tiempo:"). double cg.66 * tiempo. Console. } else { //calculamos el total de calorías en estado sentado cg = 1.66 calorías por minuto.cg).08*tiempo Sino {Calculamos el total de calorías en estado sentado} cg=1. tiempo = int. Los datos que tiene son que estando dormido consume 1. Console.08 * tiempo.ReadLine()).tiempo Si (estado=”dormido”) entonces {Calculamos el total de calorías en estado dormido} cg=1.‐Codificacion(C#) static void Main(string[] args) { string estado.86 .Parse(Console.Write("Total de Calorías es :{0}".1. if (estado == "dormido") { //calculamos el total de calorias en estado dormido cg = 1.Write("Ingrese Estado(dormido/sentado):").2.66*tiempo Finsi {Mostrar el total de calorías} Escribir cg Fin 22.Read().08 calorías por minuto y estando sentado en reposo consume 1. Datos Estado Dormido Sentado 22.ReadLine(). int tiempo.Lenguaje de Programación 80 Carlos Rodríguez Torvisco – Algorítmica Las actividades que tienen permitido realizar son únicamente dormir o estar sentado en reposo. //Ingresamos el estado y el tiempo Console.

1. El descuento lo hace en base a la clave.01 Sino {Calculamos el precio con descuento del caso contrario} Prec_desc=precio_original‐precio_original*0. clave. precio original y su precio con descuento. precio_original Si (clave=01) entonces {Calculamos el precio con descuento} Prec_desc=precio_original‐precio_original*0.02 Finsi {Mostrar el precio con descuento. 23. la clave y el precio original} Escribir nombre.2.‐Algoritmo Inicio {Calcular el precio con descuento} {Ingresamos nombre. Prec_desc Fin 23. Ejemplo codificado.‐Codificacion(C#) static void Main(string[] args) { . clave. precio_original. el nombre. clave. precio original} Leer nombre. 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).‐Hacer un algoritmo que imprima el nombre de un artículo.Lenguaje de Programación 81 Carlos Rodríguez Torvisco – Algorítmica 23. clave.

ReadLine().precio {Calculamos el total de compra} Totalcom=numero_camisas*precio Si (numero_camisas>=3) entonces {Calculamos el total total a pagar } totpag=totalcom‐totcom*0.Lenguaje de Programación 82 Carlos Rodríguez Torvisco – Algorítmica string nombre.‐Hacer un algoritmo y su codificación que calcule el total a pagar por la compra de camisas. nombre = Console. clave. //ingresamos el nombre la clave y el precio original Console. clave = int. Console.WriteLine("\nNombre:" + nombre). Console.20.20 Sino {Calculamos el total total a pagar del caso contrario } totpag=totalcom‐totcom*0.precio_original * 0.10 Finsi {Mostrar el total a pagar por la compra de camisas} Escribir totpag Fin Precio 30 21 Resultado Total a pagar 54 67.precio_original * 0.WriteLine("Precio Original:"+precio_original). } 24.Write("Ingresa Clave:"). Si se compran tres camisas o más se aplica un descuento del 20% sobre el total de la compra y si compra menos de tres camisas un descuento del 10%. Console.Parse(Console. Datos Numero de camisas 2 4 24.Write("Ingresa Precio Original:").ReadLine()).10.Write("Ingresa Nombre:").ReadLine().precio_descuento. precio_original = double.ReadLine()). Console.WriteLine("Clave:"+clave). Console. if (clave == 1) { //calculamos el precio de descuento precio_descuento = precio_original . double precio_original.‐Algoritmo Inicio {Calcular el total a pagar por el consumo de camisas} {Ingresamos numero de camisas y el precio por camisa} Leer numero_camisas.2 . } //mostramos los resultados necesarios Console.1. } else { //calculamos el precio de descuento del caso contrario precio_descuento = precio_original . Console.Parse(Console.WriteLine("Precio con Descuento:"+precio_descuento).

Console. precio = int. 25. //ingresamos el numero de camisas y el precio por camisa Console. Si el monto total de la compra no excede de S/.‐Codificacion(C#) 83 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int numero_camisas.(totalcom * 0.Read(). El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito. if (numero_camisas >= 3) { //calculamos el total a pagar totpag = totalcom .Write("Ingresa su precio:"). dependiendo del monto total de la compra.ReadLine()).Parse(Console. } 25.(totalcom * 0.ReadLine()). costo_pieza . pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante.500 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra. La empresa.20f).Write("su total a pagar es:{0}".10f). totalcom. //calculamos el total de compra totalcom = numero_camisas * precio.1. } else { //calculamos el total a pagar del caso contrario totpag = totalcom .Write("Ingresa Numero de Camisas:").‐Una empresa quiere hacer una compra de varias piezas de la misma clase a una fábrica de refacciones.Parse(Console. Si el monto total de la compra excede de S/.Lenguaje de Programación 24. decidirá que hacer para pagar al fabricante.‐Algoritmo Inicio {Ingresamos numero piezas y el costo por pieza} Leer numero_pieza. numero_camisas = int. totpag. Console. totpag). float precio. } //mostramos el total a pagar Console.500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante.2.

crédito.ReadLine()). crédito. double cantidadinvertida. } //calculamos el concepto de intereses interes = credito * 0. Console.WriteLine("Credito:"+credito).20 {mostramos préstamo. Console. prestamo. Console. credito.15 Sino {Calculamos el el préstamo .‐Codificacion(C#) static void Main(string[] args) { double costo_pieza. numero_pieza. //mostramos los resultados necesariso Console. credito = totalcompra * 0.15 Préstamo=0 Finsi {Calculamos el concepto de interes} Interés=crédito*0.Read(). //ingresamos el el costo por pieza y el numero de piezas Console.20. } else { cantidadinvertida = totalcompra * 0.2.70.Write("Ingrese Costo por Pieza:").WriteLine("Cantidad Invertida:"+cantidadinvertida). Console. } .ReadLine()).Write("Ingrese Numero de Pieza:").Parse(Console.55.cantidad invertida. interés} Escribir cantidadinvertida. if (totalcompra > 500000) { cantidadinvertida = totalcompra * 0. //calculamos el total de compra totalcompra = costo_pieza * numero_pieza. prestamo = 0. crédito.30 Crédito=totalcomp*0.70 Crédito=totalcomp*0.15. costo_pieza = double. interes Fin 25. prestamo = totalcompra * 0. totalcompra. préstamo.Lenguaje de Programación 84 Carlos Rodríguez Torvisco – Algorítmica {Calculamos el total de compra} Totalcom=numero_pieza*costo_pieza Si (totalcompra>500000) entonces {Calculamos el el préstamo .30.WriteLine("Interes:"+interes). credito = totalcompra * 0. Console. interés y la cantidad invertida } Cantidadinvertida=totalcompra*0. numero_pieza = int.WriteLine("Prestamo:"+prestamo).Parse(Console. crédito. double interes. interés y la cantidad invertida del caso contrario } Cantidadinvertida=totalcompra*0.55 Préstamo=totalcompra*0.30.

WriteLine("Ingrese Precio por Hora:").ReadLine()).precioporhora.Parse(Console. precioporhora = int.pagoextradelextra.‐Codificacion(C#) static void Main(string[] args) { double horatrabajadas. Console. double pagoextra. //ingresamos las horas trabajadas y el precio por hora Console. } else { .horaextras. 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.tp. sabiendo que cuando las horas de trabajo exceden de 40.‐Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa.precioporhora Si (horatrabajadas<=40) entonces {pago de horas normales sin horas extras } tp=horatrabajadas*preciohora Sino horaextras=horatrabajadas‐40 Si (horaextras<=8) entonces pagoextra=horaextras*precioporhora*2 Sino pagoextradelextra=8*precioporhora*2 pagoextra=((horaextras‐8)*precioporhora*3)+pagoextradelextra Finsi tp=40*precioporhora+pagoextra Finsi {mostramos el dinero que recibirá el trabajador} Escribir tp Fin 26.ReadLine()). if (horatrabajadas <= 40) { //pago de horas normales sin horas extras tp = horatrabajadas * precioporhora.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.WriteLine("Ingrese Hora Trabajadas:").2. horatrabajadas = int.Parse(Console.Lenguaje de Programación 85 Carlos Rodríguez Torvisco – Algorítmica 26.el resto consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8.

8)*1.26 27.8) * precioporhora * 3) + pagoextradelextra. Datos consumo 30 30*0. //ingresamos el consumo Console. } } tp = 40 * precioporhora + pagoextra. if (horaextras <= 8) { pagoextra = horaextras * precioporhora * 2.1.WriteLine("Ingresa Consumo:"). consumo = int.ReadLine()).18 Finsi {mostrar el monto a cobrar} Escribir MontoaCobrar Fin 27. Escribir un algoritmo y su codificación que permita calcular el monto total a cobrar por un determinado consumo incluyendo el impuesto general a las ventas de 18%.WriteLine("El Pago es :{0}".05+(consumo‐40)*0.2.5 nuevos soles y para el consumo por encima de 40 metros cúbicos cobra 0. 27.5*1.Parse(Console.8)*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.18 40 40*0. pagoextra = ((horaextras .18 Sino MontoaCobrar=(40*0. montoacobrar. } else { pagoextradelextra = 8 * precioporhora * 2.5*1.40.05*1.8 nuevos soles por metro cubico.18 46 (40*0.‐La caja municipal cusco.7 23.Lenguaje de Programación 86 Carlos Rodríguez Torvisco – Algorítmica horaextras = horatrabajadas .tp). } //mostramos el dinero que reciibira el trabajador Console. Console. . tiene dos tarifas que esta de acuerdo al consumo del usuario.Read().5+ (46‐40)*0.18 Resultado‐Monto a cobrar 17.6 29. Para los primeros 40 metros cúbicos cobra 0.‐Codificacion(C#) static void Main(string[] args) { double consumo.

8) * 1.‐Algoritmo Inicio {Promediar las tres notas más altas} {Ingresar Notas} Leer nota1. } else { montoacobrar = (40 * 0.Lenguaje de Programación 87 Carlos Rodríguez Torvisco – Algorítmica //calcular el monto total a cobrar if (consumo <= 40) { montoacobrar = consumo * 0. } 28.18. nota4 {Calcular el promedio de tres notas más 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+nota3‐Notamenor)/3 {Escribir el promedio} Escribir Promedio Fin Nota Menor 12 07 03 02 Resultado Promedio 14 13 07 06 . nota3. Console.5 + (consumo .5 * 1. Datos Nota1 Nota2 Nota3 Nota4 12 15 14 13 10 16 07 13 03 10 05 06 09 02 05 04 28.‐El Profesor de una asignatura durante un semestre tomo cuatro exámenes parciales.WriteLine("El Monto a Cobrar es :"+montoacobrar). Al final del semestre les informa a sus alumnos que pueden calcular su promedio final eliminando la nota más baja y promediando las tres restantes.18. } //mostrar el monto a cobrar Console.40) * 0.Read(). nota2.1.

nota4. //determinamos el promedio eliminando la nota mas baja promedio=(nota1+nota2+nota3+nota4-Notamenor)/3.Write("Ingrese Nota 1:"). nota3. nota2 = int.Read(). nota4 = int. Console.ReadLine()).ReadLine()). if (Notamenor > nota3) Notamenor = nota3.Write("Ingrese Nota 2:"). promedio. if (Notamenor > nota2) Notamenor = nota2. mes y año) y determine la fecha correspondiente al día siguiente.‐Escribir un algoritmo y su codificación que lea una fecha (Día. Console.Write("Ingrese Nota 3:"). } 29. //mostramos el promedio Console. Dato Fecha Inicial Día Mes Año 15 01 94 31 01 94 28 02 93 28 02 96 30 03 94 30 04 98 31 12 2008 mas un día mas un día mas un día mas un día mas un día mas un día mas un día Dato Fecha Final Día Mes Año 16 01 94 01 02 94 01 03 93 29 02 96 31 03 94 01 05 98 01 01 2009 . //ingresamos las notas Console.Write("El Promedio es :"+promedio). //calcular el promedio de tres notas más altas //supongamos que la nota menor sea la nota 1 Notamenor = nota1.Parse(Console.ReadLine()).‐Codificacion(C#) 88 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int nota1. if (Notamenor > nota4) Notamenor = nota4.Parse(Console. Notamenor.Parse(Console. Console.ReadLine()). nota3 = int.Lenguaje de Programación 28. nota1 = int.Parse(Console.2. Console. nota2.Write("Ingrese Nota 4:").

MM1.AA1 {Determinar fecha del día 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 {año bisiesto} Nrodiasmes=29 Sino {año no bisiesto} Nrodiasmes=28 Finsi Finsi {Agregar a fecha un día} 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 día siguiente} Escribir DD2 Escribir MM2 Escribir AA2 Fin 29.2.1.Lenguaje de Programación 89 Carlos Rodríguez Torvisco – Algorítmica 29.‐Algoritmo Inicio {Determinar la fecha del día siguiente} {Ingresar Fecha} Leer DD1.‐Codificacion(C#) static void Main(string[] args) { .

MM1 = int. MM2.Write("{0}/{1}/{2}". } else if (MM1 < 12) { DD2 = 1. Console.Write("Mes:"). } 30. } //escribir la fecha al día siguiente Console.ReadLine()). MM2 = 1.‐Escribir un algoritmo que encuentre la solución de una ecuación de segundo grado: AX2+BX+C=0 Utilizaremos el método de baskara √ 2 Ejemplo: 4 . else Nrodiasmes = 28.Parse(Console. MM2 = MM1. int Nrodiasmes. } //agregar a fecha un día if (DD1 < Nrodiasmes) { DD2 = DD1 + 1. AA2 = AA1+1.Lenguaje de Programación 90 Carlos Rodríguez Torvisco – Algorítmica int DD1.AA2). } else { DD2 = 1. MM2 = MM1 + 1. AA2 = AA1.Parse(Console.Parse(Console. DD2.DD2. DD1 = int. AA1 = int.ReadLine()).MM2.Write("Año:").Read().Write("Dia:"). //determinar fecha del dia siguiente //determinar número de dias del mes if ((MM1 == 1) || (MM1 == 3) || (MM1 == 5) || { || (MM1 == 12)) (MM1 == 7) || (MM1 == 8) || (MM1 == 10) Nrodiasmes = 31. MM1. } else { if (AA1 % 4 == 0) Nrodiasmes = 29.ReadLine()). AA2. } else if ((MM1 == 4) || (MM1 == 6) || (MM1 == 9) || (MM1 == 11)) { Nrodiasmes = 30. Console. Console. AA1. //ingresa la fecha Console. AA2 = AA1.

2. C {Calcular Solución de la ecuación de segundo grado} Si (A<>0) entonces {Posible solución cuadrática} D=B2‐4AC Si (D>=0) entonces {Existe solución Real} X1= (‐B + √ )/ (2*A) X1= (‐B ‐ √ )/ (2*A) Sino Escribir “No existe solución real” Sino {A=0} {Posible solución lineal} Si (B<>0) entonces X1=‐B/C Escribir X1 Sino {(A=0) y (B=0)} Escribir “Ecuación no tiene solución” Finsi Fin 30. X2+4X+6 0X2+3X+9 0X2+0X+9 No tiene solución real Tiene Solución Lineal No tiene solución 30. B. .Lenguaje de Programación Dada la siguiente ecuación: X2+5X+6 Reemplazando se tiene: X1= = ‐2 91 Carlos Rodríguez Torvisco – Algorítmica X2 = = ‐3 Existen casos de ecuaciones de segundo grado que no se puede resolver completamente con la ecuación de Baskara.‐Algoritmo Inicio {Resolver una ecuación de segundo grado} {Ingresar Coeficientes} Leer A.‐Codificacion(C#) static void Main(string[] args) { double A. B.C.1.

ReadLine()). Decena. . } 31.Parse(Console. } Console. Datos 2222 1572 2457 1493 Inicio {Calcular si un código es valido o no es valido} Resultado No valido Valido No valido valido {Ingresar Código} Leer Codigo {Separa el Número en Unidad. C = double.Read(). Escribir un algoritmo y su codificación que lea un número de 4 dígitos y determine si puede ser o no ser utilizado como un código.ReadLine()).Parse(Console. } } else //a=0 { //posible solucion lineal if (B != 0) { //solucion lineal X1 = -B / C.Write("B:").Write("A:"). X1). El código para ser valido debe estar formado por tres dígitos impares y un digito par.Sqrt(D)) / (2 * A). Console.(4 * A * C).Sqrt(D)) / (2 * A). A = double.Math. } else //a=0 y b=0 Console. if (D >= 0) { //existe solucion real X1 = (-B + Math.Write("C:").WriteLine("X2:{0}". //calcular solucion de la ecuacion de segundo grado if (A != 0) { //posible solucion cuadratica D = (B * B) . Console.Parse(Console.Write("X1:{0}". } else //d<0 { Console. Console. B = double.ReadLine()). //Ingresar los coeficientes Console.Lenguaje de Programación 92 Carlos Rodríguez Torvisco – Algorítmica double D.WriteLine("X1:{0}".‐Una empresa codifica los artículos de su almacén con códigos numéricos de 4 dígitos. Console.X1. X2).Write("No Existe Solucion Real"). X1).Write("Ecuacion no tiene solucion"). Console. Centena y Unidad de Millar} u = codigo mod 10. X2 = (-B .X2.

//separar el numero en unidad.‐En un examen de suficiencia un postulante es evaluado por tres jurados.Write("no valido").Write("ES Valido"). c = (codigo div 100) mod 10.decena. else Console.Write("Ingrese Codigo:").ReadLine()). Si ((u mod 2) =00 y ((d mod 2) <> 0 y ((c mod 2 <> 0) y ((um mod 2) <> 0)))) entonces Escribir ”el código 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 código 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 código es valido” Sino Si ((u mod 2) <>0 y ((d mod 2)<> 0 y ((c mod 2 <> 0) y ((um mod 2)= 0)))) entonces Escribir”el código es valido” Sino Escribir ”el código no es valido” Finsi Fin 31. //ingresa el codigo Console. Escribir un programa que permita calcular la nota final del postulante. c = (codigo / 100) % 10. Console.centena y unidad de millar u = codigo % 10. Nota.Lenguaje de Programación 93 Carlos Rodríguez Torvisco – Algorítmica d = (codigo div 10) mod 10.Read(). um = codigo div 1000. u.Parse(Console.Write("ES Valido"). c. sólo las dos notas más próximas. um = codigo / 1000. //preguntar si puede ser valido si oh no el codigo Console.Write("ES Valido"). descartándose la nota más discordante.2. Console. } 32. . d = (codigo / 10) % 10. um.‐Codificacion(C#) static void Main(string[] args) { int codigo. else if ((u % 2) != 0 && ((d % 2) == 0 && ((c % 2 != 0) && ((um % 2) != 0)))) if ((u % 2) == 0 && ((d % 2) != 0 && ((c % 2 != 0) && ((um % 2) != 0)))) Console.‐si no hay nota discordante se promedia las dos más altas. Para determinar la nota final del postulante.Write("ES Valido"). codigo = int. cada jurado emite una nota de 0 a 20. else if ((u % 2) != 0 && ((d % 2) != 0 && ((c % 2 == 0) && ((um % 2) != 0)))) else if ((u % 2) != 0 && ((d % 2) != 0 && ((c % 2 != 0) && ((um % 2) == 0)))) Console. d.

//ordenamos los numeros de mayor a menor if (nota1 < nota3) { temporal = nota1. double promedio.tempora2.Un numero es capicúa si es igual al revés del número.0 (11+10)/2=10.Write("Ingresa Nota 2:").WriteLine("El Promedio es :{0:F1}".Write("Ingresa Nota 1:").Parse(Console.Parse(Console. nota1 = nota3.5 4. } if (nota1 < nota2) { temporal = nota1.ReadLine()). nota3 = temporal.5 8. nota3.‐Diseñe un algoritmo que lea un numero de tres cifras y determine si es o no capicúa . Console.Parse(Console.5 static void Main(string[] args) { //declaramos las notas double nota1. nota3 = temporal. //declaramos las variables auxiliares double temporal. tempora3. . nota1 = int.Lenguaje de Programación 94 Carlos Rodríguez Torvisco – Algorítmica Datos Nota1 Nota2 Nota3 12 15 14 10 16 07 03 10 05 09 10 11 Nota Discordante 12 16 10 no hay Resultado Promedio 14. } tempora2 = nota1-nota2. //hacemos las comparaciones if (tempora2 > tempora3) { promedio = (nota2 + nota3) / 2. promedio). nota2 = int. nota3 = int. } 33. Console. nota1 = nota2. nota2 = nota3. nota2. } if (nota2 < nota3) { temporal = nota2.ReadLine()).ReadLine()). } else promedio = (nota2 + nota1) / 2. //ingresamos las tres notas Console.Write("Ingresa Nota 3:"). tempora3 = nota2-nota3.Read(). nota2 = temporal. Console. Console.

else TipoNumero = "El Numero no es Capicúa". //determina el tipo de numero entre capicúa o no capicúa if (unidad == centena) TipoNumero = "El Numero es Capicúa". numero = int. Por ejemplo 353. 989.‐como el numero tiene tres cifras.Parse(Console.ReadLine()). centena = numero / 100. centena. //si el numero tiene tres cifras. //muestra el tipo de numero Console. string TipoNumero.1 Algoritmo Inicio {Determinar si un número es capicúa o no} {Ingresar Número} Leer numero {Si el número 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 capicúa” Sino tipoNumero=”El Numero no es capicúa” Finsi {muestra el tipo de numero} Escribir tipoNumero Sino Escribir “no es un numero de tres cifras” Fin 33. 878. unidad.. //ingresar numero de tres digitos Console.‐Codificacion(C#) static void Main(string[] args) { int numero.Lenguaje de Programación 95 Carlos Rodríguez Torvisco – Algorítmica Observación. if (numero >= 100 && numero <= 999) { //determina la cifra de la unidad y de la centena unidad = numero % 10.Write("Ingrese Número:").Write(TipoNumero). etc… Datos 456 151 353 484 33. } Resultado No es capicúa Si es capicúa Si es capicúa Si es capicúa . para ser capicúa basta con que la cifra de las unidades sea igual a las cifras de las centenas..2.

//mostrar pago Console.1 Algoritmo Inicio {Determinar el pago} {Ingresar Hora y minutos} Leer hora.Write("Ingresa Minutos:").Parse(Console.‐En una playa de estacionamiento cobra S/. //determinar el importe a pagar pago = horas * 2.Lenguaje de Programación 96 Carlos Rodríguez Torvisco – Algorítmica else Console.2 Codificación(C#) static void Main(string[] args) { int horas. Console. minutos. Datos Horas 12 4 34. Console. } 35.5 por hora o fracción. .ReadLine()).Parse(Console. minutos = int. minuto {Si hay alguna fracción de hora. incrementa las horas a pagar en una unidad} Si (minuto>0) entonces hora=hora+1 Finsi Pago=hora*2.2. } 34. Console. Diseñe un algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su vehículo.350 el descuento es del 35% y por debajo de 350 es de 10%.5 {mostrar pago} Escribir pago Fin 34. //ingresamos los datos Console.5. double pago. conociendo el tiempo de estacionamiento eh horas y minutos.WriteLine("el pago es:"+pago). //si hay alguna fracción de hora. horas = int.Write("Ingresa Horas:").ReadLine()).Write("no es un numero de tres cifras"). incrementa las horas a pagar en una unidad Mintuos 30 0 Resultado Total a pagar 32.‐ Dado un monto calcular el descuento considerando que por encima de s/.5 10 if (minutos > 0) horas = horas + 1.Read().Read().

35 Sino Descuento=monto*0.1 x cada minuto adicional a los tres primeros. } 36.‐ Dada la duración en minutos de una llamada calcular el costo.1 Algoritmo Inicio {Determinar Descuento} {Ingresar Total de Consumo} Leer monto {Si monto es mayor a 350} Si (monto>350) entonces Descuento=monto*0. if (monto > 350) descuento = monto * 35 / 100.50.Read().descuento. else descuento = monto * 10 / 100.WriteLine("El Descuento es:" + descuento).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.10 Finsi {mostrar Descuento} Escribir Descuento Fin 35.55 353>350=35% 169. 36. Hasta tres minutos el costo es 0.50+0.50 más 0.2 Codificación(C#) 97 Carlos Rodríguez Torvisco – Algorítmica Resultado DESCUENTO CONDICION 15. Console.4 484>350=35% static void Main(string[] args) { double monto.ReadLine()).Por encima de tres minutos es 0.Parse(Console. Console. Console.1 151<350 =10% 123.50 Sino C=0. monto = double. considerando.Lenguaje de Programación Datos MONTO 151 353 484 35.1*(minutos‐3) Finsi {mostrar Costo de las LLamadas} .Write("Ingresa Monto:").

WriteLine("El Costo es:" + C). tal como se vio en algunos ejemplos. if (minutos <= 3) { C = 0.‐Escribir el algoritmo que lea el mes y el año de una fecha y determine el número de días del mes. minutos = int.Parse(Console.Lenguaje de Programación Escribir C Fin 36. } else { C = 0. … case N:bloque N break.2 Codificación(C#) 98 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int minutos. } Console. double C.1 * (minutos .50. } INSTRUCCIÓN SWITCH (ESTRUCTURA MULTIPLE) La solución de muchos problemas requiere algoritmos que hacen uso de múltiples decisiones. Este Problema. Días Mes .Read(). se podría resolver con estructuras selectivas anidadas del tipo: SI‐ENTONCES‐ SINO. Pseucodogico Según_sea variable_selector hacer Caso 1 : bloque de instrucciones 1 Caso 2 : bloque de instrucciones 2 Caso 3 : bloque de instrucciones 3 … Caso N : bloque de instrucciones N Fin Según_sea C# switch(variable_selector) { case 1 : bloque 1 break.ReadLine()). Console. } 37.50 + 0. case 3:bloque 3 break. Dato Fecha Inicial Resultado Nro. la excesiva anidación hace los algoritmos más ilegibles. Sin embargo. que permite implementar este tipo de algoritmos de una manera muy simple y sobre todo legible.Write("Ingresa Minutos:").3). Console. case 2: bloque 2 break. La mayoría de los lenguajes de programación ofrecen estructuras selectivas múltiples.

Parse(Console. 8. 9.Parse(Console. 6.WriteLine("Ingresa Mes:"). 10. } else { NroDiasMes = 28. 12: NroDiasMes=31 Case 4. mes = int. 3. . break. 11 : NroDiasMes=30 Case 2 : Si (año mod 4)=0 Entonces NroDiasMes=29 Sino NroDiasMes=28 Fin Según_sea {Escribir días del mes} Escribir NroDiasMes Fin 37. //ingresar mes y año Console. 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. año = int. 7.ReadLine()). case 2: if (año % 4 == 0) { NroDiasMes = 29. case 4: case 6: case 9: case 11: NroDiasMes = 30. Año {Determinar número de dias del mes } Según_sea Mes hacer Case 1.Lenguaje de Programación Mes Año 01 98 02 92 02 94 06 99 99 Carlos Rodríguez Torvisco – Algorítmica 31 29 28 30 Inicio {Determinar el número de días del mes} {Ingresar Mes y Año} Leer Mes.WriteLine("Ingresa Año:"). año.2 Codificación(C#) static void Main(string[] args) { int mes. 5. NroDiasMes=0.

Console. Num2.Parse(Console.Write("Ingresar Clave: ").Parse(Console. char clave.Write("Ingresar Numero 2: "). Console.ReadLine()).ReadLine()).‐Construya un programa que permita realizar operaciones aritméticas elementales. Numero 1 20 5 35 250 Datos Numero 2 20 3 12 5 Operador / * + ‐ Resultado 1 15 47 245 Inicio {Determinar el número de días del mes} {Ingresar los números a Operar} Leer Num1.WriteLine("Los dias del mes son :{0}". según la clave ingresada. } //escribir dias del mes Console. resu=0. Num2 = int. Console. switch (clave) . clave=char.Lenguaje de Programación } 100 Carlos Rodríguez Torvisco – Algorítmica break.Read(). Num1 = int.2 Codificación(C#) static void Main(string[] args) { float Num1. Num2 {Ingresar Operador} Leer Clave Según_sea Clave hacer Caso ‘+’ : resu=Num1+Num2 Caso ‘‐’ : resu=Num1‐Num2 Caso ‘*’ : resu=Num1*Num2 Caso ‘/’ : resu=Num1/Num2 Fin Según_sea {Escribir El Resultado de las Operaciones} Escribir resu Fin 38.Parse(Console. Console.Write("Ingresar Numero 1: "). } 37.NroDiasMes).ReadLine()).

clave.Lenguaje de Programación { 101 Carlos Rodríguez Torvisco – Algorítmica } Console. . + Num2.Num2. case '-': resu = Num1 break. MODELO Cutlass Cavalier Chevy Century Datos Modelo C V H E Precio 200000 450000 150000 354000 Descuento 8% 5% 6% 9% Resultado 184000 427500 141000 322140 DESCUENTO 8% 5% 6% 9% Inicio {Determinar el precio final a pagar} {Ingresar los Modelo del Automovil y el Precio} Leer Modelo. Console.Num2. case '/': resu = Num1 break.2 Codificación(C#) static void Main(string[] args) . 39.resu).Construya un programa tal.06) Caso “E” : finpre = precio ‐ (precio * 0.ReadLine(). / Num2.Num1.09) Fin Según_sea {Escribir PRECIO FINAL A PAGAR} Escribir finpre Fin 39. Precio Según_sea Modelo hacer Caso “C” : finpre = precio ‐ (precio * 0. case '*': resu = Num1 break. que dados como datos el modelo de un vehículo y su precio.08) Caso “V” : finpre=precio ‐ (precio * 0.05) Caso “H ” : finpre=precio ‐ (precio * 0. con base en la siguiente tabla. El concesionario está haciendo descuentos teniendo en cuenta el modelo. } case '+': resu = Num1 break.WriteLine("{0} {1} {2} = {3}". * Num2. determine el valor final que debe pagar el comprador.

5 5 Resultado Costo Total 10 90 9 15 Inicio {Determinar el precio a pagar por llamadas } {Ingresar la Clave y el total de minutos hablados} Leer clave. //ingresamos el precio del automovil Console.WriteLine("Ingresar modelo de vehículo en mayúsculas").05f). depende de la zona geográfica en la que se encuentra el país destino.06f).5 19 Europa 3.Read().09f). Console.(precio * 0.5 . En la siguiente tabla se presenta el costo por minuto. CLAVE ZONA PRECIO 12 América del Norte 2 15 América Central 2.‐El costo de las llamadas telefónicas internacionales. Console. } Console.Lenguaje de Programación { 102 Carlos Rodríguez Torvisco – Algorítmica } string modelo. case "H": finpre=precio . A cada zona se le ha asociado una clave. numin Según_sea clave hacer Caso 12 : cost = numin * 2 Caso 15 : cost = numin * 2.WriteLine("CAVALIES:[V]").2 18 América del Sur 4. y del número de minutos hablados. switch (modelo) { case "C": finpre = precio . case "V": finpre=precio . finpre=0.5 23 Asia 6 25 África 6 29 Oceanía 5 Construya un programa que le permita calcular e imprimir el costo total de una llamada.Parse(Console. Console.WriteLine("El Precio Final es:"+finpre). float precio. Datos CLAVE 12 23 18 29 Tiempo(minutos) 5 15 2 3 Precio 2 6 4. break. break. modelo = Console.08f). Console.Write("Ingrese Precio:").ReadLine().WriteLine("CUTLASS:[C]"). Console. 40. case "E": finpre = precio .(precio * 0.WriteLine("CHEVY:[H]").(precio * 0. precio = float. Console. Console. por zona.2 Caso 18 : cost = numin * 4.WriteLine("CENTURY:[E]"). break. break.Write("Modelo:").(precio * 0.ReadLine()).

break.WriteLine("Zona África :[25]"). switch (clave) { case 12: cost = numin * 2. } . cost).WriteLine("Costo Total de la Llamada: {0}".5. case 25: cost = numin * 6.5 Caso 23 : cost = numin * 6 Caso 25 : cost = numin * 6 Caso 29 : cost = numin * 5 Fin Según_sea {Escribir PRECIO a Pagar por las Llamadas} Escribir cost Fin 40.Read().WriteLine("Zona Asia :[23]").Parse(Console. Console. break.Write("Ingresar Duración de la Llamada [min]: "). Console. numin = int. break. clave = int. Console. Console. double cost = 0.2 Codificación(C#) 103 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int clave. break. case 29: cost = numin * 5.WriteLine("Zona América del Norte :[12]"). } if (cost != 0) Console. break.WriteLine("Zona América del Sur :[18]").ReadLine()). break.Write("Clave:"). Console. case 19: cost = numin * 3.Lenguaje de Programación Caso 19 : cost = numin * 3. Console.WriteLine("No Existe esa Clave"). case 23: cost = numin * 6. numin. Console. default: Console. Console. case 15: cost = numin * 2.WriteLine("Zona Europa :[19]"). case 18: cost = numin * 4. Console.WriteLine("Ingresar Clave de la Zona Geográfica:\n "). Console. break.WriteLine("Zona Oceanía :[29]").WriteLine("Zona América Central :[15]").ReadLine()).2.5. Console.Parse(Console. break.

2 Codificación(C#) static void Main(string[] args) { int cate. 38 S/.Write("Ingresar Sueldo basico del trabajador: ").Parse(Console.Lenguaje de Programación 104 Carlos Rodríguez Torvisco – Algorítmica 41. CATEGORIA 1 2 3 4 PRECIO HORA EXTRA S/. y las horas extras que trabajo} Leer sue. categoría. 50 S/. nsue. Console. Finsi Escribir nsue Fin 41. cate. . 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.ReadLine()). Sino nsue = sue + he * phe. 30 S/.‐Escriba un programa que permita calcular lo que hay que pagarle a un trabajador teniendo en cuenta su sueldo y las horas extras trabajadas. he Según_sea cate hacer Caso 1 : phe = 30 Caso 2 : phe = 38 Caso 3 : phe = 50 Caso 4 phe = 70 Otros: phe =0 Fin Según_sea Si (he > 30)e ntonces nsue = sue + 30 * phe. sue = float. he. phe. float sue. Para el pago de horas extras se tienen en cuenta además de la categoría del trabajador.

else nsue = sue + he * phe. case 5: Console.Write("Seis"). break.ReadLine()). } if (he > 30) nsue = sue + 30 * phe.WriteLine("El sueldo neto es: {0}".Write("Dos").Parse(Console. break.Lenguaje de Programación 105 Carlos Rodríguez Torvisco – Algorítmica Console. case 6: Console. default: phe = 0. } 42.Write("Uno"). break. case 2: Console. Numero = int.ReadLine()). Datos Numero 12 46 8 159 resultados Doce Cuarenta y seis Ocho Ciento cincuenta y nueve static void Main(string[] args) { int Numero. . break. break. case 3: Console. switch (cate) { case 1: phe = 30.Write("Ocho"). Console. Console.Write("Cinco"). break. Console. U = Numero % 10.Parse(Console. break.Parse(Console. break. C. case 8: Console. case 3: phe = 50. if (Numero >= 0 && Numero < 20) { switch (Numero) { case 0: Console. case 7: Console.Write("Siete"). cate = int. case 1: Console.Write("Cuatro"). break. break.‐Escribir un programa que lea un numero de tres dígitos o menos y muestre su respectivo nombre. U. break. he = int. case 4: Console. Console. nsue). break. C = Numero / 100. D.ReadLine()).Write("Cero"). break.ReadLine(). D = (Numero % 100) / 10.Write("Ingrese Numero de 3 Digitos o menos:").Write("Tres").Write("Horas extras trabajadas: "). break. case 2: phe = 38.Write("Categoria: "). case 4: phe = 70.

16: Console.Lenguaje de Programación case case case case case case case case case case case 106 Carlos Rodríguez Torvisco – Algorítmica 9: Console.Write("Cuatrocientos"). case 9: Console.Write("Tres"). break. case 7: Console.Write("Setecientos"). break. break. case 9: Console.Write("Cincuenta").Write("Seiscientos"). break. . 19: Console. case 2: Console. break.Write("Setenta").Write("Catorce"). else Console. break. case 4: Console. case 5: Console.Write("Doscientos"). break. 17: Console.Write("Diez"). 14: Console. break. break. case 3: Console.Write("Quince"). break.Write("Cuatro"). 18: Console.Write("Veinte").Write(" Treinta"). break. break. case 3: Console. break.Write("Noventa").Write("Dos"). case 5: Console. break. break. break. case 3: Console.Write("Diecisiete"). case 8: Console. 13: Console. case 5: Console.Write("Cinco").Write("Quinientos").Write("Cuarenta"). break. case 3: Console.Write("Ochocientos").Write("Nueve").Write("Once").Write("Nueve").Write("Treinta"). break. break. break.Write("Cien"). break.Write("Trece"). break. break. case 4: Console. } if (Numero > 100 && Numero < 1000) { switch (C) { case 1: Console. 12: Console. case 8: Console. break.Write("Ochenta"). break. break. } } if (Numero >= 20 && Numero < 100) { switch (D) { case 2: if (U != 0) Console. break. case 6: Console. case 6: Console.Write("Uno"). } switch (D) { case 2: Console.Write("Diecinueve").Write("Trescientos"). break. case 7: Console.Write("Ocho").Write("Dieciocho").Write("Ciento"). case 9: Console. break. break. case 7: Console. break.Write("Doce"). 11: Console. break.Write("Siete"). case 4: Console.Write("Novecientos"). } Console. break. case 6: Console.Write("Veinti").Write("Seis").Write(" y ").Write("Dieciseis"). } } if (Numero == 100) { Console. switch (U) { case 1: Console. break.Write(" Veinte"). 15: Console. 10: Console. case 8: Console. break. break. break. break.Write("Sesenta"). break. case 2: Console.

case 7: Console. break.Write(" y ").Write("Cuatro").Write(" Console. Sesenta"). case 4: Console.Write("Tres"). break. break.Lenguaje de Programación case case case case case case 4: 5: 6: 7: 8: 9: Console.Write("Uno"). break. break.Write(" Console. break. break.Read(). case 2: Console.Write("Siete"). Ochenta"). if (D != 1) { switch (U) { case 1: Console.Write(" Console. case 8: Console. Noventa"). break.Write("Seis"). break.Write("Nueve"). Cincuenta").Write("Dos"). break. } } } Console. } if (U != 0 && D != 0 && D != 1 && D != 2) Console.Write(" Console. Setenta"). } 43‐Escribir un programa que lea un numero y lo convierta a números romanos Datos Numero 212 346 10 1 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:" Según sea (Miles) Caso 1: Escribir "M" Caso 2: Escribir "MM" Caso 3: Escribir "MMM" Fin_Según Según sea (Cen) Caso 1:Escribir "C" Caso 2: Escribir "CC" Caso 3: Escribir "CCC" Caso 4: Escribir "CD" resultados CCXII CCCXLVI X I . case 9: Console. case 5: Console. case 6: Console. break. case 3: Console. break.Write("Ocho"). break.Write(" Console.Write("Cinco"). break.Write(" 107 Carlos Rodríguez Torvisco – Algorítmica Cuarenta"). break.

case 3: Console. break. .WriteLine("Ingresa Número(1-3999):"). case 2: Console. N = int. break. switch (Miles) { case 1: Console. Uni = Resto. break.Write("CC"). Resto. break. Resto = Resto % 100. case 2: Console. } switch (Cen) { case 1: Console. Dec = Resto / 10. Console. break. case 4: Console.Write("MMM"). Cen.Write("MM").Parse(Console. int Miles. break.Lenguaje de Programación Caso 5: Escribir "D" Caso 6: Escribir "DC" Caso 7: Escribir "DCC" Caso 8: Escribir "DCCC" Caso 9: Escribir "CM" Fin_Según Según 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_Según Según 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_Según Fin 108 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int N. Console.Write("CCC").Write("C"). Resto = N % 1000.Write("En Número Romanos es : "). Uni. break. case 3: Console. Miles = N / 1000. Dec. Cen = Resto / 100.Write("M"). Resto = Resto % 10.ReadLine()).Write("CD").

. break.Write("D"). case 5: Console. case 7: Console. de acuerdo a lo siguiente: tres seis. case 7: Console. regular.Write("II").Write("I").Write("DC"). break. case 4: Console. case 6: Console. break.Lenguaje de Programación 109 Carlos Rodríguez Torvisco – Algorítmica case 5: Console. ofreciendo un descuento del 15% por la compra de más de 3 docenas y 10% en caso contrario.Write("LXXX").Write("V"). break. break. case 9: Console. case 3: Console.Write("XL"). break. case 7: Console. el monto del descuento. case 9: Console.Write("XC"). break.Write("XX"). case 6: Console.Write("CM").Write("DCC"). case 2: Console. break.Write("VI"). break.Write("IV").‐Una tienda ha puesto en oferta la venta al por mayor de cierto producto. case 8: Console. break. break. break. ningún seis. case 4: Console. dos seis. } switch (Uni) { case 1: Console.Write("VIII").Write("III"). excelente.Write("X").Write("DCCC"). } Console. 2. case 9: Console. } switch (Dec) { case 1: Console. case 6: Console.Write("LX"). pésimo. un seis. break. case 5: Console. case 8: Console.Read(). break. } EJERCICIOS PROPUESTOS 1.Write("XXX"). break. break. break. case 3: Console.‐Diseñe un algoritmo que califique el puntaje obtenido en el lanzamiento de tres dados en base a la cantidad seis obtenidos. break.Write("IX"). Diseñe un algoritmo que determine el monto de la compra. Además por la compra de más de 3 docenas se obsequia una unidad del producto por cada docena en exceso sobre 3. break. break.Write("LXX"). case 8: Console.Write("L").Write("VII"). muy bien. break. el monto a pagar y el número de unidades de obsequio por la compra de cierta cantidad de docenas del producto. break. break. case 2: Console.

9. Diseñe un algoritmo que determine el monto a pagar por el alquiler de un vehículo y el monto incluido del impuesto.‐Escribir un algoritmo que indique si el numero introducido es mayor o menor que 100. 5.15 por cada kilometro en exceso sobre 300.0.Lenguaje de Programación 110 Carlos Rodríguez Torvisco – Algorítmica 3. grado 5.‐Diseñe un algoritmo para obtener el grado de eficiencia de un operario de una fábrica de tornillos. grado 8. 11.‐Diseñe un algoritmo que lea tres longitudes y determine si forman o no un triangulo. ‐mas de 10000 tornillos producidos. Para ganar la elección se debe obtener como mínimo el 50% de los votas más 1.‐Se cuenta con los votos obtenidos por Juan. . 10. que se le imponen para un periodo de prueba: ‐menos de 200 tornillos defectuosos. ‐si solo cumple la primera condición. Van a la segunda vuelta los dos candidatos que obtengan la más alta votación. 6. 8. Pedro y María en una elección democrática a la presidencia de un club.Los precios ya incluyen el 18% del impuesto general a las ventas. de acuerdo a las siguientes condiciones.0. isósceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). grado 6. 7.‐Escribir un algoritmo que determine si un numero es par o impar.‐Diseñe un algoritmo que lea tres números y los imprima de mayor a menor y de menor a mayor. ‐si cumple las dos condiciones.‐Una compañía dedicada al alquiler de automóviles cobra un monto fijo de s/. IGV. Si los números positivos son iguales.30 para los primeros 300 km de recorrido.‐Diseñe un algoritmo que lea tres números enteros y determine el menor valor positivo. Diseñe un algoritmo que determine el resultado de la elección. Para más de 1000 km cobra un monto adicional de S/. Si es un triangulo determine de que tipo de triangulo se trata entre: equilátero (si tiene tres lados iguales). ‐si solo cumple la segunda condición. 4. Para más de 300 km y hasta 1000 km. Considere que para formar un triángulo se requiere que:”el lado mayor sea menor que la suma de los otros dos lados”.10 por cada kilometro en exceso sobre 100. Mario y Pedro.‐Diseñe un algoritmo que determine quienes son contemporáneos entre Juan. En caso que no haya un ganador se repite la elección en una segunda vuelta. El grado de eficiencia se determina de la siguiente manera: ‐Si no cumple ninguna de las condiciones. Se anula la elección en caso de producirse un empate doble por el segundo lugar o un empate triple. dar como menor a cualquiera de ellos. cobra un monto adicional de s/. grado 7.

pulsaciones= (220‐edad)/10 y si el sexo es masculino es: Num. mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar.‐Escribir un programa que lea tres números y que determine si corresponde a las medidas de los lados de un triangulo rectángulo. El decidirá reinvertir los intereses siempre y cuando estos excedan a S/. 15. Si el número escogido es menor que 74 el descuento es del 15% sobre el total de la compra.‐Escribir un algoritmo que transforme coordenadas rectangulares a coordenadas polares.‐Escribir un algoritmo para resolver problemas de interpolación lineal.‐Escribir un algoritmo que determine el numero de días existentes entre dos fechas dadas.‐Diseñe un algoritmo que la un numero entero de 3 cifras. 24. 20.‐Diseñar un algoritmo para calcular la división de dos números complejos. 13.‐Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aeróbico. 18. 14.‐Escribir un algoritmo que determine si un numero de 3 dígitos es igual a la suma de los cubos de sus dígitos.Mes y Año) y determine la fecha correspondiente al día anterior.pulsaciones= (210‐edad)/10 17. 16.‐Escribir un algoritmo para resolver el sistema de ecuaciones siguiente: AX+BY=C DX+EY=f 19.700 si se compran 5 o más. 22. si el precio de cada llanta es de S/.7000 y en ese caso desea saber cuanto dinero tendrá finalmente en su cuenta. 23.‐En un supermercado se hace una promoción.800 si se compran menos de 5 llantas y de S/. El número formado debe tener el mismo signo que el número ingresado. si es mayor o igual a 74 el descuento es del 20% obtener cuanto dinero se le descuenta. 21.‐Escribir un algoritmo que lea una fecha(Dia. . y forme el mayor número posible con las cifras del número ingresado.‐Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco.‐Dado un numero de 4 digitos determine cual de sus digitos es el mayor. 25. la formula que se aplica cuando el sexo femenino es: Num.‐Calcular el total que una persona debe pagar en una llantera.Lenguaje de Programación 111 Carlos Rodríguez Torvisco – Algorítmica 12.

En caso de que si corresponden.6 25 África 6 4.7 23 Asia 6 4.‐Retome el problema 40. Escribir un algoritmo que determine el pago de un programador. que representan las longitudes de los lados de un probable triángulo.5 15 Amércica Central 2.2 1.5 3. .50 por cada hora extra. determine si el mismo es apto para pertenecer a alguna de las facultades menores que tiene la universidad. la carrera en la que este inscrito.7.5 2. Calcule además su área.‐Una compañía paga a un programador S/. ahora considerando que se aplican distintos precios según la duración de la llamada. 27.8 18 Amércica del Sur 4. su semestre y su promedio. PRECIO/MINUTO PRECIO/MINUTO (3 primeros) (del 4º en adelante) 12 Amércica del Norte 2 1. La siguiente tabla expresa los costos diarios. isósceles o escaleno. Tome en cuenta además que el área de un triángulo la calculamos como: AREA = (S(S − A)(S − B)(S − C)) 1/2 28.‐Construya un programa tal.‐En un hospital se ha hecho un estudio sobre los pacientes registrados durante los últimos 10 años.00 por hora si trabaja 40 horas o menos. según el tipo de enfermedad.5. si se cumple que la suma de los dos lados menores es mayor que la del lado mayor.Lenguaje de Programación 112 Carlos Rodríguez Torvisco – Algorítmica 26. Considere que es triángulo. haga un programa que determine si los datos corresponden a aun triángulo. que dados como datos la matricula de un alumno. además se pudo determinar que en promedio todos los pacientes con edad entre 14 y 22 años se implica un costo adicional del 10%. 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. escriba si el triángulo es equilátero.5 19 Europa 3. Si labora más de 40 hroas se le paga S/. 30. Se obtuvo un costo promedio diario según el tipo de enfermedad que aqueja al paciente.‐Dados tres datos enteros positivos.9 29.6 29 Oceanía 5 3. Para calcular el costo final se sigue lo indicado en la siguiente tabla. con el objeto de hacer una aproximación de los costos de internación por paciente.

009290 metros2 1 yarda2 equivale a 0. 33.5 31.5 Semestre > 5 y promedio > 8. 34. se debe imprimir su matricula.91. Considere. que los números son diferentes.59 kilómetros2 Medidadas de volúmen: 1 pie3 equivale a 0. B y C. Considere las siguientes equivalencias: Medidas de longitud: 1 pulgada equivale a 25.4047 hectáreas 1 milla equivale a 2.‐Escriba un programa que permita realizar la conversión de pesos y medidas. a fin de simplificar el problema.Lenguaje de Programación 113 Carlos Rodríguez Torvisco – Algorítmica Si el alumno es aceptado teniendo en cuenta las especificaciones que se listan abajo.0160 toneladas 32.8 Semestre > 6 y promedio > 8. Especificaciones para pertenecer a las facultades menores: Economía: Computación: Administración: Contabilidad: Semestre >= 6 y promedio >= 8.5 Semestre > 5 y promedio > 8. identifique cual es el mayor.44 metros 1 milla equivale a 1. Construya un programa que considere este caso. Haga el programa correspondiente.35 gramos 1 libra equivale a 0.8361 metros2 1 acre equivale a 0. . de yardas a metros y millas a kilómetros.7646 metros3 1 pinta equivale a 0.6093 kilómetros 1 pulgada2 equivale a 6. pero ahora suponga que OPER2 puede tomar cualquier valor. Los datos y la operaciones son las mismas del problema previamente resuelto. incluso 0.54609 litros Medidas de peso: 1 onza equivale a 28.40 milímetros 1 yarda equivale a 0.45359 kilogramos 1 ton inglesa equivale a 1.‐ Retome el problema 37.‐Dados tres números reales A.452 centímetros2 1 pie2 equivale a 0. carrera y la palabra "aceptado".‐Escriba un programa que permita convertir de pulgada a milímetros.028320 metros3 1 yarda3 equivale a 0.56826 litros 1 galón equivale a 4.

Contador: un contador es una variable auxiliar o de proceso. . CONTADORES Y ACUMULADORES Existen dos conceptos asociados a las estructuras repetitivas: Contadores y Acumuladores.Lenguaje de Programación 114 Carlos Rodríguez Torvisco – Algorítmica 35. estructura iterativa o bucle para referirse a la repetición de un proceso un número fijo o variable de veces. cada instrucción se ha ejecutado solo una vez ya sea en forma secuencial o en forma selectiva. estructuras iterativas o simplemente bucles. Cierto tipo de problemsa requieren de la ejecución reiterada o repetida de un grupo de instrucciones. Sin embargo. Generalmente la implementación de los procesos con un acumulador tiene el siguiente formato: S=S+<Variable> En esta expresión.‐en la cual se asigna valores iniciales a las variables que intervienn en el test de salida. S es el acumulador y < Variable> es el valor que se desea agregar a S. 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) Inicialización. Acumulador: El Acumulador es también una variable auxiliar o de proceso. cuyo propósito es llevar la cuenta del numero de veces que se está ejecutando un conjunto de sentencias o un determinado proceso. con frecuencia. Estructuras Repetitivas En todos los algoritmos realizados hasta este punto. Estas Variables generalmente se verifican para salir del bucle.‐Realziar su Algoritmo del Problema 42 y Analizarlo Paso a Paso. TIPOS DE ESTRUCTURAS REPETITIVAS En forma indistinta se utiliza estructura repetitiva. cuyo propósito es suma (acumular) diferentes valores del mismo tipo. Para la ejecución repetida de un conjunto de instrucciones los lenguajes de programación ofrecen una variedad de sentencias o códigos. los que se denominan estructuras repetitivas.

Lenguaje de Programación 115 Carlos Rodríguez Torvisco – Algorítmica b) Acumulación. si se trata de contar el número de dígitos de un número entero positivo sabemos cuantos dígitos tendrá el numero. Para‐hacer Para (inicialización de la variable) hasta (condición) con incremento X hacer Instrucciones de bloque FinPara C# while do_while while(condición) do { { Instrucciones de bloque instrucción de proceso Instrucciones de actualización actualización de las variables }while(condición).‐en la que se controla si el bucle continúa o se sale del bucle. Bucles Variables Son estructura repetitivas en las que no se conoce el número de veces que se ejecutaran las instrucciones que se encuentran dentro del bucle. consiguientemente el proceso de leer se repetirá 5 veces. quién no sabe a priori cuantas personas existen en cola para ser atendidas Bucles Fijos Son estructuras repetitivas en que se conoce al priori el número de veces que se ejecutaran las instrucciones que se encuentran dentro del bucle.‐parte del bucle en el que se escribe las instrucciones que se deben repetir. } mientras‐hacer mientras (condición) instrucción de proceso actualización de las variables del test de salida fin‐mientras . por ejemplo. Ejemplo si se trata de ingresar 5 notas a priori se sabe que se debe leer repetidamente 5 notas. Pseudocódigo Hacer‐mientras hacer Instrucciones de bloque Instrucciones de actualización Mientras (condición). c) Instrucciones de procesos. Otro ejemplo si el número de clientes que debe atender un cajero de banco. d) Test de Salida.‐en la que se actualizan las variables que intervienen en el test de salida. consiguientemente n se sabe cuantas veces realizara el proceso de contar.

Read(). } . } while (c < 12).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. c = 0. do { c++. incremento) { } EJERCICIOS RESUELTOS 1.WriteLine("8 * {0} = {1}". Console. 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. c * 8).Lenguaje de Programación 116 Carlos Rodríguez Torvisco – Algorítmica For For (inicialización de la variable.1.‐escribir un algoritmo para que muestre la tabla de multiplicar del 8. c. Codificación (C#) static void Main(string[] args) { int c. Console. condicion.

Console. Console. Numero 1 2 3 Cuadrado 1 4 9 Cubo 1 8 27 1. cubo).00 . cuadrado = c*c.ReadLine()). cuadrados y cubos} k=0 hacer k=k+1 cuadrado=numero*numero cubo=cuadrado*numero escribir cuadrado.Read(). //inicialiazamos el contandor c = 0.Parse(Console.WriteLine("el cubo es :{0}".cuadrado. Console. Alumno 1 2 3 Nota 1 12 11 08 Nota 2 14 11 06 Nota 3 13 12 10 Promedio 13.Write("Ingresa Número:"). Console.el cuadrado y el cubo de los n primeros numeros enteros positivos.WriteLine("Numero {0} ” . cubo mientras(k<12) Fin 2.1.‐Escribir un algoritmo que imprima el número. } 3. numero = int.2 Codificación C# static void Main(string[] args) { int c.c). Para cada alumno se tiene 3 notas. cuadrado).00 11.00 08.‐se tiene la relación de n alumnos. } while (c < numero).numero. Escribir un algoritmo que calcule el promedio de cada alumno.WriteLine("el cuadrado es :{0}".Algoritmo Inicio{escribir la tabla de cuadrados y cubos de los N primeros enteros} {Leer número de elementos} Leer N {Escribir números. cubo = cuadrado * c. //ingresamos el numero Console.Lenguaje de Programación 117 Carlos Rodríguez Torvisco – Algorítmica 2.cubo. do { c++.

} 4. nota3.Parse(Console. int nota1.Parse(Console.WriteLine("Ingrese Nota 3:").1 Algoritmo Inicio{calcular el promedio de 3 notas para N alumnos} {Leer número 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. //calcular promedio de notas del alumno promedio=(nota1+nota2+nota3)/3. nota2 = int. nota3 = int.‐Escribir un algoritmo que calcule la suma de los n primeros números enteros positivos.Write("Ingresa Cantidad de Alumno:"). Console. nota1 = int.ReadLine()).2 Codificación C# static void Main(string[] args) { int NroAlumno. nota2. N = int. N. //mostrar el promedio Console. //inicialiazamos el contandor NroAlumno = 0.WriteLine("El Promedio es :{0}".ReadLine()). Console.WriteLine("Calcular el Promedio para el Alumno {0}". .WriteLine("Ingrese Nota 2:"). //ingresamos el numero Console.NroAlumno). do { //procesar notas dels siguiente alumno NroAlumno++.promedio).Lenguaje de Programación 118 Carlos Rodríguez Torvisco – Algorítmica 3.Read().ReadLine()). Console. } while (NroAlumno < N).WriteLine("Ingrese Nota 1:").Parse(Console. Console.ReadLine()).promedio. //leer notas del alumno Console.Parse(Console.

k = 0. N = int. } 5.WriteLine(suma).Read().suma.ReadLine()).Parse(Console.WriteLine("Ingrese N:"). //calcular suma de los N primeros numeros enteros suma = 0.//procesar el siguiente número suma+= k.1 Algoritmo Inicio{Calcular la suma de la expresión} {Leer número de enteros a sumar} Suma=0 Numerador=0 {primer valor al actualizar =1 } Denominador=100 {primer valor al actualizar = 100} . do { k++. //ingresamos los numeros enteros a suma Console. Console. //mostrar la suma Console.Lenguaje de Programación Datos N 1 2 3 4 119 Carlos Rodríguez Torvisco – Algorítmica Resultados suma 1 3 6 10 4.1 Algoritmo Inicio{Calcular la suma de los N primeros números enteros positivos} {Leer número de enteros a sumar} Leer N {calcular suma de los N primeros números enteros} Suma=0 k=0 hacer k=k+1 {Procesar el siguiente número} suma=suma+k {acumular el numero en suma} mientras(NroAlumno<N) Fin static void Main(string[] args) { int N. //acumular el número en suma } while (k < N).k.‐Escribir un algoritmo que calcule la suma de la siguiente expresión: 1/100 + 2/99 + 3/98 + 4/97 +… + 99/2 + 100/1 5.

//el denominador decrece //acumular valores en la suma suma = suma + numerador / denominador. //calcular la suma de la expresion suma = 0. numerador = 0.//el numerordor crecer denominador = denominador--.1 Algoritmo Inicio{Evaluar 12‐ 22 + 32…+992‐1002} {Evaluar Expresión} Suma=0 Numero=0 hacer {El numero va a ser impar.‐Escribir un algoritmo que evalúe la siguiente expresión: 12‐ 22 + 32…+992‐1002 Se suma los elementos de la serie Suma = ‐5050 6. Console. denominador. Console. Restar} Numero=numero+1 Suma=suma‐numero*numero mientras(numerador=100) Escribir suma . } 6. sumar} Numero=numero+1 Suma=suma+numero*numero {El número va a ser par.Lenguaje de Programación 120 Carlos Rodríguez Torvisco – Algorítmica {calcular suma de los N primeros números enteros} hacer {actualizar numerador y denominador} Numerador=numerador+1 Denominador=denominador‐1 {acumular valores en suma } Suma=suma+Numerador/Denominador mientras(numerador=100) Fin 5. //primer valor al actualizar =1 denominador = 101.WriteLine("La Suma de la Expresión es :{0}". numerador. //primer valor al actualizar = 100 do { //actualizar numerador y denominador numerador = numerador++.Read().2 Codificación (C#) static void Main(string[] args) { int suma. } while (numerador == 100).suma).

suma = suma . Restar numero = numero + 1. Datos Número 10 06 12 04 08 7. suma = suma + numero * numero.‐Escribir un algoritmo para calcular el promedio aritmético de N números. suma = 0.2 Codificación C# 121 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int suma.Sumar numero = numero + 1.1 Algoritmo Inicio{calcular el promedio de N números} {leer numero de elementos. numero.WriteLine("La suma es:"+suma). validando} hacer Leer N mientras(N<2) {Leer números 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 Var. do { //el numero va a ser impar. } 7.Lenguaje de Programación Fin 6.numero * numero. Console. //el numero va a ser par. Console. numero = 0.Read(). De Proceso Suma 40 Resultado Promedio 8 . } while (numero != 100).

//leer numero de elemtos.2 Codificación C# 122 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int sumaElementos=0. N = int.ReadLine()).WriteLine("el Promedio es:"+promedio). } while (k < N). Console.WriteLine("Ingresa Numero {0}".ReadLine()).‐Escribir un algoritmo que permita calcular el factorial de un nùmero entero positivo. sumaElementos += numero.Parse(Console.1 Algoritmo Resultado 120 170 6 Inicio{calcular factorial de un numero entero positivo } {leer numero entero positivo. //leer numeros y calcular el promedio do { k++.Read(). Datos 5 6 3 8. int promedio.Lenguaje de Programación Fin 7. //calcular el promedio promedio = sumaElementos / N. } 8. N. validando} hacer Leer N mientras(N<2) {Calcular el Factorial} k=0 factorial=1 mientras(k<N) k=k+1 factorial=factorial*k fin‐mientras {escribir factorial} Escribir factorial .Parse(Console. numero. Console. k=0.WriteLine("Ingrese N:"). Console. } while (N < 2). numero = int. validando do { Console.k).

while (k < N) { k++. //ingresar numero entero positivo validado do { Console. Datos A 45 18 B 100 27 Resultado MCD 5 9 9. factorial *= k.1 Algoritmo Inicio{calcular máximo común divisor de 2 números } {Leer dos números enteros positivos y validarlos} hacer Leer A mientras(A<0) hacer Leer B mientras(B<0) {Calcular máximo común divisor de 2 números} Resto= A mod B mientras(resto <> 0) hacer A=B B=resto Resto=A mod B fin‐mientras MCD=B .‐Calcular el maximo común divisor de 2 numeros enteros positivos.ReadLine()). } //mostrar factorial Console. } 9.WriteLine("Ingresa Número:"). Console.k.WriteLine("El Factorial es :"+factorial). factorial. k = 0.Lenguaje de Programación Fin 8.Read().Parse(Console. //calcular factorial factorial = 1. } while (N < 0).2 Codificación C# 123 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int N. N = int.

//escribir el maximo común divisor Console. do { Console.ReadLine()).1 Algoritmo Inicio{Determina el numero de digitos de un número} {Leer numero y validarlo} hacer Leer Numero mientras(Numero<0) NroDigitos=0 {inicialización} si(numero==0) entonces {test de salida} Escribir “La cantidad de dígitos es 1” sino mientras(numero<> 0) hacer numero=numero div 10 {Actualización} NroDigitos=NroDigitos+1 {Instrucciones} .resto. while (resto != 0) { A = B.Write("Ingresa Numero 1:").Parse(Console.‐Escribir un algoritmo que permita determinar el número de dígitos de un número entero positivo.WriteLine("El Maximo Común Divisor es:"+MCD). MCD. B. Console.ReadLine()). do { Console. resto = A % B. } while (A < 0). B = resto. //calcular maximo comun divisor de 2 números resto = A % B.Read().Parse(Console.Lenguaje de Programación Escribir MCD Fin 9.2 Codificación C# 124 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int A. A = int. Dato Numero 5 345 2865 0 Resultado NroDigitos 1 3 4 1 10. } while (B < 0). B = int. } 10. } MCD = B.Write("Ingresa Numero 2:").

if (numero == 0) { Console. numero = int.Lenguaje de Programación fin‐mientras fin‐si Escribir NroDigitos Fin 125 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int numero. Divisor {calcular el cociente y el resto} Resto=Dividendo mientras(Resto>=Divisor) hacer Resto=resto‐divisor cociente=cociente+1 fin‐mientras {escribir el cociente y el resto} Escribir cociente. } Console. do { Console.Parse(Console. Resto Fin 11.WriteLine("La Cantidad de Digitos es :1"). Datos Dividiendo 20 25 Divisor 4 8 Cociente 5 3 Resultado Resto 0 1 10.WriteLine("Ingresa Número:").‐Escribir un algoritmo que permita calcular el Cociente y el Resto entero de la división de 2 números enteros mediante restas sucesivas. } else { while (numero != 0) { numero /= 10.WriteLine("La Cantidad de Digitos es :"+NroDigitos). } Console.//limpia la pantalla Console. NroDigitos++.Read().1 Algoritmo Inicio{Calcular el cociente y el resto de la división entera de 2 Números} {Leer dividendo y el divisor} Leer Dividiendo. NroDigitos = 0.Clear(). } 11.ReadLine()).2 Codificación C# . } while (numero < 0).

cociente++.Write("Ingresa Dividendo:"). factor2. Console. dividendo. while (resto >= divisor) { resto = resto .Write("Ingresa Divisor:").2 Codificación C# static void Main(string[] args) { int factor1. divisor = int.ReadLine()). dividendo = int.ReadLine()).resto).cociente.Parse(Console.WriteLine("el cociente es :{0} y el resto es {1}".1 Algoritmo Inicio{calcular el producto de 2 Números mediante el algoritmo ruso} {Leer los factores} Leer Factor1. divisor.divisor.Read(). Console.Lenguaje de Programación 126 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int resto. Console. } //mostar el cociente y el resto Console. //leer los factores .Parse(Console. Datos Numero 1 25 24 Numero 2 24 25 Resultado Producto 600 600 12. //calcular el cociente y el resto resto = dividendo.cociente=0.‐Escribir un algoritmo que permita calcular el producto de 2 números enteros positivos utilizando el algoritmo ruso de la multiplicacion. } 12. 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 fin‐si factor1=factor1*2 factor2=factor2 div 2 fin‐mientras {escribir el cociente y el resto} Escribir producto Fin 12.producto.

} .WriteLine("El Producto es :{0}". factor1 = int. j = 0. suma_par = 0. factor2 = factor2 / 2.ReadLine()).ReadKey().WriteLine("Ingresa Factor 1:"). } Console. } //mostrar el producto Console.ReadLine()).2 Codificación C# static void Main(string[] args) { int j.‐Programa que calcula la suma de los 200 primeros numeros pares y los 200 primeros numeros impares simultaneamente. factor2 = int. Console.WriteLine("Ingresa Factor 2:"). suma_imp).Parse(Console.producto).WriteLine("la suma de nùmero pares es : {0}". suma_imp = 0. while (factor2 > 0) { if (factor2 % 2 == 1) producto = producto + factor1. //calcular el producto de los 2 factores producto = 0.WriteLine("la suma de nùmero impares es : {0}". while (j < 200) { suma_imp = suma_imp + ++j.Parse(Console.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) fin‐mientras {escribir el la suma de pares e impares} Escribir suma_imp. factor1 = factor1 * 2.Read().suma_par Fin 13. Console. Console. } 13.Lenguaje de Programación 127 Carlos Rodríguez Torvisco – Algorítmica Console. suma_par). suma_par = suma_par + ++j. Resultado La suma de nuemros impares es 10000 La suma de numeros pars es 10100 13. Console.

a--.Write("\n").2 Codificación C# static void Main(string[] args) { int a. } Console.‐Algoritmo pa que muestre la siguiente figura: 109876543210 9876543210 876543210 76543210 6543210 543210 43210 3210 210 10 14. b--.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=b‐1 fin‐mientras Escribir “\n” **cambio de línea {“a” decrementa} a=a‐1 fin‐mientras Fin 14. while (b >= 0) { Console.Lenguaje de Programación 128 Carlos Rodríguez Torvisco – Algorítmica 14. while (a != 0) { //b tomara ahora el valor de a b = a. //a tomara el valor de 10 a = 10. b. .Write(b).

suma += num.‐Programa que escribe la suma una seria de núemros recogidos del teclado.Lenguaje de Programación } Console.Write("la suma es:"+suma).Read().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. string remp.‐Hacer un programa para calcular el valor maximo y cuantas veces se aparece dicho valor repetido de una serie de N numeros . Console. ‐Introduce un número:1 ‐Introduce un número:4 ‐Introduce un número:7 ‐Introduce un número:99 ‐Introduce un número:40 ‐Introduce un número:345 ‐Introduce un número:23 .Write("\n"). remp = Console.ReadLine(). do { Console.ReadLine()). Console. } 16. ‐ Codificación C# static void Main(string[] args) { int suma=0. num.Write("Ingresa Numero: ").Parse(Console. Console. 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. 129 Carlos Rodríguez Torvisco – Algorítmica } 15.Write("¿Continuar (S/N)?"). num = int. Console.ReadLine(). } while (remp == "S" || remp == "s").

Lenguaje de Programación ‐Introduce un número:345 ‐Introduce un número:5 ‐El Valor Maximo es 345 con 2 repeticiones

130

Carlos Rodríguez Torvisco – Algorítmica

16.1 Algoritmo Inicio{Determina el valor máximo de N números y cuantas veces se repite} {Leer N y validarlo} hacer Leer N mientras(Numero<2) Leer máximo Cantidad = 1 C=1 Hacer C=C+1 Leer numero Si (numero>máximo) entonces máximo=numero Cantidad=1 Sino Si(numero=máximo) entonces Cantidad=Cantidad+1 Fin‐si Mientas(C<N) Escribir máximo, 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 Programación
} else if (numero == maximo) cantidad++; } while (c < N); } Console.Read();

131

Carlos Rodríguez Torvisco – Algorítmica

Console.WriteLine("El Valor Maximo es {0} con {1} repeticiones",maximo,cantidad);

17.‐Programa que lee cinco valores númericos 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 nùmeros : "); 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 Programación

132

Carlos Rodríguez Torvisco – Algorítmica

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

} 20. num += 2) { suma = suma + num.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 . Console. Console.4 20.Lenguaje de Programación escribir m FinPara Fin 19.4 4. ‐ Codification C# 133 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int num.1 3. ‐ Codification C# static void Main(string[] args) { int f.3 0.Write(" {0}. f++) { for (c = 0.4 3.3 1. f. for (num = 0.Write("\n").0 1.3 2.0 4. } .0 0.WriteLine("el resultado de la suma es : {0}".3 4. c.0 2.2 0.2 3. c FinPara Escribir “\n” **carácter de salto de linea FinPara Fin 20.0 3.3 3.4 2.‐El siguiente programa muestra en pantalla las coordenadas de una tabla cuyas dimensiones son 5x5 (filas x columnas) Salida de Resultados 0.1 2.1 4.2 2. ””. num <= 20. f < 5.1 0.2 4.ReadKey(). suma).2 1.{1} ". c).ReadKey(). } Console. c < 5. } Console.4 1. suma = 0.1 1. for (f = 0. c++) Console.

if (sw==0) { pi *= c. ‐ Codification C# static void Main(string[] args) { int sp.2. sw = 0. pi = 1.//calculo del producto de los impares sw = 1. sw. pi. .//calculo de la suma de los pares sw = 0.ReadLine(). do { c++. Producto es :{1}\n".‐Programa que calcula la suma de los 5 primeros números pares y el producto de los 5 primeros números impares simultáneamente. } } while (c < 10).sp Fin 21. sp = 0. Console.1 Algoritmo Inicio{Determina la suma y el producto de los 5 primeros números pares } sp=0.sp. c = 0.pi). } else { sp += c.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 Fin‐si Mientas(c<10) Escribir pi. } 22.c=0.pi=1.‐Programa que calcula la potencia de un número dado el valor de su base y su exponente. c. 21. //mostramos la suma y el producto por pantalla Console.Lenguaje de Programación 134 Carlos Rodríguez Torvisco – Algorítmica 21.WriteLine("La suma es :{0}.

Write("Ingresa Exponente:"). bae = int.ReadLine()). Numero 31 12 15 451 Base 2 Base 8 11111 37 1100 14 1111 17 111000011 703 Base 16 1F C F 1C3 23.Lenguaje de Programación 135 Carlos Rodríguez Torvisco – Algorítmica Base 5 7 2 exponente 0 3 3 potencia 1 343 8 22. //ingresamos base Console. //ingresamos exponente Console. bae. c++.pot). while (c <= exp) { pot *= bae.1 Algoritmo Inicio {calcular la potencia dada la base y el exponente} pot=1. exp.‐Escribir un programa que permita convertir de base 10 a: Base 2. exp = int.ReadLine().Parse(Console.c=1 Leer bas. c = 1. c. Base 8. Console.‐ Codificación C# . exp mientras (c<= exp) hacer pot=pot * bas c=c+1 fin‐mientras escribir pot Fin 22. } //mostramos la potencia Console. } 23.2 Codificación en C# static void Main(string[] args) { int pot.Write("Ingresa Base:").Write("La potencia es :{0}".Parse(Console. pot = 1. Base 16.ReadLine()).

Empty. numero = int.WriteLine("Ingrese Numero:").ToString("D").Write(cadena[i]).ToString("F"). case 13: Cadena break. for (int i = cadena.ToCharArray().Write(cadena2[i]).ToString("C"). = Cadena + Convert.ToString(numero % 8).WriteLine(). case 11: Cadena break. //ahora en base 8 Console. = Cadena + Convert. numero2 = numero2 / 2. string cadena = string. = Cadena + Convert. Console. case 12: Cadena break.1.ToString("E"). = Cadena + Convert.Lenguaje de Programación 136 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int numero. while (numero3 > 0) { digito = numero3 % 16.Parse(Console. } //ahora en base 16 Console. while (numero > 0) { cadena = cadena + Convert. } cadena. = Cadena + Convert. i--) { Console. int digito. Console.Length .Empty. numero2. } cadena2. i >= 0. case 14: Cadena break. . while (numero2 > 0) { cadena2 = cadena2 + Convert.ReadLine()). i >= 0.Write("BASE 2:"). numero2 = numero.ToString("B").WriteLine(). Console. numero = numero / 8. string cadena2 = string. string Cadena = string. = Cadena + Convert. numero3 = numero. i--) { Console. if (digito >= 10) { switch (digito) { case 10: Cadena break.Write("\nBASE 8:"). case 15: Cadena break.ToString("A").Write("BASE 16:").ToCharArray().1.numero3. for (int i = cadena2. } //ahora en base 2 Console.Empty.ToString(numero2 % 2).Length .

ToString(numero3 % 16).Read(). Console.1.‐un numero primo es aquel que es divisible solo por la unidad y por si mismo. .Length . i = numero .Parse(Console. } numero3 = numero3 / 16.ReadLine()).Write("primo").Write("no primo").Lenguaje de Programación 137 Carlos Rodríguez Torvisco – Algorítmica } } else { Cadena = Cadena + Convert. 24. for (int i = 2. } } if (bandera == 1) Console.Write("Numero:").Read().ToCharArray(). i--) { Console. } Console.‐ Codificación C# static void Main(string[] args) { int bandera = 0. Escribir un programa que determine los factores primos de cualquier número entero. numero = int. for (int i = Cadena. int numero.1.Write(Cadena[i]).2. i = i + 1) { if (numero % i == 0) { bandera = 1. else Console. } Cadena. Console.1 Algoritmo Inicio {calcular si un número 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=numero‐1 Finsi fin‐para Si(bandera=1) entonces Escribir “El Numero no es Primo” Sino Escribir “El Numero es Primo” Finsi Fin 24. i >= 0. i < numero. } 24.

4/15. o sea.Read().Parse(Console. La suma de los dígitos de los años será: 1+2+3+4+5. lugar a un cargo decreciente por depreciación basado en una fracción decreciente del costo depreciable (el costo original menos el valor de desecho). mientras que el número de años de vida estimada que resta al principiar el año viene a ser el numerador.Write("Ingresa N:").Write("Ingresa M:"). 25.WriteLine(N). } 26. suma). Por ejemplo. M. Con este método.M Mientras (N<=M) hacer Escribir N Suma =Suma+N N=N+1 Finmientras Escribir suma Fin 25. 15.2/15 y 1/15) al terminar la vida útil del activo. } Console. while (N <= M) { Console. M = int. se depreciará el 1/15 restante. N = N + 1.Lenguaje de Programación } 138 Carlos Rodríguez Torvisco – Algorítmica 25‐Escribir un programa que calcule la suma de los numeros enteros comprendidos entre N y M. Durante el primer año. N = int.‐ Codificación C# static void Main(string[] args) { int N. Console. Con cada fracción se usa la suma de los años como denominador (5+4+3+2+1=15).ReadLine()).3/15.Parse(Console.2. en el transcurso que lea el quinto año. Ejemplo: . el saldo debe ser igual al valor de desecho. y así sucesivamente hasta que.‐ Una técnica para calcular la depreciación de una maquinaria es el método de los dígitos de los años. supongamos que una maquinaria tiene una vida útil esperada de cinco años. suma = 0. Console. el numerador disminuye año con año aunque el denominador permanece constante (5/15. suma = suma + N. Console.1 Algoritmo Inicio {calcularla suma de N yM} Suma=0 Leer N . durante el segundo año se depreciará en 4/15.ReadLine()). el valor del activo se depreciará en 5/15.Write("La Suma es : {0}". Escribir un programa que lea el Valor de una maquinaria y su vida útil esperada y luego imprima un plan de depreciación.

Lenguaje de Programación Base de la depreciación 450000 450000 450000 450000 139 Carlos Rodríguez Torvisco – Algorítmica Fracción de la depreciación 5/15 4/15 2/15 1/15 15/15 Gasto por depreciación 150000 12000 60000 30000 450000 Valor en libros al finalizar el año 350000 230000 80000 50000 Año 1 2 3 5 Vida restante en años 5 4 2 1 15 26.gaspordrepciacion.1.WriteLine("{0} {1} {2}/{3} {4:F0} ".2. Console. vidautil.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.‐ Codificación C# static void Main(string[] args) { double vidautil. } while (vidautil != 0) { fraccion_depreciacion = vidautil / suma. vidautil = int. valorenlibrosalfinalizar = valormaquinaria . gaspordrepciacion = (fraccion_depreciacion * valormaquinaria). suma. } Console.1 Algoritmo Inicio {programa que demuestre plan de depreciación} Leer valor. while (c <= vidautil) { suma = suma + c. c++. Console.ReadLine()). int c = 1.Parse(Console.Read().Parse(Console. valormaquinaria. gaspordrepciacion. valorenlibrosalfinalizar.ReadLine()).Write("Ingrese Vida Útil:"). int suma = 0. double fraccion_depreciacion.Depreciacion i=i‐1 valor=i/SumaDigitos*valor Finmientras Fin 26. vidautil = vidautil . double valormaquinaria. vidautil. valorenlibrosalfinalizar). valormaquinaria = double. } .Write("Ingrese Valor de la Maquinaria:"). gaspordrepciacion. Console.

Lenguaje de Programación 140 Carlos Rodríguez Torvisco – Algorítmica 27.WriteLine(N). N = N + 1.1 Algoritmo Inicio {programa que nos muestre los números del 1 al 100} N=1. while (N <= M) { Console.‐Escribir un programa que muestre los numeros del 1 al 100 27. while (N !=0) { Console.1 Algoritmo Inicio {programa que nos muestre los números del 100 al 1} N=100 Mientras (N<>0) hacer Escribir N N=N‐1 Finmientras Fin 28.‐ Codificación C# static void Main(string[] args) { int N=1.WriteLine(N).2.‐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.2.Read(). N = N -1. M=10. } .M=10 Mientras (N<=M) hacer Escribir N N=N+1 Finmientras Fin 27.Read(). } Console. ‐ Codificación C# static void Main(string[] args) { int N=100. } 28. } Console.

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. i++) for (int j = 0. z).1 Algoritmo Inicio {determinar si un numero es perfecto o no} s=0. z < 25. Console.k Finsi Finpara Finpara Finpara Fin 29.j.WriteLine("{0}-{1}-{2}". Es decir. z++) if (i * j * z == i + j + z) Console. ‐ Codificación C# static void Main(string[] args) { for (int i = 0.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. i < 25. 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 : 1‐2‐3 29. que den el mismo resultado cuando se multipliquen o se sumen.Read().2.‐Un numero entero es perfecto si resulta ser la suma de sus divisors propios. i. } 30. j < 25. Por ejemplo 6=1 + 2 + 3 28=1 + 2 + 4 + 7+ 14 29. j. .Lenguaje de Programación 141 Carlos Rodríguez Torvisco – Algorítmica 29. j++) for (int z = 0.‐Escribir un programa que determine todo los conjuntos de tres números enteros menores de 25.

Write("el numero es perfecto"). } 31. while (c < num) { r = num % c. if (r == 0) s = s + c. i.Parse(Console. c = 1. . s = 0. r. else Console.‐Escriba un programa que determine los factores primos de cualquier numero entero.Write("Ingresa Numero:"). //Cuando Tenemos solo una instruccion no es necesario las llaves c = c + 1.2. ‐ Codificación C# static void Main(string[] args) { int num.ReadLine()).Write("el numero no es perfecto").Lenguaje de Programación FinMientras Si ( s = num)entonces Escribir “el numero es perfecto” Sino Escribir “el numero no es perfecto” Finsi Fin 30. c. } if (s == num) Console.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. s. Console.2. num = int. ‐ Codificación C# 142 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int num. Console. 31.Read().

N = int. } else i++.ReadLine()).2.Parse(Console. Console. Console.Write("Ingresa Número:"). } 32.WriteLine(i). CatnImp = 0.Read().Lenguaje de Programación 143 Carlos Rodríguez Torvisco – Algorítmica Console. ‐ Codificación C# static void Main(string[] args) { int CantPares = 0. . while (i <= num) { if (num % i == 0) { num = num / i.‐ Escribir un algoritmo que determine cuantos digitos pares y cuantos digitos impares tiene un número de “n” digitos.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.ReadLine()). 35 = tiene 2 digitos impares y 0 pares 24869 = tiene 1 digito impar y 4 pares 32. int N. i = 2. num = int. } Console. R.Write("Introduce Numero:").Parse(Console.

} Console.05.Read(). do { double fx = 3.WriteLine("Cantidad de Pares:{0}". x = 0. Console.05).45*x‐0. x += 0. 3 – 9 – 18 3 MCD= 3 24 ‐ 36 ‐ 72 3 MCD = 3 * 4 = 12 1–3–6 8 ‐ 12 ‐ 24 4 .94422311 9.00 0. Console.0.00.0.05. Console. else CatnImp++. CantPares).WriteLine("F({0})={1}". CatnImp).05){si ponemos 2.25) Escribir fx x=x+0.84615385 33.20*X/(0. ‐ Codificación C# static void Main(string[] args) { double x.//x=x+0.00 X 0. if (R % 2 == 0) CantPares++.‐Escribir un programa que determine el máximo común divisor de tres números enteros positivos.45 * X – 0.Lenguaje de Programación 144 Carlos Rodríguez Torvisco – Algorítmica } while (N > 0) { R = N % 10.05 0.10 … 1.20 * x / (0.25). 33.00 ‐0.95} Fin 33.‐ Escribir un programa que permita tabular la siguiente función: F(X)=3.7032967 1. Console.0. } 34.00 F(X) 0.00.WriteLine("Cantidad de Impares:{0}".95 2.00 solo nos mostrara hasta el 1.0.1 Algoritmo Inicio {tabular la siguiente función f(x)} hacer fx=3. N /= 10.…. x.15.56097561 … 9.Read(). fx).25) Para X= 0.05 } while (x < 2.2.05 Mientras(x<2.45 * x .10.20*x/(0.2.

ReadLine()).‐En el ultimo censo dela ciudad de Abancay.Write("El Maximo Común Divisor es :" + C). } Console. ‐ Codificación C# static void Main(string[] args) { //declarmaos nuestras variables int A.Parse(Console. C = int. Console. A = int. C = Resto.Lenguaje de Programación 2‐ 3 ‐ 6 145 Carlos Rodríguez Torvisco – Algorítmica 34. C.Parse(Console.2. } Resto = B % C.Parse(Console.ReadLine()).Write("Ingresa El Segundo Número:"). se consigno la siguiente informacion en las fichas respectivas: . B = Resto.ReadLine()). Console. Resto = A % B. Console. Console. B = int.Read(). while (Resto != 0) { B = C.1 Algoritmo Inicio {calcular el máximo común divisor de 3 números} {Leemos los tres numeros} Leer A. B. Resto = B % B.Write("Ingresa El Tercer Número:"). Resto = A % B. Resto.Write("Ingresa El Primer Número:"). while (Resto != 0) { 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.B. } 35.

edad.d=divorciado) Escribir un programa que determine: • Número de varones y número de mujeres. M . 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 años} Finsi j=j+1 FinMientras Escribir H . c = casado.M=0{inicializamos } Leer num {Leemos el numero de personas que queramos hacerle el censo} Mientras ( j < num) hacer Leer sexo . ‐ Codificación C# . v= viudo.1 Algoritmo Inicio {determinar resultados encuesta} J=0. Numero{escribimos el total de mujeres y varones } Fin 35.2. EJEMPLO: Supongamos que la cantidad de cesantes es 9 DATOS SEXO 2 1 2 2 1 1 1 2 1 EDAD 17 40 35 48 20 30 150 16 20 ESTADO C. • Número de muchachas solteras entre las edades de 16 y 21 años.Lenguaje de Programación • • • 146 Carlos Rodríguez Torvisco – Algorítmica Edad Sexo(1=Hombre y 2 = Mujer) Estado Civil (s = soltero.Numero=0. S C V V C S S S V Número de Varones: 5 Número de Mujeres:4 Número de muchachas solteras entre las edades de 16 y 21 años : 2 35. estadc {ingresamos sexo .H=0.

ReadLine()). j + 1). 5. .sumaser=0 Mientras ( j <=1800) hacer sumaser = sumaser + i Escribir i {mostramos los términos de la serie} Si (band = ‘T’) entonces i=i+3 band= ‘F’ Sino i=i+2 .Parse(Console. op = Console. j++. num = int..WriteLine("\n4.-Casado(c)").. int num.Write("Ingrese Cantidad de Censantes:"). Console. Console.Read().1 Algoritmo Inicio {determinar la suma de la siguiente serie} I=2. h = 0. 36.Write("\nIngrese Sexo(Hombre=1/Mujer=2):").Write("\n2.Write("\n3. while (j < num) { Console. if ((edad >= 16) && (edad <= 21) && (sexo == 2) && op == "s") numero++.Parse(Console.Write("\nEl Total de Numero de Muchachas Solteras"). m = 0. } Console. La suma de la serie es : 2 + 5+7+10+12+17+20+22+25+…+1800 = 648720 36.Clear().-Soltero(s)"). numero = 0. Console.-Divorciado(d)"). e imprima los terminos de la siguiente serie: 2.Write("Ingrese Edad:").Write("\n1.Lenguaje de Programación 147 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int j = 0. Console.-Viudo(v)"). h.Write("\nTotal de Varones es :{0} y Total de Mujeres es :{1}". edad = int. sexo = int.Parse(Console. numero).‐ Escriba un programa que obtenga la suma. 1800. . //ingresamos la cantidad de personas que queremos censar Console.e int sexo.Write("\nque estan entre 16 y 21 años es de : {0}".Write(" Numero de Censo {0}". 17. m).ReadLine()). Console. 10. 12. edad. Console. 7. else if (sexo == 2)//hallamos la cantidad de mujeres m++. Console.ReadLine(). //hallamos la cantidad de varones if (sexo == 1) h++. Console.ReadLine()). string op. Console. Console.Write("Estado Civil"). } Console.

Read(). sum = 0. } 37.1 Algoritmo Inicio {calcular la suma de los pares del 1 al 10} Sumapar=0.Lenguaje de Programación 148 Carlos Rodríguez Torvisco – Algorítmica band= ‘T’ Finsi FinMientras Escribir sumaser{escribimos la suma de la serie} Fin 36.10 = 2+4+6+8+10 = 30 37.‐Haga un programa para sumar los pares comprendidos entre 1 y 10 1 2 3 4 5 6 7 8 9 10 Entonces agarramos los pares: 2 .WriteLine(i).2. } } Console. band = 'T'.WriteLine("Suma de los números pares entre 1 y 10").WriteLine("La Suma de la Serie es:" + sumaser).8. Console. ‐ Codificación C# static void Main(string[] args) { float i = 2. 4 .2. Console. band = 'F'. if (band == 'T') { i += 3. } else { i += 2. while (i <= 1800) { sumaser += i. .numpar=2 Mientras (numpar<=10) hacer Sumpar = Sumpar + numpar numpar = numpar +2 FinMientras Escribir Sumpar{escribimos la suma de los números pares} Fin 37.6 . Console. char band = 'T'. sumaser = 0. ‐ Codificación C# static void Main(string[] args) { int numpar = 2.

ReadLine()). Console.WriteLine("La Suma es:" + sum). for (i = 1.Read(). float mul. mul).Write("Ingresar el número: "). Console.‐Haga un programa para obtener la tabla de multiplicacion de un número entero k. 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.”*”. i++) { mul = K * i. } Console. K. Console. K. Console. } .K).2.Parse(Console. 38.i.WriteLine("\t{0} * {1} = {2}". numpar = numpar + 2. comenzando desde 1 hasta el 12. ‐ Codificación C# static void Main(string[] args) { int i.”=”. K = int.Lenguaje de Programación 149 Carlos Rodríguez Torvisco – Algorítmica } while (numpar <= 10) { sum = sum + numpar. i.Mult FinPara Fin 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.WriteLine("\n\tTabla de Multiplicar del {0}\n". i <= 12.

else Console.Write("1/{0}".28 N= 20 =====> 1 + 1/2 + 1/3+1/4+1/5 + … + 1/20 =3.1 Algoritmo Inicio {calcular la suma de la serie} Leer N Serie=0. + 1/N N = 5 =====> 1‐ 1/2 + 1/3‐1/4 + 1/5 = 0.WriteLine("\nLa suma es: {0}". } Console. ‐ Codificación C# static void Main(string[] args) { int N. } 40.‐ Escriba un programa de flujo que lea un número entero N y calcule el resultado de la siguiente serie: 1 ‐ 1/2 + 1/3 ‐ 1/4 + . serie).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.ReadLine(). Console.ReadLine().. for (i = 1. float i. } serie = serie + (1 / i).ReadLine()). serie = 0. N = int. } 150 Carlos Rodríguez Torvisco – Algorítmica 39. else { if (N == i) Console.59774 39. i). Console..Serie2=0 . i <= N. i)..Lenguaje de Programación Console..‐ Escriba un programa de flujo que lea un número 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.2.Write("1 +".6687717 40.Write("Ingresar el número N: ").Write("1/{0} + ".78 N= 20 =====> 1 ‐ 1/2 + 1/3‐1/4+1/5 ‐ … ‐ 1/20 =0. i). i++) { if (i == 1) Console.Parse(Console.

} 41. considere un aumento del 15% a cada uno de ellos. serie). i.Write("1/{0} -".Write("1/{0} +".Write("Ingresar el número N: "). N = int. 800. else { if (i % 2 == 0 && i != N) Console.2. Console.0f.0f. if (i % 2 == 0) serie1 = serie1 . serie2 = 0. else Console. else { if (i != N) Console. i). } } j = i. else serie2 = serie2 + (1 / j).WriteLine("\nLa suma es: {0}". i).ReadLine()).(1 / j). i <= N. i). j. i++) { if (i == 1) Console. .Parse(Console.ReadLine(). Haga el Programa correspondiente.Lenguaje de Programación 151 Carlos Rodríguez Torvisco – Algorítmica 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. Console.Write("1/{0}". si su sueldo es inferior a s/.‐ Dado el sueldo de N trabajadores.Write("1-". serie = 0. } serie = serie1 + serie2. i). float serie1 = 0. Imprima el sueldo con aumento incorporado (su corresponde). Console. ‐ Codificación C# static void Main(string[] args) { int N. for (i = 1.0f.

} Console.WriteLine("El sueldo neto es:{0}\n". 1000 : Aumento 15% Si el sueldo es mayor o igual a S/. Console.ReadLine(). i <= N.ReadLine()). N = int.15f.2.Parse(Console. Si el sueldo es inferior a S/. .15)} Finsi Escribir sue {Mostramos sueldo del trabajador} FinPara Fin 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.Lenguaje de Programación 152 Carlos Rodríguez Torvisco – Algorítmica 41. } 42. sue = float. sue).Parse(Console. i++) { Console.Write("Ingrese el sueldo del trabajador {0}: ".ReadLine()). N. Console. considernado este nuevo aumento. teniendo en cuenta el siguiente criterio. float sue.Write("Ingrese el número de trabajadores: "). 1000 : Aumento 12% Imprima el sueldo nuevo del trabajador y el total de nomina de la empresa. ‐ Codificación C# static void Main(string[] args) { int i.15 {También se pude hacer sue = sue+(sue * 0.‐ Calcule el aumento de sueldo para un grupo de empleados de una empresa. if (sue < 800) sue = sue * 1. i). for (i = 1.

ReadLine()). ‐ Codificación C# static void Main(string[] args) { float nom.ReadLine()).Write("\nIngresar el sueldo: ").Lenguaje de Programación 153 Carlos Rodríguez Torvisco – Algorítmica 42. Console. nsue). sue = float. sue = float.Parse(Console.WriteLine("El nuevo sueldo del trabajador es: {0}". nsue. sue. } . nom = 0. Console.Write("\nIngresar el sueldo:"). Console. else nsue = sue * 1. while (sue != -1) { if (sue < 1000) nsue = sue * 1.15 Sino nsue=sue * 1.12f. nom = nom + nsue.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.Parse(Console.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.15f.2.

Lenguaje de Programación

154

Carlos Rodríguez Torvisco – Algorítmica

Console.WriteLine("\n***El total de la nómina 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 número 1, independientemente del entero inicial. Por cuando el entero inicial es 26, la secuencia será : 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. Construya un programa que lea un entreo positivo y obtenga e imprima la sucesión de ULAM. ejemplo,

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 {también 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. ‐ Codificación C#
static void Main(string[] args) { int N; Console.Write("Ingresar número: "); N = int.Parse(Console.ReadLine()); if (N > 0) { Console.Write("{0} ", N);

Lenguaje de Programación

155

Carlos Rodríguez Torvisco – Algorítmica

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

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

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

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

44.‐ En una escuela, donde se tienen registros con las caracter¡sticas físicas 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 población estudiantil femenina. c) Lista de alumnos con aptitudes f¡sicas para jugar al basquet. Requerimientos: ALTURA>=1.83 y 73<=PESO<=105 d) Porcentaje de alumnos con estas aptitudes de la población estudiantil masculina. Por cada alumno se ingresa su NOMBRE, SEXO, EDAD, PESO Y ALTURA.

Lenguaje de Programación

156

Carlos Rodríguez Torvisco – Algorítmica

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. ‐ Codificación 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 número 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 Programación

157

Carlos Rodríguez Torvisco – Algorítmica

}

} 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();

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"); }

45.‐ En una empresa con N empleados se necesita obtener cierta información. Por cada empleado se ingresan los siguientes datos CLAVE, EDAD, SEXO y SUELDO. Haga un programa para calcular e imprimar lo siguiente: a) Número de hombres. b) Número de mujeres. c) Número de mujeres que ganen con mas de s/. 1000. d) Número de hombres menores de 40 años que ganen menos de s/. 100. e) Número de empleadosmayores de 50 años.

Lenguaje de Programación

158

Carlos Rodríguez Torvisco – Algorítmica

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 años} nem=nem +1 Finsi Según_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 Finsegún_sea FinPara Escribir nh,nm,nem,nmg,nhm Fin 45.2. ‐ Codificación C#
static void Main(string[] args) { int I, N, clave, edad, sexo; int nh, nm, nem, nhm, nmg;

Lenguaje de Programación

159

Carlos Rodríguez Torvisco – Algorítmica

double sueldo; I = 0; nh = 0; nm = 0; nmg = 0; nem = 0; nhm = 0; Console.Write("Ingresar el número 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\tNÚMERO DE HOMBRES: {0}\n", nh); Console.WriteLine("\tNÚMERO DE MUJERES: {0}\n", nm); Console.WriteLine("\n\tNúmero de empleados mayores de 50 años: {0}\n", nem); Console.WriteLine("\n\tMujeres que ganan más de 1000: {0}\n", nmg); Console.WriteLine("\tHombres < 40 años que ganan más de 1000: {0}", nhm); Console.ReadLine(); }

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

m4 + 7 * n2 < 540

Pow(m. 4) + 7 * Math.ReadLine().Z=0. Console.Z res=18*X^3+11*Y^5+8*Z^6 .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. while (Math. n Finsi Finmientras m=m+1 n=1 Finmientras Fin 46. n = 1.WriteLine("Los siguientes pares cumplen con la condicion: ").Lenguaje de Programación 160 Carlos Rodríguez Torvisco – Algorítmica 46.Pow(n. 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 .2.Pow(n. n = 1.1 Algoritmo Inicio {calcular cuantos pares cumplen la condición} m=1 . } Console. n++. 2) < 540) { if (m % 2 == 0 && n % 2 == 0) Console.Pow(m.WriteLine("M={0} y N={1}".Y y Z que satisfagan la siguiente expresión: 18 * X 3 + 11* Y 5 + 8 * Z 6 < 6300 47. ‐ Codificación C# static void Main(string[] args) { int m = 1. } m++. 4) + 7 * Math. 2) < 540) { while (Math. Console.Y. } 47.1 Algoritmo Inicio X=0.‐ Escriba un programa que imprima todos los valores de X. m.WriteLine("M^4 + 7*N^2 < 540\n"). n).

3) + 11 * Math. } Console. 3) + 11 * Math. 47. Haga un programa que calcule lo siguiente: a) Sucursal que más ha vendido en cada año. z++.Pow(x.Z={2})".Lenguaje de Programación 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.1 Algoritmo Inicio anno=0.Pow(z. z = 0. a lo largo de los últimos 14 años.ReadLine(). } res = 18 * Math. 5) + 8 * Math. ‐ Codificación C# static void Main(string[] args) { int x = 0. } y++.totven=0 Leer N Para(i=1) hasta (i<=14) incremento 1 hacer J=1 . res = 18 * Math. double res = 0. 5) + 8 * Math.WriteLine("(X={0}.suc=0.2. y. z = 0. y = 0. 3) + 11 * Math.Pow(x. d) Ventas totales de la empresa (considerando las N sucursales durante 14 años). 5) + 8 * Math. 161 Carlos Rodríguez Torvisco – Algorítmica res = 18 * Math. x. 3) + 11 * Math.‐ Una empresa automotriz necesita manejar los montos de ventas de sus N sucursales. 48.Pow(y. 6). 5) + 8 * Math.Pow(z. b) Promedio de ventas por año.Pow(x. 6).Pow(z. while (res < 6300) { while (res < 6300) { while (res < 6300) { Console.Pow(y. 6). z).Pow(z. 6).Pow(y.Pow(y. y = 0. z = 0.Y={1}. } x++. c) Año con mayor promedio de ventas. res = 18 * Math.annomay=0.Pow(x.

venta = double. J). N = int. J. I++) { Console. for (J = 1. proanno. venanno = 0.ReadLine()). venanno. ‐ Codificación C# static void Main(string[] args) { int I. totven = 0. annomay.WriteLine("***** AÑO {0} *****". J++) { Console. I = 1. mayven = 0. J = 1.Parse(Console.WriteLine("*** SUCURSAL {0} ***".2. Console.Write("Ingresar Venta S/. I). mayven.Parse(Console. .ReadLine()). annomay = 0. I <= 14.Lenguaje de Programación 162 Carlos Rodríguez Torvisco – Algorítmica 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 más 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 año que mas vendió en la empresa} Escribir anno {Escribimos su venta} Escribir annomay {Escribimos el total de venta} Escribir totven Fin 48. Console. N. double totven. suc = 0.: "). J <= N. venta. venanno = venanno + venta. for (I = 1.Write("Ingresar número de sucursales: "). anno = 0.

(311. (59. Console. 43). 271). (4. anno). 823). } } Console. 643). 571). 3). (617.WriteLine("Sucursal que más vendio en el año {0}: Sucursal {1} ". (827. (569. (269. (599.(11. proanno = venanno / (N). Los primos gemelos son parejas de números primos con una diferencia entre sì de exactamente dos. (659. 103). 109). 73). (191. anno = I. Una ves que ya sabemos qué es podemos pensar en como resolverlo el problema que nos plantean.ReadLine().(5.WriteLine("Vendió: S/. Ejemplo: 3 y 5 son primos gemelos. (41. 31).WriteLine("TOTAL VENTAS DE LA EMPRESA : S/.. (149. si "q=p+2". (461.{1}". proanno). (821. annomay). 6). 49. (137. 61). (197. 19).‐ Escriba un programa que obtenga e imprima todos los números "Primos Gemelos" comprendidos entre A y B (enteros positivos). (227. (641. (179. 829).WriteLine("PROMEDIO VENTAS AÑO {0} : S/. (71.{0}". 811).WriteLine("Año que más vendio la empresa: Año {0} ". lo que lo hace adecuado para iniciados. (101. I. (17. suc). Console.. Cuáles cumplen las condiciones necesarias. if (venanno > annomay) { annomay = venanno. Console. 139). (521.WriteLine("Ventas : S/. 181). es decir.. 433). (809.‐ Ambos números deben ser primos. 619). (239. Ejemplo: 3 y 5 se diferencian en dos unidades.{0}". 313). Así. 2. 283).. En primer lugar. 151). mayven). (347. 5).‐ La diferencia entre uno y otro debe ser 2. Los primeros números primos gemelos son: (1. Console. 5).3). totven). 199). } totven = totven + venanno.Lenguaje de Programación if (venta > mayven) { mayven = venta. (29. Puedes mejorarlo. 13). 7). (2.. (3. 421). Console. 229). 349). I. .(3. que para que dos números sean primos gemelos se deben cumplir dos condiciones: 1. (431. . Ejemplo: 3 es nº primo y 5 también. (419.(281. 661). . ¿cuáles o qué son los números primos gemelos? Dos números primos "p" y "q" son números primos gemelos si la diferencia entre ellos es de 2. lo que hacemos es buscar en las parejas sucesivas de (p. Así. 241). Si tu nivel es mayor. 523).{0}". } 163 Carlos Rodríguez Torvisco – Algorítmica } Console. (107. suc = J. 193). q) : (1. Este algoritmo es muy sencillo. 463). 4).601).

I Finsi Sino band1 = "F". . Finsi Mientras(I<=B) hacer Band2=”v” j=3 Mientras (J < (I div 2) y band2 =”v”hacer 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 = 0.Lenguaje de Programación 164 Carlos Rodríguez Torvisco – Algorítmica 49. ‐ Codificación C# static void Main(string[] args) { int A. B.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 I=I+2 Finmientras Fin 49.band=””.band2=”” Leer A.2. J.1 Algoritmo Inicio I=0.

else } else band1 = "F".ReadLine(). dada una X cualquiera. B = int.ReadLine()). Console. else I = A. y que la diferencia entre SEN(X) y la suma antes mencionada se vuelve menor conforme se toman más términos. 165 Carlos Rodríguez Torvisco – Algorítmica Console. ter=1. 50.Write("\nIngresar A:"). A) > 0) I = A + 1. band2. 3! 5! 7! Es un número considerablemente cercano a SEN(X). } if (band2 == "V") { if (band1 == "F") band1 = "V". J = J + 2..Parse(Console. de tal modo que dicha diferencia sea menor o igual a 0.WriteLine("Primos gemelos entre A y B (solo enteros positivos)"). calcule el SEN(X).Lenguaje de Programación string band1 = "".‐ Es posible demostrar que la suma de un número "suficiente" de términos de la serie: X− X3 X5 X7 + − + . utilizando la serie anterior.ReadLine()). while (J < (I / 2) && band2 == "V") { if (I % J == 0) band2 = "F". J = 3.cal=0 Leer X sum=X . } Console. Imprima el número de términos requeridos para obtener esta precisión.05.2..Write("Ingresar B:").band = “F” Mientras(|sum|>=0. Console. I .1 Algoritmo Inicio I=3. I = I + 2.Pow(-1.WriteLine("PRIMOS GEMELOS: {0} {1} \n". I). band1 = "F".05) hacer .Parse(Console. } 50. Console. A = int. Escriba un programa para que. if (A < B && A > 0 && B > 0) { if (Math. } while (I <= B) { band2 = "V".

cal. J++) { fact = fact * J. ter = 1. X = int. Console. band = "F". double sum. X. sum = X. Console. while (Math.Suma)) <= 0.X^7/7! + . } ter = ter + 1. J. if (band == "F") { sum = sum + cal. Console. I = 3. fact.Abs(sum) >= 0. Console.Write("Ingresar número [X]: "). ‐ Codificación C# static void Main(string[] args) { int I.Write("buscar el número de terminos X para obtener\n").\n"). J <= I.Lenguaje de Programación 166 Carlos Rodríguez Torvisco – Algorítmica 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=sum‐cal band=”T” Finsi ter=ter+1 I=I+2 Finmientras Escribir ter Fin 50.05) { fact = 1. double cal = 0.WriteLine("FUNCION : X . J = 1.X^3/3! + X^5/5! .Parse(Console. ter. } else { sum = sum . } cal = (Math..ReadLine()). band = "T". . for (J = 1.WriteLine("la diferencia (sen(X) .05\n"). band = "F". I) / fact)..Pow(X.2. string band.

si un objeto se deprecia 8000 dólares en diez años. .‐Escribir un programa que calcule la suma de los números hasta un número dado (introducido por el usuario). 2.El cociente resultante será la cantidad en la que el objeto se deprecia anualmente. 12.‐Diseñar un programa que calcule el producto de los “N” primeros números pares.‐Escribir un programa que realice la pregunta ¿Desea continuar S/N? y que no deje de hacerla hasta que el usuario teclee N. 3. entonces la depreciación anual será 8000/10=800 dólares. ter).‐Programa que calcula el cuadrado de los 100 primeros números pares.‐escribir un programa que calcule la depreciación de un objeto según el método de la línea recta.‐Escribir un programa que visualice en pantalla los números múltiplos de 5 comprendidos entre 1 y 100‐ 10. En este método el valor original del objeto se divide por su vida(numero de años). 13.‐ Escribir un programa que calcule la suma de todos los múltiplos de 5 menores de N.‐ Escribir un programa que realice un bucle con do – while y muestre en pantalla del 1 al 10 8. 4. Calcular el número de años que tarda en hacerse 0.WriteLine("\nEl número de terminos de la serie es: {0}".‐Hacer un Programa que lea 30 números y determine cuales y cuantos de ellos son múltiplos de 7.‐Escribir un programa que pida un numero y si el que se introduce por teclado es menor de 100 que vuelva a solicitarlo.‐Programa que calcula la suma de los cubos de los 50 primeros números naturales.‐Escribir un programa que visualice en pantalla los números pares entre 1 y 25 9. Por tanto. Console.Lenguaje de Programación I = I + 2. 11. 6. 167 Carlos Rodríguez Torvisco – Algorítmica } Console.‐Escribir un programa que genere la tabla de multiplicar de un número introducido por el teclado. 15. el valor del objeto habrá disminuido en 800 dólares cada año. Por ejemplo.ReadLine(). 14.‐Escribir un programa que calcule cuantos años tarda en duplicarse un capital depositado al 5% de interés anual.‐Escribir un programa que lea un numero entero “N” y muestre en pantalla los cuadrados y los cubos de los “N” primeros números naturales. 5. Nótese que la depreciación anual es la misma cada año cuando se utiliza este método. 7. EJERCICIOS PROPUESTOS 1.

variara de un año al siguiente. calcule cuál es el mayor y el menor de estos números. 17. 18. que dado el peso.‐ Un vendedor ha hecho una serie de ventas y desea saber cuántas de estas fueron de $ 200 o menos.2 X 6400=1280 dólares.‐Escribir un programa que calcule la depreciación de un objeto según el método del balance doblemente declinante. . la verdadera cantidad depreciada.‐ Escriba un programa tal.‐ Calcule el aumento de sueldo para N empleados de una empresa. Este factor se multiplica por el valor del objeto al comienzo de cada año ( y no el valor del original del objeto) para obtener la depreciación anual. b) El monto total de la nómina. nos interesa obtener el promedio de la altura y peso de la población femenina y masculina. 22. 19. 24.Lenguaje de Programación 168 Carlos Rodríguez Torvisco – Algorítmica 16. Es decir.‐ Construya un programa que lea 100 números naturales y cuente cuántos de ellos son positivos.2 X 5120=1024 dólares. y así sucesivamente.‐ Haga un programa que calcule e imprima el producto de los naturales. Por tanto. En este método. cuántas fueron mayores a $ 200 pero inferiores a $ 400. la depreciación del segundo será 0. la altura y el sexo de N personas que pertenecen a un estado de la república.‐ Resuelva el problema anterior. b) Calcule el promedio de los números positivos. la depreciación del tercer año será 0. dividimos por dos la vida del objeto. haga un programa que: a) Obtenga cuántos números leídos fueron mayores que cero. pero considere además el promedio de la altura y del peso en función del sexo.por tanto. que dado N números enteros como datos. c) Obtenga el promedio de todos los números.2. por ejemplo que deseamos depreciar un objeto de 8000 dólares por diez años. negativos o nulos.‐ Escriba un programa tal. N primeros números i =1 πi N 21. la depreciación el primer año será 0. Supongamos. el valor del objeto disminuye cada año en un porcentaje constante. obtenga el promedio del peso y la altura de esta población. y cuantas de $ 400 o superiores a tal cantidad. 20.‐ Dado N números enteros como datos. Para obtener el factor de depreciación.2 X 8000=1600 dólares. 23. 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. el factor de depreciación será 2/10=0. en dólares.

99 10. pero ahora considere que no existe la operación de potencia.99 7.4). Haga el programa correspondiente. en el último periodo.‐ Escriba un programa que reciba como entrada 24 números reales que representan las temperaturas del exterior en un periodo de 24 horas. el número de votos correspondientes a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. dirección. Por cada cliente se ingresa su nombre.‐ La compañía de Luz "del Centro" desea imprimir los recibos de cobro de los cuenta habitantes.. Encuentre la temperatura media del día y las temperaturas más alta y más baja del día.. haga un programa para calcular el resultado de la siguiente función: 3 * Y + 36  4 Y − 10 X =  15 10 Y + Y − 1 0    si11 < Y ≤ 33   si33 < Y ≤ 64  para cualquier otro caso  si0 < Y ≤ 11 30. 28.Resuelva el problema anterior. Haga el porgrama correspondiente. registro inicial y registro final. 27.3. … 3. El usuario teclear los votos de manera desorganizada. Usted habrá de encontrar...‐ Una persona invierte en un banco un cierto capital y requiere saber cuánto obtendrá al cabo de cierto tiempo. . 31.99 5.2.‐ Supóngase que en una reciente elección hubo 4 candidatos (con identificadores 1. necesitamos obtener el número de empleado y sueldo del trabajador con el mayor sueldo de la empresa. y asi sucesivamente.Lenguaje de Programación 169 Carlos Rodríguez Torvisco – Algorítmica Haga un programa que le proporcione al vendedor esta información después de haber le¡do los datos de entrada..‐ De una empresa con N empleados.. mediante un programa. Observe. si el dinero se colocó a una determinada tasa de interés mensual. tal y como se obtuvieron en la elección. Desea obtener también el total de cobros del periodo.‐ Dado N valores de Y. 3 un voto para el candidato 3. el final de datos esta representado por un cero. Haga un programa que calcule e imprima cuántas calificaciones hay en cada uno de los siguientes rangos: 0 4 6 8 . . El cobro se efectúa con base en la siguiente tabla.‐ Se tienen las calificaciones de un grupo de alumnos que presentaron un examen de computación. como ejemplo la siguiente lista: 13142214111213140 Donde 1 representa un voto para el candidato 1.. . 25. 32. 29.0 26.

3.5 Condiciones para Facultad Menor de Computación: semestre >= 5 y promedio >= 8.5 Condiciones para Facultad Menor de Administración: semestre >= 5 y promedio >= 8. 0. En resúmen. Contabilidad e Ingeniería en Computación.‐ En una clase de una universidad se tienen 35 alumnos. 35. Cabe aclarar que cada alumno de la clase tiene 5 calificaciones. Haga un programa que calcule e imprima la matricula y el promedio de calificaciones de cada alumno. MODULARIDAD En este capitulo haremos en la “METODOLOGIA DESCENDENTE” llamada también “METODOLOGÍA DE ARRIBA HACIA. varían de carrera en carrera y se presentan a continuación: Condiciones para Facultad Menor de Economía: Semestre >= 5 y promedio >= 8. Administración. Las condiciones para ser seleccionado como presunto candidato para entrar a la facultad menor.097 por KVH Haga un programa para calcular lo solicitado anteriormente. pero considere que las cinco calificaciones del alumno se leerán dentro de un ciclo.‐ Resuelva el problema anterior con las consideraciones planteadas en el mismo.‐ En una universidad se necesita obtener una lista de alumnos candidatos a la Facultad Menor de Economía.20 s/. 0.Lenguaje de Programación 170 Carlos Rodríguez Torvisco – Algorítmica 140 KVH o menos ‐‐‐> Los siguientes KVH ‐‐‐> Exceso sobre 310 KVH s/.15 por KVH ‐‐‐> s/. pero sólo imprima matricula y promedio del mejor y del peor alumno.‐ Resuelva el ejercicio anterior. esta metodología produce una estructura jerarquizada tal como se muestra en la figura.introduciremos un nuevo elemento llamado “modulo”.8 34. 36. 33. ABAJO” (TOP‐DOWN METHOD).8 Condiciones para Facultad Menor de Contabilidad: semestre >= 5 y promedio >= 8. .que es la estructura básica de esta metodología.

tomaremos también esta acepcion como base para la defincion de módulo.Lenguaje de Programación 171 Carlos Rodríguez Torvisco – Algorítmica Problema Problema Sub‐problema1 Sub‐problema2 … Sub‐probleman Sub‐problema21 Sub‐problema22 … Sub‐problema2n La relacion que existe entre la “metodología descendente” y la “programacion modular” es que la programacion modular es la implementación de las unidades logicas o modulos identificados con la metodología descendente. Programación modular Es una metodologia que permite la “metodologia descendente” donde un programa es un conjunto de módulos relacionados entre si. “Pieza o conjunto unitario de piezas que se repiten en una construccion de cualquier tipo. 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”. En el contexto informatico. De aquí en adelante. un programa será una organización de uno o varios módulos relacionados entre sí. es decir. . un módulo será la pieza base de construcción de programas. para hacerla más facíl regular y economica”. inicialmente consideramos la definición más general del DRAE. Concepto de módulo Modulo tiene diferentes acepciones.

Lenguaje de Programación

172

Carlos Rodríguez Torvisco – Algorítmica

En este ejemplo vemos la definición (declaración) de un procedimiento en pseudocódigo para calcular la suma de dos números enteros, los cuales son pasados al subprograma como parámetros de entrada. El procedimiento calcula la suma y la devuelve como un parámetro de salida. Luego vemos como podemos utilizar el procedimiento invocándolo desde el programa principal u otro procedimiento. Nótese que los nombres de los parámetros en la definición (parámetro1 y parámetro2) no necesariamente tienen que ser los mismos que los utilizados en la invocación (a y b). Nótese también que el compilador chequeará previamente que el tipo de dato del parámetro de salida del procedimiento (en este caso un número entero) pueda ser asignado a la variable c según su tipo. Al nombre del procedimiento junto con la lista ordenada de sus parámetros 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 Programación

173

Carlos Rodríguez Torvisco – Algorítmica

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 Programación

174

Carlos Rodríguez Torvisco – Algorítmica

//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 números 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 Número: "); 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(); }

numero2. Numero1 = int.Parse(Console.Write("Ingrese Numero 2: "). i <= 12. Console. Numero2). Console.Write("Ingrese Opcion: "). mayorr).Write("Ingresa Numero 3:").WriteLine("{0} x {1} = {2}".ReadLine()).Write("Ingrese Numero 1: "). Tabla Sumar"). i = i + 1) { Console.ReadLine(). Console. mayorr = determinarmayor(numero3.ReadLine()). i. return Mayor. Console.WriteLine("Tablas Aritmeticas"). Console. static void Main(string[] args) { int Numero1.Read(). Console.Clear(). numero2).Write("Ingresa Numero 2:").WriteLine("1.WriteLine("El Mayor es:{0}".Lenguaje de Programación 175 Carlos Rodríguez Torvisco – Algorítmica //modulo de la tabla de multiplicar static void TablaMultiplicar() { int Numero. .int N2) { int Mayor. numero2 = int. Console. Tabla Multiplicar").Resultado). } //modulo menu de tipo procedimiento static void Menu() { Console.‐Escribir un programa modular determine el mayor de tres números.Parse(Console.Parse(Console.Write("Cual es su Número: ").Parse(Console. static void Main(string[] args) { int numero1. i * Numero).‐Escribir un programa modular determine el mayor de dos números. Numero2. Console. if (N1 > N2) Mayor = N1. Console.ReadLine()). Numero. else Mayor = N2. } 3. numero3 = int.Write("El Mayor es : {0}". numero3. Numero2 = int. } 4. Console. mayorr.Parse(Console. Resultado = CalcularMayor(Numero1.Clear(). Console. numero1 = int.ReadLine()). Console.WriteLine("2. Numero = int. } static int CalcularMayor(int N1.Write("Ingresa Numero 1:"). mayorr = determinarmayor(numero1.Resultado. } Console.ReadLine().ReadLine()). Console. mayorr).Parse(Console. for (int i = 1.ReadLine()). Console. Console.

. numero2 = tempora. numero1 = int. Console.SetCursorPosition(5. if (numero1 > numero2) mayor = numero1. Anio = int.numero1. numero3.Write("Ingresa Año:"). Console. NroDiasMes = 0. else mayor = numero2.ReadLine()). int DiaInicio.Read().Parse(Console. Mes = int.ReadLine()). ref DiaInicio. static void Main(string[] args) { int numero1. Anio.Parse(Console.ReadLine(). ordenartresnumeros(ref numero1. Console. Console. Console. ref int numero2) { int tempora. ref NroDiasMes).numero2. Anio.WriteLine("MES :" + Mes + " AÑO: " + Anio). numero2. ordenartresnumeros(ref numero2.Red.numero3). 0). } 5.{1}.Parse(Console. ref numero2). numero3 = int.‐Escribir un programa modular que ordene ters números en forma ascendente.Parse(Console. DiaInicio. Console.ForegroundColor = ConsoleColor. int Anio.Lenguaje de Programación 176 Carlos Rodríguez Torvisco – Algorítmica } static int determinarmayor(int numero1. Console. ordenartresnumeros(ref numero1. Console. return mayor.ReadLine()).{2}".ReadLine()). Console. Anio. } static void ordenartresnumeros(ref int numero1. int DiaInicio = 0. numero1 = numero2. EscribirCalendario(Mes.ref numero3). int numero2) { int mayor. numero2 = int.Write("Ingresa Mes:"). ref numero3). if (numero1 > numero2) { tempora = numero1.Write("Ingresa Numero 2:"). int NroDiasMes) { int i. NroDiasMes).Clear().Parse(Console. static void Main(string[] args) { int Mes.Write("Ingresa Numero 3:"). DeterminarInicicioNroDias(Mes. Console.Write("Ingresa Numero 1:"). pos. } static void EscribirCalendario(int Mes. } } 6.WriteLine("{0}.‐Escribir un programa modualar que muestre el calendario. Console. Console.ReadLine()).

} else { a = Mes .Write("JU").Gray. //El Valor de dia estar entre 0 y 6 //0 significa Domingo. pos = 0.1) / 100. Console. Console. Console.Write("VI"). 0). Console. Console.1) % 100.SetCursorPosition(5 * (pos + 1). Console.SetCursorPosition(5 * (pos + 1). 0). Console.1 Lunes . 0). } pos = pos + 1. pos = DiaInicio. etc if (Mes <= 2) { a = Mes + 10. int Anio. 0). i <= NroDiasMes.ForegroundColor = ConsoleColor. if (pos == 7) { Console.WriteLine(). 0). for (i = 1. Utilizando la Congruencia de Zeller.SetCursorPosition(10.2 * c) % 7. Console.Write(i).SetCursorPosition(35. Console. ref int NroDiasMes) { int a.Write("SA").SetCursorPosition(20. } else { Console.SetCursorPosition(30. //Determianr el día de inicio del mes. j).Write("DO"). ref int DiaInicio. Console. Console.SetCursorPosition(25. b = (Anio . b.2) / 10 + 1 + b + b / 4 + c / 4 . int j = 1. c = Anio / 100. j).2.SetCursorPosition(15. i++) { if (i == 1) { Console. Console. b = Anio % 100. Console.Write("MI"). c = (Anio . Console. } DiaInicio = (700 + (26 * a . j++. 0).Write("LU"). } } } static void DeterminarInicicioNroDias(int Mes.Write("MA"). c.Write(i). Console.Lenguaje de Programación 177 Carlos Rodríguez Torvisco – Algorítmica Console. //Determinar el numero de días del mes intresado switch (Mes) { case 1: .

‐hacer un programa modular para convertir de base 10 a: base 2 . cadena8 = CambioBase(numero. break.Parse(Console.Lenguaje de Programación 178 Carlos Rodríguez Torvisco – Algorítmica } } case 3: case 5: case 7: case 8: case 10: case 12: NroDiasMes = 31. for (int i = cadena.Equals(invertida)) Console.Substring(i. numero.WriteLine("\n El número {0} en Base 8 es: {1}". break.ReadLine().WriteLine("La palabra NO es Capicúa"). cadena). Una palabra es capicua cuando se lee de izquierda a derecha y derecha a izquierda la pronunciacion es igual ejemplo : lol .WriteLine("Digite la palabra"). Console. Console. cadena16). break. 8). 1). string invertida = invertir(palabra). cadena16. numero. if (palabra. string palabra = Console. cadena8. } static String CambioBase(int numero.Length . 2). cadena = CambioBase(numero.WriteLine("\n El número {0} en Base 16 es: {1}".WriteLine("La palabra es Capicúa"). } 8. base 8 . cadena16 = CambioBase(numero. cadena8).Read(). static void Main(string[] args) { Console. case 2: if (Anio % 4 == 0) { NroDiasMes = 29.Read(). Console. string cadena.ReadLine()). int Base) { . } else NroDiasMes = 28. else Console. Console. 16).Write("Ingresa Numero:"). i--) invertido = invertido + cadena. return invertido. case 4: case 6: case 9: case 11: NroDiasMes = 30. Console.‐hacer un programa para saber si una palabra es capicua o no . numero.WriteLine("\n El número {0} en Base 2 es: {1}". base 16 static void Main(string[] args) { int numero. numero = int. Console. i >= 0. } static string invertir(string cadena) { string invertido = "". 7.1.

i >= 0. if (digito >= 10) { switch (digito) { case 10: Cadena = Cadena + Convert. while (numero2 > 0) { digito = numero2 % Base. else if (cantidad == 2) f3 = 2. if (cantidad == 1) f3 = 1. case 14: Cadena = Cadena + Convert.Lenguaje de Programación 179 Carlos Rodríguez Torvisco – Algorítmica } int numero2.WriteLine("La Suma de los {0} primeros numeros es :{1}".ToString("A").ReadLine()). y).1.Parse(Console. string Ncadena = string. i--) { Ncadena += Cadena[i].ToString(numero2 % Base).ToString("B"). } } else { Cadena = Cadena + Convert.ToString("D"). for (int i = Cadena. break.ToString("F"). } numero2 = numero2 / Base. y.ToString("C"). Console. break. Console. string Cadena = string. break. case 13: Cadena = Cadena + Convert. case 12: Cadena = Cadena + Convert.ToCharArray().ReadKey(). else { f1 = 1. Console. } static int Suma(int cantidad) { int f1. break. int digito. } Cadena. n = int.WriteLine("Ingresa n:").Length . case 11: Cadena = Cadena + Convert. 9.ToString("E").Empty. static void Main(string[] args) { int n.Empty. break. } return Ncadena. numero2 = numero.‐hacer un programa modular para Calcular la suma de la serie fibonacci s=1+1+2+3+5+8+. y = Suma(n).. break. f2. case 15: Cadena = Cadena + Convert. n. i. . f3 = 0.

Parse(Console.Parse(Console.5. f2. = 0.4.‐Hacer un Programa Modular para saber si 2 numeros son primos gemelos. p = int. static void Main(string[] args) { int p. Console.Read().. = 0. 1 en caso contrario int i. Console. public public public public static { static int Numero1 static int Numero2 static int Numero3 static int Numero4 void Main(string[] = 0. 10.6. = 0.//almacena 0 si el numero es primo.empezando por 1. for (i = 2.Write("no son primos gemelos").Write("si son primos gemelos").‐Hacer un Programa Modular para Ordenar 4 Números. } else Console. Console.WriteLine("Ingrese Numero 2:").Write("no son primos gemelos").Lenguaje de Programación f2 = 2. } } return primo. i++) { if (n % i == 0) { primo = 1. if (q .. q. args) .2. //tomamos la variable "p" y haremos que tome los valores //sucesivos:1. i < n. while (i { f3 = f1 = f2 = i++.p == 2 || p .WriteLine("Ingrese Numero 1:"). i = 2.ReadLine()).q == 2) { if (es_primo(p) != 1 && es_primo(q) != 1) { Console. } 180 Carlos Rodríguez Torvisco – Algorítmica < cantidad) f1 + f2.ReadLine()).. f3. } static int es_primo(int n) { int primo. q = int. } } return f3.3.//retornamos o devolvemos el resultado } 11. } else Console.//almacena los numeros de 2 a "n" primo = 0.

Ordenar2Numeros(ref Numero1. N1 = Temp.Lenguaje de Programación do { 181 Carlos Rodríguez Torvisco – Algorítmica Console. } cambioo = ni. Numero4). Console. Numero3. Numero2.Parse(Console. ref Numero4). Ordenar2Numeros(ref Numero2.N). ni. Ordenar2Numeros(ref Numero1. num = cambio(n). Console. } static int cambio(int numero) { int d. N2 = N1. int num. Numero2 = int.ReadKey().Write("\nDESEAS CONTINUAR (s/n):"). while (numero != 0) { d = numero % 10. Numero1 = int. {3}".ReadLine()).Environment. {2} . Console.Key != ConsoleKey.Exit(0). ref int N2) { int Temp.‐hacer un programa modular para invertir un numero. Numero4 = int. Console.Parse(Console.Write("Ingrese Numero1: ").WriteLine("Los Numero Ordenados son: {0}.ReadLine()). } . } static void Ordenar2Numeros(ref int N1. Console. num).Parse(Console.Parse(Console.ReadLine()).ReadLine()). ref Numero2).Write("Ingrese Numero4: ").WriteLine("El Numero Invertido es : {0}".ReadLine()).Parse(Console. ref Numero4). Numero3 = int.Write("Ingrese Numero3: "). Ordenar2Numeros(ref Numero2. n = int. Console.WriteLine("Ingrese Número:"). } while (Console. 12.ReadKey(). if (N1 > N2) { Temp = N2. numero = numero / 10. ref Numero3). ref Numero3). Console.Write("Ingrese Numero2: "). Console. } } Ordenar2Numeros(ref Numero1.Clear(). Console. Console. ref Numero4). System. Ordenar2Numeros(ref Numero3. {1}. ni = 0.ReadKey(). Numero1. ni = ni * 10 + d. return cambioo. cambioo. static void Main(string[] args) { int n.

ReadKey(). operacion = Console. //tomamos la variable "p" y haremos que tome los valores //sucesivos:1. //el primer numero float segundo. q. } 14.SetCursorPosition(60.SetCursorPosition(60.WriteLine("--------").SetCursorPosition(59. Console.Clear(). Console. operacion)).Lenguaje de Programación 182 Carlos Rodríguez Torvisco – Algorítmica 13.SetCursorPosition(3. Console. 3). 3).‐hacer un programa modular para hacer una mini‐calculadora.. //operacion a realizar Console.BackgroundColor = ConsoleColor. 6). static void Main(string[] args) { int n. segundo. primero = float.WriteLine("Introduzca el segundo número:"). 4). Console.5. 5). Console.ReadLine()). return temp. Console.SetCursorPosition(57. Console.Blue.Title = "Mini-Calculadora".3. case "*": temp = primero * segundo. case "-": temp = primero .WriteLine("El resultado es :"). //pedimos el segunos número Console.empezando por 1.ToString(). case "/": temp = primero / segundo.2. static void Main(string[] args) { float primero. Console.6.. Console. Console.ToString().ToString().‐hacer un programa modular que nos muestre los primeros n numeros primos gemelos.White. Console. //el segundo numero string operacion.WriteLine(calcular(primero. Console. 2).. } static string calcular(float primero.SetCursorPosition(3. encontrados.segundo.4. Console. return temp.WriteLine("Introduzca el primer número:").SetCursorPosition(3. return temp.ReadLine(). Console.//damos formato Console. int p.WriteLine("Introduzca operación a realizar:"). string operacion) { float temp. Console. float segundo. 6).Parse(Console. } return "-1".ForegroundColor = ConsoleColor. switch (operacion) { case "+": temp = primero + segundo. segundo = float. . Console.ReadLine()). 2).SetCursorPosition(3. Console. 4).Parse(Console.ToString().SetCursorPosition(60. return temp.

i < n.Parse(Console. q). resto = resto1.Parse(Console. resto1 = CalcularMaximo(resto.ReadLine()). for (i = 2. } p++.Parse(Console.ReadLine()). static void Main(string[] args) { //declarmaos nuestras variables int N.Empty.Write("Ingresa Numero 2:"). resto = CalcularMaximo(n1. Console.ReadLine()).Clear(). n2. n1 = int.Lenguaje de Programación 183 Carlos Rodríguez Torvisco – Algorítmica } static int es_primo(int n) { int primo.Parse(Console.Write("Ingresa Numero {0}:". choclo. c = 2.‐hacer un programa modular para calcular el maximo comun divisor de N numeros.ReadLine()).//almacena los numeros de 2 a "n" primo = 0. n. } . N = int. c). } } return primo. encontrados = 0. } while (N < 2). if (es_primo(p) != 1 && es_primo(q) != 1) { Console.//retornamos o devolvemos el resultado p = 1.ReadLine()). resto1 = 0. n2 = int. Console.WriteLine("({0}.Write("Ingrese Cantidad de Datos:").Read().Write("Ingresa Numero 1:").//almacena 0 si el numero es primo.Parse(Console. Console. n = int. Console.{1})". 1 en caso contrario int i. while (encontrados < n) { q = p + 2. if (N >= 3) { while (c != N) { c++. } Console. string Cadena = string. Console. } 15. i++) { if (n % i == 0) { primo = 1. p. do { Console. encontrados++. n). n2). n = int.WriteLine("Ingrese N:"). n1. resto.

if (a > 0 && m >= 1 && m <= 12) { if (d >= 1 && d <= diasdemes(m. case 2: if (bisiesto(a) == 1) Nrodias = 29.‐Hacer un Programa Modualr para calcular el Ordinal de una Fecha. a)) . int a) { int pepe = 0. switch (mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: Nrodias = 31. int m. b = resto.Read(). static int bisiesto(int año) { if ((año % 4 == 0) && (año % 100 != 0) || (año % 400 == 0)) return 1. return mcd. } static int CalcularMaximo(int a. break. case 4: case 6: case 9: case 11: Nrodias = 30. Console. } 16. resto = a % b. } mcd = b. } else Console. break. else Nrodias = 28. } return Nrodias. resto = a % b. else return 0.Lenguaje de Programación 184 Carlos Rodríguez Torvisco – Algorítmica Console.WriteLine("El Maximo Común Divisor es :" + resto).WriteLine("El Maximo Común Divisor es :" + resto1). } static int fechacorrecta(int d. break. int b) { int resto. int a) { int Nrodias = 0. } static int diasdemes(int mes. while (resto != 0) { a = b. mcd.

Write("vigésimo "). break. } switch (d) { case 9: Console. case 4: Console. anio. a).Write("noveno"). int cm. } return pepe. break. } static void Mostras_ordinal(int n) { int u. c = n / 10.Write("trigésimo "). break. break. u = n % 10. 185 Carlos Rodríguez Torvisco – Algorítmica } static int diadanio(int d. cm <= m . break. break.Write("septuagésimo "). break.Write("terer "). break. case 3: Console. break.Write("sexagésimo "). case 7: Console. n = n / 10. break. switch (c) { case 3: Console.Write("septimo"). break. break. case 2: Console.Lenguaje de Programación pepe = 1. case 7: Console. } switch (u) { case 9: Console. else pepe = 2. case 2: Console. return dias.Write("décimo "). case 5: Console.Write("sexto "). case 6: Console. break. int m. case 1: Console. d = n % 10. break. int a) { int dias.Write("bicentésimo "). for (cm = 1. case 4: Console. case 8: Console. break. case 1: Console. case 3: Console.Write("primer "). } static void Main(string[] args) { //calculo del dia del año que hace una determinada fecha int dia. } Console. dias = 0.Write("tricentésimo ").Write("octavo ").Write("cuadragésimo "). mes. case 1: Console.Write("segundo "). .Write("quicuagésimo "). case 2: Console. break. case 5: Console. break. dias += d. break. break.Write("quinto ").1.Write("nonagésimo "). case 6: Console. d. cm++) dias += diasdemes(cm. c. break.WriteLine("día del año \n\n"). case 8: Console.Write("octagésimo ").Write("centésimo ").Write("cuarto "). break.

11. asi: Vectores.WriteLine("Fecha Incorrecta\n\n").procesos estadisticos. EJERCICIOS RESUELTOS 1.ReadLine()).Parse(Console.tablas.WriteLine("Ingresa mes:").14 . Los arreglos pueden ser organizados con un solo subindice en forma de vector(unidimensionales). dia = int.Read(). mes. else Console.“3”}.‐Es identificado con un nombre unico. //De 3 elementos telefonos[0] = “1245”. mes = int. anio)).etc. Entrada de datos N=5 Notas=17. Console. anio) == 1) Mostras_ordinal(diadanio(dia. //Definicion de un Arreglo de strings telefonos = new string[3]. 1. if (fechacorrecta(dia. Console.ReadLine()).“2”. que representa a todos los elementos. matrices. Esto implica que los arreglos son estrucutras de datos que utilizan una celda para cada valor y que todos los valores están en memoria a la vez. etc.ReadLine()). mes. C# utiliza corchetes [ ] para definición de arrays string[] telefonos.Parse(Console. con dos subindices en forma de matriz(bidimensionales).WriteLine("Ingresa año:"). polinomios. 2.16. Console.12.Parse(Console.‐Es una colección finita de n elementos homogéneos almacenados en posiciones contiguas de memoria. Escribir un programa que calcule el promedio y determine cuántas notas son mayores al promedio. //Seteo del 1er elemento del arreglo //Definicion y asignacion de una vez telefonos = new string[] {“1”.‐se tiene la relación de N notas. anio = int. con tres subindices(tridimensionales).Lenguaje de Programación 186 Carlos Rodríguez Torvisco – Algorítmica } Console. INTRODUCCION A ARREGLOS Un arreglo es una estructura de dato que tiene la siguiente características.Muchas aplicaciones requieres de este tipo de organizaciones de datos.WriteLine("Ingresa dia:"). y asu vez cada elemento se identifica mediante el nombre la estructura y su subindice.

WriteLine("El Promedio es :{0}". siendo sus componentes de tipo numerico entero. i++) { Console.Mostrando el resultado obtendio en pantalla. i <= N.//en este caso le damos un tamaño de 50 int N. c)Calcule el tamaño (en bytes) que dicho array ocupa en memoria. i++) numeros[i] = 0.Write("Ingrese Nota {0}:".Parse(Console. numeros = new int[5]. notas[i] = int. Console. i <= N. //ahora calculamos cuantas notas son mayores al promedio //y hacemos uso de otro bucle for (int i = 1.ReadLine().WriteLine("Las Notas Mayores que el Promedio son:{0}".‐Hacer un programa que: a) Cree un array unidimensional de nombre “vector” y cinco elementos.ReadLine()).//el tamaño del vector es de 5 //a los primeros 5 numeros le damos el valor de 0 for (i = 0. } //al final mostramos el promedio y la cantidad //de notas que son mayores Console. 2. static void Main(string[] args) { //declaramos nuestro arreglo y le damos un tamaño int i.Parse(Console. } //calculamos el promedio proemdio = suma / N. b)Asigne a cada elemento o componente del array el valor cero. //ingresamos cantidad de notas Console.ReadLine()).suma=0.NroNotasMayores). //mostramso los numeros con su dicho valor .proemdio). suma += notas[i]. notas = new int[50]. //usamos un bucle para ingresar es cantidad de notas for (int i = 1. N = int. i < 5.Write("Ingresa N:").proemdio. int[] numeros.i). } Console. i++) { if (notas[i] > proemdio) NroNotasMayores++.Lenguaje de Programación Salida de Datos Promedio=14 Nro Nota Mayores=2 187 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { //declaramos nuestro arreglo y le damos un tamaño int[] notas.NroNotasMayores=0.

int pos. b) Cargue el array con los 20 primeros numeros pares.Write("\n-el tamaño del array es de {0} bytes.‐crear un array de 20 numeros enteros y que contabilize el numero de valores positivos.Write("Ingrese los datos para el arreglo : ").i++) { pares[i] = p+=2.negativos y ceros almacenados en el proceso de carga y finalmente mostrarlo por pantalla.pares[i]). sizeof(int)*5).ReadLine()). Console. int i. p=0. //mostramos el espacio que una en byes Console.Write("{0}". } 2. } 3.Write(" {0}". c)muestre el contenido del array por pantalla. 2 negativos y 8 ceros static void Main(string[] args) { int[] numeros. } //mostramos los numeros pares almacenados en nuestro array for (i = 0. cero. Console. i++) Console.Parse(Console. 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 números positivos.i<20. numeros = new int[20]. i < 20.Read(). numeros[i]).//tamaño del vector es de 20 int i.Lenguaje de Programación 188 Carlos Rodríguez Torvisco – Algorítmica for (i = 0. pares = new int[20]. i++) Console. //calculamos los 20 primeros pars for(i=0. i < 20. neg.‐Hacer un programa que: a)cree un array unidimensional de 20 elementos de tipo númerico entero y nombre “pares”.\n". 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 tamaño int[] pares. numeros[i] = int. . //ingresamos los 20 numeros para llenar el arreglo for (i = 0.Read(). i < 5. i++) { Console.

i < 4. } 4.Read().ReadKey(). suma = 0. num = int. //calculamos cuantos son neutros. Console. for (i = 0. cero). Console.Write("-El resultado de sumar los {0} primeros numeros es : {1}\n". Console. } . static void Main(string[] args) { int[] vector.‐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. i < 20. Console. {1} negativos y {2} ceros". Console. for (i = 0.Write("-Los elementos del vector.ReadLine()).Lenguaje de Programación 189 Carlos Rodríguez Torvisco – Algorítmica } //inicializamos los contadores pos = 0. } Console. vector = new int[15]. i < num.Write("\nHay {0} nùmeros positivos. } //finalmente mostrar todos los resultados por pantalla Console.\n"). neg = 0.Write("¿Cuántos valores quieres sumar?\n"). neg. cero = 0.Parse(Console. así como el contenido del array en pantalla. i++) { Console. else if (numeros[i] > 0) pos++. i < 4. vector[i]). son :"). i++) { if (numeros[i] < 0) neg++. num. num. else cero++. pos.ReadLine()). suma).Parse(Console. int i. i++) suma += vector[i]. for (i = 0.Write("{0}".positivos y negativos for (i = 0.Write("-Introduce los valors que cargan la tabla. i++) vector[i] = int.

Write("-Los elementos mayores que 30 son: \n").En caso de no existir ninguno.Write("Array[{0}]={1}\n".‐Cree un array de nombre “notas” para almacenar las calificaciones correspondientes a diez asignaturas y almacenarlas en el array “notas” de forma consecutiva. for (i = 0. Console.Write("No hay números mayores que 30\n"). i < 20. array[i]).ReadLine()). int i.Calcule e imprima su nota media. array = new int[20].Read(). } Console. i < 15. for (i = 0.se mostrara el siguiente mensaje:”no hay números mayores que 30”. int sw = 0.Write("-Introduce los valors que cargan la tabla. i++) { array[i] = int.Parse(Console.‐ Cree un array unidimensional de 20 valores de tipo númerico y mostar por pantalla todos aquellos elementos mayores de 30 junto con la posición que ocupan en la tabla. i. Console.\n"). i++) { if (array[i] > 30) { sw = 1. } 5. Console.Lenguaje de Programación 190 Carlos Rodríguez Torvisco – Algorítmica 5. . } } if (sw == 0) Console. static void Main(string[] args) { int[] array.

double suma. i + 1). for (i = 0. media). notas = new double[10].Parse(Console.Write(". i < 10. } suma = 0. i++) { Console.‐Lea un secuencia de 15 números enteros.Write(".Escribir un programa que los visualice en el dispositivo estándar de salida en orden inverso al de entrada. i < 10.Nota media de las 10 asignaturas : {0:F2}".ReadKey(). Console. Console. almacenándolos en un array de nombre “numeros”. notas[i] = double. for (i = 0.Lenguaje de Programación 191 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { double[] notas. int i. } media = suma / 10.Nota de la asignatura {0} : ". i++) { suma = suma + notas[i]. media. .ReadLine()). } 6.

} . int i. for (k = 1. k < 10. k++) { if (maximo < numero[k]) { maximo = numero[k]. numero[k] = int. k).WriteLine("Forma Invertida del ingreso"). int maximo.Valor de la componente [{0}] : ".Lenguaje de Programación 192 Carlos Rodríguez Torvisco – Algorítmica static void Main(string[] args) { int[] numeros. } maximo = numero[0].Write("Ingresa Numero:").numeros[i]).ReadLine()). //ingresamos los numeros for(i=0. } Console.i<15.ReadLine(). } //mostrar los números en forma invertida Console. numeros = new int[15]. numeros[i] = int. i >= 0.i++) { Console. calcule cuál es el valor maximo. i--) { Console. p = k. } 7. for (i = 14. for (k = 0. int k. p.Parse(Console. k < 10.Write(". En caso de aparecer repetido el valor máximo se mostrará el que se ocupa la posición situada más a la izquierda.Parse(Console. k++) { Console.‐Leer una secuencia de 20 valores numericos enteros y los almacene en un array de nombre “numero”. numero = new int[20]. p = 0. static void Main(string[] args) { int[] numero.ReadLine()). asi como la posición que ocupa en la tabla y finalmente muestre el valor maximo encontrado junto con la posicion que ocupa en el array.WriteLine("{0}".

maximo.Write(" \n el valor maximo es el numero {0} encontrado en la posicion {1}\n". Console.ReadKey().Lenguaje de Programación 193 Carlos Rodríguez Torvisco – Algorítmica } Console. p). } .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->