miércoles, 4 de junio de 2008

BLACK JACK (JUEGO)

TRABAJO: juego BLACK JACK

miércoles, 28 de mayo de 2008

taller de programacion

*Objetivo:
conocer la información de cada estudiante(nombres ,código, materias, notas créditos ponderado y el ponderado en general de todos los estudiantes).*Definición del problema:conocer las notas y promedio ponderado de estas, la sumatoria de los créditos de todas las materias y el promedio de notas de cada estudiante el ponderado general.

*Identificación de datos:
Entrada: -Nombre del estudiante
-Código del estudiante
-Nombre de las materias variables
-Códigos de las materias
-Notas de cada materia
-Numero de cada materia
Proceso:
Datos internos: 18 (estudiantes)
Datos atómicos
a) Ingreso nombre del estudiante
b) Ingreso código del estudiante
c) Ingreso numero de materias
d) Ingreso crédito por cada materia
e) Ingreso el código de cada materia
f) Ingreso la nota correspondiente a cada materia
g) Opero la suma de las notas de las materias vistas y las divido por el numero de materias
h) Opero sumo el número de créditos de cada materia
i) Se repite este proceso con los 17 restantes estudiantes.
j) Opero, tomo todos los promedios de notas de los estudiantes los sumo y los divido por el número de estudiantes.
Salida:
-Nombre del estudiante
-Código del estudiante
-Materias vistas por el estudiante
-Código de las materias vistas
-Ponderado de notas de cada estudiante
-Número de créditos vistos por cada estudiante
- Ponderado de todos los estudiantes

miércoles, 16 de abril de 2008

martes, 15 de abril de 2008

PROGRAMA QUE CALCULA EL VALOR DE UN TIQUETE CONOCIENDO LA DISTANCIA RECORRIDA Y LA ESTADIA DEL USUARIO:

miércoles, 9 de abril de 2008

CUBA
la actividad que mas me llamo la atencion es la que se va a realizar en la ciudad de cuba puesto que en ella se expondrán muestras expositivas de las diferentes distribuciones de Linux, conferencias de instalación de servicios telemáticos en Linux, exposiciones sobre uso del software libre en los Joven club y en las escuelas del sistema educacional cubano.
Enlaces directo a los diferentes wikis de los paises participantes:

QUE ES EL FRISOL?


El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de software libre más grande en Latinoamérica cuyo objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo.
Las diversas comunidades de software libre se organizan en eventos, en los cuales se instala de forma gratuita software en la computadoras. se ofrecen ademas charlas, ponencias, talleres sobre la tematica del software libre en latinoamerica.
El FLISOL 2008 se llevará a cabo el sábado 26 de abril. GRATIS.
El FRISOL es organizado por la Comunidad de Software Libre en Latinoamérica.
El evento va dirijo a toda clase de publico, ya que el objetivo es compartir conocimientos y aprender.

  • Los bebficios del evento seran la de installar software libre en tu computadora, conocer otra alternativa de desarrollo y distribucion de softaware, conocer distintos proyectos y experincias de grupos y entidades, entre otros.
  • los eventos se realizaran en los siguientes paises:
Argentina
Bolivia
Brasil
Chile
Colombia
Costa Rica
Cuba
Ecuador
ElSalvador
Guatemala
Honduras
Mexico
Nicaragua
Panama
Paraguay
Peru
Uruguay
Venezuela
  • EN COLOMBIA LAS CIUDADES PARTICIPANTES DEL EVENTO SON:

Barranquilla
Bucaramanga
Bogotá
Cali
Cartagena
Cúcuta
Fresno Tolima
Florencia Caqueta
Girardot
Ibague
Manizales
Medellín
Monteria
Neiva
Pasto
Pereira
Popayán
Riohacha
Roldanillo
San Gil
Sincelejo
Sogamoso
Tunja
Villavicencio
  • si deseas prestar tu colaboracion, se necesita de aquella en los siguientes campos:
-Difusión
-Patrocinio
-Como Instalador
-Como Logística
-Construcción Comunitaria del
Wiki
  • Material de consulta:

-Descubriendo El Software Libre

-La Leyenda de una Cruzada.

  • Que es un wiki?

Se le llama Wiki a las páginas Web con enlaces, imágenes y cualquier tipo de contenido que puede ser visitada y editada por cualquier persona. Nos permite crear colectivamente documentos sin que se realice una aceptación del contenido antes de ser publicado en Internet.

domingo, 2 de marzo de 2008

Ejercicios con estructuras de control:
Secuenciales:
- Obtener en grados celcius una temperatura dada en grados Fahrenheit: introducimos la variable de temperatura de grados Fahrenheit en la formula de conversión(c=f-32/1.8), luego damos en la opción convertir y el ordenador nos generara una respuesta.
-Un programa que calcule la multiplicación de dos números
- Calcular el valor de una resistencia, conociendo el voltaje que cae y la corrienete que circula por ella.
Selectivas:
- Calcular si un año es bisiesto o no: un año es bisiesto si es divisible x 4 pero no por 100 excepto aquellos divisibles x 400
- Un programa que lea un numero de mes(1-12) y diga el numero de días de dicho mes.
-Determinar si un numero entre 1 y 10 es par o impar

Repetitivas:

-Obtener la suma de números hasta uno determinado
- Obtener la suma de números pares hasta uno determinado
- Calcular la suma de una lista de números ingresados por el usuario

domingo, 24 de febrero de 2008

que son los DATOS?

JULIAN DAVID CARVAJAL
2007167569
MAESTRO: JORGE MARIÑO
MATERIA: INT. A LA PROGRAMACION
TEMA: ¿QUE SON LOS DATOS?
LOS DATOS

Concepto de DATOS:

Datos son los hechos que describen sucesos y entidades."Datos" es una palabra en plural que se refiere a más de un hecho. A un hecho simple se le denomina "data-ítem" o elemento de dato.Los datos son comunicados por varios tipos de símbolos tales como las letras del alfabeto, números, movimientos de labios,puntos y rayas, señales con la mano, dibujos, etc. Estos símbolos se pueden ordenar y reordenar de forma utilizable y se les denomina información.Los datos son símbolos que describen condiciones, hechos, situaciones o valores. Los datos se caracterizan por no contener ninguna información. Un dato puede significar un número, una letra, un signo ortográfico o cualquier símbolo que represente una cantidad, una medida, una palabra o una descripción.La importancia de los datos está en su capacidad de asociarse dentro de un contexto para convertirse en información. Por si mismos los datos no tienen capacidad de comunicar un significado y por tanto no pueden afectar el comportamiento de quien los recibe.

¿Qué es un dato?
– Valor
• Constante: no cambia durante la ejecución del programa.
•Variable: cambia durante la ejecución de un programa.

– Identificador: el dato tiene un nombre.
• Normas de estilo para diferenciar entre identificadores
– de constantes
– y de variable.
– Tipo
• Dominio: valores que puede tomar el dato.
• Operaciones permitidas.
– Cardinalidad (#): número de valores distintos.
Ejemplos de datos en un algoritmo

Operadores básicos
• Los operadores permiten manipular datos.
• Operadores básicos: conjunto mínimo.
• Construcción de nuevos operadores: busca optimizar la eficiencia.
• Operadores generales:
– Asignación (=): el valor de un dato se copia en otro dato.
• Es un operador universal para todos los tipos de datos, simples o compuestos.
– Comparación de igualdad (==): verifica si dos datos tienen el mismo valor.
• Se emplea en expresiones lógicas (devuelve VERDADERO o FALSO).
• No es un operador universal: no está definida para tipos compuestos.
Uso de operadores y tipos
• En nuestro pseudolenguaje, los operadores se aplican sobre datos con el mismo tipo.
•Algunos lenguajes de programación son más estrictos que otros respecto al tipado de datos:
– C/C++: flexible
– MODULA-2: estricto
– ADA: muy estricto
Clasificación de los tipos de datos
• Tipos simples o no estructurados
– No están compuestos por otros tipos.
– Contienen un solo v alor.
– Son atómicos: indivisibles.
– Se dividen en:
• Predefinidos: propios del lenguaje empleado.
• Definidos por el usuario (programador).
• Tipos compuestos o estructurados:
– Se componen de otros tipos (simples o compuestos).
Tipos simples predefinidos
• Son la base de la programación.
• Dependen del lenguaje empleado.
• Pueden usarse sin necesidad de definirlos.
• En nuestro pseudolenguaje:
•N: números naturales
•Z: números enteros
•R: números reales
•B: booleanos
•C: caracteres
Propiedades de los tipos predefinidos
• Atómicos.
• Ordenados: admiten operadores relacionales: Tipos escalares
==, >, <, >=, <=, !=
• Sucesor, predecesor únicos (excepto R): Tipos ordinales
Orden: ORD: T ® {0, . . ., #T-1}
Predecesor: PRED: T ® T
Sucesor: SUC: T ® T
Operadores para tipos predefinidos
• Naturales (N): +, -, *, DIV, MOD
• Enteros (Z): +, -, *, DIV, MOD, ABS
• Reales (R): +, -, *, /, SQRT, POW, etc.
• Lógicos (B): Valores: VERDADERO, FALSO
Operadores: Y, O, NO
• Caracteres (C): ORD, CHR
Tipo natural (N) y tipo entero (Z)
• Dominio: conjunto N y conjunto Z
• Operadores específicos: + - (binario) * DIV MOD – (unario).
• Funciones predefinidas específicas: ABS(expresión), POW (base, exponente), etc.
• Literales: 34, -999, 0, etc.
• Entrada/salida formateada: Leer(), Escribir().
• Representación física:
– N: binario puro
– Z: signo-magnitud, complemento-1, complemento-2
Tipo real (R)
• Dominio: conjunto R
• Operadores específicos: + - (binario) *DIV MOD / - (unario).
• Funciones predefinidas específicas: SQRT(expresión), POW (base, exponente), etc.
• Literales: 10, -12.25, .36, 3.9E-56
• Entrada/salida formateada: Leer(), Escribir().
• Distintas representaciones físicas: coma fija (precisión limitada), coma flotante (prec. variable).
Tipo carácter (C)
• Dominio: conjunto de caracteres gráficos y de control del sistema.
• Operadores: ninguno específico.
• Funciones predefinidas específicas: CHR(), CAP().
• Literales: ‘a’, ‘A’, ‘0’, ‘&’, ‘\n’, ‘\0’, ‘\\’, ‘\’’, ‘\”’.
• Entrada/salida: Leer(), Escribir().
• Representación física: códigos E/S estándar.
Tipo lógico o booleano (B)
• Dominio: VERDADERO y FALSO.
• Operadores lógicos: Y O NO.





• Literales: VERDADERO y FALSO.
• Entrada salida: no permitida.

Tipos predefinidos en C++
• Enteros (int, long, short): +, -, *, /, %
• Naturales (unsigned int, unsigned short, unsigned long): +, -, *, /, %
• Reales (float, double): +, -, *, /, sqrt, . .
• Lógicos (bool):Valores: true, false Operadores: &&, , !
• Caracteres (char)

Definición de tipos en C++. Ejemplo

Tipos simples definidos por el usuario
• Los tipos enumerados:
– Permiten definir nuevos tipos simples, de cardinalidad (n) reducida, y valores fácilmente interpretables.
– Se declaran en la sección de TIPOS de un algoritmo.
ENUM {Id1, Id2, ..., Idn} IdTipoEnumerado
– Literales: identificadores: Id1, Id2, ..., Idn
– Son tipos ordinales: ORD(), SUC() y PRED().
– No tienen operadores específicos.
– Representación física: como N o como Z.
– La entrada/salida no está permitida.
– El tipo booleano puede verse como un enumerado con dos valores: ENUM {VERDADERO, FALSO} B

Los tipos simples mejoran la legibilidad...

... aunque el dominio sea arbitrario...
CONST
N ROJO = 1 /***********************/
N VERDE = 2 /* Valores arbitrarios */
N AMARILLO = 3 /***********************/

... y no haya manera de restringirlo y/o controlarlo.

VAR
N color, semaforo
INICIO
color = ROJO // Más legible
semaforo = 9 // Nada lo impide


Los tipos enumerados...
• Mejoran la legibilidad y permiten restringir y controlar el dominio.


Tipos enumerados en C++:Tipos de datos compuestos
• Se componen de otros tipos (simples o compuestos a su vez).
• Componentes homogéneos: arrays.
• Componentes heterogéneos: registros.
• No ordenados: no se les puede aplicar los operadores relacionales.
• La asignación entre datos del mismo tipo compuesto es siempre posible: copia completa del dato.
Expresiones aritméticas y lógicas
• Una expresión es una combinación de elementos que representan valores (operandos) y conectivas (aritméticas y/o lógicas) que representan operaciones (operadores).
• Ejemplos:
s<=((d+4.0e-5)*32.1)/SQRT(valor) Y NO fin (angulo==45) O NO (33.56
Elementos léxicos de una expresión
• Operandos:
– Constantes literales.
– Constantes simbólicas.
– Variables.
– Llamadas a funciones.
• Operadores:
– Aritméticos.
– Relacionales.
– Lógicos.

Elementos sintácticos de una expresión
• Notación infija para los operadores binarios
a * b
suma >= 20.5
• Notación prefija para los operadores unarios
- x
NO a
• Posibilidad de uso y anidamiento de paréntesis.
(dato + 5) * 32
((valor + 0.6 * (2.6 – dato)) * 1E6 + 99.9)

Elementos semánticos de una expresión
• Todos los elementos son de un determinado tipo.
• Todos los operadores y funciones devuelven un determinado tipo.



Tipos de los operadores

Tipos de las funciones predefinidas




Compatibilidad de tipos
• Los operandos binarios deben ser compatibles entre sí y con los operadores.
• Regla de estilo, que los tipos de los operandos de una expresión DEBEN SER IDÉNTICOS.
• Ejemplo:
Conversiones de tipo
• Permiten mezclar en la misma expresión datos de distinto tipo.
• Tipos de conversión:
– Explícita: TipoDestino(expresión)
• Son indicadas por el programador: 2 + Z(3.6 / 2)
• Regla de estilo: todas las conversiones de tipo en una expresión deben ser explícitas.
– Implícitas: especificadas por el lenguaje
• Ejemplo: 2 + 3.5 (convierte el segundo operando al tipo del primero, esto es, natural o entero)
• Regla de estilo: deben evitarse las conversiones implícitas.

Evaluación de una expresión
• Reglas de precedencia:
– Los paréntesis tienen la mayor precedencia: los más internos preceden a los más externos.
– Si no se utilizan paréntesis, el orden en que se realizan las operaciones es el siguiente:
• 1º Operador unario lógico y aritmético: NO y -
• 2º Operadores multiplicativos: *, /, DIV, y MOD
• 3º Operadores aditivos (binarios): + y –
• 4º Operadores relacionales: <, >, <=, >=, ==, !=
• 5º Operador lógico de conjunción: Y
• 6º Operador lógico de disyunción: O
– Los operadores con la misma precedencia se evalúan de izquierda a derecha.
• Recomendación: en caso de duda, usar paréntesis

La sentencia de asignación (=):
• Es un operador universal: aplicable a cualquier tipo de datos, simples o compuestos.
variable = expresión
lvalue r-value
Memoria valor

• A la izquierda de la expresión debe haber una variable (contenedor).
• Los tipos de la variable y la expresión deben ser idénticos.
• Dos posibles acciones: (1) inicializar una variable después de declararla

(2) modificar el valor (estado) que ya tenga.

Precisiones sobre la asignación
• Modo de ejecución:
1) Se calcula el resultado correspondiente a la expresión que aparece a la derecha.
2) Se almacena el valor calculado en la variable cuyo nombre aparece a la izquierda. A=5

A=A + 1

• El tipo de la expresión de la derecha (r-value) debe ser idéntico al de la variable (l-value)..

• Pueden hacerse conversiones explícitas de tipos entre tipos compatibles antes de realizar la asignación.
Ejemplo: suma = 3.5 + R(num), si suma es real y num natural.

Ejemplos de asignación de literales
Suponiendo las siguientes declaraciones de variables...

Otros ejemplos de asignaciones
semaforo = verde // TSemaforo
semaforo = PRED(verde) // TSemaforo
a = ORD(‘8’)-ORD(‘0’) // N
a = (b*4) DIV (a+b) // Z
e = VERDADERO // B
e = a > 4 // B
c1 = ‘a’; c2 = CAP(c1) // C
c2 = CHR(126) // C
c = R(a)/R(b) // R


Expresiones en C++
• El tipo de la expresión/variable de la derecha debe ser compatible con el tipo de la variable, aunque se aconseja, como regla de estilo, que sean tipos idénticos.
• Sin embargo, existen conversiones implícitas, desaconsejadas. Por ejemplo,
float x; int y; x = y; //El tipo de y se pasa a float
• Usaremos conversiones explícitas.
Por ejemplo, x = float(y);


Ejemplos de asignaciones en C++:



Bibliografía
• Joyanes, L. Fundamentos de Programación.
Algoritmos y Estructuras de Datos.
3ª Edición, McGraw-Hill, 2003.
• Joyanes, L. Programación en C++: Algoritmos,
Estructuras de Datos y Objetos.
McGraw Hill. 2000.
• Deitel, P., Deitel, H. C++ Cómo Programar.
Prentice Hall. 1999.
• Wirth, N. Algoritmos y Estructuras de Datos.
Prentice-Hall, 1987.

sábado, 23 de febrero de 2008

anexo ciclo de vida del software

· Anexo:
· Modelos de ciclo de Vida del Software:

El ciclo de vida del software son las fases por las que atraviesa un proyecto de desarrollo de software, el cual describe las fases principales de desarrollo de software, define las fases primarias de ser ejecutadas durante esas fases, ayuda a administrar el progreso del desarrollo y provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software.
Alternativas de Modelos de Ciclo de Vida:
-Modelo Cascada: es el más básico de los modelos. La visión: el desarrollo de software puede ser a través de una secuencia simple de fases las cuales tienen un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o a metas de sub-fases.
-Principios básicos:
· Planear un proyecto antes de embarcarse en él.
· Definir el comportamiento externo del sistema antes de diseñar su arquitectura interna.
· Documentar los resultados de cada actividad.
· Diseñar un sistema antes de codificarlo.
· Testear un sistema después de construirlo.
-Modelo De Desarrollo Incremental: el desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Se elabora un documento de requerimientos al capturar todos los requerimientos para el sistema completo.
-Beneficios del modelo:
· un sistema pequeño es menos riesgoso que construir un sistema grande.
· Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.
· Si un error importante es realizado, sólo la última iteración necesita ser descartada.
· Reduciendo el tiempo de desarrollo de un sistema decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
· Si un error importante es realizado, el incremento previo puede ser usado.
· Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
-Modelo De Desarrollo Evolutivo: este modelo construye una serie de grandes versiones sucesivas de un producto. El modelo evolutivo asume que los requerimientos (cuidadosamente examinados) no son completamente conocidos al inicio del proyecto, y sólo esos que son bien comprendidos son seleccionados para el primer incremento.
El sistema es desarrollado, usado por los usuarios, y proveen retroalimentación a los desarrolladores. Basada en la retroalimentación, la especificación de requerimientos es actualizada, y una segunda versión del producto es desarrollada y desplegada. El proceso se repite indefinidamente.
Este modelo requiere un especial cuidado en la manipulación de documentos, programas, datos de test, etc. desarrollados para distintas versiones del software.
-Modelo de Prototipado de Requerimientos.- : es la creación de una implementación parcial de un sistema, con el propósito de aprender sobre los requerimientos del sistema. Un prototipo es construido de manera rápida. Esto es dado a los usuarios, clientes o representantes de ellos, posibilitando que ellos experimenten con el prototipo. Luego ellos proveen la retroalimentación sobre lo que a ellos les gustó y no les gustó acerca del prototipo proporcionado, quienes capturan en la documentación actual de la especificación de requerimientos la información entregada por los usuarios para el desarrollo del sistema real.
un prototipo generalmente se construye con los requerimientos entendidos más pobremente.
-Modelo Espiral: es un modelo del ciclo de meta-vida y el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza.
-Pasos en cada desarrollo ejecutado:
 Determinar qué quieres lograr.
 Determinar las rutas alternativas que puedes tomar para lograr estas metas. Analizar riesgos y resultados finales, y seleccionar la mejor.
 Seguir la alternativa seleccionada en el paso 2.
 Establecer qué tienes terminado.
-Principios básicos:
· Decidir qué problema se quiere resolver antes de resolverlo.
· Examinar las alternativas de acción y elegir la más conveniente.
· Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer algo.
· No ser tan ingenuo para pensar que el sistema que estás construyendo será "EL" sistema que el cliente necesita.
· Conocer los niveles de riesgo.
-Modelo Concurrente: este modelo provee una meta-descripción del proceso software. la contribución de este modelo es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente
Por ejemplo, estar haciendo mantención de la etapa 1 de un producto, y al mismo tiempo estar haciendo mantención sobre un componente 2, mientras que se está haciendo codificación sobre un componente 3, mientras se realiza diseño sobre una etapa 4, y especificación de requisitos sobre un componente 5.

lunes, 18 de febrero de 2008

CICLOS DE VIDA DEL SOFTWARE

UNIVERSIDAD SURCOLOMBIANA
MATERIA: INTRODUCCION A LA PROGRAMACION
PROFESOR: JORGE MARIN
ESTUDIANTE: JULIAN CARVAJAL
CODIGO: 2007167569

CICLO DE VIDA DEL SOFTWARE:

Compuesto por etapas que comprenden todas las actividades, desde que surge la idea de crear un producto software, hasta aquel en que el producto deja de ser utilizado por sus usuarios.

Etapas en el ciclo:
Expresión de necesidades: Consecución de un documento en que queden reflejados los requerimientos y funcionalidades que ofrecerá al usuario del sistema a desarrollar. El documento resultante suele tener como origen una serie de entrevistas cliente-proveedor en un contexto de relación comercial
Especificaciones: Formalización de los requerimientos; se tomará como punto de partida el documento anterior. Se obtendrá un nuevo documento que definirá con más precisión el sistema requerido por el cliente. Serán necesarias sucesivas versiones del documento en que irán quedando las necesidades del cliente.
Análisis: Se enfocará el sistema desde lo
· Funcional.
· Estático.
· Dinámico.
para determinar que elementos intervienen en el sistema a desarrollar, así como su estructura, relaciones, evolución en el tiempo, detalle de sus funcionalidades, ... que nos van a decir qué sistema vamos a construir, qué funcionalidades va a aportar y qué comportamiento va a tener.
Diseño: ya teniendo claro que debe hacer el sistema, ahora tenemos que determinar como va a hacerlo. se definirán entidades y relaciones de las bases de datos, el lenguaje, el Sistema Gestor de Bases de Datos, librerías, configuraciones hardware, redes, etc.
Implementación: Se empieza a codificar algoritmos y estructuras de datos, definidos en las etapas anteriores, en el correspondiente lenguaje de programación y/o para un determinado sistema gestor de bases de datos.
Pruebas: Su objetivo es garantizar el desarrollo correcto del sistema; sin errores de diseño y/o programación. Es conveniente que sean planteadas a nivel de cada módulo (aislado del resto), como de integración del sistema
Validación: Su objetivo es verificar que el sistema haya sido desarrollado con los requisitos expresados inicialmente por el cliente
Mantenimiento y evolución: La aplicación resultante se encuentra en producción (funcionando para el cliente, cumpliendo con los objetivos para los que fue creada). se entra en la etapa de mantenimiento ( supondrá operaciones de corrección como de mejora de la aplicación, así como otras de mayor importancia como nuevas opciones para el usuario debidas a nuevas operaciones contempladas para el producto.