cif 2452 fundamentos de programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/cif 2452/seccion 1.pdf ·...

31
CIF 2452 Fundamentos de Programación

Upload: others

Post on 24-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

CIF 2452Fundamentos de Programación

Page 2: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

1.- Algoritmos y Programas

El objetivo de esta sección consistirá en explicar los conceptos de algoritmo, programa y lenguaje de programación. Así como explorar otros temas concurrentes.

Page 3: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

• Sistemas de procesamiento de información.

• Concepto de Algoritmo.

• Lenguaje de programación.

• Datos, tipos de datos y operaciones primitivas.

• Constantes y variables.

• Expresiones.

• Funciones intrínsecas.

• Asignación.

• Entrada y salida de información.

Temáticas

Page 4: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Un sistema de esta clase se define como un conjunto de componentes interconectados entre sí que transforman datos en información organizada, significativa y útil.

1.1- Sistemas de Procesamiento de Información

Page 5: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Esquemáticamente

Datos

Procesador

Información

Page 6: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Una primera definición

Un algoritmo consiste en el grupo de instrucciones que definen la secuencia de operaciones a realizar para resolver un sistema específico o clase de problema.

Page 7: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Conceptos importantes

• Hardware: grupo de componentes físicos de una computadora.

• Software: conjunto de programas que controlan el funcionamiento de una computadora

Page 8: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Concepto de Algoritmo

La metodología de la programación es aquella que es necesaria para resolver problemas mediante programas, su eje es el algoritmo.

Problema

Diseño

del

algoritmo

Programa

Page 9: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Pasos para la solución de un problema

• El diseño del algoritmo describe el análisis del problema y desarrollo del algoritmo.

• Expresar el algoritmo como un programa en un lenguaje de programación.

• Ejecutar y validar el programa por la computadora.

Page 10: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Características de los algoritmos

• Preciso, indicará el orden de cada paso.

• Definido, el mismo resultado se obtendrá al ejecutar el algoritmo “n” ocasiones.

• Finito, deberá terminar en algún momento.

Page 11: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Ejemplo Algoritmo que soluciona la entrega de un pedido a un cliente.

1. Inicio.

2. Leer el pedido.

3. Examinar el historial crediticio del cliente

4. Si el cliente es solvente, entregar el pedido. En caso contrario, rechazarlo.

5. Fin

Page 12: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Ejemplo Algoritmo que suma los números entre el 3 y el 30, en incrementos de 3.

1. Inicio.

2. Hacer SUMA igual cero.

3. Establecer NUMERO igual a 3.

4. Sumar NUMERO a SUMA.

5. Incrementar NUMERO en 3

6. Si NUMERO es menor o igual que 30 ir a 4; si no imprimir a SUMA.

7. Fin

Page 13: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Ejemplo Algoritmo que determina el mayor de tres números enteros.

1. Inicio

2. Leer los números y guardarlos en NUM1, NUM2 y NUM3 respectivamente

3. Comparar NUM1 y NUM2, el número mayor se guarda en AUX.

4. Comparar AUX y NUM3, imprimir el número mayor.

5. Fin.

Page 14: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

1. Diseñe un algoritmo para determinar si un número es primo o no.

2. Diseñe un algoritmo que sume los números entre el 2 y el 20, en incrementos de 2.

3. Indique las modificaciones necesarias para el algoritmo 2 de tal manera que sume los números entre el 5 y el 50, en incrementos de 5.

Ejercicios

Page 15: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

1.2 Los lenguajes de Programación

• Cuando el procesador de datos es una computadora entonces el algoritmo de solución se expresa en un programa.

• Por tanto, un programa es escrito en un lenguaje de programación.

• Luego, la programación consiste en expresar las operaciones en forma de programa de un algoritmo.

Page 16: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Tipos de lenguajes

• Máquina; escritos en código binario.

• Bajo nivel (ensamblador); escrito en nemotécnicos.

• Alto nivel; diseñados para ser entendidos por el ser humano.

Page 17: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Instrucciones básicas

• Entrada/Salida; transferencia de información entre dispositivos periféricos y memoria central.

• Aritmético/Lógicas; ejecutan operaciones de éstos tipos.

• Selectivas; seleccionan tareas en función de los resultados

• Repetitivas; permiten la iteración de secuencias de instrucciones un número dado de veces

Page 18: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Traductores del Lenguaje

A) Intérpretes; Toma un programa fuente

lo traduce e inmediatamente lo ejecuta.

Programa fuente IntérpreteTraducción

y ejecución

en línea

Page 19: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

B) Compiladores; traduce un programa

fuente a código objeto.

Programa

fuente

Programa

Objeto

Programa

ejecutable

Compilador

(Compiler)

Montador

(Linker)

Traductores del Lenguaje

Page 20: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

1.3 Datos, Tipos de Datos y Operaciones Primitivas• Un dato es la expresión general que describe

los objetos con los cuales opera la computadora

• Los tipos son: simples (no estructurados) y compuestos (estructurados). Aquellos se subdividen en:a) Numéricos (integer, real)

b) Lógicos (booleans)

c) Carácter (char, string)

Page 21: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Datos primitivos

Datos

CarácterNumérico Lógico

Entero Real

Page 22: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

1.4. Constantes y Variables

• Constantes: valores que durante la ejecución de un programa no cambian su valor.

• Variables: valores que cambiarán durante la ejecución del programa

Page 23: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

1.5. Expresiones

• Se definen como una combinación de constantes, variables, símbolos de operación, paréntesis, y nombres de funciones especiales.

• Una expresión consta de operandos y operadores.

• Las expresiones se clasifican en aritméticas, lógicas y carácter.

Page 24: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Expresiones aritméticas

EnteroEnteromóduloMod

EnteroEnteroDivisión enteraDiv

RealReal División/

Entero o realEntero o realMultiplicación*

Entero o realEntero o realResta-

Entero o realEntero o realSuma+

Entero o realEntero o realExponenciación**

Tipo resultadoTipo de operandosSignificadoOperador

Page 25: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Reglas de prioridad

( )Parentesis

+, -Más y menos

Div, modDiv y mod

*, /Multi, divide

**Exponencial

GráfoOperador

Page 26: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Operadores de relación

Menor<

Distinto<>,!=

Mayor o igual>=

Menor o igual<=

Igual=

Mayor>

SignificadoOperador

Expresión 2Operador de relación

Expresión 1

Page 27: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Operadores lógicos

disyunciónP o QOr

ConjunciónP y QAnd

NegaciónNot pNot

SignificadoExpresión lógicaOperador lógico

Page 28: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Funciones Intrínsecas

TruncamientoTrunc(x)

Raíz cuadradaSqrt(x)

CuadradoSqr(x)

SenoSin(x)

RedondeoRound(x)

Log decimalLog10(x)

Log neperianoLn(x)

ExponencialExp(x)

CosenoCos(x)

Tangente inversaArctan(x)

AbsolutoAbs(x)

DescripciónFunción

Page 29: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Operación de Asignación

Es la forma de darle valores tanto a

variables como constantes, se representa con el símbolo = o

Page 30: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Tipos de Asignación

a) Aritmética

b) Lógica

c) Cadena de caracteres

Page 31: CIF 2452 Fundamentos de Programaciónzeus.inf.ucv.cl/~jrubio/docs/2010-2/CIF 2452/Seccion 1.pdf · Algoritmos y Programas El objetivo de esta sección consistiráen explicar los conceptos

Entrada y salida de información

• La operación de lectura READ/LEER permite el ingreso de los datos necesarios para los cálculos computacionales.

• La operación de escritura WRITE/ESCRIBIR imprime la información procesada por el programa y su respectivo algoritmo.