Sie sind auf Seite 1von 50

Módulo 1

Introducción

rogramación de
omputadores

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

CONTENIDO
1. Arquitectura de un Computador

2. Problemas

3. Algoritmo

4. Solución de problemas Algorítmicos

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

1. Arquitectura de un Computador
E s t á d i vi d i d a e n d o s
partes importantes:
CPU
Hardware: Es la que
hace referencia a la
parte física de un
computador y de
cualquier dispositivo
electrónico. La Arquitectura Von
Newman
Software: Es la que
hace referencia a la
parte lógica de un
c o m p u t a d o r.

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

Hardware
• Unidad central de Proceso
• Dispositivos de entrada, salida, almacenamiento,
comunicación y cómputo
• Memoria

CPU

La Arquitectura Von Newman

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

Unidad Central de Proceso


(CPU)

Micropocesador
Athlon 64 X2 E6 3800+

Facultad Ciencias Básicas 1. Arquitectura del Computador


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Dispositivos
Entrada Salida

Cómputo

Almacenamiento
Comunicación

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Tipos de memoria
RAM (Random Access Memory): Memoria de escritura y
lectura. El contenido solo se mantiene mientras el
computador está encendido.

ROM (Read Only Memory): Memoria de solo lectura, es


permanente y no se afecta por el encendido o apagado del
computador.

Caché: Memoria de acceso muy rápido, usada como


puente entre la UCP y la memoria RAM, para evitar las
demoras en la consulta de la memoria RAM.

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Representación en
Memoria
Elementos que pueden estar en dos estados
(prendidos o apagados).

El sistema de numeración binario:


representación de este tipo de datos. Utiliza
dos símbolos el 1 y el 0.
Facultad Ciencias Básicas 1. Arquitectura de un
Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Código Binario
Cada 1 en un número binario representa
una potencia de 2 según su posición

Ejemplo: El número binario 100110 representa


el valor 38

1 0 0 1 1 0
25 24 23 22 21 20
1*32 + 0*16+ 0*8+ 1*4+ 1*2+ 0*1= 38

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Medida de la Memoria
Unidad básica de información: BIT que
corresponde a un único dígito binario (puede
tomar los valores 1 o 0).

BYTE: conjunto de 8 bits. 256 valores


diferentes: desde el 00000000 (0 en decimal) al
11111111 (255 en decimal).

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Cantidades de Memoria
Ejemplos:

1 Kilo Byte = 210 Bytes = 1024 Bytes


1 Mega Byte = 210 KBytes = 220 Bytes
= 1048576 Bytes
1 Giga Byte = 210 MBytes = 230 Bytes
1 Tera Byte = 210 GBytes = 240 Bytes

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Software
Software: conjunto de instrucciones que le dicen
al hardware que hacer.
Sistema Operativo

Herramientas de Desarrollo

Aplicaciones

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Arquitectura de Software
Lenguaje Lenguaje Lenguaje Hardware
Alto Nivel Ensamblador Maquina

Sistema Operativo

Aplicaciones Herramientas

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Sistema Operativo

Software encargado de administrar los recursos del


sistema.
Ofrece un conjunto de comandos a los humanos,
para interactuar con la máquina.
Puede ser escrito en lenguaje de alto nivel, en
lenguaje ensamblador y/o en lenguaje máquina.

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Lenguaje de Máquina

Único lenguaje que entiende el hardware


(máquina).

Específico para cada hardware (procesador,


dispositivos, etc.).

Programa: almacenado en memoria, contiene


instrucciones y datos.

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Lenguaje Ensamblador
Software, generalmente escrito en lenguaje de
máquina, capaz de traducir de lenguaje ensamblador
a lenguaje de máquina.

Usa mnemónicos para codificar las operaciones. Los


datos y/o direcciones son codificados generalmente
como números en sistema hexadecimal.

Es específico (aunque no único) para cada lenguaje


de máquina.
Facultad Ciencias Básicas 1. Arquitectura de un
Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Lenguaje de Alto Nivel


Es un lenguaje con una estructura sintáctica mas
rica que le permite mayor expresividad.

Cuenta con un conjunto de palabras reservadas,


para codificar estructuras de control e
instrucciones.

Permite el uso de expresiones aritméticas y


relacionales.
Facultad Ciencias Básicas 1. Arquitectura de un
Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Lenguaje de Alto Nivel

COMPILADORES e INTERPRETES: software


capaz de traducir de un lenguaje de alto nivel al
lenguaje de máquina.

C++ Java Python

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Aplicaciones
APLICACIÓN: software que le permite al
computador realizar una tarea específica.

Procesadores de Texto Video Juegos Hojas de Calculo

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

Herramientas de Desarrollo
Es una aplicación que presenta un ambiente en el
que, empleando un lenguaje de programación, se
puede desarrollar nuevo software.

Ejemplos: ambientes integrados de desarrollo


como DevC++, Visual C++, en los que se emplea
el lenguaje C++.

Facultad Ciencias Básicas 1. Arquitectura de un


Departamento de Matemáticas Computador
Programación de Computadores
Modulo 1. Introducción

2. Problemas

Se tiene un problema cuando se desea


encontrar uno o varios objetos desconocidos
(ya sean estos números, símbolos, diagramas,
figuras, u otras cosas), que cumplen
condiciones o relaciones, previamente
definidas, respecto a uno o varios objetos
conocidos.

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

Solución de problema
Solucionar el problema es encontrar los
objetos desconocidos.

Para solucionar un problema se debe


determinar de manera clara y concisa: cuáles
son los objetos conocidos, las condiciones y
de que tipo son los objetos desconocidos.

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Tipos de problemas

Problemas bien condicionados

Problemas mal condicionados

Problemas indecidibles

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Ejemplo de problema bien


condicionado

Un granjero tiene cincuenta animales entre


conejos y gansos. Si la cantidad de patas de
los animales es ciento cuarenta, Cuantos
conejos y cuantos gansos tiene el granjero?

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Ejemplos de problemas mal


condicionados
De las siguientes imágenes, cuál
es la más llamativa?

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Módulo 1
Introducción

Ejemplos de problemas
indecidible

¿Existe en la expansión decimal de Pi una secuencia de


tamaño n para cualquier número natural n?

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

3. Algoritmo

Secuencia bien definida y finita de tareas


bien definidas, cada una de las cuales se
puede realizar con una cantidad de
recursos finitos.

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

Características de un Algoritmo
De finitud o
Precisión Finitud
Determinismo

Hay un orden Todas las veces que se El algoritmo


preciso en el realicen las tareas o debe terminar
cual deben pasos de un algoritmo, en algún mo-
ejecutarse las con las mismas condi- mento y debe
tareas que ciones iniciales, se de- usar una can-
conforman el ben obtener resultados tidad finita de
algoritmo. idénticos. recursos.
Facultad Ciencias Básicas 2. Problemas
Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Estructura de un Algoritmo

Datos Instrucciones Estructuras de


control
Para almacenar Las acciones o Las que determinan
información: da- procesos que el el orden en que se
tos de entrada, algoritmo realiza ejecutarán las ins-
de salida o inter- sobre los datos. trucciones del algo-
medios. ritmo.

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Ejemplo de algoritmo

Un estudiante se encuentra en su casa


(durmiendo) y debe ir a la universidad (a tomar
la clase de programación!!),
¿Que debe hacer el estudiante?

Facultad Ciencias Básicas 2. Problemas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Ejemplo de algoritmo
1. Dormir hasta que suene el
despertador (o lo llame la mamá).
2. Mirar la hora.
3. Hay tiempo suficiente?
3.1. Si, entonces
3.1.1. Bañarse.
3.1.2. Vestirse.
3.1.3. Desayunar.
3.2. No, entonces
3.2.1. Vestirse.
Facultad Ciencias Básicas 2. Problemas
Departamento de Matemáticas
Módulo 1
Introducción

Ejemplo de algoritmo
4. Lavarse la boca.
5. Despedirse de la mamá y el papá.
6. Hay tiempo suficiente?
6.1. Si, entonces
6.1.1. Caminar al paradero.
6.2. No, entonces
6.2.1. Correr al paradero.
7. Hasta que pase un bus para la universidad
hacer:
7.1. Esperar el bus
7.2. Ver a las demás personas que
esperan un bus.
Facultad Ciencias Básicas 3. Algoritmos
Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Ejemplo de algoritmo
8. Tomar el bus.
9. Mientras que no llegue a la universidad
hacer:
9.1. Seguir en el bus.
9.2. Pelear mentalmente con el conductor.
10. Timbrar.
11. Bajarse.
12. Entrar a la universidad.
13. Caminar hasta llegar al salón donde se
dicta su curso de programación.
14. Ingresar al salón.
Facultad Ciencias Básicas 3. Algoritmos
Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Representación de
Algoritmos
Las representaciones más conocidas
son:

Diagramas de flujo.

Pseudo-código.

Facultad Ciencias Básicas 3. Algoritmos


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Diagramas de Flujo
Esquema de representación gráfico de
algoritmos.

Usa elementos gráficos como rectángulos y


rombos.

Se pueden usar operaciones matemáticas.

Facultad Ciencias Básicas 3. Algoritmos


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Pseudo Código
Esquema de representación de algoritmos que
usa un subconjunto del lenguaje natural del
diseñador de algoritmos.

Elimina posibles ambigüedades empleando una


notación que aunque libre es más restringida
que la del lenguaje natural.

3. Algoritmos
Facultad Ciencias Básicas
Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Pseudo Código
*Construir un algoritmo que determine el sino
mayor de tres números enteros.
si B>C
leer A, B, C Mayor  B
si A>B
sino
si A>C
Mayor  C
Mayor  A
sino fin_si
Mayor  C fin_si
fin_si escribir Mayor
Facultad Ciencias Básicas 3. Algoritmos
Departamento de Matemáticas
Módulo 1
Introducción

4. Solución de Problemas
Algorítmicos

Problema

Metodología

Programa

Facultad Ciencias Básicas UTP


Departamento de Matemáticas 2018
Programación de Computadores
Modulo 1. Introducción

Metodología de
Programación
 Análisis del problema.
 Especificación del problema.
 Diseño del algoritmo.
 Prueba del algoritmo y refinamiento.
 Codificación.
 Prueba y verificación.
Facultad Ciencias Básicas 4. Solución de Problemas
Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Análisis del Problema


Entender de manera clara el problema que se
esta resolviendo.

Esta fase de la metodología concuerda con el


proceso de identificación de objetos conocidos,
objetos desconocidos y condiciones usado en la
sección de problemas.

Facultad Ciencias Básicas 4. Solución de Problemas


Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Especificación del Problema


Descripción clara y precisa de:

Las entradas del problema.


Las salidas del problema.
Las condiciones, es decir la dependencia que
mantendrán las salidas obtenidas con las
entradas recibidas.

Facultad Ciencias Básicas 4. Solución de Problemas


Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Ejemplo de Especificación
Entradas: La cantidad total de animales (50),
cantidad de patas totales (140).

Salidas: La cantidad de conejos y la cantidad de


gansos.

Condiciones: La suma de conejos y gansos es


igual a cincuenta. La suma de las patas de los
conejos (cuatro por cada uno) y de los gansos
(dos por cada uno) es igual a ciento cuarenta.
Facultad Ciencias Básicas 4. Solución de Problemas
Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Ejemplo de Especificación
Problema:
Construir un algoritmo que determine el mayor de tres
números enteros.

Especificación:

Entradas: A,B,C (números de entrada) de tipo entero.

Salidas: Mayor de tipo entero.

Condiciones: Mayor debe ser el valor máximo


de A, B y C.
Facultad Ciencias Básicas 4. Solución de Problemas
Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Diseño del algoritmo


Es la fase en la que se construye el algoritmo
que permitirá encontrar la solución al
problema.

La forma adecuada de realizar este proceso


es subdividirlo.

Facultad Ciencias Básicas 4. Solución de Problemas


Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Prueba del Algoritmo y


Refinamiento

Proceso de seguimiento del algoritmo para


verificar que cumple con la especificación. Si
no se cumple con la especificación se va
refinando hasta lograr el objetivo.

Facultad Ciencias Básicas 4. Solución de Problemas


Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Codificación

Proceso en el cual se escribe el algoritmo en


un lenguaje de programación, utilizando el
editor de la herramienta.

Facultad Ciencias Básicas 4. Solución de Problemas


Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

Prueba y
Verificación

Proceso en el cual se corrigen los errores de


sintaxis y de lógica del programa, hasta lograr
que el programa resuelva el problema.

Facultad Ciencias Básicas 4. Solución de Problemas


Departamento de Matemáticas Algoritmicos
Programación de Computadores
Modulo 1. Introducción

METODOLOGIA PARA SOLUCIONAR UN


PROBLEMA

OBJETIVO: Tener claro el objetivo

a-nos permite saber hacia donde vamos


b-nos permite saber hasta donde debemos llegar

ALGORITMO: Conjunto de pasos secuenciales y


ordenados que permiten lograr un objetivo.

PRUEBA DE ESCRITORIO: Validar si con este se logra el


objetivo propuesto

Facultad Ciencias Básicas


Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Ej. Desarrollar un algoritmo que nos permita realizar una llamada


telefónica
Algoritmo llamada_telefónica
Inicio
1.Saber a quien voy a llamar
2.Conocer el número del teléfono
3.Levantar la bocina
4.Marcar el número
5.Esperar que conteste
Contestan?
Si – hablar
No _
ir al paso 4
Fin
Facultad Ciencias Básicas
Departamento de Matemáticas
Programación de Computadores
Modulo 1. Introducción

Algoritmos Informales: Aquellos que no son fácilmente


implementados en un computador

Algoritmos Computacionales: Aquellos que deben ser


preferiblemente implementados en computador

Facultad Ciencias Básicas


Departamento de Matemáticas

Das könnte Ihnen auch gefallen