Unidad didáctica I
Programa 1. hola.mod
Escribir un programa en Modula2 que diga “hola
mundo”
Programa 2. fulanito.mod (**)
Modificar el programa anterior para que le pida el nombre
al usuario y diga “hola fulanito”. ¿Qué problemas
surgen?. (Se verá más adelante cómo solucionar los
problemas surgidos…) Por ejemplo:
Hola fulanito
=============
¿Cómo te llamas?: Miguel Angel (se
ecribe un nombre)
Hola Miguel Angel (saluda “hola”
+ el nombre)
Programa 3. mengano.mod
Modificar el programa anterior para que tome el nombre
de usuario de la línea de comandos. En caso de no existir argumentos
en la línea de comandos, que le pida el nombre al usuario. El resultado,
en cualquier caso es “hola mengano”. Por ejemplo con argumentos
en la línea de comandos:
C:>mengano Miguel Angel
Hola Miguel Angel
C:>_
Ejemplo en el que no se especifican argumentos en la
línea de comando:
C:>mengano
¿Cómo te llamas?: Miguel Angel (se
ecribe un nombre)
Hola Miguel Angel
C:>_
Programa 4.cuadrado.mod (**)
Escribir un programa en Modula2 que pida un numero natural
(entero y no negativo) y devuelva el cuadrado del número. ¿Hasta
qué número se puede pedir al usuario, para poder devoler
el cuadrado del mismo? ¿Y con números naturales?
Programa 5.tabla2.mod
Escribir un programa en Modula2 que imprima en pantalla
la tabla de multiplicar del 2. El formato debe ser el siguiente (obsérvese
la tabulación) :
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
...
2 x 9 = 18
2 x 10 = 20
Programa 6.tablamul.mod
Modificar el programa anterior para que imprima cualquier
tabla de multiplicar, dependiendo de un dato introducido por el usuario.
Programa 7.tablamv2.mod (**)
Modificar el programa anterior para que imprima cualquier
tabla de multiplicar, desde un número X hasta un número
Y cualesquiera, dependiendo de los datos introducidos por el usuario.
Es decir, se le pide al usuario el número de tabla (N), desde dónde
(X) hasta dónde (Y) se quiere imprimir.
Tabla de multiplicar
====================
Introduzca un número para la tabla: 2 (se escribe
un número)
desde: 4 (se escribe un número)
hasta: 8 (se escribe un número)
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
¿Qué parámetros recibe este programa
para hacer exactamente lo mismo que tabla2.mod?
Programa 8.supertab.mod
Escribir un programa en Modula2 que imprima la siguiente
tabla:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
Pensar en distintas implementaciones para hacer este
programa,
Programa 9.repsimb.mod (**)
Escribir un programa en Modula2 que imprima un carácter
dado, un número de veces dado. Pedir al usuario estos datos. Por
ejemplo:
Repetir símbolo
===============
Introduzca un símbolo: *
(asterisco)
Introduzca un número: 10
(diez)
**********
(resultado: 10 asteriscos)
Programa 10.rombo.mod (**)
Escribir un programa en Modula2 que dado un numero N
construya en pantalla un rombo de N símbolos por cada lado. Por
ejemplo:
Rombo
===============
Introduzca un número: 4
*
***
*****
*******
*****
***
*
Programa 11.romboh.mod
Escribir un programa en Modula2 que dado un número
N construya en pantalla un rombo hueco de N símbolos por cada lado.
Por ejemplo:
Rombo
===============
Introduzca un número: 4
*
* *
* *
* *
* *
* *
*
Programa 12.rombop.mod (**)
Escribir un programa en Modula2 que, dado un número
N, construya en pantalla un cuadrado de N símbolos por cada lado,
apoyado sobre uno de sus vértices. Obsérvese que se puede
usar el programa del rombo, aplicando un factor de proporción.
(¿cuál es la relación de filas/columnas?) Por ejemplo:
Rombo proporcional
==================
Introduzca un número: 4
*
*****
*********
*************
*********
*****
*
Programa 13.Máximo y mínimo
(**)
Escribir el fragmento de código de Modula2 que
permita determinar si una variable contiene un valor mayor (menor) que
el de otra variable.
Programa 14.Intercambiar valores (**)
Escribir el fragmento de código de Modula2 que
permita intercambiar el valor entre dos variables. Pista: Intercambiar
el líquido de dos vasos, sin que se mezclen.
Programa 15.serie.mod (**)
Escribir un programa en Modula2 que escriba el resultado
de la suma de los N primeros números, es decir, el resultado de
la serie aritmética 1 + 2 + 3 + … + N. ¿se conoce
la fórmula de esta serie?
Programa 16.distancia.mod (**)
Escribir un programa en Modula2 que dados dos puntos
del plano, mediante sus coordenadas cartesianas (x1, y1) (x2, y2), calcule
la distancia euclídea entre ellos, es decir, la distancia “habitual”.
Aplicar Pitágoras.
Programa 17.triangul.mod
Escribir un programa en Modula2 que dados tres datos
numéricos a, b y c, que representan los lados de un triángulo,
diga información acerca de cómo es este triángulo:
Equilátero, Isósceles, Escaleno, Rectángulo; calcule
el perímetro; y caso de ser un triángulo imposible que lo
indique (un lado mayor que la suma de los otros dos, o un lado con un
valor negativo o cero). Realizar un diagrama de flujo.
Programa 18.fib.mod (**)
Escribir un programa en Modula2 que imprima en pantalla
la serie de Fibonacci: (Utilizando enteros o cardinales, hallar todos
los términos posibles)
0 1 1 2 3 5 8 11 17 28 45 73 128 201 329 530 859 1389
2248
Programa 19.primo.mod (**)
Escribir un programa en Modula2 que determine si un número
es primo o no.
Programa 20.pascal.mod
Escribir un programa en Modula2 que, dado un número
natural, pinte tantas líneas del triángulo de Pascal.
Programa 21.tartaglia.mod
Escribir un programa en Modula2 que, dado un número
natural, pinte tantas líneas del triángulo de Tartaglia.
Programa 22.palindro.mod
Escribir un programa en Modula2 que determine si un vector
de caracteres contiene un texto palíndromo o no (palíndromo
es al texto lo que capicúa a los números). No se consideran
los espacios. Ejemplos de palíndromos: “arenera”, “sos”,
“dabale arroz a la zorra el abad”
Programa 23.sumacomp.mod (**)
Escribir un programa en Modula2 que determine la suma
de las componentes de un vector de enteros.
Programa 24.paridad.mod
Escribir un programa en Modula2 que dado un array de
texto diga si el array contiene una cadena de paréntesis correcta,
es decir, tiene pardidad. Si por cada paréntesis de abrir, existe
uno de cerrar, y en ningún momento se cierra un paréntesis
que no ha sido abierto. ¿Qué ocurre si introducimos una
regla más: contemplar los corchetes, llaves…?
()
<correcta>
((()())())
<correcta>
)(
<incorrecta>
)
<incorrecta>
(()
<incorrecta>
Programa 25.mimenu.mod (**)
Escribir un programa en Modula2 que tenga la estructura
de un menú principal (de un programa típico de MS-DOS de
los de los años 80). Que presente opciones en pantalla (seleccionables
mediante un número, o una letra), pida una tecla y esté
preparado para realizar la opción elegida por el usuario. No acaba
hasta que el usuario no pulsa la opción “Salir”. Realizar
un diagrama de flujo.
************
* Mi Menu *
************
1.- Saludar
2.- Rombo
3.- Tabla multiplicar
…
9.- Triángulos
0.- Salir
Opción: _
Programa 26.burbuja.mod (**)
Escribir un programa en Modula2 que ordene los elementos
de un vector por el método de la burbuja.
Programa 27.ordinser.mod (**)
Escribir un programa en Modula2 que ordene los elementos
de un vector por el método de inserción directa.
Programa 28.ordselec.mod (**)
Escribir un programa en Modula2 que ordene los elementos
de un vector por el método de selección directa.
Programa 29.busdicot.mod (**)
Escribir un programa en Modula2 que determine en qué
posición está un elemento X dentro de un vector V de 100
posiciones, mediante el método de la búsqueda dicotómica.
Se tienen que dar la siguientes circunstancias:
· El
vector está ordenado en orden creciente (por ejemplo) y sin huecos,
y
· el
elemento buscado existe.
¿Cuántos pasos son necesarios? ¿y
para un vector de 1000 posiciones?
Programa 30.Máximo de un vector
Escribir un programa en Modula2 que determine la posición
en la que se encuentra el elemento máximo de un vector.
Si existen varios iguales, entonces se considerará
una de las tres siguientes implementaciones: Devolver el primero, devolver
el ultimo, devolver todos. (Ojo, devolver la posicion de todos los datos,
NO imprimirlos en pantalla.
Programa 31.Máximo de una matriz
Escribir un programa en Modula2 que, dada una matriz
de m filas y n columnas de enteros, determine la posición en la
que se encuentra el primer elemento con un valor máximo absoluto.
[puede que haya más próximamente]
Unidad didáctica II
[próximamente]
Unidad didáctica III
[próximamente]
|