Verificación de max-min-2

Considera la siguiente función:

    /* @pre  v.size()>0
    *  @post el primer componente del resultado es el valor maximo de v,
    *        el segundo componente del resultado es el valor minimo de v
    */
    pair<int, int> max_min2(const vector<int>& v) {
        pair<int, int> p;
        p.first = v[0];
        p.second = v[0];
        int i = 1;
        while (i < v.size()) {
            if (v[i] > p.first) {
                p.first = v[i];
            } else if (v[i] < p.second) {
                p.second = v[i];
            }
            ++i;
        }
        return p;
    }

Ahora responde a las siguientes preguntas

Pregunta 1
Escribe el invariante del bucle del código max_min2.

Pregunta 2
Demuestra que si se cumple la precondición, después de ejecutar las
inicializaciones, se cumple el invariante.

Pregunta 3
Demuestra que si se cumplen la condición de entrada en el bucle y el
invariante, y se ejecuta el cuerpo del bucle, entonces se vuelve a
cumplir el invariante.

Pregunta 4
Demuestra que si se cumple el invariante, pero no la condición de
entrada, entonces se cumple la postcondición.

Pregunta 5
Demuestra que el bucle acaba. Es decir, dame la función cota y demuestra
sus propiedades.

Observación

El fichero a enviar debe ser un .tar dentro del cual haya un fichero de
texto respuestas.txt con las respuestas a las preguntas. (El veredicto
del Jutge siempre será verde, porque las respuestas se evaluarán
manualmente.)

Información del problema

Autoría: PRO1

Generación: 2026-01-25T21:40:14.476Z

© Jutge.org, 2006–2026.
https://jutge.org
