> For the complete documentation index, see [llms.txt](https://ooi.gitbook.io/courses/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ooi.gitbook.io/courses/ooi-2019/cursos-online/clase-9.md).

# Clase 9

**Temas**: Revisión de tareas y práctica.

## Solución de Tarea

Tarea: La descripción de la tarea la puedes encontrar en la [clase 8](/courses/ooi-2019/cursos-online/clase-8.md#tarea)

**Solución**

```c
/*
    Encontrar cuántas horas minutos y segundos hay 
    de diferencia hay entre dos horas dadas.

    Entrada:

    3 enteros H1, M1, S1 representando las horas, minutos y segundos
    de la primer hora.
    3 enteros H2, M2, S2 representando las horas, minutos y segundos
    de la segunda hora.

    Salida:

    Tres enteros indicando las horas, minutos y segundos de diferencia
    entre las dos horas
*/

#include <stdio.h>

int main(int argc, char const *argv[]) {
    int h1, m1, s1;
    int h2, m2, s2;

    int segsTotales1 = 0;
    int segsTotales2 = 0;

    int resultado = 0;

    scanf("%d %d %d", &h1, &m1, &s1);
    scanf("%d %d %d", &h2, &m2, &s2);

    segsTotales1 = h1 * 3600 + m1 * 60 + s1;
    segsTotales2 = h2 * 3600 + m2 * 60 + s2;

    resultado = segsTotales1 - segsTotales2;
    if (resultado < 0) {
        resultado *= -1;
    }

    int hr, mr, sr;

    hr = resultado / 3600;
    resultado = resultado % 3600;
    mr = resultado / 60;
    sr = resultado % 60;

    printf("%d %d %d\n", hr, mr, sr);

    return 0;
}

```

**Nota:** Recuerda pasar el código a C++ y entregarlo como tarea.

## Ejercicio de Clase

[Problema Original](https://uva.onlinejudge.org/index.php?option=com_onlinejudge\&Itemid=8\&category=24\&page=show_problem\&problem=208)

TEXT es un lenguaje para formateo de tipografías inventado por Donald Knuth. Toma archivos dónde se especifican las instrucciones para formatear el texto y produce un hermoso documento.

Normalmente se usan las **"** (comillas dobles) para indicar citas. Algunos teclados usandos en otros lugares del mundo no tienen este símbolo, pero tiene la comilla simple izquierda (**\`**) y la comilla simple derecha (**'**). Así que TEX permite usar dos veces las comillas simple izquierda y dos veces la comilla simple derecha para simular el comportamiento de las comillas dobles.

Tu tarea consiste en formatear un documento que erróneamente tiene comillas dobles en vez de usar el estandar de TEXT. Por ejemplo, si el documento fuente tiene el siguiente contenido:

```
"Ser o no ser," dijo el bardo, "esa es la cuestión"
```

El texto correcto debe ser:

```
``Ser o no ser,'' dijo el bardo, ``esa es la cuestión''
```

**ENTRADA:**

La entrada consiste varias lineas de texto conteniendo en total un **número par de comillas** **dobles***.* La entrada termina con fin de archivo.

**SALIDA:**

Imprime el mismo texto de entrada pero remplazando las comillas dobles por las usadas por TEXT.

**Ejemplo de entrada**

```
"To be or not to be," quoth the Bard, "that
is the question".
The programming contestant replied: "I must disagree.
To `C' or not to `C', that is The Question!"
```

**Ejemplo de salida**

```
``To be or not to be,'' quoth the Bard, ``that
is the question''.
The programming contestant replied: ``I must disagree.
To `C' or not to `C', that is The Question!''
```

### **Solución**

```c
#include <stdio.h>

int main(int argc, char const *argv[]) {
    char caracter;
    int contador = 0;
    
    while(scanf("%c", &caracter) != EOF) {
        if (caracter == '"') {
            contador ++;
            if ((contador % 2) == 0) {
                // SI es el contador es par
                // imprimimos las comillas simples derechas
                printf("''");
            } else {
                // SI es el contador es impar
                // imprimimos las comillas simples izquierdas
                printf("``");
            }
        } else {
            printf("%c", caracter);
        }
    }

    return 0;
}
```

## Problema de Tarea

[Problema original](https://uva.onlinejudge.org/index.php?option=com_onlinejudge\&Itemid=8\&category=24\&page=show_problem\&problem=424)

Escribe un programa que invierta las letras de cada palabra que se te dé en la entrada preservarndo el orden de cada palabra

**ENTRADA**

La entrada consiste en varias lineas y varias palabras, las palabras están formadas por caracteres continguos e imprimibles separadas por un espacios. Deberás leer hasta fin de archivo.

**SALIDA**

La salida deben ser las mismas lineas y las palabras que en la entrada, es decir, debes respetar el orden las lineas y las palabras. Sin embargo las letras de cada palabra deben estar invertidas.

**Ejemplo de entrada**

```
I  love  you.
You  love  me.
We're  a  happy  family.
```

**Ejemplo de salida**

```
I  evol  .uoy
uoY  evol  .em
er'eW  a  yppah  .ylimaf
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ooi.gitbook.io/courses/ooi-2019/cursos-online/clase-9.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
