Equazione di una retta

di il
25 risposte

Equazione di una retta

Scusate mi date una mano a comprendere questo problema che non riesco a capirlo per favore.

Leggere i coefficienti dell'equazione di una retta y=mx+q, quindi visualizzare le coordinate di almeno tre punti appartenenti alla retta, oltre alle intersezioni con gli assi cartesiani (ipotizziamo che m sia sempre diverso da 0).

Io ho inteso che l'utente deve inserire i valori di m e q, è giusto?

25 Risposte

  • Re: Equazione di una retta

    Credo di si.
  • Re: Equazione di una retta

    E poi come devo continuare?
  • Re: Equazione di una retta

    Risolvi l'equazione con y=0, x=0 e altri tre x a tua scelta
  • Re: Equazione di una retta

    Weierstrass ha scritto:


    Risolvi l'equazione con y=0, x=0 e altri tre x a tua scelta
    Quindi devo far inserire all'utente inizialmente m e q e poi x e y, giusto?
  • Re: Equazione di una retta

    No, devi trovarli tu i punti (x,y) risolvendo l'equazione. Non è un problema di programmazione
  • Re: Equazione di una retta

    Crossposting con pierotofy.it
  • Re: Equazione di una retta

    L'ho fatto però non mi esce.
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int m,q,y,x,i=0;
    	for(i=0;i<=3;i++)
    	{	printf("Inserire valore di m\n");
    		scanf("%d",&m);
    		printf("Inserire valore di q\n");
    		scanf("%d",&q);
    		y=m*x+q;
    		printf("Il valore di y e':%d",y);
    		x=(y/m)-q;
    		printf("Il valore di x e':%d",x);}
    	getch();
    }
  • Re: Equazione di una retta

    M e q le devi chiedere una sola volta (quindi i printf vanno fuori dal ciclo).
    Nel ciclo, per calcolare una delle due incognite, devi dare un valore arbitrario all'altra (ad esempio se m = 4, q = 2, ponendo x = 1 y sará 6).
    Per le intersezioni con gli assi devi porre x = 0 e, in un altro ciclo, y = 0.

    Prendi i miei suggerimenti con le molle, sono un principiante anch'io.
  • Re: Equazione di una retta

    lucifugo ha scritto:


    M e q le devi chiedere una sola volta (quindi i printf vanno fuori dal ciclo).
    Nel ciclo, per calcolare una delle due incognite, devi dare un valore arbitrario all'altra (ad esempio se m = 4, q = 2, ponendo x = 1 y sará 6).
    Per le intersezioni con gli assi devi porre x = 0 e, in un altro ciclo, y = 0.

    Prendi i miei suggerimenti con le molle, sono un principiante anch'io.
    Non riesco a capire scusami
  • Re: Equazione di una retta

    Ma cosa non capisci? Mi sembrano frasi in italiano.

    Cosa non capisci della prima frase ad esempio?
  • Re: Equazione di una retta

    Te lo scrivo in pseudocodice (poi lo traduci tu in C):

    //inizio programma

    // dichiarazione delle variabili
    (te ne servono 4)

    //input
    Chiedi all'utente m
    Chiedi all'utente q

    //coordinate di tre punti
    scegli un valore di x (ad esempio 1) o chiedilo all'utente
    risolvi y rispetto a x
    stampa x e y (questa é la prima coordinata)

    ripeti le tre linee precedenti altre due volte, cambiando il valore di x ogni volta.

    //intersezioni con gli assi
    assegna a x valore 0
    calcola y rispetto a x
    stampa x e y (questa é l'intersezione con l'asse delle ascisse)

    assegna a y valore 0
    calcola x rispetto a y
    stampa x e y (questa é l'intersezione con l'asse delle ordinate)

    //fine programma


    Nota bene che il mio codice non prevede nessun ciclo. Se vuoi aggiungerne uno lo puoi usare nella sezione "coordinate di tre punti" ma ti consiglio di svolgere l'esercizio inizialmente senza cicli (magari lo aggiungi in una seconda versione) sennó ti incasini.

    Piú chiaro di cosí non riesco.
  • Re: Equazione di una retta

    Ho seguito quello che mi hai scritto però non mi compila l'ultima parte e non riesco a capire il perché

    Il codice che ho scritto è questo:
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int m,q,y,x,i=0;
    	printf("Inserire valore di m\n");
    	scanf("%d",&m);
    	printf("Inserire valore di q\n");
    	scanf("%d",&q);
    	for(i=0;i<=3;i++)
    	{printf("Inserire valore di x\n");
    	scanf("%d",&x);
    	y=m*x+q;
    	printf("Il valore di y e':%d",y);
    	scanf("%d",&x);
    	scanf("%d",&y);}
    	printf("Assegnare 0 a x\n");
    	scanf("%d",&x);
    	y=m*x+q;
    	printf("Il valore di y e':%d",y);
    	scanf("%d",&x);
    	scanf("%d",&y);
    	printf("Questa e'l'intersezione con l'asse delle ascisse\n");
    	printf("Assegnare 0 a y\n");;
    	scanf("%d",&y);
    	x=(y/m)-q;
    	printf("Il valore di y e':%d",x);
    	scanf("%d",&x);
    	scanf("%d",&y);
    	printf("Questa e'l'intersezione con l'asse delle ordinate\n");	
    	getch();
    }
  • Re: Equazione di una retta

    Forse non ti compila perché hai scritto
    printf("Assegnare 0 a y\n");;
    ( a me compila. A te che errore segnala il compilatore?)

    Cmq giá ti dico che il ciclo é fatto male (suggerimento: ti serve solo uno scanf.)

    Ti consiglio di non chiedere all'utente di assegnare 0 a x e a y quando calcoli le intersezioni ma di assegnare 0 direttamente nel codice.
  • Re: Equazione di una retta

    lucifugo ha scritto:


    Forse non ti compila perché hai scritto
    printf("Assegnare 0 a y\n");;
    ( a me compila. A te che errore segnala il compilatore?)

    Cmq giá ti dico che il ciclo é fatto male (suggerimento: ti serve solo uno scanf.)

    Ti consiglio di non chiedere all'utente di assegnare 0 a x e a y quando calcoli le intersezioni ma di assegnare 0 direttamente nel codice.
    Risolto grazie mille

    Questo è il codice:
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int m,q,y,x,i=0;
    	printf("Inserire valore di m\n");
    	scanf("%d",&m);
    	printf("Inserire valore di q\n");
    	scanf("%d",&q);
    	for(i=0;i<3;i++)
    	{	printf("Inserire valore di x\n");
    		scanf("%d",&x);
    		y=m*x+q;
    		printf("Il valore di y e':%d\n",y);}
    	printf("Assegnare 0 a x\n");
    	scanf("%d",&x);
    	y=m*x+q;
    	printf("Il valore di y e':%d\n",y);
    	printf("Questa e'l'intersezione con l'asse delle ascisse\n");
    	printf("Assegnare 0 a y\n");
    	scanf("%d",&y);
    	x=(y/m)-q;
    	printf("Il valore di y e':%d\n",x);
    	printf("Questa e'l'intersezione con l'asse delle ordinate\n");	
    	getch();
    }
Devi accedere o registrarti per scrivere nel forum
25 risposte