Gerando um Boletim
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 38 de 68.
Desafio
FácilVocê receberá uma entrada: um objeto JSON representando o boletim escolar dos alunos. O boletim usa os nomes dos alunos como chaves, sendo que cada aluno possui um "id" e um array de "grades" contendo suas notas de testes.
Leia a entrada, converta a string JSON em um array de boletim e gere um boletim formatado para todos os alunos. Para cada aluno, exiba seu nome, ID do aluno, todas as notas individuais e sua nota média arredondada para 2 casas decimais.
Formate a saída exatamente da seguinte forma:
- Imprima
===== REPORT CARD =====como o cabeçalho - Para cada aluno, imprima:
Student: [name]ID: [student_id]Grades: [grade1], [grade2], [grade3], ...(todas as notas separadas por vírgulas e espaços)Average: [average](arredondado para 2 casas decimais)- Uma linha em branco após cada aluno (exceto o último)
Formato de entrada: Uma linha contendo um objeto JSON representando o boletim (exemplo: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Saída esperada: Um boletim formatado mostrando as informações de cada aluno com seu nome, ID, todas as notas e a média calculada
Experimente você mesmo
<?php
// Lê a entrada JSON
$input = trim(fgets(STDIN));
// Converte JSON para array
$gradebook = (array)json_decode($input, true);
// Imprime o cabeçalho
echo "===== REPORT CARD =====\n";
// TODO: Escreva seu código abaixo
// Percorra cada aluno no boletim (gradebook)
// Para cada aluno:
// - Imprima o nome dele
// - Imprima o ID dele
// - Imprima todas as suas notas
// - Calcule e imprima a média (arredondada para 2 casas decimais)
// - Adicione uma linha em branco entre os alunos (exceto após o último)
?>Todas as lições de Lógica & Fluxo
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard