{"id":5144,"date":"2017-09-20T08:13:00","date_gmt":"2017-09-20T13:13:00","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=5144"},"modified":"2026-04-05T18:34:43","modified_gmt":"2026-04-05T23:34:43","slug":"s3eva2017ti_t1-archivos-de-notas-por-semestre","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva20\/s3eva2017ti_t1-archivos-de-notas-por-semestre\/","title":{"rendered":"s3Eva2017TI_T1 Archivos de notas por semestre"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva20\/3eva2017ti_t1-archivos-de-notas-por-semestre\/\" data-type=\"post\" data-id=\"4353\">3Eva2017TI_T1 Archivos de notas por semestre<\/a><\/p>\n\n\n\n<p>Propuesta de soluci\u00f3n en <strong>Python<\/strong>:<\/p>\n\n\n\n<p>Para la prueba del algoritmo, se requiere los archivos:<\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/open?id=0B-o6TQEqtOmlRm1aZFpPVWdaSDg\"><em><strong>notas-2015-I.csv<\/strong><\/em><\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/open?id=0B-o6TQEqtOmlV1V1dXcyR3o0WDA\"><em><strong>notas-2013-II.csv<\/strong><\/em><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001-Fundamentos de Programaci\u00f3n - FIEC-ESPOL\n# 3Eva_IT2017_T1 Archivos de notas por semestre\n# Tarea: una vez comprendido los pasos, \n#        simplificar de ser posible\nimport numpy as np\n\ndef academico(narchivos):\n    notas = {}\n    n = len(narchivos)\n    for i in range(0,n,1):\n        archivo = open(narchivos&#x5B;i],'r')\n\n        # semestre en el nombre\n        nombre = narchivos&#x5B;i]\n        partes = nombre.split('.')\n        semestre = partes&#x5B;0]&#x5B;6:]\n\n        # Datos del archivo\n        linea = archivo.readline()\n        while not(linea==''):\n            linea   = linea.strip('\\n')\n            partes  = linea.split(',')\n            quien   = int(partes&#x5B;0])\n            materia = partes&#x5B;1]\n            nota1   = int(partes&#x5B;2])\n            nota2   = int(partes&#x5B;3])\n            nota3   = int(partes&#x5B;4])\n            estado  = partes&#x5B;5]\n            califica = (materia,nota1,nota2,\n                        nota3,estado)\n\n            # Revisar estudiante creado\n            estudiantes = notas.keys()\n            if not(quien in estudiantes):\n                notas&#x5B;quien] = {semestre:&#x5B;califica]}\n            else:\n                cuando = notas&#x5B;quien].keys()\n                if (semestre in cuando):\n                    notas&#x5B;quien]&#x5B;semestre].append(califica)\n                else:\n                    notas&#x5B;quien]&#x5B;semestre] = &#x5B;califica]\n\n            linea = archivo.readline()\n        archivo.close()\n    return(notas)\n\ndef semestres(notas,matricula):\n    estudiantes = notas.keys()\n    cuando = ()\n    if (matricula in estudiantes):\n        cuando = notas&#x5B;matricula].keys()\n    cuando = tuple(cuando)\n    return(cuando)\n\ndef nota_academico(notas,matricula,materia):\n    califica = &#x5B;]\n    estudiantes = notas.keys()\n    # Desarrollar tarea\n        \n    return(nota_final)\n\ndef mas_aprobados(notas,semestre):\n    # Separa dictadas y aprobadas en el semestre\n    dictadas = &#x5B;]\n    estudiantes = notas.keys()\n    for quien in estudiantes:\n        cuando = notas&#x5B;quien].keys()\n        if (semestre in cuando):\n            registradas = notas&#x5B;quien]&#x5B;semestre]\n            n = len(registradas)\n            for i in range(0,n,1):\n                if (registradas&#x5B;i]&#x5B;4] == 'AP'):\n                    dictadas.append(registradas&#x5B;i]&#x5B;0])\n\n    # Cuenta las repetidas\n    m = len(dictadas)\n    lista = list(set(dictadas))\n    conteo = {}\n    for j in range(0,m,1):\n        una = dictadas&#x5B;j]\n        if (una in conteo):\n            conteo&#x5B;una] = conteo&#x5B;una]+1\n        else:\n            conteo&#x5B;una] = 1\n\n    # busca la mas aprobada\n    mejor = ''\n    if (len(conteo)&gt;0):\n        llaves  = list(conteo.keys())\n        valores = np.array(conteo.values())\n        mejor   = llaves&#x5B;np.argmax(valores)]\n    return(mejor)\n\n# PROGRAMA\n# INGRESO \/siguiendo ejemplo de examen\nnarchivos = &#x5B;'notas-2015-I.csv',\n           'notas-2013-II.csv']\nmatricula = 201321454\nmateria   = 'Fundamentos de Programaci\u00f3n'\nsemestre  = '2015-I'\n\n# PROCEDIMIENTO\nnotas = academico(narchivos)\nsemestres  = semestres(notas, matricula)\nnota_final = nota_academico(notas, matricula, materia)\nalto_AP = mas_aprobados(notas, semestre)\n\n# SALIDA\nprint('las notas son: ')\nprint(notas)\nprint('--- para '+str(matricula) + ': ')\nprint('semestres que estudi\u00f3: ',semestres)\nprint('notas final para '+materia+': ',nota_final)\nprint('--- En el semestre '+semestre + ': ' )\nprint('la materia con alto indice de aprobaci\u00f3n es: ',\n      alto_AP)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2017TI_T1 Archivos de notas por semestre Propuesta de soluci\u00f3n en Python: Para la prueba del algoritmo, se requiere los archivos: notas-2015-I.csv notas-2013-II.csv Algoritmo en Python<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[58,157],"class_list":["post-5144","post","type-post","status-publish","format-standard","hentry","category-fp-s3eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=5144"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5144\/revisions"}],"predecessor-version":[{"id":23763,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5144\/revisions\/23763"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}