ESTE BLOG SE MANEJA COMO UN LIBRO. SI VAS AL INDICE ENCONTRARAS TODOS LOS TEMAS ORDENADOS POR MATERIAS. MUCHAS GRACIAS.

Programación en Pascal

Programación en Pascal - CAPITULO 1 -




Introducción al lenguaje Pascal: concepto de algoritmo y programa, acciones = sentencias ejecutables, estructura de un programa Pascal, concepto de tipos de datos, asignación, entrada/salida


1. Algoritmo 


El diseño e implementación de algoritmos constituye una metodología de resolución de problemas muy usada en programación de computadoras.

Se denomina algoritmo a un procedimiento con las siguientes características:
1. Poseer una secuencia finita y ordenada de acciones primitivas (órdenes elementales)
2. Las acciones primitivas son no ambiguas
3. La ejecución de la secuencia de acciones primitivas, en el orden dado, conduce a la solución del problema en un tiempo finito

Las acciones son las tareas o trabajos que realiza el procesador. Estas acciones pueden ser:
a) Primitivas: su enunciado es suficiente para que el procesador pueda ejecutarlo sin  información adicional.
b) No primitivas: son órdenes no elementales de una abstracción mayor a las órdenes elementales. Cada una de ellas puede ser dividida en otras acciones (primitivas o no).

Una vez que el algoritmo ha sido correctamente diseñado e implementado en algún lenguaje apropiado, puede ser usado para solucionar problemas específicos. Para obtener la solución, se debe recurrir a una entidad capaz de ejecutar el algoritmo. Esa entidad es denominada, en un sentido amplio, procesador. Entonces, un procesador es toda entidad capaz de “entender” órdenes elementales y llevarlas a cabo.

Los algoritmos deben ser expresados en un lenguaje, por ejemplo la lengua natural (para nosotros el español).

Ejemplos:

E0) Se tiene un procesador que realiza las siguientes acciones primitivas: leer (ingresar o captar) datos numéricos- almacenar datos numéricos -sumar dos  datos  – multiplicar dos datos. Se desea resolver el siguiente problema: calcular el valor de una función  f(x)=ax+b para un x0 dado.

ALGORITMO RECTA
1) Leer y almacenar los valores de a, b, y x0.
2) Multiplicar a por x0 y almacenarlo
3) Sumar b al valor obtenido en 2)
4) Fin del ALGORITMO RECTA

E1) Problema: encontrar la raíz positiva de la siguiente ecuación cuadrática x2-4 x +4 = 0 Un algoritmo para este problema puede ser enunciado con las siguientes acciones y constituye una solución: 

ALGORITMO RAIZ1
1) Ingresar los valores de los coeficientes de la ecuación
2) Calcular el discriminante
3) Calcular las raíces
4) Fin de algoritmo RAIZ1

A fin de identificar los algoritmos, estos poseen un encabezamiento donde, además de figurar la palabra ALGORITMO, se escribe un nombre. Luego de esta cabecera, se enumeran las acciones en orden. Finalmente, se indica la terminación del algoritmo con la acción 4. Sin embargo, el lenguaje con el que se expresó el algoritmo RAIZ1 debe abandonar la lengua natural (con cierta ambigüedad) para tomar el formalismo (mas rígido) de los lenguajes programación. Por ejemplo, expresemos el mismo algoritmo usando un lenguaje más formal (sin ser un lenguaje de programación):

Solución:

      ALGORITMO RAIZUNO
1) Ingresar los valores 1, -4 y 4
2) Discriminante  (-4)2 – 4*1*4
3) Raiz  4+√Discriminante 2*1
4) Fin del algoritmo RAIZUNO

La acción primitiva de ingresar indica que el algoritmo necesita cierta información para trabajar apropiadamente. En el presente ejemplo esa información (o datos, como veremos posteriormente) son los coeficientes de la ecuación. El símbolo  indica una acción primitiva de reemplazo del valor actual de la variable que figura a la izquierda de  por el resultado del cálculo de la expresión que figura a la derecha. Las palabras que figuran en negrita representan variables (en forma similar a las  variables matemáticas).

E2) Problema: encontrar las raíces de la siguiente ecuación cuadrática x2-4 x +3 = 0     
Solución:

       ALGORITMO RAIZDOS
1) Ingresar los valores 1, -4 y 3
2) Discriminante  (-4)2 – 4*1*3
3) Raiz1  4+√Discriminante 2∗1
4) Raiz2  4−√Discriminante 2*1
5) Fin del algoritmo RAIZDOS

Si bien se han resuelto los problemas planteados, los algoritmos usados carecen de una importante cualidad que es la generalidad. Los algoritmos RAIZUNO y RAIZDOS solucionaron problemas muy particulares. Mas adelante se planteará un algoritmo para tratar la búsqueda de las raíces de una ecuación cuadrática cualquiera   a x2 +b x + c = 0

E3) Problema: Dados 3 números enteros (cualesquiera), se desea detectar los que son positivos y escribirlos. Vamos a usar una nueva acción primitiva que nos permita tomar una decisión.
Solución:

ALGORITMO DECISION_1
1) Ingresar a,b,c
2) Si a es positivo entonces escribir a
3) Si b es positivo entonces escribir b
4) Si c es positivo entonces escribir c
5) Fin del algoritmo DECISIÓN_1

Este algoritmo acepta tres números enteros y escribe los que son positivos. A fin de precisar las acciones primitivas 2,3 y 4 las escribimos de la siguiente manera:

ALGORITMO DECISION_2
1) Ingresar a,b,c
2) Si a>0 entonces escribir a
3) Si b>0 entonces escribir b 4) Si c>0 entonces escribir c
5) Fin del algoritmo DECISIÓN_2

La decisión que se toma en 2,3 y 4 establece que se escribe el número entero solo si es mayor que cero, no se establece acción si el número es menor o igual que cero.

E4) Problema: Dados 3 números enteros (cualesquiera), se desea escribir aquellos que sean positivos y aquellos que no lo sean, aclarando cada caso. Vamos a usar una nueva acción primitiva que nos permita tomar una decisión más compleja.
Solución:

ALGORITMO DECISION_3
1) Ingresar a,b,c
 2) Si a>0 entonces escribir a,'es positivo'                           
 sino escribir a,'es negativo o cero'
3) Si b>0 entonces escribir b,'es positivo'   
 sino escribir b,'es negativo o cero'
4) Si c>0 entonces escribir c,'es positivo'                           
 sino escribir c,'es negativo o cero'
5) Fin del algoritmo DECISIÓN_3

Vemos que la decisión discrimina entre valores mayores que cero (la acción que se sigue es escribir que el número es positivo) de aquellos que no lo son (la acción que se sigue es escribir que es negativo o cero).

Considerando que los algoritmos son métodos para solucionar problemas, veamos  como trabaja uno de ellos para alcanzar tal fin. A continuación presentaremos un ejemplo de resolución de un problema específico usando el algoritmo REPETICION. El procesador que trabaja con el algoritmo es un ser humano adulto que entiende correctamente las acciones y puede ejecutarlas.

La ejecución de un algoritmo es una secuencia operaciones calculadas a partir de las acciones primitivas del algoritmo. La ejecución de un algoritmo para una entrada específica de datos constituye la resolución de un problema particular. Esos datos son propios del problema. 

Debemos tener en cuenta que pueden escribirse diferentes algoritmos para resolver un mismo problema. Una consecuencia a la que nos enfrentamos, entonces, es la elección del mejor algoritmo. Un parámetro para alcanzar una elección acertada es la eficiencia: las acciones que se ejecutan deben ser especificadas rigurosamente y sin ambigüedad para cada caso, las operaciones deben ser lo suficientemente básicas para que puedan ser ejecutadas exactamente en un tiempo finito y sin redundancias1. Mas tarde volveremos sobre el concepto de eficiencia algorítmica.

Computacion - Capitulo 1 - Universidad Nacional de Mar del Plata

SERIE - DISEÑANDO EN FUSIÓN -

RESALTADOR EN 6 MINUTOS


Introduccion a la logica y a la metodologia

Lógica:


Nociones básicas acerca de la estructura y método de la matemática


¿Que es la matemática?

La respuesta dependerá, sin duda, del grado de formación matemática del que responda. Algunas respuestas posibles podrían ser:
  • "Es la ciencia que se ocupa de los números y las operaciones entre ellos".
  • "Es la ciencia que estudia los números y las figuras geométricas".. etc.

Sin embargo, la respuesta con mas consenso es:
  • "La matemática es la ciencia de los patterns (o de los patrones)".


Como una primera aproximación diremos que las ciencias se dividen en Ciencias Formales y Ciencias Fanáticas; las primeras son la Matemática y la Lógica, así llamadas porque sus objetos de estudio son ideales (o bien mentales), no son objetos del mundo real. En cambio la física, la astronomía, la biología, las ciencias sociales son ciencias facticas, ya que sus objetos de estudio son tomados de la realidad.

¿Que es el método axiomático-deductivo?


La geometría euclidiana es un buen ejemplo para introducir esta idea.

¿Como se construya la geometría?

Se dan por conocidos ciertos términos, no siendo necesaria ninguna explicación acerca de su significado; algunos de ellos son "Punto","recta" y "Plano". Estos son los llamados "conceptos o términos primitivos" y no se definen.
Luego, como quien inventa un juego, se formulan unas reglas o enunciados que involucran a dichos conceptos primitivos. Estas reglas son ejemplos de lo que llamamos "axiomas" o "Postulados" de la geometría. Donde los axiomas o postulados de una teoría no se demuestran.

Por ejemplo:

1) Desde un punto a otro siempre puede trazarse una recta.
2) Una recta puede prolongarse indefinidamente en sus dos direcciones.
3) etc.

Cuando un objeto matemático se define de esta manera, se dice que se ha definido en forma axiomática.

Una vez introducidos los "términos o conceptos primitivos" y enunciados los "axiomas o postulados" se esta en condiciones de "jugar el juego". El juego demandara introducir nuevos conceptos, a través de "definiciones"; también sera necesario deducir nuevas reglas y/o propiedades, llamadas teoremas, valederas dentro de esa teoría. La deducción de las mismas se realiza mediante métodos de demostración. Y sera la Lógica la disciplina que va a actuar como soporte de la matemática, proveyendole los métodos y técnicas para "Moverse" dentro del sistema deductivo.

La definición


Es la introducción de un nuevo concepto; en matemática esto se hace mediante las definiciones axiomáticas, las definiciones nominales explicas, las definiciones por inducción o por recurrencia y las definiciones por abstracción.

Definición axiomática de numero natural.
Conceptos primitivos.


  1. Un conjunto N cuyos elementos se llaman números naturales.
  2. Un objeto matemático llamado "uno", cuyo símbolo es 1.
  3. Una relación binaria de N, "es siguiente de", cuyo símbolo es "sg", tal que si x pertenece a N, un elemento de N que este en relación con el se llamara sg(x)
Estos conceptos primitivos son relación por cinco axiomas, llamados:
Axiomas de Peano

  1. 1 pertenece a N
  2. Para todo x perteneciente a N, existe y es unico el sg(x)
  3. Para todo x perteneciente a N, sg(x) es distinto de 1
  4. Si sg(x)=sg(y), entonces x=y
  5. Si M es un subconjunto de N y verifica:
    1. 1 pertenece a M
    2. Si x pertenece a M, entonces sg(x) pertenece a M entonces M=N
Como puede verse los axiomas son reglas que tienen que ver con los terminos o conceptos primitivos; una mirada atenta sobre los mismos nos permite "traducir" su significado.

¿Que es, en esencia, un conjunto inductivo?


Es un conjunto que contiene al uno y al siguiente de cada uno de sus elementos.

Entre los métodos empleados por la Matemática esta el llamado Método de Inducción completa. Dicho método esta gestado dentro de la teoría axiomática de Peano; y es precisamente el quinto axioma, llamado "axioma de inducción" o "axioma de recurrencia", el que le da vida.

Este método de inducción completa se usa en Matemática para:
  1. definir conceptos
  2. demostrar proposiciones
siempre relativas para números naturales.

Definiciones Axiomáticas


Son definiciones implícitas que se formulan introduciendo unos términos o conceptos primitivos y unos axiomas referidos a ellos.

Definiciones nominales explicitas


Son convenciones lingüísticas que se usan para dar significado a una palabra, símbolo u objeto nuevo.

Definiciones por inducción o por recurrencia


Son definiciones que utilizan el quinto axioma de Peano y se usan para definir conceptos relativos a los números naturales.
La definición se formula en dos etapas:

  1. se define explicitamente para el numero 1.
  2. se define para un natural cualquiera, en base a su anterior.

Definiciones por abstracción


Este tipo de definiciones son muy usadas en la vida diaria y tienen que ver con la clasificación de objetos según una característica común a ellos.

Teoremas y propiedades.

Una vez introducidos los "términos primitivos" y enunciados los "axiomas" de un sistema axiomático-deductivo, se introducen nuevos conceptos mediante "definiciones" y se deducen nuevas "propiedades" o "teoremas".

Un teorema es un resultado que puede deducirse de los axiomas, de las definiciones y/o de otros teoremas previos. El proceso lógico seguido para establecer la veracidad de un teorema se llama "demostración".

Entre los teoremas se distinguen los "lemas", y los "corolarios"; los lemas son teoremas que no tienen valor en si mismo, pero que son útiles para demostrar otro teorema; y los corolarios son teoremas que son consecuencia directa de otro teorema.