Sie sind auf Seite 1von 26

Heurstica de resolucin de

problemas
Taller de programacin bsica

Heurstica

Conceptos previos

Variables

Precondicin y postcondicin

Divisin entera

Programacin iterativa

Terminadores de ciclos

Problema:
Cuntos dgitos tiene un nmero n positivo?

Pasos de la heurstica

Determinar entradas y salidas

Identificar Pre y postcondiciones

Verificar las restricciones

Escribir el algoritmo

Ejemplo de heurstica usando el ejemplo


Entradas:
Nmero N
Salidas:
Cantidad de dgitos (x)
Pre y post condiciones:
No hay para este problema
Restricciones:
El nmero debe ser un entero positivo

Pseudocdigo

Representacin no formal de un algoritmo

Independiente del lenguaje de programacin

Responde a los elementos identificados en la heurstica

Pseudocdigo usando el ejemplo


Comienza
x <- 0
Mientras n > 0
Comienza
n <- n div 10
x < - x + 1
Termina
Termina

Corridas ejemplo

Ejecucin del algoritmo paso a paso

Toma en cuenta el valor de las variables en cada paso

Permite identificar qu resultado produce el algoritmo


planteado

Corrida ejemplo el Pseudocdigo anterior


El nmero es 456

456

45

Ejercicio
Elevar un nmero a una potencia
x^0 = 1
X^n = x * (x^(n-1)) con n>0
Ejemplo
si x = 3 y n = 4
Entonces
3^4 = 3*3*3*3 = 81

Notacin necesaria para resolver el ejercicio


Expresin condicional
Si (sucede una condicin) entonces (hago una operacin)

Estructura iterativa (mientras suceda una condicin se


debe ejecutar una instruccin)

Heurstica
Entradas: X y N
Salidas: r (resultado de elevar X a la N)
Pre y postcondiciones: no hay
Restricciones: X y N deben ser nmeros enteros positivos

Pseudocdigo
Comienza
r <- 1
Mientras n >= 0
Comienza
Si (n == 0) entonces
devolver r
r <- r * x
n <- n -1
Termina
Termina

Python

Lenguaje de programacin python

Se puede usar mediante repl.it online

Gratuito

Posicin 5 del ndice TIOBE

Lenguaje de alto nivel

ndice TIOBE

Comparacin de programa bsico


Ensamblador

Python

dosseg
.model small
.stack 100h

print(Hola mundo!)

.data
hello_message db 'Hola mundo!','$'

.code
main proc
mov ax,@data
mov ds,ax

mov ah,9
mov dx,offset hello_message
int 21h

mov ax,4C00h
int 21h
main endp
end main

Conceptos previos
Nmero entero es -20, 0 , 2
Cadena de caracteres es taller o estudiante
Funciones encierran un conjunto de instrucciones instrucciones
Parmetros son valores que reciben las funciones y sirven como entrada para ejecutar
instrucciones
Listas pueden ser conjuntos de nmeros enteros, cadenas de caracteres y otras listas
Operadores lgicos
A > 3 or A < 20 devuelve verdadero si alguna condicin se cumple
A > 3 and A < 20 devuelve verdadero si ambas condiciones se
cumplen

Instrucciones bsicas en python


Instruccin

Resultado

Instruccin

Resultado

Print(Hola mundo!)

imprime Hola mundo! en

7 // 2

Aplica divisin, es decir da


un resultado de 3

while(contador > 0):

ejecuta un conjunto de instrucciones


mientras contador sea mayor a 0

7%2

Da como resultado el
residuo de una divisin, en
este caso es 1

len(fer)

Ambas instrucciones
brindan el largo de sus
parmetros, en este caso 3
y 2 respectivamente

if(contador == 0):
print(termin)

Si contador es igual a 0 imprime termin


Si contador es distinto de 0 imprime
continua

else:

len([colegio, taller])

print(continua)

lista = [1,2,3]

define una lista de nmeros enteros

print( lista[0] )

imprime el primer elemento de la lista

def nombre_funcion():

Define una funcin llamada


nombre_funcion que
recibe 0 parmetros

Ejercicio 1
Escriba una funcin que determine el nmero mayor entre dos
nmeros positivos o negativos

Pista: Haga uso de instrucciones condicionales

Ejercicio 2
Escriba una funcin que le solicite al usuario informacin y
determine si la informacin ingresa es una vocal

Pista: Use instrucciones condicionales y el operador lgico or


Para solicitar datos al usuario utilice entrada = input(digite una letra: )

Tome en cuenta que Python toma las mayusculas y minusculas como


letras distintas

Ejercicio 3
Escriba una funcin que sume todos los elementos de la
siguiente lista
nmeros = [1,2,3,4,5]
El resultado debe ser 15

Pista: utilice una instruccin while(...):

Ejercicio 4
Escriba una funcin que imprima solo los nombres personas de
la siguiente lista
nombres = [Juan, computadora, Samantha, Andrea]

Pista: Utilice una instruccin while(...)

Ejercicio 5
Escriba una funcin que eleve una nmero X a una potencia N

Pista: Puede hacer uso del pseudocdigo visto al inicio de


la clase de hoy

Ejercicio 6
Escriba una funcin es_bisiesto(ao) que determine si un ao
determinado es un ao bisiesto.Un ao bisiesto es divisible
por 4, pero no por 100. Tambin es divisible por 400

Pista: No es necesario una instruccin while pero si son


necesarias instrucciones condicionales y el uso del operador
%

Das könnte Ihnen auch gefallen