Skip to content

Instantly share code, notes, and snippets.

@FranciscoPinto
Created February 27, 2012 22:27
Show Gist options
  • Save FranciscoPinto/1927563 to your computer and use it in GitHub Desktop.
Save FranciscoPinto/1927563 to your computer and use it in GitHub Desktop.
Calculador de média
Álgebra;5;17
Análise Matemática;6;14
Arquitectura e Organização de Computadores;6;17
Fundamentos da Programação;6;19
Matemática Discreta;5;17
Projecto FEUP;2;17
Complementos de Matemática;6;13
Física I;6;17
Métodos Estatísticos;5;14
Microprocessadores e Computadores Pessoais;6;17
Programação;7;19
Algoritmos e Estruturas de Dados;7;17
Física II;6;13
Laboratório de Computadores;6;18
Métodos Numéricos;5;16
Teoria da Computação;6;14
Bases de Dados;6;15
Computação Gráfica;6;18
Concepção e Análise de Algoritmos;6;18
Laboratório de Programação Orientada por Objectos;6;18
Sistemas Operativos;6;17
Engenharia de Software;6;16
Laboratório de Aplicações com Interface Gráfica;7;19
Linguagens e Tecnologias Web;6;16
Programação em Lógica;5;17
Redes de Computadores;6;16
require 'csv'
results = []
ects = 0
grade_acum = 0
CSV.parse(File.open(ARGV[0] || "cadeiras.csv", "rb").read, :col_sep => ';') do |row|
ects_uc = Integer(row[1])
grade_uc = Integer(row[2])
next if grade_uc < 10
ects += ects_uc
grade_acum += grade_uc*ects_uc
results << row
end
puts "# cadeiras concluidas: " + results.size.to_s
puts "ECTS obtidos: " + ects.to_s
puts "Media: " + (Float(grade_acum)/ects).to_s[0..4]
#puts results
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment