Informatică, întrebare adresată de Marcek, 9 ani în urmă

Se dă o mulțime de puncte în plan. Să se calculeze cea mai mică distanță dintre oricare 2 puncte posibile. In c++ si Pascal va rog

Răspunsuri la întrebare

Răspuns de blindseeker90
1
#include <iostream>
#include <cmath>
#include <float.h>
#include <fstream>
using namespace std;

//structura pentru coordonate puncte
struct Punct{
double x,y;
} marcaj[20];

//calcul distanta intre doua puncte

double distanta_puncte(Punct p1,Punct p2){
//aplic direct formula geometrica
return sqrt(pow(p2.y-p1.y,2)+pow(p2.x-p1.x,2));
}

//functie care returneaza valoarea minima din sir
double min_vector(double v[],int n){
int i;
//valoare maxima double
double min=10e15; 
//trecem prin toate valorile
for(i=0;i<n;i++){
//daca valoare mai mica decat cea existenta minima
if(v[i]<min){
//minimul device acea valoare
min=v[i];
}
}
   return min;
}

int main(){
double distanta[1000];
int i,j,nr_puncte,nr_distante=0;
ifstream fip("puncte_intrare.txt");
//citeste fisier nr puncte
fip>>nr_puncte;
//citire coordonate puncte
for(i=0;i<nr_puncte;i++){
fip>>marcaj[i].x>>marcaj[i].y;

}
//trecand prin oate punctele
for(i=0;i<nr_puncte-1;i++){
//trecand prin toate punctele ramase
for(j=i+1;j<nr_puncte;j++){
//calculeaza distanta intre punctul i si punctul j
distanta[nr_distante]=distanta_puncte(marcaj[i],marcaj[j]);
//creste nr de distante
nr_distante++;
}
}

cout<<"\nDistanta minima:"<<min_vector(distanta,nr_distante);
return 0;
}

Marcek: mersi mult
Marcek: poti a mi-o faci te rog si in pascal
Marcek: multumesc
blindseeker90: pot sa incerc cand ma intorc acasa. Acum am acces la un calculator doar cu compilator de C++. Daca ai nevoie de program azi, nu te pot ajuta mai mult
Marcek: mie imi trebue pentru miine
Marcek: daca poti iti sunt profund recunoscator
blindseeker90: Mai pune ibnca o data problema pe brainly si o sa iti adaug raspunsul pentru pascal
blindseeker90: si lasa-mi mesaj cand o mai pui inca o data
Marcek: GATA AM PUSO
Alte întrebări interesante