Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2013, 15:37   #1
_Лето_
Пользователь
 
Регистрация: 04.11.2013
Сообщений: 23
По умолчанию Матрица,"седловая точка", геометрия

Пожалуйста. помогите с задачками. Не знаю, как можно их написать.
1. Дана матрица размера NxN (N - const):
a) Заполнить матрицу указанным способом:
1 3 5......
3 5.......6
5.......6 4
......6 4 2
б) Найти седловые точки:
Седловая точка - минимальная в строке, максимальная в столбце
Вывести само число, номер строки, столбца.

Здесь я как понял нужно четность чисел узнавать? Типа нечетные влево. четные - вправо? И в этой матрице же вроде не будет этой "седловой точки"?

2. Задано N точек (N=30). Пользователь вводит 3 "точки"(6 координат). Найти число разных треугольников образованных из заданных точек в треугольнике пользователя. Вывести число треугольников.
_Лето_ вне форума Ответить с цитированием
Старый 19.12.2013, 21:10   #2
_Лето_
Пользователь
 
Регистрация: 04.11.2013
Сообщений: 23
По умолчанию

2.
Код:
const int n=30;
struct point {float x,y;};
float Geron (point A1, point A2, point A3) {
    float S,r1,r2,r3,p;
    r1=sqrt(pow((A1.x-A2.x),2)+pow((A1.y-A2.y),2));
    r2=sqrt(pow((A3.x-A2.x),2)+pow((A3.y-A2.y),2));
    r3=sqrt(pow((A1.x-A3.x),2)+pow((A1.y-A3.y),2));
    p=(r1+r2+r3)/2;
    S=sqrt(p*(p-r1)*(p-r2)*(p-r3));
    return S;
}
int main() {
    srand(time(NULL));
    point XY[n], A[3];
    int f = 0;
    float SumS, S;
    for (int i=0;i<n;i++) {
        XY[i].x=rand()%5; XY[i].y=rand()%5;
        cout << XY[i].x << " " << XY[i].y << endl;
    }
    cout << "Enter the coordinates of 3 points (x y)" << endl;
    for (int i=0;i<3;i++) cin >> A[i].x >> A[i].y;
    for (int i=0;i<n;i++) {
        SumS=0;
        for (int j=0;j<3;j++) SumS+=Geron(A[j],A[(j+1)%3],XY[i]);
        S=Geron(A[0],A[1],A[2]);
        if (S==SumS) f++;
    }
    if (f>2) {
        int k=1;
        for (int i=f-3;i<=f;i++) k*=i;
        k/=6; cout << k;
    }
    else cout << "0";
    return 0;
}
Вот мой код. Но он почему-то не работает...
_Лето_ вне форума Ответить с цитированием
Старый 22.12.2013, 18:39   #3
vvmcpp
Форумчанин
 
Аватар для vvmcpp
 
Регистрация: 11.12.2010
Сообщений: 116
По умолчанию

Цитата:
Сообщение от _Лето_ Посмотреть сообщение
Вот мой код. Но он почему-то не работает...

Скомпилировал ваш код. Только я добавил:
Код:
#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;
Он работает. Компилируется и работает.
Саму логику я еще не смотрел. Вы наверное хотели сказать что код работает, но неправильно?
Почему вы не пишите коментарии в коде?
Вам же потом легче будет разобраться.

Последний раз редактировалось vvmcpp; 22.12.2013 в 18:45.
vvmcpp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Определение "находиться ли точка на прямой?" tae1980 Microsoft Office Excel 3 02.11.2009 23:45
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04