GUIA EQUIVALENCIAS ENTRE CODIGO C++ Y DIAGRAMAS NASSI-SHNEIDERMAN Introducción Presentamos una breve guía de equivalencias entre los diagramas de NASSI SHNEIDERMAN y el código en C/C++. Describimos la selección simple, la selección múltiple y tres casos de procesos repetitivos: mientras, repetir hasta, repetir un número fijo de veces.. Para cada caso presentamos a través de un ejemplo el diagrama y el código que lo representa. En todos los casos proponemos actividades para desarrollar.. Es importante que copien cada ejemplo en un programa utilizando el Turbo C , lo compilen, ejecuten y observen los resultados. Tengan en cuenta que solamente presentamos las líneas de código que resuelven el problema. Para que esto compile faltan: las definiciones de las variables, incluir las librerías (iostrean, conio, etc) y definir la función main(). La sentencia selección simple (if … else …) Esta sentencia permite incluir selecciones simples en los programas. Por ejemplo si debemos escribir en pantalla si una persona es menor de edad en función si tiene 18 años o menos. Ejemplo Figura 1: Diagrama de selección simple Página 1 de 7 Las siguientes líneas son la resolución en código C/C++ del diagrama de la figura 1. if (iEdad<18) { cout<<”Es menor de edad”<<endl; }else{ cout<<”Es mayor de edad”<<endl; } Observemos que: La expresión en la comparación está entre símbolos parentesis: () Actividad 1 A partir del código C/C++ realice el diagrama correspondiente. if ((a==10) && (b==20)) { cout<<”la variable a contiene el valor 10 y”<<endl; cout<<”la variable b contiene el valor 20”<<endl; } Actividad 2 A partir del código C/C++ realice el diagrama correspondiente. if (a==10) { cout<<”la variable a contiene el valor 10 y”<<endl; if (b==20) cout<<”la variable b contiene el valor 20” <<endl; else cout<<”la variable b no contiene el valor 20”<< endl; } else cout<<”la variable a no contiene el valor 10”<<endl; } Página 2 de 7 La sentencia selección múltiple (switch …case,..,case) Esta sentencia permite incluir selecciones múltiples en los programas. Por ejemplo debemos escribir en pantalla la categoría de una persona, de acuerdo al valor que contiene una variable. Ejemplo Figura 2: Diagrama se selección múltiple Las siguientes líneas son la resolución en código C/C++ del diagrama de la figura 2. switch (iCategoria){ case 1: cout<<”Categoría 1”<<endl; break; case 2: cout<<”Categoría 2”<<endl; break; case 3: cout<<”Categoría 3”<<endl; break; default : cout<<”Categoría inválida”<<endl; } Observemos que: Cada caso se determina en un “case” Cada “case” finaliza con una sentencia break Existe la opción “default” que engloba a cualquier valor no contemplado en los “case” Actividad 3 A partir del código C/C++ realice el diagrama correspondiente. switch (sProvincia){ case ´C´: cout<<”Provincia: Capital Federal”<<endl; valor = 10; break; case ´B´: cout<<”Provincia: Buenos Aires”<<endl; valor = 20; break; ase ´T´: cout<<”Provincia: Tierra del Fuego”<<endl; Página 3 de 7 valor = 30; break; case ´S´: cout<<”Provincia: Santa Fé” <<endl; valor = 40; break; default : cout<<”Provincia desconocida”<<endl; valor = -1; break; } La sentencia de repetición (mientras) Esta sentencia permite incluir un número indeterminado de veces un conjunto de instrucciones. Es uno de los posibles ciclos que se pueden utilizar para resolver programas. Por ejemplo si queremos mostrar los números entre el 1 y el 10. Ejemplo Figura 3: Proceso repetitivo “mientras” Las siguientes líneas son la resolución en código C/C++ del diagrama de la figura 3. a=0; while (a<10){ cout<<a<<endl; Página 4 de 7 a = a + 1; // en C++ se puede escribir a++; } Observemos que: Se asigna un valor inicial a la variable “a” Esta variable se utiliza para controlar el ciclo Entonces se debe modificar su valor dentro del bloque del ciclo Si el valor inicial de la variable a es mayor a 10, NO SE INGRESA AL CICLO Entonces este tipo de ciclo puede que no se realice nunca (no entra!!) Actividad 4 A partir del código C/C++ realice el diagrama correspondiente. cout<<”Ingrese un número entre 2 y 10”<<endl; cin >>a; while ((a<2)||(a>10)){ cout<<”Ingrese un número entre 2 y 10”<<endl; cin >>a; } La sentencia de repetición (hacer mientras) Esta sentencia permite incluir un número indeterminado de veces un conjunto de instrucciones. Es uno de los posibles ciclos que se pueden utilizar para resolver programas. Por ejemplo si queremos pedir un número por pantalla que sea mayor que 0 (cero). Ejemplo Figura 4: Proceso repetitivo “hacer-mientras” Página 5 de 7 Las siguientes líneas son la resolución en código C/C++ del diagrama de la figura 4. do{ cout<<”Ingrese un número mayor a 0”<<endl; cin >>a; } while (a<0); Observemos que: Siempre se realiza al menos una vez En el bloque del ciclo se debe modificar el valor de la variable de control “a” Actividad 5 A partir del código C/C++ realice el diagrama correspondiente. do{ cout<<”Ingrese un número entre 2 y 10”<<endl; cin >>a; } while ((a<2)||(a>10)); La sentencia de repetición (número fijo de veces) Esta sentencia permite incluir un número determinado de veces un conjunto de instrucciones. Es uno de los posibles ciclos que se pueden utilizar para resolver programas. Por ejemplo si queremos mostrar los números del 1 al 10. Ejemplo Figura 5: Proceso repetitivo “número fijo de veces” Página 6 de 7 Las siguientes líneas son la resolución en código C/C++ del diagrama de la figura 4. for (i=1; i<=10; i++){ cout << i<<endl; } Observemos que: Siempre se realiza un número fijo de veces La variable de control (i) no se inicializa antes de ingresar al ciclo Dentro del bloque del ciclo no se modifica la variable de control del ciclo La instrucción está compuesta por 3 partes: inicialización de la variable, condición de continuación e incremento de la variable Actividad 6 A partir del código C/C++ realice el diagrama correspondiente. for (i=1; i<=10; i++){ for (j=1; j<=5; j++){ cout << i<<j<<i*j<<endl; } } Indice Introducción..................................................................................... 1 La sentencia selección simple (if … else …) ................................................ 1 La sentencia selección múltiple (switch …case,..,case) .................................. 3 La sentencia de repetición (mientras) ...................................................... 4 La sentencia de repetición (hacer mientras) ............................................... 5 La sentencia de repetición (número fijo de veces)........................................ 6 Página 7 de 7