shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shell-script-pt] Estudos durante a quarentena


From: George Robinson
Subject: [shell-script-pt] Estudos durante a quarentena
Date: Wed, 3 Jun 2020 23:28:10 -0300

Caros,

Eu e meu enteado resolvemos estudar juntos durante a quarentena, e estamos evoluindo bem em nossos conceitos. Hoje, depois de finalizarmos estudos sobre lógica de programação e algoritmos, resolvemos nos envolver na montagem de um código para lermos notas lançadas de alunos de um arquivo. O código evoluiu como deveria, até que surgiu a questão. Não somos familiarizados ainda com o conceito de looping, do.. while, for, foreach.

Pra resumir a questão, vou direto ao ponto. Fizemos um script grande, porém cansativo que dá muita margem ao erro humano, então partimos para algo mais sofisticado e "automatizado", consultando um arquivo .csv e depois lançar as notas, tirar a média e retornando com as condições.

O código abaixo está parcialmente escrito, pois ele não retorna ainda os valores de que necessito para concluir o código:

-----------------------------------------------------------------------------------------------------
Arquivo  estudantes.csv

cod_aluno,nome_aluno
001,Carlos Eduardo Barbosa Oliveira
002,Maria Eduarda Barbosa Oliveira
-----------------------------------------------------------------------------------------------------
Arquivo materias.csv

cod_materia,nome_materia
01,Matemática
02,Português
03,Geografia
04,História
05,Física
-----------------------------------------------------------------------------------------------------  
Arquivo notas.csv

cod_materia,cod_aluno,1_bi,2_bi,3_bi,4_bi
01,001,6.7,5.0,3.2,6.5
02,001,8.5,7.0,5.6,7.10
03,001,7.4,5.0,4.2,4.5
04,001,5.0,6.5,1.75,3.5
05,001,4.2,5.0,2.25,2.25
01,002,7.6,7.5,6.9,6.5
02,002,5.8,6.8,6.5,7.10
03,002,4.8,8.5,7.2,4.5
04,002,6.0,5.9,5,7,5,3
05,002,2.4,8.5,5.2,4.5
-----------------------------------------------------------------------------------------------------    
notas.sh

$MATERIA = ".\Downloads\materias.csv"
$LERMATERIA = import-csv $MATERIA

$ESTUDANTES =  ".\Downloads\estudantes.csv"
$LERESTUDANTES = import-csv $ESTUDANTES

$NOTAS = ".\Downloads\notas.csv"
$LERNOTAS = import-csv $NOTAS

$REPROVA = 0

foreach ($i_materia in $LERMATERIA) {
        [int]$COD_MATERIA = $i_materia.cod_materia
        [string]$NOME_MATERIA = $i_materia.nome_materia

        #Write-Host "`r`n$COD_MATERIA $NOME_MATERIA"':'
       
        foreach ($i_estudante in $LERESTUDANTES) {
        [int]$COD_ALUNO = $i_estudante.cod_aluno
        [string]$NOME_ALUNO = $i_estudante.nome_aluno
       
        #Write-Host $COD_ALUNO $NOME_ALUNO

foreach ($i_notas in $LERNOTAS) {
        $COD_MATERIA = $i_notas.cod_materia
        $COD_ALUNO = $i_notas.cod_aluno
        $B1 = $i_notas.'1_bi'
        $B2 = $i_notas.'2_bi'
        $B3 = $i_notas.'3_bi'
        $B4 = $i_notas.'4_bi'

        $MEDIA = ([INT]$B1+[INT]$B2+[INT]$B3+[INT]$B4)/4

        Write-Host 'Nota '$NOME_MATERIA': ' $NOME_ALUNO' :' $MEDIA
          }
     }
}
-----------------------------------------------------------------------------------------------------  
SAIDA:

Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 5,25
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 7
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 5
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 4,25
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 3,25
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 7,25
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 6,5
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Matemática:  Carlos Eduardo Barbosa Oliveira : 4,75
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 5,25
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 7
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 5
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 4,25
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 3,25
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 7,25
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 6,5
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 6
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 6
Nota  Matemática:  Maria Eduarda Barbosa Oliveira : 4,75
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 5,25
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 7
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 5
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 4,25
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 3,25
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 7,25
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 6,5
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Português:  Carlos Eduardo Barbosa Oliveira : 4,75
Nota  Português:  Maria Eduarda Barbosa Oliveira : 5,25
Nota  Português:  Maria Eduarda Barbosa Oliveira : 7
Nota  Português:  Maria Eduarda Barbosa Oliveira : 5
Nota  Português:  Maria Eduarda Barbosa Oliveira : 4,25
Nota  Português:  Maria Eduarda Barbosa Oliveira : 3,25
Nota  Português:  Maria Eduarda Barbosa Oliveira : 7,25
Nota  Português:  Maria Eduarda Barbosa Oliveira : 6,5
Nota  Português:  Maria Eduarda Barbosa Oliveira : 6
Nota  Português:  Maria Eduarda Barbosa Oliveira : 6
Nota  Português:  Maria Eduarda Barbosa Oliveira : 4,75
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 5,25
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 7
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 5
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 4,25
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 3,25
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 7,25
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 6,5
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Geografia:  Carlos Eduardo Barbosa Oliveira : 4,75
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 5,25
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 7
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 5
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 4,25
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 3,25
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 7,25
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 6,5
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 6
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 6
Nota  Geografia:  Maria Eduarda Barbosa Oliveira : 4,75
Nota  História:  Carlos Eduardo Barbosa Oliveira : 5,25
Nota  História:  Carlos Eduardo Barbosa Oliveira : 7
Nota  História:  Carlos Eduardo Barbosa Oliveira : 5
Nota  História:  Carlos Eduardo Barbosa Oliveira : 4,25
Nota  História:  Carlos Eduardo Barbosa Oliveira : 3,25
Nota  História:  Carlos Eduardo Barbosa Oliveira : 7,25
Nota  História:  Carlos Eduardo Barbosa Oliveira : 6,5
Nota  História:  Carlos Eduardo Barbosa Oliveira : 6
Nota  História:  Carlos Eduardo Barbosa Oliveira : 6
Nota  História:  Carlos Eduardo Barbosa Oliveira : 4,75
Nota  História:  Maria Eduarda Barbosa Oliveira : 5,25
Nota  História:  Maria Eduarda Barbosa Oliveira : 7
Nota  História:  Maria Eduarda Barbosa Oliveira : 5
Nota  História:  Maria Eduarda Barbosa Oliveira : 4,25
Nota  História:  Maria Eduarda Barbosa Oliveira : 3,25
Nota  História:  Maria Eduarda Barbosa Oliveira : 7,25
Nota  História:  Maria Eduarda Barbosa Oliveira : 6,5
Nota  História:  Maria Eduarda Barbosa Oliveira : 6
Nota  História:  Maria Eduarda Barbosa Oliveira : 6
Nota  História:  Maria Eduarda Barbosa Oliveira : 4,75
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 5,25
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 7
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 5
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 4,25
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 3,25
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 7,25
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 6,5
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 6
Nota  Física:  Carlos Eduardo Barbosa Oliveira : 4,75
Nota  Física:  Maria Eduarda Barbosa Oliveira : 5,25
Nota  Física:  Maria Eduarda Barbosa Oliveira : 7
Nota  Física:  Maria Eduarda Barbosa Oliveira : 5
Nota  Física:  Maria Eduarda Barbosa Oliveira : 4,25
Nota  Física:  Maria Eduarda Barbosa Oliveira : 3,25
Nota  Física:  Maria Eduarda Barbosa Oliveira : 7,25
Nota  Física:  Maria Eduarda Barbosa Oliveira : 6,5
Nota  Física:  Maria Eduarda Barbosa Oliveira : 6
Nota  Física:  Maria Eduarda Barbosa Oliveira : 6
Nota  Física:  Maria Eduarda Barbosa Oliveira : 4,75
---------------------------------------------------------------------------------------------------------
Gostaria de entender qual a sub-rotina eu deveria inserir no código para que cada ALUNO fosse tratado individualmente.

--
George Robinson
Analista de Suporte
Tel: +55 (21) 97449-8138

reply via email to

[Prev in Thread] Current Thread [Next in Thread]