1 o 2 participantes.
Este ejercicio se debe hacer en tu computadora equipada de algún sistema Linux, usando el compilador gcc
.
El objetivo de este ejercicio es escribir un programa que tenga el comportamiento mostrado en los ejemplos que siguen:
/var/root # ./arrcalc
[2,2,0,7,2]
Suma: 13
Promedio: 2
Maximo: 7
Minimo: 0
La lista no esta ordenada porque 2 > 0.
/var/root # ./arrcalc
[6,6,5,7,1]
Suma: 25
Promedio: 5
Maximo: 7
Minimo: 1
La lista no esta ordenada porque 6 > 5.
/var/root # ./arrcalc
[0,7,3,2,7]
Suma: 19
Promedio: 3
Maximo: 7
Minimo: 0
La lista no esta ordenada porque 7 > 3.
/var/root # ./arrcalc
[6,7,9,7,5]
Suma: 34
Promedio: 6
Maximo: 9
Minimo: 5
La lista no esta ordenada porque 9 > 7.
/var/root # ./arrcalc
[1,1,1,6,6]
Suma: 15
Promedio: 3
Maximo: 6
Minimo: 1
La lista esta ordenada.
La idea es usar correctamente los arreglos para que el programa que vamos a hacer sea fácilmente modificable para andar con arreglos del tamaño que queremos.
En un programa arr.c escribí lo siguiente.
T
de valor 5.a
de tamaño Ta
con valores entre 0 y 9.Para cada punto siguiente, agregá el bucle necesario para llevar a cabo el cálculo.
Las tareas para realizar son:
Para esta última etapa, observá bien las salidas dadas más arriba como ejemplo.
Un arreglo a
está ordenado si para todos par de elementos consecutivos (ai, ai + 1), tenemos ai ≤ ai + 1.
Agregá a tu programa el código necesario para reproducir el comportamiento del programa dado.
Necesitás una variable de conteo para recorrer el arreglo, y una variable de acumulación para guardar el dato de si el arreglo está ordenado. Podés llamarla ord
y inicializarla a 1
antes de recorrer el arreglo, y solo cambiarla a 0
si encontrás dos elementos consecutivos tales que ai > ai + 1. Pensá bien en la condición del bucle.
Después del bucle, mostrá un mensaje que indica si el arreglo está ordenado, y en el caso contrario, indicá el primer par de elementos consecutivos que no están ordenados.
En un programa en PythonTutor declará las dos variables siguientes:
Visualizá en la diferencia entre esas dos variables en memoria.
Luego, con un bucle while
, recorré carácter por carácter la cadena holaPuntero
hasta encontrar el valor 0
.
Para cada iteración del bucle, imprimí el carácter.
Una vez que esto funciona, cambiá el valor de la cadena holaPuntero
a una cadena más larga como "Bienvenidos!"
y volvé a visualizar la ejecución para confirmar que tu código anda.
Como referencia, vas a necesitar la Sección 7.5 del manual “Aprenda C”.
Escribí un programa cuyo ejecutable pueda ser usado de la forma siguiente:
$ ./a.out hola
ubyn
$ ./a.out ubyn
hola
$ ./a.out universidad
havirefvqnq
$ ./a.out havirefvqnq
universidad
Esta transformación se llama rot13
, para “rotación de 13 caracteres”. Cada letra se cambia por la letra ubicada 13 pasos adelante en el alfabeto. Si llegamos al final del alfabeto, se vuelve al principio. No se toma en cuenta la letra ñ
.
En este ejercicio, podés suponer que el usuario solo te proveé una palabra escrita en minúsculas. Pero si lo resolvés temprano, podés extenderlo para que tome cualquier palabra, y que solo aplique rot13
sobre los caracteres alfabéticos (minúsculas y majúsculas).