Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lecture "Algorithms", exercise 1 #4

Open
essepuntato opened this issue Nov 14, 2018 · 14 comments
Open

Lecture "Algorithms", exercise 1 #4

essepuntato opened this issue Nov 14, 2018 · 14 comments
Labels
Exercise The exercises that are introduced in the lectures.

Comments

@essepuntato
Copy link
Contributor

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 essepuntato added the Exercise The exercises that are introduced in the lectures. label Nov 14, 2018
@delfimpandiani
Copy link

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

@MattiaSpadoni
Copy link

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

@friendlynihilist
Copy link

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

@mangiafrangette
Copy link

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!

@lisasiurina
Copy link

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

@simayguzel
Copy link

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

@VittoriaMoccia
Copy link

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.

@giuliapl
Copy link

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

@tceron
Copy link

tceron commented Nov 15, 2018

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.

@ilsamoano
Copy link

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

@SeverinJB
Copy link

“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”) —> …

@essepuntato
Copy link
Contributor Author

essepuntato commented Nov 19, 2018

@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.

@ilsamoano
Copy link

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

@essepuntato
Copy link
Contributor Author

@ilsamoano and @simayguzel

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

Apologies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Exercise The exercises that are introduced in the lectures.
Projects
None yet
Development

No branches or pull requests