2018-2019 icon indicating copy to clipboard operation
2018-2019 copied to clipboard

Lecture "Algorithms", exercise 1

Open essepuntato opened this issue 6 years ago • 14 comments

What is the result of the execution of the algorithm in Figure 4 using "Peroni", "HTML", and "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132" as input values?

essepuntato avatar Nov 14 '18 06:11 essepuntato

The result is 2

A="HTML"
B="Peroni"
C="Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132"

score = 0

if A in C:
    score += 1
elif B in C:
    score += 1
else:
   score = 0

print(score)


First test, is A in C? A is in C ---> score is increased by 1 --> 0 + 1 = 1 Second test, is B in C? B is in C ---> score is increased by 1 --> 1 + 1 = 2 Print(score) --> score is 2

delfimpandiani avatar Nov 14 '18 10:11 delfimpandiani

The output will be "2" because both "HTML" and "Peroni" are in the bibliographic entry.

MattiaSpadoni avatar Nov 14 '18 14:11 MattiaSpadoni

The output is 2, given the fact that both HTML and Peroni are included in the bibliographic entry.

friendlynihilist avatar Nov 14 '18 15:11 friendlynihilist

Following the flowchart in Fig. 4 I wrote a Python algorithm to find the result:

word1 = "Peroni"
word2 = "HTML"
bibentry = "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A.G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132" 

result = 0

if word1 in bibentry:
    result = result + 1
	
if word2 in bibentry:
    result = result + 1

print (result)

The output is 2!

mangiafrangette avatar Nov 14 '18 15:11 mangiafrangette

The result (return) =2 since both the words "HTML" and "Peroni" are contained in the bibliographic entry.

lisasiurina avatar Nov 14 '18 19:11 lisasiurina

string1 = "Peroni" string2 = "HTML"

bibentry = "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132"

if string1 or string2 in bibentry: sum = 1

if string1 and string2 in bibentry: sum = 2 else: sum = 0

print (sum)

output: 2

simayguzel avatar Nov 14 '18 20:11 simayguzel

The output would be 2 because both strings/words, "Peroni" and "HTML", are included in the bibliographic entry, if you consider them both together. If instead you consider just one of them at time, the output would be 1.

VittoriaMoccia avatar Nov 15 '18 10:11 VittoriaMoccia

Both the words "Peroni" and "HTML" are contained in the bibliographic entry, so the output is 2.

giuliapl avatar Nov 15 '18 10:11 giuliapl

Bibliographic entry: "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132"

Both "HTML" and "Peroni" appear in the bibliographic entry, therefore the result is 2.

tceron avatar Nov 15 '18 12:11 tceron

A = "Peroni"
B = "HTML"
Def = "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132"

if A or B in Def:
    sum = 1
if A and B in Def:
    sum = 2
 
else:
    sum = 0
    
print `(sum)`

output = 2

ilsamoano avatar Nov 15 '18 18:11 ilsamoano

“Peroni” and “HTML” are both parts of the input value. Hence, the result is 2.


Followed Path: 
… —> Initialise the result value to 0 —> The first word (“Peroni”) is in the bibliography entry —> Sum 1 to the result value —> The second word (“HTML”) is in the bibliography entry —> Sum 1 to the result value —> Return the result value (“2”) —> …

SeverinJB avatar Nov 15 '18 21:11 SeverinJB

@delfimpandiani, while the answer to the exercise is correct, the pseudocode describe a different flow, in particular in the instruction:

elif B in C:

This instruction will be executed if and only if the condition in the previous if is not satisfied. Thus, following your code, the actual result that will be returned in this case should be 1.

Similarly, @simayguzel and @ilsamoano, the two if in your pseudocode make the whole process erroneus, even if you returned the corrent answer to the question. In fact, if you run your pseodocode with a different input, e.g. by substituting the first word "Peroni" with "Pippo", you will see that the algorithm will return 0 even if you expected to get a 1.

essepuntato avatar Nov 19 '18 06:11 essepuntato

Hi Prof, thanks for the heads up. I’ve tried to sub “Peroni” with “Pippo”, but my code still gives 2 as a result, not 0 and neither 1.


A = "Pippo"
B = "HTML"
Def = "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132"

if A or B in Def:
    sum = 1
if A and B in Def:
    sum = 2

else:
    sum = 0

print (sum)


2

If I change both the values of A and B the result is 0 despite “Computer” is a word in Def


A= "Computer"
B = "ojojo"
Def = "Peroni, S., Osborne, F., Di Iorio, A., Nuzzolese, A. G., Poggi, F., Vitali, F., Motta, E. (2017). Research Articles in Simplified HTML: a Web-first format for HTML-based scholarly articles. PeerJ Computer Science 3: e132. e2513. DOI: https://doi.org/10.7717/peerj-cs.132"

if A or B in Def:
    sum = 1
if A and B in Def:
    sum = 2

else:
    sum = 0

print (sum)


0

ilsamoano avatar Nov 19 '18 17:11 ilsamoano

@ilsamoano and @simayguzel

Sorry guys, you are totally right. I really don't know how I've read "elif" instead of "if".

Apologies.

essepuntato avatar Nov 19 '18 19:11 essepuntato