[cfinformatica-grup] Re: [cfinformatica-grup] Re: [cfinformatica-grup] Fwd: Organización del ProgramaME en Valencia y Libro "Introducción a los concursos de programación" publicado bajo Creative Commons

  • From: "J. Moreno" <jmorep@xxxxxxxxx>
  • To: cfinformatica-grup@xxxxxxxxxxxxx
  • Date: Fri, 31 Jan 2014 17:58:34 +0100

Gràcies per la referència del llibre.

Estic d'acord amb el Joan que la solució del llibre al problema en qüestió,
tot i que pot servir com a il·lustració de l'ús de piles, no és la més
senzilla, però no crec que sigui una qüestió de llenguatge de programació.

La versió de l'algorisme del Joan en C++ no és més complexa. Heus aquí una
variant:
=================
/* ENUNCIADO: El programa recibirá una cadena, con un conjunto de
   paréntesis ( o ) y deberá indicar si están bien cerrados o no. */
#include <iostream>
using namespace std;
int main() {
    int pcount = 0;
    char c;
    while ((cin >> c) && pcount >=0) {
           switch (c) {
                case '(':
                     ++pcount;
                     break;
                case ')':
                     --pcount;
          }
    }
    cout << ((pcount == 0) ? "SI\n" : "NO\n");
    return 0;
}
=====================

Salutacions.

José Moreno


El 31 de enero de 2014, 17:11, Joan Josep Ordinas Rosa <
jordinas@xxxxxxxxxxxxxxxxxxxxxxxxxxx> escribió:

> > Para facilitar la preparación de la competición, he publicado un libro
> bajo licencia Creative Commons llamado "Introducción a los concursos de
> programación".
> >
> > Dicho libro lo podéis obtener en
> http://hispabyte.net/libro-introduccion-a-los-concursos-de-programacion/
>
> Sempre fa servei un llibre com aquest. Jo, de totes formes, trio C en
> lloc de C++ per problemes com el darrer del llibre,
> que en 45 minuts he resolt així (podeu comparar la solució amb la del
> llibre):
>
> ==========================
> /* ENUNCIADO: El programa recibirá una cadena, con un conjunto de
>    paréntesis ( o ) y deberá indicar si están bien cerrados o no. */
>
> #include <stdio.h>
>
> int main() {
>     int c, pcount = 0;
>
>     while ((c = getchar()) != EOF) {
>         if (c == '(') {
>             ++pcount;
>         } else if (c == ')') {
>             --pcount;
>             if (pcount < 0) {
>                 break;
>             }
>         } else {
>             break;
>         }
>     }
>     printf((pcount == 0) ? "SI\n" : "NO\n");
>     return 0;
> }
> ==========================
>
> JJOR
>
>

Other related posts:

  • » [cfinformatica-grup] Re: [cfinformatica-grup] Re: [cfinformatica-grup] Fwd: Organización del ProgramaME en Valencia y Libro "Introducción a los concursos de programación" publicado bajo Creative Commons - J. Moreno