1/163
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
Computadora
Es un dispositivo electrónico que almacena y procesa datos; y es capaz de ejecutar órdenes o comandos
Hardware
Parte física de una computadora (dispositivos electrónicos)
Software
Parte lógica de una computadora (programas)
Papel de los dispositivos de entrada en la organización de una computadora
Escriben datos en la memoria
Papel del procesador en la organización de una computadora
Obtiene instrucciones y datos de la memoria
Papel de los dispositivos de salida en la organización de una computadora
Leen datos de la memoria
Unidad Central de Procesamiento (UCP) o PCU o Procesador
Se utiliza para interpretar y ejecutar programas
Unidad aritmetica lógica de la CPU
Con esta se realizan cálculos y se llevan a cabo decisiones
Unidad de Control en la CPU
Dirige datos a las posiciones correctas
¿Qué sucede cuando un programa se ejecuta?
La CPU ejecuta las instrucciones encontradas en la memoria
Memoria Principal
La computadora necesita un espacio para almacenar el resto del programa y los datos hasta que el procesador está listo para utilizar
Memoria RAM
Memoria de acceso aleatorio
Soporta almacenamiento temporal de programas y datos
Memoria ROM
Memoria de solo lectura
Almacena datos o programas de modo permanente
Memoria Caché
Temporal
Pequeña
Más rápida que el procesador
Se utiliza para obtener información que se va a necesitar en momentos de inmediatez
Ubicación de la memoria caché
Memoria RAM situada físicamente entre el procesador y la memoria principal
Objetivo principal de la memoria caché
Lograr que la memoria del procesador trabaje a su velocidad de procesamiento.
Paradigmas de programación
Define la forma, metodología o estilo con el que se resolverá un problema utilizando un lenguaje de programación (forma de programar).
Programación Imperativa
Se enfoca en cómo se deben realizar las tareas.
El programador proporciona una secuencia de instrucciones detalladas que la computadora debe ejecutar.
Un programa se compone de una serie de instrucciones que modifican el estado del programa a lo largo del tiempo
Ejemplos de Programación Imperativa
Basic, Fortran, Ensamblador
Programación estructurada
Basado en el teorema de Corrado Bohm y Giussepe Jacopini.
Todo programa tiene un punto de entrada y un punto de salida.
Las instrucciones se ejecutan de manera secuencial.
Se organiza en bloques y funciones.
Se elimina el uso de GOTO
La secuencia en la que se ejecutan las instrucciones solo puede ser alterada si se usan las estructuras de control de secuencia: selectivas, condicionales o repetitivas.
Ejemplo de programación estructurada
Pascal, C
Programación Orientada a Objetos
Propone resolver problemas a través de identificar objetos de la vida real, es decir organizar los programas de manera que representan la interacción de las cosas en el mundo real.
Abstracción
Moderar de forma más natural a los objetos de la realidad. Quedarte con lo más importante.
Encapsulamiento
El estado y comportamiento de los obejtos es independiente. Protege la información.
Poliformismo
Permite que un objeto se comporte de forma difetente dependiendo el contexto
Herencia
Forma de estructurar jerarquicamente a las clases de un programa permitiendo con ella la reutlización del código
Paradigma declarativo
Se enfoca en que se desea lograr sin especificar los pasos exactos para lograrlo.
El programador describe el problema y el sistema decide la manera más adecuada de resolverlo.
Ejemplo de paradigma declarativo
SQL (Base de datos)
HTML (Diseño de página web)
Programación lógica
Los programas se describen mediante hechos y reglas lógicas.
Se realiza mediante la inferencia, donde el sistema deduce respuestas basadas en las reglas dadas
Usa reglas y deducción
Ejemplo de programación lógica
Prolog
Programación estructurada (A fondo)
Diseño descendiente (top-down)
Estructura de datos
Estructuras de control
Programación modular
Top down
Es una técnica de programación descendiente o por nivel jerárquico.
Establece una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al algoritmo.
De lo grande a lo pequeño
Estructura de datos
Conjunto de datos donde podemos almacenar y acceder a elementos individuales de datos.
Son formas de guardar y organizar información para que la compu la use mejor.
Programación modular
Dividir un programa en partes más pequeñas y manejables llamadas módulos o subprogramas.
Algoritmo
Es una secuencia ordenada, finita e inequivoca de pasos a seguir para resolver un determinado problema.
Precisión
Los pasos a seguir deben ser precisados claramentes
Ser claro y exacto
Determinismo
El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe arrojar los mismos resultados.
Finitud
Debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento; es decir debe tener un número finito de pasos
El algoritmo debe definir 3 partes:
Entrada
Proceso
Salida
Entrada Algoritmo
Todos los datos que hay que ingresar para la resolución del problema
Proceso Algoritmo
Diferentes procedimientos en los cuales se usarán los datos
Técnicas
Descripción narrada
Descripción pseudocódigo
Diagrama de flujo
Descripción narrada
Este se caracteriza por seguir un proceso de ejecución común y lógico, que describe textualmente, paso a paso cada una de las actividades que se va a realizar dentro de una actividad determinada.
Descripción pseudocódigo
No es realmente un código, sino una versión abreviada de instrucciones para acercarnos a un lenguaje de programación.
Diagrama de flujo
Esquema que representa gráficamente un algoritmo
Reglas básicas de un diagrama de flujo
Todos los símbolos han de estar conectados
A un símbolo de proceso pueden llegarle varias líneas
A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos.
A un símbolo de inicio nunca le llegan líneas De un símbolo de fin no parte ninguna línea.
Estructuras de control
Selección
Iteración o bucles
Secuencial
Entrada - Pseudocódigo
Almacena
Acepta
Guarda
Lee

Salida - Pseudocódigo
Imprime
Escribe

Estructuras selectiva compuesta
Si llueve Entonces
Escribir "Lleva paraguas"
Sino
Escribir "No lo necesitas"
FinSi
Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.
Estructuras selectiva simple
Se identifican porque están compuestas únicamente de una condición. La estructura si- entonces evalúa la condición.
Si tienes hambre Entonces
Escribir "Come una manzana"
FinSi
Posibles casos de la estructura simple
Si la condición es verdadera, entonces ejecuta la acción
Si (o acciones si son varias)
Si la condición es falsa, entonces no se hace nada
Estructura Múltiple
Segun color Hacer
"rojo": Escribir "Alto"
"verde": Escribir "Sigue"
"amarillo": Escribir "Espera"
FinSegun
Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero el número de alternativas podemos utilizar una estructura selectiva múltiple.
Estructura Repetir
Repetir
Escribir "Dime tu contraseña"
Hasta Que contraseña = "1234"
Es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número definido de veces.
En este caso conocemos cuántas veces ingresara en un ciclo.
El número de veces se obtiene del planteamiento del problema.
Estructura Mientras
Mientras tenga_tareas = Verdadero
Escribir "Sigue estudiando"
FinMientras
Esta estructura es adecuada para utilizar un ciclo cuando no sabemos el número de veces que se ha de repetir. Dicho número depende de las proposiciones dentro del ciclo.
La evaluación de esta condición permite decidir cuándo finalizará la ejecución del ciclo. La condición se evalúa al inicio del mismo.
Tipos de datos
Númericos
Alfanúmericos
Lógicos
Variables
Almacena un dato
Cada variable ocupa un espacio en la memoria
Elementos: tipo, identificador y contenido
Cadena/Caracter
Nombre “Juan Perez”
Entero
Edad “19”
Real
Nota “8.2”
Lógico
Aprobado “Verdadero/Falso”
Operadores
Operador
Expresión
Operador +, -, *
Símbolo que permite realizar una operación
+, -, *
Tipos de operadores
Aritmeticos (+, -, *)
Relacionales (<, >, =)
Lógicos (y, o, no)
Expresión
Instrucción que puede estar compuesta por números, operadores, variables, constantes, produciendo un resultado.
*Deben escribirse en notación algoritmica.
¿Cómo nos comunicamos con las computadoras?
Procesan información de modo automatico.
Funcionan con señales digitales, las cuales representan la información como una secuencia de 0 y 1.
0 representa una señal de bajo voltaje
1 señal de alto voltaje
Es como si dentro de la compu hubiera muchas lucecitas que se prenden (1) y apagan (0).
Digito binario o bit
El digito 0 o 1
Una secuencia de ceros y unos se conoce como código binario
Lenguaje maquina (código binario)
Las primeras computadoras eran programadas en este lenguaje.
El programador tenía que recordar las posiciones de los datos en memoria.
Lenguaje ensamblador
Más fácil de recordar
Llamado nemotécnico o nemónico
Son abreviaturas o segmentos de palabras clásicas en inglés
Add Lenguaje ensamblador
Suma
Sub Lenguaje ensamblador
Resta
Mult Lenguaje ensamblador
Multiplicar
Sto Lenguaje ensamblador
Almacenar
Primera generación del desarrollo de lenguajes de programación
Lenguajes máquina y ensambladores
Segunda generación del desarrollo de lenguajes de programación
Primeros lenguajes de alto nivel imperativo (Fortran, Cobol)
Tercera generación del desarrollo de lenguajes de programación
Lenguajes de alto nivel imperativo. Son los más utilizados en la actualidad (Algol 8, PL/1, Pascal, Modula)
Cuarta generación del desarrollo de lenguajes de programación
Orientados básicamente a las aplicaciones de gestión y manejo de bases de datos (Natural, SQL)
Quinta generación del desarrollo de lenguajes de programación
Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, Prolog)
Lenguajes de alto nivel
Cobol, Basic, FORTRAN,
Lenguaje de programación
Es una herramienta que permite desarrollar software o programas para computadora.
Estos son empleados para diseñar e implementar programas encargados de definir y administrar el comportamiento de los dispositivos físicos y lógivos de una computadora.
Componentes de un lenguaje de programación
Léxico
Sintaxis
Semántica
Léxico de un Lenguaje de programación
Reglas que determinan qué simbolos (letras, digitos, signos de puntuación, etc.) pueden usarse.
Sintaxis de un Lenguaje de programación
Determina las formas apropiadas de combinar los símbolos
Semántica de un Lenguaje de programación
El significado de cada afirmación expresada en el lenguaje
Compilador
Los lenguajes de alto nivel necesitan traductores
Un programa que traduce un programa escrito en un lenguaje de alto nivel en un programa equivalente en lenguaje maquina (en el caso de Java, este lenguaje máquina es el bytecode)
Compilación y ejecución de un programa
El programa fuente lo capturamos mediante programa editor y es almacenado.
Es traducido a lenguaje máquina con el compilador y el sistema operativo que se encarga prácticamente de la compilación.
Una vez que el programa ejecutable se ha creado, ya se puede ejecutar desde el sistema operativo con solo teclear su nombre
Proceso de compilación en C
Prepocesar el archivo fuente, es decir, interpretar las directivas de pre-procesamiento que hayamos utlizado, como #define, #include, etc.
Compilar el código, el resultado es un código binario NO ejecutable, llamado código objeto
Para que el código objeto se vuelva ejecutable, es el de enlazar, montar o linkear el objeto con las bibliotecas. El proceso de montaje produce un programa ejecutable.
Primer paso en el proceso de compilación en C
Código Fuente → *.c
Segundo paso en el proceso de compilación en C
Preprocesador C → *.i
Tercer paso en el proceso de compilación en C
Compilador → *.s
Cuarto paso en el proceso de compilación en C
Ensamblador → *.o
En el cuarto paso del proceso de compilación en C interviene:
Bibliotecas → *.h
Quinto paso en el proceso de compilación en C
Enlazador → a.out (ELF)
Resultado en el proceso de compilación en C
Ejecutable
Estándares del lenguaje C
La última edición es ISO/IEC (también conocida como C17), pero es importante tener en cuenta que el trabajo en la nomra ISO/IEC **** está actualmente en curso.
Estructura de un programa
#(almohadilla, numeral) al principio de la primera línea
El contenido de esta línea es una directiva de preprocesador
Preprocesador
Es una parte independiente del compilador, cuya tarea es preleer el texto del programa y modificarlo
#include <stdio.h>
Archivos de encabezado
La información preliminar, que necesita el compilador, se incluye en estos archivos cuyos nombres suelen terminar en “.h” (encabezado)
Main
Este lenguaje asume que, entre los muchos bloques que pueden incluir en un programa, siempre debe estar presente uno específico; de lo contrario, el programa no será correcto.
Cuerpo de la función
Comienza donde se abre el primer corchete { se coloca y termina donde está el corchete de cierre correspondiente }