Форум программистов, компьютерный форум CyberForum.ru

Заполнение массива рассчитанными значениями - C++

Восстановить пароль Регистрация
 
dudder88
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 25
24.11.2013, 03:33     Заполнение массива рассчитанными значениями #1
Мне нужно заполнить массив значениями M=Sin(n), где n=1,2,3...,50. У меня в массив записывается только первое значение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 double  s, n;
            double[] Aarray = new double[50];
            for (int i = 0; i < 50; i++)
            {
 
                for (n = 1; n <= 50; n++ )
                {
                    Aarray[i] = Math.Sin(n);
 
                }
            }
            for (int i = 0; i < 50; i++)
                Console.WriteLine(Aarray[i] + " ");
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
24.11.2013, 06:00     Заполнение массива рассчитанными значениями #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 // [url]http://www.cyberforum.ru/cpp-beginners/thread1016902.html[/url]
#include <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
 
int main(void)
{
    double M[50];   // Массив.
    double szPI = M_PI; // gcc 4.8.2 /usr/include/math.h - Число Пи. Переменная лишь для наглядности.
    for (int x = 0; x < 50; x++)
    {
        // Нужно перевезти градусы в радианы. На сколько я понял, нужно умножить на Пи и разделить на 180.
        M[x] = sin((x+1) * szPI / 180);  // gcc 4.8.2 /usr/include/c++/4.8.2/cmath
        cout << "sin(" << x + 1 << ")=" << M[x] << endl;
    };
 
    return 0;
}
Не знаю какой у Вас компилятор и какая ОС. У меня gcc 4.8.2 и GNU/Linux RFRemix 19.1 x86_64.
В Вашем случае могут отличаться файлы заголовков и название синуса и числа Пи.
Посмотрите в заголовочных файлах к Вашему компилятору (обычно каталог include в системной или установочной директории).
IchMors
96 / 92 / 4
Регистрация: 16.05.2010
Сообщений: 307
24.11.2013, 06:18     Заполнение массива рассчитанными значениями #3
Цитата Сообщение от dudder88 Посмотреть сообщение
в массив записывается только первое значение
Не совсем вас понял, но попытаюсь помочь

C++
1
2
3
4
5
6
7
8
 double  s, n;
            double[] Aarray = new double[50];
            for (int i = 0, n = 1; i < 50; i++, n++)
            {
                     Aarray[i] = Math.Sin(n);
            }
            for (int i = 0; i < 50; i++)
                Console.WriteLine(Aarray[i] + " ");
У вас внутренний цикл (с 6 по 9-ю строку) значение i не изменяется и по сути 50 раз в одну ячейку записываются данные. И каждый раз sin(50) является последним.
И зачем переменная s, если не секрет?
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
24.11.2013, 06:43     Заполнение массива рассчитанными значениями #4
Если конкретно Ваш кусок кода, то я не отвечаю за ошибки, но примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
 double  s, n;
            double[] Aarray = new double[50];
            for (int i = 0; i < 50; i++)
            {
 
                    Aarray[i] = Math.Sin(n+1); // Если от 1 до 50, а не от 0 до 49!
// Если Вы уверены, что он в градусах, а не в радианах.
// Иначе Aarray[i] = Math.Sin((n+1)*3,14159/180);
 
            }
            for (int i = 0; i < 50; i++)
                Console.WriteLine(Aarray[i] + " ");
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
24.11.2013, 08:17     Заполнение массива рассчитанными значениями #5
Цитата Сообщение от katsidelin Посмотреть сообщение
Не знаю какой у Вас компилятор и какая ОС
Человек, кажется, ошибся форумом.
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
24.11.2013, 13:17     Заполнение массива рассчитанными значениями #6
С c# никогда дело не имел, но читал, что он больше походит на Java, чем на c++.
В прочем, все языки высокого уровня, на мой взгляд, слегка друг друга напоминают.
AnyOne697
25.11.2013, 00:25     Заполнение массива рассчитанными значениями
  #7

Не по теме:

Цитата Сообщение от katsidelin Посмотреть сообщение
С c# никогда дело не имел, но читал, что он больше походит на Java, чем на c++.
В прочем, все языки высокого уровня, на мой взгляд, слегка друг друга напоминают.
По моему, это Java сейчас хочет быть похожей на C# чем наоборот. Но если знаешь C++, сложностей изучит C# нет, впрочем как и Java и тысячу других... К слову, они весьма и весьма удобны, не холивара ради, но стоит заметить, что Си++ потихоньку умирает. Конечно, те кто заняты стандартом это понимают и стараются реанимировать его, и получается, но пока ещё не очень много библиотек поддерживают его (новый Си++11 и далее), впрочем, как и компиляторы. Да и синтаксис у него вырвиглазный.

Yandex
Объявления
25.11.2013, 00:25     Заполнение массива рассчитанными значениями
Ответ Создать тему
Опции темы

Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru