1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Помогите решить задания на С++

Тема в разделе 'C/C++', создана пользователем НеВаЖнО, 1 дек 2014.

  1. TopicStarter Overlay

    НеВаЖнО Пользователи

    Сообщения:
    5
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    Chaos
    • Вариант 8


    1. Определить периметр правильного n-угольника, описанного около окружности радиуса R.



    2. Построить программу, которая вводит координаты точки (x, y) и определяет, попадает ли точка в заштрихованную область на рисунке, который соответствует Вашему варианту. Попадание на границу области считать попаданием в область.



    [​IMG]



    3. Даны целое n>0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно отрицательное число. Найти величину наибольшего среди отрицательных чисел этой последовательности.
  2. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    945
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Функции в соответствии с номерами заданий.
    Реклама: лабораторные недорого (C++, C#, Pascal, Delphi, PHP (без html, только код)), скайп jo_lan1
    Код:
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    
    double PolygonPerimeter(double rad, int side_amount)
    {
        return (2.0*rad*tan(3.14 / (double)side_amount))*side_amount;
    }
    
    bool PointInArea(double x, double y)
    {
        //точка справа или на оси Y
        if (x >= 0.0)
        {
            return (sqrt(x*x + y*y) <= 1.0);
        }
        //Иначе точка слева
        else
        {
            return (x >= -1.0)&&(y <= 1.0)&&(y >= -1.0);
        }
    }
    
    double GetMaxNegative(double array[], int array_length)
    {
        //Первый проход - поиск любого отрицательного числа
        double result = 0.0;
        for (int i = 0; i < array_length && result == 0.0; i++)
            if ((array[i] < 0.0))
                result = array[i];
    
        //Второй проход - поиск наибольшего отрицательного
        for (int i = 0; i < array_length; i++)
            if (array[i] < 0.0 && array[i] > result)
                result = array[i];
      
        return result;
    }
    
    int main(void)
    {
        //Периметр правильного n-угольника описанного около окружности
        //Параметры функции: радиус окружности, колоичество сторон
        //Возвращаемое значение: вещественное значение периметра многоугольника
        double p = PolygonPerimeter(2.0, 10);
        printf("Polygon Perimeter (R = 2; Side count = 10): %.3f\n\n", p);
    
        //Определение принадлежности точки заданной фигуре
        //Пареметры функции: координаты x и y
        //Возвращаемое значение: true - принадлежит, false - не принадлежит
        bool b1 = PointInArea(-1.0, -1.0);
        bool b2 = PointInArea(1.0, 1.0);
        printf("Point 1 (-1, -1): %s\n", b1 ? "true" : "false");  
        printf("Point 2 ( 1,  1): %s\n\n", b2 ? "true" : "false");
    
        //Поиск максимального отрицательного числа в массиве
        //Параметры функции: массив произвольных вещественных чисел, длина массива
        //Возвращаемое значение: вещественное значение наибольшего отрицательного числа
        double array1[] = {1.0, 2.0, 0.0, -2.0, -1.9}; 
        double array2[] = {1.0, 2.0, 0.0, -2.0, 1.9};
        double MaxNeg1 = GetMaxNegative(array1, 5); 
        double MaxNeg2 = GetMaxNegative(array2, 5);
        printf("First Array (1, 2, 0, -2, -1.9) maximum negative: %.2f\n", MaxNeg1); 
        printf("First Array (1, 2, 0, -2, 1.9)  maximum negative: %.2f\n", MaxNeg2);
    
        getchar();
        return 0;
    }
    
  3. TopicStarter Overlay

    НеВаЖнО Пользователи

    Сообщения:
    5
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    Chaos
    Я короче запутался, что и как тут D:
  4. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    945
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Всё непонятное можно обсудить в скайпе.
  5. int 3 Программист Пользователи Open Source Contributor

    Сообщения:
    342
    Лайки:
    531
    Пол:
    Мужской
    Репутация:
    10
    Страна:
    Russian Federation Russian Federation
    Зачем третью в два прохода?
    В некоторых случаях нерационально. Можно оптимизировать, если вынести i и не занулять перед вторым циклом.
    P.S. Я не зануда
  6. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    945
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Да в общем как угодно можно. Можно бесконечно вылизывать код доводя его до совершенства, да вот только преподаватели в ВУЗ'ах не оценивают красоту и рациональность кода. Поэтому и пишется все на коленке до первого рабочего состояния.
  7. int 3 Программист Пользователи Open Source Contributor

    Сообщения:
    342
    Лайки:
    531
    Пол:
    Мужской
    Репутация:
    10
    Страна:
    Russian Federation Russian Federation
    [Оффтоп]У нас как раз требовали писать максимально оптимизированный код (в рамках разумного)[/Оффтоп]
  8. SkyDev Программист Old school Пользователи Open Source Contributor

    Сообщения:
    197
    Лайки:
    234
    Пол:
    Мужской
    Репутация:
    -1
    Страна:
    Ukraine Ukraine
    Код:
        qsort(num, 10, sizeof(int), comp);
        if (num[0] < 0)
            std::cout << num[0];
        else
            std::cout << "All numbers r >= 0";
    имхо, так красивей ;D
  9. CoolMan Old school Пользователи

    Сообщения:
    436
    Лайки:
    88
    Пол:
    Мужской
    Репутация:
    0
    Нашим преподы не смотрят на красоту кода
  10. Ацкой Nyan of Steel Группа анонимных алкоголиков Art Old school Пользователи

    Сообщения:
    403
    Лайки:
    480
    Пол:
    Мужской
    Репутация:
    4
    Команда:
    DeBalance Art Team
    Страна:
    Russian Federation Russian Federation
    Код:
    int random(int);
    int random(int var){
      randomize;
      return 76;
    }
    БОЛЬШЕ ЦЭ++ ДЛЯ БОГА ЦЭ++
    Тыщ нравится это.
  11. NetSpirit B L A C K    L I S T Пользователи

    Сообщения:
    1.390
    Лайки:
    374
    Пол:
    Мужской
    Репутация:
    5
    Пары бурить то что не надо
Черновик сохранён Черновик удалён
Similar Threads
  1. xDDDDDDD
    Ответов:
    1
    Просмотров:
    1.002
  2. Constor
    Ответов:
    3
    Просмотров:
    1.048
  3. GreyDev
    Ответов:
    5
    Просмотров:
    1.738
  4. Mereng
    Ответов:
    2
    Просмотров:
    1.038
  5. НеВаЖнО
    Ответов:
    1
    Просмотров:
    1.363
Загрузка...

Поделиться этой страницей