sistema de computdoras Áreas en ciencias de computación algorithms and data structures...
TRANSCRIPT
Sistema de Computdoras
Á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
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)
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.
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
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 .
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
Nivel Medio
Assembly language : abreviaciones mnemónica , add, para sumar versus 0110 en código binario. También es dependiente de máquina.
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
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++ .
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.
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).
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
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
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
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.
Application software: set of programs that interface with the user
System software Manages internal operation of the
physical device Insulates user from hardware
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
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?
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.
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
Fases en el ciclo de vida de programación
1 Problem-Solving(resolver el problema)
2 Implemantación
3 Mantenimiento
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.
Un Algoritmo es . . .
Un procedimiento paso a paso para resolver un problema en un tiempo finito.
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.
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
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
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.
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
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
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
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
//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”;