Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 13.07.2012
Сообщений: 38

Работа с массивом поэлементно

22.10.2015, 16:25. Показов 1237. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я хочу перевести с языка MQL4 в С++ такое действие с массивом. Есть известный массив столбец xx1 константа mm=40 создаю новый через суммы. пишу следующее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
for ( int i=1; i <= mm; i++)
{
    double yy=0;
    for (int ii=0;ii<=121-mm*2;ii++)
    {
        if (i=mm)
            yy=yy+(xx1[ii]+xx1[mm*2+ii])*(xx1[mm+ii]);
        else
            yy=yy+(xx1[ii]+xx1[mm*2+ii])*(xx1[ii+i]+xx1[mm*2-i+ii]);
    }
    B[i]=yy;
}
Где я неправильно пишу.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2015, 16:25
Ответы с готовыми решениями:

Работа с массивом
Здравствуйте, недавно начал учиться на шарпе. Задача простенькая но вызывает у меня проблему using System; using...

Работа с массивом
Задание: Создать массив из 15 элементов, заполненный случайными числами в диапазоне от -100 до 100. Разработать методы: расчета...

Работа с массивом
Уважаемые спецыалисты! помогите с решением в среде MathCad! В массиве a1,a2,...,a20 заменить единицей все отрицательные элементы,...

6
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
22.10.2015, 18:40
Цитата Сообщение от elisseev2000 Посмотреть сообщение
if (i=mm)
C++
1
if(i == mm)
Для начала.

И, если что, индексация массивов в С++ с нуля начинается.
1
2 / 2 / 0
Регистрация: 13.07.2012
Сообщений: 38
23.10.2015, 12:40  [ТС]
да это так. а по структуре?

Добавлено через 17 часов 42 минуты
Я все исправил, но все равно при такой записи у меня не возвращается значения массива В. Почему так происходит. Может при присвоении значения уу через элемент массива происходит сбой. Помогите плз
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
23.10.2015, 13:14
Цитата Сообщение от elisseev2000 Посмотреть сообщение
Я все исправил
Версию кода полную покажи, угадать никто не сможет что там у тебя...
1
2 / 2 / 0
Регистрация: 13.07.2012
Сообщений: 38
23.10.2015, 18:38  [ТС]
вот даю функцию. есть входящий массив длиной 121
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#define WIN32_LEAN_AND_MEAN
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#define MT4_EXPFUNC __declspec(dllexport)
#pragma pack(push,1)
#pragma pack(pop)
 
MT4_EXPFUNC double __stdcall functionW1( double * Buffer1)
{
    double xx[121], xx1[121];
    double C2=0.0;
    double C1=0.0;
 
    for (int i=0; i<=120; i=i+1)
    {
        xx[i]=Buffer1[i];
        C2=C2+*(xx+i);
        C1=C1+xx[i]*i;
    }
    double D1=121.0*C1-7260.0*C2;
    double D2=583220.0*C2-7260.0*C1;
    double Af=D1/17862020.0;
    double Bf=D2/17862020;
    for (int i2=0; i2<=120; i2++)
    {
        xx1[i2]=xx[i2]-Af*i2-Bf;
    }
    double A[40][40], B[40];
    for (int mm=1; mm<=40; mm++) //////////////////////////////////////////////
    {
        for (int i=0; i<=mm-1; i++)
        {
            for (int j=0; j<=mm-1; j++)
            {
                double kk=0.0;
 
                for (int ii=0; ii<=122-2*mm; ii++)
                {
                    if ((i==mm)&&(j==mm))
                    {
                        kk=kk+xx1[mm+ii-1]*xx1[mm+ii-1];
                    }
                    else
                    {
                        if (j==mm)
                        {
                            kk=kk+(xx1[ii+i]+xx1[ii+2*mm-i-2])*xx1[mm+ii-1];
                        }
                        else
                        {
                            if (i==mm)
                            {
                                kk=kk+(xx1[ii+j]+xx1[ii+2*mm-j-2])*xx1[mm+ii-1];
                            }
                            else
                            {
                                kk=kk+(xx1[ii+i]+xx1[ii+2*mm-i-2])*(xx1[ii+j]+xx1[ii+2*mm-j-2]);
                            }
                        }
                    }
                }
                A[i][j]=kk;
            }
        }
 
        for ( int i=0; i<=mm-1; i++)
        {
            double yy=0.0;
            for (int ii=0; ii<=122-mm*2; ii++)
            {
                if (i==mm)
                    yy=yy+(xx1[ii]+xx1[mm*2+ii-2])*(xx1[mm+ii-1]);
                else
                    yy=yy+(xx1[ii]+xx1[mm*2+ii-2])*(xx1[ii+i]+xx1[mm*2-i+ii-2]);
            }
            B[i]=yy;
        }
    }
 
    return  (0);
}
Добавлено через 5 минут
пытался и так и так не работает
C2=C2+*(xx+i);
C1=C1+xx[i]*i;
ничего не работает хотя массив есть внутри и я его прочитать могу. С1 и С2 это суммы массива
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
23.10.2015, 22:43
Лучший ответ Сообщение было отмечено elisseev2000 как решение

Решение

Цитата Сообщение от elisseev2000 Посмотреть сообщение
не работает
Что значит "не работает"? Ошибка выполнения, или данные неверны на выходе?
Вообще очень хотелось бы получить подробное описание задачи, которую необходимо решить.

Сумма элементов массива может быть найдена так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
double functionW1(double const * buffer, size_t len)
{
    //........
 
    double C1 = 0.0;
    for(size_t i = 0; i < len; i++)
    {
        C1 += buffer[i];
    }
 
    //............
}

Пока что вижу еще ошибку.
Цитата Сообщение от elisseev2000 Посмотреть сообщение
for (int mm=1; mm<=40; mm++)
Индексы в С++ - с нуля.
C++
1
for (int mm=0; mm<40; mm++)
1
2 / 2 / 0
Регистрация: 13.07.2012
Сообщений: 38
24.10.2015, 05:29  [ТС]
Ошибку я нашел. Если заполнить массив в ручную например xx[]={1,2,34.67.........}, то все работает. Если массив заводить из вне , как это я делаю из mql4 начинаются фокусы, а именно на выходе любое значение (например сумма) или массивы принимают Empty Value (647894645356.0000000000). Как это починить надо думать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2015, 05:29
Помогаю со студенческими работами здесь

Работа с массивом
Добрый день! Есть вот такой массив Array ( =&gt; Array ( =&gt; Array ( ...

Работа с массивом
Я новичок в юнити. Мне задали задачу- создать массив с разными числами(положительными и отрицательными), затем нужно вывести в консоль...

Работа с массивом
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) Номер максимального по модулю элемента массива 2) Сумму...

Работа с массивом
подскажите как можно это реализовать: даны целые числа A1..A50, нужно найти сумму тех чисел которые удовлетворяют условию ABS(Ai)&lt;i*i

Работа с массивом
Задан целочисленный массив Х из 20 элементов, среди которых есть повторяющиеся. Определить наименьший и наибольший элементы массива. Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru