FI
EE
-
2
01
3
FASES EN EL DESARROLLO DE UN
PROGRAMAIng. José Antonio Poma G.
FI
EE
-
2
01
3Fases: Resolución de un Problema
El proceso de resolucion de un problema con una computadora conduce a la escritura (codificacion) de un programa y a su ejecucion.1. Análisis del Problema.2. Diseño de Algoritmo.3. Transformación del Algoritmo en
programa.a) Codificación.b) Compilación, enlace y ejecución.c) Verificación.d) Depuración.e) Documentación.
FI
EE
-
2
01
3Análisis del Problema
En esta fase se debe contemplar exactamente lo que debe hacer el programa y el resultado o solucion deseado.
Presisando especificaciones detalladas de entrada y salida respondiendo a las siguientes Preguntas.
1. Que entrada se requiere?2. Cuál es la salida deseada?3. Que metodo produce la salida
deseada?
FI
EE
-
2
01
3Diseño de un Algoritmo
DIAGRAMA DE FLUJO. Es una re presentacion grafica de un
algoritmo utilizando simbolos normalizados por el ANSI (American National Standards Institute).
PSEUDOCODIGO Es una Herramienta de programacion en la
que instrucciones se escriben en palabras similares al ingles o espanol, que facilitan tanto la escritura como la codificacion de programas.
CARTA N-S (Nassi - Schneider) Es una Herramienta de programacion que
permite la representacion grafica de un algoritmo. Este es el prototipo de los programas estructurados (Programacion anti-goto).
FI
EE
-
2
01
3ALGORITMO: Definición
Es un conjunto de pasos lógicos ordenados, secuencialmente y finita, escritos de tal forma que permiten visualizar la solución de un problema determinado en un momento específico.
FI
EE
-
2
01
3
FINITO
CONCRETOLEGIBLE
DEFINIDO
PRECISO
NO AMBIGUO
EFICIENTE
Debe ser...Debe tener terminar en algún momento
Debe realizar las funciones u
operaciones para las que fue creado.
Debe estar bien estructurado para su fácil entendimiento.
Debe realizar las operaciones con un
mínimo de utilización de recursos.
Debe estar libre de errores. (Validado)
Debe indicar un orden de realización de
cada paso.
Debe generar el mismo resultado
siempre que se siga.
ALGORITMO: Caracteríticas
FI
EE
-
2
01
3• El nombre en latín de algoritmo
proviene de la traducción que realizó Fibonacci, de la obra del matemático árabe Al'Khwarizmi llamada , Algoritmi de Numero Indorum.
ALGORITMO: Nombre
FI
EE
-
2
01
3Datos
Procesos
Estructuras de Control
Corresponden a los datos requeridos para realizar el algoritmo (datos de entrada) y los datos que son generados (datos de salida)
ALGORITMO: Estructura
Conforma el grupo de instrucciones que realizan las operaciones con los datos.
Determinan la organización de las instrucciones que deben ser realizadas.
FI
EE
-
2
01
3Definición
de variables y constantes
ProcesoEstructuras de control
Entrada Salida
Es necesario identificar que datos se necesitan ingresar, cuales sirven de forma auxiliar y cuales se van a generar.
Las instrucciones que se van a realizar deben estar bien estructuradas y tener un orden lógico, con el fin de evitar inconsistencias en el resultado.
Cuerpo del algoritmo
ALGORITMO: Elementos
FI
EE
-
2
01
3Toda persona, implícitamente y diariamente diseña y realiza algoritmos, para dar solución a situaciones cotidianas de forma natural.
Sin embargo el programador, diseña el algoritmo conciente de que al realizar cada paso obtendrá la solución de un problema específico.
ALGORITMO: Quienes pueden hacer un Algoritmo Como se hace?
FI
EE
-
2
01
3
Supongamos que deseamos ir al cine a ver la tercera película de La Guerra delas Galaxias, ¿cómo procedemos?
Buscar la página de cines en el diario local y mirar si ve la película anunciada. Si la ve anunciada mira en qué cine la hacen y se va a verla. Si no la ve anunciada, espera a los estrenos de la semana que viene.
El no programador haría lo siguiente:ALGORITMO: Como se hace?
FI
EE
-
2
01
3
Buscar la página de cines en el diario local, con fecha de hoy
Revisar la cartelera de arriba abajo y de izquierdaa derecha, buscando entre los títulos existentes.
Si se encuentra el título La Guerra de las Galaxias, no seguir buscando. Apuntar el nombre del cine, su dirección y los horarios
Si no se encuentra el título en la cartelera, esperar una semana y volver a empezar el proceso a partir del punto 1 de esta lista.
1
2
3
4
El programador sin embargo, lo haría de este otro modo:
ALGORITMO: Como se hace?
FI
EE
-
2
01
3
1. Poner la llave.
2. Asegurarse que el cambio esté en neutro.
3. Pisar el el acelerador.
4. Girar la llave hasta la posición “arranque”.
5. Si el motor arranca antes de 6 seg, dejar la llave en la posición “encendido”.
6. Si el motor no arranca antes de 6 seg, volver al paso 3 (como máximo 5 veces).
7. Si el auto no arranca, llamar a la grúa.
Encender un automóvil
ALGORITMO: Ejemplo
FI
EE
-
2
01
3
Los algoritmos se crean para resolverproblemas. Es importante que junto al algoritmo, describamos claramente el problema que éste nos permite resolver.
No debemos omitir el contexto de nuestros algoritmos. Es necesario establecer lo que se necesita y dónde se debe comenzar.
Seguir los pasos del algoritmo debe llevarnos a la resolución del problema.Siempre que sea posible seguiremos personalmente los pasos de nuestro algoritmo para comprobar que sonefectivamente correctos y conducen efectivamente a la solución esperada.
Por ejemplo: Si se requiere hallar la velocidad de un automóvil, es necesario, definir si la distancia debe ser en metros, kilómetros, etc y el tiempo estará dado en segundos u horas, ya que la velocidad puede representarse en Km/h ó mts/seg.
Debe Definirse del problema
Debe estar dentro de contexto
Debe resolver el problema
Debe evitar la ambigüedad
ALGORITMO: Requisitos
FI
EE
-
2
01
3
Es una técnica de diseño descendente donde se realiza un refinamiento sucesivo, que permite darle una organización a las instrucciones, en forma de módulos o bloques.
Está técnica permite dividir el problema en pequeñas partes, a las cuales se les da solución por separado, luego se integran las soluciones para resolver el problema principal.
Top Down
Divide y vencerás
ALGORITMO: Técnicas de Diseño
FI
EE
-
2
01
3Es una técnica que permite representar gráficamente las operaciones y estructuras que se van a realizar, mediante una simbología estándar, con un único punto de inicio y uno de finalización.
Está técnica permite representar el algoritmo mediante un lenguaje más estructurado, facilitando su posterior codificación.
Diagrama de Flujo
Pseudocódigo
Inicio Instrucción 1 Instrucción 2 Si condición entonces Instrucción 3 . . . Instrucción nFin
ALGORITMO: Técnicas de Presentación
FI
EE
-
2
01
3Cada instrucción que se va a realizar debe comenzar por un verbo, ejemplo: Muestre, Haga, Lea, etc.
Se debe mantener una identación o sangría sobre el margen izquierdo para identificar fácilmente el comienzo y final de las estructuras
La representación de las estructuras son similares u homónimas de los lenguajes de programación, ejemplo: inicio, fin, mientras que, repita_hasta, si_entonces_sino, etc.
1
2
3
PSEUDOCÓDIGO: Cómo se Hace?
FI
EE
-
2
01
3Inicio : Denota el punto de inicio del algoritmo.
Leer : Denota la acción de introducir datos o variables desde un dispositivo estándar de entrada.
Calcular : Denota la realización de cualquier operación aritmética que genere valores para ser
almacenados en una variable.
Imprimir : Representa la acción de enviar datos desde variables a un dispositivo estándar de salida.
Fin: Denota el punto de finalización del algoritmo.
PSEUDOCÓDIGO: Cómo se Hace?
FI
EE
-
2
01
3
Se utiliza para indicar el punto
de inicio y
finalización del diagrama
Permite indicar la Entrada de datos
desde un dispositivo
estándar
Inicio Fin
Lectura Captura Permite indicar la
realización de un proceso
matemático, o una operación de
asignación
Proceso
Diagrama de Flujo: Simbología
FI
EE
-
2
01
3
Indica la realización de operaciones de salida a un
dispositivo estándar (el monitor o impresor.)
Permite establecer una condición relacional ó
lógica que puede tomar un valor de
verdadero o falso, de este símbolo se
deducen 2 flujos alternativos de
ejecución.
ImpresiónDecisión Permiten dar continuidad al
diagrama si la página o área de trabajo esta
llena, el círculo se utiliza como un
conector dentro de la misma página, el otro
símbolo se define como un conector a
otra página.
Conectores Permiten enlazar los símbolos de un sentido
único pueden ser horizontales o
verticales. Estas no pueden entrecruzarse y cada una de ellas debe
tener un único símbolo de partida y un único
símbolo de destino.
Flujo
Diagrama de Flujo: Simbología
FI
EE
-
2
01
3Estructuras de Decisión (Condición)
Condición
Si
NoCondición
Si NoSi condición entonces Instrucciones
Si condición entonces Instrucciones si no Instrucciones
Decisión Simple
Decisión Compuesta
CondiciónSi No
CondiciónNo
CondiciónSi No
Decisión Anidada
Si condición entonces Si condición entonces Instrucciones si no Si condición entonces Instrucciones si no Instrucciones
Caso condición Val1: Instrucciones Val2: Instrucciones Val3: Instrucciones Otros: InstruccionesFin Caso
Decisión Múltiple
Condición
Si
NoCondición
Val3Val1 Val2 Otro
Diagrama de Flujo: Simbología
FI
EE
-
2
01
3Estructuras de Ciclo
Condición
Si
No
Instrucciones
.
.
.Mientras que condición InstruccionesFin Mientras...
.
.
.RepitaInstruccionesHasta que condición...
Ciclo MientrasCiclo HastaCiclo Para...Para v=valini, v=valfinal, inc Instrucciones Fin Para...v: variablevalini: valor inicialvalfinal: valor finalinc: incrementoCondición
Si
No
Instrucciones
Instrucciones
v=valini,v=valfinal, incremento
Diagrama de Flujo: Simbología
FI
EE
-
2
01
3
Análisis del problema
Definición del problema
Selección de la mejor alternativa
Diagramación
Prueba de escritorio
Alg
ori
tmo
ALGORITMO: Fases del Diseño
FI
EE
-
2
01
3 Está dada por el enunciado del
problema, el cuál debe ser claro y completo
Es importante que conozcamos exactamente que se desea.
Mientras qué esto no se comprenda, no tiene caso pasar a la siguiente etapa.
ALGORITMO: Definición del Problema
FI
EE
-
2
01
3
Proceso
Entendido el problema para resolverlo es preciso analizar
Los datos de salida o
resultados que se esperan
Los datos de entrada que nos
suministran
Áreade
Trabajo
Fórmulas Recursos
ALGORITMO: Análisis del Problema
FI
EE
-
2
01
3
Analizado el problema Posiblemente tengamos varias formas de resolverlo
Solución ..1
Solución ..2
Solución ..3
Solución ..5
Lo importante es determinar cuál es la mejor alternativa
La que produce los resultados Esperados en el menor tiempo y al menor costo
Se debe tener en cuenta el principio de que las
cosas siempre se podrán hacer de una mejor
forma.
ALGORITMO: Selección de Alternativa
FI
EE
-
2
01
3
Una vez que
sabemos
cómo resolver el
problema
Dibujargráficamente la lógica de la alternativa
seleccionada
Plasmar la solucion
mediante elPseudocódigo
ALGORITMO: Diagramacion
FI
EE
-
2
01
3Esta prueba consiste en:
Dar diferentes datos de entrada al programa
seguir la secuencia indicada
hasta obtener los resultados
Se utiliza para corroborar que el algoritmo plasmado en cualquier herramienta presenta la solución al problema inicial
Al realizar lo anterior se puede comprobar si el algoritmo es
correcto o si hay necesidad de hacer ajustes
(volver al paso anterior)
Es Recomendable
Dar diferentes datos de entrada y considerar todos los posibles casos, aún los de excepción o no esperados, para asegurar que el programa no produzca errores en ejecución cuando se presenten estos casos.
ALGORITMO: Prueba de Escritorio
FI
EE
-
2
01
3
Minima parte de la información.Se refiere a los elementos que se utilizan en los algoritmos para realizar alguna operación sobre estos.
Corresponde al tipo de valor que puede
almacenarse en un espacio de memoria
definido y a la cantidad de espacio que requiere para almacenar un valor.
DatoTipo de Dato
Corresponde a un espacio de memoria que
almacena un dato que dentro del programa en
ejecución cambia o varía su contenido (valor)..
VariableCorresponde a un
espacio de memoria que almacena un dato que
dentro del programa en ejecución mantiene
siempre su contenido (valor).
Constante
ALGORITMO: Conceptos
FI
EE
-
2
01
3 Tipos de
Datos
Caracter
Real
Entero
Boleano
cadena
Numéricos
Lógicos
Carácter
ALGORITMO: Tipos de Datos
FI
EE
-
2
01
3Aritméticos
Lógicos
Relacionales
+- >
<=
NoY &&O ||
/ ^
%>=<=
!= <>
ALGORITMO: Operadores
FI
EE
-
2
01
3
Ejemplo: Calcular el Área de un triangulo dado sus tres lados
Para esto usaremos las variables a,b,c que representarán la medida de la longitud de cada lados del triángulo.
La variable A para el area y P para su semiperimetro
𝐴=√𝑝 (𝑝−𝑎)(𝑝−𝑏)(𝑝−𝑐)
FI
EE
-
2
01
3Pseudocodigos
leer aleer bleer cSi el triangulo existe
calcular pcalcular A
sinomostrar el mensaje “El triangulo no existe”Fin de Si
FI
EE
-
2
01
3
𝑝=𝑎+𝑏+𝑐2
𝐴=√𝑝 (𝑝−𝑎)(𝑝−𝑏)(𝑝−𝑐)
I
𝑭𝒊𝒏
𝒍𝒆𝒆𝒓 𝒂 ,𝒃𝒚 𝒄
?
𝑬𝒔𝒄𝒓𝒊𝒃𝒊𝒓 𝑨
𝒔𝒊𝒏𝒐
Diagrama de Flujo
FI
EE
-
2
01
3Escritura de un Programa en C++
Compilador
Codigo Fuente
Codigo Objeto
Enlazador
Programa Ejecutable
ObjetoArchivos
BibliotecasOtros
FI
EE
-
2
01
3Elementos del lenguaje
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos (elementos del lenguaje) que comprenden el vocabulario básico del lenguaje.
A estos componentes léxicos se les denomina “tokens” los identificadores. Las palabras reservadas. (p.claves) Las constantes Las constantes de cadena Los operadores y Los signos de puntuación.
FI
EE
-
2
01
3Identificadores
Son secuencias de caracteres: letras, digitos y subrayados (_).
Que sirven para dar nombres a las variables, constantes, tipos, funciones, clases,y etiquetas de un programa.
1. Un identificador es una secuencia arbitraria de letras y dígitos.
nombresdireccionTelefono
2. El primer caracter del identificador debe ser una letra o subrayado.
el_unico_fiee2012
3. El caracter subrayado (_) se trata como una letra.
FI
EE
-
2
01
3Identificadores
4. Los identificadores que comienzan con dos subrayados estan reservadas para el uso interno del compilador C++.
__MSDOS____BORLANDC__
5. Las letras mayúsculas y minúsculas se tratan como caracteres diferentes.
uniUNIunac2012
6. Un identificador definido por el usuario no puede tener el mismo nombre de una palabra reservada.
FI
EE
-
2
01
3Palabras Reservadas
1. Son identificadores predefinidos que tienen un significado especial para el compilador C++.
asn continue float new signed try
auto default for operator sizeof typedef
break delete friend private static union
case do goto protected struct unsigned
catch double if public switch virtual
char else include register template void
class enum int return this volatile
const extern long short throw while
FI
EE
-
2
01
3Constantes
1. Una constante es un valor que no cambia en un programa durante su ejecucion, este es fijado por el compilador.
Constante literal Constantes definidas Constantes enumeradas Constantes declaradas.
FI
EE
-
2
01
3Constantes literales
Se clasifican el 4 grupos: Constantes enteras.
123// formato decimal0264//formato octal0xBE3F//formato hexadecimal1132U// constante entera unsigned int (U)1302//constante entera de tipo long (L)
Constantes reales13.23 7773.2233123 3.141592654 .231.24E6 notación cientifica del numero 1.24 x
Constantes de un solo caracter‘M’ ‘E’ ‘\n’ ‘\r’
Constantes de caracteres (cadena).“FIEE 2012” tiene 9 caracteres.“unac 2012”
Constante literal Constantes definidas Constantes enumeradas Constantes declaradas.
FI
EE
-
2
01
3Constantes Definidas (simbólicas)
Son identificadores asociados a una cadena o valor mediante directivas del procesador #define.A estos identificadores se les denomina macros.La forma general de la directiva es:
#define CIERTO 1#define FALSO 0#define pi 3.141592
El compilador C++ sustituye los valores 1, 0 y 3.141592 cuando encuentre las macros CIERTO, FALSO y pi respectivamente
cout<< “El valor de pi es” <<pi;Mostrara en la pantallaEl valor de pi es 3.141592
#define nombre_macro valor
FI
EE
-
2
01
3Constantes Enumeradas
Son un conjunto de constantes enteras enumeradas en orden ascendente (0,1,…) asociadas cada una a un identificador en el orden que son puestas, con la finalidad de crear listas de elemtos afines.
El siguiente fragmento de codigo define una enumeracion llamada dias y declara ultimodia del tipo dias.
enum nombre_enumeracion{lista_de_enumeracion} lista_de_variables
enum dias{lunes,martes,miercoles,jueves,viernes,sabado,domingo};//definicion del tipo enumerado diasdias ultimodia;//declaracion de la variable ultimodia del tipo dias
ultimodia = domingo;//ultimodia toma el valor entero 6
FI
EE
-
2
01
3Constantes Declaradas
Tipo constPermiten especificar valores que no pueden ser cambiados durante la ejecucion del programa.
Tipo volatilePermiten especificar un valor que puede cambiar por medios no explicitamente especificados por el programa, es decir por ninguna sentencia. Su uso se da cuando alguna optimizacion puede cambiar el orden de evaluacion de una expresion durante el proceso de compilacion.
const tipo nombre=valor
const int Semana=7;const char curso[]=“Lenguaje de Programación C++”const float e=2.718282;
Const volatile tipo nombre=valor
FI
EE
-
2
01
3Ejemplo
#include <iostream>int main(){
using namespace std;
cout<< "Hola Uni..."cout<< endl;cout<< "Bienvenidos"<< endl;
system ("pause")return 0;
}