Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(C++) помогите разобрать программу

19K
18 декабря 2007 года
Paradoxek
45 / / 24.10.2007
Код:
#include <stdio.h>          
#include <stdlib.h>
#include <math.h>

struct Point
{
    float x;
    float y;
};

double findDistance(Point &point, Point &edgePoint1, Point &edgePoint2)
{
    double a = edgePoint2.y-edgePoint1.y;
    double b = edgePoint1.x-edgePoint2.x;
    double c = edgePoint2.x*edgePoint1.y - edgePoint1.x*edgePoint2.y;

    return abs (point.x*a + point.y*b + c) / sqrt (a*a + b*b);
}

void main()
{
    FILE *f;
    f = fopen("input.txt", "rb");
    if (!f)
        return;

    Point points[101];
    int N;

    //чтение из файла
    fscanf(f, "%d\n", &N);
    int i, j;
    for ( i = 0; i < N; i++ )
        fscanf(f, "%f %f\n", &points.x, &points.y);
    fclose(f);

    points[ N ] = points[ 0 ];

    double min = 100000;
    double tmp;
    for ( i = 0; i < N; ++i ) //цикл по граням
    {
        double max = 0;
        for (j = 0; j < N; j++) // цикл по точкам не принадлежищим грани
            if ( j != i && j != i+1 )
            {
                tmp = findDistance(points[j], points, points[i+1]);
                if (tmp > max)
                    max = tmp;
            }
            if (max < min)
                min = max;
    }

    f = fopen("output.txt", "wb");
    if (!f)
        return;

    fprintf(f, "%.3f\n", min);
    fclose(f);

    system("PAUSE");
    return;

тут нужно обозначить:
1 начало или завершение программы
2 операторы присваивания,вычисления
3 ввод данных
4 вывод данных
5 условный блок,оператор выбора (a>b)
6 оператор цикла
7 подпрограмма, пользовательская функция

[COLOR="Red"]Почему код не оформляешь по Правилам ?!!![/COLOR] модератор.
19K
20 декабря 2007 года
Paradoxek
45 / / 24.10.2007
а я не умею(

[COLOR="Red"]Не умеешь потому,что не читаешь Правила раздела Студентам.[/COLOR]
314
20 декабря 2007 года
fanto
374 / / 15.02.2003
Или ты не корректно написал, чего надо или все слишком просто....
1) Точка входа -- ф-ция main()
выход -- return в main`е

2) Присваивание -- знак "=".... вычисление?! х.з, что имелось в виду
3)//чтение из файла
fscanf(f, "%d\n", &N);
int i, j;
for ( i = 0; i < N; i++ )
fscanf(f, "%f %f\n", &points.x, &points.y);
fclose(f);
4)fprintf()
5)if()
6)for()
7)findDistance

Вот и все? В самой глючной и корявой методичке это описано... Любой в дрова пьяный студент, не гуманитарий, это рассказал бы.....
92
20 декабря 2007 года
Тень Пса
2.2K / / 19.10.2006
2 Paradoxek: позор.... и на кого же ты учишься?... неужели на программиста?!

2 fanto: у нас даж самые задолбанные экономисты, без предмета ПРОГРАММИРОВАНИЕ как такового, учили азы :D
19K
20 декабря 2007 года
Paradoxek
45 / / 24.10.2007
Цитата: Тень Пса
2 Paradoxek: позор.... и на кого же ты учишься?... неужели на программиста?!

2 fanto: у нас даж самые задолбанные экономисты, без предмета ПРОГРАММИРОВАНИЕ как такового, учили азы :D



хех) пытаюсь учиться)а вообще на архиолога) просто информатика как общий предмет идёт, сори за флуд, просто что бы знали.
P.S. правила раздела студентам прочитал)

19K
21 декабря 2007 года
Paradoxek
45 / / 24.10.2007
 
Код:
return abs (point.x*a + point.y*b + c) / sqrt (a*a + b*b);

вот эта функция к чему относиться?
92
21 декабря 2007 года
Тень Пса
2.2K / / 19.10.2006
эти функции (abs, sqrt) а также операторы *,+,/ относятся к вычислениям.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог