sistema de computdoras Áreas en ciencias de computación algorithms and data structures...

33
Sistema de Computdoras

Upload: maximo-lupercio

Post on 12-Jan-2015

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Sistema de Computdoras

Page 2: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Áreas en Ciencias de Computación

Algorithms and Data StructuresArchitectureArtificial Intelligence and RoboticsDatabase and Information RetrievalHuman-Computer Communication

Numerical and Symbolic ComputationOperating SystemsProgramming LanguagesSoftware Methodology and EngineeringSocial and Professional Context

Page 3: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Qué tipo de enunciados entiende la computadora?

En una computadora, toda la data es almacenada y procesada en forma de código binario, o sea, en forma de cadenas de 0's y 1's .

Las instrucciones y data son almacenados en la memoria de la computadora usando código binario.

Llamamos al 0 y 1 binary digit (bit)

Page 4: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Bits and Bytes

The bi-valued bit is the fundamental unit of memory. Bits may be switched on or off, states corresponding to values of 1 and 0. The byte is the next level of organization above the bit. Bytes represent a group of bits. Although byte size is not fixed by physical or human law, there is a widely accepted standard: 8 bits comprise 1 byte. Given a binary numbering scheme, one byte can take on 256 values, ranging from 00000000 to 11111111.

Bytes may be used to represent integers, floating – point numbers, and even characters (either letters or symbols).

Fixed character values are established by two major standards, ASCII and Unicode.

Page 5: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

El único lenguaje de programación que una computadora puede directamente ejecutar es el conjunto primitivo de instrucciones propio de la máquina, lenguaje de máquina o código de máquina.

Lenguaje de máquina es el lenguaje de programación que la computadora entiende.

Nombre de Instrucción Lenguaje de Máquina Add 0110 Subtract 0100

Page 6: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Los programadores de las primeras computadoras, al final de la década de los años 1940 tenían que programar en lenguaje de máquina .

Page 7: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Características de Lenguaje de Máquina (bajo nivel, low level)

"Machine dependent" un programa escrito para un tipo de máquina tiene que ser re-escrito para otro tipo de máquina.(no es portátil)

Fácil de cometer erroresDifícil encontrar errores

Page 8: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Nivel Medio

Assembly language : abreviaciones mnemónica , add, para sumar versus 0110 en código binario. También es dependiente de máquina.

Page 9: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

A Bright Idea

Devise a set of abbreviations (mnemonics) corresponding to the ML statements

Create a program (the assembler) to translate them into ML.

ADD 34, R1MOVER1,1200CMPR R1, R2

100111001110010110100110110111

Assembler

Assembly languagestatements

(mnemonics)

Machine language

statements

Page 10: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Lenguaje de Alto Nivel

Lenguajes de alto nivel : Pueden expresar algoritmos a un nivel más alto de abstracción. Están diseñados para facilitarle a los humanos el escribir programas y el leerlos. Algunos lenguajes de alto nivel son C , Pascal, FORTRAN, BASIC, COBOL, C++ .

Page 11: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Lenguaje de Alto Nivel

Portable code : Un programa(código) es portátilpuede correr sin ser modificado en máquinas diferentes sólo compilandolos con el compilador apropiado.

Es importante reconocer que para que la computadora pueda ejecutar las instrucciones escritas en un programa de alto nivel éstas primero tienen que ser traducidas a lenguaje de máquina.

Page 12: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Compilador

Compilador : Un compilador es un programa que traduce un programa escrito en un lenguaje de alto nivel como C++ , a lenguaje de máquina.(Recordar que ese es el único lenguaje que la computadora entiende).

Page 13: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Contrast Assembler and HLL Compiler

Assembler translates one mnemonic into one ML statement

Compiler translates one HL statement into several ML statements

1010110011110101

0000000000010000

0010111010110101

0000000000010010

0010111011111101

0000000000010100

z = x + y; Compiler

Page 14: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Summary of "Levels" of Computer Languages

Low levelML in binary language

Medium Level Assembly language

High Levelas in C++

Hard to read, not portable

Mnemonics, easier to read, still not portable

Reads like English and algebra, portable

Page 15: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Que es programacion

Computadora: dispositivo programable que puede almacenar, retirar y procesar data.

Programacion de Computadora : Es el proceso de planear una sucesion de pasos para que la computadora siga.

Paso 1Paso 2paso 3 … paso n

Page 16: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Que es programacion

Programa de Computadora : una sucesion de instrucciones que se llevan a cabo por la computadora

Programadores : las personas que escriben los programas.

Page 17: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Application software: set of programs that interface with the user

System software Manages internal operation of the

physical device Insulates user from hardware

Page 18: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Objectives in Programming A program should solve a problem:

Correctly

Efficiently

Readably

In user-friendly fashion

It actually solves the problem

Without wasting time or space

Understandable by another person

In a way that is easy for its user to use

Page 19: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Para resolver un problema usando una computadora

Una computadora no es inteligente. No puede analizar un problema y generar una solucion.

El humano (programador) debe analizar el problema, desarrollar(un algoritmo) una sucesion de instrucciones para resolver el problema y luego comunicarselo a la computadora.

Podriamos entonces preguntarnos:?Cual es la ventaja de usar una computadora si no puede resolver problemas?

Page 20: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Contestacion

Una vez se escriba la solucion como una sucesion de instrucciones , la computadora puede repetir la solucion bien rapidamente y consistentemente, muchas veces. Asi que la computadora libera a los humanos de hacer tareas repetitivas y aburridas.

Page 21: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

El proceso de escribir un programa consiste de varias fases.

Diseno Analisar, especificar el algoritmo que resuelve el

problema.Codificacion

Escribir la solucion en la sintaxis de un lenguaje, documentacion

Prueba, Ejecucion, Debugging Eliminar los “bugs”

Mantenimiento Actualizar,modificar para acomodar cambios

necesarios

Page 22: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Fases en el ciclo de vida de programación

1 Problem-Solving(resolver el problema)

2 Implemantación

3 Mantenimiento

Page 23: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Fase de Resolver el Problema

Analisar el problema y especificar que debe hacer la solución

desarrollar una solución general (algoritmo) para resolver el problema

Verificar que su solución realmente resuelve el problema.

Page 24: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Un Algoritmo es . . .

Un procedimiento paso a paso para resolver un problema en un tiempo finito.

Page 25: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Qué es un lenguaje de programación ?

Es un lenguaje con reglas estrictas de gramatica, símbolos y palabras especiales que se usan para construir un programa ce computadora.

Page 26: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Fase de Implementación:Programa

Traducir el algoritmo a un lenguaje de programación esto se conoce como codificar.

En C++ se usa:Documentación -- comentarios escritos

Compilerar -- Traducir su programa a lenguaje de máquina.

Programa principal (main) -- Puede llamar a subalgoritmos

Page 27: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Fase de Implementación : Prueba

Probar su programa quiere decir correr (ejecutar) su programa en la computadora, para determinar si produce resultados correctos.

Si no es así, entonces hay que determinar lo que está mal en el programa o en el algoritmo ---esto se conoce como debugging

Page 28: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Fase de Mantenimiento

Use y Modifique el programa para cumplir con combios en los requisitos o corregir errores que se descubran conel uso.

Mantenimiento comienza cuando se comienza a usar el programa, hay mucho esfuerzo enesta área.

Page 29: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Programming Life Cycle

1 Problem-Solving Phase Analysis and Specification General Solution ( Algorithm ) Verify

2 Implementation Phase Concrete Solution ( Program ) Test

3 Maintenance Phase Use Maintain

Page 30: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Ejemplo:(Diseno de un programa

Problema : Se quiere determinarel costo de alfombrar un área rectngular.

Análisis : Entrada: 1. Dimensiones(pies )

2. Costo por pie cuadradoSalida : Costo de alfombrar

Page 31: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Ejemplo:(Diseno de un programa

Algoritmo:1. Obtener dimensiones

obtener largoobtener ancho

Obtener costo por pie cuadrado

2. Calcular costoCalcular área = ancho x largoCalcular costo = área x costo_por_pie_cuadrado

3. Mostrar los resultados

Page 32: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

Modulos

C os to p or p ie cu ad rá d o

O b ten er d im en s ion es C a lcu la r á rea

H acer e l cá lcu lo d e cos to M os tra r los resu ltad o

C a lcu la r C os to

Page 33: Sistema de Computdoras Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and

//Nombre//fecha//Sección//El propósito de este programa es calcular el costo de alfombrar un

área rectangular.

#include<iostream.h>int main(){ int largo, ancho, costo_por_pie_cuadrado; int area, costo;

cout << “Oprima retrun despues de entrar u número\n”;