3. El diagrama de flujo es la representación
gráfica del algoritmo o proceso. Se utiliza en
disciplinas como la programación, la economía, los
procesos industriales y la psicología cognitiva. Estos
diagramas utilizan símbolos con significados bien
definidos que representan los pasos del algoritmo, y
representan el flujo de ejecución mediante flechas
que conectan los puntos de inicio y de fin de proceso.
Un Diagrama de Flujo representa la esquematización
gráfica de un algoritmo , el cual muestra gráficamente
los pasos o procesos a seguir para alcanzar la solución
de un problema . Su correcta construcción es
sumamente importante porque , a partir del mismo se
escribe un programa en algún Lenguaje
de Programación. Si el Diagrama de Flujo está
completo y correcto
4. CARACTERÍSTICA
Un diagrama de flujo siempre tiene un único punto de
inicio y un único punto de término.
Las siguientes son acciones previas a la realización del
diagrama de flujo:
Identificar las ideas principales a ser incluidas en el
diagrama de flujo. Deben estar presentes el dueño o
responsable del proceso, los dueños o responsables del
proceso anterior y posterior y de otros procesos
interrelacionados, otras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
5. ,el paso del mismo a un Lenguaje de Programación es
relativamente simple y directo.
Es importante resaltar que el Diagrama de Flujo muestra
el sistema como una red de procesos funcionales
conectados entre sí por " Tuberías " y "Depósitos"
de datos que permite describir el movimiento de los datos
a través del Sistema. Este describirá : Lugares de Origen y
Destino de los datos , Transformaciones a las que son
sometidos los datos, Lugares en los que se almacenan los
datos dentro del sistema , Los canales por donde circulan
los datos. Además de esto podemos decir que este es una
representación reticular de un Sistema ,el cual lo
contempla en términos de sus componentes indicando el
enlace entre los mismos.
En el presente Trabajo se representará a través de un
Diagrama de Flujo el Procedimiento que debe efectuarse
para calcular el pago de los trabajadores de una Empresa .
6. Situación Planteada
A continuación se representara a través de un Diagrama de
Flujo el procedimiento utilizado para el calculo de pago de
los trabajadores por La EmpresaFrutiPack , C.A. , la cual se
encarga de elaborar, procesar y empacar jugos de
excelentes calidad para la Región Centro Occidental del
País. Para estos cálculos se debe tomar en cuenta lo
siguiente :
Sueldo Básico y las horas extras trabajadas .
Para el pago de las horas extras se tienen en cuenta
además la categoría del trabajador , la cual se muestra a
continuación :
Cada trabajador puede tener como máximo 10 horas extras
, si tienen más sólo se les pagarán 10. A los trabajadores
con categoría mayor a 4 no se les debe pagar horas extras.
7. Datos
SUE : Es una variable Real que expresa el sueldo
básico del trabajador.
CATE : Es una variable de tipo entero , que expresa la
categoría del trabajador . 1 < CATE < CATE 8.
HE : Es una variable de tipo entero , que expresa las
horas extras trabajadas por el trabajador.
PHE : Es una variable de tipo real. Almacena
el costo de la hora extra , teniendo en cuenta la
categoría del trabajador.
NSUE : Es una variable de tipo real . Almacena lo que
hay que pagarle al trabajador teniendo en cuenta su
sueldo y las horas extras trabajadas.
8. Diagrama de Flujo
Inicio
SUE , CATE , HE
CATE
PHE = 15.000 PHE = 25.000 PHE = 30.000 PHE = 40.000
PHE = 0
SI NO
HE >10
NSUE=SUE+10*PHE NSUE =SUE+HE*PHE
NSUE
9.
10.
11. LENJUAJE C+ +
C++ es un lenguaje de programación diseñado a
mediados de los años 1980 por Bjarne Stroustrup. La
intención de su creación fue el extender al
exitoso lenguaje de programación C con mecanismos
que permitan la manipulación de objetos. En ese
sentido, desde el punto de vista de loslenguajes
orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades
de programación genérica, que se sumó a los otros
dos paradigmas que ya estaban admitidos
(programación estructurada y la programación
orientada a objetos). Por esto se suele decir que el
C++ es un lenguaje de programación multiparadigma.
12. Actualmente existe un estándar, denominado ISO
C++, al que se han adherido la mayoría de los
fabricantes de compiladores más modernos. Existen
también algunos intérpretes, tales como ROOT.
Una particularidad del C++ es la posibilidad de
redefinir los operadores, y de poder crear
nuevos tipos que se comporten como tipos
fundamentales.
El nombre C++ fue propuesto por Rick Mascitti en el
año 1983, cuando el lenguaje fue utilizado por primera
vez fuera de un laboratorio científico. Antes se había
usado el nombre "C con clases". En C++, la expresión
"C++" significa "incremento de C" y se refiere a que
C++ es una extensión de C.
13. Un ejemplo de programa en C++, el
clásico Hola mundo
Al usar la directiva #include estamos diciéndole al compilador
que busque e interprete todos los elementos definidos en el
archivo que acompaña la directiva (en este caso, iostream). Para
evitar sobrescribir los elementos ya definidos al ponerles igual
nombre, se crearon los espacios de nombres o namespace del
singular en inglés. En este caso hay un espacio de nombres
llamado std, que es donde se incluyen las definiciones de todas
las funciones y clases que conforman la biblioteca estándar de
C++. Al incluir la sentencia using namespace std le estamos
diciendo al compilador que usaremos el espacio de
nombres std por lo que no tendremos que incluirlo cuando
usemos elementos de este espacio de nombres, como pueden
ser los objetos cout y cin, que representan el flujo de salida
estándar (típicamente la pantalla o una ventana de texto) y el
flujo de entrada estándar (típicamente el teclado).
14. La definición de funciones es igual que en C, salvo por
la característica de que si main no va a recoger
argumentos, no tenemos por qué ponérselos, a
diferencia de C, donde había que ponerlos
explícitamente, aunque no se fueran a usar. Queda
solo comentar que el símbolo << se conoce como
operador de inserción, y grosso modo está enviando
a cout lo que queremos mostrar por pantalla para que
lo pinte, en este caso la cadena "Hola mundo". El
mismo operador << se puede usar varias veces en la
misma sentencia, de forma que gracias a esta
característica podremos concatenar el objeto endl al
final, cuyo resultado será imprimir un retorno de línea.
Por último tomaremos una secuencia de caracteres
del teclado hasta el retorno de línea (presionando
ENTER), llamando al método get del objeto cin.
15. Tipos de datos
C++ tiene los siguientes tipos fundamentales:
Caracteres: char (también es un entero), wchar_t
Enteros: short, int, long, long long
Números en coma flotante: float, double, long double
Booleanos: bool
Vacío: void
El modificador unsigned se puede aplicar a enteros
para obtener números sin signo (por omisión los
enteros contienen signo), con lo que se consigue un
rango mayor de números naturales.
16. Tamaños asociados
Según la máquina y el compilador que se utilice los
tipos primitivos pueden ocupar un determinado
tamaño en memoria. La siguiente lista ilustra el
número de bits que ocupan los distintos tipos
primitivos en la arquitectura x86.
Otras arquitecturas pueden requerir distintos
tamaños de tipos de datos primitivos. C++ no dice
nada acerca de cuál es el número de bits en un byte,
ni del tamaño de estos tipos; más bien, ofrece
solamente las siguientes "garantías de tipos":
17. De acuerdo al estándar C99, un tipo char debe ocupar
exactamente un byte compuesto de un mínimo de
8 bits independientemente de la arquitectura de la
máquina.
El tamaño reconocido de char es de 1. Es
decir, sizeof(char) siempre devuelve 1.
Un tipo short tiene al menos el mismo tamaño que un
tipo char.
Un tipo long tiene al menos el doble tamaño en bytes
que un tipo short.
Un tipo int tiene un tamaño entre el de short y el
de long, ambos inclusive, preferentemente el tamaño
de un apuntador de memoria de la máquina.
Un tipo unsigned tiene el mismo tamaño que su
versión signed.
18. Wchar_t
Para la versión del estándar que se publicó en 1998, se
decidió añadir el tipo de dato wchar_t, que permite el
uso de caracteres UNICODE, a diferencia del
tradicional char, que contempla simplemente al
código de caracteres ASCII extendido. A su vez, se ha
definido para la mayoría de las funciones y clases,
tanto de C como de C++, una versión para trabajar
con wchar_t, donde usualmente se prefija el
carácter w al nombre de la función (en ocasiones el
carácter es un infijo). Por ejemplo:
strcpy - wstrcpy
std::string - std::wstring
std::cout - std::wcout
19. La palabra reservada "void"
La palabra reservada void define en C++ el concepto de no
existencia o no atribución de un tipo en una variable o
declaración. Como tal, puede ser usada para destacar que
una función no recibe parámetros, como en:
int funcion (void);
Aunque la tendencia actual es la de no colocar la palabra
"void".
Además se utiliza para determinar que una función no
retorna un valor, como en:
void funcion (int parametro);
20. Cabe destacar que void no es un tipo. Una función
como la declarada anteriormente no puede retornar
un valor por medio de return: la palabra clave va sola.
No es posible una declaración del tipo:
void t; //Está mal
En este sentido, void se comporta de forma
ligeramente diferente a como lo hace en C,
especialmente en cuanto a su significado en
declaraciones y prototipos de funciones.
Sin embargo, la forma especial void * indica que el
tipo de datos es un puntero. Por ejemplo:
void *memoria;
21. Indica que memoria es un puntero a alguna parte,
donde se guarda información de algún tipo.
El programador es responsable de definir estos
"algún", eliminando toda ambigüedad. Una ventaja
de la declaración "void *" es que puede representar a
la vez varios tipos de datos, dependiendo de la
operación de cast escogida. La memoria que hemos
apuntado en alguna parte, en el ejemplo anterior,
bien podría almacenar un entero, un flotante, una
cadena de texto o un programa, o combinaciones de
éstos. Es responsabilidad del programador recordar
qué tipo de datos hay y garantizar el acceso
adecuado.
22.
23. Principios
La función main debe tener uno de los siguientes prototipos:
int main()
int main(int argc, char** argv)
int main(int argc, char** argv, char** env)
La primera es la forma por omisión de un programa que no recibe
parámetros ni argumentos. La segunda forma tiene dos parámetros: argc,
un número que describe el número de argumentos del programa
(incluyendo el nombre del programa mismo), y argv, un puntero a un array
de punteros, de argc elementos, donde el elemento argv[i] representa el i-
ésimo argumento entregado al programa. En el tercer caso se añade la
posibilidad de poder acceder a las variables de entorno de ejecución de la
misma forma que se accede a los argumentos del programa, pero reflejados
sobre la variable env.
El tipo de retorno de main es int. Al finalizar la función main, debe incluirse
el valor de retorno (por ejemplo, return 0;, aunque el estándar prevé
solamente dos posibles valores de retorno: EXIT_SUCCESS y EXIT_ERROR,
definidas en el archivo cstddef), o salir por medio de la función exit.
Alternativamente puede dejarse en blanco, en cuyo caso el compilador es
responsable de agregar la salida adecuada.
24.
25. LENGUAJE DE PROGRAMACION
Un lenguaje de programación es un idioma
artificial diseñado para expresar procesos que pueden ser
llevadas a cabo por máquinas como lascomputadoras.
Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para
expresar algoritmoscon precisión, o como modo de
comunicación humana.1 Está formado por un conjunto de
símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones.
Al proceso por el cual se escribe, se prueba, se depura, se
compila y se mantiene el código fuente de un programa
informático se le llama programación.
26. También la palabra programación se define como el
proceso de creación de
un programa de computadora, mediante la aplicación
de procedimientos lógicos, a través de los siguientes
pasos:
El desarrollo lógico del programa para resolver un
problema en particular.
Escritura de la lógica del programa empleando un
lenguaje de programación específico (codificación del
programa).
Ensamblaje o compilación del programa hasta
convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
27. Existe un error común que trata por sinónimos los términos
'lenguaje de programación' y 'lenguaje informático'. Los
lenguajes informáticos engloban a los lenguajes de
programación y a otros más, como por ejemplo HTML (lenguaje
para el marcado de páginas web que no es propiamente un
lenguaje de programación, sino un conjunto de instrucciones
que permiten diseñar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe
operar una computadora, cómo deben ser almacenados o
transmitidos y qué acciones debe tomar bajo una variada gama
de circunstancias. Todo esto, a través de un lenguaje que intenta
estar relativamente próximo al lenguaje humano o natural. Una
característica relevante de los lenguajes de programación es
precisamente que más de un programador pueda usar un
conjunto común de instrucciones que sean comprendidas entre
ellos para realizar la construcción de un programa de forma
colaborativa.
28. Historia
Para que la computadora entienda nuestras instrucciones
debe usarse un lenguaje específico conocido como código
máquina, el cual la máquina comprende fácilmente, pero
que lo hace excesivamente complicado para las personas.
De hecho sólo consiste en cadenas extensas de números 0
y 1.
Para facilitar el trabajo, los primeros operadores de
computadoras decidieron hacer un traductor para
reemplazar los 0 y 1 por palabras o abstracción de palabras
y letras provenientes del inglés; éste se conoce
como lenguaje ensamblador. Por ejemplo, para sumar se
usa la letra A de la palabra inglesaadd (sumar). El lenguaje
ensamblador sigue la misma estructura del lenguaje
máquina, pero las letras y palabras son más fáciles de
recordar y entender que los números.
29. La necesidad de recordar secuencias de programación para las
acciones usuales llevó a denominarlas con nombres fáciles de
memorizar y
asociar:ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejec
utar subrutina), etc. A esta secuencia de posiciones se le
denominó "instrucciones", y a este conjunto de instrucciones se
le llamó lenguaje ensamblador. Posteriormente aparecieron
diferentes lenguajes de programación, los cuales reciben su
denominación porque tienen una estructura sintáctica similar a
los lenguajes escritos por los humanos, denominados
también lenguajes de alto nivel.
La primera programadora de computadora conocida fue Ada
Lovelace, hija de Anabella Milbanke Byron y Lord Byron.
Anabella introdujo en las matemáticas a Ada quien, después de
conocer aCharles Babbage, tradujo y amplió una descripción de
su máquina analítica. Incluso aunque Babbage nunca completó
la construcción de cualquiera de sus máquinas, el trabajo que
Ada realizó con éstas le hizo ganarse el título de primera
programadora de computadoras del mundo. El nombre
del lenguaje de programación Ada fue escogido como homenaje
a esta programadora.
30. Elementos
Variables y Vectores
Las variables podrían calificarse como contenedores de datos y por ello se
diferencian según el tipo de dato que son capaces de almacenar. En la
mayoría de lenguajes de programación se requiere especificar un tipo de
variable concreto para guardar un dato concreto. Por ejemplo, en Java, si
deseamos guardar una cadena de texto deberemos especificar que la
variable es del tipo "String". Por contra en otros lenguajes como PHP, este
tipo de especificación de variables no es necesario. Además también existen
variables compuestas por varias variables llamados vectores. Un vector no
es más que un conjunto de variables ordenadas guardadas dentro de una
variables contenedor del tipo vector. A continuación añadimos un listado
con los tipos de variables y vectores más comunes:
-Variables tipo Char: Estas variables contienen un único caracter, es decir,
una letra, un signo o un número.
-Variables tipo Int: Contienen un número entero.
-Variables tipo float: Contienen un número decimal.
-Variables tipo String: Contienen cadenas de texto, o lo que es lo mismo, es
un vector con varias variables del tipo Char.
-Variables del tipo Boolean: Solo pueden contener un 0 o un 1. El cero es
considerado para muchos lenguajes como la variable del tipo String "False"
mientras que el 1 se considera "True"
31. Condicionantes
Los condicionantes son estructuras de código que indican
que para que cierta parte del programa se ejecute, deben
cumplirse ciertas premisas, como por ejemplo, que dos
valores sean iguales, que un valor exista, que un valor sea
mayor que otro y similares. Estos condicionantes por lo
general solo se ejecutan una vez a lo largo del programa.
Los condicionantes más conocidos y empleados en
programación son:
If: Indica una condición para que se ejecute una parte del
programa.
Else if: Siempre va precedido de un "If" e indica una
condición para que se ejecute una parte del programa
siempre que no cumpla la condición del if previo y si se
cumpla con la que el "else if" especifique.
Else: Siempre precedido de "If" y en ocasiones de "Else If".
Indica que debe ejecutarse cuando no se cumplan las
condiciones prévias.
32. Bucles
Los bucles son parientes cercanos de los
condicionantes, pero ejecutan constantemente un
código mientras se cumpla una determinada
condición. Los más frecuentes son:
For: Ejecuta un código mientras una variable se
encuentre entre 2 determinados parámetros.
While: Ejecuta un código mientras se cumpla la
condición que solicita.
Hay que decir que a pesar de que existan distintos
tipos de bucles, ambos son capaces de realizar
exactamente las mismas funciones. El empleo de uno
u otro depende, por lo general, del gusto del
programador.
33. Funciones
Las funciones se crearon para evitar tener que repetir
constantemente fragmentos de código. Una función
podría considerarse como una variable que encierra código
dentro de si. Por tanto cuando accedemos a dicha variable
(la función) en realidad lo que estamos es diciendo al
programa que ejecute un determinado código predefinido
anteriormente.
Todos los lenguajes de programación tienen algunos
elementos de formación primitivos para la descripción de
los datos y de los procesos o transformaciones aplicadas a
estos datos (tal como la suma de dos números o la
selección de un elemento que forma parte de una
colección). Estos elementos primitivos son definidos por
reglas sintácticas y semánticas que describen su estructura
y significado respectivamente.
34. Sintaxis
A la forma visible de un lenguaje de programación se le
conoce como sintaxis. La mayoría de los lenguajes de
programación son puramente textuales, es decir, utilizan
secuencias de texto que incluyen palabras, números y
puntuación, de manera similar a los lenguajes naturales
escritos. Por otra parte, hay algunos lenguajes de
programación que son más gráficos en su naturaleza,
utilizando relaciones visuales entre símbolos para
especificar un programa.
La sintaxis de un lenguaje de programación describe las
combinaciones posibles de los símbolos que forman un
programa sintácticamente correcto. El significado que se le
da a una combinación de símbolos es manejado por su
semántica (ya sea formal o como parte del código duro de
la referencia de implementación). Dado que la mayoría de
los lenguajes son textuales, este artículo trata de la sintaxis
textual
35. Tipos estáticos versus tipos
dinámicos
En lenguajes con tipos estáticos se determina el tipo de todas las
expresiones antes de la ejecución del programa (típicamente al
compilar). Por ejemplo, 1 y (2+2) son expresiones enteras; no
pueden ser pasadas a una función que espera una cadena, ni
pueden guardarse en una variable que está definida como fecha.
Los lenguajes con tipos estáticos pueden manejar
tipos explícitos o tipos inferidos. En el primer caso, el
programador debe escribir los tipos en determinadas posiciones
textuales. En el segundo caso, el compilador infiere los tipos de
las expresiones y las declaraciones de acuerdo al contexto. La
mayoría de los lenguajes populares con tipos estáticos, tales
como C++, C# y Java, manejan tipos explícitos. Inferencia total de
los tipos suele asociarse con lenguajes menos populares, tales
como Haskell y ML. Sin embargo, muchos lenguajes de tipos
explícitos permiten inferencias parciales de tipo; tanto Java y C#,
por ejemplo, infieren tipos en un número limitado de casos