martes, 25 de junio de 2013

Tipos de datos enteros en C++

Tipos de datos en  C++
Se clasifican en tipos de datos primitivos los que define el lenguaje.
tipos de datos derivados se forman a partir de los datos primitivos.

Los tipos de datos enteros
Es cualquier número positive o negative sin punto decimal.

tipo de dato  Descripción  Numero de bytes   Rango

short  Entero corto      2     -32768 a 32767
int      Entero               4     -2147483648  a +2147483647
long   Entero Largo     4     -2147483648  a +2147483647
char   Carácter             1     -128 a 127

Cualificadores  signed y unsigned  para un entero con signo y sin signo.

signed short     Entero                          2   -32768 a 32767
unsigned short Entero corto sin signo 2   0 a 65535
signed int         Entero                         4    -2147483648 a +2147483647
unsigned int     Entero sin signo          4      0 a 4294967295
signed long      Entero Largo               4      -2147483648  a    + 214483647
unsigned long  Entero largo sin signo 4  0 a 4294967295
signed char      Cáracter                       1        -128 a 127
unsigned char  Cáracter sin signo       1   0 a 255

Tipos de datos reales, lógico y secuencias de escape

El tipo de dato numérico real es cualquier número con o sin signo que tiene un punto decimal.

tipo de dato  Descripción  número de byte    Rango
float     Valor real    4     +/-  3.4E-38 a 3.4E38
double  Valor real de doble presicion   8   +/- 1.7E-308 a 1.7E308
long double Valor real doble largo      10  +/- 3.4E-4932 a 1.1E4932

Tipo Lógico

Estos tipos de datos pueden tener solo dos valores: true ó false (verdadero o falso)

bool      Dato lógico     1          0,1

Datos de tipo char

Estos tipos de datos son de tipo carácter. Los caracteres  incluyen los caracteres alfabéticos (mayúsculas o minúsculas), los dígito numéricos (0 al 9) y los símbolos especiales .

'A'     '$'     '9'  'd'  '%'

los valores de caracteres se almacenan utilizando  códigos ASCII o EBCDIC.

Secuencia de escape
La diagonal invertida y ciertos caracteres específicos le indica a la computadora que debe escapar  para interpretación  de cierta acción.

Secuencia de escape      Significado
\b                               retrocede un espacio
\f                               avanza a la siguiente página
\n                              avanza a la siguiente línea
\r                               retorno al principio de línea
\t                               avanza a la siguiente posición tabular
\\                               un carácter de diagonal inversa
\'                               comilla sencilla
\nnn                          tratar a nnn como número octal
  

Introducción a C++

El lenguaje C++ es un lenguaje híbrido porque maneja la programación estructurada y la programación orientada a objetos.
La filosofía de la programación estructurada es la descomposición del programa en módulos independientes, cada uno de los cuales  realiza una actividad, pero relacionados entre sí  en orden lógico en un programa. Cada módulo  es fácil de analizar, diseñar, codificar y verificar por separado.

En C++ los módulos puede ser clases o funciones. Una función recibe datos, los transforma y produce una salida. Una clase es una unidad más compleja  porque contiene datos que definen las características de un objeto y funciones o métodos que definen el comportamiento del objeto.

En C++ para diseñar una función o clase se debe dar un nombre. Los nombres que recibe una función, clase , variables  se  le conoce como identificador. Las características son las siguientes:

a) Pueden tener cualquier combinación de letras, dígitos o  subrayados.
b)El primer carácter del nombre debe ser una letra o el subrayado ( _ ).
c)Los espacios en blanco no se permiten , para esto tiene que usar un subrayado.
d)No se permiten palabras reservadas del lenguaje

Ejemplos de identificadores:
sumarNumeros
total_1
densidad
suma_numeros_pares
sumaNumerosImpares

Nota: Debe tener mucho cuidado en el uso de los identificadores que usan letras minúsculas y mayúsculas, debe siempre  estar alerta de no modificar la forma original, porque para C++ son nombres diferentes y puede enviarle un mensaje de error.

la función main( )
Cada programa en C++  solo tiene una función principal llamada main( )  donde se ejecuta el conjunto de instyrucciones que forma el programa.
su format es:


int main ( )  // tipo de valor que entrega la funcion main 
{
declaracion de variables;
instruccion1;
instruccion2;
;
;
instruccionN;
return 0;    // el cero es un entero la function main es de tipo int (entero)
}

viernes, 21 de junio de 2013

Algoritmos

Algoritmos
Antes de escribir un programa, el programador debe tener muy claro que entendió el problema que va a solucionar. Que datos va utilizar, los cálculos , los resultados esperados y el procedimiento que utilizará.

Que es un algoritmo?
Un algoritmo es una secuencia paso a paso para resolver un problema. Es decir, un método empleado para la solución de un problema específico .

Características de los algoritmos:
Ser sencillos,claros, precisos
debe tener un orden lógico
tener un principio y un fin.

Ejemplo:
Hacer un algoritmo para intercambiar el contenido de dos tazas de líquido. Suponga que una tercera taza está disponible para depositar el contenido de cualquier taza,temporalmente. Cada taza deberá enjuagarse antes de vaciar cualquier liquido Nuevo en ella.

Inicio
1.-Depositar el liquido de la taza 1 a la taza 3.
2.-Enjuagar la taza 1.
3.-Vierta taza 2 a la taza 1.
4.-Enjuagar la taza 2
5.-Vierta la taza 3 a la taza 2.
Final

Tarea
Definir su robot, es decir, lo que sabe hacer tomando como referencia lo que Usted hace. Hacer un algoritmo que lo lleve desde que se despierta por la mañana hasta que llegue a la escuela.



Pseudocódigo
Es una técnica que se utiliza para el diseño de programas que permite definir datos, operaciones que se aplicarán a los datos y la lógica que tendrá un programa con un lenguaje informal, muy parecido a las estructuras que maneja un lenguaje de programación.

Estructuras de datos
Las estructuras de datos son las formas de representación interna de datos de la computadora.

Tipos de datos

Datos numéricos se dividen a su vez en enteros y reales.
Los números enteros (int) son los números que no contiene punto decimal; pueden ser positivos o negativos.
ejemplo: 520,4,0,-10, 45

Los números reales son los números que contienen punto decimal; pueden ser positivos o negativos, como por ejemplo:
44.58, 42.323, -5.5, 800.22, 23.56, -12.89

Cadena de caracteres
Los datos cadena de caracteres están compuestos por un grupo de caracteres alfanuméricos.
"Instituto Tecnológico de Tijuana"
"Programacion estructurada"
"X=455.87"

Datos character
El tipo de dato carácter utiliza 1 byte; cualquier carácter del código ASCII.

Datos Boolean
Este tipo de dato está compuesta por los valores Falso (false) y verdadero (true); no puede ser leído o escrito, solo asignado, es útil para plantear condiciones lógicas.

Variables
Son localidades de memoria que almacenan un valor. Todo dato que se maneja en un programa debe utilizar una variable  para almacenar los datos.

Caracteristicas de una variable
1)Debe tener un nombre que identifique a la variable y servirá para referenciarla.

Reglas para asignar un nombre a una variable
a) Se pueden utilizar una combinación de letras mayúsculas y minúsculas (A..Z..a..z) dígito (0...9) y el símbolo subrayado (_)
b)El nombre debe iniciar con una letra.
c)No se debe usar palabras reservada (if,then, else,for, do, while,for..etc)

Los nombres de variables deben ser apropiados a lo que representan

Como se declara una variable en pseudocódigo
nombre_variable   tipo_de _dato

ejemplo;
     meses int   
valor     real  
nombre_empleado[30]  char

Constantes
Las constants son valores fijos que tiene una localidad de memoria.
Por ejemplo:
PI=3.1416
interes=0.24


Lectura de datos (entrada)
Esta operación nos permite introducir los datos a la computadora desde el teclado, lector de codigo de barras.

El formato  es:
     Leer nomVariable1, nomVariable2, nomVariableN
        o
Read nomVariable1, nomVariable2, nomVariableN

Escritura de datos (salida)
La escritura da salida a los datos de la computadora hacia un periferico estandar como la pantalla
El formato es:
Imprimir  nomVariable1, nomVariable2, nomvariable3
o
write nomVariable1, nomVariable2, nomvariable3

Operaciones aritmeticas fundamentals
+ SUMA
- RESTA
* MULTIPLICACION
/ DIVISION
MOD RESIDUO DE UNA DIVISION ENTERA

= ASIGNACION
VARIABLE = EXPRESION
EJEMPLO: SUELDO= horas_trabajadas * pago_hora

La forma de examiner toda una expression de acuerdo a un orden de precedencia
1) Operaciones entre parentesis
primero se evalua lo que esta entre parentesis. Si existen parenthesis anidados primero evalua los más interiores hasta los exteriors.
2)Operaciones unarias
Es decir el cambio de signo
por ejmplo: -89 si le cambia de signo 89
3)multiplicacion y divison
4)suma y resta

Cuando existen varias operaciones de un mismo nivel, se evaluan de izquierda a derecha.

Ejemplo 1 : Hacer un algoritmo para calcular el promedio de un estudiante. Introducir los datos por teclado nombre,calificación 1, calificación 2, calificación 3 y calificación 4 ; de cada uno de los cuatro examines presentados. Imprimir nombre y el promedio de las calificaciones.

inicio
1.-declaración de variables
nombreAlumno[20]  char
calif1,calf2,calf3,calf4, promedio  real
2.-Solicita el nombre alumno y leer nombre
write "Nombre de alumno : "
read nombreAlumno
3.-Solicitar la calificacion 1,2,3 y 4 y leer calificacion 1,2,3,4
write " calificacion 1: "
read calif1
write " calificacion 2:  "
read calif2
write "calificacion 3:  "
read calif3
write " calificacion 4: "
read calif4
4.-calcular el promedio
promedio=(calif1+calif2 +calif3 + calif4)/4
5.-Desplegar nombre y promedio
write "Nombre Alumno : ",nombreAlumno
write"Promedio : ", promedio
fin

Ejemplo 2:

Haga el pseudocodigo que calculi e imprima el costo de un terreno. Se debe leer los datos de ancho y largo del terreno, y el costo del metro cuadrado.

inicio
ancho, largo, costom2, costoTotal  real

write " Introduce los datos del terreno "
write "Ancho : "
read ancho
write " Largo: "
read largo
write "Costo metro cuadrado : "
read costom2
costoTotal=ancho*largo*costom2
write "Costo Total del terreno ",costoTotal
fin


Tarea:
Haga un algoritmo y pseudocódigo que lea una cantidad de horas e imprima su equivalente en minutos, segundos y dias.


Diagrama de flujo  es la representación gráfica de un algoritmo. Cada paso de un proceso es representado por un símbolo  unidos  entre sí con flechas las que indican la dirección de flujo del proceso.























































































































































































































































martes, 18 de junio de 2013

Introducción a la programación

Qué  es una computadora?
Es dispositivo electrónico capaz de procesar información. Las computadoras procesan datos por medio de un programa de computadora.

Organización  de la computadora
1.-Unidad de entrada y salida  proporciona la interfase a la que se conectan los componentes periféricos como teclado, monitor, impresora, lector de tarjetas, etc.
Sirven para proporcionar entrada de datos que necesita la computadora para procesarlos y dar el resultado  de salida.
2.-Unidad de control.  dirige las operaciones en la computadora, coordinando las aplicaciones  y los dispositivos periféricos requeridos.
3.-Unidad aritmética y lógica efectúa todas las operaciones de calculo matemático y decisiones lógicas que  un programa requiere.
4.-Unidad de memoria. Es un almacén de programas y datos de acceso rápido. Retiene la información que se introduce por los dispositivos de entrada para estar disponibles de manera rápida para procesarla cuando  lo requiera el CPU. También retiene temporalmente  los datos procesados hasta  colocarlos en periférico de salida. Recibe el nombre de memoria principal o RAM.
5.-Unidad central de procesamiento Es el cerebro de la computadora . Esta formada por la unidad de control y la unidad aritmética lógica.

En este blog el objetivo es aprender a  hacer programas  en lenguaje C++ y diseñar soluciones por medio de las técnicas de pseudo código y diagrama de flujo.

El proceso de escribir un conjunto de instrucciones para producir un resultado especifico se llama programación.

Tipos de lenguajes de programación:

Lenguaje máquina es un  lenguaje compuestos de 0's y 1's llamado código binario. Donde cada instrucción tiene dos partes: una de instrucción o código de operación, que indica a la computadora la operación a realizar, la segunda parte es la dirección de memoria  de los datos que se van ha procesar.
por ejemplo:  11100000  00000000001    000000000010
11100000 código de operación puede ser sumar,restar,multiplicar..etc.
000000000001 ubicación es 1 donde se encuentra el primer dato.
000000000010 ubicación es 2 donde se encuentra el Segundo dato

los programas escritos en lenguaje maquina es muy complejo y debe tener el conocimiento interno de la computadora. porque cada una tiene su propio lenguaje maquina. En los avances de programación estos 0's y 1's se sustituyeron por símbolos similares a palabras, como por ejemplo ADD,SUB, MUL, por los códigos de operación  y valores decimales  para representan las direcciones de memoria.
por ejemplo:
ADD 1,2.
A este tipo de lenguaje con representación simbólica se le llama lenguaje ensamblador.
Los lenguajes máquina y el ensamblador representan los lenguajes de bajo nivel. Cada instrucción representa una instrucción máquina o microinstrucción.

Un lenguaje de alto nivel utiliza macroinstrucciones que representan un conjunto de instrucciones máquina , se escriben como palabras en ingles. En este tipos de lenguajes esta C, C++, C#,BASIC, Pascal,etc.
A los programas escritos en lenguaje de alto nivel se le conoce programa fuente o código fuente.
Para convertir el programa fuente a programa ejecutable se necesita pasar por un compilador  o interprete.
Un compilador se toma todo el programa fuente y lo traduce a lenguaje máquina. si existiera un error o varios errores manda mensajes de las lineas que tiene que corregir. una vez que analice nuevamente la sintaxis para generar los programa ejecutable.
Un interprete traduce de forma individual  y se ejecuta inmediatamente.

Lenguajes de programación orientado a procedimientos . En la década de los 70's  las personas que desarrollaban proyectos de software a gran escala. Utilizaron una técnica de dividir el proyecto en módulos independientes conocidas como procesamientos. Su finalidad es aceptar datos y transformarlos para producir un resultado específico como salida. Después  unir todos los módulos o procedimientos en un programa principal.
La tecnología de la programación orientada a objetos en la década de 90's se apoyaron en pantallas graficas  donde se  definen las características de los objetos. La tecnología de objetos es una unidad de compactación que permite definir un comportamiento del objeto en un escenario especifico.

 SOLUCION DE PROBLEMAS Y DESARROLLO DE SOFTWARE

El método que utilizan los desarrolladores de software para comprender un problema y para encontrar una solución  apropiada se llama procedimiento de desarrollo de software.
Las fases de desaqrrollo de software son:
fase 1)Desarrollo y diseño
Paso 1.-En esta etapa empieza el plantamiento del problema. Se realiza una solicitud para especificar las caracteristicas del programa.
Las cuatro etapas que se realizan son:
Analisis del problema. Se debe tener una idea muy clara del programa.
Que debe hacer el programa
Los resultados que debe producir
Que datos se necesitan para obtener los resultados deseados.

Paso 2.-Generar un solución
En esta parte debemos utilizer una metodología para solucionar el problema en este caso nosotros utilizaremos pseudo codigo o diagrama de flujo.

Paso 3.-Codificar la solución
En esta parte utilizaremos un lenguaje de alto nivel para codificar la solución del problema en el punto 2.

Paso 4.-Comprobar y corregir el programa
En esta etapa se verifica que el programa entregue los resultados esperados y  funcione correctamente. En caso contrario corregirlo se puede ir nuevamente a la etapa 2 para analizar bien la solución del problema.

El porcentaje  de cada fase de desarrollo y diseño es:
Analizar el problema 10%
Desarrollar la solución es 40%
codificar la solución es 20%
Probar el programa  30%

Fase II Documentación
Existen 5 documentos para la solución del problema:
1.-Descripción del problema.
2.-Desarrollo de la solución.
3.-Listado del programa con los comentarios adecuados.
4.-Muestras de las pruebas realizadas.
5.-Manual del usuario.

Fase III Mantenimiento
En esta fase se dan las actualizaciones que se hacen al programa.
Si existe la documentación adecuada esta etapa se realiza sin ningun problema.
El respaldo es necesario tenerlo, porque permite recuperar información, por cualquier problema con los datos y programas que están en la computadora.