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
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 );
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 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
2.1
Una e otra s entra En laEs
Concept
estructura se siguiendo un ada y una salFigura se m
Estru
to
ecuencial es na secuencia ida. muestra el p Pseu Inic Ac Ac Ac Ac Finuctu
aquella en l a única, sin pseudocódigo docódigo cio cción 1 cción 2 cción 3 . . . ccion nura Se
a que las ins cambios de o y el diagram
Secue
strucciones e e ruta. La es ma de flujo dencia
están una a c structura sec de una estrual
continuación cuencial tien uctura secue n de la e una ncial.PROBLEMAS RESUELTOS
1.‐Ecribir un algoritmo que determine la suma de dos números enteros.
Datos Resultado
Numero 1 Numero 2 Suma
5 8 13 9 5 14
1.1.‐Algoritmo
Inicio {calcular la suma de dos números} {Ingresamos los números}
Leer a Leer b
{Calculamos la suma en una variable suma} Suma=a+b
{Mostramos el resultado} Escribir suma
Fin
1.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaramos nuestras variables int numero1,numero2, suma;
//introducimos el primer nùmero
Console.Write("ingrese el primer nùmero : "); //leemos nuestro nùmero
numero1 = int.Parse(Console.ReadLine()); //introducimos el segundo nùmero
Console.Write("ingrese el segundo nùmero : "); //leemos nuestro segundo nùmero
numero2 = int.Parse(Console.ReadLine()); //sumamos los datos que tenemos
suma = numero1 + numero2; //mostramos los resultados
Console.Write("la suma es : {0}", suma);
Console.ReadLine();//pausa la pantalla
}
2.‐escribir un algoritmo y su codificacion para calcular el area de trinagulo.
Datos Resultado base altura Area
4 5 10
2.1.‐Algoritmo
Inicio {calcular el area de un triangulo} {Ingresamos base y altura}
Leer bas Leer altura
{Calculamos el area de un triangulo} Area = (bas * altura) / 2 {Mostramos el resultado} Escribir Area
Fin
2.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaramos nuestras variables int bas, altura;
double area;
//ingresamos los datos
Console.Write("Ingresa base : "); bas = int.Parse(Console.ReadLine()); Console.Write("Ingresa altura : "); altura = int.Parse(Console.ReadLine()); //hacemos la operacion
area = (bas * altura) / 2;
//mostramos los resultados por pantalla
Console.Write("el area del triangulo es : {0}", area); Console.ReadLine();
}
3.‐escribir un algoritmo y su codificacion que convierta una distancia medida en metros a pies. Datos Resultado Distancia en metros 4 5 9 20 Distancia en pies 13.09 16.362 29.45 65.45 3.1.‐Algoritmo
Inicio {convertir una distancia medida en metros a pies} {Ingresamos distancia en metros}
Leer metros
{Convertir distancia a pies}
pies = metros / (12 / 39.27) {Mostramos el resultado}
Escribir pies Fin
3.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaramos nuestras variables float metros, pies;
//ingresamos los datos para almacenar en nuestras variables "metros" Console.Write("Ingresa Metros : ");
metros = float.Parse(Console.ReadLine());
//hacemos la operacion
pies = metros / (12 / 39.27f); //1 pie = 0.3048 metros
//1 pulgada = 25.4 mm
//mostramos los resultados por pantalla
Console.Write("el equivalente en pies es : {0}", pies); Console.ReadLine();
}
4.‐ escribir un algoritmo y su codificacion para calcular el total a pagar de un consumo ingresado por el usuario , finalmente mostrar el IGV y el total a pagar por pantalla (incluye IGV=0.19).
Datos Resultado
consumo IGV TOTAL A PAGAR
524.25 99,61 623.86 45.00 8.55 53.55
4.1.‐Algoritmo
Inicio {calcular el igv y el monto total a pagar de un consumo ingresado por el usuario} {Ingresamos consumo}
Leer consumo {Calculamos el igv}
igv=consumo*0.19
{calculamos el totap a pagar} tap=consumo+igv {Mostramos el resultado} Escribir igv Escribir tap Fin 4.2.‐Codificacion(C#)
static void Main(string[] args) {
//definiciones de variables
float consumo, igv, tap; //ingresando consumo
Console.Write("Ingrese el monto de su consumo: "); consumo = float.Parse(Console.ReadLine());
igv = consumo * 0.19f;
//calculamos el total a pagar tap = consumo + igv;
Console.WriteLine("El IGV es : {0}",igv);
Console.Write("Total a pagar:{0}",tap); Console.Read();
}
5.‐ escribir un algoritmo y su codificacion para calcular la edad de una persona
Datos Resultado Fecha de nacimiento Fecha actual Edad
1991 2008 17 1985 2008 23
5.1.‐Algoritmo
Inicio {calcular la edad de una persona} {Ingresamos fecha de nacimiento} Leer fnac
{Ingresamos fecha actual} Leer fac {calculamos la edad} Edad=fac‐fnac {Mostramos el resultado} Escribir Edad Fin 5.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaramos nuestras variables int edad, fnac, fac;
Console.Write("ingrese el año que nacio :"); fnac = int.Parse(Console.ReadLine());
Console.Write("ingrese el año actual :"); fac = int.Parse(Console.ReadLine()); //calculamos la edad
edad = fac - fnac;
//mostramos la edad de la persona
Console.Write("su edad es : {0}", edad); Console.Read();
}
6.‐ escribir un algoritmo y su codificacion para que un ingeniero de sistemas que desea invertir su capital en un banco y desea saber cuánto dinero ganará despues en un mes si el banco paga a razón de 2% mensual.
Datos Resultado Capital 800 400 500 1050 Ganancia 16 8 10 21
6.1.‐Algoritmo
Inicio {calcular la ganancia de un mes de un ingeniero} {Ingresamos capital} Leer capital {Calculamos el capital} ganancia = capital * 0.02 {Mostramos el resultado} Escribir ganancia Fin 6.2.‐Codificacion(C#)
static void Main(string[] args) {
double cap, gan;
Console.Write("ingrese su capital : ");
cap = double.Parse(Console.ReadLine());
gan = cap * 0.02;
Console.Write("su ganacia es :{0} ", gan); Console.Read();
}
7.‐ escribir un algoritmo y su codificacion para que un profesor determine el porcentaje de hombres y el porcentaje de mujeres hay en un grupo de estudiantes.
Datos Resultado Numero de hombres Numero de mujeres Porcentaje de
hombres Porcentaje de mujeres 20 20 50% 50% 15 29 34% 66% 7.1.‐Algoritmo
Inicio {calcular el porcentaje de varones y el porcentaje de mujeres de un grupo de Estudiantes}
{Ingresamos número de hombres} Leer nh
{Ingresamos número de mujeres} Leer nm
{Calculamos el total de estudiantes} ta=nh+nm
{calculamos el porcentaje de hombres} ph=nh*100 div ta
{calculamos el porcentaje de mujeres} pm=nm*100 div ta
{Mostramos el resultado} Escribir ph
Escribir pm Fin
7.2.‐Codificacion(C#)
static void Main(string[] args) {
int nh, nm; int ph, ta, pm;
//ingresamos el numero de hombres
Console.Write("ingrese numero de hombres : "); nh = int.Parse(Console.ReadLine());
//ingresamos el numero de mujeres
Console.Write("ingrese numero de mujeres : "); nm = int.Parse(Console.ReadLine());
//calculamos el total de alumnos ta = nh + nm;
//calculamos el porcentaje de hombres ph = nh *100 / ta;
//calculamos el porcentaje de mujeres pm = nm * 100/ta;
Console.WriteLine("el porcentaje de hombres es :{0}%",ph); Console.WriteLine("el porcentaje de mujeres es :{0}%",pm); Console.Read();
}
8.‐ Construya un programa tal, que dado el costo de un articulo vendido y la cantidad de dinero entregado por el cliente, calcule e imprima el cambio que debe entregársele al mismo.
Datos Resultado (cambio a entregar)
Precio del Producto Pago que Realiza el Cliente
50 70 20 20 25 5
8.1.‐Algoritmo Inicio {Cambio}
{Ingresamos Precio del Producto} Leer prepro
{Ingresamos Pago que Realiza el Cliente} Leer pago
{Calculamos la Devolucion o el Vuelto} Devo=pago ‐ prepro;
Escribir Devo Fin
8.2.‐Codificacion(C#)
static void Main(string[] args) {
float prepro, pago, devo = 0;
//Ingresamos Precio del Producto
prepro = float.Parse(Console.ReadLine()); //Ingresamos Pago que Realiza el cliente
Console.Write("Ingrese el Pago que Realiza el Cliente: "); pago = float.Parse(Console.ReadLine());
//Calculamos el Vuelto o Devolucion devo = pago - prepro;
//Mostramos el Cambio
Console.WriteLine("El cambio a entregar es :s/.{0}", devo); Console.ReadLine();
}
9‐ Hacer un programa que al dar la hora hh, mm minuto , ss segundo, escriba la hora correspondiente al segundo anterior.
Datos Resultado(segundo anterior)
Hora Minuto segundo Hora Minuto Segundo
3 20 25 3 20 24
5 2 0 5 1 59
9.1.‐Algoritmo
Inicio {la hora al segundo anterior} Leer hh,mm,ss
TotalSegundos=(hh*3600+mm*60+ss)‐1 hh = (TotalSegundos div 3600) mod 24; mm = (TotalSegundos mod 3600) div 60; ss = (TotalSegundos % 3600) div 60;
{Mostramos la Hora Correspondiente al Segundo Anterior} Escribir hh,mm,ss
Fin
9.2.‐Codificacion(C#)
static void Main(string[] args) {
int hh, mm, ss;
Console.Write("Ingresa Hora:"); hh = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:"); mm = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); ss = int.Parse(Console.ReadLine());
int TotalSegundos = (hh * 3600 + mm * 60 + ss) -1;
hh = (TotalSegundos / 3600) % 24; mm = (TotalSegundos % 3600) / 60; ss = (TotalSegundos % 3600) % 60;
//mostramos la hora al segundo anterior
Console.WriteLine("{0}:{1}:{2}", hh, mm, ss); Console.Read();
}
10.‐ Hacer un programa que al dar la hora hh, mm minuto , ss segundo, escriba la hora correspondiente despues de 2 segundos
Datos Resultado(después de 2 segundos) Hora Minuto segundo Hora Minuto Segundo
3 20 25 3 20 27
5 2 59 5 3 1
10.1.‐Algoritmo
Inicio {la hora después de 2 segundos } Leer hh,mm,ss
TotalSegundos=(hh*3600+mm*60+ss)+2 hh = (TotalSegundos div 3600) mod 24; mm = (TotalSegundos mod 3600) div 60; ss = (TotalSegundos % 3600) div 60;
{Mostramos la Hora Correspondiente despues de 2 segundos} Escribir hh,mm,ss
Fin
10.2.‐Codificacion(C#)
static void Main(string[] args) {
int hh, mm, ss;
Console.Write("Ingresa Hora:"); hh = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:"); mm = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); ss = int.Parse(Console.ReadLine());
int TotalSegundos = (hh * 3600 + mm * 60 + ss) + 2;
hh = (TotalSegundos / 3600) % 24; mm = (TotalSegundos % 3600) / 60; ss = (TotalSegundos % 3600) % 60;
//mostramos la hora despues de 2 segundos Console.WriteLine("{0}:{1}:{2}", hh, mm, ss); Console.Read();
}
11‐ Diseñar un algoritmo que me permita ingresar un valor inicial y luego un valor final, para luego Calcular el valor central de los números.
Datos Resultado Valor Inicial Valor Final Valor Central
2 4 3 10 20 15
11.1.‐Algoritmo
Inicio {Calcular el Valor Medio} Leer ValorInicial,ValorFinal {Calculo del Valor Central}
ValorCentral=( ValorInicial+ValorFinal)/ 2 Escribir ValorCentral
Fin
11.2.‐Codificacion(C#)
static void Main(string[] args) {
int A1, A2; int C;
Console.Write("Ingresa Valor Inicial:"); A1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Valor Final:"); A2 = int.Parse(Console.ReadLine()); C = (A1 + A2) / 2;
Console.WriteLine("Valor Central: " + C); Console.ReadLine();
}
12.‐Escriba un programa tal, que dados el nombre de un dinosaurio, su peso y su longitud, expresados estos dos últimos en toneladas y pies, respectivamente, escriba el nombre del dinosaurio, su peso expresado en kilogramos y su longitud expresada en metros.
Datos Resultado Nombre Peso(Tonelada s) Longitud(Pies ) Nombre Peso(Kilos ) Longitud(Metro s) Rinoceronte 1 25 Rinoceronte 1000 7,6175 Choclosauri o 2 59 Choclosauri o 2000 17,97 1 Tonelada= 1000 kilos 12.1.‐Algoritmo Inicio {Conversion}
{Ingresamos El Nombre del Dinosaurio} Leer Nomb
{Ingresamos El Peso en Toneladas} Leer pes
{Ingresamos La Longitud en Pies} Leer lon
peskil = peso * 1000; lonmet = lon * 0.3047f; Escribir Nomb, peskil, lonmet Fin
12.2.‐Codificacion(C#)
static void Main(string[] args) {
string Nomb;
Console.Write("Ingrese el Nombre del Dinosaurio:"); Nomb = Console.ReadLine();
Console.Write("Ingrese el Peso en Toneladas : ");
peso = float.Parse(Console.ReadLine());
Console.Write("Ingrese la Longitud en Pies : "); lon = float.Parse(Console.ReadLine());
peskil = peso * 1000; lonmet = lon * 0.3047f;
Console.WriteLine("Nombre del Dinosaurio: " + Nomb); Console.WriteLine("El Peso en Kilos es: " + peskil); Console.WriteLine("La Longitud en Metros es: " + lonmet); Console.ReadLine();
}
13.‐Una persona compró una estancia en Abancay. La extensión de la estancia esta especificada en acres. Construya un programa, tal que dado como dato la extensión del campo en "acres", calcule e imprima la extensión del mismo en hectáreas
Datos Resultado Extencion en Acres 200 100 500 450 Extencion en Hectareas 80,94 40,47 202,35 182,115 13.1.‐Algoritmo
Inicio {calcular hectareas}
{Ingresamos extencion en Acres} Leer exten
Escribir extcam * 4047 / 10000 Fin
13.2.‐Codificacion(C#)
static void Main(string[] args) {
float extcam, extha;
Console.Write("Ingresar la Extensión del Campo en Acres: ");
extcam = float.Parse(Console.ReadLine());
extha = extcam * 4047 / 10000;
Console.WriteLine("La Extensión del Campo en Hectáreas es: " + extha);
Console.ReadLine(); }
14.‐Construya un programa que calcule e imprima el número de segundos que hay en un determinado número de días.
Datos Resultado Cantidad de Dias 1 30 24 Total de Segundos 86400 2592000 2073600
15 1296000
14.1.‐Algoritmo
Inicio {calcular total de segundos} {Ingresamos el numero de dias} Leer dias
Escribir dias*24*60*60 Fin
14.2.‐Codificacion(C#)
static void Main(string[] args) {
int seg, dias;
Console.Write("Ingresar el Número de Días: "); dias = int.Parse(Console.ReadLine());
seg = dias * 24 * 60 * 60;
Console.WriteLine(" ****En {0} Días hay {1} Segundos****", dias, seg);
Console.ReadLine(); }
15.‐Contruya un programa que resuelva el problema que tienen en una gasolineria. Los surtidores de la misma registran lo que "surten" en galones, pero el precio de la gasolina esta fijado en litros. El Programa debe calcular e imprimir lo que hay que cobrarle al cliente. Datos Resultado Numero de Galones 4 3 2 15 Total a Pagar 15,5182 11,63 7,75 58,19 15.1.‐Algoritmo
Inicio {calcular el total a pagar} {Ingresamos el numero de galones} Leer cons
Escribir cons * 3.785f * 1.025; Fin
15.2.‐Codificacion(C#)
static void Main(string[] args) {
float cons, total = 0;
Console.Write("Ingrese el Número de Galones Surtidos: ");
cons = float.Parse(Console.ReadLine());
total = cons * 3.785f * 1.025f;
Console.ReadLine(); }
16.‐En las olimpiadas de invierno, el tiempo que realizan los participantes en la competencia de velocidad en pista, se mide en minutos, segundos y centésimas. La distancia que recorren, por otra parte, se expresa en metros. Construya un programa que calcule la velocidad de los participantes en kilómetros por hora de las diferentes competencias.
DAT0S RESULTADO Minutos Segundos Centésimas de
Segundo Distancia en Metros Distancia Recorrida Velocidad(KM/H)
59 60 0 1000 1000 1
45 12 25 5000 5000 6,63
16.1.‐Algoritmo
Inicio {calcular velocidad} {Ingresamos el tiempo} Leer min,seg,cen,dis
tiemseg = min * 60 + seg + (cen / 100) veloms = dis / tiemseg
velokh = (veloms * 3600) / 1000 Escribir dis,velokh
Fin
16.2.‐Codificacion(C#)
static void Main(string[] args) {
int min, seg, cen;
float veloms, velokh, tiemseg = 0, dis;
Console.WriteLine("Ingresar el Tiempo Empleado en la Competencia"); Console.Write("Minutos : ");
min = int.Parse(Console.ReadLine()); Console.Write("Segundos : ");
seg = int.Parse(Console.ReadLine());
Console.Write("Centésimas de Segundo : "); cen = int.Parse(Console.ReadLine());
Console.Write("Ingresar la Distancia Recorrida en Metros: "); dis = float.Parse(Console.ReadLine());
tiemseg = min * 60 + seg + (cen / 100); veloms = dis / tiemseg;
velokh = (veloms * 3600) / 1000;
Console.WriteLine("La Distancia Recorrida es: {0} metros", dis); Console.WriteLine("La Velocidad es de: {0} (Km/h)", velokh); Console.ReadLine();
}
17‐ escribir un algoritmo y su codificacion para invertir un numero de tres digitos.
Datos Resultado
154 541 987 325 451 145 789 523 17.1.‐Algoritmo
Inicio {invertir un número de tres dígitos} {Ingresamos número de tres dígitos} Leer número
{Sepáranos el número en unidad, decena y centena} Unidad=numero mod 10
Centena=numero div 100
Decena= (numero mod 100) div 10 {Invertir número} numero_invertido=Unidad*100+Decena*10+Centena {Mostramos el resultado} Escribir numero_invertido Fin 17.2.‐Codificacion(C#)
static void Main(string[] args) {
int numero, numero_invertido, Decenas, Unidades, Centenas;
//leer numero de tres digitos
Console.Write("ingres numero de tres cifras : ");
numero = int.Parse(Console.ReadLine());
//separar el numero en undades , decenas y centenas Unidades = numero % 10;
Decenas = (numero % 100) / 10; Centenas = numero / 100;
//invertir numero
numero_invertido = Unidades * 100 + Decenas * 10 + Centenas; //Escribir numero invertido
Console.WriteLine("numero original : {0}", numero);
Console.WriteLine("Numero invertido : {0}", numero_invertido); Console.ReadLine();
}
18.‐ escribir un algoritmo y su codificacion para sumar los digitos de un numero de 2 cifras.
Datos Resultado Numero 15 41 97 32 Suma de cifras 6 5 16 5
18.1.‐Algoritmo
Inicio {sumar los dígitos de un número de 2 cifras} {Ingresamos número de dos dígitos}
Leer número
{Sepáranos el número en unidad y decena} Unidad=numero mod 10
Decena= numero div 10
{Calculamos la suma de los dígitos} suma = Unidad*100+Decena*10+Centena {Mostramos el resultado}
Escribir suma Fin
18.2.‐Codificacion(C#)
static void Main(string[] args) {
int numero, suma, Decenas, Unidades; //ingresar numero de dos digitos
Console.Write("ingres numero de dos cifras : ");
numero = int.Parse(Console.ReadLine());
//separar el numero en undades , decenas Unidades = numero % 10;
Decenas = numero / 10; //sumar digitos
suma = Unidades+Decenas; //Escribir suma
Console.WriteLine("La Suma de sus Digitos es:{0}", suma); Console.ReadLine();
}
19.‐ escribir un algoritmo y su codificacion para calcular el ultimo digito de un numero entero. Datos Resultado Numero 154 541 987 325 Ultima Cifra 4 1 7 5 19.1.‐Algoritmo
Inicio {calcular el último digito de un número cualquiera} {Ingresamos un número}
Leer número
{Calculamos la última cifra} Ultima_cifra=numero mod 10 Escribir Ultima_cifra
Fin
19.2.‐Codificacion(C#)
static void Main(string[] args) {
int numero,Ultima_cifra; //ingresar un numero
Console.Write("ingres numero de dos cifras : ");
numero = int.Parse(Console.ReadLine());
//calculamos el ultimo digito de un numero cualquiera Ultima_cifra = numero % 10;
//mostramos el ultimo digito
Console.WriteLine("El Ultimo digito es :{0}",Ultima_cifra); Console.ReadLine();
}
20.‐ escribir un algoritmo y su codificacion para calcular el promedio de tres notas ingresadas por teclado.
Datos Resultado
Nota 1 Nota 2 Nota 3 Promedio
20 20 20 20 15 12 18 15
20.1.‐Algoritmo
Inicio {calcular el promedio de tres notas dadas} {Ingresamos la primera nota}
Leer nota1
{Ingresamos la segunda nota} Leer nota2
{Ingresamos la tercera nota} Leer nota3 {Calculamos el promedio} promedio=(nota1+nota2+nota3)/3 {Mostramos el resultado} Escribir promedio Fin 20.2.‐Codificacion(C#)
static void Main(string[] args) {//declaramos nuestras variables int nota1, nota2, nota3, promedio; //ingresamos las notas
Console.Write("Ingrese Nota 1:"); nota1 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Nota 2:"); nota2 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Nota 3:"); nota3 = int.Parse(Console.ReadLine()); //calculamos el promedio
promedio = (nota1 + nota2 + nota3) / 3; //mostramos el resultado
Console.Write("El Promedio es :{0}",promedio); Console.Read();
}
21.‐ escribir un algoritmo y su codificacion para un vendedor que recibe un sueldo base más un 10% extra por comisión de sus ventas,el vendedor desea saber cuanto dinero obtendrá por conceptos de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.
Datos Resultado
Sueldo base Venta 1 Venta 2 Venta 3 Comisión Total a pagar
450 500 645 800 194.5 644.5
800 1005 2000 1540 454.5 1254.5
21.1.‐Algoritmo
Inicio {calcular la comisión y el total a pagar de un vendedor} {Ingresamos el sueldo base}
Leer sb
{Ingresamos la primera venta} Leer v1
{Ingresamos la segunda venta} Leer v2
{Ingresamos la tercera venta} Leer v3
{Calculamos el total de venta} total_venta=v1+v2+v3 {Calculamos la comisión} Comisión=total_venta*0.10 {Calculamos el total a pagar} tpag=sb+comision {Mostramos el resultado} Escribir comisión Escribir tpag Fin 21.2.‐Codificacion(C#)
static void Main(string[] args) {
double sb, v1, v2, v3, comision, tpag, total_venta; //ingresamos el sueldo base
Console.Write("ingrese su sueldo base : "); sb = double.Parse(Console.ReadLine()); //ingresamos las tres ventas
Console.Write("ingrese venta 1 : "); v1 = double.Parse(Console.ReadLine()); Console.Write("ingrese venta 2 : ");
v2 = double.Parse(Console.ReadLine()); Console.Write("ingrese venta 3 : "); v3 = double.Parse(Console.ReadLine()); //calculamos el total de venta
total_venta = v1 + v2 + v3; //calculamos la comision
comision = total_venta * 0.10; //calculamos el total a pagar tpag = sb + comision;
//mostramos los resultados
Console.WriteLine("su total a pagar es : {0} ", tpag); Console.WriteLine("su comision es : {0} ", comision);
Console.ReadLine(); }
22.‐ escribir un algoritmo y su codificacion para una tienda que ofrece un descuento de 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra. Datos Resultado Total de compra 154 541 987 325 Total a pagar 130.9 459.85 838.95 276.25 22.1.‐Algoritmo
Inicio {calcular el total a pagar} {Ingresamos el total de compra} Leer tc
{Calculamos el descuento} d=tc*0.15
{Calculamos el total a pagar} tp=tc‐d
{Mostramos el resultado} Escribir tp
Fin
22.2.‐Codificacion(C#)
static void Main(string[] args) {
float tc,d,tp;
//ingresamos el total de compra
Console.Write("ingrese total de la compra : "); tc = float.Parse(Console.ReadLine());
//calculamos el descuento d = tc * 0.15f;
//calculamos el total a pgar tp = tc - d;
//mostramos el total a pgar
Console.ReadLine(); }
23.‐ escribir un algoritmo y su codificacion para un alumno que desea saber cual será su calificacion final en la materia de lenguaje de programacion.Dicha calificacion se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales 30% de la calificacion del examen final
15% de la calificacion de un trabajo final
Datos Resultado Calificación 1 Calificación 2 Calificación 3
Examen final Trabajo final Calificación final
15 12 11 15 17 14.02 11 12 14 10 08 10.98
23.1.‐Algoritmo
Inicio {calcular la calificación final} {Ingresamos las tres calificaciones} Leer c1, c2, c3
{Ingresamos el examen final y el trabajo final} Leer ef, tf
{Calculamos el promedio de las tres calificaciones} prom= (c1, c2,c3)/3
ppar=prom*0.55 ef=ef*0.30 tf=tf*0.15
{Mostramos la calificación final} Escribir cf
Fin
23.2.‐Codificacion(C#)
static void Main(string[] args) {
float c1, c2, c3, ef, tf, prom, ppar, pef, ptf, cf; //ingresamos las tres primeras calificaciones
Console.Write("ingrese su primera calificacion : "); c1 = float.Parse(Console.ReadLine());
Console.Write("ingrese su segunda calificacion : "); c2 = float.Parse(Console.ReadLine());
Console.Write("ingrese su tercera calificacion : "); c3 = float.Parse(Console.ReadLine());
//ingresamos la nota del examen final
Console.Write("ingrese la nota de su examen final : "); ef = float.Parse(Console.ReadLine());
//ingresamos la calificacion de su trabajo final
tf = float.Parse(Console.ReadLine());
//calculamos el promedio de las tres calificaciones prom = (c1 + c2 + c3) / 3;
//calculamos el 55% de las tres calificaciones ppar = prom * 0.55f;
//calculamos el 30% de examen final pef = ef * 0.30f;
//calculamos el 15% del trabajo final ptf = tf * 0.15f;
//calcuamos la calificacion final del alumno cf = ppar + pef + ptf;
Console.Write("su calificacion final es : {0}", cf); Console.Read();
}
24.‐ escribir un algoritmo y su codificacion para sacar la raiz cuadrada de un numero cualquiera. Datos Resultado numero 4 25 81 49 Raíz cuadrada 2 5 9 7 24.1.‐Algoritmo
Inicio {calcular la raíz cuadrada} {Ingresamos un número cualquiera} Leer a
{Calculamos la raíz cuadra de un número} b=√
{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.
Datos Resultado
Hora Minuto segundo Hora
Correcta Minuto Correcto Segundo Correcto 3 118 195 5 1 15 5 98 154 6 40 34 25.1.‐Algoritmo
Inicio {calcular la hora correcta}
{Ingresamos horas, minutos, segundos} Leer hora, minuto, segundo
{Convertimos a segundos}
totalsegundos=hora*3600+minuto*60+segundo
{Distribuimos el totalsegundos en hora, minuto, segundos correctamente} hora=totalsegundos div 3600
hora=hora mod 24
minuto = (totalsegundos mod 3600) div 60 segudo = (totalsegundos mod 3600) mod 60 {Mostramos la hora correctamente}
Escribir hora, minuto, segundo Fin
25.2.‐Codificacion(C#)
static void Main(string[] args) {
int hora, minuto, segudo, totalsegundos; //ingresamos hora,minuto,segundos
Console.Write("Ingresa Hora:");
hora = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:");
minuto = int.Parse(Console.ReadLine());
Console.Write("Ingresa Segundo:"); segudo= int.Parse(Console.ReadLine()); //convertimos todo a segundo
totalsegundos = hora * 3600 + minuto * 60 + segudo;
//distribuimos el totalsegundos en horas,segundos,minutos correctamente hora = totalsegundos / 3600;
hora = hora % 24;
minuto = (totalsegundos % 3600) / 60; segudo = (totalsegundos % 3600) % 60; //mostramos la hora correctamente
Console.Write("{0}:{1}:{2}",hora,minuto,segudo); Console.Read();
}
26.‐ escribir un algoritmo y su codificacion que calcule el número mínimo de billetes de 200,100,50,20,10 y 5 nuevos soles y monedas de 1 Nuevo Sol:50,10 y 1 centimo que son necesarias para cambiar un cheque bancario.(Nota:El cheque bancario contiene céntimos).
Supongamos que el Monto Ingresado sea 4587.75 El cambio seria lo siguiente:
s/.200 s/.100 s/.50 s/.20 s/.10 5 soles 1 sol 0.50 0.10 0.01 22 1 1 1 1 1 2 1 2 5
Ejemplo codificado
26.1.‐Algoritmo
Inicio {cambio de cheque bancario} {Ingresamos monto a cambiar} Leer monto
monto =monto*100
{Calcular número mínimo de billetes de cada denominación} billete200= (int) monto div (200*100)
Resto= (int) monto mod (200*100) billete100 = resto div (100 * 100); resto = resto mod (100 * 100); billete50 = resto div (50 * 100); resto = resto mod (50 * 100); billete20 = resto div (20 * 100); resto = resto mod (20 * 100); billete10 = resto div (10 * 100); resto = resto mod (10 * 100); moneda5 = resto div (5 * 100); resto = resto mod (5 * 100); moneda1 = resto div (1 * 100); resto = resto mod (1 * 100); monedacincuenta = resto div 50; resto = resto mod 50;
monedadiez = resto div 10; resto = resto mod 10;
monedauncentimo = resto div 1; {Mostramos el cambio}
Escribir billete200 Escribir billete100 Escribir billete50 Escribir billete20
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
un algoritmo y su codificacion para determinar el tiempo promedio por vuelta de un participante. Datos Resultado 1 vuelta Hora,minuto,seg‐ undo 2 vuelta Hora,minuto,seg‐ undo 3 vuelta Hora,minuto,seg‐ undo Hora promedio Minuto prom. Segundo promedio 8:31:25 11:34:11 14:12:48 11 26 8 3:3:5 5:2:56 8:43:11 5 36 24 Ejemplo codificado 27.1.‐Algoritmo
Inicio {calcular el tiempo promedio}
{Ingresamos horas, minutos, segundos de la primera vuelta} Leer hh, mm, ss
{Ingresamos horas, minutos, segundos de la segunda vuelta} Leer hh2, mm2, ss2
{Ingresamos horas, minutos, segundos de la tercera vuelta} Leer hh2, mm2, ss2
{Convertimos a segundos} Vuelta1=hh*3600+mm*60+ss Vuelta2= hh2*3600+mm2*60+ss2 Vuelta3= hh3*3600+mm3*60+ss3
{Sumamos las tres vueltas y dividimos entre 3} Totalsegundos= (Vuelta1+Vuelta2+Vuelta3)/3
{Distribuimos el totalsegundos para que nos de el tiempo promedio} Horapromedio= Totalsegundos div 3600
Horapromedio=Horapromedio mod 24
Minutopromedio= (Totalsegundos mod 3600) div 60 Segundopromedio= (Totalsegundos mod 3600) mod 3600 {Mostramos la hora correctamente}
Escribir Horapromedio, Minutopromedio, Segundopromedio Fin
static void Main(string[] args) {
int hh, mm, ss, totalsegundos, hh2, mm2, ss2, hh3, mm3, ss3;
int vuelta1, vuelta2, vuelta3;
int horapromedio, minutopromedio, segundopromedio;
//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL PRIMERA VUELTA Console.ForegroundColor = ConsoleColor.Blue;//color de letra Console.Write("HH:"); hh = int.Parse(Console.ReadLine()); Console.Write("MM:"); mm = int.Parse(Console.ReadLine()); Console.Write("SS:"); ss = int.Parse(Console.ReadLine());
//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL SEGUNDA VUELTA
Console.ForegroundColor = ConsoleColor.Red;//color de letra de la segunda vuelta
Console.WriteLine("Segunda Vuelta"); Console.Write("HH:"); hh2 = int.Parse(Console.ReadLine()); Console.Write("MM:"); mm2 = int.Parse(Console.ReadLine()); Console.Write("SS:"); ss2 = int.Parse(Console.ReadLine());
//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL TERCERA VUELTA
Console.ForegroundColor = ConsoleColor.Cyan;//color de letra de la tercera vuelta
Console.WriteLine("Tercera Vuelta"); Console.Write("HH:"); hh3 = int.Parse(Console.ReadLine()); Console.Write("MM:"); mm3 = int.Parse(Console.ReadLine()); Console.Write("SS:"); ss3 = int.Parse(Console.ReadLine()); //CONVERTIR A SEGUNDO CADA VUELTA vuelta1 = hh * 3600 + mm * 60 + ss; vuelta2 = hh2 * 3600 + mm2 * 60 + ss2; vuelta3 = hh3 * 3600 + mm3 * 60 + ss3; //SUMAR TODAS LAS VUELTAS
totalsegundos =(vuelta1+vuelta2+vuelta3)/3;
//Distribuimos el totalsegundos para que nos de el tiempo promedio horapromedio = totalsegundos / 3600;
horapromedio = horapromedio % 24;
minutopromedio = (totalsegundos % 3600) / 60; segundopromedio = (totalsegundos % 3600) % 60;
Console.Write("el promedio es :{0}:{1}:{2}", horapromedio, minutopromedio, segundopromedio);
Console.Read(); }
28.‐En el curso de lenguaje de programación I se tomaron dos exámenes parciales y un examen práctica. El promedio final se calcula considerando que los exámenes parciales tienes peso dos y la practica peso uno. Escribir un algoritmo y su codificación que calcule el Promedio final.
Datos Resultado Examen parcial 1 Examen parcial 2 Examen practica Promedio final
20 20 20 20
28.1.‐Algoritmo
Inicio {calcular el promedio}
{Ingresamos los dos exámenes parciales y el examen practica} Leer examenparcial1, examenparcial2, examenpractica
Promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica)/5 {Mostramos el promedio}
Escribir promedio Fin
28.2.‐Codificacion(C#)
static void Main(string[] args) {
float examenparcial1, examenparcial2, examenpractica, promediofinal; Console.Write("Ingresa el Primer Examen Parcial:");
examenparcial1 = float.Parse(Console.ReadLine());
Console.Write("Ingresa el Segundo Examen Parcial:");
examenparcial2 = float.Parse(Console.ReadLine());
Console.Write("Ingresa el Examen Practica:");
examenpractica = float.Parse(Console.ReadLine());
promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica) / 5;
Console.Write("El Promedio final es : {0}", promediofinal); Console.Read();
}
29.‐Diseñe un pseudocódigo y su codificación que halle el área y el perímetro de un rectángulo.
Considere que: área=base x altura y perímetro = 2 * (base + altura)
Datos Resultado
base altura Área perímetro
10 5 50 30
15 29 435 88
29.1.‐Algoritmo
Inicio {calcular el área y el perímetro de un rectángulo} {Ingresamos base y altura}
Leer bas, altura {Calculamos el area} Area=bas*altura
{Calculamos el perímetro} Perímetro=2*(bas+altura)
{Mostramos el area y el perímetro} Escribir area, perimetro
29.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaramos nuestras variables double area, bas, perimetro, altura; //ingresamos base y altura
Console.Write("Ingrese Altura:");
altura = double.Parse(Console.ReadLine()); Console.Write("Ingrese Base:");
bas = double.Parse(Console.ReadLine());
//proceso de calculo area = bas * altura; perimetro=2*(bas+altura); // mostrar de resultados
Console.WriteLine("El Area es :{0}",area);
Console.WriteLine("El Perimetro es :{0}",perimetro); Console.Read();
}
30.‐Diseñe un pseudocódigo y su codificación que lea la hora actual del día HH:MM:SS y determine cuantas horas, minutos y segundos restan para culminar el día.
Datos Resultado(para que termine el día) Hora Minuto segundo Hora Minuto Segundo
6 14 19 17 45 41
20 41 12 3 18 48
30.1.‐Algoritmo
Inicio {calcular la hora que falta para que acabe el día} {Ingresamos hora, segundo, minuto}
Leer hor1, min1, seg1
{Calculo de la cantidad de segundos que restan para culminar el día} segres=86400‐(hor1*3600+min1*60+seg)
{Descomposición de sgres en horas, minutos y segundos} Hor2=segres div 3600
Resto=segres mod 3600 Min2=resto div 60 Seg2=resto mod 60
{Mostramos la hora que falta para culminar el día} Escribir hor2, min2, seg2
Fin
30.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaracion de variables
int hor1, min1, seg1, hor2, min2, seg2, segres, resto;
Console.Write("Ingresa Hora:");
hor1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Mintuo:"); min1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); seg1 = int.Parse(Console.ReadLine());
//calculo de la cantidad de segundos que restan para culminar el día segres = 86400 - (hor1 * 3600 + min1 * 60 + seg1);
//descomposicion de segres en horas, minutos y segundos hor2 = segres / 3600;
resto = segres % 3600; min2 = resto / 60; seg2 = resto % 60;
//mostrar la hora que falta para culminar el día
Console.WriteLine("Falta:{0}:{1}:{2}",hor2,min2,seg2); Console.Read();
}
31.‐Tres Hermanos constituyen una empresa. Al Primer Hermano le corresponde el 50% de las acciones. Al segundo hermano le corresponde una cantidad equivalente a las 2/3 partes de las acciones del primer hermano. El resto de las acciones pertenece al tercer hermano. Al final de cada mes se debe repartir las utilidades generadas por la empresa en forma proporcional a las acciones de cada hermano. Escribir un algoritmo y su codificación que determine el monto correspondiente a cada hermano.
Datos Resultado Monto Primer hermano Segundo hermano Tercer hermano 5648 2824 1882.7 941.3 554788 277394 184929.3 92464.67 31.1.‐Algoritmo
Inicio {calcular cuanto le corresponde a cada hermano} {Ingresamos monto}
Leer monto
{Calculo cuanto le pertenece al primer hermano} PrimerHermano=monto*0.50
{Calculo cuanto le pertenece al segundo hermano} SegundoHermano=PrimerHermano*2/3
{Calculo cuanto le pertenece al tercer hermano} TercerHermano=PrimerHermano‐SegundoHermano {Mostramos cuanto le corresponde a cada hermano} Escribir PrimerHermano, SegundoHermano, TercerHermano Fin
31.2.‐Codificacion(C#)
static void Main(string[] args) {
//ingreso monto
Console.Write("Ingrese Monto: "); Monto = int.Parse(Console.ReadLine());
//calculamos cuanto le pertence al primer hermano PrimerHermano = Monto * 0.50f;
//calculamos cuanto le pertence al segundo hermano SegundoHermano = PrimerHermano * 2 / 3f;
//calculamos cuanto le pertence al tercer hermano TercerHermano = PrimerHermano - SegundoHermano; //escribir cuanto le corresponde a cada hermano
Console.WriteLine("Primer hermano le corresponde el : {0}", PrimerHermano); Console.WriteLine("Segundo hermano le coresponde el : {0}", SegundoHermano); Console.WriteLine("Tercer hermano le corresponde el : {0}", TercerHermano); Console.ReadLine();
}
32.‐Escribir un algoritmo y su codificación para calcular el área y el volumen de un hexaedro.
Datos Resultado
Lado Área Volumen
5 150 125
2 24 8
32.1.‐Algoritmo
Inicio {calcular el area y el volumen de un hexaedro} {Ingresamos Lado} Leer lado {Calculamos el area} area =(lado*lado)*6 {Calculamos el volumen) volumen= (lado*lado*lado) {Mostramos el volumen y area} Escribir area, volumen
Fin
32.2.‐Codificacion(C#)
static void Main(string[] args) {
double lado, area, volumen;
//ingresamos el lado del hexaedro Console.Write("Ingrese Lado:");
lado = double.Parse(Console.ReadLine()); //calculamos el area
area = (lado * lado) * 6; //calculamos el volumen volumen = Math.Pow(lado, 3);
//mostramos el area y el volumen del hexaedro
Console.WriteLine("El Area del Hexaedro es :{0}",area);
Console.WriteLine("El Volumen del Hexaedro es :{0}",volumen); Console.Read();
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.
Datos Resultado Consumo(m3) 50 20 15 10 Total a Pagar 18.85 8.14 6.36 4.57 34.1.‐Algoritmo
Inicio {calcular el monto a pagar por el consumo de agua} {Ingresamos consumo en metros cúbicos}
Leer consumo {Calculo del subtotal} Subtotal=consumo*0.30 {Calculo del igv} Igv=subtotal*0.19 {Calculo del total a pagar} Total=subtotal+igv+1.00 {Mostramos los resultados} Escribir Total
Fin
34.2.‐Codificacion(C#)
static void Main(string[] args) {
//declaro mis variables float total, subtotal, igv; int consumo;
//ingreso consumo
Console.Write("Ingrese el consumo de agua (m3):"); consumo = int.Parse(Console.ReadLine());
//calculo el subtotal
subtotal = consumo * 0.30f; //calculo el igv
igv = subtotal * 0.19f; //calculo el total a pagar total = subtotal + igv + 1.00f; //muestro el total a pagar
Console.Write("\nEl monto a pagar por el usuario es : {0}", total); Console.Read();
}
35.‐Escribir un programa para saber el tamaño en bytes de : ‐int ‐short ‐long ‐char ‐float ‐double
‐bool
35.1‐Codificacion(C#)
static void Main(string[] args) {
Console.Write("El Tamaño de un int es :{0} bytes\n", sizeof(int)); Console.Write("El Tamaño de un short es :{0} bytes\n", sizeof(short)); Console.Write("El Tamaño de un long es :{0} bytes\n", sizeof(long)); Console.Write("El Tamaño de un char es :{0} bytes\n", sizeof(char)); Console.Write("El Tamaño de un float es :{0} bytes\n", sizeof(float)); Console.Write("El Tamaño de un double es :{0} bytes\n", sizeof(double)); Console.Write("El Tamaño de un bool es :{0} bytes\n", sizeof(bool)); Console.Read();
}
PROBLEMAS PROPUESTOS
1.‐Escribir un algoritmo y su codificación para que sume dos números complejos 2.‐Escribir un algoritmo y su codificación para que multiplique dos números complejos 3.‐La Universidad Tecnológica de los Andes ah recibido tres donaciones en soles, dólares y marcos. La donación será repartida en tres rubros: 60% para la implementación de un centro de estudios, 40% para un comedor de estudiantes y el resto para gastos administrativos. Diseñe un algoritmo y su codificación que determine el monto en euros que le corresponde a cada rubro. Considere que: 1 dólar=3.52 soles, 1 dólar=2.08 marcos, 1 dólar=1.07 euros. 4.‐En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo y su codificación para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora= 60 minutos, 1 minuto = 60 segundos, 1 segundo=100 centésimas de segundo, 1 kilometro=1000 metros.
5.‐ Diseñe un algoritmo y su codificación que determine la suma de las cifras de un número entero positivo de 4 cifras.
6.‐Diseñe un algoritmo y su codificación para sumar dos tiempos dados en horas, minutos y segundos.
7.‐El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de S/250 más el 12% del monto total vendido. Diseñe un algoritmo y su codificación que determine el sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes.
8.‐En países de habla inglesa es común dar la estatura de una persona como la suma de una cantidad entera de pies más una cantidad entera de pulgadas. Así, la estatura de una persona podría ser 3’ 2’’ (3 pies 2 pulgadas).Diseñe un algoritmo y su codificación que determine la estatura de una persona en metros, conociendo su estatura en el formato ingles. Considere que : 1 pie=12 plg, 1 plg= 2.54 cm , 1 m = 100cm.
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.
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.
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
PROBLEMAS RESUELTOS
1.‐Escribir un programa y su codificación para determinar el mayor de tres números.
Datos Resultado
Numero 1 Numero 2 Numero 3 Mayor
20 210 2220 2220
48 412 818 818
1.1.‐Algoritmo
Inicio {Calcular el mayor de tres números} {Ingresamos los tres números}
Leer numero1,numero2,numero3
{Empezamos a Comparar los Tres Números}
Si(numero1>numero2) y (numero1>numero3) entonces Mayor=numero1
Sino
Si(numero2>numero1) y (numero2>numero3) entonces Mayor=numero2
Sino
Mayor=numero3 {Mostramos el número mayor} Escribir mayor
Fin
1.2‐Codificacion(C#)
static void Main(string[] args) {
int numero1, numero2, numero3,mayor; //ingresamos los tres numeros
Console.Write("Ingrese Numero 1:"); numero1 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Numero 2:"); numero2 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Numero 3:"); numero3 = int.Parse(Console.ReadLine()); //calculamos el mayor
if (numero1 > numero2&& numero1> numero3) mayor = numero1;
else if (numero2 > numero1 && numero2> numero3) mayor = numero2;
else
mayor = numero3; //mostramos el mayor
Console.WriteLine("El Mayor es :{0}",mayor); Console.Read();
}
2.‐Escribir un programa y su codificación que lea 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.