Está en la página 1de 21

Programación Estructurada

Elementos básicos de programación


Estructuras selectivas y repetitivas

Luis Roca1

1 Facultad de Ciencias

Universidad Nacional de Ingeniería

2021-1
Contenidos
1. Situación actual

2. Programa básico en C++

3. Tipos fundamentales

4. Estructuras condicionales simples y compuestas

5. Estructuras condicionales anidadas

6. Estructura repetitiva while

7. Estructura repetitiva for

8. Material adicional
1/20
Situación actual
En la actualidad C++ está próximo a recibir una actualización llamada C++20,
las novedades que traerá se detallan en la siguiente referencia: https:
//dgvergel.blogspot.com/2020/06/programando-cpp20-parte-i.html
Además es un lenguaje muy popular como en el índice TIOBE:

2/20
Programa básico en C++

1 # i n c l u d e < iostream >


2 / / PROGRAMA BASICO EN C++
3 using namespace std ;
4
5 i n t main ( )
6 {
7 cout << " H e l l o world ! " << e n d l ;
8 return 0;
9 }

3/20
Programa básico en C++
• En la linea 1 se incluye la biblioteca iostream para el acceso a los objetos
de entrada y salida estándar: cin y cout.
• En la linea 2 se muestra un comentario // de una sola linea.
• En la linea 3 se especifica el espacio de nombre (universo de objetos):
std
• En la linea 5 se define la función main.
• En la linea 6 se abre el bloque principal.
• En la linea 7 se envía texto a la salida estándar.
• En la linea 8 se devuelve el valor 0 por defecto, en otras funciones es
obligatorio.
• En la linea 9 se cierra el bloque principal.

4/20
Tipos fundamentales
• void: Tipo void, se usa para inicializar apuntadores y en funciones que no
devuelven valor.
• bool: Tipo booleano, se usa para dar valor verdadero o falso.
• int: Tipo entero, se usa para representar valores numéricos sin
decimales.
• char: Tipo caracter, se usa para representar caracteres UTF-8
codificados en 8 bits.
• float, double: Tipos de punto flotante de 32 y 64 bits respectivamente.

5/20
Rango de valores

Fuente: https://en.cppreference.com/w/cpp/language/types

6/20
Rango de valores

Fuente: https://en.cppreference.com/w/cpp/language/types

7/20
Secuencia de escape

8/20
Apuntadores
• El puntero es un tipo de variable que almacena direcciones de memoria.
Si T es un tipo de dato entonces T ∗ es el tipo puntero a T .
• Si x es una variable entonces el operador & permite conocer la dirección
de memoria que almacena x.
• Si p es un puntero el operador * permite conocer el valor que esta
almacenado en la dirección de memoria que almacena p

9/20
Ejemplo de punteros

1 # i n c l u d e < iostream >


2 using namespace std ;
3 i n t main ( )
4 {
5 char ch= ’Q ’ ;
6 char * p = &ch ; / / p almacena l a d i r e c c i o n de ch
7 cout << * p ;
8 ch = ’ Z ’ ;
9 cout << * p ;
10 *p = ’X ’ ;
11 cout << ch ;
12 }

10/20
Estructuras condicionales simples y
compuestas
La estructura selectiva if simple ejecuta una acción si cierta condición
lógica es verdadera.

if (condicion ){
accion 1
} La
accion 2

condición devuelve valores lógicos o valores numéricos con la convención de


que cero implica falso y diferente de cero es verdadero.

11/20
Un estructura if compuesta ejecuta una acción si cierta condición lógica es
verdadera de lo contrario se realice otra acción.

if (condicion ){
accion 1
} else {
accion 2
}
accion 3

12/20
Estructuras condicionales anidadas

Es posible incluir estructuras if ... else dentro de otras estructuras if ...


else. Se utiliza principalmente para evaluar casos que involucran valores por
intervalos.

Ejemplo 1
Se buscar determinar el descuento que corresponde a cierto monto de compra:

Intervalo de compra Descuento (%)


h0, 10i 5
[10, 20i 10
[20, 30i 15
> 30 20

13/20
La estructura if anidada permite manejar valores no ordinales a diferencia de
la estructura switch
1 # i n c l u d e < iostream >
2 using namespace std ;
3 i n t main ( ) {
4 float p , d ;
5 cout << " p= " ; cin >>p ;
6 i f ( p<10)
7 d=0.05;
8 e l s e i f ( p <20)
9 d=0.10;
10 e l s e i f ( p <30)
11 d=0.15;
12 else
13 d=0.20;
14 cout << " d= " <<d<< e n d l ;
15 c i n . get ( ) ; }

14/20
En una cadena de if...else se debe cuidar el modo de agrupamiento
1 # i n c l u d e < iostream >
2 using namespace std ;
3 i n t main ( ) {
4 / / S i n agrupamiento de l l a v e s
5 i f (3 >2)
6 i f (1 >2)
7 cout << " 1 >2 " << e n d l ;
8 e l s e cout << " (3 >2) && ( 1 < = 2 ) " << e n d l ;
9 / / Con agrupamiento de l l a v e s
10 i f (3 <2){
11 i f (1 >2)
12 cout << " 1 >2 " << e n d l ;
13 }
14 else {
15 cout << " (3 >=2) " << e n d l ;
16 }
17 c i n . get ( ) ;
18 }

15/20
Estructura repetitiva while
La estructura while repite una acción siempre que cierta condición lógica
sea verdadera, luego sigue con el flujo del programa.

while (condicion es verdadera )


{
accion 1
}
accion 2

16/20
Ejemplo 2
Encuentre la menor potencia de 2 que sea mayor que 100.
1 # i n c l u d e < iostream >
2 using namespace std ;
3 i n t main ( ) {
4 f l o a t N= 1 ;
5 w h i l e (N< = 1 0 0 ) {
6 N* = 2 ;
7 }
8 cout << "N= " <<N<< e n d l ;
9 c i n . get ( ) ;
10 }

17/20
Estructura repetitiva for
La estructura for repite una acción siempre que cierto contador satisfaga
una condición lógica, luego sigue con el flujo del programa.

for (inicializacióna ;condición b ;actualizaciónd )


{
accion 1c
}
accion 2

18/20
su equivalente usado while
inicialización
while (condición ){
accion 1
actualización
}
accion 2

Ejemplo 3
Calcule el valor de la expresión 1 + 1/2 + 1/3 + . . . + 1/100
1 # i n c l u d e < iostream >
2 using namespace std ;
3 i n t main ( ) {
4 f l o a t suma= 0 ;
5 for ( i n t i = 1 ; i <=10; i ++){
6 suma+=1/ f l o a t ( i ) ;
7 }
8 cout << " suma= " <<suma<< e n d l ;
9 }
19/20
Material adicional
• Programando con C++20:
https:
//dgvergel.blogspot.com/2020/06/programando-cpp20-parte-i.html
• https://www.micc.unifi.it/bertini/download/programmazione/
TICPP-2nd-ed-Vol-one-printed.pdf
• http://vergil.chemistry.gatech.edu/resources/programming/pdf/
TIC2Vtwo.pdf

20/20

También podría gustarte