• No se han encontrado resultados

C# FUNDAMENTOS DE PROGRAMACION

N/A
N/A
Protected

Academic year: 2021

Share "C# FUNDAMENTOS DE PROGRAMACION"

Copied!
193
0
0

Texto completo

(1)
(2)

El lenguaje C#

1.1.1. Introducción

Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje de programación surgieron en 1998 , haciendo referencia a un lenguaje que entonces llamaban COOL y que decían era muy similar a Java.

En junio de 2000, Microsoft despejó todas las dudas liberando la especificación de un nuevo lenguaje llamado C#. A esto le siguió rápidamente la primera versión de prueba del entorno de desarrollo estándar (SDK) .Net, que incluía un compilador de C#. El nuevo lenguaje estaba diseñado por Anders Hejlsberg ( creador de Turbo Pascal y arquitecto de Delphi ), Scott Wiltamuth y Peter Golde. Entonces describieron el lenguaje como "...simple, moderno, orientado a objetos, de tipado seguro y con una fuerte herencia de

C/C++".

¿Porqué C#?

La plataforma .NET acepta varios lenguajes. Por ahora, C#, Visual Basic, C++ gestionado, Nemerle, FORTRAN, Java, Python, etc. , y con capacidad para aceptar prácticamente cualquier lenguaje. Entonces

la pregunta es, ¿porqué se eligió C# en lugar de cualquier otro lenguaje?. La razón fundamental es que C# se diseñó para la plataforma .NET y es capaz de utilizar todo su potencial. También es cierto que es un lenguaje "limpio" en el sentido de que al no tener que

proporcionar compatibilidad hacia detrás se ha tenido más libertad en el diseño y se ha puesto especial incapié en la simplicidad. Por ejemplo, en C# hay un tipo de clase y siempre se le aplica el recolector de basura mientras que en C++ gestionado hay dos tipos de clases, una a las que se le aplica el recolector y otra a la que no.

Tipos

Importancia de los tipos de datos

Los tipos son la base de cualquier programa. Un tipo no es más que un espacio en el que se almacena una información, ya sean números, palabras o tu fecha de

nacimiento.

Los tipos de datos son especialmente importantes en C# porque es un lenguaje con información de tipos. Esto significa que, en todas las operaciones, el compilador comprueba los tipos para ver su

compatibilidad. Las operaciones no válidas no se compilan. De esta forma se evitan muchos errores y se consigue una mayor fiabilidad

Tipos en C#

En C# los tipos básicos no son más que alias para tipos predefinidos en la librería base de la plataforma

Mono/.NET . Así, el tipo entero int, no es más que una forma rápida de escribir System.Int32 .

Los tipos del lenguaje C# son divididos en dos grandes categorías: tipos por valor y tipos por referencia. Existe una tercera categoría de tipos, disponible solo cuando se usa código no seguro: los punteros, que

(3)

se discutirán más adelante.Los tipos por valor difieren de los tipos por referencia en que las variables de los tipos por valor contienen directamente su valor, mientras que las variables de los tipos por referencia almacenan referencias a objetos. Con los tipos por referencia, es posible que dos variables se refieran al mismo objeto, y por tanto es posible que las operaciones sobre una variable afecten al objeto al que hace

referencia otra variable. Con los tipos por valor, cada variable tienen su propia copia de los datos, y las operaciones sobre una no afectará a la otra.

Enteros

Los tipos que sirven para almacenar números enteros son: byte, sbyte. short, ushort, int, uint, long y ulong. Como se aprecia en la tabla, C# define versiones con y sin signo para tipos con los mismo bytes utilizados. La diferencia entre enteros con signo y sin signo radica en el modo de interpretar el bit de

nivel superior del entero. Si se especifica un entero con signo, el compilador entenderá que el primer bit indica el signo: 0 si es positivo, 1 si es negativo. Sin embargo, los enteros sin signo, ese bit se puede

utilizar para almacen el número y así se consigue que los enteros sin signo puedan almacenar números el doble de grandes que los enteros con signo.

Probablemente el tipo más utilizado es el int, pués se utiliza para controlar matrices, inidizar arreglos además de las operaciones normales con enteros. Además, se trata de un entero de tamaño medio: más pequeño que long y ulong, pero más grande que byte, sbyte, short y ushort.

El siguiente ejemplo muestra la declaración y uso de algunos tipos enteros calculando el número de segundos en una hora, dia y en un año.

using System; class Enteros{

public static void Main() {

int Minuto = 60; //segundos por minuto int Hora = Minuto*60;

int Dia = Hora*24; long Anio = Dia*365;

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

}

De nuevo hemos usado el método Console.WriteLine para imprimir los resultados por la consola. El

identificador {0} dentro de la cadena de texto indica que se sustituye {0} por el primer argumento. si hubiera más de un argumento, se seguiría con {1}, y así sucesivamente. Por ejemplo, las dos líneas que utilizan Console.WriteLine se pueden simplificar así:

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

(4)

2.2.3. Tipos de coma flotante

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

Existen dos clases de tipos de punto flotante, float y double. De los dos, el más usado es double, pués es

el valor que devuelven la mayoría de las funciones matemáticas de la librería base.

El siguiente ejemplo calcula la raíz cuadrada y el logaritmo de dos: using System;

class Flotante{

public static void Main() {

int a = 2;

double log2 = Math.Log(2); double raiz2 = Math.Sqrt(2);

Console.WriteLine("El logaritmo de dos es {0}", log2 ); Console.WriteLine("La raiz de dos es {0}", raiz2 ); }

}

y la salida será la siguiente:

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

si intentamos cambiar el tipo de log2 a otro de menos precisión, como float o int, el compilador protestará. Esto se debe, como hemos dicho a que el valor devuelto por Math.Log() es de tipo double y si

se quiere convertir a float, pués se perderán datos. Lo mismo ocurre con la mayoría de los miembros de

la clase Math, como Math.Sin(), Math.Tan(), etc.

2.2.4. El tipo decimal

El tipo decimal es un tipo "nuevo" en el sentido de que no tiene equivalente en C/C++. Es muy parecido

a los tipo de coma flotante float y double.

En la aritmética de los tipos de coma flotante ordinarios, se pueden producir leves errores de redondeo.

El tipo decimal elimina estos errores y puede representar correctamente hasta 28 lugares decimales. Esta capacidad para representar valores decimales sin errores de redondeo lo hace especialmente eficaz para cálculos monetarios.

(5)

El tipo bool sirve para expresar los valores verdadero/falso, que en C# se muestran con las palabras reservadas true y false.

En C#, por ejemplo, una instrucción if solo puede estar gobernada por un valor bool, no como en C/C++, que lo puede estar también por un entero. De esta forma se ayuda a eliminar el error tan frecuente en programadores de C/C++ cuando usa "=" en lugar de "==". En definitiva, la inclusión del tipo bool en el lenguaje ayuda a la claridad del código y evita algunos errores muy comunes

(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)

2.1

Una e otra s entra En la

Es

Concept

estructura se siguiendo un ada y una sal

Figura se m

Estru

to

ecuencial es na secuencia ida. muestra el p Pseu Inic Ac Ac Ac Ac Fin

uctu

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

ura Se

a que las ins cambios de o y el diagram

Secue

strucciones e e ruta. La es ma de flujo d

encia

están una a c structura sec de una estru

al

continuación cuencial tien uctura secue n de la e una ncial.

(24)

PROBLEMAS RESUELTOS

1.‐Ecribir un algoritmo que determine la suma de dos números enteros.

Datos Resultado

Numero 1 Numero 2 Suma

5 8 13 9 5 14

1.1.‐Algoritmo

Inicio {calcular la suma de dos números} {Ingresamos los números}

Leer a Leer b

{Calculamos la suma en una variable suma} Suma=a+b

{Mostramos el resultado} Escribir suma

Fin

1.2.‐Codificacion(C#)

static void Main(string[] args) {

//declaramos nuestras variables int numero1,numero2, suma;

//introducimos el primer nùmero

Console.Write("ingrese el primer nùmero : "); //leemos nuestro nùmero

numero1 = int.Parse(Console.ReadLine()); //introducimos el segundo nùmero

Console.Write("ingrese el segundo nùmero : "); //leemos nuestro segundo nùmero

numero2 = int.Parse(Console.ReadLine()); //sumamos los datos que tenemos

suma = numero1 + numero2; //mostramos los resultados

Console.Write("la suma es : {0}", suma);

Console.ReadLine();//pausa la pantalla

}

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

Datos Resultado base altura Area

4 5 10

(25)

2.1.‐Algoritmo

Inicio {calcular el area de un triangulo} {Ingresamos base y altura}

Leer bas Leer altura

{Calculamos el area de un triangulo} Area = (bas * altura) / 2 {Mostramos el resultado} Escribir Area

Fin

2.2.‐Codificacion(C#)

static void Main(string[] args) {

//declaramos nuestras variables int bas, altura;

double area;

//ingresamos los datos

Console.Write("Ingresa base : "); bas = int.Parse(Console.ReadLine()); Console.Write("Ingresa altura : "); altura = int.Parse(Console.ReadLine()); //hacemos la operacion

area = (bas * altura) / 2;

//mostramos los resultados por pantalla

Console.Write("el area del triangulo es : {0}", area); Console.ReadLine();

}

3.‐escribir un algoritmo y su codificacion que convierta una distancia medida en metros a pies. Datos Resultado Distancia en metros 4 5 9 20 Distancia en pies 13.09 16.362 29.45 65.45 3.1.‐Algoritmo

Inicio {convertir una distancia medida en metros a pies} {Ingresamos distancia en metros}

Leer metros

{Convertir distancia a pies}

pies = metros / (12 / 39.27) {Mostramos el resultado}

Escribir pies Fin

(26)

3.2.‐Codificacion(C#)

static void Main(string[] args) {

//declaramos nuestras variables float metros, pies;

//ingresamos los datos para almacenar en nuestras variables "metros" Console.Write("Ingresa Metros : ");

metros = float.Parse(Console.ReadLine());

//hacemos la operacion

pies = metros / (12 / 39.27f); //1 pie = 0.3048 metros

//1 pulgada = 25.4 mm

//mostramos los resultados por pantalla

Console.Write("el equivalente en pies es : {0}", pies); Console.ReadLine();

}

4.‐ escribir un algoritmo y su codificacion para calcular el total a pagar de un consumo ingresado por el usuario , finalmente mostrar el IGV y el total a pagar por pantalla (incluye IGV=0.19).

Datos Resultado

consumo IGV TOTAL A PAGAR

524.25 99,61 623.86 45.00 8.55 53.55

4.1.‐Algoritmo

Inicio {calcular el igv y el monto total a pagar de un consumo ingresado por el usuario} {Ingresamos consumo}

Leer consumo {Calculamos el igv}

igv=consumo*0.19

{calculamos el totap a pagar} tap=consumo+igv {Mostramos el resultado} Escribir igv Escribir tap Fin 4.2.‐Codificacion(C#)

static void Main(string[] args) {

//definiciones de variables

float consumo, igv, tap; //ingresando consumo

Console.Write("Ingrese el monto de su consumo: "); consumo = float.Parse(Console.ReadLine());

(27)

igv = consumo * 0.19f;

//calculamos el total a pagar tap = consumo + igv;

Console.WriteLine("El IGV es : {0}",igv);

Console.Write("Total a pagar:{0}",tap); Console.Read();

}

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

Datos Resultado Fecha de nacimiento Fecha actual Edad

1991 2008 17 1985 2008 23

5.1.‐Algoritmo

Inicio {calcular la edad de una persona} {Ingresamos fecha de nacimiento} Leer fnac

{Ingresamos fecha actual} Leer fac {calculamos la edad} Edad=fac‐fnac {Mostramos el resultado} Escribir Edad Fin 5.2.‐Codificacion(C#)

static void Main(string[] args) {

//declaramos nuestras variables int edad, fnac, fac;

Console.Write("ingrese el año que nacio :"); fnac = int.Parse(Console.ReadLine());

Console.Write("ingrese el año actual :"); fac = int.Parse(Console.ReadLine()); //calculamos la edad

edad = fac - fnac;

//mostramos la edad de la persona

Console.Write("su edad es : {0}", edad); Console.Read();

}

6.‐ escribir un algoritmo y su codificacion para que un ingeniero de sistemas que desea invertir su capital en un banco y desea saber cuánto dinero ganará despues en un mes si el banco paga a razón de 2% mensual.

Datos Resultado Capital 800 400 500 1050 Ganancia 16 8 10 21

(28)

6.1.‐Algoritmo

Inicio {calcular la ganancia de un mes de un ingeniero} {Ingresamos capital} Leer capital {Calculamos el capital} ganancia = capital * 0.02 {Mostramos el resultado} Escribir ganancia Fin 6.2.‐Codificacion(C#)

static void Main(string[] args) {

double cap, gan;

Console.Write("ingrese su capital : ");

cap = double.Parse(Console.ReadLine());

gan = cap * 0.02;

Console.Write("su ganacia es :{0} ", gan); Console.Read();

}

7.‐ escribir un algoritmo y su codificacion para que un profesor determine el porcentaje de hombres y el porcentaje de mujeres hay en un grupo de estudiantes.

Datos Resultado Numero de hombres Numero de mujeres Porcentaje de

hombres Porcentaje de mujeres 20 20 50% 50% 15 29 34% 66% 7.1.‐Algoritmo

Inicio {calcular el porcentaje de varones y el porcentaje de mujeres de un grupo de Estudiantes}

{Ingresamos número de hombres} Leer nh

{Ingresamos número de mujeres} Leer nm

{Calculamos el total de estudiantes} ta=nh+nm

{calculamos el porcentaje de hombres} ph=nh*100 div ta

{calculamos el porcentaje de mujeres} pm=nm*100 div ta

{Mostramos el resultado} Escribir ph

Escribir pm Fin

(29)

7.2.‐Codificacion(C#)

static void Main(string[] args) {

int nh, nm; int ph, ta, pm;

//ingresamos el numero de hombres

Console.Write("ingrese numero de hombres : "); nh = int.Parse(Console.ReadLine());

//ingresamos el numero de mujeres

Console.Write("ingrese numero de mujeres : "); nm = int.Parse(Console.ReadLine());

//calculamos el total de alumnos ta = nh + nm;

//calculamos el porcentaje de hombres ph = nh *100 / ta;

//calculamos el porcentaje de mujeres pm = nm * 100/ta;

Console.WriteLine("el porcentaje de hombres es :{0}%",ph); Console.WriteLine("el porcentaje de mujeres es :{0}%",pm); Console.Read();

}

8.‐ Construya un programa tal, que dado el costo de un articulo vendido y la cantidad de dinero entregado por el cliente, calcule e imprima el cambio que debe entregársele al mismo.

Datos Resultado (cambio a entregar)

Precio del Producto Pago que Realiza el Cliente

50 70 20 20 25 5

8.1.‐Algoritmo Inicio {Cambio}

{Ingresamos Precio del Producto} Leer prepro

{Ingresamos Pago que Realiza el Cliente} Leer pago

{Calculamos la Devolucion o el Vuelto} Devo=pago ‐ prepro;

Escribir Devo Fin

8.2.‐Codificacion(C#)

static void Main(string[] args) {

float prepro, pago, devo = 0;

//Ingresamos Precio del Producto

(30)

prepro = float.Parse(Console.ReadLine()); //Ingresamos Pago que Realiza el cliente

Console.Write("Ingrese el Pago que Realiza el Cliente: "); pago = float.Parse(Console.ReadLine());

//Calculamos el Vuelto o Devolucion devo = pago - prepro;

//Mostramos el Cambio

Console.WriteLine("El cambio a entregar es :s/.{0}", devo); Console.ReadLine();

}

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

Datos Resultado(segundo anterior)

Hora Minuto segundo Hora Minuto Segundo

3 20 25 3 20 24

5 2 0 5 1 59

9.1.‐Algoritmo

Inicio {la hora al segundo anterior} Leer hh,mm,ss

TotalSegundos=(hh*3600+mm*60+ss)‐1 hh = (TotalSegundos div 3600) mod 24; mm = (TotalSegundos mod 3600) div 60; ss = (TotalSegundos % 3600) div 60;

{Mostramos la Hora Correspondiente al Segundo Anterior} Escribir hh,mm,ss

Fin

9.2.‐Codificacion(C#)

static void Main(string[] args) {

int hh, mm, ss;

Console.Write("Ingresa Hora:"); hh = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:"); mm = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); ss = int.Parse(Console.ReadLine());

int TotalSegundos = (hh * 3600 + mm * 60 + ss) -1;

hh = (TotalSegundos / 3600) % 24; mm = (TotalSegundos % 3600) / 60; ss = (TotalSegundos % 3600) % 60;

//mostramos la hora al segundo anterior

Console.WriteLine("{0}:{1}:{2}", hh, mm, ss); Console.Read();

}

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

(31)

Datos Resultado(después de 2 segundos) Hora Minuto segundo Hora Minuto Segundo

3 20 25 3 20 27

5 2 59 5 3 1

10.1.‐Algoritmo

Inicio {la hora después de 2 segundos } Leer hh,mm,ss

TotalSegundos=(hh*3600+mm*60+ss)+2 hh = (TotalSegundos div 3600) mod 24; mm = (TotalSegundos mod 3600) div 60; ss = (TotalSegundos % 3600) div 60;

{Mostramos la Hora Correspondiente despues de 2 segundos} Escribir hh,mm,ss

Fin

10.2.‐Codificacion(C#)

static void Main(string[] args) {

int hh, mm, ss;

Console.Write("Ingresa Hora:"); hh = int.Parse(Console.ReadLine()); Console.Write("Ingresa Minuto:"); mm = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); ss = int.Parse(Console.ReadLine());

int TotalSegundos = (hh * 3600 + mm * 60 + ss) + 2;

hh = (TotalSegundos / 3600) % 24; mm = (TotalSegundos % 3600) / 60; ss = (TotalSegundos % 3600) % 60;

//mostramos la hora despues de 2 segundos Console.WriteLine("{0}:{1}:{2}", hh, mm, ss); Console.Read();

}

11‐ Diseñar un algoritmo que me permita ingresar un valor inicial y luego un valor final, para luego Calcular el valor central de los números.

Datos Resultado Valor Inicial Valor Final Valor Central

2 4 3 10 20 15

11.1.‐Algoritmo

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

(32)

ValorCentral=( ValorInicial+ValorFinal)/ 2 Escribir ValorCentral

Fin

11.2.‐Codificacion(C#)

static void Main(string[] args) {

int A1, A2; int C;

Console.Write("Ingresa Valor Inicial:"); A1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Valor Final:"); A2 = int.Parse(Console.ReadLine()); C = (A1 + A2) / 2;

Console.WriteLine("Valor Central: " + C); Console.ReadLine();

}

12.‐Escriba un programa tal, que dados el nombre de un dinosaurio, su peso y su longitud, expresados estos dos últimos en toneladas y pies, respectivamente, escriba el nombre del dinosaurio, su peso expresado en kilogramos y su longitud expresada en metros.

Datos Resultado Nombre Peso(Tonelada s) Longitud(Pies ) Nombre Peso(Kilos ) Longitud(Metro s) Rinoceronte 1 25 Rinoceronte 1000 7,6175 Choclosauri o 2 59 Choclosauri o 2000 17,97 1 Tonelada= 1000 kilos 12.1.‐Algoritmo Inicio {Conversion}

{Ingresamos El Nombre del Dinosaurio} Leer Nomb

{Ingresamos El Peso en Toneladas} Leer pes

{Ingresamos La Longitud en Pies} Leer lon

peskil = peso * 1000; lonmet = lon * 0.3047f; Escribir Nomb, peskil, lonmet Fin

12.2.‐Codificacion(C#)

static void Main(string[] args) {

(33)

string Nomb;

Console.Write("Ingrese el Nombre del Dinosaurio:"); Nomb = Console.ReadLine();

Console.Write("Ingrese el Peso en Toneladas : ");

peso = float.Parse(Console.ReadLine());

Console.Write("Ingrese la Longitud en Pies : "); lon = float.Parse(Console.ReadLine());

peskil = peso * 1000; lonmet = lon * 0.3047f;

Console.WriteLine("Nombre del Dinosaurio: " + Nomb); Console.WriteLine("El Peso en Kilos es: " + peskil); Console.WriteLine("La Longitud en Metros es: " + lonmet); Console.ReadLine();

}

13.‐Una persona compró una estancia en Abancay. La extensión de la estancia esta especificada en acres. Construya un programa, tal que dado como dato la extensión del campo en "acres", calcule e imprima la extensión del mismo en hectáreas

Datos Resultado Extencion en Acres 200 100 500 450 Extencion en Hectareas 80,94 40,47 202,35 182,115 13.1.‐Algoritmo

Inicio {calcular hectareas}

{Ingresamos extencion en Acres} Leer exten

Escribir extcam * 4047 / 10000 Fin

13.2.‐Codificacion(C#)

static void Main(string[] args) {

float extcam, extha;

Console.Write("Ingresar la Extensión del Campo en Acres: ");

extcam = float.Parse(Console.ReadLine());

extha = extcam * 4047 / 10000;

Console.WriteLine("La Extensión del Campo en Hectáreas es: " + extha);

Console.ReadLine(); }

14.‐Construya un programa que calcule e imprima el número de segundos que hay en un determinado número de días.

Datos Resultado Cantidad de Dias 1 30 24 Total de Segundos 86400 2592000 2073600

(34)

15 1296000

14.1.‐Algoritmo

Inicio {calcular total de segundos} {Ingresamos el numero de dias} Leer dias

Escribir dias*24*60*60 Fin

14.2.‐Codificacion(C#)

static void Main(string[] args) {

int seg, dias;

Console.Write("Ingresar el Número de Días: "); dias = int.Parse(Console.ReadLine());

seg = dias * 24 * 60 * 60;

Console.WriteLine(" ****En {0} Días hay {1} Segundos****", dias, seg);

Console.ReadLine(); }

15.‐Contruya un programa que resuelva el problema que tienen en una gasolineria. Los surtidores de la misma registran lo que "surten" en galones, pero el precio de la gasolina esta fijado en litros. El Programa debe calcular e imprimir lo que hay que cobrarle al cliente. Datos Resultado Numero de Galones 4 3 2 15 Total a Pagar 15,5182 11,63 7,75 58,19 15.1.‐Algoritmo

Inicio {calcular el total a pagar} {Ingresamos el numero de galones} Leer cons

Escribir cons * 3.785f * 1.025; Fin

15.2.‐Codificacion(C#)

static void Main(string[] args) {

float cons, total = 0;

Console.Write("Ingrese el Número de Galones Surtidos: ");

cons = float.Parse(Console.ReadLine());

total = cons * 3.785f * 1.025f;

(35)

Console.ReadLine(); }

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

DAT0S RESULTADO Minutos Segundos Centésimas de

Segundo Distancia en Metros Distancia Recorrida Velocidad(KM/H)

59 60 0 1000 1000 1

45 12 25 5000 5000 6,63

16.1.‐Algoritmo

Inicio {calcular velocidad} {Ingresamos el tiempo} Leer min,seg,cen,dis

tiemseg = min * 60 + seg + (cen / 100) veloms = dis / tiemseg

velokh = (veloms * 3600) / 1000 Escribir dis,velokh

Fin

16.2.‐Codificacion(C#)

static void Main(string[] args) {

int min, seg, cen;

float veloms, velokh, tiemseg = 0, dis;

Console.WriteLine("Ingresar el Tiempo Empleado en la Competencia"); Console.Write("Minutos : ");

min = int.Parse(Console.ReadLine()); Console.Write("Segundos : ");

seg = int.Parse(Console.ReadLine());

Console.Write("Centésimas de Segundo : "); cen = int.Parse(Console.ReadLine());

Console.Write("Ingresar la Distancia Recorrida en Metros: "); dis = float.Parse(Console.ReadLine());

tiemseg = min * 60 + seg + (cen / 100); veloms = dis / tiemseg;

velokh = (veloms * 3600) / 1000;

Console.WriteLine("La Distancia Recorrida es: {0} metros", dis); Console.WriteLine("La Velocidad es de: {0} (Km/h)", velokh); Console.ReadLine();

}

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

Datos Resultado

(36)

154 541 987 325 451 145 789 523 17.1.‐Algoritmo

Inicio {invertir un número de tres dígitos} {Ingresamos número de tres dígitos} Leer número

{Sepáranos el número en unidad, decena y centena} Unidad=numero mod 10

Centena=numero div 100

Decena= (numero mod 100) div 10 {Invertir número} numero_invertido=Unidad*100+Decena*10+Centena {Mostramos el resultado} Escribir numero_invertido Fin 17.2.‐Codificacion(C#)

static void Main(string[] args) {

int numero, numero_invertido, Decenas, Unidades, Centenas;

//leer numero de tres digitos

Console.Write("ingres numero de tres cifras : ");

numero = int.Parse(Console.ReadLine());

//separar el numero en undades , decenas y centenas Unidades = numero % 10;

Decenas = (numero % 100) / 10; Centenas = numero / 100;

//invertir numero

numero_invertido = Unidades * 100 + Decenas * 10 + Centenas; //Escribir numero invertido

Console.WriteLine("numero original : {0}", numero);

Console.WriteLine("Numero invertido : {0}", numero_invertido); Console.ReadLine();

}

18.‐ escribir un algoritmo y su codificacion para sumar los digitos de un numero de 2 cifras.

Datos Resultado Numero 15 41 97 32 Suma de cifras 6 5 16 5

(37)

18.1.‐Algoritmo

Inicio {sumar los dígitos de un número de 2 cifras} {Ingresamos número de dos dígitos}

Leer número

{Sepáranos el número en unidad y decena} Unidad=numero mod 10

Decena= numero div 10

{Calculamos la suma de los dígitos} suma = Unidad*100+Decena*10+Centena {Mostramos el resultado}

Escribir suma Fin

18.2.‐Codificacion(C#)

static void Main(string[] args) {

int numero, suma, Decenas, Unidades; //ingresar numero de dos digitos

Console.Write("ingres numero de dos cifras : ");

numero = int.Parse(Console.ReadLine());

//separar el numero en undades , decenas Unidades = numero % 10;

Decenas = numero / 10; //sumar digitos

suma = Unidades+Decenas; //Escribir suma

Console.WriteLine("La Suma de sus Digitos es:{0}", suma); Console.ReadLine();

}

19.‐ escribir un algoritmo y su codificacion para calcular el ultimo digito de un numero entero. Datos Resultado Numero 154 541 987 325 Ultima Cifra 4 1 7 5 19.1.‐Algoritmo

Inicio {calcular el último digito de un número cualquiera} {Ingresamos un número}

Leer número

{Calculamos la última cifra} Ultima_cifra=numero mod 10 Escribir Ultima_cifra

(38)

Fin

19.2.‐Codificacion(C#)

static void Main(string[] args) {

int numero,Ultima_cifra; //ingresar un numero

Console.Write("ingres numero de dos cifras : ");

numero = int.Parse(Console.ReadLine());

//calculamos el ultimo digito de un numero cualquiera Ultima_cifra = numero % 10;

//mostramos el ultimo digito

Console.WriteLine("El Ultimo digito es :{0}",Ultima_cifra); Console.ReadLine();

}

20.‐ escribir un algoritmo y su codificacion para calcular el promedio de tres notas ingresadas por teclado.

Datos Resultado

Nota 1 Nota 2 Nota 3 Promedio

20 20 20 20 15 12 18 15

20.1.‐Algoritmo

Inicio {calcular el promedio de tres notas dadas} {Ingresamos la primera nota}

Leer nota1

{Ingresamos la segunda nota} Leer nota2

{Ingresamos la tercera nota} Leer nota3 {Calculamos el promedio} promedio=(nota1+nota2+nota3)/3 {Mostramos el resultado} Escribir promedio Fin 20.2.‐Codificacion(C#)

static void Main(string[] args) {//declaramos nuestras variables int nota1, nota2, nota3, promedio; //ingresamos las notas

Console.Write("Ingrese Nota 1:"); nota1 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Nota 2:"); nota2 = int.Parse(Console.ReadLine()); Console.Write("Ingrese Nota 3:"); nota3 = int.Parse(Console.ReadLine()); //calculamos el promedio

(39)

promedio = (nota1 + nota2 + nota3) / 3; //mostramos el resultado

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

}

21.‐ escribir un algoritmo y su codificacion para un vendedor que recibe un sueldo base más un 10% extra por comisión de sus ventas,el vendedor desea saber cuanto dinero obtendrá por conceptos de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

Datos Resultado

Sueldo base Venta 1 Venta 2 Venta 3 Comisión Total a pagar

450 500 645 800 194.5 644.5

800 1005 2000 1540 454.5 1254.5

21.1.‐Algoritmo

Inicio {calcular la comisión y el total a pagar de un vendedor} {Ingresamos el sueldo base}

Leer sb

{Ingresamos la primera venta} Leer v1

{Ingresamos la segunda venta} Leer v2

{Ingresamos la tercera venta} Leer v3

{Calculamos el total de venta} total_venta=v1+v2+v3 {Calculamos la comisión} Comisión=total_venta*0.10 {Calculamos el total a pagar} tpag=sb+comision {Mostramos el resultado} Escribir comisión Escribir tpag Fin 21.2.‐Codificacion(C#)

static void Main(string[] args) {

double sb, v1, v2, v3, comision, tpag, total_venta; //ingresamos el sueldo base

Console.Write("ingrese su sueldo base : "); sb = double.Parse(Console.ReadLine()); //ingresamos las tres ventas

Console.Write("ingrese venta 1 : "); v1 = double.Parse(Console.ReadLine()); Console.Write("ingrese venta 2 : ");

(40)

v2 = double.Parse(Console.ReadLine()); Console.Write("ingrese venta 3 : "); v3 = double.Parse(Console.ReadLine()); //calculamos el total de venta

total_venta = v1 + v2 + v3; //calculamos la comision

comision = total_venta * 0.10; //calculamos el total a pagar tpag = sb + comision;

//mostramos los resultados

Console.WriteLine("su total a pagar es : {0} ", tpag); Console.WriteLine("su comision es : {0} ", comision);

Console.ReadLine(); }

22.‐ escribir un algoritmo y su codificacion para una tienda que ofrece un descuento de 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra. Datos Resultado Total de compra 154 541 987 325 Total a pagar 130.9 459.85 838.95 276.25 22.1.‐Algoritmo

Inicio {calcular el total a pagar} {Ingresamos el total de compra} Leer tc

{Calculamos el descuento} d=tc*0.15

{Calculamos el total a pagar} tp=tc‐d

{Mostramos el resultado} Escribir tp

Fin

22.2.‐Codificacion(C#)

static void Main(string[] args) {

float tc,d,tp;

//ingresamos el total de compra

Console.Write("ingrese total de la compra : "); tc = float.Parse(Console.ReadLine());

//calculamos el descuento d = tc * 0.15f;

//calculamos el total a pgar tp = tc - d;

//mostramos el total a pgar

(41)

Console.ReadLine(); }

23.‐ escribir un algoritmo y su codificacion para un alumno que desea saber cual será su calificacion final en la materia de lenguaje de programacion.Dicha calificacion se compone de los siguientes porcentajes:

55% del promedio de sus tres calificaciones parciales 30% de la calificacion del examen final

15% de la calificacion de un trabajo final

Datos Resultado Calificación 1 Calificación 2 Calificación 3

Examen final Trabajo final Calificación final

15 12 11 15 17 14.02 11 12 14 10 08 10.98

23.1.‐Algoritmo

Inicio {calcular la calificación final} {Ingresamos las tres calificaciones} Leer c1, c2, c3

{Ingresamos el examen final y el trabajo final} Leer ef, tf

{Calculamos el promedio de las tres calificaciones} prom= (c1, c2,c3)/3

ppar=prom*0.55 ef=ef*0.30 tf=tf*0.15

{Mostramos la calificación final} Escribir cf

Fin

23.2.‐Codificacion(C#)

static void Main(string[] args) {

float c1, c2, c3, ef, tf, prom, ppar, pef, ptf, cf; //ingresamos las tres primeras calificaciones

Console.Write("ingrese su primera calificacion : "); c1 = float.Parse(Console.ReadLine());

Console.Write("ingrese su segunda calificacion : "); c2 = float.Parse(Console.ReadLine());

Console.Write("ingrese su tercera calificacion : "); c3 = float.Parse(Console.ReadLine());

//ingresamos la nota del examen final

Console.Write("ingrese la nota de su examen final : "); ef = float.Parse(Console.ReadLine());

//ingresamos la calificacion de su trabajo final

(42)

tf = float.Parse(Console.ReadLine());

//calculamos el promedio de las tres calificaciones prom = (c1 + c2 + c3) / 3;

//calculamos el 55% de las tres calificaciones ppar = prom * 0.55f;

//calculamos el 30% de examen final pef = ef * 0.30f;

//calculamos el 15% del trabajo final ptf = tf * 0.15f;

//calcuamos la calificacion final del alumno cf = ppar + pef + ptf;

Console.Write("su calificacion final es : {0}", cf); Console.Read();

}

24.‐ escribir un algoritmo y su codificacion para sacar la raiz cuadrada de un numero cualquiera. Datos Resultado numero 4 25 81 49 Raíz cuadrada 2 5 9 7 24.1.‐Algoritmo

Inicio {calcular la raíz cuadrada} {Ingresamos un número cualquiera} Leer a

{Calculamos la raíz cuadra de un número} b=√

{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)

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).

(44)

Supongamos que el Monto Ingresado sea 4587.75 El cambio seria lo siguiente:

s/.200 s/.100 s/.50 s/.20 s/.10 5 soles 1 sol 0.50 0.10 0.01 22 1 1 1 1 1 2 1 2 5

Ejemplo codificado

26.1.‐Algoritmo

Inicio {cambio de cheque bancario} {Ingresamos monto a cambiar} Leer monto

monto =monto*100

{Calcular número mínimo de billetes de cada denominación} billete200= (int) monto div (200*100)

Resto= (int) monto mod (200*100) billete100 = resto div (100 * 100); resto = resto mod (100 * 100); billete50 = resto div (50 * 100); resto = resto mod (50 * 100); billete20 = resto div (20 * 100); resto = resto mod (20 * 100); billete10 = resto div (10 * 100); resto = resto mod (10 * 100); moneda5 = resto div (5 * 100); resto = resto mod (5 * 100); moneda1 = resto div (1 * 100); resto = resto mod (1 * 100); monedacincuenta = resto div 50; resto = resto mod 50;

monedadiez = resto div 10; resto = resto mod 10;

monedauncentimo = resto div 1; {Mostramos el cambio}

Escribir billete200 Escribir billete100 Escribir billete50 Escribir billete20

(45)

Escribir billete10 Escribir moneda5 Escribir moneda1 Escribir monedacincuenta Escribir monedadiez Escribir monedauncentimo Fin 26.2.‐Codificacion(C#)

static void Main(string[] args) {

double monto;

int billete100, billete200, billete50, billete20, billete10;

int moneda5, moneda1, monedacincuenta, monedadiez, monedauncentimo;

int resto;

Console.Write("Ingrese Monto:");

monto = double.Parse(Console.ReadLine());

monto = monto * 100;

//calcular numero minimo de billetes de cada denominacion billete200 = (int)monto / (200 * 100);

resto = (int)monto % (200 * 100); billete100 = resto / (100 * 100); resto = resto % (100 * 100); billete50 = resto / (50 * 100); resto = resto % (50 * 100); billete20 = resto / (20 * 100); resto = resto % (20 * 100); billete10 = resto / (10 * 100); resto = resto % (10 * 100); moneda5 = resto / (5 * 100); resto = resto % (5 * 100); moneda1 = resto / (1 * 100); resto = resto % (1 * 100); monedacincuenta = resto / 50; resto = resto % 50; monedadiez = resto / 10; resto = resto % 10; monedauncentimo = resto / 1; //mostramos el cambio respectivo

Console.WriteLine("{0} Billetes de 200", billete200); Console.WriteLine("{0} Billetes de 100", billete100); Console.WriteLine("{0} Billetes de 50", billete50); Console.WriteLine("{0} Billetes de 20", billete20); Console.WriteLine("{0} Billetes de 10", billete10); Console.WriteLine("{0} Monedas de 5 Soles", moneda5); Console.WriteLine("{0} Monedas de 1 Sol", moneda1);

Console.WriteLine("{0} Monedas de 0.50 Centimos", monedacincuenta); Console.WriteLine("{0} Monedas de 0.10 Centimos", monedadiez);

Console.WriteLine("{0} Monedas de 0.01 Centimo", monedauncentimo); Console.Read();

}

27.‐ Los organizadores de la competencia automovilista “ 3 vueltas al rio pachachaca” tienen los tiempos (en HH,MM,SS) empleados por cada participante y en cada vuelta.Ellos desean determinar el tiempo promedio por vuelta empleado por cada participante.Escribir

(46)

un algoritmo y su codificacion para determinar el tiempo promedio por vuelta de un participante. Datos Resultado 1 vuelta Hora,minuto,seg‐ undo 2 vuelta Hora,minuto,seg‐ undo 3 vuelta Hora,minuto,seg‐ undo Hora promedio Minuto prom. Segundo promedio 8:31:25 11:34:11 14:12:48 11 26 8 3:3:5 5:2:56 8:43:11 5 36 24 Ejemplo codificado 27.1.‐Algoritmo

Inicio {calcular el tiempo promedio}

{Ingresamos horas, minutos, segundos de la primera vuelta} Leer hh, mm, ss

{Ingresamos horas, minutos, segundos de la segunda vuelta} Leer hh2, mm2, ss2

{Ingresamos horas, minutos, segundos de la tercera vuelta} Leer hh2, mm2, ss2

{Convertimos a segundos} Vuelta1=hh*3600+mm*60+ss Vuelta2= hh2*3600+mm2*60+ss2 Vuelta3= hh3*3600+mm3*60+ss3

{Sumamos las tres vueltas y dividimos entre 3} Totalsegundos= (Vuelta1+Vuelta2+Vuelta3)/3

{Distribuimos el totalsegundos para que nos de el tiempo promedio} Horapromedio= Totalsegundos div 3600

Horapromedio=Horapromedio mod 24

Minutopromedio= (Totalsegundos mod 3600) div 60 Segundopromedio= (Totalsegundos mod 3600) mod 3600 {Mostramos la hora correctamente}

Escribir Horapromedio, Minutopromedio, Segundopromedio Fin

(47)

static void Main(string[] args) {

int hh, mm, ss, totalsegundos, hh2, mm2, ss2, hh3, mm3, ss3;

int vuelta1, vuelta2, vuelta3;

int horapromedio, minutopromedio, segundopromedio;

//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL PRIMERA VUELTA Console.ForegroundColor = ConsoleColor.Blue;//color de letra Console.Write("HH:"); hh = int.Parse(Console.ReadLine()); Console.Write("MM:"); mm = int.Parse(Console.ReadLine()); Console.Write("SS:"); ss = int.Parse(Console.ReadLine());

//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL SEGUNDA VUELTA

Console.ForegroundColor = ConsoleColor.Red;//color de letra de la segunda vuelta

Console.WriteLine("Segunda Vuelta"); Console.Write("HH:"); hh2 = int.Parse(Console.ReadLine()); Console.Write("MM:"); mm2 = int.Parse(Console.ReadLine()); Console.Write("SS:"); ss2 = int.Parse(Console.ReadLine());

//INGRESO LAS HORAS,MINUTOS,SEGUNDOS DEL TERCERA VUELTA

Console.ForegroundColor = ConsoleColor.Cyan;//color de letra de la tercera vuelta

Console.WriteLine("Tercera Vuelta"); Console.Write("HH:"); hh3 = int.Parse(Console.ReadLine()); Console.Write("MM:"); mm3 = int.Parse(Console.ReadLine()); Console.Write("SS:"); ss3 = int.Parse(Console.ReadLine()); //CONVERTIR A SEGUNDO CADA VUELTA vuelta1 = hh * 3600 + mm * 60 + ss; vuelta2 = hh2 * 3600 + mm2 * 60 + ss2; vuelta3 = hh3 * 3600 + mm3 * 60 + ss3; //SUMAR TODAS LAS VUELTAS

totalsegundos =(vuelta1+vuelta2+vuelta3)/3;

//Distribuimos el totalsegundos para que nos de el tiempo promedio horapromedio = totalsegundos / 3600;

horapromedio = horapromedio % 24;

minutopromedio = (totalsegundos % 3600) / 60; segundopromedio = (totalsegundos % 3600) % 60;

Console.Write("el promedio es :{0}:{1}:{2}", horapromedio, minutopromedio, segundopromedio);

Console.Read(); }

28.‐En el curso de lenguaje de programación I se tomaron dos exámenes parciales y un examen práctica. El promedio final se calcula considerando que los exámenes parciales tienes peso dos y la practica peso uno. Escribir un algoritmo y su codificación que calcule el Promedio final.

Datos Resultado Examen parcial 1 Examen parcial 2 Examen practica Promedio final

20 20 20 20

(48)

28.1.‐Algoritmo

Inicio {calcular el promedio}

{Ingresamos los dos exámenes parciales y el examen practica} Leer examenparcial1, examenparcial2, examenpractica

Promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica)/5 {Mostramos el promedio}

Escribir promedio Fin

28.2.‐Codificacion(C#)

static void Main(string[] args) {

float examenparcial1, examenparcial2, examenpractica, promediofinal; Console.Write("Ingresa el Primer Examen Parcial:");

examenparcial1 = float.Parse(Console.ReadLine());

Console.Write("Ingresa el Segundo Examen Parcial:");

examenparcial2 = float.Parse(Console.ReadLine());

Console.Write("Ingresa el Examen Practica:");

examenpractica = float.Parse(Console.ReadLine());

promediofinal = ((examenparcial1 * 2) + (examenparcial2 * 2) + examenpractica) / 5;

Console.Write("El Promedio final es : {0}", promediofinal); Console.Read();

}

29.‐Diseñe un pseudocódigo y su codificación que halle el área y el perímetro de un rectángulo.

Considere que: área=base x altura y perímetro = 2 * (base + altura)

Datos Resultado

base altura Área perímetro

10 5 50 30

15 29 435 88

29.1.‐Algoritmo

Inicio {calcular el área y el perímetro de un rectángulo} {Ingresamos base y altura}

Leer bas, altura {Calculamos el area} Area=bas*altura

{Calculamos el perímetro} Perímetro=2*(bas+altura)

{Mostramos el area y el perímetro} Escribir area, perimetro

(49)

29.2.‐Codificacion(C#)

static void Main(string[] args) {

//declaramos nuestras variables double area, bas, perimetro, altura; //ingresamos base y altura

Console.Write("Ingrese Altura:");

altura = double.Parse(Console.ReadLine()); Console.Write("Ingrese Base:");

bas = double.Parse(Console.ReadLine());

//proceso de calculo area = bas * altura; perimetro=2*(bas+altura); // mostrar de resultados

Console.WriteLine("El Area es :{0}",area);

Console.WriteLine("El Perimetro es :{0}",perimetro); Console.Read();

}

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

Datos Resultado(para que termine el día) Hora Minuto segundo Hora Minuto Segundo

6 14 19 17 45 41

20 41 12 3 18 48

30.1.‐Algoritmo

Inicio {calcular la hora que falta para que acabe el día} {Ingresamos hora, segundo, minuto}

Leer hor1, min1, seg1

{Calculo de la cantidad de segundos que restan para culminar el día} segres=86400‐(hor1*3600+min1*60+seg)

{Descomposición de sgres en horas, minutos y segundos} Hor2=segres div 3600

Resto=segres mod 3600 Min2=resto div 60 Seg2=resto mod 60

{Mostramos la hora que falta para culminar el día} Escribir hor2, min2, seg2

Fin

30.2.‐Codificacion(C#)

static void Main(string[] args) {

//declaracion de variables

int hor1, min1, seg1, hor2, min2, seg2, segres, resto;

(50)

Console.Write("Ingresa Hora:");

hor1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Mintuo:"); min1 = int.Parse(Console.ReadLine()); Console.Write("Ingresa Segundo:"); seg1 = int.Parse(Console.ReadLine());

//calculo de la cantidad de segundos que restan para culminar el día segres = 86400 - (hor1 * 3600 + min1 * 60 + seg1);

//descomposicion de segres en horas, minutos y segundos hor2 = segres / 3600;

resto = segres % 3600; min2 = resto / 60; seg2 = resto % 60;

//mostrar la hora que falta para culminar el día

Console.WriteLine("Falta:{0}:{1}:{2}",hor2,min2,seg2); Console.Read();

}

31.‐Tres Hermanos constituyen una empresa. Al Primer Hermano le corresponde el 50% de las acciones. Al segundo hermano le corresponde una cantidad equivalente a las 2/3 partes de las acciones del primer hermano. El resto de las acciones pertenece al tercer hermano. Al final de cada mes se debe repartir las utilidades generadas por la empresa en forma proporcional a las acciones de cada hermano. Escribir un algoritmo y su codificación que determine el monto correspondiente a cada hermano.

Datos Resultado Monto Primer hermano Segundo hermano Tercer hermano 5648 2824 1882.7 941.3 554788 277394 184929.3 92464.67 31.1.‐Algoritmo

Inicio {calcular cuanto le corresponde a cada hermano} {Ingresamos monto}

Leer monto

{Calculo cuanto le pertenece al primer hermano} PrimerHermano=monto*0.50

{Calculo cuanto le pertenece al segundo hermano} SegundoHermano=PrimerHermano*2/3

{Calculo cuanto le pertenece al tercer hermano} TercerHermano=PrimerHermano‐SegundoHermano {Mostramos cuanto le corresponde a cada hermano} Escribir PrimerHermano, SegundoHermano, TercerHermano Fin

31.2.‐Codificacion(C#)

static void Main(string[] args) {

(51)

//ingreso monto

Console.Write("Ingrese Monto: "); Monto = int.Parse(Console.ReadLine());

//calculamos cuanto le pertence al primer hermano PrimerHermano = Monto * 0.50f;

//calculamos cuanto le pertence al segundo hermano SegundoHermano = PrimerHermano * 2 / 3f;

//calculamos cuanto le pertence al tercer hermano TercerHermano = PrimerHermano - SegundoHermano; //escribir cuanto le corresponde a cada hermano

Console.WriteLine("Primer hermano le corresponde el : {0}", PrimerHermano); Console.WriteLine("Segundo hermano le coresponde el : {0}", SegundoHermano); Console.WriteLine("Tercer hermano le corresponde el : {0}", TercerHermano); Console.ReadLine();

}

32.‐Escribir un algoritmo y su codificación para calcular el área y el volumen de un hexaedro.

Datos Resultado

Lado Área Volumen

5 150 125

2 24 8

32.1.‐Algoritmo

Inicio {calcular el area y el volumen de un hexaedro} {Ingresamos Lado} Leer lado {Calculamos el area} area =(lado*lado)*6 {Calculamos el volumen) volumen= (lado*lado*lado) {Mostramos el volumen y area} Escribir area, volumen

Fin

32.2.‐Codificacion(C#)

static void Main(string[] args) {

double lado, area, volumen;

//ingresamos el lado del hexaedro Console.Write("Ingrese Lado:");

lado = double.Parse(Console.ReadLine()); //calculamos el area

area = (lado * lado) * 6; //calculamos el volumen volumen = Math.Pow(lado, 3);

//mostramos el area y el volumen del hexaedro

Console.WriteLine("El Area del Hexaedro es :{0}",area);

Console.WriteLine("El Volumen del Hexaedro es :{0}",volumen); Console.Read();

(52)

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.

(53)

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

(54)

‐bool

35.1‐Codificacion(C#)

static void Main(string[] args) {

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

}

PROBLEMAS PROPUESTOS

1.‐Escribir un algoritmo y su codificación para que sume dos números complejos 2.‐Escribir un algoritmo y su codificación para que multiplique dos números complejos 3.‐La Universidad Tecnológica de los Andes ah recibido tres donaciones en soles, dólares y marcos. La donación será repartida en tres rubros: 60% para la implementación de un centro de estudios, 40% para un comedor de estudiantes y el resto para gastos administrativos. Diseñe un algoritmo y su codificación que determine el monto en euros que le corresponde a cada rubro. Considere que: 1 dólar=3.52 soles, 1 dólar=2.08 marcos, 1 dólar=1.07 euros. 4.‐En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo y su codificación para determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora= 60 minutos, 1 minuto = 60 segundos, 1 segundo=100 centésimas de segundo, 1 kilometro=1000 metros.

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

6.‐Diseñe un algoritmo y su codificación para sumar dos tiempos dados en horas, minutos y segundos.

7.‐El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de S/250 más el 12% del monto total vendido. Diseñe un algoritmo y su codificación que determine el sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes.

8.‐En países de habla inglesa es común dar la estatura de una persona como la suma de una cantidad entera de pies más una cantidad entera de pulgadas. Así, la estatura de una persona podría ser 3’ 2’’ (3 pies 2 pulgadas).Diseñe un algoritmo y su codificación que determine la estatura de una persona en metros, conociendo su estatura en el formato ingles. Considere que : 1 pie=12 plg, 1 plg= 2.54 cm , 1 m = 100cm.

(55)

9.‐Diseñe un algoritmo y su codificación que exprese la capacidad de un disco duro en megabytes, kilobytes y bytes, conociendo la capacidad del disco en gigabytes. Considere que:1 kilobyte=1024 bytes, 1 megabyte=1024 kilobyte, 1 gigabyte= 1024 megabytes.

10.‐Diseñe un algoritmo y su codificación que intercambie las cifras de las unidades de dos números naturales.

11.‐Diseñar un algoritmo y su codificación que lea dos valores reales y nos muestre los resultados de sumar,restar,dividir y multiplicar dichos números.

12.‐Queremos conocer los datos estadísticos de una asignatura, por lo tanto, necesitamos un algoritmo y su codificación que lea el número de suspensos, aprobados,notables y sobresalientes de una asgnatura, y nos devuelva:

a.El tanto por ciento de alumnos que han superado la asignatura.

b. El tanto por ciento de suspensos, aprobados, notables y sobresalientes de la asignatura. 13.‐ El siguiente es el menú de un restaurante de bocadillos. Diseñar un algoritmo y su codificación capaz de leer el número de unidades consumidas de cada alimento ordenado y calcular la cuenta total.

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

14.‐El coste de un automóvil nuevo para un comprador es la suma total del coste del vehículo, del porcentaje de la ganacia del vendedor y de los impuestos locales o estatales aplicables (sobre el precio de venta).Suponer una ganancia del vendedor del 12 % en todas lasunidades y un impuesto del 6% y diseñar un algoritmo y su codificación para leer el coste total del automóvil e imprimir el coste para el consumidor.

15.‐ Queremos realizar un pequeño programa para introducirlo en el ordenador de a bordo de nuestro coche y que nos informe del consumo medio del coche. Diseña un algoritmo que lea el kilometraje de la última vez que se repostó, el kilometraje actual, los litros de gasolina que se repostaron la última vez y la cantidad de gasolina actual. El algoritmo devolverá la cantidad de litros cada 100 kilómetros que consume nuestro coche.

16.‐Dada las horas trabajadas de una persona y el valor por hora. Diseñe un algoritmo y su codificación para calcular su salario e imprimirlo.

17.‐Diseñe un algoritmo y su codificación correspondiente a un programa que escribe el porcentaje descontado en una compra, introduciendo por teclado el precio de la tarifa y el precio pagado.

(56)

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

19.‐Diseñar un algoritmo y su codificación correspondiente a un programa que exprese en horas, minutos y segundos un tiempo expresado en segundos.

20.‐ Diseñar el algoritmo y su codificación que pida el total de kilómetros recorridos, el precio de la gasolina (por litro), el dinero de gasolina gastado en el viaje y el tiempo que se ha tardado (en horas y minutos) y que calculo:

• Consumo de gasolina (en litros y euros) por cada 100 km. • Consumo de gasolina (en litros y euros) por cada km • Velocidad media (en km/h y m/s)

21.‐Diseñe un algoritmo y su codificación que al introducir una cantidad de dinero expresado en euros nos indique cuantos billetes y monedas se puede tener como mínimo.

22.‐Suponiendo que una paella se puede cocinar exclusivamente con arroz y gambas, y que para cada cuatro personas se utiliza medio kilo de arroz y un cuarto de kilo de gamas, escribir un programa que pida por pantalla el número de comensales para paella, el precio por kilo de los ingredientes y muestre las cantidades de los ingredientes necesarios y el coste de la misma.

23.‐leer un numero y escribir el valor absoluto del mismo.

24.‐la presión, el volumen y la temperatura de una masa de aire se relacionan por la fórmula Masa= (presión*volumen)/ (0.37*(temperatura+460))

25.‐ Calcula el numero de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la fórmula es:

Num.pulsaciones= (220 ‐ edad)/10

26.‐Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.

27.‐ Escribir un programa que calcule la velocidad de un proyectil que recorre 2 Km en 5 minutos. Expresar el resultado en metros/segundo.

Velocidad=espacio/tiempo

28.‐ Escribir un programa que calcule el área y el volumen de un tetraedro. 29.‐ Escribir un programa que calcule el area y el volumen de un cono.

30.‐ Escribir un programa que lea dos números enteros A y B, y obtenga los valores A div B, A mod B.

(57)

31.‐ Escribir un programa que calcule el numero de horas, minutos y segundos que hay en 3700 segundos.

32.‐Escribir un programa que calcula la siguiente expresión trigonométrica para un valor angular de 90º

(sen x * cos x)/ (tan x)

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

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)

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.

Referencias

Documento similar