JMARTEL S-04 - Secuencial

Post on 11-Apr-2016

24 views 3 download

description

programación - secuencial

Transcript of JMARTEL S-04 - Secuencial

PROGRAMACIÓN PARA INGENIERÍA

Semana 04: Estructuras Secuenciales 2

Ing. Jorge A. Martel Torres

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”);

ESTRUCTURA DEL ALGORITMO

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

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

Estructuras de Programación

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

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 )

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

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

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.

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)

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 ) ;

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;

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 ) ;

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 ;

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

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

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

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)

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

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 ;

• cin

– cin >> NombreVariable ;

– cin >> NombreVariable1 >> NombreVariable2 ;

UNTELS JORGE A. MARTEL TORRES 23

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

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

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

++

--

Ejercicios

UNTELS JORGE A. MARTEL TORRES 27

• 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

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