Parte
3:
3.1. Terminología y procesos de desarrollo de
algoritmos.
·
Estructura
de los algoritmos:
Al escribir un algoritmo, se efectúan
descripciones en lenguaje natural
de los pasos que definen las propiedades de coherencia a medida de que
se obtenga consecuentemente operaciones
ejecutables para tener los resultados requeridos. Un
algoritmo es un método para
resolver un problema en donde exige el
diseño , es un fórmula cuyo término de origen se le debe al Padre de la Algoritmia Mohamme
Alko Wẫzrizmi que fue un emblemático matemático para el siglo IX y la traducción de su apellido al latín significa algorismus.
·
Representación gráfica de los algoritmos:
El lenguaje de especificación de los
algoritmos. Los pseudocódigos hace la
traducción del lenguaje natural a un
lenguaje de programación por que los pseudocódigos se originan
como un lenguaje homónimos del inglés;
es por elo que cuando se presentan
estructuras de control de
programación estructurada como especie de un borrador que es donde se planifica el programa ( su
diseño) el bosquejo es centrado en la
lógica pura y en las estructura de
control.
·
Diagramas:
Los
diagramas de Nassi Shneiderman (N/S) o Chapin son similares a los diagramas de
flujo, la diferencia es que omiten las flechas
que orientan las líneas de comando e instrucciones por cajas sucesivas o
recuadros con caracteres y acciones diferentes.
·
Estructura general de un programa:
Un programa es un conjunto de instrucciones que son generadas para que la máquina debe producirlos para obtener la resolución
del problema. Se tiene que
diseñarse el bosquejo del problema “ buscar y evaluar
todos los casos para determinar que tipo de programación se desea efectuar para que sea factible los
resultados, tal es el caso de que el programador emplee la programación modular
o estructurada”; después diseña el algoritmo,
precisando de tal manera todos los pasos e instrucciones que generen esos datos
de salida; se codifica el programa, es el paso de
llevarlo a lenguaje máquina para
depurarlo si se obtienen errores tras la compilación , pues, se verifica en
esta fase todo el proceso del programa; se
efectúa el mantenimiento y la documentación de dicho programa finalmente.
·
Partes de un programa:
Dentro
de las fases del proceso de
programación, están las especificaciones que son la entrada, la salida a través de los algoritmos de solución, éstas
son proporcionadas por el programador bajo un proceso consecuente de
transformación, de tal manera las
entradas del programa son los datos y
cuya salida son los resultados, de
manera que son reflejados la salida de datos
a través de los dispositivos periféricos de salida: la impresora o la
pantalla por ejemplo.
·
Tipos de instrucciones:
Un
programa es lineal si las
instrucciones se ejecutan de forma secuencial de esta forma son las acciones como: acción 1,
acción 2, acción 3, acción n. En el caso
de un programa no lineal, la secuencia
es interrumpida por la bifurcación como un salto de la acción o de la lía de
comando; omitiendo otros pasos cuando la
salida imprimible ( resultados ) de un caso lo requiere hasta llegar al fin del
proceso del programa diseñado. En un
lenguaje de programación,
equitativamente es dependiente del lenguaje donde se interacciona con el
lenguaje nativo de la máquina. Las instrucciones o acciones básicas se pueden especificar de la siguiente forma:
ü Inicio:
es el proceso del proceso que en pseudocódigo en inglés en
begin.
ü Entrada
( lectura de datos ingresados): read / leer . En los elementos básicos de un
programa , donde los lenguajes de programación son combinados con los elementos de sintaxis para construir los comandos e
instrucciones de modo que la máquina lo
interprete correctamente. De esta forma,
están las palabras reservadas con
inicio, fin, fin si, si entonces,….etc.
ü En el caso de los identificadores (
nombre de asignación de las variables, funciones del programa) y aquellos
caracteres especiales como los signos y apóstrofos, los comandos e
instrucciones que poseen las
expresiones que conforman a igual que otros elementos del programa y a partir del diseño del algoritmo y su codificación; posee a su vez, de los siguientes elementos:
bucles, contadores, interruptores, estructuras ( secuenciales, selectivas
repetitivas).
ü Salida
( escritura ): write / escribir. En los
procesos de salida, la escritura de los
resultados se escriben en el
dispositivo de salida como lo es el teclado y se expresa como escribir; es
decir, se visualizarán en pantalla
o imprimible los valores que
pueden guardarse en las variables asignadas.
ü Fin proceso: end en pseudocódigo.
ü Asignaciones:
valor que se guarda dentro de una variable.
·
Instrucciones
de bifurcación:
Es
el punto en el que el programa se
bifurca hacia adelante o hacia atrás,
esto sucede cuando el programador habilita en el desarrollo lineal de un programa la interrupción de la ejecución en función de la evaluación de las condiciones y de los
resultados que se expresan. La
bifurcación del condicional depende del cumplimiento de una determinada condición , si se cumple, se acciona.
3.2. Estructuras de datos y algoritmos:
El objetivo de todo ordenador es del manejo de la información , es por
ello que los datos son la representación
general de los objetos del
computador de acuerdo a su
especificación de valores y operaciones
de dichos datos. Los tipos de datos son:
·
Básicos o simples: son aquellos datos en
donde no se ven reflejadas las estructuras
y de la cual se pueden construir
otros datos a partir del mismo estableciendo las uniones, enumeraciones, vectores
y matrices , cadenas ( arrays) y tablas.
·
Agregados ( estructurados y compuestos): un ejemplo de
algunos lenguajes de programación es FORTRAN en donde es admisible datos
complejos para el tratado de la información
como los números más complejos y
se encuentran otros lenguajes como Pascal
en donde la definición y
declaración de sus propios datos como enumeraciones y subrango.
·
Datos numéricos: del tipo entero o real, pertenecen al conjunto de los valores numéricos . en los valores
enteros ( integer) conforma un subconjunto
finito de números enteros y complejos que no posean partes o componentes fraccionarios o decimales, puede ser tanto negativo como
positivo ; es relevante que los números enteros se pueden representar en cadena de 8 bits , 16 o 32 bits que origina
una escala de números cuyo rango
dependerá de la máquina; es decir,
como enteros ( cortos / largos) modificadores con signo (signe)y sin
signo (unsigne) por lo que los números enteros se denominan como números de
punto fijo .
En el caso de ser valores reales, conformado por subconjuntos de números reales que toman
tanto positivos como negativos , y en aplicaciones científicas, se requiere de una especial representación de éstos números y esa es la
notación exponencial o científica para manejar cantidades muy grandes o
pequeñas, debido a que se descompone en dígitos de tres grupos para que sea expresado en potencia y es así que surge la representación con coma flotante.
·
Datos lógicos ( booleanos): es el dato
que toma valores de falso y
verdadero en donde representa las
alternativas del (si/no) a condiciones
en lenguajes de alto nivel como C++ y Java, FORTRAN que soportan el tipo
de dato bool.
·
Datos carácter y tipo cadena: el tipo carácter es un conjunto finito y ordenado
de caracteres que el ordenador
reconoce; es decir, un dato del tipo carácter posee un solo carácter ya sea
alfabético, numéricos o carácter especiales
que son los signos de puntuación por ejemplo.
Una
cadena ( string) de caracteres
sucesivos, están delimitados por una comilla
( apóstrofo) o doble comilla según el tipo de lenguaje de programación , pues , la longitud de la
cadena de caracteres es el número
entre las comillas que son los
delimitadores o los separadores de cada carácter .
·
Datos locales y datos globales: en un programa de alto nivel ( procedimental) tal es el caso de C, un programa de gran
magnitud se conforma de numerosas
funciones y uno de esos componentes se encuentran en dos tipos de
datos:
ü Datos locales, son los que se encuentran
ocultos en el inerior de la función
y son empleados sólo por la
función que desempeñan, es decir, estos datos locales se asocian con las funciones propias y protegidas de modificaciones alternas por otras
funciones.
ü Datos
globales, son la que conllevan una gran conexión a gran escala entre funciones y datos que dificultan su comprensión y su lectura, de esta
manera todas lass conexiones
múltiples originaría problemáticas que
hacen el difícil acceso a la
conceptualización del programa , provocando de tal manera una difícil
modificación del programa porque
en cambios de datos globales puede
solicitar la redacción nuevamente de cada una de las funciones de la cual acceden a los mismo, este es el
caso en que suele suceder que en dichas
modificaciones de los datos
globales no sean lo suficientemente
aceptables por las funciones que
intervienen en la fase procedimental del programa, La ventaja de los datos globales,
consiste en que el punto de acceso es
mas factible; es decir, desde cualquier función del programa , en más de ods
funciones, inclusive, se logra acceder a
esos mismos datos siempre y cuando
cumpla con la condición de que sean globales.
ü Modelado
del mundo real: se refiere a la
programación estructurada que mejora la
calidad del mantenimiento de los programas en el mundo físico en donde se tratan los objetos complejos. El objeto en los
lenguajes orientados a objetos POO consiste en
combinar, asociar o tratar unidades o módulos; así como de datos y de funciones que operan sobre esos mismos datos en donde
las funciones de un objeto se llaman miembro en C++ o
metódico . La representación de los objetos en UML ( Lenguaje Unificado de Modelado) como los recuadros se presentan lo que se
denotan como case , por ejemplo:
(Toyota: carro); (Secretaria: persona).
ü Datos
de un objeto o atributos , llamados también como variables de instancia, es cuando si se desea
leer los datos de un objeto se le llama
a la función de ese objeto; es decir, al
acceder a los datos, se devuelve un valor en consecuencia de esa solicitud de información.
ü Atributos o características de los objetos: los
atributos del mundo real tienen su equivalente a los datos de un programa. El POO
se considera como uno de los
paradigmas de la programación más
empleado en los software y de la
ingeniería , en cuanto se presenten problemas más complejos, se implementan diseños de la programación estructurada a diferencia de la programación procedimental
que en esta sólo se resalta los algoritmos y que POO buscar estratégicamente reajustar el lenguaje del problema con el objeto de diseño
de los datos de acuerdo a las
características del problema.
ü Comportamiento de los POO: en los objetos se ejecutan acciones del mundo real como respuesta instantánea a los datos y funciones . Un leguaje
orientado a objetos se describe en los
datos y funciones que se encuentran
encapsuladas en una entidad; es decir,
el encapsulamiento de los datos y la ocultación de éstos son la clave que permite protegerlos sin alteraciones, en el caso de
que se desea una modificación de los
datos ya conociendo las funciones y su interacción con los miembros del objeto no podrá ninguna
otra función alterna acceder a los datos
.
En C++
está compuesta de objetos
numerados que se comunican entre si
mediante otras funciones
miembro en donde envía un mensaje
a otro , es por ello que el
paradigma de POO es la organización de los objetos que poseen datos y operaciones .
·
Propiedades de POO
ü Abstracción
(TAD): Los Tipos abstractos de datos y clases son la propiedad fundamental de
los POO que consiste en utilizar propiedades externas de una entidad externa y los detalles de la entidad interna, es por ello que diseñan
los sistemas de una forma compleja de
componente entre componente . Mediante
este proceso, se determinan las características
y cómo es el comportamiento de los niveles de abstracción. Para
ello, las herramientas abstractas
se visualizan por cada nivel en donde se van describiendo los
atributos y el comportamiento de un objeto como en las operaciones; así
como unas colecciones de datos pueden ser arrays, listas, pilas, árboles,
árboles binarios, grafos, …., pueden
haber como otro ejemplo, los tipos de objetos físicos que serían lo carros,
aviones, trenes , barcos, bicicletas, son medios de transporte.
Cuando
nos referimos al centro de POO, es que visualiza y utiliza
todos los enfoques en donde
describe un proceso, la cual asocian
los objetos determinándose las entidades de manera individual, pues, un sistema se caracteriza por un estado
y comportamiento del objeto y los
valores que toman esos datos ( atributos ) que se conforman estructuras
de los objetos ( funciones o
métodos).
ü Encapsulamiento y ocultación de los datos: se procede
a agrupar los datos y
operaciones bajo la misma unidad, van relacionadas para que el aspecto del componente definido por la interfaz estén separados y
ocultos esos datos ( information
hiding) y encapsulamiento de los datos ( data encapsulation).
ü Clases: En POO, son la esencia de los tipos de datos al igual que un dato que se encuentre
definido, en un lenguaje de programación
, como una descripción de unos
números de objetos similares al compartir los mismos atributos y operaciones, es decir, si una clase
encapsula las abstracciones de los datos
y las operaciones necesarias para la descripción de un objeto en el mundo real, en UML por ejemplo,
la representación de clases sería
definir las clases de personas, autos, hechiceros, cleros, animale, etc.
El jugador de futbol/ Nombre/
altura/peso/vida/ edad/ patear/ saltar…
ü Herencia:
se refiere a la generalización como la
propiedad que permite el compartimiento
de la información entre dos entidades en
donde se evite la redundancia, sólo se
enfoca en la clase y la superclase, por ejemplo, (refrigerador/
electrodoméstico). También la
especialización es otra propiedad en la
que se efectúa el proceso inverso de la generalización en el que se dan definiciones a clase a
partir de las ya existentes. Básicamente la herencia en orientación a objetos es donde se
implementan la propiedad de
generalización debido a que comparte las características comunes de su derivando, por ejemplo , en C++ la clase original es denotada como clase base y las clases que se la derivan se
les llaman clases derivadas.
ü Reusabilidad:
ya cuando se ha escrito la clase, es creada y depurada para que se pueda distribuir a otros programadores para la utilización de
programas propios (reusability) y en
POO, muchas empresas emplean la reutilización de la clase para
minoría de costos ( escatimar costes) de
inversión en la programación.
ü Poliformismo:
ES la consistencia y reducción de
los códigos como la ventaja de definir
la herencia; es decir, el poliformismo
es una función del objeto que lo
llama en tiempo de ejecución y durante la compilación en donde una case
está denominada en distintas formas; por ejemplo: animal/ mamífero/ reptiles/
felinos/ herbívoros/ omnívoros/ arácnidos/….n .
ü Diseño de POO:
un programa de alto nivel como
los POO posee la identificación de los objetos del sistema,
la agrupación en clases a todos los
objetos que tengan características y comportamientos similares en lo que las
relacionan, la identificación de los datos y operaciones es de vital
importancia en cada una de las clases
para conllevar a la identifcación de las
realciones.
·
Constantes y variables. en los programas
de un ordenador tienen valores definidos que no se pueden cambiar en la fase de la ejecución de dicho
programa y se les denominan como
constantes, sólo los valores que pueden cambiar en la fase de ejecución son las variables.
El
carácter válido está queda dentro de los apóstrofos y cundo se expresan en sucesiones se concadena; es decir, si se quiere unir dos caracteres ´MIGUEL´+
´CERVANTES´ en pantalla al concadenar se
imprime MIGUEL DE CERVANTES
·
Las constantes lógicas o booleanas , existen sí y sólo si hay verdadero o falso, las variables tienen atributos que son el nombre de la asignación y el uso que se le dará, y se le conoce a las variables como los
identificadores que constan a los caracteres alfanuméricos.
·
Expresiones : se refiere al la
combinación de constantes , variables,
símbolos o signos de operación y de
agrupación como los paréntesis y el nombre
de las funciones especiales. Se emplean
los paréntesis para indicar el orden de
los cálculos. Una expresión consta
básicamente de operandos y operadores
que se clasifican en:
ü Expresiones
aritméticas que se denotan análogas a las fórmulas matemáticas , las
variables y constantes son numéricas ya
sea real o entera, mod % que es módulo o resto, se emplea los operadores
aritméticos. Todos los operadores aritméticos no están presentes en todos los
lenguajes de programación como en
FORTRAN no existe el div y el mod .
ü Operadores como div (/) y mod(%) se emplean para la
división real y la división entera por que el operador div y el operador mod son
los que representan el resto de la
división entera . Por ejemplo: A div B
solo se usa si A y B son expresiones
enteras y al obtener esa parte entera
A/B se asigna 19/ 6 = 19div6 toma el valor 3. así cuando se comprueba 19 div3 equivale a 6
y 19 mod 6 equivale a 1. Entre los operadores están los denominados incremento
y decremento; el operador incremento
(++) aumenta el valor en una unidad y el decremento (−−) la
disminuye. Para as cadenas con el
incremento en i en 1 y después se emplea el valor de 1
en la expresión ( ++i); en el
caso de que usa el valor de i en la
expresión de la que se encuentre y
después se incrementa en 1 es (i++); cuando decremento en 1 y después utiliza de nuevo el valor de i en la
expresión correspondiente ( −−i); al utilizar el valor de i en la expresión en que se encuentra y después
se incrementa en 1 es (i−i−).
Ejemplo: con el algoritmo ejecutado se tiene
que n=4 y al escribir n que es
asignado como valor de 4 y si se escribe n++ el 4 en la siguiente acción o la
transformación es que ha aumentado un valor de su unidad ( incremento) se
escribe de n++ es 5 y el valor de n torna a 5
de ese n=4 se escribiera ++n
sería 5 y el n=5.
ü Expresiones lógicas ( booleanas): con dos condiciones de verdadero ( true) o
falso ( false) posee a su vez en las
expresiones booleanas unos operadores lógicos
denominados como not, or, and de los cuales también existen los operadores relacionales o de comparación <menor
que; > mayor que; = igual
que ; == igual en doble implicación ( bicondicional); <= menor o igual que
; >= mayor o igual que ; <>distinto así como de distinto en caso de ser negada la
expresión quedaría así !=. Con lógica
podremos deducir lo siguiente: no 5>8
es verdadera , ya que 5>8 es falsa;
caso de que 1<7 y 7<20 es verdadero(true.
Comentarios
Publicar un comentario