330 likes | 368 Views
Sistema de Computdoras. Áreas en Ciencias de Computación. Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and Information Retrieval Human-Computer Communication. Numerical and Symbolic Computation Operating Systems Programming Languages
E N D
Áreas en Ciencias de Computación Algorithms and Data Structures Architecture Artificial Intelligence and Robotics Database and Information Retrieval Human-Computer Communication Numerical and Symbolic Computation Operating Systems Programming Languages Software Methodology and Engineering Social 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 errores • Difí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.
Assembly languagestatements (mnemonics) Machine language statements A Bright Idea • Devise a set of abbreviations (mnemonics) corresponding to the ML statements • Create a program (the assembler) to translate them into ML. 100111001110010110100110110111 ADD 34, R1MOVE R1,1200CMPR R1, R2 Assembler
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 Compiler z = x + y;
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 1 Paso 2 paso 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 ProgrammingA 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 • Problem-Solving(resolver el problema) • Implemantación • 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 • Problem-Solving Phase Analysis and Specification General Solution ( Algorithm ) Verify • Implementation Phase Concrete Solution ( Program ) Test • 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 cuadrado Salida : Costo de alfombrar
Ejemplo:(Diseno de un programa • Algoritmo:1. Obtener dimensiones obtener largo obtener ancho Obtener costo por pie cuadrado2. Calcular costo Calcular área = ancho x largo Calcular costo = área x costo_por_pie_cuadrado3. Mostrar los resultados
//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”;