JMARTEL S-04 - Secuencial
description
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