Curso de Programación – CLASE 05

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


Expresiones y Estructuras de Control

Gracias a las estructuras condicionales seremos capaces de crear programas que sean capaces de tomar decisiones.


Una sentencia condicional en un lenguaje de programación permite tomar decisiones en función del valor de una condición que se da a través de expresiones.
Por ejemplo, si eres mayor de edad puedes ver la película, si eres menor no te dejaran pasar.

Veamos el programa en el siguiente diagrama:

El Rombo es la figura que en el diagramador de flujo representa al condicional.

Analizamos el código

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Algoritmo prog07
Escribir "Ingrese su edad: "
Leer edad
Si edad>17 Entonces
Escribir "Sos mayor de edad."
SiNo
Escribir "Sos menor de edad."
FinSi
FinAlgoritmo
Algoritmo prog07 Escribir "Ingrese su edad: " Leer edad Si edad>17 Entonces Escribir "Sos mayor de edad." SiNo Escribir "Sos menor de edad." FinSi FinAlgoritmo
Algoritmo prog07
	Escribir "Ingrese su edad: "
	Leer edad
	Si edad>17 Entonces
		Escribir "Sos mayor de edad."
	SiNo
		Escribir "Sos menor de edad."
	FinSi
FinAlgoritmo

En este programa al ingresar cualquier número mayor a 17 el programa responde “Sos mayor de edad.”, mientras que cualquier número menor a 17 muestra “Sos menor de edad”.

Ejecutamos el programa


Veamos el código en C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// EXPRESIONES Y ESTRUCTURAS DE CONTROL
#include <iostream>
using namespace std;
int edad;
int main()
{
cout << "Ingrese su edad: ";
cin >> edad;
if(edad>17) // si se cumple.
{
cout << "Sos mayor de edad." << endl;
}
else // de lo contrario...
{
cout << "Sos menor de edad." << endl;
}
return 0;
}
// EXPRESIONES Y ESTRUCTURAS DE CONTROL #include <iostream> using namespace std; int edad; int main() { cout << "Ingrese su edad: "; cin >> edad; if(edad>17) // si se cumple. { cout << "Sos mayor de edad." << endl; } else // de lo contrario... { cout << "Sos menor de edad." << endl; } return 0; }
// EXPRESIONES Y ESTRUCTURAS DE CONTROL

#include <iostream>

using namespace std;

int edad;

int main()
{
    cout << "Ingrese su edad: ";
    cin >> edad;
        if(edad>17) // si se cumple.
    {
        cout << "Sos mayor de edad." << endl;
    }
    else // de lo contrario...
    {
        cout << "Sos menor de edad." << endl;
    }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // EXPRESIONES Y ESTRUCTURAS DE CONTROL

Comentario: es un texto que se ignora por el compilador. En este caso, se está indicando el tema del archivo (expresiones y estructuras de control).

Línea 3: #include <iostream>

Dirección al archivo iostream: este archivo proporciona entradas y salidas estandarizadas (como la consola) para leer y escribir texto.

Línea 5: using namespace std;

Declaración de uso del espacio de nombres std (estándar): esto permite acceder a los objetos y funciones definidos en ese espacio de nombres sin tener que especificar explícitamente el nombre del espacio de nombres. En este caso, estamos utilizando el espacio de nombres std para utilizar las clases y funciones definidas en él, como por ejemplo cout y cin.

Línea 7: int edad;

Declaración de una variable entera llamada edad: esta variable será utilizada para almacenar la edad ingresada por el usuario.

Línea 9: int main()

Definición del punto de entrada (función principal) main: esta función es el inicio de cualquier programa C++ y se llama cuando se ejecuta el programa. La función main debe tener un tipo de retorno int, ya que el compilador espera saber si el programa terminó correctamente o no.

Línea 11: cout << "Ingrese su edad: ";

Salida por pantalla de la cadena "Ingrese su edad: " utilizando el objeto cout: este objeto es una parte del espacio de nombres std y se utiliza para escribir texto en la consola.

Línea 12: cin >> edad;

Entrada desde la consola en la variable edad utilizando el objeto cin: este objeto es otra parte del espacio de nombres std y se utiliza para leer texto desde la consola y asignarlo a una variable.

Líneas 13-20:

  • Condición if: se está verificando si la variable edad es mayor a 17.
  • Si es cierto, se ejecutará el bloque de código dentro del if.
    • Bloque if: se imprime por pantalla un mensaje indicando que la persona es mayor de edad.
  • Condición else: si la condición if no se cumple (es decir, si la variable edad no es mayor a 17), se ejecutará el bloque de código dentro del else.
    • Bloque else: se imprime por pantalla un mensaje indicando que la persona es menor de edad.

Línea 21: return 0;

Retorno de la función principal main con el valor 0: esto indica que el programa terminó correctamente. Si el programa hubiera tenido errores o no se había ejecutado correctamente, el valor devuelto sería diferente
(por ejemplo, -1).


Ahora el código en PYTHON:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
print("Ingrese su edad: ")
edad = int(input())
if edad > 17:
print("Sos mayor de edad.")
else:
print("Sos menor de edad.")
print("Ingrese su edad: ") edad = int(input()) if edad > 17: print("Sos mayor de edad.") else: print("Sos menor de edad.")
print("Ingrese su edad: ")
edad = int(input())
if edad > 17:
	print("Sos mayor de edad.")
else:
	print("Sos menor de edad.")

Vamos a analizar línea por línea este código en PYTHON:

Línea 1: print("Ingrese su edad: ")

Impresión por pantalla de la cadena "Ingrese su edad: " utilizando la función print(): esta función es una parte integral del lenguaje de programación Python y se utiliza para imprimir texto por pantalla.

Línea 2: edad = int(input())

Lectura de entrada desde el usuario y asignación a la variable edad utilizando la función input() y la conversión a entero con int(): esta función es otra parte integral del lenguaje de programación Python y se utiliza para leer texto desde el usuario y almacenarlo en una variable. En este caso, se está leyendo un número entero y asignándolo a la variable edad.

Líneas 3-6:

  • Condición if: se está verificando si la variable edad es mayor a 17.
  • Si es cierto, se ejecutará el bloque de código dentro del if.
    • Bloque if: se imprime por pantalla un mensaje indicando que la persona es mayor de edad.
  • Condición else: si la condición if no se cumple (es decir, si la variable edad no es mayor a 17), se ejecutará el bloque de código dentro del else.
    • Bloque else: se imprime por pantalla un mensaje indicando que la persona es menor de edad.

Estos son los Operadores Relacionales en PseINT:

=IGUAL
<>DISTINTO
!=DISTINTO
<MENOR
<=MENOR O IGUAL
>MAYOR
>=MAYOR O IGUAL

Las estructuras condicionales junto con los operadores relacionales están presentes y actuando en todos lados.

Veamos ahora como son los Operadores Relacionales en C++ y en Python:

==IGUAL
!=DISTINTO
<MENOR
<=MENOR O IGUAL
>MAYOR
>=MAYOR O IGUAL

Como pueden ver son similares a los de PseINT.


En el siguiente ejemplo veremos un algoritmo que nos deja ejecutar un programa siempre y cuando ingresemos el número secreto.

Analizamos el código

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Algoritmo prog07b
Escribir "Ingrese código: "
Leer code
Si code=123456 Entonces
Escribir "Acceso permitido."
SiNo
Escribir "Acceso denegado."
FinSi
FinAlgoritmo
Algoritmo prog07b Escribir "Ingrese código: " Leer code Si code=123456 Entonces Escribir "Acceso permitido." SiNo Escribir "Acceso denegado." FinSi FinAlgoritmo
Algoritmo prog07b
	Escribir "Ingrese código: "
	Leer code
	Si code=123456 Entonces
		Escribir "Acceso permitido."
	SiNo
		Escribir "Acceso denegado."
	FinSi
FinAlgoritmo

Ejecutamos el programa

Otra forma de realizar lo mismo es utilizar una variable con el código secreto para luego compararla con la lectura guardada en la variable code, en este vamos a utilizar una frase como contraseña, por lo que al ser un a cadena de caracteres recuerden que va entre comillas.

Analizamos el código

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Algoritmo prog07c
secreto = "mi secreto"
Escribir "Ingrese código: "
Leer code
Si code=secreto Entonces
Escribir "Acceso permitido."
SiNo
Escribir "Acceso denegado."
FinSi
FinAlgoritmo
Algoritmo prog07c secreto = "mi secreto" Escribir "Ingrese código: " Leer code Si code=secreto Entonces Escribir "Acceso permitido." SiNo Escribir "Acceso denegado." FinSi FinAlgoritmo
Algoritmo prog07c
	secreto = "mi secreto"
	Escribir "Ingrese código: "
	Leer code
	Si code=secreto Entonces
		Escribir "Acceso permitido."
	SiNo
		Escribir "Acceso denegado."
	FinSi
FinAlgoritmo

Las páginas de Internet utilizan los mismos algoritmos aplicados aquí, solo que asocian bases de datos en el proceso de validación.

Ejecutamos el programa


Veamos este último código pero ahora en C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// PROG07C - EJEMPLO PARA INGRESAR CONTRASEÑA ALFANUMÉRICA.
#include <iostream>
using namespace std;
string secreto="mi secreto";
string code;
int main()
{
cout << "Ingrese código: ";
getline(cin, code);
if(code==secreto)
{
cout << "Acceso permitido." << endl;
}
else
{
cout << "Acceso denegado." << endl;
}
return 0;
}
// PROG07C - EJEMPLO PARA INGRESAR CONTRASEÑA ALFANUMÉRICA. #include <iostream> using namespace std; string secreto="mi secreto"; string code; int main() { cout << "Ingrese código: "; getline(cin, code); if(code==secreto) { cout << "Acceso permitido." << endl; } else { cout << "Acceso denegado." << endl; } return 0; }
// PROG07C - EJEMPLO PARA INGRESAR CONTRASEÑA ALFANUMÉRICA.

#include <iostream>

using namespace std;

string secreto="mi secreto";
string code;

int main()
{
    cout << "Ingrese código: ";
    getline(cin, code); 
    if(code==secreto)
    {
        cout << "Acceso permitido." << endl;
    }
    else 
    {
        cout << "Acceso denegado." << endl;
    }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // PROG07C - EJEMPLO PARA INGRESAR CONTRASEÑA ALFANUMÉRICA.

Esta línea es un comentario. El símbolo // indica que lo que sigue hasta el fin de la línea es un comentario, y no forma parte del código ejecutable. En este caso, se trata de una breve descripción del programa.

Línea 3: #include <iostream>

Esta línea incluye el archivo iostream, que proporciona funciones para entrada y salida de datos en la consola.

Línea 5: using namespace std;

Esta línea declara que se utilizará el espacio de nombres std, que contiene las clases y funciones del estándar C++.

El símbolo using permite especificar qué partes del espacio de nombres se desean utilizar.

Línea 7-8: string secreto="mi secreto"; string code;

  • Estas líneas declaran dos variables de tipo string, que son cadenas de texto en C++.
  • La primera variable, secreto, se inicializa con el valor "mi secreto".
  • La segunda variable, code, se declara pero no se inicializa.

Línea 10: int main()

Esta línea declara la función principal del programa, que es el punto de entrada y salida para cualquier aplicación en C++.

El tipo int indica que la función devuelve un valor entero (en este caso, el código de retorno de la función).

Línea 12-13: cout << "Ingrese código: "; getline(cin, code);

  • Estas líneas realizan dos acciones:
    • La primera línea utiliza el objeto cout para imprimir en consola el texto "Ingrese código: ".
    • La segunda línea utiliza la función getline para leer una línea de entrada desde la consola y asignarla a la variable code.

Línea 14: if(code==secreto)

Esta línea inicia un bloque if que comprueba si el valor de la variable code es igual al valor de la variable secreto.

Líneas 15-17: { cout << "Acceso permitido." << endl; }

Si el condicional if es verdadero, se ejecutan estas dos líneas:

  • La primera línea utiliza el objeto cout para imprimir en la consola el texto "Acceso permitido.".
  • La segunda línea utiliza el objeto endl para insertar un salto de línea después del mensaje.

Línea 18: else

Esta línea inicia un bloque else que se ejecutará si el condicional if es falso.

Líneas 19-21: { cout << "Acceso denegado." << endl; }

Si el bloque else se ejecuta, se imprimirá en la consola el texto "Acceso denegado.".

Línea 22: return 0;

Esta línea finaliza la función principal y devuelve un código de retorno entero (en este caso, cero).


Ahora el código en PYTHON:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
secreto = "mi secreto"
print("Ingrese código: ")
code=(input())
if code == secreto:
print("Acceso permitido.")
else:
print("Acceso denegado.")
secreto = "mi secreto" print("Ingrese código: ") code=(input()) if code == secreto: print("Acceso permitido.") else: print("Acceso denegado.")
secreto = "mi secreto"
print("Ingrese código: ")
code=(input())
if code == secreto:
	print("Acceso permitido.")
else:
	print("Acceso denegado.")

Vamos a analizar línea por línea este código en PYTHON:

Línea 1: secreto = "mi secreto"

Esta línea asigna el valor "mi secreto" a la variable secreto. En Python, no es necesario declarar explícitamente el tipo de una variable.

Línea 2: print("Ingrese código: ")

Esta línea utiliza la función print() para imprimir en la consola el texto "Ingrese código: ". La función print() es una forma común en Python de mostrar información en la salida estándar (generalmente, la consola).

Línea 3: code = input()

Esta línea utiliza la función input() para leer un valor de entrada desde la consola y asignarlo a la variable code. La función input() espera una línea de texto como entrada y devuelve el valor como una cadena de caracteres.

Línea 4: if code == secreto:

Esta línea inicia un bloque if que verifica si el valor de la variable code es igual al valor de la variable secreto.

Líneas 5: print("Acceso permitido.")

Si el condicional if es verdadero, se ejecuta esta línea y se imprime en la consola el texto "Acceso permitido.".

Línea 6: else:

Esta línea inicia un bloque else que se ejecutará si el condicional if es falso.

Líneas 7: print("Acceso denegado.")

Si el bloque else se ejecuta, se imprime en la consola el texto "Acceso denegado.".


En próximas estructuras se verá cómo dar algunas chances antes de que muestre “Acceso denegado.”, o que pregunte de manera infinita hasta ingresar el número correcto.


TAREA PARA EL HOGAR

Utilizar el algoritmo seguridad en conjunto con alguno de los programas creados anteriormente, para que solo puedan ejecutarse si se ingresa el código correcto.