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

Solución

/*
    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

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

#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

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

Last updated