Tema 1 algoritmos y programas
Download
1 / 25

TEMA 1 Algoritmos y Programas - PowerPoint PPT Presentation


  • 78 Views
  • Uploaded on

TEMA 1 Algoritmos y Programas. Sistemas de Procesamiento de Información. Sistema: conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a determinado objeto. Un sistema se compone a su vez de otros sistemas. Los Componentes de un sistema informático: hardware y software.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' TEMA 1 Algoritmos y Programas' - miller


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Tema 1 algoritmos y programas

TEMA 1Algoritmos y Programas


Sistemas de procesamiento de informaci n
Sistemas de Procesamiento de Información

  • Sistema: conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a determinado objeto.

  • Un sistema se compone a su vez de otros sistemas.

  • Los Componentes de un sistema informático: hardware y software.


Periféricos de entrada

Teclado

Mouse

Scaner

Periféricos de salida

Monitor

Impresora

Parlantes

Periféricos de

almacenamiento

Disco Duro

Disco Flexible

CDs – DVDs

Memoria Principal (RAM)

Unidad Central de Proceso (CPU)

Esquema Básico del Hardware del computador


Lenguajes de programaci n
Lenguajes de Programación

  • Un programa es un conjunto de órdenes para un ordenador. Estas órdenes se le deben dar en un cierto lenguaje, que el ordenador sea capaz de comprender.

  • El problema es que los lenguajes que realmente entienden los ordenadores resultan difíciles para nosotros, porque son muy distintos de los que nosotros empleamos habitualmente para hablar. Escribir programas en el lenguaje que utiliza internamente el ordenador (llamado “lenguaje máquina” o “código máquina”) es un trabajo duro, tanto a la hora de crear el programa como (especialmente) en el momento de corregir algún fallo o mejorar lo que se hizo.

  • Por eso, en la práctica se emplean lenguajes más parecidos al lenguaje humano, llamados “lenguajes de alto nivel”. Normalmente, estos son muy parecidos al idioma inglés, aunque siguen unas reglas mucho más estrictas.


Lenguajes de alto nivel y de bajo nivel
Lenguajes de alto nivel y de bajo nivel.

  • Uno de los lenguajes de alto nivel más sencillos es el lenguaje BASIC. En este lenguaje, escribir el texto Hola en pantalla, sería tan sencillo como usar la orden

  • PRINT "Hola“

  • Otros lenguajes, como Pascal, nos obligan a ser algo más estrictos, pero a cambio hacen más fácil descubrir errores:

    program Saludo;

    begin

    write('Hola');

    end.

  • El equivalente en lenguaje C resulta algo más difícil de leer

    #include <stdio.h>

    int main()

    {

    printf("Hola");

    }


Lenguajes de bajo nivel
Lenguajes de bajo nivel

  • Los lenguajes de bajo nivel son más cercanos al ordenador que a los lenguajes humanos. Eso hace que sean más difíciles de aprender y también que los fallos sean más difíciles de descubrir y corregir, a cambio de que podemos optimizar al máximo la velocidad (si sabemos cómo), e incluso llegar a un nivel de control del ordenador que a veces no se puede alcanzar con otros lenguajes. Por ejemplo, escribir Hola en lenguaje ensamblador de un ordenador equipado con el sistema operativo MsDos y con un procesador de la familia Intel x86 sería algo como


dosseg

.model small

.stack100h

.data

hello_messagedb'Hola',0dh,0ah,'$'

.code

mainproc

mov ax,@data

mov ds,ax

mov ah,9

mov dx,offsethello_message

int 21h

mov ax,4C00h

int 21h

mainendp

endmain


  • Resulta bastante más difícil de seguir. Pero eso todavía no es lo que el ordenador entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo, las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar) se convertirían a lo siguiente:

    1000 0011 1101 1000 1011 0100 0000 1001


Schema no es lo que el ordenador entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo, las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar) se convertirían a lo siguiente:

LISP

ML

Funcional

Simula

C++

ADA

SmallTalk

Orientado

a Objetos

Java

Visual

Basic

FORTRAN

BASIC

C

ADA

Imperativa

COBOL

ALGOL

APL

PASCAL

Declarativa

GPSS

Prolog


Ensambladores compiladores e int rpretes
Ensambladores, compiladores e intérpretes no es lo que el ordenador entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo, las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar) se convertirían a lo siguiente:

  • Está claro entonces que las órdenes que nosotros hemos escrito (o “programa fuente”) deben convertirse a lo que el ordenador comprende (obteniendo el “programa ejecutable”).

  • Si elegimos un lenguaje de bajo nivel, como el ensamblador (en inglés Assembly, abreviado como Asm), la traducción es sencilla, y de hacer esa traducción se encargan unas herramientas llamadas ensambladores (en inglés Assembler).


  • Cuando el lenguaje que hemos empleado es de alto nivel, la traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los compiladores.

  • Un intérprete es una herramienta parecida a un compilador, con la diferencia de que en los intérpretes no se crea ningún “programa ejecutable” capaz de funcionar “por sí solo”, de modo que si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y también el intérprete que es capaz de entenderlo, o no le servirá de nada. Cuando ponemos el programa en funcionamiento, el intérprete de encarga de convertir el programa en lenguaje de alto nivel a código máquina, orden por orden, justo en el momento en que hay que procesar cada una de las órdenes.


Programa Fuente traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

Programa Fuente

Intérprete

Compilador

Traducción y Ejecución

Línea a Línea

Programa Objeto


Definici n de algoritmo
Definición de algoritmo traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • La palabra algoritmo proviene del nombre del matemático persa del siglo IX Muhammad ibn Musa al-Jwarizmi

  • Un algoritmo es una secuencia ordenada de pasos, exenta de ambigüedad, que permite la resolución de un problema determinado

  • Características de un algoritmo

    • Preciso: exento de ambigüedad

    • Finito: si se sigue el algoritmo, se debe terminar en algún momento

    • Definido: si se sigue dos veces el algoritmo con los mismo datos de entrada, la salida debe ser la misma


Tipos de datos
Tipos de datos traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Conjunto de valores junto con las operaciones sobre esos valores

  • Tipos elementales

    • Entero

    • Real

    • Carácter

    • Lógico


Tipos de datos1
Tipos de datos traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Tipo Entero

    • Conjunto de los números enteros positivos y negativos

    • En la práctica están limitados por el almacenamiento -> Overflow

    • Operaciones básicas: aritméticas, relacionales

  • Tipo Real

    • Conjunto de los números reales positivos y negativos (parte entera y parte decimal separada por un punto)

    • En la práctica están limitados por el almacenamiento -> Overflow

    • Operaciones básicas: aritméticas, relacionales


Tipos de datos2
Tipos de datos traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Tipo carácter

    • Conjunto de elementos de un conjunto de caracteres predefinidos o alfabeto (normalmente se utiliza el conjunto de caracteres ASCII)

    • Generalmente se almacenan internamente como datos enteros (código ASCII)

    • Operaciones de conversión de enteros a caracteres y viceversa y relacionales

  • Lógicos

    • Valores entre 2 posibles, es decir, valores binarios (verdad/falso, si/no)

    • En algunos lenguajes no se implementan sino que se consideran como verdad cualquier valor distinto de 0

    • Operaciones: operadores lógicos (AND, OR y NOT)

    • Fundamentales para evaluar condiciones


Operadores l gicos
Operadores lógicos traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • (3<4) OR (3=4)

  • (Respuesta=‘S’) AND (salir=‘N’)

  • NOT ((3<4) OR (3=4))

  • (caracter=‘A’) AND (caracter=‘B’) es siempre FALSO

  • (N<=10) OR (N>10) es siempre VERDAD


Elementos de un algoritmo
Elementos de un algoritmo traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Variables, constantes y expresiones

  • Estructuras de control

    • Secuencial

      • Operación de asignación

      • Operación de entrada

      • Operación de salida

    • Condicional

    • Repetitiva


Identificadores
Identificadores traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Un identificador es una secuencia de caracteres que permite identificar de forma única a cada elemento/objeto de un algoritmo

  • No todos los caracteres son válidos por lo que normalmente se usan letras, dígitos y subrayado (_)

  • El primer carácter debe ser una letra o subrayado

  • Pueden tener cualquier longitud dentro del límite que imponga el compilador

  • Las palabras reservadas del lenguaje no pueden utilizarse como identificadores

  • Algunos lenguajes no distinguen entre caracteres en mayúsculas y minúsculas (Pascal, Modula-2) y otros sí (C, Java)

  • Reglas para crear identificadores

    • Usar solo letras, dígitos y subrayado

    • Usar minúsculas para identificadores de variables

    • Usar mayúsculas para identificadores de constantes

    • Para identificadores de funciones con más de una palabra usar subrayado para separar las palabras o mayúsculas para la primera letra de cada palabra (Ej. CalcularFechaNacimiento)


Variables
Variables traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Una variable es un objeto de datos que posee un valor conocido por su nombre (identificador)

  • Toda variable tiene un tipo asociado

  • Su valor puede ser modificado pero en un instante dado sólo contiene un valor determinado

  • Es necesario declarar las variables al principio del algoritmo

    • Elegir el nombre mediante un identificador

    • Determinar el tipo de datos que va a contener

  • Ejemplos

    • Sueldo: real

    • Edad: entero

    • Letra_nif: caracter


Constantes
Constantes traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Objeto de datos que contiene un valor invariable conocido por su Identificador

  • Es necesario inicializar las constantes al principio del algoritmo esto determina el tipo de la constante

  • Ejemplos

    • PI=3.14

    • SALUDO=“Hola mundo”

    • MAXIMO=200

    • RESPUESTA=‘S’


Valores constantes
Valores constantes traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • También llamados valores literales

  • Se trata de valores que aparecen explícitamente en un algoritmo y que no tienen identificador asociado (sólo pueden ser referenciados por su propio valor)

  • Ejemplos

    • 0

    • “Introduzca el dato de entrada”

    • 100

    • 7.5

    • ‘x’


Expresiones
Expresiones traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • Una expresión es la combinación de distintas variables, constantes, valores constantes, operadores, paréntesis y nombres de funciones

  • Toda expresión tiene en todo momento un valor concreto que es el resultado de evaluarla de izquierda a derecha, siempre teniendo en cuenta la precedencia de los operadores y los paréntesis que aparecen en la expresión

  • El valor devuelto tras la evaluación de una expresión determina el tipo de la expresión (entera, lógica …)

  • Ejemplos

    • 5+6-5*2

    • (5+6-5)*2

    • (A<0) OR B AND C


Precedencia de los operadores
Precedencia de los operadores traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los


Ejemplos
Ejemplos traducción es más complicada, y a veces implicará también recopilar varios fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los

  • 7 * 3 – 5 ^ 2 / ( 2 + 3 ) * 8

  • ( (2*3)< 8) AND ( (5*2) >= 14)


ad