Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] простейшая программка.... помогите пожалуйста (http://forum.oszone.net/showthread.php?t=111082)

DruOleg 09-07-2008 20:26 847144

простейшая программка.... помогите пожалуйста
 
Задание первого курса, на паскеле все сам сообразил, а вот на си не как не могу доехать...
Имеется задача:
Найти наибольшее и наименьшее расстояние между вершинами треугольника АВС.
Все в принципе просто - сначала идет запрос значений координат вершин, затем по теореме пифагора находятся расстояния между ними, ну и затем находится максимальное и минимальное значение расстояния между вершинами, с их последующим написанием.
Толковый борланд найти не смог, поэтому прошу знающих людей выложить исходный код данной программы и если можно скомпилированный файл... И очень благодарен буду за небольшие комментарии к операторам и командам...
Всем заранее спасибо;)

mrcnn 09-07-2008 21:14 847204

Скомпилишь сам
Код:

#include <stdio.h>
#include <math.h>

#define max3(a,b,c)  (  ((a) > (b)) ? ( ((a)>(c)) ? (a) : (c)  ) : (  ((b)>(c)) ? (b) : ( ((b)>(c))? (b):(c)  )  ))
#define min3(a,b,c)  (  ((a) > (b)) ? ( ((b)>(c)) ? (c): (b)  ) : (((a)>(c)) ? (c): (a))  )

void main()
{

int a1,b1,a2,b2,a3,b3;
double r1,r2,r3;
scanf("%d%d%d%d%d%d",&a1,&b1,&a2,&b2,&a3,&b3);
r1=sqrt(pow(a2-a1,2)+pow(b2-b1,2));
r2=sqrt(pow(a2-a3,2)+pow(b2-b3,2));
r3=sqrt(pow(a3-a1,2)+pow(b3-b1,2));

printf("\npoint1: (%d,%d)\npoint2: (%d,%d)\npoint3: (%d,%d)\ndst1: %f\ndst2: %f\ndst3: %f\nMAX: %f\nMIN: %f\n" ,a1,b1,a2,b2,a3,b3,r1,r2,r3,max3 (r1, r2 ,r3 ),min3 (r1, r2 ,r3 ));

}


Drongo 09-07-2008 21:51 847237

Вложений: 1
mrcnn, DruOleg, между
Код:

r2=sqrt(pow(a2-a3,2)+pow(b2-b3,2));
r3=sqrt(pow(a3-a1,2)+pow(b3-b1,2));

printf("\npoint1: (%d,%d)\npoint2: (%d,%d)\npoint3: (%d,%d)\ndst1: %f\ndst2: %f\ndst3: %f\nMAX: %f\nMIN: %f\n" ,a1,b1,a2,b2,a3,b3,r1,r2,r3,max3 (r1, r2 ,r3 ),min3 (r1, r2 ,r3 ));

scanf ("%d", &exit); // Сюда строку нужно добавить, иначе окно закроется и объявить переменную exit.

}

Код:

int a1,b1,a2,b2,a3,b3, exit; // здесь объявить переменную exit
Цитата:

Цитата DruOleg
небольшие комментарии к операторам и командам... »

То просто,
Код:

#include <stdio.h>
#include <math.h>

#define max3(a,b,c)  (  ((a) > (b)) ? ( ((a)>(c)) ? (a) : (c)  ) : (  ((b)>(c)) ? (b) : ( ((b)>(c))? (b):(c)  )  )) // макрос максимального расстояния между вершинами треугольника
#define min3(a,b,c)  (  ((a) > (b)) ? ( ((b)>(c)) ? (c): (b)  ) : (((a)>(c)) ? (c): (a))  ) // макрос минимального расстояния между вершинами треугольника

void main()
{

int a1, b1, a2, b2, a3, b3, exit; // Объявление пременных для ввода данных
double r1, r2, r3; // объявление переменных для хранения и вывода результата

scanf("%d%d%d%d%d%d",&a1,&b1,&a2,&b2,&a3,&b3); // Считывание значений с клавиатуры в переменные для ввода данных

r1=sqrt(pow(a2-a1,2)+pow(b2-b1,2)); // Расчёт
r2=sqrt(pow(a2-a3,2)+pow(b2-b3,2));  // Расчёт
r3=sqrt(pow(a3-a1,2)+pow(b3-b1,2));  // Расчёт

printf("\npoint1: (%d,%d)\npoint2: (%d,%d)\npoint3: (%d,%d)\ndst1: %f\ndst2: %f\ndst3: %f\nMAX: %f\nMIN: %f\n" ,a1,b1,a2,b2,a3,b3,r1,r2,r3,max3 (r1, r2 ,r3 ),min3 (r1, r2 ,r3 )); // расчёт по условиям макроса и вывод результата на экран

scanf ("%d", &exit); // чтобы не закрылось окно

}

Откомпилированный файл приложил

DruOleg 09-07-2008 22:03 847248

mrcnn, Drongo, спасибо большое!:) Не знаю прям как отблагодарить:)
Еще вопрос нескромный, чем файл компилировать лучше, для таких "примитивных" целей... В интернете пока не чего толкового не нашел:(

Drongo 09-07-2008 22:12 847260

DruOleg,
Цитата:

Цитата DruOleg
спасибо большое! »

Вообще, отдельное спасибо за решение задачи mrcnn, а откомпилировать это даже труда не составило.
Цитата:

Цитата DruOleg
чем файл компилировать лучше »

Ну, я сделал это Borland C++ Builder 6.0
Цитата:

Цитата DruOleg
Толковый борланд »


Admiral 12-07-2008 02:21 849378

Скомпилить можно и с помощью...
Если продукт от Борланд проблематично достать то скомпилить можно и использовав компилятор входящий в Visual Studio 2008 Express Editions.
Кроме того в темах Выбор компилятора и IDE для C++
Помогите выбрать компилятор для С++
Нужен компилятор/IDE С
Какой компилятор C++ под Win лучше?
Вопрос обсуждался так что выбирать есть из чего.


Время: 00:52.

Время: 00:52.
© OSzone.net 2001-