JMARTEL S-04 - Secuencial

29
PROGRAMACIÓN PARA INGENIERÍA Semana 04: Estructuras Secuenciales 2 Ing. Jorge A. Martel Torres

description

programación - secuencial

Transcript of JMARTEL S-04 - Secuencial

Page 1: JMARTEL S-04 - Secuencial

PROGRAMACIÓN PARA INGENIERÍA

Semana 04: Estructuras Secuenciales 2

Ing. Jorge A. Martel Torres

Page 2: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 2

Contenido

• Estructuras de Programación

– Secuencial, Decisión, Repetitivas

• Elementos y estructura de un programa en C/C++

– Tipos de datos.

– Operadores, Tipos

• Instrucciones de I/O

– Sentencias: ;, { }, //, /* */

– Sentencias cin >>, cout <<, endl

– Funciones:• printf(), scanf(), clrscr(), gotoxy(), getch()

• system (“color f0”) , system(“pause”), system (“cls”);

Page 3: JMARTEL S-04 - Secuencial

ESTRUCTURA DEL ALGORITMO

Page 4: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 4

ESTRUCTURA DEL ALGORITMO

CUERPO

PRINCIPAL

DEL

ALGORITMO

CABECERA

DEL

ALGORITMO

#Incluir <LibreríaA.h>

#Incluir <LibreríaB.h>

// NombreAlgoritmo

// Autor: Martel Torres, Jorge Augusto

// Sección: III - Ingenierías

// Declaración de Variables Públicas

// Declaración de Constantes

#Define NombreConstante Valor

Principal_Inicio()

// Declaración de Variables Locales

TipoDatoVariable NombreVariable;

//Bloque de instrucciones y/u operaciones

Fin

Page 5: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 5

//programa c01.cpp

//autor: Jorge Augusto Martel Torres

#include <iostream>

#include <cstdlib>

using namespace std;

int intN;

float fltSuma;

#define num 1.653

main() {

system (“color f0”);

system (“cls”);

const double num2 = 1.653 ;

cout << "Ingresar Número Entero: ";

cin >> intN;

fltSuma = intN * ( intN + 1 ) / 2.0f + num;

cout << "La suma de los "

<< intN + num2

<< "numeros enteros es: "

<< fltSuma;

system (“pause”);

}

Estructura de un Programa en C++

Cabecera

Función

Principal

Declaración variables y

constantes

Invocación a las librerías

básicas

Instrucciones

y/u operaciones

de la función

principal

Page 6: JMARTEL S-04 - Secuencial

Estructuras de Programación

Page 7: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 7

DIAGRAMA DE FLUJO

INGRESO POR

EL TECLADO

SALIDA

POR

PANTALLA

INICIO

FIN

PROCESO

INICIO

PROCESO

SALIDA

POR

PANTALLA

FIN

PROCESO

V

F

MIENTRAS

PROCESOV

HACER MIENTRAS

F

PROCESOPROCESO

VF

SI DOBLE

1

ACCIONES

S2

ACCIONES

S3

ACCIONES

OTROS

ACCIONES

S1

2 3 OTRO

SELECTOR DE CASOS

PROCESO

V

SI SIMPLE

F

VI, VF, INCR

PROCESOV

DESDE PARAF

V

Page 8: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 8

DIAGRAMA NASSI-SCHNEIDERMAN (D-NS)

Nombre del Algoritmo;

Inicio

Acción 1;

Acción 2;

Acción 1;

...

Acción n;

Fin.

Acciones

por SI o

Verdad

SI NO

Acciones

por No o

Falsedad

( ExpreLogica )

MIENTRAS ( ExpreLogica )

Acciones que se

ejecutaran si la

CONDICION es

VERDAD

hacer

MIENTRAS ( ExpreLogica ) ;

Acciones que se

ejecutaran mientras

QUE LACONDICION

es VERDAD

PARA VI, ( ExpreLogica ), INCREMENTO

FIN_PARA

ACCIONESACCIONES

S2

ACCIONES

S3

ACCIONES

OTROS

ACCIONES

S1

( VARIABLE )

1 2 3 OTRO

Acciones

por SI o

Verdad

SI

( ExpreLogica )

Page 9: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 9

PSEUDOCODIGO

MIENTRAS

Mientras ( ExpLogica )

Acciones Solo Si

la condición es Verdad

Fin_Mientras

V

HACER

Hacer

Acciones Solo Si

la condición es Verdad

Mientras ( ExpLogica ) ;

V

PARA /DESDE/ HASTA

Para ( Vari; VIni; el; Incre )

Acciones Que Solo Si

la Vari >= Vfin

Fin ( ExpLogica )

V

SELECTOR DE MULTIPLE

Seleccionar ( Variable )

CASO n1:

Acciones

CASO n2:

Acciones

CASO n3:

Acciones

Fin_Seleccionar

SELECCION DOBLE

Si ( ExpLogica )

Acciones Si

la condición

es verdad

Si_No

Acciones Si

la condición

es Falso

Fin_Si

V

F

SECUENCIALNombre del Algoritmo;Inicio

Acción 1;

Acción 2;

Acción 1;

...

Acción n;

Fin.

V

SELECCION SIMPLE

Si ( ExpLogica )

Acciones Solo Si

la condición

es Verdad

Fin_Si

Page 10: JMARTEL S-04 - Secuencial

Estructura Secuencial!!Avance, avance, ... Respete la cola !!

Acción 1 Acción 2 Acción 3Inicio Fin

Acción 2

Acción 3

Acción 1

Inicio

Fin

Page 11: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 11

Estructura Secuencial

INGRESO POR

EL TECLADO

SALIDA

POR

PANTALLA

INICIO

FIN

PROCESO

INICIO

PROCESO

SALIDA

POR

PANTALLA

FIN

Nombre del Algoritmo;

Inicio

Acción 1;

Acción 2;

Acción 1;

...

Acción n;

Fin.

Nombre del Algoritmo;Inicio

Acción 1;

Acción 2;

Acción 1;

...

Acción n;

Fin.

Page 12: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 12

PSEUDOCODIGO

• //, Indica Línea de Comentario

• /*, Indica Inicio de Bloque de Comentario

• */, Indica Fin de Bloque de Comentario

• Incio, Indica Principio del algoritmo

• Fin, Indica Terminación del Algoritmo

• LimpiarPantalla(), Indica Limpiar la Pantalla (system(“cls”))

• ;, Indica separador de Instrucciones o de operaciones

• cSalida, Permite la SALIDA o Impresión de datos por el Monitor

• cEntrada, Permite la ENTRADA o Captura de datos desde el

teclado

• ObtenerCaracter(). Permite obtener carácter desde el teclado.

• IrHastaXY(X, Y). Permite colocar el cursor en una determinada

coordenada de la pantalla (X = Columna, Y = Fila)

Page 13: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 13

cSalida ()

cout <<cSalida, Permite la SALIDA o Impresión de datos por el Monitor

Formatos:

– cSalida ( “Palabras” ) ;

– cSalida ( “Palabras” ) ;

– cSalida ( NombreVariable ) ;

– cSalida ( NombreVariable ) ;

– cSalida ( “Palabras” , NombreVariable ) ;

– cSalida ( “Palabras” , NombreVariable ) ;

– cSalida ( “Palabras” , NombreVariable , “Palabras” ) ;

– cSalida ( “Palabras” , NombreVariable , “Palabras” ) ;

– cSalida ( “Palabras” , NombreVariable1 , NombreVariable2 ) ;

– cSalida ( NombreVariable1 , NombreVariable2 ) ;

Page 14: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 14

cSalida ()

cout <<cout, Permite la SALIDA o Impresión de datos (jala datos de la RAM) o

mensajes impresos por el Monitor

Formatos(algunos):

• cout << “Palabras” ;

• cout << “Palabras” << endl ;

• cout << NombreVariable ;

• cout << NombreVariable << endl;

• cout << “Palabras” << NombreVariable ;

• cout << “Palabras” << NombreVariable << endl ;

• cout << “Palabras” << NombreVariable << “Palabras” ;

• cout << “Palabras” << NombreVariable << “Palabras” << endl ;

• cout << “Palabras” << NombreVariable1 << NombreVariable2 << endl ;

• cout << NombreVariable1 << NombreVariable2 << endl;

Page 15: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 15

cEntrada

cin >>

cEntrada, Permite la ENTRADA o Captura de datos desde el

teclado

Formatos:

– cEntrada ( NombreVariable ) ;

– cEntrada ( NombreVariable1 , NombreVariable2 ) ;

Page 16: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 16

cEntrada

cin >>

cin, Permite la ENTRADA o Captura de datos desde el teclado

Formatos:

– cin >> NombreVariable ;

– cin >> NombreVariable1 >> NombreVariable2 ;

Page 17: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 17

Otras Funciones

• LimpiarPantalla() Permite limpiar la pantalla

• IrHastaXY() Permite ubicar el cursor en una determinada coordenada

de la pantalla (monitor)

IrHastaXY (Columna, Fila);

0 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80

5

1 0

1 5

20

25

Filas

Columnas

Page 18: JMARTEL S-04 - Secuencial

Problema 01

• Diseñe el algoritmo que permita calcular la

suma de los N números enteros positivos, si

se sabe que la cantidad de números a sumar

es ingresado desde el teclado. Muestre UD

los resultados por la pantalla.

• S = n (n + 1)

2

UNTELS JORGE A. MARTEL TORRES 18

Page 19: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 19

//programa c01.cpp

//autor: Jorge Augusto Martel Torres

#include <iostream>

#include <cstdlib>

using namespace std;

int intN;

float fltSuma ;

#define num 2.0f

main() {

system (“color f0”);

system (“cls”);

const double num2 = 1.0f ;

cout << "Ingresar Número Entero: ";

cin >> intN;

fltSuma = intN * ( intN + num2 ) / num;

cout << "La suma de los "

<< intN

<< "numeros enteros es: "

<< fltSuma << endl;

system (“pause”);

}

Estructura de un Programa en C++

Cabecera

Función

Principal

Declaración variables y

constantes

Invocación a las librerías

básicas

Instrucciones

y/u operaciones

de la función

principal

Page 20: JMARTEL S-04 - Secuencial

Problema 02

#include <math.h>

using namespace std ;

float R, area, perimetro;

#define pim 3.1416

main() {

system (“color f0”);

system (“cls”);

cout << "Ingresar radio: " ;

cin >> R;

area = pim * ( float ) pow ( r , 2.0f );

perímetro = 2.0f * pim * R;

system (“pause”);

cout << “RESULTADOS:\n”;

cout << "área = " << area << endl

<< "longitud = “ << perímetro << endl

<< "de rario : " << R << endl ;

}

UNTELS JORGE A. MARTEL TORRES 20

Calcular el área del

circulo y el

perímetro(lon) de

circunferencia. Se

ingresa desde el teclado

el valor de “r”

Nota: uso de castig

(conversión de tipo de dato

para tipos de datos)

Page 21: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 21

Sentencias;

{

}

/*

*/

//

Separador de Instrucciones o de Operaciones

Inicio de Bloque de Instrucciones

Fin de bloque de Instrucciones

Inicio de Bloque de Comentarios

Fin de bloque de Comentarios

Línea de Comentarios

Page 22: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 22

Instrucciones I/O• cout

– cout << “Palabras ” ;

– cout << “Palabras ” << endl ;

– cout << NombreVariable ;

– cout << NombreVariable << endl ;

– cout << “Palabras ” << NombreVariable ;

– cout << “Palabras ” << NombreVariable << endl ;

– cout << “Palabras ” << NombreVariable << “Palabras ” ;

– cout << “Palabras ” << NombreVariable << “Palabras ” << endl ;

– cout << “Palabras ” << NombreVariable1 << NombreVariable2 ;

– cout << NombreVariable1 << NombreVariable2 ;

Page 23: JMARTEL S-04 - Secuencial

• cin

– cin >> NombreVariable ;

– cin >> NombreVariable1 >> NombreVariable2 ;

UNTELS JORGE A. MARTEL TORRES 23

Page 24: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 24

Funciones I/O

Funciones de Entrada

scanf Lee los datos desde el teclado a través de una

dirección (&) y los asigna a las variables

scanf (“formato de datos”, &d1, &d2, ..., &dn);

Funciones de Salida

printf Imprime los valores de las variables

printf (“formato de datos y/o comentarios”, V1, V2, ..., Vn);

Simbolo Significdo

%d Entero

%f Flotante

%c Carácter

%s string

Simbolo Significdo

\b retroceso

\n cambio de linea

\t tabulado horizontal

\r retroceso de carro

\07 pitido

\a alerta

Page 25: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 25

Otras Funciones• clrscr() Permite limpiar la pantalla (syetem(“cls”))

• gotoxy() Permite ubicar el cursor en una determinada coordenada de

la pantalla (monitor)

gotoxy (Columna, Fila);

0 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80

5

1 0

1 5

20

25

Filas

Columnas

Page 26: JMARTEL S-04 - Secuencial

UNTELS JORGE A. MARTEL TORRES 26

ContadoresOP Operación Ejemplo Equivalente

+= suma más asignacion c += 7; c = c + 7;

-= resta más asignacion d -= 4; d = d - 4;

= Asignacion simple a = b;

*= multiplicacion más asignacion e *= 5; e = e * 5

/= division más asignacion f /= 3; f = f / 3

%= modulo más asignacion g %= 9; g = g % 3

OP Si Operación

a ++; Utiliza el valor actual, después suma 1

++ b; suma 1, después utiliza el valor actual

c --; Utiliza el valor actual, después quita 1

-- d; quita 1, después utiliza el valor actual

++

--

Page 27: JMARTEL S-04 - Secuencial

Ejercicios

UNTELS JORGE A. MARTEL TORRES 27

Page 28: JMARTEL S-04 - Secuencial

• Si:

𝒗 =𝒆

𝒕

UNTELS JORGE A. MARTEL TORRES 28

1. Realizar el programa para

hallar “v”, si se ingresa desde el

teclado: e, t

2. Realizar el programa para

hallar “e”, si se ingresa desde el

teclado los valores de: v, t

3. Realizar el programa para

hallar “t”, si se ingresa desde el

teclado los valores de: e, v

Page 29: JMARTEL S-04 - Secuencial

Control1. Diseñe el algoritmo (programa) para calcular el área(a) ,

diagonal y el perímetro(p) del cuadrado, si se ingresa desde

el teclado su lado (L).

2. Diseñe el algoritmo (programa) para calcular el área(a) ,

diagonal y el perímetro(p) del rectángulo, si se ingresa

desde el teclado sus lados (x, y).

3. Diseñe el algoritmo (programa) para calcular el área(a) y el

perímetro(p) del rombo, si se ingresa desde el teclado sus

solo sus diagonales (D, d).

4. Diseñe el algoritmo (programa) para calcular el área(a) y el

perímetro(p) del triangulo rectángulo, si se ingresa desde el

teclado solo sus catetos (x, y).UNTELS JORGE A. MARTEL TORRES 29