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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
#1

Сформировать массив y по формуле и выполнить указанные вычисления - C++

15.04.2014, 20:28. Просмотров 664. Ответов 13
Метки нет (Все метки)

Элементы вещественного одномерного массива х размером n > 20 сгенерированы датчиком псевдослучайных чисел в диапазоне [-10, 10]. Сформировать массив y по формуле и выполнить указанные вычисления. Формулу записать с помощью математических символов в привычном виде. Вывести на экран исходный массив и результаты решения задачи. Все числа округлять до сотых.

y[i] = x[i] / ln(abs(x[i] + 1.23)), i = l, 2, ..., n. Вычислить сумму отрица-тельных значений из первых 15 элементов массива у.

И вот примерный мой набросок:
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
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
float Y(float x);
 
int main(){
    SetConsoleOutputCP(1251);
float sum=0;
for(i=0;i<21;i++)
    {
        a[i]=rand()%15 -10;
        printf("%d ",a[i]);
    }
for(i=0;i<21;i++)
    {
        if (i%2==1)
        {
            sum = sum + Y(a[i]);
            printf("\n___%6.2f___,___%6.2f___",Y(a[i]),sum);
        }
    }
 
}
float Y(float x)
    {
     float f=0;
     f= x/log(abs(x))+1.23;
     return f;
    }

Не могли бы Вы исправить ошибки, и подсказать, как мне суммировать именно отрицательные числа первых 15-и элементов?
Заранее благодарю Вас!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 20:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать массив y по формуле и выполнить указанные вычисления (C++):

Сформировать массив по формуле - C++
Даны два произвольные одномерные массивы целых чисел с одинаковым количеством элементов n. сформировать массив 3 используя формулу M3 =...

Сформировать новый массив по заданной формуле - C++
Дан массив A из 10 элементов и массив B из 10 элементов. Сформировать массив C по следующей схеме: C=sqrt(A^2+B^2) Подскажите,что не...

Сформировать массив по заданной формуле и упорядочить по значению сренеарифметического - C++
Рассчитать значения 12-ти элементов массива Y по формуле {y}_{i}={i}^{2}-2i+19,3cosi. Вывести на экран этот массив и новый,...

вычислить и сформировать массив S[i], элементы которого вычисляются по формуле S[i]=pow(sin,2)(x[i])+x[i]. - C++
для x, изменяющегося от -1.3 до 1.2 с шагом 0.1 вычислить и сформировать массив S, элементы которого вычисляются по формуле ...

Даны три одномерных массива. Сформировать двумерный массив, вычисляя его элементы по формуле A[i]- B[j]*|C[k]| - C++
Даны три одномерных массива. Сформировать двумерный массив из элементов одномерных массивов созданного по формуле A- B*|C| где...

Используя заданное целое число выполнить указанные действия - C++
Дано: N - целое число Найти и вывести на экран: 1. Количество цифр в числе N; (через while) 2. Организовать массив, элементами...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
15.04.2014, 21:00 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
где объявление массива a?
C++
1
int a[50];
C++
1
a[i]=rand()%15 -10;
чтобы получить случайное число было в промежутке [-10, 10] должно быть
C++
1
a[i]=rand()%21 -10;
для суммирования отрецательных поставьте условие
C++
1
if(a[i]<0) sum+=a[i];
C++
1
f= x/log(abs(x))+1.23;
данная запись значит f=x/ln(|x|)+1.23, в задании приведена другая формула
0
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
15.04.2014, 21:15  [ТС] #3
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
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
float Y(float x);
 
int main(){
    SetConsoleOutputCP(1251);
int a[50],i;
float sum=0;
for(i=0;i<21;i++)
    {
        a[i]=rand()%21 -10;
        printf("%d ",a[i]);
    }
for(i=0;i<21;i++)
    {
        if(a[i]<0) 
        {
          sum+=a[i];
            printf("\n___%6.2f___,___%6.2f___",Y(a[i]),sum);
        }
    }
 
}
float Y(float x)
    {
     float f=0;
     f=x/log(abs(x))+1.23;
     return f;
    }
Вот, что у меня получилось по вашим заметкам, правда, Я так и не понял, как мне надо изменить ту формулу, в каком виде ее представить?
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
15.04.2014, 21:23 #4
1.
C++
1
2
3
4
float Y(float x)
 {
     return x/(log(fabs(x))+1.23);
  }
2. Почему a[50], а цикл только до 21-го элемента?
3.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
float y[21];
for(i=0;i<21;i++)
    {
        y[i]=Y(a[i]);
        if(y[i]<0) 
        {
          sum+=a[i];
        }
        printf("\n___%6.2f",y[i]);
   }
    printf("\n%6.2f___",sum);
 
 
}
0
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
15.04.2014, 21:32 #5
вот так вижу код вашей программы
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
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
float Y(float x);
 
int main(){
SetConsoleOutputCP(1251);
float sum=0;
int n;
printf("Vvedite kolichestvo elimentov v massive\n");
scanf("%d",&n);
 
int *x=new int[n];
float *y=new float [n];
int i;
for(i=0;i<n;i++)
    {
        x[i]=rand()%21 -10;
        printf("%d ",x[i]);
    }
   
for(i=0;i<n;i++)
    y[i]=Y(x[i]);
 
for(i=0;i<15;i++)
{
     if (y[i]<0) sum+=y[i];
}
printf("\n");
 for(i=0;i<n;i++)
     printf("%6.2f ", int(y[i]*100+0.5)/100.0);
 printf("\nsum=%f\n",sum);
 getch();
}
float Y(float x)
{
     float f=0;
     f= x/log(abs(x+1.23));
     return f;
}
Цитата Сообщение от zss Посмотреть сообщение
Почему a[50], а цикл только до 21-го элемента?
думаю потому что используется 21 элемент, а 50 это максимальное число элементов, хотя гораздо удобнее через переменную для быстрого изменения количиства используемых элементов

C++
1
int(y[i]*100+0.5)/100.0
это округление до сотых
1
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
15.04.2014, 21:33 #6
Делай выводы:

10 : i: необъявленный идентификатор
10 : i: необъявленный идентификатор
10 : i: необъявленный идентификатор
12 : a: необъявленный идентификатор
12: i: необъявленный идентификатор
13: a: необъявленный идентификатор
13: i: необъявленный идентификатор
15: i: необъявленный идентификатор
15: i: необъявленный идентификатор
15: i: необъявленный идентификатор
17: error C2065: i: необъявленный идентификатор
19: a: необъявленный идентификатор
19: i: необъявленный идентификатор
20: error C2065: a: необъявленный идентификатор
20: i: необъявленный идентификатор
28: =: преобразование "double" в "float", возможна потеря данных
0
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
15.04.2014, 21:38 #7
Цитата Сообщение от Ярослав Никитин Посмотреть сообщение
Делай выводы:
пожалуйста просматривайте тему до конца, а не только 1-е сообщение, в последнем своём сообщении автор привёл исправленный код без ошибок в самом коде( а вот задание не верно выполнено)
0
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
15.04.2014, 21:38  [ТС] #8
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
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
float Y(float x);
 
int main(){
    SetConsoleOutputCP(1251)
 
int a[50],i;
float sum=0;
for(i=0;i<50;i++)
    {
        a[i]=rand()%50 -10;
        printf("%d ",a[i]);
    }
for(i=0;i<50;i++)
    {
        if(a[i]<0) 
        {
          sum+=a[i];
            printf("\n___%6.2f___,___%6.2f___",Y(a[i]),sum);
        }
    }
 
}
float Y(float x)
    {
     float f=0;
     f=x/(log(fabs(x))+1.23);
     return f;
    }
Вы так говорите?
0
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
15.04.2014, 21:41 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Mistikkx Посмотреть сообщение
Вычислить сумму отрица-тельных значений из первых 15 элементов массива у.
C++
1
sum+=a[i];
вычисляете сумму массива x, всех его отрицательных элементов

C++
1
 printf("\n___%6.2f___,___%6.2f___",Y(a[i]),sum);
на каждой итерации выводите текущее значение суммы, зачем? вам нужно найти сумму и вывести её

кроме того я уже привёл правильный, рабочий код по вашему заданию посмотрите выше
1
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
15.04.2014, 21:42  [ТС] #10
[]http://src.screeny.ru/uploads/90/6b/e2/8c/63b00d8c.jpg?secure=1TPNH6hL-N6NcG4Lb-ctFA&expires=1397583920[/]
Вот как твоя программа выглядит.
0
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
15.04.2014, 21:43 #11
Цитата Сообщение от kiborgdelto Посмотреть сообщение
пожалуйста просматривайте тему до конца, а не только 1-е сообщение, в последнем своём сообщении автор привёлисправленный код без ошибок в самом коде( а вот задание не верно выполнено)
учту
0
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
15.04.2014, 21:49 #12
не могу открыть картику, не переходит почему то (
всё работает сам смотри
http://ideone.com/bsO54Y
0
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
15.04.2014, 21:59  [ТС] #13
Преогромное спасибо Вам! И всем остальным участникам тоже!

Добавлено через 4 минуты

В моем компиляторе он не находит сумму :
0
Миниатюры
Сформировать массив y по формуле и выполнить указанные вычисления  
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
18.04.2014, 09:37 #14
на последний элемент массива у посматрите
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 09:37
Привет! Вот еще темы с ответами:

Создать структуру, содержащую сведения по учету растений и выполнить указанные действия с ней - C++
Создать структуру, содержащую сведения по учету растений.Программа должна производить: 1)Подсчет количества растений указанного...

Составить функцию для вычисления Y, используя указанные зависимости - C++
Доброго времени суток! Помогите слабой, непонятная проблема. Составить функцию для вычисления Y, используя следующие зависимости: Y...

Написать программу, описывающую структуру, содержащую указанные поля и выполняющую над ней указанные действия - C++
Требуется помощь 1. Описать структуру с именем PRICE, содержащую следующие поля: - GOODS – название товара; - SHOP – название...

Упорядочить указанные элементы матрицы,двумерный массив - C++
МОДИФИКАЦИЯ ДВУМЕРНЫХ МАССИВОВ Дана квадратная матрица целых чисел (nxn, где 1&lt;=n&lt;=10) Упорядочить по возрастанию элементы в столбце с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.04.2014, 09:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru