Ejercicios de Algirtmia
Ejercicios de Algirtmia
Ejercicios de Algirtmia
curso de Algoritmia
INSTIT Curso: Algoritmia UTO Alumno: Marco DE Antonio SISTE Farfn MAS EJERCICIOS DE ALGORITMIA CUSC
Huallpa Cusco-Per 2013
EJERCICIOS DE ALGORITMIA
1. Escribir un algoritmo que calcule el espacio que recorre una liebre a una velocidad V y I.
un tiempo T. Anlisis
Pgina 2
curso de Algoritmia
t 3 5 7
v 4 4 5
e 12 20 35
2. Modelo
e v.t
3. Diccionario de variables
Datos
v: velocidad empleada por la liebre: Entero t: tiempo empleado por la liebre: Entero
Precondicin
{|v>0 , t>0 |}
Accin
Postcondicin
{|e>0 |}
II.
Diseo
1. Seudocdigo //Datos
Leer(v) Leer(t)
//Procesos
e=v.t
Marco Antonio Farfn Huallpa Pgina 3
curso de Algoritmia
Escribir(e)
2. Codificacin en consola
namespace appEjercicio01 { class Program { static void Main(string[] args) { //Color de Fondo y Texto Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Red; Console.Clear(); //declarar variables int v, t; double e; //leer datos Console.WriteLine("Ingrese la Velocidad: "); v = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese el tiempo: "); t = int.Parse(Console.ReadLine()); //procesos e = v * t; //resultado Console.WriteLine("El Espacio es ; "); Console.WriteLine(e); Console.ReadKey(); } } }
Pgina 4
curso de Algoritmia
Pgina 5
curso de Algoritmia
2. Una liebre y una tortuga parten del mismo punto en el mismo instante y en la misma direccin, se sabe
que la liebre corre a X metros/ segundo y la tortuga a Y metros/segundo. Escribir un algoritmo que determine el espacio de separacin entre la liebre y la tortuga al cabo de t segundos
I.
Anlisis
1.
2.
Modelo
Espacioliebretortuga (VL-VT)T
3.
curso de Algoritmia
Datos
Variables
Espacioliebretortuga (VL-VT)T
Precondicin
Accin
Postcondicin
{| Espacioliebretortuga <0 |}
II.
Diseo
1. Seudocdigo
//Datos
//Procesos
Espacioliebretortuga (VL-VT)T
//Resultado
Escribir (Espacioliebretortuga)
2. Codificacin en consola
Pgina 7
curso de Algoritmia
namespace appEjercico02 { class Program { static void Main(string[] args) { //declarar variables int Vl, Vt, T; int espacioliebretortuga; //leer datos Console.WriteLine("Ingrese la velocidad de la Liebre"); Vl = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese la velocidad de la Tortuga"); Vt = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese el Tiempo"); T = int.Parse(Console.ReadLine()); //Procesos espacioliebretortuga = T*(Vl - Vt); //Resultado Console.WriteLine("El espacio entre la liebre y la tortuga es:"); Console.WriteLine(espacioliebretortuga); Console.ReadKey(); } } }
Pgina 8
curso de Algoritmia
namespace appEjercicio2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int Vl, Vt, T; int espacioliebretortuga; //leer datos Vl = int.Parse(txtvl.Text); Vt = int.Parse(txtvt.Text); T = int.Parse(txtt.Text); //Procesos espacioliebretortuga = T * (Vl - Vt); //Resultado
txtespacioliebretortuga.Text = (espacioliebretortuga.ToString()); }
Pgina 9
curso de Algoritmia
private void btnnuevo_Click(object sender, EventArgs e) { txtvl.Clear(); txtvt.Clear(); txtt.Clear(); txtespacioliebretortuga.Clear(); txtvl.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close();
} }
Anlisis
1.
2.
Modelo
ResultadoN(N+1)/2
3.
Diccionario de variables
Resultado
Datos
N: Numero: Entero
Precondicin
{|N>0 |}
Accin
curso de Algoritmia
Postcondicin
{|Resultado>0 |}
III.
Diseo
1. Seudocdigo //Datos
Leer(N)
//Procesos
ResultadoN(N+1)/2
//Resultado
Escribir (Resultado)
2. Codificacin en consola
namespace appEjercicio03 { class Program { static void Main(string[] args) { //declarar variables int N; int Resultado; //leer datos Console.WriteLine("Ingrese cualquien numero Entero:"); N = int.Parse(Console.ReadLine()); //procesos Resultado = (N*(N + 1) / 2); //ResultadoWW Console.WriteLine("La suma de los n-numeros es:"); Console.WriteLine(Resultado); Console.ReadKey(); }
curso de Algoritmia
System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace appEjercicio3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int N; int Resultado; //leer datos N = int.Parse(txtn.Text); //procesos Resultado = (N * (N + 1) / 2); //ResultadoWW txtresultado.Text = (Resultado.ToString()); } private void btnnuevo_Click(object sender, EventArgs e)
curso de Algoritmia
} }
4. Se compra N artculos a un precio unitario X. Escribir un algoritmo que permita calcular el impuesto a
pagar(18% sobre el precio de venta) as como el importe total por la venta de los N artculos.
Precio Unitario 5 15 10
Cantidad 12 80 10
2 Modelo
Resultado
Importe Total: importe a pagar por la compra : Real Impuesto: IGV: Real
Datos
Precio Unitario: Precio Unitario del Producto: Entero Cantidad: Cantidad de Artculos: Entero
Variables
Precondicin
curso de Algoritmia
Accin PrecioUnitario
Postcondicin
//Datos
//Procesos
//Resultado
curso de Algoritmia
curso de Algoritmia
namespace appEjercicio4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int preciounitario, Camtidad; double Total, ImporteTotal, Igv; //leer datos preciounitario = int.Parse(txtpreciounitario.Text); Camtidad = int.Parse(txtcantidad.Text); //procesos Total = preciounitario * Camtidad; ImporteTotal = Total / 1.18; Igv = Total - ImporteTotal; //escribir resultado txttotal.Text=(Total.ToString()); txtimportetotal.Text = (ImporteTotal.ToString()); txtimpuesto.Text = (Igv.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txtpreciounitario.Clear(); txtcantidad.Clear(); txttotal.Clear(); txtimportetotal.Clear(); txtimpuesto.Clear(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
cbico de agua consumida. Adicionalmente se cobra por gastos de emisin de facturas y reparto de recibos S/ 2.70 por usuario y un 18% por IGV al costo del servicio. Escribir un algoritmo que calcule el monto que debe pagar un usuario. I. Anlisis
1. Entender el problema
Tarifa 10 15
2. Modelo
INSTITUTO DE SISTEMAS CUSCO Subtotal (0.8 * Consumo) + 2.7; Igv Subtotal * 0.18; Total Subtotal + Igv; 3. Diccionario de variables
curso de Algoritmia
Resultado
Datos
Variables
Subtotal (0.8 * Consumo) + 2.7; Igv Subtotal * 0.18; Total Subtotal + Igv;
Precondicin
{| Tarifa >0|}
Accin
Postcondicin
{| Total >0|}
II. 1.
Diseo Seudocdigo
//Datos
Leer (Tarifa)
//Procesos
Subtotal (0.8 * Consumo) + 2.7; Igv Subtotal * 0.18; Total Subtotal + Igv;
//Resultado
Escribir (Total)
2.
Codificacin en consola
curso de Algoritmia
namespace appEjercicio05 { class Program { static void Main(string[] args) { //ingresar variables int Consumo; double Subtotal, Igv, Total; //leer datos Console.WriteLine("Ingresar Consumo en m3"); Consumo = int.Parse(Console.ReadLine()); //procesos Subtotal = (0.8 * Consumo) + 2.7; Igv = Subtotal * 0.18; Total = Subtotal + Igv; //escribir resultado Console.WriteLine("El MOnto Total a Pagar es "); Console.WriteLine(Total); Console.ReadKey(); } } }
3.
4.
curso de Algoritmia
namespace appEjercicio5 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnProcesar_Click(object sender, EventArgs e) { //ingresar variables int Consumo; double Subtotal, Igv, Total; //leer datos Consumo = int.Parse(txtconsuno.Text); //procesos Subtotal = (0.8 * Consumo) + 2.7; Igv = Subtotal * 0.18; Total = Subtotal + Igv; //escribir resultado txtsubtotal.Text = (Subtotal.ToString()); txtigv.Text = (Igv.ToString()); txttotal.Text = (Total.ToString()); } private void Btnnuevo_Click(object sender, EventArgs e) { txtconsuno.Clear(); txtsubtotal.Clear(); txtigv.Clear(); txttotal.Clear(); txtconsuno.Focus(); } private void btnSalir_Click(object sender, EventArgs e) { Close(); } } }
dgitos. I. Anlisis
1.
curso de Algoritmia 5 1
3.
Diccionario de variables
Resultado
Datos
Nmero: Nmero de dos dgitos: Entero Precondicin {| 9 < Nmero < 99 |} Accin
Postcondicin
Diseo Seudocdigo
//Datos
Leer (Datos)
//Procesos Unidades Numero Mod 10 Decenas Numero Div 10 //Resultado
Codificacin en consola
curso de Algoritmia
namespace appEjercicio06 { class Program { static void Main(string[] args) { //Declarar variables int Numero, Unidades, Decenas; //leer datos Console.WriteLine("Escribir Numero de 2 Cifras"); Numero = int.Parse(Console.ReadLine()); //procesos Unidades = Numero % 10; Decenas = (Numero / 10) % 10; //escribir resultado Console.WriteLine("La Unidades es "); Console.WriteLine(Unidades); Console.WriteLine("La Decena es "); Console.WriteLine(Decenas); Console.ReadKey(); } } }
3.
curso de Algoritmia
4.
namespace appEjercicio6 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void tnprocesar_Click(object sender, EventArgs e) { //Declarar variables int Numero, Unidades, Decenas; //leer datos Numero = int.Parse(txtnumero.Text); //procesos Unidades = Numero % 10; Decenas = (Numero / 10) % 10; //escribir resultado txtunidades.Text = (Unidades.ToString()); txtdecenas.Text = (Decenas.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txtnumero.Clear(); txtunidades.Clear(); txtdecenas.Clear(); txtnumero.Focus(); } private void btnsalir_Click(object sender, EventArgs e)
curso de Algoritmia
Close();
2.
Modelo Unidades (Nmero Mod 100) Mod 10 Decenas (Nmero Mod 100) Div10 Centenas Numero Div 100
3.
Diccionario de variables
Resultado
Unidades: Nmero de Unidades: Entero Decenas: Nmero de Decenas: Entero Centenas: Nmero de Centenas: Entero Datos Nmero: Nmero de 3 Dgitos: Entero Precondicin
Accin
Postcondicin {| 0 < Unidades < 9, 0 < Decenas < 9 , , 1 < Centenas < 9 |}
curso de Algoritmia
Seudocdigo
//Datos
Leer (Nmero)
//Procesos
Unidades Nmero Mod 100) Mod 10 Decenas (Nmero Mod 100) Div10 Centenas Div 100
//Resultado
Codificacin en consola
namespace appEjercicio07 { class Program { static void Main(string[] args) { //Declarar variables int Numero, Unidades, Decenas, Centenas; //leer datos Console.WriteLine("Escribir Numero de 3 Cifras"); Numero = int.Parse(Console.ReadLine()); //procesos Unidades = Numero % 10;
curso de Algoritmia
3.
4.
namespace appEjercicio7 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void tnprocesar_Click(object sender, EventArgs e) { //Declarar variables int Numero, Unidades, Decenas,Centenas; //leer datos
curso de Algoritmia
} private void btnnuevo_Click(object sender, EventArgs e) { txtnumero.Clear(); txtunidades.Clear(); txtdecenas.Clear(); txtcentenas.Clear(); txtnumero.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
Numero = int.Parse(txtnumero.Text); //procesos Unidades = Numero % 10; Decenas = (Numero / 10) % 10; Centenas = (Numero / 10) / 10; //escribir resultado txtunidades.Text = (Unidades.ToString()); txtdecenas.Text = (Decenas.ToString()); txtcentenas.Text = (Centenas.ToString());
Entender el problema Cantid ad 852 245 Bi20 Bi10 Bi5 0 0 0 4 1 0 0 1 0 Bi2 0 0 2 Bi1 0 0 0 Mo 5 0 1 Mo 2 1 0 Mo 1 0 0
2.
Modelo
B200 = Cantidad Div 200; Cantidad = Cantidad Mod 200; B100 = Cantidad Div 100; Cantidad = Cantidad Mod 100; B50 = Cantidad Div 50; Cantidad = Cantidad Mod 50; B20 = Cantidad Div 20; Cantidad = Cantidad Mod 20; B10 = Cantidad Div 10; Cantidad = Cantidad Mod 10; M5 = Cantidad Div 5; Cantidad = Cantidad Mod 5; M2 = Cantidad Div 2; Cantidad = Cantidad Mod 2; M1 = Cantidad Div 1; Cantidad = Cantidad Mod 1;
3.
Diccionario de variables
Resultado
curso de Algoritmia
Bi200: Cantidad de billetes de 200: Entero Bi100: Cantidad de billetes de 100: Entero Bi50: Cantidad de billetes de 500: Entero Bi20: Cantidad de billetes de 20: Entero Bi10: Cantidad de billetes de 10: Entero M5: Cantidad de monedas de 5: Entero M2: Cantidad de monedas de 2: Entero M1: Cantidad de monedas de 1: Entero
Datos
Variables B200 = Cantidad Div 200; Cantidad = Cantidad Mod 200; B100 = Cantidad Div 100; Cantidad = Cantidad Mod 100; B50 = Cantidad Div 50; Cantidad = Cantidad Mod 50; B20 = Cantidad Div 20; Cantidad = Cantidad Mod 20; B10 = Cantidad Div 10; Cantidad = Cantidad Mod 10; M5 = Cantidad Div 5; Cantidad = Cantidad Mod 5; M2 = Cantidad Div 2; Cantidad = Cantidad Mod 2; M1 = Cantidad Div 1; Cantidad = Cantidad Mod 1;
curso de Algoritmia
Precondicin
{| Cantidad|}
Accin
Diseo Seudocdigo
//Datos
Leer (Cantidad)
//Procesos
Bi200: Cantidad de billetes de 200: Entero Bi100: Cantidad de billetes de 100: Entero Bi50: Cantidad de billetes de 500: Entero Bi20: Cantidad de billetes de 20: Entero Bi10: Cantidad de billetes de 10: Entero M5: Cantidad de monedas de 5: Entero M2: Cantidad de monedas de 2: Entero M1: Cantidad de monedas de 1: Entero
//Resultado
Escribir (Bi200) Escribir (Bi100) Escribir (Bi50) Escribir (Bi20) Escribir (Bi10) Escribir (M5) Escribir (M2 Escribir (M1)
Marco Antonio Farfn Huallpa Pgina 28
curso de Algoritmia
2.
Codificacin en consola
namespace appEjercicio08 { class Program { static void Main(string[] args) { //Declarar Variables int Cantidad, B200, B100, B50, B20, B10, M5, M2, M1; //Leer Datos Console.WriteLine("Ingrese Cantidad a Cambiar"); Cantidad = int.Parse(Console.ReadLine()); //Procesos B200 = Cantidad / 200; Cantidad = Cantidad % 200; B100 = Cantidad / 100; Cantidad = Cantidad % 100; B50 = Cantidad / 50; Cantidad = Cantidad % 50; B20 = Cantidad / 20; Cantidad = Cantidad % 20; B10 = Cantidad / 10; Cantidad = Cantidad % 10; M5 = Cantidad / 5; Cantidad = Cantidad % 5; M2 = Cantidad / 2; Cantidad = Cantidad % 2; M1 = Cantidad / 1; Cantidad = Cantidad % 1; //Escribir Resultados Console.WriteLine("El Numero de Billetes de 200 es "); Console.WriteLine(B200); Console.WriteLine("El Numero de Billetes de 100 es ");
curso de Algoritmia
de Billetes de 50 es "); de Billetes de 20 es "); de Billetes de 10 es "); de Monedas de 5 es "); de Monedas de 2 es "); de Monedas de 1 es ");
3.
4.
curso de Algoritmia
public Form1() { InitializeComponent(); } private void btnProcesar_Click(object sender, EventArgs e) { //Declarar Variables int Cantidad, B200, B100, B50, B20, B10, M5, M2, M1; //Leer Datos Cantidad = int.Parse(txtcantidad.Text); //Procesos B200 = Cantidad / 200; Cantidad = Cantidad % 200; B100 = Cantidad / 100; Cantidad = Cantidad % 100; B50 = Cantidad / 50; Cantidad = Cantidad % 50; B20 = Cantidad / 20; Cantidad = Cantidad % 20; B10 = Cantidad / 10; Cantidad = Cantidad % 10; M5 = Cantidad / 5; Cantidad = Cantidad % 5; M2 = Cantidad / 2; Cantidad = Cantidad % 2; M1 = Cantidad / 1; Cantidad = Cantidad % 1; //Escribir Resultados txtbi200.Text=(B200.ToString()); txt100.Text = (B100.ToString()); txt50.Text = (B50.ToString()); txt20.Text = (B20.ToString()); txt10.Text = (B10.ToString()); txt5.Text = (M5.ToString()); txt2.Text = (M2.ToString()); txt1.Text = (M1.ToString()); } private void btnNuevo_Click(object sender, EventArgs e) { txtcantidad.Clear(); txtbi200.Clear(); txt100.Clear(); txt50.Clear(); txt20.Clear(); txt10.Clear(); txt5.Clear(); txt2.Clear(); txt1.Clear(); txtcantidad.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
9. Escribir un algoritmo que dada una hora en HH horas, MM minutos y SS segundos, escriba la hora
correspondiente al segundo siguiente.
I. Anlisis
1.
Entender el problema
INSTITUTO DE SISTEMAS CUSCO Hora Inicio 10:25:2 6 15:24:4 7 Hora Final 10:25: 27 15:24: 48
curso de Algoritmia
2.
Modelo ts (hh * 3600) + (mm * 60) + ss + 1 hf ts Div 3600 mf (ts Div 3600) Mod 60 sf (ts Mod 360) Mod 60
3.
Diccionario de variables
Resultado
Hf: Hora final: Entero Mf: Minuto final: Entero Sf: Segundo final: Entero
Datos
hh: Hora inicial: Entero mm: Minuto inicial: Entero ss: Segundo fin inicial al: Entero
Variables
Precondicin
Accin
Postcondicin
curso de Algoritmia
Diseo Seudocdigo
//Datos
ts (hh * 3600) + (mm * 60) + ss + 1 hf ts Div 3600 mf (ts Div 3600) Mod 60 sf (ts Mod 360) Mod 60
//Resultado
Codificacin en consola
namespace appEjercicio09
curso de Algoritmia
class Program { static void Main(string[] args) { //declarar variables int hh, mm, ss,ts,hf,mf,sf; //leer dats Console.WriteLine("La Hora inicial es:"); hh = int.Parse(Console.ReadLine()); Console.WriteLine("El Minuto inicial es:"); mm = int.Parse(Console.ReadLine()); Console.WriteLine("El Segundo inicial es:"); ss = int.Parse(Console.ReadLine()); //Procesos ts = (hh * 3600) + (mm * 60) + ss + 1; hf = ts / 3600; mf = (ts / 3600) % 60; sf = (ts % 360) % 60; //resuktado Console.WriteLine("La Hora final es:"); Console.WriteLine(hf); Console.WriteLine("El Minuto final es:"); Console.WriteLine(mf); Console.WriteLine("El Segundo final es:"); Console.WriteLine(sf); Console.ReadKey(); } }
3.
4.
namespace appEjercicio9 { public partial class Form1 : Form { public Form1() { InitializeComponent();
curso de Algoritmia
} }
} private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int hh, mm, ss, ts, hf, mf, sf; //leer dats hh = int.Parse(txthh.Text); mm = int.Parse(txtmm.Text); ss = int.Parse(txtss.Text); //Procesos ts = (hh * 3600) + (mm * 60) + ss + 1; hf = ts / 3600; mf = (ts / 3600) % 60; sf = (ts % 360) % 60; //resuktado txthf.Text = (hf.ToString()); txtmf.Text = (mf.ToString()); txtsf.Text = (sf.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txthh.Clear(); txthf.Clear(); txtmm.Clear(); txtmf.Clear(); txtss.Clear(); txtsf.Clear(); txthh.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); }
TAREA
10. Escribir un algoritmo que calcule el cuadrado de un nmero I. Anlisis 1.
2.
curso de Algoritmia
Diccionario de variables
Resultado
Datos
Precondicin
{|numero 0|}
Accin
Diseo Seudocdigo
//Datos
Leer (N)
//Procesos
Cuadrado N*N
//Resultado
Escribir (Cuadrado)
2.
Codificacin en consola
curso de Algoritmia
} } }
//declarar variables int N; int cuadrado; //leer datos Console.WriteLine("Ingrese cualquien numero:"); N = int.Parse(Console.ReadLine()); //proceso cuadrado = N * N; //resultado Console.WriteLine("el cuadrado del numero es:"); Console.WriteLine(cuadrado); Console.ReadKey();
3.
4.
namespace appEjercicio10 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables
curso de Algoritmia
} }
} private void btnnuevo_Click(object sender, EventArgs e) { txtn.Clear(); txtcu.Clear(); txtn.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); }
11. Escribir un algoritmo que calcule la mitad, el cuadrado y el cubo de un nmero. I. Anlisis 1.
216 3 64 2
2.
3.
Diccionario de variables
Resultado
Cuadrado : el cuadrado de un numero: Entero Cubo : el cubo de un numero: entero Mitad ; le mitad de un numero : Real
Datos
curso de Algoritmia
Precondicin
{|Numero0|}
Accin
Postcondicin
II. 1.
Diseo Seudocdigo
//Datos
Leer (N)
//Procesos Cuadrado N*N Cubo N*N*N Mitad N/2 //Resultado
Codificacin en consola
namespace appEjercicio011
curso de Algoritmia
class Program { static void Main(string[] args) { //declarar variables int N; int cuadrado, cubo; double mitad; //datos Console.WriteLine("Ingrese cualquien numero:"); N = int.Parse(Console.ReadLine()); //procesos mitad = N / 2; cuadrado = N * N; cubo = N *N*N; //Resultado Console.WriteLine("La mitad es:"); Console.WriteLine(mitad); Console.WriteLine("El cuadrado es:"); Console.WriteLine(cuadrado); Console.WriteLine("El cubo es:"); Console.WriteLine(cubo); Console.ReadKey(); } }
3.
4.
curso de Algoritmia
private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int N; int cuadrado, cubo; double mitad; //datos N = int.Parse(txtn.Text); //procesos mitad = N / 2; cuadrado = N * N; cubo = N * N * N; //Resultado txtcu.Text = (cuadrado.ToString()); txtcb.Text = (cubo.ToString()); txtmi.Text = (mitad.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txtn.Clear(); txtcu.Clear(); txtcb.Clear(); txtmi.Clear(); txtn.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
I.
Anlisis
1.
2.
3.
Diccionario de variables
curso de Algoritmia
Resultado
Datos
Precondicin
{|Soles>0|}
Accin
Postcondicin
Seudocdigo
//Datos
Leer (soles)
//Procesos
Escribir (Dlares)
2.
Codificacin en consola
curso de Algoritmia
//ingresar variables int soles; double dolares; //leer datos Console.WriteLine("Ingresar Monto en Soles"); soles = int.Parse(Console.ReadLine()); //Procesoss dolares = soles / 2.67; //escribir resulatados Console.WriteLine("El Monto en Dolares es"); Console.WriteLine(dolares); Console.ReadKey(); } } }
3.
4.
namespace appEjercicio12 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //ingresar variables int soles;
curso de Algoritmia
} private void btnnuevo_Click(object sender, EventArgs e) { txtsoles.Clear(); txtdolares.Clear(); txtsoles.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
13. Una liebre y una tortuga parten del mismo punto en el mismo instante en direcciones opuestas, se sabe
que la liebre corre a X metros/ segundo y la tortuga a Y metros/segundo. Escribir un algoritmo que determine el espacio de separacin entre la liebre y la tortuga al cabo de t segundos.
I.
Anlisis
1. 2. 3.
Entender el problema
II. 1.
Diseo Seudocdigo
//Datos //Procesos //Resultado 2. 3.
curso de Algoritmia
I. Anlisis
1.
Entender el problema
2. 3.
II.
1.
Diseo Seudocdigo
//Datos //Procesos //Resultado 2. 3. 4.
15. Escribir un algoritmo que convierta temperaturas de grados Celsius a grados Fahrenheit. I.
Anlisis
1. Entender el problema
curso de Algoritmia
2. Modelo
Fahrenheit 1.8*centgrados+32
3. Diccionario de variables
Resultado
Datos
Precondicin
{|Centgrados>0|}
Accin
Postcondicin
| Fahrenheit >0|}
II.
Diseo
1. Seudocdigo //Datos
Leer (centgrados)
//Procesos
Fahrenheit 1.8*centgrados+32
//Resultado
Escribir (Fahrenheit)
2. Codificacin en consola
curso de Algoritmia
namespace appEjercicio015 { class Program { static void Main(string[] args) { //declarar variables double gradoscelcius, gradosFahrenheit; //leer datos Console.WriteLine("la temperatura en grados Celsius es:"); gradoscelcius = double.Parse(Console.ReadLine()); //procesos gradosFahrenheit = 1.8 * gradoscelcius + 32; //escribir resultados Console.WriteLine("el resultados en grados Fahrenheit es:" + gradosFahrenheit); Console.ReadKey(); } } }
curso de Algoritmia
namespace appEjercicio15 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables double gradoscelcius, gradosFahrenheit; //leer datos gradoscelcius = double.Parse(txtcenti.Text); //procesos gradosFahrenheit = 1.8 * gradoscelcius + 32; //escribir resultados txtfare.Text = (gradosFahrenheit.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txtcenti.Clear(); txtfare.Clear(); txtcenti.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
16. En el curso de ofimtica se tomaron 2 exmenes parciales y un examen de prctica, el promedio total se
calcula considerando que los exmenes parciales tienen peso dos y la practica peso uno. Escribir un algoritmo que calcule el promedio final.
I.
Anlisis
1.
Entender el problema Primera Parcial 15 12 11 Segunda Parcial 12 17 15 Practi ca 14 13 12 Promedio Final 13.6 14.2 12.8
2.
curso de Algoritmia
Diccionario de variables
Resultado
Datos
Primera Parcial: primera nota de examen: Entero Segunda Parcial: segunda nota de examen: Entero Practica: Practica calificada: Entero
Variables
Precondicin
Accin
Postcondicin
Seudocdigo
//Datos
curso de Algoritmia
Codificacin en consola
namespace appEjercicio016 { class Program { static void Main(string[] args) { //declarar variables int PA1, PA2, PR, suma; double PF; //leer datos Console.WriteLine("el 1examen parcial"); PA1 = int.Parse(Console.ReadLine()); Console.WriteLine("el 2examen parcial"); PA2 = int.Parse(Console.ReadLine()); Console.WriteLine("la practica"); PR = int.Parse(Console.ReadLine()); //procesos suma = 2 * PA1 + 2 * PA2 + PR; PF = suma / 5; //escribir resultados Console.WriteLine("el promedio final es :" + PF); Console.ReadKey(); } } }
3.
curso de Algoritmia
4.
using using using using using using using using
namespace appEjercicio16 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { txtpa1.Clear(); txtpa2.Clear(); txtpra.Clear(); txtpf.Clear(); txtpa1.Focus(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int PA1, PA2, PR, suma; double PF; //leer datos PA1 = int.Parse(txtpa1.Text); PA2 = int.Parse(txtpa2.Text); PR = int.Parse(txtpra.Text); //procesos suma = 2 * PA1 + 2 * PA2 + PR; PF = suma / 5; //escribir resultados txtpf.Text = (PF.ToString()); } private void btnsalir_Click(object sender, EventArgs e)
curso de Algoritmia
Close();
17. Una liebre y una tortuga parten del mismo punto, en el mismo instante y en el mismo sentido, se sabe
que la liebre corre a X metros/ segundo y la tortuga a Y metros/segundo. Escribir un algoritmo que determine en cuantos segundos la liebre estar 3000 metros delante de la tortuga. (Nota: X > Y)
I.
Anlisis
1.
Entender el problema Espac io 500 1000 Velocidad Liebre 15 20 Velocidad Tortuga 8 9 Tiem po 71 90
2.
3.
Diccionario de variables
Resultado
Datos
Espacio: el espacio que los separa: Entero Velocidad de la Liebre: la velocidad con que corre la liebre: Entero Velocidad de la Tortuga : la velocidad con que corre la tortuga : Entero
Variables
T E / (VL - VT)
Precondicin
{|Vl>VT|}
Accin
curso de Algoritmia
Seudocdigo
//Datos
T E / (VL - VT)
//Resultado
Escribir (Tiempo)
2.
Codificacin en consola
namespace appEjercicio017 { class Program { static void Main(string[] args) { //declarar variables int T, VL, VT, E; //leer datos Console.WriteLine("el espacio es:"); E = int.Parse(Console.ReadLine()); Console.WriteLine("velocidad de la liebre es:"); VL = int.Parse(Console.ReadLine()); Console.WriteLine("la velocidad de la tortuga es:"); VT = int.Parse(Console.ReadLine()); //procesos T = E / (VL - VT); //escribir resultados Console.WriteLine("el tiempo en segundos es:" + T); Console.ReadKey(); }
curso de Algoritmia
3.
4.
18. Escribir un algoritmo que calcule la suma de la n-primeros nmeros pares. Marco Antonio Farfn Huallpa Pgina 54
namespace appEjercicio17 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //declarar variables int T, VL, VT, E; //leer datos E = int.Parse(txte.Text); VL = int.Parse(txtvl.Text); VT = int.Parse(txtvt.Text); //procesos T = E / (VL - VT); //escribir resultados txtt.Text = (T.ToString()); } private void button2_Click(object sender, EventArgs e) { txte.Clear(); txtvl.Clear(); txtvt.Clear(); txtt.Clear(); txtvl.Focus(); } private void button3_Click(object sender, EventArgs e) { Close(); } } }
curso de Algoritmia
Sum a 240
3.
Diccionario de variables
Resultado
Datos
N: numero: Entero
Variables
Suma N *(N + 1)
Precondicin
Accin
Diseo Seudocdigo
//Datos
Leer (N)
//Procesos
Suma N *(N + 1)
//Resultado
Escribir (Suma)
Marco Antonio Farfn Huallpa Pgina 55
curso de Algoritmia
Codificacin en consola
namespace appEjercicio018 { class Program { static void Main(string[] args) { //declarar variables int numero, suma; //leer datos Console.WriteLine("el numero es:"); numero = int.Parse(Console.ReadLine()); //procesos suma = numero *(numero + 1); //escribir resultados Console.WriteLine("la suma es:" + suma); Console.ReadKey(); } } }
3.
4.
curso de Algoritmia
namespace appEjercicio18 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //declarar variables int numero, suma; //leer datos numero = int.Parse(txtN.Text); //procesos suma = numero * (numero + 1); //escribir resultados txtSuma.Text = (suma.ToString()); } private void button2_Click(object sender, EventArgs e) { txtSuma.Clear(); txtN.Clear(); txtN.Focus(); } private void button3_Click(object sender, EventArgs e) { Close(); } } }
19. Escribir un algoritmo que calcule la suma de los n-primeros nmeros impares. I. Anlisis 1.
2.
3.
Diccionario de variables
curso de Algoritmia
Resultado
Datos
Variables
Precondicin
Accin
Diseo Seudocdigo
//Datos
Leer (numero)
//Procesos
Escribir (Suma)
2.
Codificacin en consola
curso de Algoritmia
} }
3.
4.
namespace appEjercicio19 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnProcesar_Click(object sender, EventArgs e) { //declarar variables int suma, numero; //leer datos numero = int.Parse(txtN.Text); //procesos
curso de Algoritmia
} private void btnnuevo_Click(object sender, EventArgs e) { txtSuma.Clear(); txtN.Clear(); txtN.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
20. Dos socios de una empresa exportadora, aportan cada uno cierta cantidad de un mismo producto. Luego
de producida la venta al exterior reciben una cantidad de dinero. Escribir un algoritmo que determine cuanto corresponde a cada socio, proporcional a su aporte.
I.
Anlisis
1.
Entender el problema Vent a 20 30 Aporte S1 15 5 Aporte S2 12 10 Recibe S1 300 150 Recibe S2 240 300
2.
3.
Resultado
Datos
aporteS1: aporte del primer socio : Entero aporteS2: aporte del segundo socio: Entero Venta: la venta al exterior: entero
Variables
curso de Algoritmia
Precondicin
{| aporteS1>0, aporteS2>0,venta>0|}
Accin
Postcondicin
Diseo
1.
Seudocdigo
//Datos
Codificacin en consola
curso de Algoritmia
namespace appEjercicio020 { class Program { static void Main(string[] args) { //declarar variables int aporteS1, aporteS2, venta; double recibeS1, recibeS2; //leer datos Console.WriteLine("la venta es:"); venta = int.Parse(Console.ReadLine()); Console.WriteLine("aporteS1 es:"); aporteS1 = int.Parse(Console.ReadLine()); Console.WriteLine("aporteS2 es:"); aporteS2 = int.Parse(Console.ReadLine()); //procesos recibeS1 = venta * aporteS1; recibeS2 = venta * aporteS2; //Escribir resultados Console.WriteLine("el socio1 recibe es:"); Console.WriteLine(recibeS1); Console.WriteLine("el socio2 recibe es:"); Console.WriteLine(recibeS2); Console.ReadKey(); } } }
3.
4.
curso de Algoritmia
namespace appEjercicio20 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar variables int aporteS1, aporteS2, venta; double recibeS1, recibeS2; //leer datos venta = int.Parse(txtventa.Text); aporteS1 = int.Parse(txtap1.Text); aporteS2 = int.Parse(txtap2.Text); //procesos recibeS1 = venta * aporteS1; recibeS2 = venta * aporteS2; //Escribir resultados txtre1.Text = (recibeS1.ToString()); txtre2.Text = (recibeS2.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txtventa.Clear(); txtap1.Clear(); txtap2.Clear(); txtre1.Clear(); txtre2.Clear(); txtap1.Focus(); } private void btnsalir_Click(object sender, EventArgs e) { Close(); } } }
21. Tres hermanos constituyen una empresa. Al primero le corresponde el 50% de las acciones, al segundo el
30% y al tercero el 20%. Al final de cada mes se reparten las utilidades proporcional a las acciones, escribir un algoritmo que determine el monto que le corresponde a cada hermano.
I.
Anlisis
1.
curso de Algoritmia
3.
Diccionario de variables
Resultado
Hermano A: el hermano con ms utilidad: Entero Hermano B: el hermano del medio: Entero Hermano C: el hermano tercero: Entero
Datos
Precondicin
{|utilidad>0|}
Accin
Seudocdigo
//Datos
Leer (utilidad)
//Procesos
curso de Algoritmia
Codificacin en consola
namespace appEjercicio021 { class Program { static void Main(string[] args) { //declarar varibles int utilidad; double HA, HB, HC; //leer datos Console.WriteLine("la utilidad es:"); utilidad = int.Parse(Console.ReadLine()); //procesos HA = 0.5 * utilidad; HB = 0.3 * utilidad; HC = 0.2 * utilidad; //resultados Console.WriteLine("LECORRESPONDE AL HA:" + HA); Console.WriteLine("LE CORRESPONDE AL HB:" + HB); Console.WriteLine("LE CORRESPONDE AL HC:" + HC); Console.ReadKey(); } } }
3.
curso de Algoritmia
4.
namespace appEjercicio21 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnprocesar_Click(object sender, EventArgs e) { //declarar varibles int utilidad; double HA, HB, HC; //leer datos utilidad = int.Parse(txtutilidad.Text); //procesos HA = 0.5 * utilidad; HB = 0.3 * utilidad; HC = 0.2 * utilidad; //resultados txtHeA.Text = (HA.ToString()); txtHeB.Text = (HB.ToString()); txtHeC.Text = (HC.ToString()); } private void btnnuevo_Click(object sender, EventArgs e) { txtutilidad.Clear(); txtHeA.Clear(); txtHeB.Clear(); txtHeC.Clear(); txtutilidad.Focus();
curso de Algoritmia
} }
22. En una clnica se reparte el monto de dinero obtenido de acuerdo al siguiente porcentaje: pediatra 40%,
odontologa 30%, traumatologa 15%, laboratorio 10% y rehabilitacin 5%. Escribir un algoritmo que determine el monto que le corresponde a cada rea.
I.
Anlisis
1.
Entender el problema Pediatr a 40 Modelo pediatra 0.4 * monto Odontologa 0.3 * monto traumatologa 0.15 * monto laboratorio 0.1 * monto rehabilitacin 0.05 * monto Traumatolo ga 15 Laborato rio 10 Rehabilitac in 5 Odontolog a 30
Monto 100
2.
3.
Diccionario de variables
Resultado
Pediatra: el monto a Pediatra: Real Odontologa: el monto a Odontologa: Real Traumatologa: el monto a Traumatologa: Real Laboratorio: el monto a Laboratorio: Real Rehabilitacin: el monto a Rehabilitacin: Real
Datos
Variables
INSTITUTO DE SISTEMAS CUSCO traumatologa 0.15 * monto laboratorio 0.1 * monto rehabilitacin 0.05 * monto
curso de Algoritmia
Precondicin
{|monto >0|}
Accin
II.
{| {| {| {| {| Diseo
1.
Postcondicin pediatra >0|} Odontologa >0|} traumatologa >0|} laboratorio >0|} rehabilitacin >0|}
Seudocdigo
//Datos
Leer (monto)
//Procesos
pediatra 0.4 * monto Odontologa 0.3 * monto traumatologa 0.15 * monto laboratorio 0.1 * monto rehabilitacin 0.05 * monto
//Resultado
Escribir (pediatra) Escribir (Odontologa) Escribir (traumatologa) Escribir (laboratorio) Escribir (rehabilitacin)
Marco Antonio Farfn Huallpa Pgina 68
curso de Algoritmia
Codificacin en consola
namespace appEjercicio022 { class Program { static void Main(string[] args) { //declarar variables int monto; double pediatria, odontologia, traumatologia, laboratorio, rehabilitacion; //leer datos Console.WriteLine("el monto es:"); monto = int.Parse(Console.ReadLine()); //procesos pediatria = 0.4 * monto; odontologia = 0.3 * monto; traumatologia = 0.15 * monto; laboratorio = 0.1 * monto; rehabilitacion = 0.05 * monto; //resultados Console.WriteLine("pediatria:" + pediatria); Console.WriteLine("odontologia:" + odontologia); Console.WriteLine("traumatologia:" + traumatologia); Console.WriteLine("laboratorio:" + laboratorio); Console.WriteLine("rehabilitacion:" + rehabilitacion); Console.ReadKey(); } } }
3.
curso de Algoritmia
4.
namespace appEjercicio22 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //declarar variables int monto; double pediatria, odontologia, traumatologia, laboratorio, rehabilitacion; //leer datos monto = int.Parse(textBox1.Text); //procesos pediatria = 0.4 * monto; odontologia = 0.3 * monto; traumatologia = 0.15 * monto; laboratorio = 0.1 * monto; rehabilitacion = 0.05 * monto; //resultados textBox2.Text = (pediatria.ToString()); textBox3.Text = (odontologia.ToString()); textBox4.Text = (traumatologia.ToString()); textBox5.Text = (laboratorio.ToString()); textBox6.Text = (rehabilitacion.ToString()); } private void button2_Click(object sender, EventArgs e)
curso de Algoritmia
} }
23. A un programador se le paga S/ 0.01 la primera semana, S/ 0.02 la segunda semana, S/ 0.04 la tercera
semana, S/ 0.08 la cuarta semana, as sucesivamente, es decir cada semana se le dobla el sueldo. Escribir un algoritmo que determine al cabo de cuantas semanas el sueldo del trabajador ser mayor a S/. X 24. Escribir un algoritmo que dada una hora en HH horas, MM minutos y SS segundos, escriba la hora correspondiente al segundo anterior.
I.
Anlisis
1.
2.
Modelo ts (hh * 3600) + (mm * 60) + ss - 1 hf ts / 3600 mf (ts / 3600) % 60 sf (ts % 360) % 60
3.
Diccionario de variables
Resultado
hf: la final antes del segundo: Entero mf: la final antes del segundo: Entero sf: la final antes del segundo: Entero
Datos
curso de Algoritmia
Hh: hora inicial antes del segundo: entero Mm: minuto inicial antes del segundo: entero Ss: segundo inicial antes del segundo: entero
Variables
Precondicin
Accin
Postcondicin
Seudocdigo
//Datos
Codificacin en consola
curso de Algoritmia
namespace appEjercicio024 { class Program { static void Main(string[] args) { //declarar variables int hh, mm, ss, ts, hf, mf, sf; //leer dats Console.WriteLine("La Hora inicial es:"); hh = int.Parse(Console.ReadLine()); Console.WriteLine("El Minuto inicial es:"); mm = int.Parse(Console.ReadLine()); Console.WriteLine("El Segundo inicial es:"); ss = int.Parse(Console.ReadLine()); //Procesos ts = (hh * 3600) + (mm * 60) + ss - 1; hf = ts / 3600; mf = (ts / 3600) % 60; sf = (ts % 360) % 60; //resuktado Console.WriteLine("La Hora final es:"); Console.WriteLine(hf); Console.WriteLine("El Minuto final es:"); Console.WriteLine(mf); Console.WriteLine("El Segundo final es:"); Console.WriteLine(sf); Console.ReadKey(); } } }
3.
curso de Algoritmia
4.
curso de Algoritmia
} } 25. Un automvil parte a las HH horas, MM minutos y SS segundos. Se sabe que llega a su destino a las HF horas, MF minutos y SF segundos. Escribir un algoritmo que determine el tiempo de viaje en segundos. 26. En la Librera lector feliz por cada docena de libros que compra se le regala un libro y tiene un descuento del 2%. Escribir un algoritmo que calcule la cantidad de libros que lleva y el monto que debe pagar si se sabe que cada libro cuesta X soles.
I.
Anlisis
1.
Entender el problema
costolib ro 10
2.
nrodoce na 6
montoapag ar 718
cantidadli bro 78
3.
Diccionario de variables
Resultado
Cantidadlibro : cantidad total de libros comprados: Entero Montoapagar : el total de soles a pagar por los libros: Entero
Datos
Precondicin
curso de Algoritmia
Accin
Postcondicin
Seudocdigo
//Datos
Codificacin en consola
namespace appEjercicio026 {
curso de Algoritmia
class Program { static void Main(string[] args) { //variables int cantidadlibro, nrodocena; double montoapagar, costolibro; //leer datos Console.WriteLine("docenas:"); nrodocena = int.Parse(Console.ReadLine()); Console.WriteLine("costolibro:"); costolibro = double.Parse(Console.ReadLine()); //procesos cantidadlibro = (nrodocena * 12 + nrodocena); montoapagar = (nrodocena * 12 * costolibro) - 2 % (nrodocena * 12 * costolibro); //resultados Console.WriteLine("cantidadlibro:" + cantidadlibro); Console.WriteLine("montoapagar:" + montoapagar); Console.ReadKey(); } } }
3.
4.
curso de Algoritmia
private void button1_Click(object sender, EventArgs e) { //variables int cantidadlibro, nrodocena; double montoapagar, costolibro; //leer datos nrodocena = int.Parse(textBox2.Text); costolibro = double.Parse(textBox1.Text); //procesos cantidadlibro = (nrodocena * 12 + nrodocena); montoapagar = (nrodocena * 12 * costolibro) - 2 % (nrodocena * 12 * costolibro); //resultados textBox3.Text = (cantidadlibro.ToString()); textBox4.Text = (montoapagar.ToString()); } private void button2_Click(object sender, EventArgs e) { textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); textBox1.Focus(); } private void button3_Click(object sender, EventArgs e) { Close(); } } }
1. 2.
PREGUNTA DE EXAMEN 1 PREGUNTA DE EXAMEN 2 Codificacin en consola using using using using System; System.Collections.Generic; System.Linq; System.Text;
namespace appPreguntadeExamen02 { class Program { static void Main(string[] args) { //declarar variables int montsoles; double pagopollo, pagopapa, loquemequeda;
Marco Antonio Farfn Huallpa Pgina 78
curso de Algoritmia
//leer datos Console.WriteLine("El monto en soles es:"); montsoles = int.Parse(Console.ReadLine()); //procesos pagopollo = montsoles / 2; pagopapa = pagopollo * 0.3; loquemequeda = pagopollo * 0.7; //Resultado Console.WriteLine("El pago de pollo es:"); Console.WriteLine(pagopollo); Console.WriteLine("El pago de papa es:"); Console.WriteLine(pagopapa); Console.WriteLine("Lo que me queda es:"); Console.WriteLine(loquemequeda); Console.ReadKey(); } } } Codificacin en Windows From using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace appPreguntadeExamen01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Marco Antonio Farfn Huallpa Pgina 79
curso de Algoritmia
private void btnProcesar_Click(object sender, EventArgs e) { //declarar variables int montsoles; double pagopollo, pagopapa, loquemequeda; //leer datos montsoles = int.Parse(txtmontosoles.Text); //procesos pagopollo = montsoles / 2; pagopapa = pagopollo * 0.3; loquemequeda = pagopollo * 0.7; //Resultado txtpagopollo.Text = (pagopollo.ToString()); txtpagopapa.Text = (pagopapa.ToString()); txtloquequeda.Text = (loquemequeda.ToString());
} } }