lunes, 30 de mayo de 2011

"BIENVENIDA"

"BIENVENIDA"

Hola soy Mariela Delgadillo y estudio en el Centro de Bachillerato Tcnologico Agropecuario #88
Estoy en cuarto semestre de informatica grupo "C"  y este es my blog.

DEFINICION DE UN PROBLEMA

Un problema es una cuestión o punto discutible que requiere de una solución, por ejemplo, se me rompe el caño del baño, ese será el problema y llamar a un experto en esas cuestiones como un plomero es la solución que requiere el mismo para dejar de ser problema.
Ahora bien, esta es la definición más general que se puede dar acerca del concepto, en tanto y dependiendo de la materia de estudio, existen distintos tipos de problemas.

METODOLOGIA PARA LA SOLUCION DE UN PROBLEMA

METODOLOGIA PARA LA SOLUCION DE UN PROBLEMA

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
1.2.1 Definición del problema
Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y delimitar por completo el problema, saber que es lo se desea realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso.
.2.2 Análisis de la solución
Consiste en establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la solución del mismo, algunas preguntas son:
¿Con qué cuento?
Cuáles son los datos con los que se va a iniciar el proceso, qué tenemos que proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar solución al problema.
¿Qué hago con esos datos?
Una vez que tenemos todos los datos que necesitamos, debemos determinar que hacer con ellos, es decir que fórmula, cálculos, que proceso o transformación deben seguir los datos para convertirse en resultados.
¿Qué se espera obtener?
Que información deseamos obtener con el proceso de datos y de que forma presentarla; en caso de la información obtenida no sea la deseada replantear nuevamente un análisis en los puntos anteriores.
Es recomendable que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

ALGORITMO

ALGORITMO
Es la susecion o metodo paso a paso en cual explica detalladamente cada paso y ala vez breve para llegar a una solucion  o bien se podria decir que es una serie de instrucciones finitas.

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.




VARIABLES Y CONSTANTES

Una variable es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un programa.
Toda variable pertenece a un tipo de dato concreto. En la declaración de una variable se debe indicar el tipo al que pertenece. Así tendremos variables enteras, reales, booleanas, etc.

Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el programa.
Como ya se ha comentado en el tema sobre las partes de un programa, las constantes se declaran en una sección que comienza con la palabra reservada const. Después de declarar una constante ya puedes usarla en el cuerpo principal del programa. Tienen varios usos: ser miembro en una expresion, en una comparación, asignar su valor a una variable, etc.

DIAGRAMA DE FLUJO Y EJEMPLO

DIAGRAMA DE FLUJO
Los diagramas de flujo (o flujogramas) son diagramas que emplean símbolos gráficos para
representar los pasos o etapas de un proceso. También permiten describir la secuencia de los
distintos pasos o etapas y su interacción.
Las personas que no están directamente involucradas en los procesos de realización del producto
o servicio, tienen imágenes idealizadas de los mismos, que pocas veces coinciden con la realidad. 
La creación del diagrama de flujo es una actividad que agrega valor, pues el proceso que
representa está ahora disponible para ser analizado, no sólo por quienes lo llevan a cabo, sino
también por todas las partes interesadas que aportarán nuevas ideas para cambiarlo y mejorarlo.

Ejemplo : Reparación de la PC
MACRO
Cuando se desarrolla el diagrama de flujo es importante considerar el tipo y cantidad de
información requerida por el usuario del mismo.
Probablemente la dirección de la empresa no esté interesada en los detalles y le sea suficiente
una descripción genérica del proceso. Este es el caso del ejemplo anterior, un diagrama de flujo a
nivel macro. 
En cambio, si el objetivo del diagrama es la capacitación de nuevos empleados o la búsqueda de
oportunidades de mejora, será necesario disponer de una descripción detallada del proceso y
hablamos de un diagrama de flujo a nivel micro, como muestra el ejemplo siguiente.
Entre ambos niveles, el macro y el micro, se ubican los diagramas con una cantidad media de
detalles.

PSEUDOCODIGO

El pseudocódigo (o falso lenguje) es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje de programación. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocódigo.

HISTORIA DE LA PROGRAMACION

Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de máquina a herramientas poderosas que crean las abstracciones complejas. Es importante entender por qué los idiomas han evolucionado, y qué capacidades que los idiomas más nuevos nos dan.

"Tan largo como no había máquinas, programar era ningún problema; cuando tuvimos unos pocas computadoras débiles, programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, tiene sólo los creó - ha creado el problema de usar su producto". [Edsger. W. Dijkstra. "El Programista Humilde" (la Conferencia del Premio de Turing), Comunicaciones del ACM, Vol 15, No. 10 (el octubre 1972).]

E. W. Dijkstra habló estas palabras proféticas casi hace 28 años en su es la conferencia del Premio de Turing. En aquel momento, el 'las computadoras gigantescas él radio de probablemente tenido entre 64 y 128 kilobytes de la memoria verdadera, y a lo más unos pocos megaoctetos de artefactos de almacenamiento de acceso directo. Si él pensó que el problema era gigantesco entonces...

Uno de las llaves a programar exitoso son el concepto de la abstracción. La abstracción es la llave a la construcción sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción dramáticamente aumentos. En sistemas sencillos, característica de idiomas usados en el 1950s y '60s, un solo programista podría entender el problema entero, y por lo tanto manipula todas estructuras del programa y datos. Los programistas son hoy incapaces de entender todos los programas y los datos - es apenas demasiado grande. La abstracción se requiere a permitir que el programista para agarrar los conceptos necesarios.

La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.

Historia de la Programación

Primera Generación

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.

John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.

¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.

La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes :

1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

TIPOS DE DATOS

En los lenguajes de programación y en otros programas utilitarios tales como una planilla de calculos, un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar. Tipos de datos comunes son: enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. Por ejemplo, en Java, el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación. Los colores, por otra parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas incluyen la adición y sustracción, pero no la multiplicación.
Éste es un concepto propio de la informtica, más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de las matemáticas y la lógica.

EXTRUCTURAS DE CONTROL

Estructuras de Control

Hasta ahora algoritmos han consistido en simples secuencias de
instrucciones
n Existen tareas más complejas que no pueden ser resueltas así
(repetir una misma acción, realizar acciones diferentes en
función del valor de una expresión, etc.)
n Para resolver esto existen las estructuras de control:
n Una estructura de control tiene un único punto de entrada y un
único punto de salida.
n Una estructura de control se compone de sentencias o de otras
estructuras de control.
n Existen 3 tipos fundamentales de estructuras de control:
n Secuencial.
n Alternativa.
n Repetitiva.

EXTRUCTURAS DE CONTROL SECUENCIAL

EXTRUCTURAS DE CONTROL SECUENCIAL


Estructuras de Control. Secuencial
n La más sencilla, simplemente indica una secuencia de
acciones a ser ejecutadas de forma consecutiva.
n La composición secuencial no es conmutativa.
read *, a
read *, b
c = a + b
print *, c
leer a
leer b
c ß a + b
escribir c
read *, a; read *, b
c = a + b; print *, c
leer a; leer b
c ß a + b; escribir c
Acción 1
Acción 2
Acción n
Punto de salida
Punto de entrada
n Existe una notación alternativa, separando las
sentencias mediante el carácter.

EXTRUCTURAS DE CONTROL ALTERNATIVA SIMPLE

EXTRUCTURAS DE CONTROL ALTERNATIVA SIMPLE

Estructuras de Control. Alternativa simple
n Evalúa una expresión lógica y ejecuta una acción (o grupo de acciones)
si es cierta y no hace nada si es falsa.
if (expresión lógica) then
acciones
end if
si expresión lógica entonces
acciones
fin_si
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO
if (radio>0) then
longitud=2*pi*radio
end if
si radio>0 entonces
longitudß2·pi·radio
fin_si

EXTRUCTURAS DE CONTROL ALTERNATIVA DOBLE

EXTRUCTURAS DE CONTROL ALTERNATIVA DOBLE


Estructuras de Control. Alternativa doble
n Similar a la anterior, ejecuta una acción (o grupo de acciones) si la
expresión es cierta y otra acción (o grupo) si es falsa.
if (expresión lógica) then
acciones
else
acciones
end if
si expresión lógica entonces
acciones
si no
acciones
fin_si
if (radio>0) then
longitud=2*pi*radio
else
print *, ‘Error’
end if
si radio>0 entonces
longitudß2·pi·radio
si no
escribir ‘Error’
fin_si
n Ejemplo:
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO
Acción 6


EXTRUCTURAS DE CONTROL ALTERNATIVA MULTIPLE (ii)

EXTRUCTURA DE CONTROL ALTERNATIVA MULTIPLE (ii)

n Ejemplo:
select case (mes)
case (1,3,5,7,8,10,12)
print *, ‘31’
case (4,6,9,11)
print *, ‘30’
case (2)
print *, ‘28’
case default
print *, ‘Mes incorrecto’
end select
segun mes
caso 1,3,5,7,8,10,12:
escribir ‘31’
caso 4,6,9,11:
escribir ‘30’
caso 2:
escribir ‘28’
otro caso:
escribir ‘Mes incorrecto’
fin según 8


EXTRUCTURA DE CONTROL ALTERNATIVA MULTIPLE

EXTRUCTURAS DE CONTROL ALTERNATIVAS MULTIPLE

Estructuras de Control. Alternativa múltiple (i)
n Evalúa una expresión que pueda tomar n valores (enteros,
caracteres y lógicos pero nunca reales) y ejecuta una acción o
grupo de acciones diferente en función del valor tomado por la
expresión selectora.
select case (expresión)
case (valor1)
acción 1
case (valor2)
acción 2
...
case (valorn)
acción n
case default
acción
end select
segun expresión
caso valor1:
acción 1
caso valor2:
acción 2
...
caso valorN:
acción n
otro caso:
acción
fin según
Punto de salida
Punto de entrada
Valor 1
Expresión selectora
Acción 1 Acción 2 Acción N Acción
Valor 2 Valor N Resto
valore...4 7

EXTRUCTURA DE CONTROL DESDE -HASTA (ii)

EXTRUCTURA DE CONTROL DESDE -HASTA (ii)

n Ejemplos:
do n=1, 10
print *, n
end do
desde nß1 hasta 10 hacer
escribir n
fin desde
do n=10, 1
print *, n
end do
desde nß10 hasta 1 hacer
escribir n
fin desde
do n=10, 1, -2
print *, n
end do
desde nß10 hasta 1 con paso –2 hacer
escribir n
fin desde 10

EXTRUCTURAS DE CONTROL REPETIR-HASTA

EXTRUCTURAS DE CONTROL REPETIR-HASTA

n Repite una acción o grupo de acciones hasta que una
expresión lógica sea cierta.
n Esta estructura no existe en FORTRAN pero sí en
otros lenguajes de programación.
repetir
acción
hasta expresión lógica
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO
FALSO
n La expresión lógica no se evalúa hasta
el final con lo cual el bucle se ejecuta
al menos una vez por contraposición
a la estructura anterior que podía no
ejecutarse ninguna.

EXTRUCTURAS DE CONTROL MIENTRAS

EXTRUCTURAS DE CONTROL MIENTRAS

n Repite una acción o grupo de acciones mientras una expresión
lógica sea cierta.
do while (expresión lógica)
acción
end do
mientras expresión lógica hacer
acción
fin desde
n Un aspecto muy importante de la
presente estructura de control es
que si la expresión lógica es
inicialmente falsa el bucle no se
ejecuta ni una sola vez; es decir, la
estructura mientras iterará 0 ó
más veces.
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO

EXTRUCTURAS DE CONTROL DESDE –HASTA(I)

 EXTRUCTURAS DE CONTROL DESDE –HASTA(I)

n Permite repetir la ejecución de una acción o de un grupo de
acciones un número determinado de veces.
do indice=inicio, fin, paso
acción
end do
desde indiceßinicio hasta fin [con paso valor] hacer
acción
fin desde
n El funcionamiento de la estructura es el siguiente:
n En primer lugar, se asigna a la variable indice el valor de inicio.
n El bucle se ejecuta mientras indice no alcance el valor de fin.
n En cada iteración el valor de indice es incrementado según el paso
indicado y se ejecuta la acción o grupo de acciones encerrados en el bucle.
n En caso de que no se indique ningún paso el que se empleará será +1.59