Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1

    Distanza fra due punti in C...

    Salve,

    Qualcuno sa come fare per calcolare la distanza tra due punti (x1, y1) e (x2, y2), con il solo ausilio delle strutture di iterazione e selezione e con le funzioni?
    E' negato l'utilizzo di array, puntatori e di ogni altra particolare diavoleria di cui il C è in possesso.

    Grazie a tutti e CIAO!

  2. #2
    non puoi nemmeno usare funzioni tipo sqr() e sqrt() ?
    - "Boy, the food at this place is really terrible."
    - "Yeah, I know, and such ... small portions."

  3. #3
    Si si le funzioni si, l'ho scritto...

  4. #4
    codice:
    sqrt(sqr(x2-x1) + sqr(y2-y1))
    - "Boy, the food at this place is really terrible."
    - "Yeah, I know, and such ... small portions."

  5. #5
    dovrebbe essere giusto,scusate ma non riuscivo a ricontrollarlo.
    questo calcola la distanza tra due punti(ax;ay)(bx;by).
    ricorda che in un piano cartesiano serve il valore assoluto.
    codice:
    #include <stdio.h>
    
    struct coord{
    	int x;
    	int y;
    };
    
    struct segmento{
      struct coord a;
      struct coord b;
    }seg;
    int lungx,lungy;
    int lungxba(z,r,h);
    int lungyba(l,m,n);
    int main()
    {
    printf("inserisci le coord xa:\n");
    scanf("%d",&seg.a.x);
    printf("inserisci le coord ya:\n");
    scanf("%d",&seg.a.y);
    printf("inserisci le coord xb:\n");
    scanf("%d",&seg.b.x);
    printf("inserisci le coord yb:\n");
    scanf("%d",&seg.b.y);
    
    lungxba(lungx,seg.b.x,seg.a.x);
    printf("%d",lungx);
    lungyba(lungy,seg.b.y,seg.a.y);
    printf("%d",lungy);
    
    return 0;
    }
    
    int lungxba(z,r,h)
    {
    	if(r>h)
    	{z=r-h;}
    	else
    	{z=(r-h)*-1;}
    	return 0;
    }
    
    int lungyba(l,m,n)
    {
    	if(m>n)
    	{l=m-n;}
    	else
    	{l=(m-n)*-1;}
    	return 0;
    }
    ciao,
    mercuzio

  6. #6

  7. #7
    Arrr...mi sono per caso perso qualche lezione di algebra lineare?
    - "Boy, the food at this place is really terrible."
    - "Yeah, I know, and such ... small portions."

  8. #8
    non saprei, faccio la quarta liceo!!!!
    non so nemmeno cosa sia l'algebra lineare!
    prò stò facendo il piano cartesiano e so che per calcolare la distanza tra due punti A(xa;ya) B(xb;yb) che sono paralleli all'asse delle scisse o delle orsinate bisogna fare |xa-xb| cioè il valore assoluto (eliminando il segno negativo se c'è).
    dovrei completare il codice metendo la somma....
    ho troppo sonno, spero di aver fatto tutto giusto.

  9. #9
    Originariamente inviato da Mercuzio
    ... però stò facendo il piano cartesiano ...
    ecco...ripassa un po' allora....
    - "Boy, the food at this place is really terrible."
    - "Yeah, I know, and such ... small portions."

  10. #10
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    scusa se intervengo mercuzio ma mi sembra che tu abbia scritto del codice per fare tutto tranne quelle che è stato chiesto.... spero tu non ti offenda per i miei appunti a riguardo....

    1- il tuo prog calcola differenza delle ascisse e differenza delle ordinate e non certo la distanza tra i punti

    2-hai riscritto due volte la stessa funzione solo con nomi di variabili diverse. Le funzioni servono proprio per essere riutilizzabili, una basta e avanza......

    3-z=(r-h)*-1;...... beh facevi prima a scrivere z=h-r;

    4- potevi anche usare la comoda funzione abs() per calcolare il valore assoluto invece di implementarla.

    Inutile dire che la formula giusta è quella di Dwenegar...
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.