¡Descarga Ejercicios de programación resueltos con C# y más Ejercicios en PDF de Matemáticas solo en Docsity!
Aprende programación:
15 Ejercicios resueltos en C#.
Matías Salom Avellà
Ejercicios de programación resueltos con C#. Capítulo 0: Iniciación a la programación
Presentación:
Este libro de ejercicios pretende ser un complemento de otros libros más completos y con más
fundamentos teóricos, pero que pueden necesitar ejercicios actualizados para asimilar mejor la
teoría.
Es un libro de ejercicios indicado para una primera aproximación a la programación, pudiendo ser
parte de la asignatura de “Fundamentos de la programación” o para una formación autodidacta.
Está en preparación otro libro para completar los temas referentes a la programación visual y el
acceso a dates desde lenguajes de programación .NET.
Para cualquier consulta al autor, se puede acceder a la web www.ibserveis.com, y desde allí al
apartado de Consulta.
Ejercicios de programación resueltos con C#. Capítulo 0: Iniciación a la programación
Capítulo 0
Iniciación a la resolución de problemas estructuradamente con PSEUDOCODIGO
Es de gran importancia, antes de empezar a teclear con el ordenador, plantear correctamente la
solución de nuestro proyecto.
Existen infinitas soluciones para cada uno del problemas que podremos programar. Siempre
podemos encontrar la solución más adecuada, por ser la más práctica y fácil de implementar.
La filosofía de “la solución más simple, es probablemente la más acertada” (Navaja de Occam, wiki:
Occam) y su actualización para proyectos informáticos: la filosofía KISS (Keep it Simple) , serán las
filosofías que se considerarán prioritarias para resolver estos ejercicios.
Como ejemplo anecdótico (totalmente falso , pero ilustrativo):
Se comenta que la NASA invirtió muchos millones en un bolígrafo capaz de escribir boca arriba y en
condiciones extremas de temperaturas, la URSS hizo servir lápices. (la historia real en google:
sondas espaciales boli)
Un buen artículo respecto a mantener la simplicidad en el software (google: soitu keep simple)
http://www.soitu.es/soitu/2008/03/14/pieldigital/1205521516_335354.html
Y si alguien aún duda que la simplicidad es bella ,eficiente e indicada para la realización de proyectos,
puede aplicar que el “tiempo es oro” si se tiene que desarrollar un proyecto para una empresa, con
un presupuesto y tiempo limitado.
Estos ejercicios pueden ser ejecutados en un entorno de programación actual (2008), i gratuito:
Microsoft Visual C# Express edition.
Por otra parte, para todos aquellos que no tienen intención de seguir el ritmo de las novedades
informáticas, puede visitar esta web:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=devesb
http://www.adictosaltrabajo.com/detalle-noticia.php?noticia=
google: adictos al trabajo tutoriales C#
Ejercicios de programación resueltos con C#. Capítulo 0: Iniciación a la programación
INTENTAR SOLUCIONAR LOS EJERCICIOS ANTES DE VER LA SOLUCIÓ PROPUESTA.
Breve explicación de los enunciados del Capítulo 0:
Lo más importante de estos primeros ejercicios es la “ordenación de instrucciones”.
Existen muchas soluciones para cada enunciado. Se propone una, lo más ordenada y estructurada
posible para que los programas realizados más adelante también sean estructurados.
0.1) Pasos a seguir para conseguir cambiar una cuerda de guitarra
Para cambiar una cuerda de guitarra se hacen una serie de movimientos en el clavijero para
conseguir la tensión necesaria en cada cuerda, estos pasos son los que describe la solución.
0.2) Resolución del algoritmo de compra de una camisa
En el día a día realizamos muchas acciones que podrían formar parte de un programa, es como si
tuviéramos que dar las instrucciones , justas y necesarias, a un robot para escoger ropa.
Pensar en que instrucciones, paso a paso, seguimos para escoger ropa en una tienda.
0.3) Reparación de una fuente de agua que no funciona.
En todas las reparaciones, sean de ordenadores o de otras máquinas se sigue un algoritmo para
conseguir que la reparación sea lo más rápida y eficiente posible. En el ejercicio es una fuente, pero
podría ser perfectamente cualquier máquina, motor, o aparato electrónico.
0.4) PSEUDOCODIGO que calcula la suma de los números enteros entre 1 y 10 (1+2+3+4....)
Este es el primer ejercicio “matemático”, las instrucciones para resolver el problema son más
abstractas que los ejercicios anteriores, pero siguen teniendo una dificultad inicial baja.
¿Qué instrucciones daríamos a un niño de primaria para que sume los 10 primeros números?
0.5) Pseudocódigo para calcular el producto de números enteros del 10 al 20 101214...
El mismo tipo de ejercicio anterior, pero con otra operación matemática.
Ejercicios de programación resueltos con C#. Capítulo 0: Iniciación a la programación
0.3) Reparación de una fuente de agua que no funciona.
El sistema a reparar consta de un motor dentro de una fuente que hace salir agua. En el exterior hay
una caja de conexión eléctrica a la cual llega la corriente. Sale de esta caja, un cable de corriente que
se conecta a un enchufe de 220V.
Inicio
Mientras Fuente NO Marcha hacer
¿Llega corriente al motor?
NO llega corriente al motor
¿Llega corriente a la caja?
NO llega corriente a la caja
¿Hay corriente en el enchufe?
NO hay corriente en el enchufe
Reparar enchufe
Fuente Sí marcha
SÍ hay corriente
Reparar cable enchufe-caja
Fuente Sí marcha
SÍ llega corriente a la caja
Reparar cable entre caja y motor de la fuente
Fuente Sí marcha
SÍ llega corriente al motor
Cambiar motor
Fuente Sí marcha
Fin Mientras
Avisar que ya funciona
Cobrar factura
Fin
Ejercicios de programación resueltos con C#. Capítulo 0: Iniciación a la programación
0.4) PSEUDOCODIGO que calcula la suma de los números enteros entre 1 y 10 (1+2+3+4....)
inicio
suma 0: conta 0
Mientras conta menor que 10
conta conta + 1
suma suma + conta
Fin Mientras
Escribir “La suma es”; suma
fin
0.5) Pseudocódigo para calcular el producto de números enteros del 10 al 20 101214...
inicio
suma 0: conta 10: producto 1
Mientras conta menor o igual que 20
producto producto * conta
conta conta + 2
Fin Mientras
Escribir “El producto es”; producto
fin
Ejercicios de programación resueltos con C#. Capítulo 1: Primeros programas
Capítulo 1: Programas ejecutables en Basic y C#
Breve explicación de los enunciados del Capítulo 1:
Hemos aprendido como plantear un algoritmo de resolución un problema, ahora necesitamos
aprender el “idioma” del ordenador para que ejecute la solución diseñada.
Para que el ordenador entienda nuestras instrucciones, necesitaremos un entorno de trabajo (IDE)
que nos permita escribir y corregir código, así como también ejecutarlo.
Por su proximidad al pseudocódigo y su facilidad de aprendizaje, se han resuelto unos cuantos
ejercicios en lenguaje Basic. El entorno de trabajo escogido es el del SmallBasic, inicialmente
destinado a máquinas portátiles y móviles, tiene versiones para muchos sistemas operativos:
- BASIC: http://smallbasic.sourceforge.net/ , version: smallbasic 0_9_7_ftlk
No es el objetivo de este libro enseñar a manejar entornos de programación. Existen tutoriales muy
buenos en internet para empezar a programar en Microsoft Visual C#:
Google: Tutorial c#
www.devjoker.com : Tutorial C#
http://functionx.com/csharp/Lesson01.htm : FunctionX
Libro gratuito recomendado: www.josanguapo.com
Ejercicios de programación resueltos con C#. Capítulo 1: Primeros programas
1.1) 1.2) Comprobar con la calculadora del S.O. 4 digitos binarios son 1 digito hexadecimal.
La relación decimal-hexadecimal-binario puede haber perdido importancia en lenguajes de alto
nivel, pero ha sido la base matemática de muchas operaciones en lenguaje C.
1.3) Programa que calcula la suma de los números enteros entre 1 y 10 (1+2+3+4....)
1.4) Programa producto números enteros del 10 al 20 101214...
Podemos ver que los ejercicios 1.4 - 1.5 tienen fácil traslación al lenguaje de programación BASIC.
1.5 - 1.6) Programa: usuario introduce números y el ordenador cuenta cuantos son positivos.
Ya podemos comparar ambos lenguajes BASIC- C# , el mismo pseudocódigo escrito en cada uno de
estos lenguajes. Nuestra “Piedra de Rosetta” particular (google: piedra rosetta)
1.7) Contabiliza personas de más de 180, entre 180 y 170, entre 170 y 160, y más bajas que 160cm.
El mismo pseudocódigo que el ejercicio 1.7 para comprobar que si hemos pensado correctamente la
solución, es fácil implementarla con un lenguaje de programación. Solución con C# en el 2.
1.8) Programa para poner notas: suspendido, aprobado, bien... con la nota numérica.
Solución del ejercicio 1.9 con lenguaje C#
1.13) Realizar programa en el que el ordenador “piensa” en un número al azar entre 1 y 50.
El usuario ha de adivinarlo en 5 oportunidades. El ordenador señalará si es mayor o menor.
Ejercicios de programación resueltos con C#. Capítulo 1: Primeros programas
1.5) Programa : El usuario introduce números y el ordenador cuenta cuantos son positivos.
REM Programa conta número positivos
positius =0: conta =
INPUT "Introduce número";numero
WHILE numero <>
conta = conta + 1
if numero >0 then positivos = positivos +
INPUT "Introduce número";numero
WEND
PRINT "Has introducido un total de "; conta
PRINT "y son positivos "; positivos
END
TUTORIAL INICIO C# : http://functionx.com/csharp/Lesson01.htm
using System; using System.Collections.Generic; using System.Text;
namespace Proyecto { class Holamundo { public static void Main(String[] args) { Console.WriteLine("¡Hola {0}!", args[0]); } } }
Compilar: csc Holamundo.cs
Ejecutar: Holamundo Maria
Ejercicios de programación resueltos con C#. Capítulo 1: Primeros programas
1.6) Programa : El usuario introduce números y el ordenador cuenta cuantos son positivos.
class Program { static void Main(string[] args) { int positivos = 0; int conta = 0; int numero;
Console.WriteLine("Introduce número "); numero = Int32.Parse(Console.ReadLine());
while (numero != 999) { conta = conta + 1; if (numero > 0) positivos = positivos + 1;
Console.WriteLine("Introduce número "); numero = Int32.Parse(Console.ReadLine()); }
Console.WriteLine("Has introducido un total de {0}", conta); Console.WriteLine("y son positivos {0}", positivos);
} //fin Main }
1.7) Contabiliza personas de más de 180, entre 180 y 170, entre 170 y 160, y más bajas que 160cm.
REM Programa estadísticas altura
conta1 = 0:conta2=0:conta3 =0:conta4 =
INPUT "Introduce altura en cm"; altura
WHILE altura <> 999
if altura>=160 then
if altura>=170 then
if altura >=180 then
conta1 = conta1 + 1
else
conta2 = conta2 + 1
fi
else
conta3= conta3 + 1
fi
else
conta4=conta4 + 1
fi
INPUT "Introduce altura en cm"; altura
WEND
print "Más grandes de 180 " ;conta
print "Entre 170 y 180 ";conta
print "Entre 160 y 170 ";conta
print "Más bajas que 160 ";conta
END
Ejercicios de programación resueltos con C#. Capítulo 1: Primeros programas
1.13 ) Realizar programa en el que el ordenador “piensa” en un número al azar entre 1 y 50.
El usuario ha de adivinarlo en 5 oportunidades. El ordenador señalará si es mayor o menor.
rem randomize(timer)
label inicio
cls
conta =0: numero =0: azar =0:encertat =
azar = int(rnd*50)+
WHILE conta < 5 AND acertado = 0
PRINT "Oportunidades que quedan: "; (5-conta);
PRINT "Introduce numero "
INPUT numero
if numero > azar then
PRINT "El numero es menor"
else
if numero < azar then
PRINT "El numero es mayor"
else
PRINT "Enhorabona, has acertado"
acertado = 1
endif
endif
conta = conta +
WEND
PRINT:PRINT "Fin del programa"
Ejercicios de programación resueltos con C#. Capítulo 2: Bucles y Funciones
Capítulo 2
Bucles y Funciones
Ejercicios de programación resueltos con C#. Capítulo 2: Bucles y Funciones
2.1) Programa en el que el ordenador lanza 50 veces un dado y cuenta cuantas veces sale el nº 1.
contador =
randomize timer
cls
for t = 1 to 50
dado = int(rnd*9)+
print dado;
if dado = 1 then contador = contador + 1
next t
print "Han salido ";contador ;" números 1 a la lista"
end
VERSIÓ C#
static void Main(string[] args) { int contador =0; int dado=0; Random numero = new Random(); Console.Clear();
for (int t = 0; t<=50; t=t + 1) { dado = numero.Next(1, 7); if (dado == 1) { contador = contador + 1; Console.ForegroundColor = ConsoleColor.Red; } else Console.ForegroundColor = ConsoleColor.Gray;
Console.Write(" {0}", dado); }
Console.WriteLine("-"); Console.WriteLine("Ha salido el número1 {0} veces",contador); }
google: Consola C# , console C#
http://www.c-sharpcorner.com/UploadFile/scottlysle/ColorConsoleCS06082008055747AM/ColorConsoleCS.aspx
Ejercicios de programación resueltos con C#. Capítulo 2: Bucles y Funciones
2.2) Programa que muestra 15 líneas como estas: 1 12 123 1234
static void Main(string[] args) { int i, j; for (i = 1; i <= 15; i++) // 15 lineas { for (j = 1; j <= i; j++) // números a cada línea Console.Write(" - {0}", j); Console.WriteLine(" ") ; } }
2.3) Programa que dibuja un Triangulo isósceles
static void Main(string[] args) { Console.Clear();
// dibujo de cada linea (bucle externo) for (int fila=1; fila <= 7; fila ++) { //dibuja espacios en blanco (1er bucle interno) for (int espacios = 7 - fila; espacios > 0; espacios--) Console.Write(" ");// espai en blanc
// dibuja estrellas (2º bucle interno) for (int conta = 1; conta < (2 * fila); conta++) Console.Write("*");
Console.WriteLine(" "); } }