Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
  Версия для печати (полностью) Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 11.06.2004
Откуда: Санкт-Петербург
Значит имеется 2 задачи по C++
1.Напишите программу, которая выводит на экран таблицу значений функции у = 2x^2–5х–8 в диапазоне от –4 до 4. Шаг изменения аргумента 0,5.
2. В заданном массиве X(N) замените нулями все отрицательные компоненты, непосредственно предшествующие его максимальной компоненте (первой по порядку, если их несколько).
Подмогните,кому несложно.

_________________
the cause is lost...we know everything...you'll all be slaves...nothing can stop this [DROP!]



Партнер
 

Member
Статус: Не в сети
Регистрация: 09.11.2005
Откуда: Актобе(KZ)\СПБ
Соратнег, тока мне надо на Квик Си. Моя тема ниже.
Ты кстати случаем не из ИТМО?


 

Member
Статус: Не в сети
Регистрация: 11.06.2004
Откуда: Санкт-Петербург
MAKCbIMKA писал(а):
Ты кстати случаем не из ИТМО

Нет.СЗТУ.

_________________
the cause is lost...we know everything...you'll all be slaves...nothing can stop this [DROP!]


 

Member
Статус: Не в сети
Регистрация: 10.01.2005
Что-то вот такое? Набрал на скорую руку прямо тут, в форуме, поэтому при реальной отладке может че-то и вылезти. Даже наверняка вылезет :)

Код:
#include <iostream.h>

int main()
{
    double x, y;

    x = -4.0;
    while (x <= 4.0)
    {
        y = 2*x*x - 5*х - 8;
        // можно типа оптимизировать:
        // y = x*(2*x - 5) - 8;

        cout << "X = " << x << "       Y = " << y << endl;
        x += 0.5;
    }
}


Код:
#define N 20;

int x[N] = { ... };
// в примере подразумеваем, что массив заполняется не нами

int main()
{
    int i, max, max_pos;

    max = x[0];
    max_pos = 0;

    // поиск максимума, начинаем со второго элемента
    for (i = 1; i < N; i++)
        // строго больше, поскольку нужно найти только первый максимум
        if (x[i] > max)
        {
            max = x[i];
            max_pos = i;
        }

    // второй проход - обнуляем отрицательные числа, стоящие перед максимумом
    for (i = 0; i < max_pos; i++)
        if (x[i] < 0)
            x[i] = 0;
}


 

Member
Статус: Не в сети
Регистрация: 11.06.2004
Откуда: Санкт-Петербург
Пасиб.
Завтра попробую.

_________________
the cause is lost...we know everything...you'll all be slaves...nothing can stop this [DROP!]


 

Member
Статус: Не в сети
Регистрация: 11.06.2004
Откуда: Санкт-Петербург
do[mini]k
Спасибо,добрый человек.
Во второй,правда,вылезло несколько ошибок,но в основном синтаксис.
а так всё работает - очень меня выручил.

_________________
the cause is lost...we know everything...you'll all be slaves...nothing can stop this [DROP!]


 

Member
Статус: Не в сети
Регистрация: 10.01.2005
Ну насчет синтаксиса я предупреждал :)
Вот, например, сам вижу сейчас одну ошибку - после #define точка с запятой не ставится.
Пожалуйста.


 

Member
Статус: Не в сети
Регистрация: 12.10.2005
Откуда: SPB
А такое осилите?

Определите структуру для представления абстракции материальной точки в пространстве. Материальная точка характеризуется тремя координатами и массой.
Напишите программу, считывающую из файла сведения о материальных точках, и сохраняющую их в массиве структур. Вычислите центр масс множества материальных точек.
Реализуйте обработку сформированного массива, в результате которой должен быть создан новый массив, содержащий только те точки, расстояния от которых до центра масс не превышает некоторого задаваемого пользователем числа.
Напечатайте новый массив в порядке возрастания расстояний точек от центра масс.

_________________
Intel Pentium жив!!!


 

Member
Статус: Не в сети
Регистрация: 10.01.2005
DJ Sanek
Это несложно, справится любой нормальный программист-второкурсник.
Но объем кода значительно больше, нужно реально писать и отлаживать программу, а у меня сейчас на компе даже компиляторы не установлены. Могу дать только самые приблизительные намётки, пляши от них.

Код:
// структура, описывающая материальную точку
struct point
{
    float x, y, z;  // координаты
    float m;        // масса
};

// функция, возвращающая квадрат числа
float sqr (const float x)
{
    return x*x;
}

// функция, вычисляющая дистанцию между двумя точками p1 и p2
float dist (const point p1, const point p2)
{
    return(sqrt(sqr(p1.x - p2.x) + sqr(p1.y - p2.y) + sqr(p1.z - p2.z)));
}


Формулы координат центра масс:
    Xц = sum(x[i]*m[i])/sum(m[i])
    Yц = sum(y[i]*m[i])/sum(m[i])
    Zц = sum(z[i]*m[i])/sum(m[i])

point p_mean;  // центр тяжести массива точек
float m_sum = 0;  // сумма масс

// n - количество точек
// p[] - массив
for (int i = 0; i < n; i++)
{
    m_sum += p[i].m;
    p_mean.x += p[i].x * p[i].m;
    p_mean.y += p[i].y * p[i].m;
    p_mean.z += p[i].z * p[i].m;
}

p_mean.x /= m_sum;
p_mean.y /= m_sum;
p_mean.z /= m_sum;


Конечно, код примитивный; повторяю, что это просто намётки.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan