lunes, 18 de julio de 2016

Modulo 3. TIPOS DE DATOS Y DECLARACION DE VARIABLES


TIPOS DE DATOS Y DECLARACIÓN DE VARIABLES
Los ordenadores resultan útiles por su capacidad de almacenar y manipular enormes cantidades de información. Esta información puede estar en forma de números, como en un informe financiero, o caracteres alfabéticos como en el caso de nombres y direcciones. La gestión de esta información exige el uso de lenguajes de programación. Una de las tareas esenciales de un lenguaje de programación es la de identificar el tipo de datos que manipula.
Los datos se almacenan en la memoria del ordenador. El sistema de memoria consta de celdas numeradas de forma distintiva llamadas direcciones de memoria. Cuando se almacena algo, hay que conocer las direcciones para poder recuperarlo y trabajar con ello. Un lenguaje de programación nos evita el tener que seguir el rastro de estas direcciones de memoria sustituyendo sus nombres. Estos nombres se denominan variables. Las variables son los nombres descriptivos de las direcciones de memoria.
Antes de utilizar una variable en C, debemos declararla. Tenemos que identificar qué tipo de información almacenará. Este proceso se llama definición de variable. Las variables deben declararse al comienzo de cualquier bloque de código, pero la mayoría se encuentran al principio de una función. Una variable debe definirse como perteneciente a uno de los tipos de datos reconocidos por C. Cuando se define una variable no se inicia automáticamente, es responsabilidad del programador iniciarla con un valor de arranque.
Todas las definiciones de variables deben incluir dos cosas: el nombre de la variable y su tipo de datos. Hay algunas reglas a seguir a la hora de nombrar una variable en C: debe comenzar por símbolo alfabético, y pueden contener letras, guiones bajos (_) y dígitos. Se pueden utilizar tanto minúsculas como mayúsculas. No se deben colocar espacios en el nombre de una variable. Algunas claves como int, float, struct, if, while no pueden emplearse como nombres de variables. Los nombres de las variables no deben ser muy largos –consulte la documentación del compilador de C para conocer la limitación–. Generalmente los primeros ocho caracteres de un nombre de variable son significativos.
El formato para declarar una variable en C es el siguiente:
tipo_var nombres de variables;

Ejemplos:

int contador;
float total, cantidad, interes;
char respuesta;

En C no existe el tipo booleano, hay que utilizar los tipos int, unsigned char o char.
Tipo int
Int es un tipo de dato entero. Una variable declarada como de este tipo sólo puede contener un valor en el rango indicado en la tabla 3.1 (arriba). Se utiliza para almacenar números enteros.
Tipo float
Las variables de coma flotante pueden almacenar un valor que contenga coma decimal. Los números de coma flotante pueden tener parte entera y fraccionaria.
Tipo double
El tipo double es similar a float, pero se utiliza cuando la precisión de una variable de coma flotante no es suficiente. Las variables declaradas como tipo double pueden contener aproximadamente el doble de dígitos significativos que las variables de tipo float.
Tipo char
Las variables de caracteres se usan para almacenar valores alfabéticos, en particular letras solas.
Fuente: Kishori Mundargi. 2003. Variable y Tipos de datos.
Disponible en: http://www.peoi.org/Courses/Coursessp/cprog/cprog3.html

OPERADORES ARITMÉTICOS, LÓGICOS Y RELACIONALES
Operadores aritméticos
Son aquellos que sirven para operar términos numéricos. El ejemplo más utilizado es el símbolo (+) o de suma. Estos operadores podemos clasificarlos a su vez como:
· UNARIOS: Aquellos que trabajan con UN OPERANDO.
· BINARIOS: Son los que combinan DOS OPERANDOS, dando como resultado un valor numérico cuyo tipo será igual al mayor de los tipos que tengan los operandos.
Un operando viene a ser una de las entradas (argumentos) de un operador Por ejemplo, en:
3 + 6 = 9
"+" es el operador y "3" y "6" son los operandos.
La siguiente tabla muestra los símbolos de los operadores binarios:



Operadores aritméticos básicos
Operador
Operación
Ejemplo
Resultado
+
Suma
a + b
suma de a y b
-
Resta
a - b
Diferencia de a y b
*
Multiplicación
a * b
Producto de a por b
/
División
a / b
Cociente de a por b

Operadores Relacionales:
Una RELACIÓN consiste de dos operandos separados por un operador relacional. Si la relación es satisfecha, el resultado tendrá un valor como VERDADERO; si la relación no se satisface, el resultado tendrá un valor como FALSO.
A continuación se describen los operadores relacionales más utilizados:
Símbolo
Significado
=
IGUAL que
<> 
NO IGUAL que
< 
MENOR que
> 
MAYOR que
<=
MENOR o IGUAL que
>=
MAYOR o IGUAL que
Ejemplos:
Relación
Resultado
20 = 11
Falso
15 < 20
Verdadero
PI (π) > 3.14
Falso
'A' < 20
Falso
'A' = 65
Verdadero



Operadores lógicos

Al igual que en las operaciones relacionales, en las operaciones con operadores lógicos se tienen resultados cuyo valor de verdad toma uno de los valores VERDADERO o FALSO, también llamados (booleanos).
Los operadores lógicos son :
NOT.
not operando
Descripción: Invierte el valor de verdad de operando.
Ejemplo: 
Si bandera tiene un valor de VERDADERO, ( not bandera) produce un resultado con valor de verdad FALSO.
AND.
operando.1 and operando.2
Descripción: Produce un resultado con valor de verdadVERDADERO cuando ambos operandos tienen valor de verdad VERDADERO; en cualquier otro caso el resultado tendrá un valor de verdad FALSO.
OR.
operando.1 or operando.2
Descripción: Produce un resultado con valor de verdadFALSO cuando ambos operadores tienen valores de verdadFALSO; en cualquier otro caso el resultado tendrá un valor de verdad VERDADERO.
XOR.
operando.1 xor operando.2
Descripción: Un operando debe tener valor de verdadVERDADERO y el otro FALSO para que el resultado tenga valor de verdad VERDADERO.

FUNCIONES DE ENTRADA Y SALIDA DE DATOS

Cuando nos referimos a entrada/salida estándar (E/S estándar) queremos decir que los datos o bien se están leyendo del teclado, ó bien se están escribiendo en el monitor de video.
En el lenguaje c++ tenemos varias alternativas para ingresar y/o mostrar datos, dependiendo de la librería que vamos a utilizar para desarrollar el programa.
Las operaciones de entrada y salida no forman parte del conjunto de sentencias de C++, sino que pertenecen al conjunto de funciones y clases de la biblioteca estándar de C++. Ellas se incluyen en los archivos de cabecera iostream.h por lo que siempre que queramos utilizarlas deberemos introducir la línea de código #include  <iostream.h>
Esta biblioteca es una implementación orientada a objetos y está basada en el concepto de flujos. A nivel abstracto un flujo es un medio de describir la secuencia de datos de una fuente a un destino o sumidero. Así, por ejemplo, cuando se introducen caracteres desde el teclado, se puede pensar en caracteres que fluyen o se trasladan desde el teclado a las estructuras de datos del programa.
Los objetos de flujo que vienen predefinidos serán:
cin, que toma caracteres de la entrada estándar (teclado);
cout, pone caracteres en la salida estándar (pantalla);
cerr y clog ponen mensajes de error en la salida estándar.
SALIDA (OUT)
El operador de insercion, 
<<, inserta datos en flujo, ejemplos: 
cout 
<< 500; // envia el numero 500 a la pantalla
cout 
<< " Esto es una cadena " ; // visualiza Esto es una cadena
Es posible usar una serie de operadores 
<< en cascada, ejemplo:
cout 
<< 500 
<< 600 
<< 700; 
Visualiza 500, 600, 700.
De igual modo,
cout 
<< 500 
<<", " 
<< 600 
<< ", " 
<< 700;
Visualiza 500, 600, 700
C++ utiliza secuencias de escape para visualizar caracteres que no están representados por símbolos tradicionales, tales como \a, \b, etc.
Ejemplo:
cout << "\n" // salta a una nueva línea
cout << "Yo estoy preocupado \n no por el funcionamiento \n sino porla claridad \n";
ENTRADA (CIN) 
El archivo de cabecera iostream.h de la biblioteca C++proporciona un flujo de entrada estándar cin y un operador de extracción, >>, para extraer valores del flujo y almacenarlos en variables, la entrada normal es el teclado.
Disponible en: http://ocw.uc3m.es/ingenieria-informatica/inteligencia-artificial/mis-items/material-de-clase-2/clips.pdf

SINTAXIS DE LAS ESTRUCTURAS DE CONTROL (SELECTIVO Y REPETITIVO)

Estructuras selectivas

Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o alternativas). Lo que se hace es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra.
Estructuras repetitivos
Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces. Este conjunto de sentencias se denomina bucle (loop). En este capítulo se introducen las estructuras de control repetitivas disponibles en el lenguaje turbo pascal; asimismo se describen un conjunto de técnicas para diseñar algoritmos y programas que utilicen bucles.

BUCLE

Una estructura de control que permite la recepción de una serie determinada de sentencias se denomina bucle (lazo o ciclo).

El cuerpo del bucle contiene las sentencias que se repiten. Pascal proporciona tres estructuras o sentencias de control para especificar la repetición: while, repeat y for.
LA SENTENCIA WHILE

La estructura repetitiva while   (mientras) es aquella en la que el número de interacciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condición. por esta razón, a estos bucles se les denomina bucles condicionales.

LA SENTENCIA REPEAT
Una variable de la sentencia while es la sentencia repeat. Una de las características de los bucles while-do es que la condición se valúa al principio de cada iteración, si la condición es falsa cuando las sentencia comienza, entonces el bucle no se ejecuta nunca.

Esta sentencia tiene una condicional que se repite hasta que dicha condición se haga verdadera esta condición se denomina repeat-until
.

LA SENTENCIA FOR

La sentencia for nos sirve ya que con ella se puede ejecutar un bucle que se repita determinado número de veces.

Esta sentencia requiere que conozcamos el número   de veces que se desea ejecutar la sentencia del interior del bucle. Si no se conoce de antemano el número de repeticiones es mejor utilizar la sentencia while o repeat.

Disponible en: http://teoriasdelosalgoritmo.blogspot.com/2013/02/estructura-de-control-repetitiva-grupo-7.html

FUNCIÓN PREDEFINIDA
En el lenguaje Java se pueden calcular las funciones matemáticas típicas que vienen en una calculadora. Por ejemplo para calcular el lado de un cuadrado a partir de su área se puede usar la función que calcula la raíz cuadrada:
    double lado= sqrt(area);
En esta instrucción, sqrt(area) es una llamada a una función. Una llamada a función es una forma de expresión aritmética. Su sintaxis general es:
``función''( ``argumentos'')
En donde ``argumentos'' son una o más expresiones separadas por coma. Una llamada a una función se puede colocar en cualquier parte en donde sea válido colocar una expresión.
Una función puede ser por ejemplo:
(Obs. a los profesores: vean sólo algunas de estas funciones. La idea es mostrar la sintaxis.)
Función
Significado
Ejemplo
Valor
sqrt(x)
raíz cuadrada
sqrt(4.0)
2.0
abs(x)
valor absoluto
abs(-3.0)
3.0
pow(x,y)
x elevado a y
pow(2.0, 3.0)
8.0
exp(x)
e a la x
exp(1.0)
2.71...
log(x)
logaritmo natural
log(E)
1.0
Disponible en: http://users.dcc.uchile.cl/~lmateu/CC10A/Apuntes/funciones/

CREAR EJECUTABLE DE UN ARCHIVO.

Crear paquetes bajo Gambas


 1. Abrimos nuestro programa y creamos el ejecutable. Para ello hacemos clic en la opción: proyecto -> Crear -> Ejecutable; como se aprecia en la imagen mas abajo.
ejecutable

2. Guardamos el archivo asegurandonos que contenga extension gambas (*.gambas). Ver la siguiente imagen:

Guardar Imagen
3. Ahora creamos el paquete de instalacion el cual dependiendo de la(s) distribucion(es) donde se instalara generará los instaladores necesarios (bien sea, *.deb, *.rpm, etc). Para ello debemos pulsar: Proyecto->Crear->Paquete de Instalación, y seguir el asistente:
paquete1.pngpaquete2.pngpaquete3.png

Nota: Es recomendable seleccionar una distribucion a la vez, ya que puede ocasionar problemas en la siguiente ventana del asistente.
paquete4.pngpaquete5.pngpaquete6.png


Una vez finalizado el asistente, se genera el paquete en función de las distribuciones elegidas durante la compilación y empaquetado.

Vanessa Bissessar.
Pnf. Informatica.
El Tigre, Julio 2016

lunes, 13 de junio de 2016

Modulo 2. Lenguaje POO



Modulo 2.  Lenguaje de la Programacion Orientada a Objetos (POO).

Universidad Politécnica Territorial "José  Antonio Anzoátegui"


El Tigre, 13/06/2016


Integrante: Vanessa Bissessar.

PNF: Informatica 02.

Trimestre: IV
Trayecto: 2


¿Que es Gamba? 
            Es un lenguaje de programación libre derivado de BASIC (de ahí que Gambas quiere decir Gambas Almost Means Basic). Es distribuido con licencia GNU GPL. Cabe destacar que presenta ciertas similitudes conJava ya que en la ejecución de cualquier aplicación, se requiere un conjunto de librerías interprete previamente instaladas (Gambas Runtime) que entiendan el bytecode de las aplicaciones desarrolladas y lo conviertan en código ejecutable por el computador. Por otro lado, a diferencia de Java, no se experimentan ralentizaciones y es posible desarrollar grandes aplicaciones en poco tiempo.
      Permite crear formularios con botones de comandos, cuadros de texto y muchos otros controles y enlazarlos a bases de datos como MySQL, PostgreSQL o SQLite además de facilitar la creación de aplicaciones muy diversas como videojuegos (utilizando OpenGL), aplicaciones para dispositivos móviles (en desarrollo pero muy avanzado), aplicaciones de red (con manejo avanzado de protocolos HTTP, FTP, SMTP, DNS), entre otras .

Fuente: Jaqueline. LENGUAJE DE PROGRAMACION. 31 de enero de 2013 .
Disponible en: http://ricechela.blogspot.com/2013/01/concepto-gambas.html


¿Que es GPL GNU?
         La Licencia Pública General de GNU o GPL por sus siglas en ingles, es una licencia creada por la Free Software Foundation, que está orientada principalmente a proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. La GPL, en sus diferentes versiones y variantes, es usada por más de la mitad del software libre disponible en el mercado. 

 Fuente: isocron system 
Disponible en: https://www.isocron.net/node/36

Entorno Integrado de Desarrollo.
    Es una aplicación informática que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software.
Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador. La mayoría de los IDE tienen auto-completado inteligente de código (IntelliSense). Algunos IDE contienen un compilador, un intérprete, o ambos, tales como NetBeans y Eclipse; otros no, tales como SharpDevelop y Lazarus. 

Fuente: Wikipedia
Disponible en: https://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado

Interfaz Grafica de Usuario.
     Es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador.

Fuente: Wikipedia
Disponible en: https://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario


jueves, 26 de mayo de 2016

modulo 1 . CONCEPTOS FUNDAMENTALES DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (P.O.O)



Universidad Politecnica Territorial "Jose  Antonio Anzoategui"




MODULO 1. CONCEPTOS FUNDAMENTALES DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (P.O.O)

 Lenguaje de Programación
Es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Fuente: wikipedia libre, disponible en: https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n
Distintos Paradigmas de la Programación
Paradigma Imperativo: describe la programación como una secuencia instrucciones o comandos que cambian el estado de un programa.
Paradigma Declarativo: No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución.
Paradigma Estructurado: la programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí. Además la programación se controla con secuencia, selección e iteración. Permite reutilizar código programado y otorga una mejor compresión de la programación.
Paradigma Orientado a Objetos: está basado en la idea de encapsular estado y operaciones en objetos. En general, la programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). Se puede incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos, que además posee herencia y subtipos entre objetos. Ej.: Simula, Smalltalk, C++, Java, Visual Basic .NET, etc. Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas.
Paradigma Funcional: este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones. Paradigma lógico: se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas al sistema y así resolver los problemas. Ej.: prolog. Otros paradigmas y subparadigmas son: paradigma orientado al sujeto, paradigma reflectante, programación basada en reglas, paradigma basado en restricciones, programación basada en prototipos, paradigma orientado a aspectos, etc.
Fuente: 14 de octubre del 2013.  Miriam del Carmen García Martínez. Disponible en: http://michelletorres.mx/paradigmas-de-programacion/
Elementos de poo
– Objetos: atributos + métodos
– Métodos: operaciones sobre los objetos
– Clases: categorías de objetos con propiedades y operaciones comunes
– Jerarquías de clases
– En algunos lenguajes las clases son objetos, en otros no
– Relaciones, objetos compuestos
Fuente: programación orientada a objetos. Disponible en: https://damian02.wordpress.com/elementos-de-poo/

Características de la P.O.O
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar "cómo" se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.
 Reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.

Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.


Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una "interfaz" a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

La recolección de basura (garbage collection) es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.

Fuente: programación orientada a objetos. disponible en: https://algonzalezpoo.wordpress.com/caracteristicas-de-poo/


                                                                                                                                           Integrante   
.                                                                            Vanessa Bissessar.
C.I. 25.487.641
PNF. Informática 02
El Tigre, 26/05/2016