Calculadora de GPA
Informe cada disciplina com a nota em letra e os créditos: um A e um B de 3 créditos cada somam 21 pontos de qualidade sobre 6 créditos, um GPA de 3,5. A média é ponderada pelos créditos, não uma média simples das notas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Calcula uma média de pontos por nota (GPA) na escala padrão 4.0 a partir de uma lista de disciplinas, cada uma com uma nota em letra e horas-crédito, devolvendo o GPA ponderado, o total de créditos, os pontos de qualidade e a contagem de disciplinas.
A tabela de notas 4.0 e a ponderação por crédito
A calculadora converte cada nota em letra em pontos de qualidade na escala padrão 4.0 usando uma tabela fixa: A é 4.0, A- é 3.7, B+ é 3.3, B é 3.0, B- é 2.7, C+ é 2.3, C é 2.0, C- é 1.7, D+ é 1.3, D é 1.0, e F é 0.
Cada entrada no array courses carrega um grade e um valor credits; o motor multiplica os pontos de cada nota por seus créditos para obter pontos de qualidade ponderados, soma-os, soma os créditos e divide para produzir um GPA ponderado por crédito — não uma média ingênua dos pontos de nota.
Arredondamento, casas decimais e créditos fracionários
A função auxiliar calcula sign * Math.floor(abs(x) * 10^decimals + 0.5) / 10^decimals, então um valor exatamente no ponto médio sempre arredonda para longe de zero. O parâmetro decimals controla a precisão, assume 2 por padrão e deve ser um inteiro de 0 a 3 — passe 0 para um GPA em número inteiro ou 3 para uma granularidade mais fina ao comparar registros próximos.
Validação, limites e erros tipados
A validação roda antes de qualquer aritmética. courses deve ser um array contendo entre 1 e 50 itens, então uma lista vazia ou um lote grande demais ambos falham rapidamente e não podem travar a aba.
Cada entrada deve ser um objeto; uma grade fora da tabela de onze valores lança 'grade inválido' (não há arredondamento de letras desconhecidas para o balde mais próximo), e um valor credits que esteja ausente, não numérico, não finito ou zero-ou-negativo lança 'credits inválido'. decimals fora de 0-3 lança 'decimals fuera de rango', e uma entrada de nível superior não objeto é rejeitada de imediato.
Casos de uso
Painéis do estudante
Recalcule um GPA do período ou cumulativo no instante em que uma nota ou valor de crédito muda.
Verificações de bolsa de estudos
Verifique se um GPA ponderado supera um limiar antes de aprovar uma solicitação.
Perguntas frequentes
Qual escala de notas é usada?
Uma tabela fixa 4.0 de A (4.0) até F (0), incluindo os passos de mais/menos.
O GPA é ponderado por crédito?
Sim. Os pontos de cada nota são multiplicados por seus créditos, somados e depois divididos pelo total de créditos.
As disciplinas podem ter créditos fracionários?
Sim. credits pode ser qualquer número finito positivo, como 1.5 para uma disciplina de meio crédito.
O que são pontos de qualidade?
São os pontos de cada nota multiplicados pelos créditos da disciplina, somados. Dividindo esse total pelos créditos totais sai o GPA, e é por isso que uma disciplina com muitos créditos pesa mais na média.
O que acontece se eu digitar uma nota fora da escala?
Ela é recusada em vez de ser arredondada para a letra mais próxima. Só valem as onze notas da tabela de 4.0, de A a F, em maiúsculas ou minúsculas, então a- e A- contam igual.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/gpa-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"courses":[{"grade":"A","credits":3}]}'const res = await fetch("https://api.kit.forhosting.com/dev/gpa-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"courses": [
{
"grade": "A",
"credits": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/gpa-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"courses": [
{
"grade": "A",
"credits": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/gpa-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"courses":[{"grade":"A","credits":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"courses":[{"grade":"A","credits":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/gpa-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"courses": [
{
"grade": "A",
"credits": 3
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gpa_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
A tabela de notas 4.0 e a ponderação por crédito
A resposta devolve gpa, total_credits (a soma de todos os créditos), quality_points (o total somado de pontos de nota) e courses_count. Com um A em 3 créditos e um B em 3 créditos, quality_points é 21, total_credits é 6 e gpa é 3.5.
Arredondamento, casas decimais e créditos fracionários
As notas são lidas sem distinção de maiúsculas porque a entrada é convertida para maiúsculas antes da consulta, então 'a-' e 'A-' são equivalentes. credits pode ser qualquer número finito positivo, incluindo pesos fracionários como 1.5, permitindo modelar laboratórios e seminários de meio crédito. total_credits é devolvido como a soma exata dos créditos, enquanto gpa e quality_points são ambos arredondados às casas decimais escolhidas.
Casos de integração
Automação da secretaria acadêmica
Processe listas de notas em lote pela API para publicar GPAs oficiais de forma determinística.
Perguntas técnicas
Quantas disciplinas posso enviar?
Entre 1 e 50 por requisição; fora dessa faixa devolve invalid_input.
É gratuito?
Sim, no widget do navegador; a API roda a mesma lógica a partir de US$ 0,002 por chamada.