viernes, 30 de enero de 2009

resumen unidad 2

un metodo general para la resolucion de un problema con computadorass tiene las siguientes fases:
  1. analisis del programa
  2. diseño del algoritmo
  3. cadificacion
  4. compilacion y ejecucion
  5. verificacion
  6. documentacion y mantenimiento

el sistema mas idoneo para resolver un problema es descomponerlo en modulos mas sencillos y luego, mediante diseños descendentes y refinamiento sucesivo.

llegar a modulos facilmente codificables. Estos modulos se deben codificar con las estructuras de control de porgramacion estructurada.

  1. secuenciales: las instrucciones se ejecutan secesivamente una despues de otra.
  2. repetitivas: una serie de instrucciones se repiten una y otra vez hasta que se cumple una cierta condicion.
  3. selectivas: permite elegir dos alternativas (dos conjuntos de instrucciones) dependiendo de una condicion determinada.

resumen unidad 1

Una computadora es una maquina para procesar información y obtener en función de unos datos de entrada.

Hardware: parte física de una maquina (dispositivos electrónicos)
Software: parte lógica de una computadora (programas)

Las computadoras se componen de:

Dispositivos de entrada/salida (E/S)
Unidad central de proceso (unidad de control y unidad lógica y aritmética)
Memoria central
Dispositivo de almacenamiento masivo de información (memoria auxiliar o externa)

El software de sistema comprende, entre otros, el sistema operativo Windows Linux, en computadoras personales y lenguajes de programación. Los lenguajes de programación de alto nivel están diseñados para hacer más fáciles la escritura de programas que los lenguajes de bajo nivel. Existen numerosos lenguajes de programación cada uno e los cuales tiene sus propias características y funcionamientos y normalmente son mas fáciles de trasportar a maquinas diferentes que los escritos en lenguajes de bajo nivel.

Los programas escritos en lenguajes de alto nivel deben ser traducidos por un compilados antes de que se pueda ejecutar en una maquina especifica. En la mayoría de los lenguajes de programación se requiere un compilador para cada maquina en la que se desea ejecutar a programas escritos en un lenguaje especifico.

Los lenguajes de programación se clasifican en:

Alto nivel: pascal, fortran, visual Basic, c, ada, modula-2, c++, java, delphi, c, etc.
Bajo nivel: ensamblador
Maquina: código maquina.
Diseño de web: smgl, html, xml, php…

Los programas traductores de lenguaje son:

Compiladores
Interpretes


C es un lenguaje de programación que contiene excelentes características como lenguaje para aprendizaje de programación y lenguaje profesional de propósito general; básicamente es un entorno de programación con editor y compilador incorporado.

jueves, 29 de enero de 2009

ejercicio 2.2

Escribir un algoritmo para:

Sumar dos números enteros

inicio
leer n
calcular n1 + n2
imprime n
fin


Restar dos números enteros

inicio
leer n
calcular n1 – n2
imprime n
fin

Multiplicar dos números enteros

inicio
leer n
calcular n1 * n2
imprime n
fin

Dividir dos números enteros

inicio
leer n
calcular n1 / n2
imprime n
fin

ejericicio 2.10

Diseñar una solución para resolver cada uno de los siguientes problemas y tratar de refinar sus soluciones mediante algoritmos adecuados.

A) realizar una llamada telefónica desde un teléfono público.

inicio
ver donde esta el teléfono
ir hacia le teléfono
tomar el teléfono
insertarle monedas
macar el numero deseado
hablar por teléfono
terminar de hablar
colgar el teléfono
Fin

B) Cocinar una tortilla

inicio
tomar los cerillos
prender le cerrillo
prender la estufa
poner el comal
calentar una tortilla
darle vuelta
sacar la tortilla
Fin

C) arreglar un pinchazo de una bicicleta

inicio
tomar la llave
voltear la bicicleta
quitar las tuercas
quitar llanta
parcharla
poner llanta
poner tornillos
voltear bicicleta
Fin

D) freír un huevo

inicio
prender la estufa y poner le sartén
agarra el huevo y quebrarlo dentro del sartén
revolver
sacarlo
Fin

algoritmo

realizar un algoritmo para calcular el area de un circulo.


inicio

leer r
2
calcular A=πr

imprimir "el area es" a

fin



miércoles, 28 de enero de 2009

La Programación Estructurada

significa escribir un programa de acuerdo a las siguientes reglas:
El programa tiene un diseño modular.
Los módulos son diseñados de modo descendente.
Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición.
Si está familiarizado con los lenguajes como BASIC y FORTRAN, la programación estructurada significa también programación sin GOTO.La programación estructurada reduce la complejidad de los programas, los errores; hace los programas más fáciles de escribir, leer, verificar y mantener.

programacion modular

Es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analiza, codifican y ponen a punto por separado.Cada programa contiene un módulo denominado programa principal que controla todo lo que sucede; se transfiere el control a submódulos, de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada submodulo es demasiado compleja, éste deberá romperse en otros módulos más pequeños. El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tarea específica que ejecutar. Esta tarea puede ser entrada, salida, manipulación de datos, control de otros módulos o alguna combinación de éstos. Un módulo puede transferir temporalmente (bifurcar) el control a otro módulo; sin embargo, cada modulo debe eventualmente devolver el control al módulo del cual se recibe originalmente el control.














Dado que los módulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa, de ésta manera se reduce gran tiempo de diseño del algoritmo y la codificación, además una modificación radical dentro de un módulo no afectará a los demás.

lunes, 26 de enero de 2009

codificacion de un programa

codificacion: es la escritura en un lenguaje de porgramacion de la representacion del algoritmo desarrollado en las etapas precedentes.

para realizar la conversion del algoritmo en porgramas se deben sustituir las palabras reservadas en español por su homonimo en ingles, y las operaciones/instrucciones indicadas en lenguajes naturales expresarlas en el lenguaje de porgramacion correspondiente.

documentacion interna

la documnetacion de un porgrama se clasifica en interna y externa.
la documentacion interna: es la que se incluye dentro del codigo del porgrama funte mediante comentarios que ayuden a la comprension del codigo. todas las lineas de porgramas que comiencen con un simbolo / * son comentarios.
debido a que las maquinas actuales soportan grandes memorias (512 mb o 1.024 mb de memoria central minima en computadoras personales).

compilacion y ejecucion de un programa

es presico introducir en memeria demdiante el teclado y almacenado posteriormente es un disco. esta operacion se realiza con un porgrama editor. porteriormente el porgrama fuente se convierte en un archivo de porgrama que se guarda (graba) en disco.
el porgrama fuente debe ser traducido a lenguaje maquina, este porceso se realiza con el compilador y el sistema operativo que se encarga practicamente de la compilacion.
si tras la compilacion se presenta errores (errores de compilacion) en el porgrama fuente, es preciso volver a editar el porgrama, corregir los errores y compilar de nuevo, este porceso se repite hasta que no se porducen errores, onteniendo el porgrama objeto que todavia no es ejecutable directamente. el porceso de montaje porduce un porgrama ejecutable.
cuando el programa ejecutable se ha creado, se puede ejecutar desde el sistema operativo con solo teclear su nombre.

verificacion y depuracion de un programa

es el porceso de ejecucion del porgrama con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinan si el porgrama tiene errores.
la depuracion es el porceso de encontrar los errores del programa y corregir o eliminar dichos errores cuando se ejecuta un porgrama, se deducen tres:

errores de copilacion: se producen normalmente por un uso incorrescto de la regla del lenaguje de porgramacion y sule ser errores de sintaxis.

errores de ejecucion: estos errores de porducen por instrucciones que la computadora puede comprender pero no ejecutar.

errores logicos: se porduce en la logica del porgrama y la fuente del error suele ser el diseño del algoritmo.

viernes, 23 de enero de 2009

Diseño del Algoritmo

En la etapa de proceso de programación se determina que hace el programa. En la etapa de diseño se determina como hace el programa la tarea solicitada. Los métodos mas eficaces para el proceso de diseño se basa en el conocido divide y vencerás (un problema complejo se soluciona dividiendo en problemas o subproblemas y a la ves estos subproblemas en nivel mas bajo hasta que pueda ser implementada una solución).
Este método se conoce como diseño descendente (topo-down) o modular.


Herramientas de programación

Diagrama de flujo; representación grafica de un algoritmo.
Los símbolos son:

Terminal: marcar el inicio y fin del diagrama.
Entrada: introduce datos al proceso o solución (programa)
Decisión: cambiar el flujo del algoritmo de acuerdo a una evaluación lógica.
Proceso: involucra cualquier proceso calculo o computo, por ejemplo “calcular a=b*h”.
Salida: envía la información al dispositivo de salida estándar, normalmente el monitor.

Tarea:
Realizar un algoritmo que calcule el área de un rectángulo dada la base y la altura de acuerdo a la formula A=B*H
Algoritmo
Inicio
Declare opcion, base, altura,
areaLeer opcion
Seleccionar opcion
Declare área, altura, base
Caso 1
Leer base, altura area:base*altura)/2
Imprimir area
fin seleecion
fin.

miércoles, 21 de enero de 2009

Un diagrama Nassi-Shneiderman es una representación gráfica de un algoritmo para programación estructurada. Desarrollados en 1972 por Isaac Nassi y Ben Shneiderman, estos diagramas también son conocidos como estructogramas debido a que muestran las estructuras de un programa.Siguiendo un diseño de arriba a abajo, el problema en cuestión es reducido en subproblemas cada vez menores, hasta que sólo comandos y estructuras de control permanecen. Los diagramas Nassi-Shneiderman reflejan esta descomposición de una forma clara y simple, usando cajas anidadas para representar subproblemas.

Comandos
Es sólo eso, un comando. Hay tres tipos de ellos, todos representados por un rectángulo con una expresión en su interior:




Comando normal: Cuando usted asigna un valor a una variable, como c = a + b ó voto = "Juánita Pérez". Por favor, note que el signo igual (=) es usado para asignación, si usted desea comparar algo, úselo dos veces, == .Usted podría también no asignar un valor a una variable y sólo describir una acción, como "agregue azúcar al té".




Comando leer: Úselo cuando necesite que el usuario ingrese algo como un número o un texto. Estos comandos asignan el valor que el usuario ingresa a una variable. Por ejemplo, Leer x (Read x en inglés), luego de su ejecución la variable x contendrá el valor entregado por el usuario.
Comando escribir: Simplemente muestra el valor de una variable en pantalla al usuario.




Iteraciones

A veces se necesita repetir ciertas acciones, para esto existen las iteraciones o loops y existen dos tipos distintos de ellas:

Mientras hacer: Hace y repite ciertas operaciones mientras una condición es verdadera, si en algún momento es falsa, avanzará a la próxima operación. Siempre revisa la condición antes de ejecutar las operaciones en su interior. Un ejemplo no muy ambientalista puede ser: Mientras hayan árboles en el bosque, cortar uno, llevarlo al aserradero. Esto sería representado de la siguiente forma:


Como puede apreciar esta iteración contiene solo dos comandos normales, puede sin embargo, contener cualquier operación sin limitaciones de combinación o cantidad.

Hacer Mientras: Es similar a mientras hacer, pero la condición es revisada después que las operaciones interiores son realizadas. De esta forma iterará mientras la condición sea verdadera. Imagine por un momento que usted vuela a una isla tropical, usted ya se encuentra a bordo del avión y empieza a buscar su asiento, esta situación se puede representar con el siguiente algoritmo:










Primero usted lee el número de su asiento en su ticket, después se mueve y lee el número del asiento que tiene en frente, luego repite esta acciones mientras no encuentre el asiento que le corresponde.

Decisiones

Si existen dos (o más) formas de hacer algo, o hablando de forma más general, usted necesita estar seguro que una cierta condición se cumple para tomar diferentes acciones de acuerdo a esto, usted puede usar una decisión. De la misma manera que las iteraciones, usted puede agregar operaciones de cualquier tipo en su interior, pero una decisión tiene dos lados, un lado verdadero que será ejecutado sólo si la condición se cumple, y otro lado falso.






Ejemplo

El algoritmo de Euclides es uno de los más antiguos conocidos, dado que apareció en los Elementos de Euclides alrededor de el año 300 A.C. Euclides formuló originalmente el problema geométricamente, como el problema de encontrar una "medida" común para el largo de dos líneas, por lo que este algoritmo procede repitiendo la resta de la línea más corta al otro segmento (lo que es equivalente a encontrar el máximo común divisor de dos enteros). Sin embargo, el algoritmo probablemente no fue descubierto por Euclides y puede que haya sido conocido incluso 200 años antes. Ya era conocido seguramente por Eudoxus de Cnidus (alrededor del 375 A.C.) y Aristóteles (alrededor del 330 A.C.) donde aparece implícito en sus Tópicos, 158b, 29-35.

Descripción

El algoritmo original fue descritopor Euclides como un problema geométrico, por lo que se repetía la resta del número menor al mayor en vez de una división de enteros.

Leer los dos enteros llamados a y b.
Mientras a y b sean diferentes, hacer:
Si a es mayor que b, hacer:
Asignar a a, a menos b
Si no, hacer:
Asignar a b, b menos a
Escribir a

El valor escrito al final de contendrá el máximo común divisor de los dos enteros originales. Este algoritmo puede ser representado por el siguiente diagrama:

definicion y analisis

Pasos para la resolución de un problema:

Diseño algorítmico
Transformación del algoritmo-programa
Ejecución validación

Conceptos claves:
Algoritmo; es un método para resolver un problema. Características son preciso, definido y finito. Un algoritmo debe producir un resultado en un tiempo finito. Los métodos que utilizan algoritmos se denominan métodos algorítmicos, en oposición a los métodos que implican juicio o interpretación que se denominan métodos Heurísticos (a la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines. Una heurística es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque en ocasiones no hay pruebas de que la solución no pueda ser arbitrariamente errónea; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que deba ser así).
Ciclo de vida
Diseño descendente
Diagrama nassi
Diagrama de flujo
Diseño
Dominio del programa
Factores de calidad
Invariación
Métodos formales
Precondiciones.

2.12 fases en la resolución de problemas.

Las fases de resolución de un problema con computadora son:

Análisis del problema
Diseño del algoritmo
Codificación
Compilación y ejecución
Verificación
Depuración

lunes, 19 de enero de 2009

conseptos basicos de lenguaje C

Concepto de lenguaje de programación:
Se utilizan para escribir programas. Los programas de las computadoras modernas constan de secuencias de instrumentación que se codifican como secuencias de dígitos numéricos que podrán entender dichas computadoras.

Clasificación de los lenguajes de programación:
Lenguaje maquina: en la década de los 40 cuando nacía las primeras computadoras digitales el lenguaje que se utilizaba para programar era el de lenguaje maquina que traducía directamente el código maquina, comprensible por las computadoras.
Lenguaje bajo nivel (ensambladoras): en la década de los 50 y 60 comenzaron a desarrollarse lenguajes de programación de tercera generación que diferían de las generación anteriores en que sus instrucciones o primitivas eran de alto nivel (comprensiblemente por el programador como si fuera lenguaje natural) e independientemente de la maquina.
Lenguaje de alto nivel: los lenguajes de alto nivel se componen de un conjunto de instrucciones o primitivas mas fáciles de escribir y recordar su función que los lenguajes maquina y ensamblado.

Paradigmas de programación:
Representan fundamentalmente enfoques diferentes para la construcción de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software. Se clasifican en, procediementales (imperativos) declarativo y orientado a objetos.
Imperativo o procedimental: representa el enfoque o método tradicional de programación.
Declarativo: solicita al programador que describa el problema en lugar de encontrar una solución algorítmica al problema.
Orientada a objetos: consiste en un enfoque totalmente distinto al proceso procediemental, guarda analogía con la vida real.

Historia del lenguaje C.
Es un lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX.
C es una evolución de los lenguajes BCPL y B. nació realmente en 1978 fue creciendo en popularidad y los sucesivos cambios en el lenguaje, alo largo de los años, junto a la creación de compiladores por grupos no involucrados en su diseño, hicieron necesario pensar en la estandarización de la definición del lenguaje C.
Es un lenguaje de alto nivel que permite programar con instrucciones de lenguaje de propósito general, también define como un lenguaje de programación estructurado de propósito general, aunque en su diseño primo es hecho de que fuera especificado como un lenguaje de programación de sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.

Los Herederos (C++, Java, C#)
C++: es heredero directo del lenguaje C que a su vez se deriva del lenguaje B, se mantiene como un subconjunto de C. comenzó su proyecto de estandarización ante el comité y su primera referencia es C++.
Java: es poner una capa sobre cualquier plataforma de hardware y sobre cualquier sistema operativo que permite a cualquier aplicación desarrollada en java quedar ligada únicamente a java.

C#: incluye delegados, propiedades, indexadotes y eventos como elementos del lenguaje también añade sintaxis que soporta atributos, racionaliza la creación de componentes, eliminando los problemas asociados con Com.

viernes, 16 de enero de 2009

ahi les muestro una foto chida


pues espero que les guste esta imagne jajajaja.
ahi dejan sus comentarios.
jajajajajajaja

bienvenida

viernes 16 de enero del 2009.


En este dia empezamo a crear una cuenta de blogspot. Para esto estamos usando el internet y pues aki las makinas de este cubiculo pues algunas no tienen internet y pues algunos compañeros se tuvieron k cambiar de servidor.