Topic: Appartenenza di un punto ad una retta  (Letto 63 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Luca Rocchi

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Appartenenza di un punto ad una retta
« il: Novembre 19, 2020, 13:19 »
Stavo facendo un esercizio che implica di determinare l'appartenenza di un punto ad una retta facendo fornire all'utente sia l'equazione della retta sia il punto.
Il mio problema è che non so come fare un programma che avendo un'equazione data dall'utente sostituisca i le incognite x e y con dei numeri, dati sempre dall'utente, e determini se il risultato finale è un'identità o meno.
Vorrei che facesse una cosa del genere: retta: Y=2*x+3      punto=A=(2;7)    quindi retta: 7=2*2+3   7=7 quindi appartiene alla retta.
io avevo pensato di fare così:

#se si sostituiscono le coordinate di un punto su una retta l'equazione della stessa diverrà un'identità se il punto appartiene alla retta
retta=input("dammi l'equazione esplicita.\n\t").strip("y=")
x,y=(input("dammi la x del punto.\n\t")),float(input("dammi la y del punto.\n\t "))
retta=retta.replace("x",x)
print(retta)
#qui non funziona perchè stò confrontando una stringa con un numero
if retta==y:
  print("appartiene alla retta")
else:
  print("non appartiene alla retta")

vorrei appunto confrontare l'input che ho richiesto con la y data, ma purtroppo non sono entrambi numeri.
Vorrei compisse un operazione aritmetica e poi ne confrontasse il risultato con y.
mi sapreste dare una mano? grazie in anticipo.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.141
  • Punti reputazione: 9
    • Mostra profilo
Re: Appartenenza di un punto ad una retta
« Risposta #1 il: Novembre 19, 2020, 17:54 »
Sì, c'è questo problema con gli esercizi, che per qualche motivo (forse perché vengono spiegati male!?) il principiante parte sempre dall'input. E qui in genere si incastra in diecimila difficoltà che non hanno niente a che vedere con l'esercizio in sé. La verità è che NON bisognerebbe mai spiegare "input" ai principianti, fine del problema.

Ora, nel tuo caso, un'equazione del tipo "y = ax + b" dipende solo dai due parametri "a" (coefficiente di primo grado) e "b" (coefficiente di grado zero). Un punto P è esprimibile con altri due parametri "px" e "py" (le sue coordinate x e y).
Quindi tutto il tuo problema dipende da 4 parametri: a, b, px, py.
Quindi il tuo problema (quello vero, intendo... non "input") è il seguente:

Scrivi una funzione che accetta quattro parametri a, b, px, py e restituisce se il punto P(px, py) appartiene o no alla retta "y = ax + b".

Questo è il tuo problema vero.
Comincia a scrivere questa funzione. Poi, se proprio ti sembra indispensabile (e NON lo è), non ci metti molto a capire come configurare gli "input" da chiedere all'utente. Basta che, invece di chiedergli di scrivere una inutilissima equazione per intero, che poi ti tocca pure parsare alla ricerca dei coefficienti, gli chiedi semplicemente i quattro numeri, uno dopo l'altro. Ma ripeto, questo NON è il tuo problema. Il tuo problema è scrivere la fuzione che risolve il test di appartenenza del punto alla retta.

Offline Luca Rocchi

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re: Appartenenza di un punto ad una retta
« Risposta #2 il: Novembre 20, 2020, 11:44 »
Sì, c'è questo problema con gli esercizi, che per qualche motivo (forse perché vengono spiegati male!?) il principiante parte sempre dall'input. E qui in genere si incastra in diecimila difficoltà che non hanno niente a che vedere con l'esercizio in sé. La verità è che NON bisognerebbe mai spiegare "input" ai principianti, fine del problema.

Ora, nel tuo caso, un'equazione del tipo "y = ax + b" dipende solo dai due parametri "a" (coefficiente di primo grado) e "b" (coefficiente di grado zero). Un punto P è esprimibile con altri due parametri "px" e "py" (le sue coordinate x e y).
Quindi tutto il tuo problema dipende da 4 parametri: a, b, px, py.
Quindi il tuo problema (quello vero, intendo... non "input") è il seguente:

Scrivi una funzione che accetta quattro parametri a, b, px, py e restituisce se il punto P(px, py) appartiene o no alla retta "y = ax + b".

Questo è il tuo problema vero.
Comincia a scrivere questa funzione. Poi, se proprio ti sembra indispensabile (e NON lo è), non ci metti molto a capire come configurare gli "input" da chiedere all'utente. Basta che, invece di chiedergli di scrivere una inutilissima equazione per intero, che poi ti tocca pure parsare alla ricerca dei coefficienti, gli chiedi semplicemente i quattro numeri, uno dopo l'altro. Ma ripeto, questo NON è il tuo problema. Il tuo problema è scrivere la fuzione che risolve il test di appartenenza del punto alla retta.
Perfetto ora va, vorrei chiederti un'ultima cosa: Posso utilizzare qualcos'altro invece di scrivere \t\t\t\t\t\t\t? Vorrei rendere una parte del mio compito più leggera.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.141
  • Punti reputazione: 9
    • Mostra profilo
Re: Appartenenza di un punto ad una retta
« Risposta #3 il: Novembre 20, 2020, 18:25 »
>  invece di scrivere \t\t\t\t\t\t\t?

eh?