PROBLEMAS PROPUESTOS


 

EJERCICIOS PROPUESTOS

 

 

[1] - [2] - [3] - [4] - [5] - [6]

 

 

1. Realizar, a partir de un archivo de texto text.txt, un script bash con el nombre eu01.bash para mostrar en pantalla: un listado de frecuencias de palabras, ordenado por frecuencias descendente, tal que las palabras están en mayúsculas.

 

PRE: El archivo que contiene el texto se llama text.txt. No se hace ninguna hipótesis sobre los caracteres que están contenidos en el texto. El texto puede contener cualesquiera caracteres de control, puntuación, llaves de cierre y apertura, corchetes de cierre y apertura, caracteres hash, caracteres de mayor y menor, tabuladores, operadores aritméticos, barra invertida, carácter underscore, paréntesis de apertura y cierre y dígitos. El archivo de texto no contiene caracteres gráficos. El archivo de texto puede ser de cualquier tamaño (puede contener tantas líneas como se quieran). El texto contiene palabras en el idioma español y, opcionalmente, en inglés.

 

POST: La salida resultado tiene EXACTAMENTE la forma que se indica abajo. Observe que los espacios se han significado con asteriscos. La longitud de las lineas de la salida es exactamente la que se expone. Observe igualmente, que si existen palabras que no quepan en el lugar reservado para las palabras, entonces, se tendrá que recortar la palabra. En cualquier caso, las frecuencias están justificadas a la derecha y las palabras a la izquierda. Al final aparecen dos valores numéricos referidos al archivo text.txt: el total de consonantes que aparecen en el texto, incluida la eñe, así como el total de vocales (incluyendo las vocales acentuadas o diéresis), tanto si están en mayúsculas o minúsculas.

-----------------------------------
|·····FRECUENCIAS DE PALABRAS·····|
-----------------+-----------------
|···········9321·|·EL·············|
|···········9300·|·DE·············|
|···········7001·|·PARA···········|
|············321·|·CAMIÓN·········|
|·············21·|·RUTA···········|
|·············21·|·CARRETERAS·····|
|··············1·|·ESTERNOCLEIDOMA|
-----------------+-----------------
|·CONSONANTES····|············2361|
-----------------+-----------------
|·VOCALES········|············9300|
-----------------------------------

 

 

2. Realizar un programa Gawk que imprima por pantalla un rango de numeros naturales comprendido en el intervalo [i,j]. Inicializar las variables i, j en el bloque BEGIN con los valores deseados. SE PIDE: realizar un bash script eu02.bash que devuelva por STDOUT, la sucesión de los números del rango pero en una sola línea sin retorno de carro, y de la forma que se detalla a continuación. Observe que los números están encerrados entre doble comilla y que el delimitador de campo (field delimiter) es el caracter [;]. Nota: recuerde terminar cada sentencia del programa Gawk con [;]. Se considera erróneo no poner punto y coma adecuadamente. Restricciones: si i es menor que 1 la secuencia deberá comenzar necesariamente por 1, si j es mayor que 999 el programa deberá mostrar tan solo los 999 primeros valores. Los numeros tienen un formato de relleno con ceros a la izquierda y una longitud de 3 caracteres exactamente. Nota importante: OBSERVE COMO EL ULTIMO DATO NO TIENE [;] AL FINAL DE LA SECUENCIA.

 

BEGIN { i = 1; j = 6;
·········
········· (programa que se pide)
·········
}
{
}
END {
}

SALIDA POR PANTALLA:

"001";"002";"003";"004";"005";"006"

 

 

3. Realizar un programa Gawk que imprima por pantalla un rango de numeros naturales PARES o IMPARES que sean multiplos de 3, de 5 y de 7, descartando los que no cumplan este requisito. Igual que el ejercicio anterior, los naturales están comprendidos en el intervalo [i,j]. Inicializar las variables i, j en el bloque BEGIN con los valores deseados. SE PIDE: realizar un bash script eu03.bash que devuelva por STDOUT, la sucesión de los números del rango pero en una sola línea sin retorno de carro, y de forma que estén ordenados descendentemente. Observe que los números están encerrados entre doble comilla y que el delimitador de campo (field delimiter) es el caracter [;]. Nota: recuerde terminar cada sentencia del programa Gawk con [;]. Se considera erróneo no poner punto y coma adecuadamente. Restricciones: si i es menor que 1 la secuencia deberá comenzar necesariamente por 1, si j es mayor que 999999999 el programa deberá mostrar tan solo los 999999999 primeros valores. Los numeros tienen un formato de relleno con ceros a la izquierda y una longitud de 9 caracteres exactamente. Nota importante: OBSERVE COMO EL ULTIMO DATO NO TIENE [;] AL FINAL DE LA SECUENCIA.

 

BEGIN { i = 1; j = 1623521452514;
·········
········· (programa que se pide)
·········
}
{
}
END {
}

SALIDA POR PANTALLA:

"999999995";"999999998";"9999999007"; ..... ;"000000007";"000000005";"000000003"

 

 

4. Realizar un programa Gawk que imprima por pantalla un rango de numeros naturales PARES o IMPARES que sean multiplos de 3, de 5 y de 7, descartando los que no cumplan este requisito. Igual que el ejercicio anterior, los naturales están comprendidos en el intervalo [i,j]. Inicializar las variables i, j en el bloque BEGIN con los valores deseados. SE PIDE: realizar un bash script eu04.bash que devuelva por STDOUT, la sucesión de los números del rango pero en una sola línea con retorno de carro, y de forma que estén ordenados ascendentemente. En la segunda línea, mostrar la sumatoria de esos números con el formato %30d. En la tercera línea mostrar el número de datos obtenidos N, con un formato %9d. En la cuarta línea mostrar la media con 8 dígitos de precisión. En la quinta línea mostrar la desviación típica con una precisión de 200 decimales. Observe que los números están encerrados entre doble comilla y que el delimitador de campo (field delimiter) es el caracter [;]. Nota: recuerde terminar cada sentencia del programa Gawk con [;]. Se considera erróneo no poner punto y coma adecuadamente. Restricciones: si i es menor que 1 la secuencia deberá comenzar necesariamente por 1, si j es mayor que 999999999 el programa deberá mostrar tan solo los 999999999 primeros valores. Los numeros tienen un formato de relleno con ceros a la izquierda y una longitud de 9 caracteres exactamente. Nota importante: OBSERVE COMO EL ULTIMO DATO NO TIENE [;] AL FINAL DE LA SECUENCIA.

 

BEGIN { i = 1; j = 1623521452514;
·········
········· (programa que se pide)
·········
}
{
}
END {
}

SALIDA POR PANTALLA:

"000000003";"000000005";"000000007"; ... ;"999999995";"999999998"
Sum(n) = 12544445112854
N = ········874511
Media = 452.12345678
Dt = 12.1565465469846984984698....

 

 

5. Realizar un programa Gawk que imprima por pantalla una tabla como la que se expresa abajo, partiendo de una variable N, N pertenece a los números naturales, inicializada en el bloque BEGIN del programa Gawk. SE PIDE: realizar un bash script eu05.bash que devuelva por STDOUT dicha tabla. Nota: recuerde terminar cada sentencia del programa Gawk con [;]. Se considera erróneo no poner punto y coma adecuadamente. Restricciones: NO se puede utilizar ninguna sentencia if para determinar la paridad/imparidad de un número y el ejercicio tan solo debe utilizar el número mínimo de variables

 

BEGIN { N = 5;
·········
········· (programa que se pide)
·········
}
{
}
END {
}

SALIDA POR PANTALLA:

+----------+--------------------+--------------------+------------+
|····x·····|·······1/x··········|·PAR··········IMPAR·| NOS. PRIMOS|
+----------+--------------------+--------------------+------------+
|0000000001|·········1.000000000|·IMPAR··············|·PRIMO······|
|0000000002|·········0.500000000|················PAR·|·----------·|
|0000000003|·········0.333333333|·IMPAR··············|·PRIMO······|
|0000000004|·········0.250000000|················PAR·|·----------·|
|0000000005|·········0.200000000|·IMPAR··············|·PRIMO······|
+----------+--------------------+--------------------+------------+
| TOTAL NUMEROS PRIMOS ENCONTRADOS EN EL INTERV.[1-N]|··········3·|
+----------------------------------------------------+------------+
| EL NUMERO PRIMO MAS GRANDE ENCONTRADO ES EL .......|··········5·|
+----------------------------------------------------+------------+
| TIEMPO ESTIMADO DE PROCESO (en segundos)···········|······ 2356·|
+----------------------------------------------------+------------+

 

6. Realizar un programa Gawk que imprima por pantalla los números del 1 al 100 pares e impares, de la siguiente forma:

 

0 --- 99
2 --- 97
4 --- 95
6 --- 93
8 --- 91
... ...
... ...
100 --- 1
1