TEMA 1 Algoritmos y Programas

Slides:



Advertisements
Presentaciones similares
Programación de bajo nivel
Advertisements

¿Qué es Sofware? Son el conjunto de instrucciones que dirigen las actividades del Hardware Consiste en programas, módulos de soporte y archivos de datos,
LENGUAJES DE PROGRAMACIÓN Y ALGORITMOS
El ordenador y sus componentes.
Lenguajes de programación
UNIDAD II: ALGORITMOS Y LENGUAJES
Resolución de Problemas Algoritmos y Programación
INSTITUTO TECNOLOGICO DE MINATITLAN
Temas Operaciones básicas Instalando el compilador
Introducción a la Programación
INTRODUCCION A LOS ALGORITMOS (Conceptos previos)
Profesor: Ing. Matías Vallerga Ayudante: Lic. Cristian Kenny
Son dos partes muy importantes de una computadora.
Historia La base del C proviene del BCPL (lógica programable en codigo binario), escrito por Martin Richards, y del B escrito por Ken Thompson en 1970.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Programación 1 Introducción
Introducción a la programación
3. INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Componentes básicos del ordenador
METODOLOGIA DE LA PROGRAMACION
Tema 6. Conceptos básicos de programación
ALGORITMOS Y ESTRUCTURAS DE DATOS
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
TRADUCTOR DE UN PROGRAMA
Proceso de información en la computadora
ALGORITMOS.
Tema 1 Entorno de la programación. Conceptos elementales Algoritmo  Secuencia ordenada de pasos exentos de ambigüedad que conduce a la resolución de.
FUNCIONAMIENTO BÁSICO Fuente inicial:. Arquitectura de computadores Los computadores digitales utilizan como modelo para su funcionamiento y organización.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
ESTRUCTURA DE DATOS ESD-243
FUNDAMENTOS DE PROGRAMACIÓN ISC. GABRIEL ZEPEDA MARTÍNEZ EST. ABRAHAM F. MACHUCA VAZQUEZ.
 Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas.
U1. Introducción a la programación
M.C. Juan Carlos Olivares Rojas
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
FUNDAMENTOS DE PROGRAMACION
PARCIAL DE JUNIO DEL 2014 LENGUAJE DE PROGRAMACIÓN UN LENGUAJE SE PUEDE DEFINIR COMO UN CONJUNTO DE PALABRAS Y FORMAS DE EXPRESIÓN POR MEDIO DE.
Lenguaje de Programación  Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Prof. Gabriel Matonte Programación I Prof. Gabriel Matonte
COMPUTO III Ing. Jimmy Ojeda Arnica.
LENGUAJES DE PROGRAMACION
FUNDAMENTOS DE PROGRAMACIÓN
Términos algoritmo diseñar algoritmo implementar algoritmo
Metodología de la programación
ESCUELA NORMAL “PROF. DARÍO RODRÍGUEZ CRUZ” Licenciatura en educación preescolar Alumnas: *Mayra * Monserrat * Idalia *Cinthia Curso: las TIC en la educación.
Prof. Flor Narciso Departamento de Computación
UNIDAD 7.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
PRINCIPIOS DE PROGRAMACIÓN
Recursos que requiere un Sistema de Información
COMPUTADORA La computadora es una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicados que requieren una toma rápida.
Presente un cuestionario con los aspectos mas importantes sobre los
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Introducción al lenguaje PROCESSING para ARDUINO
Es un tipo especial de software que nos permite *Crear *Desarrollar *Programar otras aplicaciones. Haciendo uso de sus conocimientos lógicos y lenguajes.
presentación Que es informática Sistema informático Dispositivos de un computador Dispositivos de entrada Historia de las computadoras Dispositivos de.
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Definición De Software Y Hardware
TECNOLOGÍA Y ARQUITECTURA COMPUTADORES
Fundamentos de Programación Unidad I Conceptos Básicos.
Conalep 150 Tehuacán inmi 309 soma
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Transcripción de la presentación:

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.

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 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. 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 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 .stack 100h .data hello_message db 'Hola',0dh,0ah,'$' .code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h main endp end main

Resulta bastante más difícil de seguir 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 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 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.

Traducción y Ejecución Programa Fuente Programa Fuente Intérprete Compilador Traducción y Ejecución Línea a Línea Programa Objeto

Definición de algoritmo 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 Conjunto de valores junto con las operaciones sobre esos valores Tipos elementales Entero Real Carácter Lógico

Tipos de datos Tipo Entero Tipo Real 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)

Tipos de datos 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 (3<4) OR (3=4) (Respuesta=‘S’) AND (salir=‘N’) NOT V F (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 Variables, constantes y expresiones Estructuras de control Secuencial Operación de asignación Operación de entrada Operación de salida Condicional Repetitiva

Identificadores 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 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 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 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 “Introduzca el dato de entrada” 100 7.5 ‘x’

Expresiones 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 Operadores Lógicos Operadores Relacionales Operadores Aritméticos NOT AND OR <, > , = , <= , >=, <> Operadores de signo (+,-) Multiplicación y división (* , /, %) Suma y resta (+ , -)

Ejemplos 7 * 3 – 5 ^ 2 / ( 2 + 3 ) * 8 ( (2*3)< 8) AND ( (5*2) >= 14)