Sponsored Content
Full Discussion: Loop doing calculations
Top Forums UNIX for Beginners Questions & Answers Loop doing calculations Post 303040607 by Eric7giants on Friday 1st of November 2019 04:09:20 PM
Old 11-01-2019
Loop doing calculations

Hello. I'm writing an awk script that looks at a .csv file and calculates the weighted grade for each student based on the scores and categories in the file. I am able to get the script to run the only issue however is that the same score for each student is the same. I'm self-teaching myself the command-line and am horrible at loops. What am I missing here.


Here is some sample data:
Code:
Chelsey,Quiz,Q05,99,100       
Chelsey,Quiz,Q06,88,100       

Chelsey,Quiz,Q07,100,100       

Chelsey,Final,FINAL,82,100       

Chelsey,Survey,WS,5,5       

Sam,Homework,H01,19,100       

Sam,Homework,H02,82,100       

Sam,Homework,H03,95,100


Here is my code:
Code:
BEGIN{
FS = ","
print "Name\tPercent\tLetter"
a=0
}

{

if(a==0){
        a+=1
}

else{
        sum[$1$2] += $4
        total[$1$2] += $5
        students[$1]++
        categories[$2]++

}
}

END{

for (b in students){
        Homework=(sum[$1"Homework"]/total[$1"Homework"])*0.10
        Lab=(sum[$1"Lab"]/total[$1"Lab"])*.30
        Final=(sum[$1"Final"]/total[$1"Final"])*.15
        Quiz=(sum[$1"Quiz"]/total[$1"Quiz"])*.40
        Survery=(sum[$1"Survey"]/total[$1"Survey"])*.05
        percent=(Homework+Lab+Final+Quiz+Survey)*100
        printf "%s\t%.2f\t",b,percent

        if(percent>=90 && percent<=100)
                print "A";

        else if(percent>=80 && percent<90)
                print "B";

        else if(percent>=70 && percent<80)
                print "C";

        else if(percent>=60 && percent<70)
                print "D";

        else
                print "E"



}

}

And the output:
Code:
Name    Percent    Letter
Andrew    72.64    C
Chelsey    72.64    C
Shane      72.64    C
Ava         72.64     C
Sam        72.64     C






table { }tr { }col { }br { }td { padding-top: 1px; padding-right: 1px; padding-left: 1px; color: black; font-size: 12pt; font-weight: 400; font-style: normal; text-decoration: none; font-family: Calibri, sans-serif; vertical-align: bottom; border: medium none; white-space: nowrap; }

Last edited by Eric7giants; 11-01-2019 at 05:18 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Float calculations

As expr is used for integer calculations, which command is used for float calculations. (1 Reply)
Discussion started by: sharmavr
1 Replies

2. UNIX for Dummies Questions & Answers

Time Calculations

I'm trying to have a loop print out statistics every X number of seconds. How can I add a specific number of seconds to a time variable and make a comparison? Thanks ahead of time. For example: startTime = `date +%H%M%S` currentTime = $startTime executeTime = startTime + X # X is equal... (5 Replies)
Discussion started by: Nysif Steve
5 Replies

3. Shell Programming and Scripting

ksh, calculations using bc

hi all, was wondering if there is another way to do calculations in ksh scripts other than using bc ?? i am using a script to calculate average response time and my script errors out after running for a bit. e.g code i am using : averageTime=$(print "$totalTime / $numberOfEntries" |... (2 Replies)
Discussion started by: cesarNZ
2 Replies

4. UNIX for Dummies Questions & Answers

Date Calculations

I need to be able to use the current date and calculate 7 days ago to be stored in another variable to be passed to a file in my Unix shell script. I need the date in the following format: date '+%m/%d/%Y' or 05/16/2006 How do I calculate date minus 7 days or 1 week ago? (8 Replies)
Discussion started by: mitschcg
8 Replies

5. Shell Programming and Scripting

calculations in bash

HI i have following problem, i need to use split command to split files each should be cca 700 lines but i dont know how to inplement it in the scripts becasuse each time the origin file will be various size , any body got any idea cheers (2 Replies)
Discussion started by: kvok
2 Replies

6. UNIX for Dummies Questions & Answers

help with doing calculations on data

Dear All, I have a long list like this: 337 375 364 389 443 578 1001 20100 . . . . etc I would like to substract each value from the first entry which in this case is 337 and report it in a separate column. So the expected output looks like 337 0 (10 Replies)
Discussion started by: pawannoel
10 Replies

7. UNIX for Dummies Questions & Answers

Doing calculations with bc on one field

Hello, I have to turn: Apple Inc.:325,64:329,57 into Apple Inc.:325,64:329,57:3,93 3,93=329,57-325,64. My code: cat beurs.txt | sed 's/\(*\):\(*\),*\(*\):\(*\),\(*\)/\4\.\5-\2\.\3/' beurs.txt | bc| tr '.' ',' | sed 's/^-*,/0,/' > winstmarges.txt; paste -d: beurs.txt winstmarges.txt; rm... (5 Replies)
Discussion started by: ikke008
5 Replies

8. Shell Programming and Scripting

Problem with calculations

grep Quality abc.txt | awk -F"=" '{print $2}' o/p is given as 70/70 49/70 I want in the below format (percentage format) 100% 70% help me!!!!:confused::confused::confused: ---------- Post updated at 09:59 AM ---------- Previous update was at 09:57 AM ---------- Cell 01 -... (3 Replies)
Discussion started by: nikhil jain
3 Replies

9. Shell Programming and Scripting

Number calculations

I'm writing a script that will read all the fields of a text file into an array(if they are numeric), while at the same time computing the minimum and maximum values from the file. After that I want to output the average of all the numbers in the array. The first problem I'm having is that many... (10 Replies)
Discussion started by: ksmarine1980
10 Replies

10. Shell Programming and Scripting

Output calculations

Attached are the is original output (zipped file) and a custom file using the awk code below in which the average reads per bait are calculated (average.txt) awk '{if(len==0){last=$4;total=$6;len=1;getline}if($4!=last){printf("%s\t%f\n", last,... (7 Replies)
Discussion started by: cmccabe
7 Replies
TM::Coverage(3pm)					User Contributed Perl Documentation					 TM::Coverage(3pm)

NAME
TM::Coverage - Topic Maps, Code Coverage DESCRIPTION
This auxiliary package keeps track of the code coverage. Probably quite irrelevant for a user. Automatically generated for TM (1.44). ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ blib/lib/TM.pm 96.4 84.5 58.0 93.7 90.6 27.5 89.6 blib/lib/TM/Analysis.pm 100.0 90.9 n/a 100.0 100.0 0.0 97.5 blib/lib/TM/AsTMa/Fact.pm 100.0 n/a n/a 100.0 n/a 0.0 100.0 blib/lib/TM/AsTMa/Fact2.pm 100.0 n/a n/a 100.0 n/a 0.0 100.0 blib/lib/TM/Bulk.pm 76.8 71.4 62.5 85.7 100.0 0.0 75.3 blib/lib/TM/CTM/CParser.pm 65.6 34.3 31.0 84.6 0.0 1.6 52.5 blib/lib/TM/CTM/Parser.pm 90.9 50.0 n/a 100.0 0.0 0.0 79.4 blib/lib/TM/DM.pm 100.0 65.0 66.7 100.0 n/a 0.0 96.5 blib/lib/TM/Graph.pm 99.1 88.5 n/a 100.0 100.0 0.0 97.4 blib/lib/TM/Index.pm 100.0 80.0 60.0 100.0 83.3 0.3 87.8 .../Index/Characteristics.pm 100.0 100.0 n/a 100.0 0.0 0.0 97.0 blib/lib/TM/Index/Match.pm 98.5 87.5 n/a 100.0 100.0 0.5 97.6 blib/lib/TM/LTM/CParser.pm 84.9 45.3 42.7 98.2 0.0 0.2 67.8 blib/lib/TM/LTM/Parser.pm 95.7 62.5 50.0 100.0 0.0 0.0 87.1 blib/lib/TM/Literal.pm 45.8 0.0 11.8 30.0 0.0 0.4 24.2 blib/lib/TM/MapSphere.pm 96.5 84.6 68.8 100.0 100.0 0.0 91.7 .../TM/Materialized/AsTMa.pm 100.0 n/a n/a 100.0 0.0 0.0 95.5 ...ib/TM/Materialized/LTM.pm 100.0 n/a n/a 100.0 0.0 0.0 95.5 .../TM/Materialized/MLDBM.pm 100.0 83.3 n/a 100.0 0.0 0.0 92.6 ...b/TM/Materialized/Null.pm 100.0 n/a n/a 100.0 n/a 0.0 100.0 ...TM/Materialized/Stream.pm 100.0 100.0 100.0 100.0 0.0 0.0 96.0 ...ib/TM/Materialized/XTM.pm 100.0 n/a n/a 100.0 0.0 0.0 96.7 blib/lib/TM/PSI.pm 100.0 n/a n/a 100.0 n/a 0.0 100.0 blib/lib/TM/QL.pm 91.4 61.5 66.7 100.0 50.0 0.1 83.9 blib/lib/TM/QL/CParser.pm 76.2 42.4 41.9 90.3 0.0 9.1 62.0 blib/lib/TM/QL/PE.pm 83.8 77.3 80.0 91.7 0.0 52.5 80.5 blib/lib/TM/QL/TS.pm 65.2 35.4 27.8 70.8 53.3 2.4 56.9 blib/lib/TM/ResourceAble.pm 88.1 87.5 n/a 100.0 100.0 0.0 90.0 .../TM/ResourceAble/MLDBM.pm 100.0 75.0 n/a 100.0 0.0 0.0 94.2 blib/lib/TM/Serializable.pm 94.9 65.6 100.0 100.0 100.0 0.0 84.1 .../TM/Serializable/AsTMa.pm 99.1 87.9 66.7 100.0 100.0 0.0 94.2 ...TM/Serializable/Dumper.pm 100.0 n/a n/a 100.0 0.0 0.0 93.5 ...ib/TM/Serializable/LTM.pm 94.1 n/a n/a 83.3 100.0 0.0 92.0 ...ib/TM/Serializable/XTM.pm 96.3 85.2 72.9 100.0 100.0 0.2 91.5 .../lib/TM/Synchronizable.pm 100.0 75.0 100.0 100.0 100.0 0.0 97.2 ...M/Synchronizable/MLDBM.pm 100.0 50.0 n/a 100.0 0.0 0.0 89.3 ...nchronizable/MapSphere.pm 100.0 63.6 64.3 100.0 100.0 0.0 88.6 ...TM/Synchronizable/Null.pm 100.0 n/a n/a 100.0 0.0 0.0 87.5 blib/lib/TM/Tau.pm 100.0 91.7 80.0 100.0 0.0 0.0 95.6 blib/lib/TM/Tau/Federate.pm 63.2 39.3 n/a 62.5 27.3 0.0 54.5 blib/lib/TM/Tau/Filter.pm 100.0 91.7 66.7 100.0 50.0 0.0 90.0 .../TM/Tau/Filter/Analyze.pm 100.0 n/a n/a 100.0 100.0 0.0 100.0 blib/lib/TM/Tree.pm 100.0 57.1 44.4 100.0 66.7 0.0 88.0 blib/lib/TM/Utils.pm 100.0 50.0 n/a 100.0 0.0 0.0 89.3 ...ib/TM/Utils/TreeWalker.pm 100.0 100.0 n/a 100.0 0.0 0.0 96.0 ...ib/TM/Workbench/Plugin.pm 100.0 n/a n/a 100.0 0.0 0.0 75.0 ...M/Workbench/Plugin/Tau.pm 87.5 50.0 n/a 80.0 0.0 0.0 73.1 yapp/astma-fact.yp 96.9 91.5 73.3 97.8 0.0 4.8 92.7 yapp/astma2-fact.yp 97.4 91.6 58.3 100.0 0.0 0.2 91.6 Total 76.8 45.2 40.2 91.2 57.0 100.0 63.8 ---------------------------- ------ ------ ------ ------ ------ ------ ------ SEE ALSO
TM COPYRIGHT AND LICENSE
Copyright 200[8] by Robert Barta, <drrho@cpan.org> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.1 2008-10-05 TM::Coverage(3pm)
All times are GMT -4. The time now is 09:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy