Equazione di una retta

di Anonimizzato26710 il
25 risposte
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

  • Credo di si.
  • E poi come devo continuare?
  • Risolvi l'equazione con y=0, x=0 e altri tre x a tua scelta
  • 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?
  • No, devi trovarli tu i punti (x,y) risolvendo l'equazione. Non è un problema di programmazione
  • Crossposting con pierotofy.it
  • 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();
    }
  • 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.
  • 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
  • Ma cosa non capisci? Mi sembrano frasi in italiano.

    Cosa non capisci della prima frase ad esempio?
  • 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.
  • 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();
    }
  • 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.
  • 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