Hola!!!!!!!!!
mi nombre es Judith Alejandra Reyes Hernandez
estudio en el cbta n° 88 y estoy en la carrera de informatica
de cuarto semestre grupo "c" y espero que les guste lo que publique en miblog.
jueves, 24 de febrero de 2011
metodologia para la solucion de problemas
La solución de un problema por computadora, requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboración. Los siete pasos de la metodología son los siguientes:
1. Definición del problema
2. Análisis de la solución
3. Diseño de la solución
4. Codificación
5. Prueba y Depuración
6. Documentación
7. Mantenimiento.
algoritmo
Un algoritmo es un método para resolver un problema, debe presentarse como una secuencia ordenada de instrucciones que siempre se ejecutan en un tiempo finito y con una cantidad de esfuerzo también finito. En un algoritmo siempre debe haber un punto de inicio y un punto de terminación, estos deben ser únicos y deben ser fácilmente identificables.
CARACTERÍSTICAS DE UN ALGORITMO
Todo algoritmo debe cumplir las siguientes características:
- Debe ser Preciso; Esto es, debe especificar sin ambigüedad el orden en que se deben ejecutar las instrucciones.
- Debe estar Definido; Esto es, cada vez que se ejecute bajo las mismas condiciones, la secuencia de ejecución deberá ser la misma proporcionándonos el mismo resultado.
- Debe ser Finito; Esto es, siempre que sea adecuado se realizarán un número finito de instrucciones, en un tiempo finito y requiriendo una cantidad finita de esfuerzo.
EJEMPLO:
Como preparar Hot Cackes
ingredientes:
1.- huevo
2.-leche
3.-mantequilla
4.-mermelada
Procedimiento:
1.- se pone harina en un tazon
2.-Se le añade un huevo
3.- se le agrega leche
4.- se pone a derretir una cucharada de mantequilla
5.-ya derretida la mantequilla se le agrega al tazon con la harina, la leche y el huevo.
6.-se bate gasta obtener una mezcla espesa
7.-se pone mantequilla en un sarten de teflon
8.-se agrega un poco de mezcla
9.-se espera hasta la superficie este llena de grumos
10.- se da vuelta y se espera a que se cuesa el otro lado
11.-se pone en un plat, se le pne un poco de mermelada y se disfruta con un poco de leche.
diagrama de fujo
Un diagrama de flujo es una representación gráfica de un 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 término
Características
Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término. Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el 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.
variables y constantes
Constantes
Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.
Ejemplo:
pi = 3.1416
Variable
Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa.
Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.
Ejemplo:
area = pi * radio ^ 2
Las variables son : el radio, el area y la constate es pi
Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.
Ejemplo:
pi = 3.1416
Variable
Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa.
Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.
Ejemplo:
area = pi * radio ^ 2
Las variables son : el radio, el area y la constate es pi
Tipos de diseño
Diseño ascendente (bottom - up)
El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo, su análisis como sistemas y su codificación; o bien, la adquisición de paquetes de software para satisfacer el problema inmediato. Los problemas que requieren de la computarízación, con mayor frecuencia se encuentran en los niveles inferiores de la. organización. Es por ello, que los problemas en tales niveles inferiores en principio son los únicos problemas en los cuales el cómputo podría ser costeable. En consecuencia, este enfoque se denomina ascendente, refiriéndose a que la computarización se implanta desde un nivel mas bajo. Con frecuencia, las empresas se apegan a este enfoque del desarrollo de sistemas para iniciarse adquiriendo, por ejemplo, paquetes de software de contabilidad, otro para la programación de producción y algún otro para mercadotecnia.
Cuando la programación se realiza internamente y haciendo uso de un enfoque ascendente, es difícíl Ilegar a Integrarlos subsistemas, a grado tal de que el desempeño global sea fluido. Los problemas de interacción entre los sistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha limite para la integración total del sistema. En esta fecha, ya se cuenta con poco tiempo, presupuesto o paciencia de los usurarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoraron.
Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es:
Diseño descendente (Top - down)
Es fácil visualizar a que se refiere el enfoque de arriba hacia abajo, ya que se refiere a ver una gran imagen del sistema y luego de explotarla en partes o subsistemas pequeños, tal como, se muestra en la siguiente figura. El diseño descendente permite que el analista de sistemas logre primero los objetivos organizacionales generales. Luego, el analista se mueve para dividir el sistema en subsistemas y sus requerimientos.
El diseño descendente es compatible con la manera de pensar sobre los sistemas en general. Cuando el analista de sistemas emplea un enfoque descendente , esta pensando acerca de las interdependencias de los subsistemas, tal como cae en la organización existente.
El enfoque descendente da la importancia debida a la sinergia o las interfaces requeridas por el sistema y los subsistemas; los cuales no existen en el enfoque ascendente.
Dentro de las ventajas de la utilización de un enfoque descendente en el diseño de sistemas, se encuentra:
El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo, su análisis como sistemas y su codificación; o bien, la adquisición de paquetes de software para satisfacer el problema inmediato. Los problemas que requieren de la computarízación, con mayor frecuencia se encuentran en los niveles inferiores de la. organización. Es por ello, que los problemas en tales niveles inferiores en principio son los únicos problemas en los cuales el cómputo podría ser costeable. En consecuencia, este enfoque se denomina ascendente, refiriéndose a que la computarización se implanta desde un nivel mas bajo. Con frecuencia, las empresas se apegan a este enfoque del desarrollo de sistemas para iniciarse adquiriendo, por ejemplo, paquetes de software de contabilidad, otro para la programación de producción y algún otro para mercadotecnia.
Cuando la programación se realiza internamente y haciendo uso de un enfoque ascendente, es difícíl Ilegar a Integrarlos subsistemas, a grado tal de que el desempeño global sea fluido. Los problemas de interacción entre los sistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha limite para la integración total del sistema. En esta fecha, ya se cuenta con poco tiempo, presupuesto o paciencia de los usurarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoraron.
Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es:
- Duplicación de esfuerzos para accesar al software y más aun para introducir datos
- Introducir muchos datos carentes de valor.
- Los objetivos globales de la organización no fueron considerados y en consecuencia, no se satisface.
Diseño descendente (Top - down)
Es fácil visualizar a que se refiere el enfoque de arriba hacia abajo, ya que se refiere a ver una gran imagen del sistema y luego de explotarla en partes o subsistemas pequeños, tal como, se muestra en la siguiente figura. El diseño descendente permite que el analista de sistemas logre primero los objetivos organizacionales generales. Luego, el analista se mueve para dividir el sistema en subsistemas y sus requerimientos.
El diseño descendente es compatible con la manera de pensar sobre los sistemas en general. Cuando el analista de sistemas emplea un enfoque descendente , esta pensando acerca de las interdependencias de los subsistemas, tal como cae en la organización existente.
El enfoque descendente da la importancia debida a la sinergia o las interfaces requeridas por el sistema y los subsistemas; los cuales no existen en el enfoque ascendente.
Dentro de las ventajas de la utilización de un enfoque descendente en el diseño de sistemas, se encuentra:
- E evitar el caos originado al tratar de diseñar el sistema "en un solo paso". Como hemos visto, la planeación y la implementación de sistemas de información es increíblemente compleja. El tratar de integrar a todos los subsistemas y que todos ellos funcionen al unísono, es buscar el fracaso.
- La segunda ventaja de hacer uso del enfoque descendente en el diseño, es la posibilidad de contar con grupos de analistas de sistemas trabajando por separado pero simultáneamente en subsistemas independientes, pero necesarios. Esto puede ahorrar una gran cantidad de tiempo. El trabajo de grupos integrados par el diseño subsistemas es particularmente conveniente para la búsqueda del aseguramiento de la calidad total.
- La tercera ventaja estriba en evitar el gran problema asociado con un enfoque ascendente. Esto es, la utilización de un enfoque descendente, previene que el analista de sistemas se adentre en los detalles y dé la pauta para que se pierdan los objetivos centrales del sistema.
- El primero es que ende el riesgo de que el sistema se divida en subsistemas "incorrectos". Se debe prestar atención a la necesidad dé la superposición y la distribución de los recursos, de tal forma que una participación de subsistemas tenga sentido en el esquema global del sistema Además, es importante que cada subsistema se integre dé manera correcta al sistema.
- El segundo inconveniente es que una vez que», realizan las divisiones en subsistemas, sus interfaces pueden descuidarse o simplemente ignorarse. La responsabilidad para lograr la adecuada interrelación debe .quedar bien detallada.
- Una tercera precaución que debe acompañar al uso del diseño descendente, es que los subsistemas deberán reintegrarle eventualmente. Los mecanismos para la reintegración deben plantearte desde un principio. Una sugerencia es intercambiar de manera regular, la información entre los equipos de subsistemas, otra es la utilización de instrumentos que permitan cierta flexibilidad, si se requirieran cambios de los sistemas relacionados.
Pseudocodigo
Entrada- algoritmo a la PC.
Nace del lenguaje similar al ingles y se asemeja a los lenguajes de programacion en los que se crea el software para la computadora, pero sin el rigor y exactitud que estos tienen a nivel sintetico.
inicio
variables
b,h,a
constantes
x=2
inicio programa
escribir ´dame el valor de b´
leer h
A= (b*h) /x
escribir A
fin.
Nace del lenguaje similar al ingles y se asemeja a los lenguajes de programacion en los que se crea el software para la computadora, pero sin el rigor y exactitud que estos tienen a nivel sintetico.
inicio
variables
b,h,a
constantes
x=2
inicio programa
escribir ´dame el valor de b´
leer h
A= (b*h) /x
escribir A
fin.
tipos de datos
Se define como la expresion general que describe los objetos con los cuales apera una computadora.
Se clasifica en:
Numericos
Cadenas y
Logicos.
Numericos:
Representan una cantidad o valor determinado. enteros (integer) Es un conjunto finito de los numeros enteros y pueden ser positivos y negativos sin punto decimal.
Reales: (real)
Es un subconjunto de los numeros reales, siempre tienen punto decimal y pueden ser positivos o negativos.
Cadenas:
Son lps datos que representan informacion textual: palabras, frases, simbolos, etc. No representan ningun valor numerico; se delimitan por apostrofes o comillas y se clasifican en 2 que son cadenas ) string) y caracteres (char).
Tipos de datos logicos:
Se les denomina tambien booleanos y es aquel dato que solo puede tomar uno de dos valores true/false o si /no.
Entrada de datos
Declaracion
Datos variables
Cambian en el transcurso o ejecucion del programa
Datos constantes
su valos NO CAMBIA durante la ejecucion del programa.
A=b(h)/2 var. b,h,a const. x:=2.
Identificador: Es aquel que sirve o tiene la funcion de identificar de forma unica a una variable o constante.
Reglas:
1.- Debe iniciar con una letra.
2.- No debe usar espacios en blanco; si lo requieren pueden usar un guion bajo(_) eje: numero_1:integer.
Variables locales y globales:
Variable local: Permite ser utilizado durante la ejecucion de todo el programa.
Variable local: Solo se puede usar en un fragmento del programa (procedimiento, bloqueo o subprograma) v es declarado dentro del mismo.
NOTA: En un programa pueden existir variables locales y globales.
Se clasifica en:
Numericos
Cadenas y
Logicos.
Numericos:
Representan una cantidad o valor determinado. enteros (integer) Es un conjunto finito de los numeros enteros y pueden ser positivos y negativos sin punto decimal.
Reales: (real)
Es un subconjunto de los numeros reales, siempre tienen punto decimal y pueden ser positivos o negativos.
Cadenas:
Son lps datos que representan informacion textual: palabras, frases, simbolos, etc. No representan ningun valor numerico; se delimitan por apostrofes o comillas y se clasifican en 2 que son cadenas ) string) y caracteres (char).
Tipos de datos logicos:
Se les denomina tambien booleanos y es aquel dato que solo puede tomar uno de dos valores true/false o si /no.
Entrada de datos
Declaracion
Datos variables
Cambian en el transcurso o ejecucion del programa
Datos constantes
su valos NO CAMBIA durante la ejecucion del programa.
A=b(h)/2 var. b,h,a const. x:=2.
Identificador: Es aquel que sirve o tiene la funcion de identificar de forma unica a una variable o constante.
Reglas:
1.- Debe iniciar con una letra.
2.- No debe usar espacios en blanco; si lo requieren pueden usar un guion bajo(_) eje: numero_1:integer.
Variables locales y globales:
Variable local: Permite ser utilizado durante la ejecucion de todo el programa.
Variable local: Solo se puede usar en un fragmento del programa (procedimiento, bloqueo o subprograma) v es declarado dentro del mismo.
NOTA: En un programa pueden existir variables locales y globales.
historia de la programacion
Los primeros lenguajes
Shortcode
En 1949,aparece el primer lenguaje que se usó en computadoras electrónicas: “Shortcode”, requería que el programador convirtiera (compilara) su programa a 0's y 1's de manera manual.A-0
Fue hasta el año de 1951, que Grace Hopper[3] trabajando para Remington Rand, comienza a desarrollar el primer compilador, lo que trajo consigo una programación más rápida.Fortran
Es en el año de 1957 cuando aparece el primero de los grandes lenguajes de programación de uso aún actualmente: FORTRAN, que proviene de FORmula TRANslating system.Fue desarrollado por IBM para cómputo científico, el líder del proyecto fue John Backus, que después contribuiría en ALGOL.
El lenguaje original solo incluía FOR, DO y GOTO. También definió los tipos de datos básicos: TRUE, FALSE, integer, real, double presicion.
El lenguaje original era bueno manejando números, pero malo manejando entrada y salida, lo cual propicio la aparición de otros lenguajes orientados a negocios.
LISP
En el año de 1958, el profesor John McCarthy[4] del M.I.T. comenzó a desarrollar la teoría de un lenguaje de de procesamiento de listas. En 1959 aparece publicamente la primer implementación llamada LISP 1.5.En 1960 McCarthy publica un histórico articulo[5] acerca de los fundamentos de LISP que hizo por la programación lo mismo que hizo Euclídes por la geometría, demostrar como con unos cuantos operadores y una notación para funciones es posible construir un lenguaje de programación completo[6].
Es importante hacer notar que McCarthy no solo marco un hito en la historia los lenguajes de programación sino que creo un modelo de programación que ha demostrado ser superior, tanto que podemos decir que en la actualidad existen dos grandes modelos de programación el de C y el de Lisp, y podemos notar que los lenguajes del modelo C tratan de parecerse cada vez mas a Lisp.
ALGOL
En el año de 1958 un comite crea la especificación del lenguaje ALGOL, la tenia la particularidad de no definir la manera de manejar entrada y salida, dejando esta parte libre a cada implementación.Es en 1960 cuando aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques. Este lenguaje fue muy popular en el segundo lustro de los 60's.
Su principal contribución es ser la raiz del arbol que ha producido lenguajes tales como pascal, C, C++, y Java.
COBOL
En 1959, Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios; que fuera facil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos de datos fueron cadenas y números. Lo que le dio la característica de poder agruparlos en arreglos sencillos, de modo que los datos podian ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecen mucho a las usadas por el idioma inglés, haciendo que fuera fácil de aprender. Todo esto con la finalidad de que los negocios promedio lo pudieran aprender y usar.Judith Alejandra Reyes Hernandez
Hola!!!
Les doy una cordial bienvenida a mi blog espero sea de su agrado...
Les doy una cordial bienvenida a mi blog espero sea de su agrado...
Suscribirse a:
Entradas (Atom)