Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Guía de Programación I- Ordenamiento- Python, Ejercicios de Programación para Ingenierios

Ejercicios de Ordenamiento utilizando Python

Tipo: Ejercicios

2023/2024

Subido el 12/03/2026

sofiadelamontana
sofiadelamontana 🇵🇪

3 documentos

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Guia de Prog 1 - Teoría Sección 3. Ordenamiento - 14 de noviembre 2023
Programación 1
Teoría
Ejemplo 1:
Ordena los elementos de una lista de menor a mayor utilizando el metodo de
ordenamiento de la Bubble sort
from random import randint
def bubble_sort(lista):
for tope in range(len(lista)-1,0,-1):
for i in range(tope):
if lista[i] > lista[i+1]:
aux = lista[i+1]
lista[i+1] = lista[i]
lista[i] = aux
def main():
n = int(input("Numero de elementos : "))
lista = [ randint(1,50) for x in range(n)]
print(lista)
bubble_sort(lista)
print(lista)
main()
Ejemplo 2:
Ahora ordenamos la lista pero de MAYOR A MENOR
from random import randint
def bubble_sort(lista):
for tope in range(len(lista)-1,0,-1):
for i in range(tope):
if lista[i] < lista[i+1]:
aux = lista[i+1]
lista[i+1] = lista[i]
lista[i] = aux
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Guía de Programación I- Ordenamiento- Python y más Ejercicios en PDF de Programación para Ingenierios solo en Docsity!

Guia de Prog 1 - Teoría Sección 3. Ordenamiento - 14 de noviembre 2023

Programación 1 Teoría

Ejemplo 1: Ordena los elementos de una lista de menor a mayor utilizando el metodo de ordenamiento de la Bubble sort

from random import randint

def bubble_sort(lista): for tope in range(len(lista)-1,0,-1): for i in range(tope): if lista[i] > lista[i+1]: aux = lista[i+1] lista[i+1] = lista[i] lista[i] = aux

def main(): n = int(input("Numero de elementos : ")) lista = [ randint(1,50) for x in range(n)] print(lista) bubble_sort(lista) print(lista)

main()

Ejemplo 2:

Ahora ordenamos la lista pero de MAYOR A MENOR

from random import randint

def bubble_sort(lista): for tope in range(len(lista)-1,0,-1): for i in range(tope): if lista[i] < lista[i+1]: aux = lista[i+1] lista[i+1] = lista[i] lista[i] = aux

def main(): n = int(input("Numero de elementos : ")) lista = [ randint(1,50) for x in range(n)] print(lista) bubble_sort(lista) print(lista)

main()

Ejemplo 3: Ordena las palabras de una frase que se ingresa como dato. Para ordenar las palabras de la frase las coloca en una lista y ordena la lista de palabras

#----- Realice un programa que permita leer una frase e imprima las palabras #---- de la frase el orden alfabetico

def bubble_sort(lista): for tope in range(len(lista)-1, 0, -1): for i in range(tope): if lista[i] > lista[i+1] : temp = lista[i] lista[i] = lista[i+1] lista[i+1] = temp

def main(): frase = input("Frase: ") lista = frase.split() print(lista) bubble_sort(lista) print(lista)

main()

Merge sort

Merge sort ahora ordena de mayor a menor los datos de una lista de numeros

from random import randint

def merge(lista, left, right): i = j = k = 0 while i < len(left) and j < len(right): if left[i] > right[j]: lista[k] = left[i] i += 1 else: lista[k] = right[j] j += 1 k += 1

while i < len(left): lista[k] = left[i] i += 1 k += 1

while j < len(right): lista[k] = right[j] j += 1 k += 1

def merge_sort(lista): if len(lista) > 1 : mid = len(lista) // 2 left = lista[:mid] right = lista[mid:] merge_sort(left) merge_sort(right) merge(lista, left, right)

def main(): n = int(input("Numero de elementos : ")) lista = [ randint(1,50) for x in range(n)] print(lista) merge_sort(lista) print(lista)

main()

Ejemplo 4

Dado un archivo numeros.txt el cual contiene en cada fila un número entero, se solicita que elabore un programa que genere un archivo deletreando.txt el cual contiene los números de letrados del primero archivo.

#----numeros.txt

f_numeros = open("numeros.txt","r") resultado = [] for numero in f_numeros.readlines(): resultado.append(deletrear(numero)) f_numeros.close

print(resultado)

#----numeros.txt f_resultado = open("numeros.txt","w") for i in f_numeros.readlines(): f_resultado.write(i) f_resultado.close()

def deletrear(num): resultado = "" str = "" if num == "-": resultado = "NEGATIVO" for i in range(1,len(num)): str = += num_to_str(num[i]) else: resultado = "POSITIVO" for i in range(1,len(num)): str = += num_to_str(num[i])

resultado += str resultado += "\n"

def def_deletrear(num): resultado = ""

if num == "-": resultado = "NEGATIVO"

else: resultado = "POSITIVO"

resultado.append(divisores(numero)) f_numeros.close

print(resultado)

#----numeros.txt f_resultado = open("numeros.txt","w") for i in f_numeros.readlines(): f_resultado.write(i) f_resultado.close()

def divisores(num): resultado = []

num= int(num) for i in range(2, num//2 + 1): if num % 1 == 0: resultado.append(str(i))

r = " - ".join(resultado) r += "\n" return r

Ejemplo 6

Considere que se tiene un archivo de inventario de una empresa (codigo, nombre y cantidad) y un archivo de precios (codigo, precio y estado), se solicita que elabore un programa genere un archivo de texto reporte.txt donde se presenta la cantidad de bienes de la empresa según su estado (nuevo o usado).

def contar(producto,precio): producto = producto.split(",") precio = precio.split(",") print("producto: ", producto ) print("precio: ", precio )

a=[int(producto[2]), precio[2][0]] print(a) return a

def reportar(reporte): nuevos= 0 usados= 0

for i in reporte:

if i[1] == "n": nuevos += i[0] else: usados += i[0]

return [[nuevos,"nuevo"], [usados,"usado"]]

f_inventario = open("inventario.txt","r") f_precio = open("precios.txt","r")

f_inventario.readlines() f_precio.readlines()

reporte = [] precios = f_precio.readlines() for idx, producto in enumerate(f_inventario.readlines()): resultado.append(contar(producto, precios[idx]))

reporte = reportar(reporte) print(reporte)

f_reporte= open("reporte.txt","w") f_reporte.write("cantidad,estado\n")

for i in reporte: f_reporte.write(str(i[0] + "," + i[1] + "\n") f_reporte.close()