Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
5 / 5 / 0
Регистрация: 23.11.2011
Сообщений: 83
1

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента

12.08.2012, 16:09. Показов 1976. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно сама задачка: В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) Количество элементов массива, меньших С.
2) Сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
3) Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом все остальные.
4) Вычесть из положительных элементов элемент с номером k1, а к отрицательным прибавить элемент с номером k2, нулевые элементы оставить без изменения.
И просьба проверить вот эту еще задачку, вроде все правильно:
Для заданных преподавателем функции и отрезка [a,b] составить программу вычисляющую интеграл по
а) формуле средних прямоугольников;
б) по формуле трапеций;
в) по формуле Симпсона.
-Для вычисления интеграла по каждой, из перечисленных, формуле создать отдельную функции.
- Создайте меню, обеспечивающие выбор квадратурной формулы.
- Вычисления провести для N и 2N
Вот сам интеграл:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\int \limits_0^1 \cos \left( x^2 \right) \mathrm {d}x

Вот код
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define N 1000
float fun(float x)
{
      float y; 
      y=pow(cos(x),2); 
      return(y);
}
 
float func1(float (*fun)(float), float a, float b);
float func2(float (*fun)(float), float a, float b);
float func3(float (*fun)(float), float a, float b);
 
void main()
{
     float a, b, s, c;
     int o;
     c=0.0;
     printf("Vvedite a, b\n");
     scanf("%f %f", &a, &b);
     printf("viberite sposob integrirovania cos(x):\n");
     printf("1. Po formule pramoygolnikov\n");
     printf("2. Po formule trapecii\n");
     printf("3. Po formule Simpsona\n");
     scanf("%d",&o);
     switch(o)
     {
         case 1: printf("Integ=%f", func1(fun,a,b)); break;
         case 2: printf("Integ=%f", func2(fun,a,b)); break;
         case 3: printf("Integ=%f", func3(fun,a,b)); break;
         default: printf("Oshibka\n");
     }
getch();
}
 
float func1(float (*fun)(float), float a, float b)
{
      float h, s, x;
      int i;
      h=(b-a)/N;
      s=0.0;
      for(i=0; i<N; i++)
      {
               x=a+i*h;
               s+=fun(x);
      }
      return (s*h);
}
 
float func2(float (*fun)(float), float a, float b)
{
      float h, s, x, q;
      int i;
      q=(fun(a)+fun(b))/2.0;
      h=(b-a)/N;
      s=0.0;
      for(i=0; i<(N-1); i++)
      {
               x=a+(i+1)*h; s+=fun(x);
      }
      return ((s+q)*h);
}
 
float func3(float (*fun)(float), float a, float b)
{
      double h, s, x=a;
      int i;
      h=(b-a)/N;
      s=0.0;
      for(i=0; i<N; i++)
      {
               s+=(fun(x)+4*fun(x+(h*0.5))+fun(x+h));
               x+=h;
      }
      return (s*(h/6.0));
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2012, 16:09
Ответы с готовыми решениями:

Найти сумму элементов массива, расположенных после последнего отрицательного элемента
В одномерном массиве, состоящим из n целых элементов, вычислить: -количество положительных...

Вычислить сумму целых частей элементов массива расположенных после последнего отрицательного элемента
Pomogite Pojaluista Вычислить сумму целых частей элементов массива, расположенных после последнего...

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного...

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного...

3
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
12.08.2012, 20:37 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Для заданных преподавателем функции и отрезка [a,b] составить программу вычисляющую интеграл по
а) формуле средних прямоугольников;
б) по формуле трапеций;
в) по формуле Симпсона.
-Для вычисления интеграла по каждой, из перечисленных, формуле создать отдельную функции.
- Создайте меню, обеспечивающие выбор квадратурной формулы.
- Вычисления провести для N и 2N

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
#define e 0.001
 
double rect_i(double a, double b, int n)
{
   double result = 0, h = 0;
   int i = 1; h = (b - a) / n;
   while (i <= n) 
       result+=sin(pow(a + h * (i++ - 0.5), 2));
   return result*=h;
}
 
double trapezoid_i(double a,double b,double eps)
{
    double s = 1, sn = 101;
    double h = 0.00;
    
    double s0 = (sin(pow(a,2))+sin(pow(b,2)))*.5;
    double s1 = sin(pow(0.5*(a+b),2));
 
    for (int n = 4; fabs(s-sn)>eps; n*=2)
    { 
        sn=s; h=(b-a)/n;
        for(int i = 0; i < n / 2; i++)
            s1+=sin(pow(a+(2*i+1)*h,2));
        s=h*(s0+s1);
    }   
    
    return s;
}
 
double simp_sum(double n)
{
    double S1 = 0, S2 = 0;
 
    double a = 0, b = log(2.0);
    double h = (b - a) / (2 * n);
 
    for (int i = 1; i <= 2*n-1; i++)
    {
        if (i % 2 == 0) S1 += 2 * sin(pow(a + i * h,2));
        else S1+= 4 * sin(pow(a + i * h,2));
    }
 
    S2=((sin(pow(a,2))+sin(pow(b,2))+S1))*h/3;
 
    return S2;
}
 
double simp_i(double N)
{
    double result = 0.00;
    double q = 2 * N, w = 4 * N;
    double c = simp_sum(q);
 
    double d = c;
    do { q*=2; c = simp_sum(q); } 
    while(fabs(d-c) > e);
 
    return simp_sum(q);
}
 
int main()
{
    double a = 2, b = 8; int n = 4; double N = 5.5;
    printf("rectangle method: a = %lf b = %lf n = %d result = %lf \n", a, b, n, rect_i(a, b, n));
    printf("trapezoid method: a = %lf b = %lf e = %lf result = %lf \n", a, b, e, trapezoid_i(a, b, e));
    printf("simpson method: N = %lf result = %lf \n", N, simp_i(N));
    
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/... 1a60357dd0
Миниатюры
Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента  
0
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
12.08.2012, 21:12 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Собственно сама задачка: В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) Количество элементов массива, меньших С.
2) Сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
3) Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом все остальные.
4) Вычесть из положительных элементов элемент с номером k1, а к отрицательным прибавить элемент с номером k2, нулевые элементы оставить без изменения.

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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
 
#define N 10
 
void swapf(double& d1, double& d2);
 
int main()
{
    double* B = new double[N];
    for (int i = 0; i < N; i++)
        B[i] = (rand() % (N-1)) + ((double)rand() / RAND_MAX) + 1; 
 
    for (int z1 = 0; z1 < N; z1++)
        printf("%4.2f ",B[z1]);
    printf("\n");
    
    double C = 0.0;
    printf("\nC = "); scanf("%f",&C);
 
    int count = 0;
    for (int k = 0; k < N; k++)
        if (B[k] < C) count++;
 
    printf("count = %d\n",count);
 
    int d1 = N-1; int sum = 0;
    while (B[d1] > 0 && d1 >= 0) d1++;
    for (int u = d1; u < N; u++)
        sum+=(int)B[u];
 
    printf("\nsum = %d\n",sum);
 
    int max = 0;
    for (int l = 0; l < N; l++)
        if (B[l] > B[max]) max = l;
 
    double e = B[max] * 0.2;
    for (int s = 0; s < N; s++)
        if (fabs(B[s]-B[max]) > e)
        {
            int r = s+1;
            while (fabs(B[r]-B[max]) > e && r < N) r++;
            swapf(B[s],B[r]);
        }
 
    for (int z2 = 0; z2 < N; z2++)
        printf("%4.2f ",B[z2]);
    printf("\n");
 
    int k1 = 0, k2 = 0;
    printf("k1 = "); scanf("%d",&k1);
    printf("k2 = "); scanf("%d",&k2);
 
    for (int t = 0; t < N; t++)
        if (B[t] > 0) B[t]-=B[k1];
        else if (B[t] < 0) B[t]+=B[k2];
 
    for (int z3 = 0; z3 < N; z3++)
        printf("%4.2f ",B[z3]);
    printf("\n");
 
    _getch();
 
    return 0;
}
 
void swapf(double& d1, double& d2)
 { double _td = d1; d1 = d2; d2 = _td; }
1
5 / 5 / 0
Регистрация: 23.11.2011
Сообщений: 83
12.08.2012, 23:24  [ТС] 4
Спасибо, буду завтра разбираться
0
12.08.2012, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2012, 23:24
Помогаю со студенческими работами здесь

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
2) сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
Необходимо вычислить сумму целых частей элементов массива, расположенных после последнего...

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

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
Здравствуйте, помогите пожалуйста с написанием кода Условие: В одномерном целочисленном массиве...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru