SlideShare una empresa de Scribd logo
1 de 13
Republica Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
Instituto Universitario Juan Pablo Pérez Alfonzo
IUTEPAL San Francisco
Producción Industrial
AlGORITMOS
San Francisco, Septiembre del 2016
REALIZADO POR:
 Maria Molero
 Genesis Ferrer
1. ¿Qué es un problema?
2. ¿Qué es la lógica?
3. ¿Qué es un dato?
4. ¿Qué es una instrucción?
5. Concepto de algoritmo
6. Clases de algoritmo
7. Características de algoritmo
8. Partes del algoritmo
9. ¿Qué es una variable?
10.¿Qué es una constante?
11.Componentes de un algoritmo cualitativo
12.Definición de operadores
- Aritméticos
- Relacionales
- Lógicos
13.¿Qué es un comando?
14.¿Qué es una sentencia?
1. ¿Qué es un problema?
Una cuestión a aclarar, proposición o dificultad de solución dudosa, conjunto de
hechos o circunstancias que dificultan la consecución del algún fin, puede ser un
fallo de software o hardware o error en programación.
2. ¿Qué es lógica?
Se trata de una ciencia de carácter formal que carece de contenido ya que hace
foco en el estudio de las alternativas válidas de inferencia. Es decir, propone
estudiar los métodos y los principios adecuados para identificar al razonamiento
correcto frente al que no lo es.
3. ¿Qué es un dato?
Los datos son la representación simbólica, bien sea mediante números o letras de
una recopilación de información la cual puede ser cualitativa o cuantitativa, que
facilitan la deducción de una investigación o un hecho. Los datos indican
condiciones o situaciones que por sí solos no aportan ninguna información
importante, es en conjunto de la observación y la experiencia que un dato puede
tomar cierto valor instruccional.
4. ¿Qué es una instrucción?
Se denomina instrucción en informática al conjunto de datos insertados en una
secuencia estructurada o específica que el procesador interpreta y ejecuta.
5. ¿Qué es un algoritmo?
El algoritmo es una sucesión de pasos ordenados, sistematizados y finitos que
dan solución a un problema definido (al aplicar el algoritmo a los mismos datos de
entrada, siempre se obtendrá el mismo resultado a la salida).
6. Clases de algoritmo
A) Según el sistema de signos con el que describen los pasos a seguir, se
reconocen:
- Algoritmos cualitativos: cuando se hace a través de palabras, es decir, las
instrucciones son verbales. Sucede, por ejemplo, con recetas de cocina.
- Algoritmos cuantitativos: cuando se hace a través de cálculos numéricos.
Se puede hacer un algoritmo, por ejemplo, para obtener la raíz cuadrada de
un número.
B) Según su función, los algoritmos pueden ser:
- Algoritmos de ordenamiento: secuencian los elementos que ingresan a
partir de un cierto orden, en general, según un orden numérico o léxico.
- Algoritmos de búsqueda: al contrario de realizar operaciones o
secuenciar elementos, se dedica a encontrar dentro de una lista que
ingresa, uno o varios elementos en particular que cumplan con el
conjunto de condiciones dadas.
- Algoritmos de encaminamiento: deciden de qué modo se deberá
transmitir algo que llega, y cómo seguirá un conjunto de pasos
encadenados. Se dividen fundamentalmente
entre adaptativos y estáticos, los primeros con cierta capacidad de
aprendizaje y ajuste a la circunstancia, mientras que los segundos
funcionan mecánicamente, siempre del mismo modo. Es importante
decir que los algoritmos de encaminamiento cuentan con una propia
subdivisión, según el camino que se toma para que la transmisión llegue
de manera efectiva (ejemplos de estos tipos son: por el camino más
corto, de manera óptima, basado en el flujo, etc.).
C) También los algoritmos han sido clasificados según la estrategia que se utiliza
para llegar al resultado. Veamos algunos ejemplos:
- Algoritmos probabilísticos: no se puede estar seguro de la exactitud de la
respuesta que darán. Se agrupan en distintos subtipos, pero con esa
premisa: o bien presentan soluciones aproximadas del problema, o bien
presentan soluciones que pueden ser correctas pero también erróneas.
- Algoritmo cotidiano: es el que se da en la vida común de las personas, no
se aplica en sistemas informáticos ni en nada ajeno al día a día. Muchas de
las decisiones que se toman desde que uno se despierta por la mañana
pertenecen a este grupo.
- Algoritmo heurístico: abandona alguno de los objetivos como recurso para
terminar llegando a la solución. En general, son utilizados cuando no existe
una solución mediante las vías tradicionales.
- Algoritmo de escalada: se comienza con una solución insatisfactoria (que
no cumple la entrada y la salida), y se la va modificando aproximándose a
lo que se busca. En algún momento, estaremos cerca de (o llegaremos a)
la solución correcta.
- Algoritmo voraz: Con la idea de llegar a una solución óptima definitiva, elige
analizar cada paso como único y elegir la solución óptima para ese paso.
- Algoritmo determinista: es completamente lineal (cada paso tiene un paso
sucesor y un paso predecesor) y por lo tanto predictivo, si se conocen sus
entradas y su forma de proceder. El algoritmo de Euclides, que permite
averiguar el máximo común divisor entre dos números, responde a este
tipo. Se distinguen de los no deterministas, donde el algoritmo tiene un
comportamiento en forma de árbol.
7. Características de un algoritmo
- Preciso (detallar el orden de las operaciones a realizar)
- Definido (al aplicar el algoritmo a los mismos datos de entrada, siempre se
obtendrá el mismo resultado a la salida).
- Finito (con un final),
8. ¿Qué es una variable?
Como su nombre lo indica, puede variar su valor durante la ejecución del
programa. Dependiendo del lenguaje de programación usado, también puede
cambiar el tipo de dato que almacena.
9. Partes de algoritmo
- Entrada: Corresponde al insumo, a los datos necesarios que requiere
el proceso para ofrecer los resultados esperados.
- Proceso: Pasos necesarios para obtener la solución del problema o
la situación planteada.
- Salida: Resultados arrojados por el proceso como solución.
10.Tipos de datos
- Tipos estáticos
Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se
tratarán debido a su complejidad.
Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en
memoria no puede variar durante la ejecución del programa. Es decir, una
vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de
memoria fijo, y este trozo no se podrá aumentar ni disminuir.
- Tipos dinámicos
Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener
un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes
manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el
programa se está ejecutando.
Los punteros quizás sean el concepto más complejo a la hora de aprender un
lenguaje de programación, sobre todo si es el primero que aprendes. Debido a
esto, no lo trataremos. Además, lenguajes que están muy de moda (por
ejemplo Java) no permiten al programador trabajar con punteros.
- Tipos simples
Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y
los más fáciles de aprender. Por todo esto, serán en los que nos centremos.
Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de
los lenguajes de programación los soportan, no como ocurre con los estructurados
que pueden variar de un lenguaje a otro.
- Tipos estructurados
Mientras que una variable de un tipo simple sólo referencia a un elemento, los
estructurados se refieren a colecciones de elementos.
Las colecciones de elementos que aparecen al hablar de tipos estructurados son
muy variadas: tenemos colecciones ordenadas que se representan mediante el
tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones
que contienen otros tipos, son los llamados registros.
- Tipos ordinales
Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se
dice que es ordinal porque el conjunto de valores que representa se puede contar,
es decir, podemos establecer una relación uno a uno entre sus elementos y el
conjunto de los números naturales.
Dentro de los tipos simples ordinales, los más importantes son:
El tipo entero (integer)
El tipo lógico (boolean)
El tipo carácter (char)
- Tipos no-ordinales
Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este
tipo nos sirve para declarar variables que pueden tomar valores dentro del
conjunto de los números reales.
A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se
puede establecer una relación uno a uno entre ellos y los número naturales. Dicho
de otra forma, para que un conjunto se considere ordinal se tiene que poder
calcular la posición, el anterior elemento y el siguiente de un elemento cualquiera
del conjunto. ¿Cuál es el sucesor de 5.12? Será 5.13, o 5.120, o 5.121.
- El tipo integer (entero)
Como ya habrás leído el tipo de datos entero es un tipo simple, y dentro de estos,
es ordinal. Al declarar una variable de tipo entero, estás creando una variable
numérica que puede tomar valores positivos o negativos, y sin parte decimal.
Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones,
expresiones aritméticas, etc. Algunos de los papeles más comunes que
desarrollan son:
Controlar un bucle
Usarlas como contador, incrementando su valor cuando sucede algo
Realizar operaciones enteras, es decir, sin parte decimal.
- Tipo boolean (lógico)
El tipo de datos lógico es el que te permite usar variables que disponen sólo de
dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no
es otra que variables de chequeo. Nos sirven para mantener el estado de un
objeto mediante dos valores:
Si/no
Cierto/falso
Funciona/no funciona
On/off
- Tipo real (real)
Como ya has visto, Pascal soporta el conjunto entero de números. Pero no es el
único, también te permite trabajar con números pertenecientes al conjunto real.
El tipo de datos real es el que se corresponde con los números reales. Este es un
tipo importante para los cálculos. Por ejemplo en los estadísticos, ya que se
caracterizan por tratar fundamentalmente con valores decimales.
nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales,
te advierto que en Pascal y en todos los lenguajes de programación se escribe con
un punto. Por ejemplo: 3.1416.
- Tipos char y string (carácter y cadena
Con el tipo carácter puedes tener objetos que representen una letra, un número,
etc. Es decir, puedes usar variables o constantes que representen un valor
alfanumérico. Pero ojo, cada variable sólo podrá almacenar un carácter.
Sin embargo, con las cadenas de caracteres (strings) puedes contener en una
sola variable más de un carácter. Por ejemplo, puedes tener en una variable tu
nombre.
11.¿Qué es una constante?
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.
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. Tienen varios usos: ser miembro en una expresión, en una comparación,
asignar su valor a una variable
12.Componentes de un algoritmo cualitativo:
- Secuencia de Acción:
1. Colocar una nueva orden o una nueva acción después de la última que haya
colocado
.2.Seguir una secuencia y orden en la ejecución de esas acciones
- Decisión de Acción:
Son condiciones que nos permite que podamos decidir cuál
esel camino lógico a seguir para resolver un problemaeficientemente
- Ciclo de Acción:
Son estructuras que nos permiten repetir una o varias acciones una cantidad
definida de veces
13.Definición de operadores
Son elementos que relacionan de forma diferente, los valores de una o más
variables y/o constantes. Es decir, los
operadores nos permiten manipular valores
- Operador aritmético
Los operadores aritméticos nos permiten, básicamente, hacer cualquier operación
aritmética, que necesitemos (ejemplo: suma, resta, multiplicación, etc)
- Operadores relacionales
Los operadores relacionales, también denominados operadores binarios lógicos y
de comparación, se utilizan para comprobar la veracidad o falsedad de
determinadas propuestas de relación (en realidad se trata respuestas a
preguntas). Las expresiones que los contienen se denominan expresiones
relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la
respuesta a la pregunta, es siempre del tipo cierto/falso
> Mayor que < Menor que > = Mayor o igual que < = Menor o igual que < >
Diferente = Igual
- Operador lógico
Los operadores lógicos nos proporcionan un resultado a partir de que se cumpla o
no una cierta condición. Esto genera una serie de valores que, en los casos más
sencillos, pueden ser parametrizados con los valores numéricos 0 y 1.
14.¿Qué es un comando?
Es el mensaje enviado al ordenador, por parte del usuario, y que va a provocar
una respuesta en este. Los comandos son en realidad órdenes, pues indican al
dispositivo informático que debe hacer o ejecutar a continuación, según el
comando que se le envíe.
15.¿Qué es una sentencia?
Las sentencias son los elementos básicos en los que se divide el código en un
lenguaje de programación. Al fin y al cabo, un programa no es más que un
conjunto de sentencias que se ejecutan para realizar una cierta tarea. Además,
como ya habrás visto, en Pascal el signo que las separa es el punto y coma.
Aunque generalmente una sentencia debe ir seguida de un punto y coma para
separarla de la siguiente, existen casos en los que no es necesario incluirlo. Y
estos casos se dan cuando después de la sentencia hay una palabra reservada de
las que delimitan de alguna forma un trozo de código.

Más contenido relacionado

La actualidad más candente (20)

Algoritmos computacionales conceptos básicos
Algoritmos computacionales   conceptos básicosAlgoritmos computacionales   conceptos básicos
Algoritmos computacionales conceptos básicos
 
Jumbo cristobal
Jumbo cristobalJumbo cristobal
Jumbo cristobal
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Presentacion de algoritmos
Presentacion de algoritmosPresentacion de algoritmos
Presentacion de algoritmos
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo ii
 
Analisis y diseño algoritmos
Analisis y diseño algoritmosAnalisis y diseño algoritmos
Analisis y diseño algoritmos
 
Conceptos basicos algoritmos
Conceptos basicos algoritmosConceptos basicos algoritmos
Conceptos basicos algoritmos
 
Tipos algoritmos
Tipos algoritmosTipos algoritmos
Tipos algoritmos
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
preguntas de algoritmos
preguntas de algoritmospreguntas de algoritmos
preguntas de algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Tarea3.
Tarea3.Tarea3.
Tarea3.
 
Base de datos
Base de datosBase de datos
Base de datos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Tarea 3
Tarea  3Tarea  3
Tarea 3
 
Johana cuenca
Johana cuencaJohana cuenca
Johana cuenca
 
Presentación1
Presentación1Presentación1
Presentación1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 

Destacado

Curbing Candidates Desperate Desires for University Education against Other T...
Curbing Candidates Desperate Desires for University Education against Other T...Curbing Candidates Desperate Desires for University Education against Other T...
Curbing Candidates Desperate Desires for University Education against Other T...inventionjournals
 
O mundo, a carne e o diabo 1
O mundo, a carne e o diabo 1O mundo, a carne e o diabo 1
O mundo, a carne e o diabo 1Hary Lucht
 
Nuevas normas de competencias ii
Nuevas normas de competencias iiNuevas normas de competencias ii
Nuevas normas de competencias iimjear21
 
Fuentes de informacion en la red
Fuentes de informacion en la redFuentes de informacion en la red
Fuentes de informacion en la redPaola Bautista
 
01. contenido curso internet basico
01. contenido curso internet basico01. contenido curso internet basico
01. contenido curso internet basicoBoris Salleg
 

Destacado (14)

Curbing Candidates Desperate Desires for University Education against Other T...
Curbing Candidates Desperate Desires for University Education against Other T...Curbing Candidates Desperate Desires for University Education against Other T...
Curbing Candidates Desperate Desires for University Education against Other T...
 
O mundo, a carne e o diabo 1
O mundo, a carne e o diabo 1O mundo, a carne e o diabo 1
O mundo, a carne e o diabo 1
 
Juego didáctico
Juego didácticoJuego didáctico
Juego didáctico
 
Credito agropecuario-favf
Credito agropecuario-favfCredito agropecuario-favf
Credito agropecuario-favf
 
Propriedades inox
Propriedades inoxPropriedades inox
Propriedades inox
 
Clase event
Clase eventClase event
Clase event
 
4.3. market branding
4.3. market branding4.3. market branding
4.3. market branding
 
HCI chp: 11
HCI chp: 11HCI chp: 11
HCI chp: 11
 
Partes de la computadora
Partes de la computadoraPartes de la computadora
Partes de la computadora
 
Nuevas normas de competencias ii
Nuevas normas de competencias iiNuevas normas de competencias ii
Nuevas normas de competencias ii
 
Fuentes de informacion en la red
Fuentes de informacion en la redFuentes de informacion en la red
Fuentes de informacion en la red
 
Paginas en ingles
Paginas en inglesPaginas en ingles
Paginas en ingles
 
01. contenido curso internet basico
01. contenido curso internet basico01. contenido curso internet basico
01. contenido curso internet basico
 
Bitácora...[1]
Bitácora...[1]Bitácora...[1]
Bitácora...[1]
 

Similar a Algoritmos: conceptos básicos

Similar a Algoritmos: conceptos básicos (20)

Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
 
Comcepto de algoritmos
Comcepto de algoritmosComcepto de algoritmos
Comcepto de algoritmos
 
Algoritmos, especificación y pseudocódigos.pptx
Algoritmos, especificación y pseudocódigos.pptxAlgoritmos, especificación y pseudocódigos.pptx
Algoritmos, especificación y pseudocódigos.pptx
 
Unidad II
Unidad IIUnidad II
Unidad II
 
Presentación4 (2)
Presentación4 (2)Presentación4 (2)
Presentación4 (2)
 
Fase 4_Grupo xx.docx
Fase 4_Grupo xx.docxFase 4_Grupo xx.docx
Fase 4_Grupo xx.docx
 
Tipos de algoritmoppt
Tipos de algoritmopptTipos de algoritmoppt
Tipos de algoritmoppt
 
algoritmos.pdf
algoritmos.pdfalgoritmos.pdf
algoritmos.pdf
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10
 
unidad1_algoritmoyprograma.pdf
unidad1_algoritmoyprograma.pdfunidad1_algoritmoyprograma.pdf
unidad1_algoritmoyprograma.pdf
 
Tipos de datos
Tipos de datos Tipos de datos
Tipos de datos
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Algoritmos y programas super manual de algoritmia
Algoritmos y programas   super manual de algoritmiaAlgoritmos y programas   super manual de algoritmia
Algoritmos y programas super manual de algoritmia
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Diaposivas final
Diaposivas finalDiaposivas final
Diaposivas final
 
ALGORITMOS
ALGORITMOSALGORITMOS
ALGORITMOS
 
Tecnologia
Tecnologia Tecnologia
Tecnologia
 
Presentation .pdf
Presentation .pdfPresentation .pdf
Presentation .pdf
 
Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.
 

Algoritmos: conceptos básicos

  • 1. Republica Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Instituto Universitario Juan Pablo Pérez Alfonzo IUTEPAL San Francisco Producción Industrial AlGORITMOS San Francisco, Septiembre del 2016 REALIZADO POR:  Maria Molero  Genesis Ferrer
  • 2.
  • 3. 1. ¿Qué es un problema? 2. ¿Qué es la lógica? 3. ¿Qué es un dato? 4. ¿Qué es una instrucción? 5. Concepto de algoritmo 6. Clases de algoritmo 7. Características de algoritmo 8. Partes del algoritmo 9. ¿Qué es una variable? 10.¿Qué es una constante? 11.Componentes de un algoritmo cualitativo 12.Definición de operadores - Aritméticos - Relacionales - Lógicos 13.¿Qué es un comando? 14.¿Qué es una sentencia?
  • 4. 1. ¿Qué es un problema? Una cuestión a aclarar, proposición o dificultad de solución dudosa, conjunto de hechos o circunstancias que dificultan la consecución del algún fin, puede ser un fallo de software o hardware o error en programación. 2. ¿Qué es lógica? Se trata de una ciencia de carácter formal que carece de contenido ya que hace foco en el estudio de las alternativas válidas de inferencia. Es decir, propone estudiar los métodos y los principios adecuados para identificar al razonamiento correcto frente al que no lo es. 3. ¿Qué es un dato? Los datos son la representación simbólica, bien sea mediante números o letras de una recopilación de información la cual puede ser cualitativa o cuantitativa, que facilitan la deducción de una investigación o un hecho. Los datos indican condiciones o situaciones que por sí solos no aportan ninguna información importante, es en conjunto de la observación y la experiencia que un dato puede tomar cierto valor instruccional. 4. ¿Qué es una instrucción? Se denomina instrucción en informática al conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta.
  • 5. 5. ¿Qué es un algoritmo? El algoritmo es una sucesión de pasos ordenados, sistematizados y finitos que dan solución a un problema definido (al aplicar el algoritmo a los mismos datos de entrada, siempre se obtendrá el mismo resultado a la salida). 6. Clases de algoritmo A) Según el sistema de signos con el que describen los pasos a seguir, se reconocen: - Algoritmos cualitativos: cuando se hace a través de palabras, es decir, las instrucciones son verbales. Sucede, por ejemplo, con recetas de cocina. - Algoritmos cuantitativos: cuando se hace a través de cálculos numéricos. Se puede hacer un algoritmo, por ejemplo, para obtener la raíz cuadrada de un número. B) Según su función, los algoritmos pueden ser: - Algoritmos de ordenamiento: secuencian los elementos que ingresan a partir de un cierto orden, en general, según un orden numérico o léxico. - Algoritmos de búsqueda: al contrario de realizar operaciones o secuenciar elementos, se dedica a encontrar dentro de una lista que ingresa, uno o varios elementos en particular que cumplan con el conjunto de condiciones dadas. - Algoritmos de encaminamiento: deciden de qué modo se deberá transmitir algo que llega, y cómo seguirá un conjunto de pasos encadenados. Se dividen fundamentalmente entre adaptativos y estáticos, los primeros con cierta capacidad de aprendizaje y ajuste a la circunstancia, mientras que los segundos funcionan mecánicamente, siempre del mismo modo. Es importante decir que los algoritmos de encaminamiento cuentan con una propia subdivisión, según el camino que se toma para que la transmisión llegue
  • 6. de manera efectiva (ejemplos de estos tipos son: por el camino más corto, de manera óptima, basado en el flujo, etc.). C) También los algoritmos han sido clasificados según la estrategia que se utiliza para llegar al resultado. Veamos algunos ejemplos: - Algoritmos probabilísticos: no se puede estar seguro de la exactitud de la respuesta que darán. Se agrupan en distintos subtipos, pero con esa premisa: o bien presentan soluciones aproximadas del problema, o bien presentan soluciones que pueden ser correctas pero también erróneas. - Algoritmo cotidiano: es el que se da en la vida común de las personas, no se aplica en sistemas informáticos ni en nada ajeno al día a día. Muchas de las decisiones que se toman desde que uno se despierta por la mañana pertenecen a este grupo. - Algoritmo heurístico: abandona alguno de los objetivos como recurso para terminar llegando a la solución. En general, son utilizados cuando no existe una solución mediante las vías tradicionales. - Algoritmo de escalada: se comienza con una solución insatisfactoria (que no cumple la entrada y la salida), y se la va modificando aproximándose a lo que se busca. En algún momento, estaremos cerca de (o llegaremos a) la solución correcta. - Algoritmo voraz: Con la idea de llegar a una solución óptima definitiva, elige analizar cada paso como único y elegir la solución óptima para ese paso. - Algoritmo determinista: es completamente lineal (cada paso tiene un paso sucesor y un paso predecesor) y por lo tanto predictivo, si se conocen sus entradas y su forma de proceder. El algoritmo de Euclides, que permite averiguar el máximo común divisor entre dos números, responde a este tipo. Se distinguen de los no deterministas, donde el algoritmo tiene un comportamiento en forma de árbol.
  • 7. 7. Características de un algoritmo - Preciso (detallar el orden de las operaciones a realizar) - Definido (al aplicar el algoritmo a los mismos datos de entrada, siempre se obtendrá el mismo resultado a la salida). - Finito (con un final), 8. ¿Qué es una variable? Como su nombre lo indica, puede variar su valor durante la ejecución del programa. Dependiendo del lenguaje de programación usado, también puede cambiar el tipo de dato que almacena. 9. Partes de algoritmo - Entrada: Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados. - Proceso: Pasos necesarios para obtener la solución del problema o la situación planteada. - Salida: Resultados arrojados por el proceso como solución. 10.Tipos de datos - Tipos estáticos Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad. Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir. - Tipos dinámicos Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes
  • 8. manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando. Los punteros quizás sean el concepto más complejo a la hora de aprender un lenguaje de programación, sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos. Además, lenguajes que están muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros. - Tipos simples Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más fáciles de aprender. Por todo esto, serán en los que nos centremos. Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro. - Tipos estructurados Mientras que una variable de un tipo simple sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos. Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros. - Tipos ordinales Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.
  • 9. Dentro de los tipos simples ordinales, los más importantes son: El tipo entero (integer) El tipo lógico (boolean) El tipo carácter (char) - Tipos no-ordinales Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los números reales. A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer una relación uno a uno entre ellos y los número naturales. Dicho de otra forma, para que un conjunto se considere ordinal se tiene que poder calcular la posición, el anterior elemento y el siguiente de un elemento cualquiera del conjunto. ¿Cuál es el sucesor de 5.12? Será 5.13, o 5.120, o 5.121. - El tipo integer (entero) Como ya habrás leído el tipo de datos entero es un tipo simple, y dentro de estos, es ordinal. Al declarar una variable de tipo entero, estás creando una variable numérica que puede tomar valores positivos o negativos, y sin parte decimal. Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones aritméticas, etc. Algunos de los papeles más comunes que desarrollan son: Controlar un bucle Usarlas como contador, incrementando su valor cuando sucede algo Realizar operaciones enteras, es decir, sin parte decimal.
  • 10. - Tipo boolean (lógico) El tipo de datos lógico es el que te permite usar variables que disponen sólo de dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de chequeo. Nos sirven para mantener el estado de un objeto mediante dos valores: Si/no Cierto/falso Funciona/no funciona On/off - Tipo real (real) Como ya has visto, Pascal soporta el conjunto entero de números. Pero no es el único, también te permite trabajar con números pertenecientes al conjunto real. El tipo de datos real es el que se corresponde con los números reales. Este es un tipo importante para los cálculos. Por ejemplo en los estadísticos, ya que se caracterizan por tratar fundamentalmente con valores decimales. nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales, te advierto que en Pascal y en todos los lenguajes de programación se escribe con un punto. Por ejemplo: 3.1416. - Tipos char y string (carácter y cadena Con el tipo carácter puedes tener objetos que representen una letra, un número, etc. Es decir, puedes usar variables o constantes que representen un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar un carácter. Sin embargo, con las cadenas de caracteres (strings) puedes contener en una sola variable más de un carácter. Por ejemplo, puedes tener en una variable tu nombre.
  • 11. 11.¿Qué es una constante? 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. 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. Tienen varios usos: ser miembro en una expresión, en una comparación, asignar su valor a una variable 12.Componentes de un algoritmo cualitativo: - Secuencia de Acción: 1. Colocar una nueva orden o una nueva acción después de la última que haya colocado .2.Seguir una secuencia y orden en la ejecución de esas acciones - Decisión de Acción: Son condiciones que nos permite que podamos decidir cuál esel camino lógico a seguir para resolver un problemaeficientemente - Ciclo de Acción: Son estructuras que nos permiten repetir una o varias acciones una cantidad definida de veces 13.Definición de operadores Son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores
  • 12. - Operador aritmético Los operadores aritméticos nos permiten, básicamente, hacer cualquier operación aritmética, que necesitemos (ejemplo: suma, resta, multiplicación, etc) - Operadores relacionales Los operadores relacionales, también denominados operadores binarios lógicos y de comparación, se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas). Las expresiones que los contienen se denominan expresiones relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la respuesta a la pregunta, es siempre del tipo cierto/falso > Mayor que < Menor que > = Mayor o igual que < = Menor o igual que < > Diferente = Igual - Operador lógico Los operadores lógicos nos proporcionan un resultado a partir de que se cumpla o no una cierta condición. Esto genera una serie de valores que, en los casos más sencillos, pueden ser parametrizados con los valores numéricos 0 y 1. 14.¿Qué es un comando? Es el mensaje enviado al ordenador, por parte del usuario, y que va a provocar una respuesta en este. Los comandos son en realidad órdenes, pues indican al dispositivo informático que debe hacer o ejecutar a continuación, según el comando que se le envíe. 15.¿Qué es una sentencia? Las sentencias son los elementos básicos en los que se divide el código en un lenguaje de programación. Al fin y al cabo, un programa no es más que un conjunto de sentencias que se ejecutan para realizar una cierta tarea. Además, como ya habrás visto, en Pascal el signo que las separa es el punto y coma. Aunque generalmente una sentencia debe ir seguida de un punto y coma para
  • 13. separarla de la siguiente, existen casos en los que no es necesario incluirlo. Y estos casos se dan cuando después de la sentencia hay una palabra reservada de las que delimitan de alguna forma un trozo de código.