C# FUNDAMENTOS DE PROGRAMACION
May 8, 2017 | Author: Carlos Rodriguez Torvisco | Category: N/A
Short Description
Download C# FUNDAMENTOS DE PROGRAMACION...
Description
Lenguaje de Programación
1
Carlos Rodríguez Torvisco – Algorítmica
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.
Lenguaje de Programación
4
Carlos Rodríguez Torvisco – Algorítmica
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
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. 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
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
23
Lengu uaje de Prog gramación
Carlos Rodrríguez Torvissco – Algorítm mica
Es Estru uctu ura Secue Se encia al 2.1 Conceptto Una estructura e se ecuencial es aquella en la que las ins strucciones están e una a ccontinuación n de la otra siguiendo s un na secuencia a única, sin cambios de e ruta. La esstructura seccuencial tiene una entra ada y una salida. En la Figura se muestra m el pseudocódigo p o y el diagram ma de flujo de d una estru uctura secuencial. Pseudocódigo Inic cio Ac cción
1
Ac cción
2
Ac cción
3
. . . Ac ccion n Fin
24
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
PROBLEMAS RESUELTOS 1.‐Ecribir un algoritmo que determine la suma de dos números enteros. Datos Numero 1 5 9
Numero 2 8 5
Resultado Suma 13 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 base 4 9
altura 5 5
Resultado Area 10 22,5
Lenguaje de Programación
25
Carlos Rodríguez Torvisco – Algorítmica
2.1.‐Algoritmo Inicio {calcular el area de un triangulo} {Ingresamos base y altura} Leer bas Leer altura {Calculamos el area de un triangulo} Area = (bas * altura) / 2 {Mostramos el resultado} Escribir Area Fin 2.2.‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables int bas, altura; double area; //ingresamos los datos Console.Write("Ingresa base : "); bas = int.Parse(Console.ReadLine()); Console.Write("Ingresa altura : "); altura = int.Parse(Console.ReadLine()); //hacemos la operacion area = (bas * altura) / 2; //mostramos los resultados por pantalla Console.Write("el area del triangulo es : {0}", area); Console.ReadLine(); }
3.‐escribir un algoritmo y su codificacion que convierta una distancia medida en metros a pies. Datos Distancia en metros 4 5 9 20
3.1.‐Algoritmo Inicio {convertir una distancia medida en metros a pies} {Ingresamos distancia en metros} Leer metros {Convertir distancia a pies} pies = metros / (12 / 39.27)
{Mostramos el resultado} Escribir pies Fin
Resultado Distancia en pies 13.09 16.362 29.45 65.45
Lenguaje de Programación
26
Carlos Rodríguez Torvisco – Algorítmica
3.2.‐Codificacion(C#) static void Main(string[] args) { //declaramos nuestras variables float metros, pies; //ingresamos los datos para almacenar en nuestras variables "metros" Console.Write("Ingresa Metros : "); metros = float.Parse(Console.ReadLine()); //hacemos la operacion pies = metros / (12 / 39.27f); //1 pie = 0.3048 metros //1 pulgada = 25.4 mm //mostramos los resultados por pantalla Console.Write("el equivalente en pies es : {0}", pies); Console.ReadLine(); }
4.‐ escribir un algoritmo y su codificacion para calcular el total a pagar de un consumo ingresado por el usuario , finalmente mostrar el IGV y el total a pagar por pantalla (incluye IGV=0.19). Datos consumo 524.25 45.00
Resultado IGV 99,61 8.55
TOTAL A PAGAR 623.86 53.55
4.1.‐Algoritmo Inicio {calcular el igv y el monto total a pagar de un consumo ingresado por el usuario} {Ingresamos consumo} Leer consumo {Calculamos el igv} igv=consumo*0.19 {calculamos el totap a pagar} tap=consumo+igv {Mostramos el resultado} Escribir igv Escribir tap Fin 4.2.‐Codificacion(C#) static void Main(string[] args) { //definiciones de variables float consumo, igv, tap; //ingresando consumo Console.Write("Ingrese el monto de su consumo: "); consumo = float.Parse(Console.ReadLine()); //calculamos el igv
27
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
igv = consumo * 0.19f; //calculamos el total a pagar tap = consumo + igv; Console.WriteLine("El IGV es : {0}",igv); Console.Write("Total a pagar:{0}",tap); Console.Read(); }
5.‐ escribir un algoritmo y su codificacion para calcular la edad de una persona Datos Fecha de nacimiento 1991 1985
Fecha actual 2008 2008
Resultado Edad 17 23
5.1.‐Algoritmo Inicio {calcular la edad de una persona} {Ingresamos fecha de nacimiento} Leer fnac {Ingresamos fecha actual} Leer fac {calculamos la edad} Edad=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 Capital 800 400 500 1050
Resultado Ganancia 16 8 10 21
28
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
6.1.‐Algoritmo Inicio {calcular la ganancia de un mes de un ingeniero} {Ingresamos capital} Leer capital {Calculamos el capital} ganancia = capital * 0.02 {Mostramos el resultado} Escribir ganancia Fin 6.2.‐Codificacion(C#) static void Main(string[] args) { double cap, gan; Console.Write("ingrese su capital : "); cap = double.Parse(Console.ReadLine()); gan = cap * 0.02; Console.Write("su ganacia es :{0} ", gan); Console.Read(); }
7.‐ escribir un algoritmo y su codificacion para que un profesor determine el porcentaje de hombres y el porcentaje de mujeres hay en un grupo de estudiantes. Datos Numero de hombres Numero de mujeres 20 15
20 29
Resultado Porcentaje de Porcentaje de hombres mujeres 50% 50% 34% 66%
7.1.‐Algoritmo Inicio {calcular el porcentaje de varones y el porcentaje de mujeres de un grupo de Estudiantes} {Ingresamos 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
29
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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.
Precio del Producto 50 20
Datos Pago que Realiza el Cliente 70 25
Resultado (cambio a entregar) 20 5
8.1.‐Algoritmo Inicio {Cambio} {Ingresamos Precio del Producto} Leer prepro {Ingresamos Pago que Realiza el Cliente} Leer pago {Calculamos la Devolucion o el Vuelto} Devo=pago ‐ prepro; Escribir Devo Fin 8.2.‐Codificacion(C#) static void Main(string[] args) { float prepro, pago, devo = 0; //Ingresamos Precio del Producto Console.Write("Ingrese el Precio del Producto : ");
Lenguaje de Programación
}
30
Carlos Rodríguez Torvisco – Algorítmica
prepro = float.Parse(Console.ReadLine()); //Ingresamos Pago que Realiza el cliente Console.Write("Ingrese el Pago que Realiza el Cliente: "); pago = float.Parse(Console.ReadLine()); //Calculamos el Vuelto o Devolucion devo = pago - prepro; //Mostramos el Cambio Console.WriteLine("El cambio a entregar es :s/.{0}", devo); Console.ReadLine();
9‐ Hacer un programa que al dar la hora hh, mm minuto , ss segundo, escriba la hora correspondiente al segundo anterior.
Hora 3 5
Datos Minuto 20 2
segundo 25 0
Resultado(segundo anterior) Hora Minuto Segundo 3 20 24 5 1 59
9.1.‐Algoritmo Inicio {la hora al segundo anterior} Leer hh,mm,ss TotalSegundos=(hh*3600+mm*60+ss)‐1 hh = (TotalSegundos div 3600) mod 24; mm = (TotalSegundos mod 3600) div 60; ss = (TotalSegundos % 3600) div 60; {Mostramos la Hora Correspondiente al Segundo Anterior} Escribir hh,mm,ss Fin 9.2.‐Codificacion(C#) static void Main(string[] args) { int hh, mm, ss; Console.Write("Ingresa Hora:"); hh = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:"); mm = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); ss = int.Parse(Console.ReadLine()); int TotalSegundos = (hh * 3600 + mm * 60 + ss) -1; hh = (TotalSegundos / 3600) % 24; mm = (TotalSegundos % 3600) / 60; ss = (TotalSegundos % 3600) % 60; //mostramos la hora al segundo anterior Console.WriteLine("{0}:{1}:{2}", hh, mm, ss); Console.Read(); }
10.‐ Hacer un programa que al dar la hora hh, mm minuto , ss segundo, escriba la hora correspondiente despues de 2 segundos
31
Lenguaje de Programación
Hora 3 5
Datos Minuto 20 2
segundo 25 59
Carlos Rodríguez Torvisco – Algorítmica Resultado(después de 2 segundos) Hora Minuto Segundo 3 20 27 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 Valor Inicial 2 10
11.1.‐Algoritmo Inicio {Calcular el Valor Medio} Leer ValorInicial,ValorFinal {Calculo del Valor Central}
Valor Final 4 20
Resultado Valor Central 3 15
32
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
ValorCentral=( ValorInicial+ValorFinal)/ 2 Escribir ValorCentral Fin 11.2.‐Codificacion(C#) static void Main(string[] args) { int A1, A2; int C; Console.Write("Ingresa Valor Inicial:"); A1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Valor Final:"); A2 = int.Parse(Console.ReadLine()); C = (A1 + A2) / 2; Console.WriteLine("Valor Central: " + C); Console.ReadLine(); }
12.‐Escriba un programa tal, que dados el nombre de un dinosaurio, su peso y su longitud, expresados estos dos últimos en toneladas y pies, respectivamente, escriba el nombre del dinosaurio, su peso expresado en kilogramos y su longitud expresada en metros.
Nombre Rinoceronte Choclosauri o
Datos Peso(Tonelada s) 1 2
Longitud(Pies ) 25 59
Nombre Rinoceronte Choclosauri o
1 Tonelada= 1000 kilos 12.1.‐Algoritmo Inicio {Conversion} {Ingresamos El Nombre del Dinosaurio} Leer Nomb {Ingresamos El Peso en Toneladas} Leer pes {Ingresamos La Longitud en Pies} Leer lon peskil = peso * 1000; lonmet = lon * 0.3047f; Escribir Nomb, peskil, lonmet Fin 12.2.‐Codificacion(C#) static void Main(string[] args) { float peso, lon, peskil = 0, lonmet = 0;
Resultado Peso(Kilos Longitud(Metro ) s) 1000 7,6175 2000 17,97
Lenguaje de Programación
}
33
Carlos Rodríguez Torvisco – Algorítmica
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 Extencion en Acres 200 100 500 450
Resultado Extencion en Hectareas 80,94 40,47 202,35 182,115
13.1.‐Algoritmo Inicio {calcular hectareas} {Ingresamos extencion en Acres} Leer exten Escribir extcam * 4047 / 10000 Fin 13.2.‐Codificacion(C#) static void Main(string[] args) { float extcam, extha; Console.Write("Ingresar la 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 Cantidad de Dias 1 30 24
Resultado Total de Segundos 86400 2592000 2073600
34
Lenguaje de Programación 15
Carlos Rodríguez Torvisco – Algorítmica 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 Numero de Galones 4 3 2 15
Resultado Total a Pagar 15,5182 11,63 7,75 58,19
15.1.‐Algoritmo Inicio {calcular el total a pagar} {Ingresamos el numero de galones} Leer cons Escribir cons * 3.785f * 1.025; Fin 15.2.‐Codificacion(C#) static void Main(string[] args) { float cons, total = 0; Console.Write("Ingrese el Número de Galones Surtidos: "); cons = float.Parse(Console.ReadLine()); total = cons * 3.785f * 1.025f; Console.WriteLine("El Total es:" + total);
35
Lenguaje de Programación
}
Carlos Rodríguez Torvisco – Algorítmica
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 45
60 12
0 25
1000 5000
1000 5000
1 6,63
16.1.‐Algoritmo Inicio {calcular velocidad} {Ingresamos el tiempo} Leer min,seg,cen,dis tiemseg = min * 60 + seg + (cen / 100) veloms = dis / tiemseg velokh = (veloms * 3600) / 1000 Escribir dis,velokh Fin 16.2.‐Codificacion(C#) static void Main(string[] args) { int min, seg, cen; float veloms, velokh, tiemseg = 0, dis; Console.WriteLine("Ingresar el Tiempo Empleado en la Competencia"); Console.Write("Minutos : "); min = int.Parse(Console.ReadLine()); Console.Write("Segundos : "); seg = int.Parse(Console.ReadLine()); Console.Write("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 Numero
Resultado Numero Invertido
36
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 Numero 15 41 97 32
Resultado Suma de cifras 6 5 16 5
37
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 Numero 154 541 987 325
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}
Resultado Ultima Cifra 4 1 7 5
38
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
Fin 19.2.‐Codificacion(C#) static void Main(string[] args) { int numero,Ultima_cifra; //ingresar un numero Console.Write("ingres numero de dos cifras : "); numero = int.Parse(Console.ReadLine()); //calculamos el ultimo digito de un numero cualquiera Ultima_cifra = numero % 10; //mostramos el ultimo digito Console.WriteLine("El Ultimo digito es :{0}",Ultima_cifra); Console.ReadLine(); }
20.‐ escribir un algoritmo y su codificacion ingresadas por teclado.
Nota 1 20 15
para calcular el promedio de tres notas
Datos Nota 2 20 12
20.1.‐Algoritmo Inicio {calcular el promedio de tres notas dadas} {Ingresamos la primera nota} Leer nota1 {Ingresamos la segunda nota} Leer nota2 {Ingresamos la tercera nota} Leer nota3 {Calculamos el promedio} promedio=(nota1+nota2+nota3)/3 {Mostramos el resultado} Escribir promedio Fin 20.2.‐Codificacion(C#) static void Main(string[] args) {//declaramos nuestras variables int nota1, nota2, nota3, promedio; //ingresamos las notas Console.Write("Ingrese Nota 1:"); nota1 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Nota 2:"); nota2 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Nota 3:"); nota3 = int.Parse(Console.ReadLine()); //calculamos el promedio
Nota 3 20 18
Resultado Promedio 20 15
39
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 Sueldo base 450 800
Venta 1 500 1005
Resultado Venta 2 645 2000
Venta 3 800 1540
Comisión 194.5 454.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 : ");
Total a pagar 644.5 1254.5
Lenguaje de Programación
40
Carlos Rodríguez Torvisco – Algorítmica
v2 = double.Parse(Console.ReadLine()); Console.Write("ingrese venta 3 : "); v3 = double.Parse(Console.ReadLine()); //calculamos el total de venta total_venta = v1 + v2 + v3; //calculamos la comision comision = total_venta * 0.10; //calculamos el total a pagar tpag = sb + comision; //mostramos los resultados Console.WriteLine("su total a pagar es : {0} ", tpag); Console.WriteLine("su comision es : {0} ", comision); Console.ReadLine(); }
22.‐ escribir un algoritmo y su codificacion para una tienda que ofrece un descuento de 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra. Datos Total de compra 154 541 987 325
22.1.‐Algoritmo Inicio {calcular el total a pagar} {Ingresamos el total de compra} Leer tc {Calculamos el descuento} d=tc*0.15 {Calculamos el total a pagar} tp=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);
Resultado Total a pagar 130.9 459.85 838.95 276.25
41
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 Calificación 1 15 11
Calificación 2 12 12
Calificación 3 11 14
Resultado Examen final
Trabajo final
15 10
17 08
Calificación final 14.02 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 : ");
42
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
tf = float.Parse(Console.ReadLine()); //calculamos el promedio de las tres calificaciones prom = (c1 + c2 + c3) / 3; //calculamos el 55% de las tres calificaciones ppar = prom * 0.55f; //calculamos el 30% de examen final pef = ef * 0.30f; //calculamos el 15% del trabajo final ptf = tf * 0.15f; //calcuamos la calificacion final del alumno cf = ppar + pef + ptf; Console.Write("su calificacion final es : {0}", cf); Console.Read(); }
24.‐ escribir un algoritmo y su codificacion para sacar la raiz cuadrada de un numero cualquiera.
Datos numero 4 25 81 49
Resultado 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=√ {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.
43
Lenguaje de Programación
Hora
Datos Minuto
segundo
3 5
118 98
195 154
Carlos Rodríguez Torvisco – Algorítmica
Hora Correcta 5 6
Resultado Minuto Correcto 1 40
Segundo Correcto 15 34
25.1.‐Algoritmo Inicio {calcular la hora correcta} {Ingresamos horas, minutos, segundos} Leer hora, minuto, segundo {Convertimos a segundos} totalsegundos=hora*3600+minuto*60+segundo {Distribuimos el totalsegundos en hora, minuto, segundos correctamente} hora=totalsegundos div 3600 hora=hora mod 24 minuto = (totalsegundos mod 3600) div 60 segudo = (totalsegundos mod 3600) mod 60 {Mostramos la hora correctamente} Escribir hora, minuto, segundo Fin
25.2.‐Codificacion(C#) static void Main(string[] args) { int hora, minuto, segudo, totalsegundos; //ingresamos hora,minuto,segundos Console.Write("Ingresa Hora:"); hora = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:"); minuto = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); segudo= int.Parse(Console.ReadLine()); //convertimos todo a segundo totalsegundos = hora * 3600 + minuto * 60 + segudo; //distribuimos el totalsegundos en horas,segundos,minutos correctamente
hora = totalsegundos / 3600; hora = hora % 24; minuto = (totalsegundos % 3600) / 60; segudo = (totalsegundos % 3600) % 60; //mostramos la hora correctamente Console.Write("{0}:{1}:{2}",hora,minuto,segudo); Console.Read(); }
26.‐ escribir un algoritmo y su codificacion que calcule el 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).
44
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
Supongamos que el Monto Ingresado sea 4587.75 El cambio seria lo siguiente: s/.200 22
s/.100 1
s/.50 1
s/.20 1
s/.10 1
5 soles 1
1 sol 2
Ejemplo codificado
26.1.‐Algoritmo Inicio {cambio de cheque bancario} {Ingresamos monto a cambiar} Leer monto monto =monto*100 {Calcular 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
0.50 1
0.10 2
0.01 5
Lenguaje de Programación
45
Carlos Rodríguez Torvisco – Algorítmica
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
46
Carlos Rodríguez Torvisco – Algorítmica
un algoritmo y su codificacion para determinar el tiempo promedio por vuelta de un participante.
1 vuelta Hora,minuto,seg‐ undo 8:31:25 3:3:5
Datos 2 vuelta Hora,minuto,seg‐ undo 11:34:11 5:2:56
Resultado 3 vuelta Hora,minuto,seg‐ undo 14:12:48 8:43:11
Hora promedio 11 5
Ejemplo codificado
27.1.‐Algoritmo Inicio {calcular el tiempo promedio} {Ingresamos horas, minutos, segundos de la primera vuelta} Leer hh, mm, ss {Ingresamos horas, minutos, segundos de la segunda vuelta} Leer hh2, mm2, ss2 {Ingresamos horas, minutos, segundos de la tercera vuelta} Leer hh2, mm2, ss2 {Convertimos a segundos} Vuelta1=hh*3600+mm*60+ss Vuelta2= hh2*3600+mm2*60+ss2 Vuelta3= hh3*3600+mm3*60+ss3 {Sumamos las tres vueltas y dividimos entre 3} Totalsegundos= (Vuelta1+Vuelta2+Vuelta3)/3 {Distribuimos el totalsegundos para que nos de el tiempo promedio} Horapromedio= Totalsegundos div 3600 Horapromedio=Horapromedio mod 24 Minutopromedio= (Totalsegundos mod 3600) div 60 Segundopromedio= (Totalsegundos mod 3600) mod 3600 {Mostramos la hora correctamente} Escribir Horapromedio, Minutopromedio, Segundopromedio Fin 27.2.‐Codificacion(C#)
Minuto prom. 26 36
Segundo promedio 8 24
47
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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.
Examen parcial 1 20 15
Datos Examen parcial 2 20 12
Examen practica 20 18
Resultado Promedio final 20 14.4
48
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 base 10 15
Resultado altura 5 29
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
Área 50 435
perímetro 30 88
Lenguaje de Programación
49
Carlos Rodríguez Torvisco – Algorítmica
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.
Hora 6 20
Datos Minuto 14 41
segundo 19 12
Resultado(para que termine el día) Hora Minuto Segundo 17 45 41 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
50
Carlos Rodríguez Torvisco – Algorítmica
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 Monto 5648 554788
Primer hermano 2824 277394
Resultado Segundo hermano 1882.7 184929.3
31.1.‐Algoritmo Inicio {calcular cuanto le corresponde a cada hermano} {Ingresamos monto} Leer monto {Calculo cuanto le pertenece al primer hermano} PrimerHermano=monto*0.50 {Calculo cuanto le pertenece al segundo hermano} SegundoHermano=PrimerHermano*2/3 {Calculo cuanto le pertenece al tercer hermano} TercerHermano=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;
Tercer hermano 941.3 92464.67
Lenguaje de Programación
51
Carlos Rodríguez Torvisco – Algorítmica
//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 Lado 5 2
Resultado Área 150 24
Volumen 125 8
32.1.‐Algoritmo Inicio {calcular el area y el volumen de un hexaedro} {Ingresamos Lado} Leer lado {Calculamos el area} area =(lado*lado)*6 {Calculamos el volumen) volumen= (lado*lado*lado) {Mostramos el volumen y area} Escribir area, volumen Fin 32.2.‐Codificacion(C#) static void Main(string[] args) { double lado, area, volumen; //ingresamos el lado del hexaedro Console.Write("Ingrese Lado:"); lado = double.Parse(Console.ReadLine()); //calculamos el area area = (lado * lado) * 6; //calculamos el volumen volumen = Math.Pow(lado, 3); //mostramos el area y el volumen del hexaedro Console.WriteLine("El Area del Hexaedro es :{0}",area); Console.WriteLine("El Volumen del Hexaedro es :{0}",volumen); Console.Read(); }
Lenguaje de Programación
52
Carlos Rodríguez Torvisco – Algorítmica
33.‐Un coche se mueve, partiendo del reposo, con una aceleración constante de 8 m/s2. 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
53
Carlos Rodríguez Torvisco – Algorítmica
Datos Consumo(m3) 50 20 15 10
Resultado Total a Pagar 18.85 8.14 6.36 4.57
34.1.‐Algoritmo Inicio {calcular el monto a pagar por el consumo de agua} {Ingresamos consumo en metros 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
54
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
‐bool 35.1‐Codificacion(C#) static void Main(string[] { Console.Write("El Tamaño Console.Write("El Tamaño Console.Write("El Tamaño Console.Write("El Tamaño Console.Write("El Tamaño Console.Write("El Tamaño Console.Write("El Tamaño Console.Read(); }
args) de de de de de de de
un un un un un un un
int es :{0} bytes\n", sizeof(int)); short es :{0} bytes\n", sizeof(short)); long es :{0} bytes\n", sizeof(long)); char es :{0} bytes\n", sizeof(char)); float es :{0} bytes\n", sizeof(float)); double es :{0} bytes\n", sizeof(double)); bool es :{0} bytes\n", sizeof(bool));
PROBLEMAS PROPUESTOS 1.‐Escribir un algoritmo y su 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
55
Carlos Rodríguez Torvisco – Algorítmica
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
56
Carlos Rodríguez Torvisco – Algorítmica
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.
57
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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.
Estructuras de control 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
58
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
PROBLEMAS RESUELTOS 1.‐Escribir un programa y su codificación para determinar el mayor de tres números.
Numero 1 20 48
Datos Numero 2 210 412
Numero 3 2220 818
Resultado Mayor 2220 818
1.1.‐Algoritmo Inicio {Calcular el mayor de tres 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.
59
Lenguaje de Programación
Datos Numero 1 45 23
Numero 2 45 12
Carlos Rodríguez Torvisco – Algorítmica
Resultado Condición Resultado Numero1=Numero2 45*45=2025 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.
60
Lenguaje de Programación
Calificación 1 8 14
Datos Calificación 2 7 16
Carlos Rodríguez Torvisco – Algorítmica
Calificación 3 10 10
Resultado Mensaje reprueba aprueba
3.1.‐Algoritmo Inicio {Calculo del promedio de un alumno para saber si aprueba o desaprueba} {Ingresamos las tres calificaciones} Leer calif1,calif2,calif3 {Calculamos el promedio de las tres calificaciones} Promedio=( calif1+calif2+calif3)/3 Si (promedio>=10) entonces Escribir “Alumno Aprobado” Sino Escribir “Alumno Reprobado” Finsi Fin 3.2.‐Codificacion(C#) static void Main(string[] args) { float calif1, calif2, calf3, promedio; Console.Write("ingrese su primera calificacion : "); calif1 = float.Parse(Console.ReadLine()); Console.Write("ingrese su segunda calificacion : "); calif2 = float.Parse(Console.ReadLine()); Console.Write("ingrese su tercera calificacion : "); calf3 = float.Parse(Console.ReadLine()); promedio = (calif1 + calif2 + calf3) / 3; if (promedio >= 10) { Console.WriteLine("Alumno Aprobado"); } else { Console.WriteLine("Alumno Reprobado"); } Console.Read(); }
4.‐En un 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 Total a Pagar 20000 16000 2412 1929.6
61
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 Horas Trabajadas 55 46 20 15
Resultado Salario Semanal 940 760 320 240
62
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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 45 4
12 4
Resultado 12,45 4,4
63
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
6.1.‐Algoritmo Inicio {Ordenar dos números en forma ascendente} {Ingresamos los numeros} Leer numero1,numero2 Si (numero1numero3) entonces {Intercambiar numero1 y numero3} temporal=numero1 numero1=numero3 numero3=temporal Finsi Si (numero2>numero3) entonces
Numero 3 10 10
Resultado Mostrar 7,8,10 10,14,16
Lenguaje de Programación
64
Carlos Rodríguez Torvisco – Algorítmica
{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.
65
Lenguaje de Programación
Datos(Numero de Sonidos) 30 48
Carlos Rodríguez Torvisco – Algorítmica
Resultado(Temperatura ºF) 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: P 3 + Q 2 − 2P 2 ≤ 680 En caso afirmativo debe imprimir los valores P y Q. Datos P 50 3
Q 20 9
9.1.‐Algoritmo Inicio {Calcular los Valores para P y Q} {Ingresamos el valor para P y Q}
Exp 120400 25% Construya un programa tal, que dado el monto de la compra
Lenguaje de Programación
74
Carlos Rodríguez Torvisco – Algorítmica
de un cliente, determine lo que el mismo debe pagar. Datos Compra 7500 900 1700 400
Auxiliar Condicion Descuento 7000= 6 y promedio >= 8.8 Semestre > 6 y promedio > 8.5 Semestre > 5 y promedio > 8.5 Semestre > 5 y promedio > 8.5
31.‐Escriba un programa que permita realizar la 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 pulgada2 equivale a 6.452 centímetros2 1 pie2 equivale a 0.009290 metros2 1 yarda2 equivale a 0.8361 metros2 1 acre equivale a 0.4047 hectáreas 1 milla equivale a 2.59 kilómetros2 Medidadas de volúmen: 1 pie3 equivale a 0.028320 metros3 1 yarda3 equivale a 0.7646 metros3 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
114
Carlos Rodríguez Torvisco – Algorítmica
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+ 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
115
Carlos Rodríguez Torvisco – Algorítmica
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 Instrucciones de actualización Mientras (condición);
instrucción de proceso actualización de las variables del test de salida fin‐mientras
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); }
116
Lenguaje de Programación
Carlos Rodríguez Torvisco – Algorítmica
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
View more...
Comments