Repaso de Programación I (P1 → P2) | P2 GIR Saltearse al contenido

Repaso de Programación I (P1 → P2)

Introducción

Antes de empezar con los contenidos nuevos de Programación II, vamos a hacer un repaso rápido de los conceptos fundamentales que ya viste en Programación I (C).

En esta sección encontrarás, para cada tema:

  • una breve explicación de qué se trabajaba en P1,
  • ejemplos reales (o muy similares) a los que hiciste en P1 en C,
  • y, justo debajo, una posible versión equivalente en C++, que es el lenguaje que utilizaremos en P2.

La idea no es memorizar “dos lenguajes”, sino entender que muchas ideas son las mismas (variables, control de flujo, funciones, estructuras de datos…), y lo que cambia es sobre todo:

  • la forma de entrada/salida (printf/scanfstd::cout/std::cin),
  • el uso de librerías estándar más modernas (std::string, std::vector, std::array, std::fstream),
  • y una gestión de memoria más segura y cómoda en C++ (evitando malloc/free cuando se pueda).

Por supuesto, C++ introduce otras características que veremos a lo largo del curso y que no se incluían en el lenguaje C.


Temas incluidos en el repaso

En el índice de la izquierda verás los siguientes apartados:

  • Tipos simples
    Variables básicas y salida por pantalla. Introducción a <cstdint> cuando interesa tamaño fijo (std::int32_t, std::uint32_t, etc.).

  • Bucles
    for, while, do-while, validación de entrada y patrones típicos de repetición.

  • Programación modular
    Uso de funciones para evitar duplicación, mejorar legibilidad y mantener el código.

  • Arrays
    Vectores y matrices en C y su equivalente natural en C++ con std::vector / std::array.

  • Registros
    struct y composición (structs anidados), además de colecciones encapsuladas.

  • Punteros y memoria dinámica
    Repaso de punteros, malloc/realloc/free y alternativas modernas en C++ (std::vector, std::string).

  • Ficheros
    Lectura/escritura en texto y binario (FILE* en C y fstream en C++).

  • Recursividad
    Casos base y recursivos sobre arrays, números y cadenas.