bug-apl
[Top][All Lists]
Advanced

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

Re: exercise 2019/02


From: Ala'a Mohammad
Subject: Re: exercise 2019/02
Date: Wed, 15 Apr 2020 21:32:17 +0400

Hi,

or in other way, not elegant but I assume from the light testing it is working

∇r←grade marks
code←'FFFFFFFFFFFFFDCCBBAA'
r← code[⌊(4+marks)÷5]

      grade 10 10⍴⍳100
FFFFFFFFFF
FFFFFFFFFF
FFFFFFFFFF
FFFFFFFFFF
FFFFFFFFFF
FFFFFFFFFF
FFFFFDDDDD
CCCCCCCCCC
BBBBBBBBBB
AAAAAAAAAA

HiH

Regards,


On Wed, Apr 15, 2020 at 5:19 PM Hans-Peter Sorge <address@hidden> wrote:
Hi,

how about

       ∇find_grade[⎕]∇
     ∇
[0]   r←find_grade g;gm;gl
[1]   gm←0 65 70 80 90
[2]   gl←'FDCBA'
[3]   r←,¨gl[+/[1]gm ∘.≤ g]
     ∇

       m,find_grade m←5 2⍴0 64  65 69  70 79  80 89  90 100
   0  64 F F
  65  69 D D
  70  79 C C
  80  89 B B
  90 100 A A

Regards
Hans-Peter



Am 14.04.20 um 17:40 schrieb Otto Diesenbacher-Reinmüller:
> Hi APLers,
>
> let's start with the second challenge:
>
> 2 making the grade
> (https://www.dyalog.com/uploads/files/student_competition/2019_problems_phase1.pdf)
>
> "Write a function that, given an array of integer testscores in the
> inclusive range 0–100, returns anidentically-shaped array of the
> corresponding lettergrades according to the table to the left.Hint:
> You may want to investigate the intervalindex function ⍸."(from the exercise)
> ┌────────┐
> │ 0  64 F│
> │65  69 D│
> │70  79 C│
> │80  89 B│
> │90 100 A│
> └────────┘
>
> ⍝ so - ⍸ is not applicable as Dyalog-only, let's try without it.
>
> ⍝ create the score card:
>
> table ← 1 3 ⍴ 0 64 'F'
> table ← table ⍪ 65 69 'D'
> table ← table ⍪ 70 79 'C'
> table ← table ⍪ 80 89 'B'
> table ← table ⍪ 90 100 'A'
>
> ∇z←getGrade iscore
>    z←({(iscore≥⍺)∧(iscore≤⍵)}/table[;1 2])/table[;3]
> ∇
>
> ∇grades←findGrade scores
>    grades ← getGrade ¨ scores   ⍝ apply getGrade to EACH score
> ∇
>
>        findGrade 2 2 ⍴ 50 72 91 88
>   F C
>   A B
>
> for sure, it would be better, to live without the *external* getGrade
> function. But trying to incorporate the getGrade as a lambda, I
> couldn't solve the nested "⍵"s and nested lambdas.
>
> Any hint?
>
> br & many thanks - Otto
>


reply via email to

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