Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
#1

Найти первый член последовательности

24.02.2010, 18:24. Просмотров 1398. Ответов 12
Метки нет (Все метки)

на языке С
Даны вещественные числа A<0 и B>0. Найти первый член последовательности, который не принадлежит отрезку [А,В].

плз, помогите
0
Миниатюры
Найти первый член последовательности  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2010, 18:24
Ответы с готовыми решениями:

Найти первый член последовательности
Как это осуществить?

Найти первый член последовательности
Найти первый член последовательности, для которого выполнено условие...

Найти первый член последовательности
Помогите начинающему программисту. Не могу понять как тут сделать.

Найти первый член последовательности, переделать с while
Найти первый член последовательности, для которого выполнено условие...

Найти первый отрицательный член последовательности
найти U-первый отрицательный член последовательности: cos(ctg(n)), n=1,2,3......

12
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
10.03.2010, 15:44  [ТС] #2
тут вроде, записываем в цикл саму формулу и считаем, а как найти именно элемент ?
0
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,321
10.03.2010, 19:01 #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
32
33
34
35
36
/*
*   Даны вещественные числа A<0 и B>0. Найти первый член последовательности,
*   который не принадлежит отрезку [А,В].
*/
#include <iostream>
#include <functional>
#include <algorithm>
#include <iterator>
 
class TestVal : public std::unary_function<int, bool> {
    int lover;
    int upper;
public:
    TestVal(int l, int u) : lover(l), upper(u) {}
    bool operator() (const int& val){
        return ( val < lover || val > upper );
    }
};
 
int main(){
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, A = 1, B = 7;
    size_t size = sizeof(arr) / sizeof(arr[0]);
 
    std::cout << "All sequence:" << std::endl;
    std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    int* i = (int*) std::find_if(arr, arr + size, TestVal(A, B));
    if ( i != arr + size ){
        std::cout << "First value not in range [" << A << ", " << B << "] is " << *i << std::endl;
    }
    else
        std::cout << "No elements out of range!" << std::endl;
 
    return 0;
}

Не по теме:

По слухам Бог землю за неделю создал, а Вам двух на то, чтобы начать решать простую задачку, не хватило. Вместо того, чтобы выпрашивать в каждой ветке, начали бы сами что-то делать, а там, глядишь, и помощники бы подтянулись...

2
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
10.03.2010, 19:09  [ТС] #4
ого, а как это на Си будет, я эт все не смогу перевести на Си( много чего тут я не знаю)

Цитата Сообщение от easybudda Посмотреть сообщение
class TestVal : public std::unary_function<int, bool> {
Цитата Сообщение от easybudda Посмотреть сообщение
bool operator() (const int& val){
Цитата Сообщение от easybudda Посмотреть сообщение
std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
Цитата Сообщение от easybudda Посмотреть сообщение
int* i = (int*) std::find_if(arr, arr + size, TestVal(A, B));
Добавлено через 2 минуты

Не по теме:

Кхм, я слухам не верю, нужны факты=). Ну а насчет задачи- завалили другими предметами, все не успеваю, та и болел я =(

0
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,321
10.03.2010, 19:13 #5
Цитата Сообщение от Лестат Посмотреть сообщение
много чего тут я не знаю
Ну логика-то проста и очевидна - перебирать по одному все члены последовательности, и, если очередной меньше А или больше В - значит нашолся...
0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
10.03.2010, 20:44  [ТС] #6
та это я понял, я не знаю как это на Си переделать =(

Добавлено через 1 час 28 минут
все равно не могу все переделать на Си=(
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
#include <stdio.h>
                                //не знаю какие
#include <functional>           //будут 
#include <algorithm>            //библиотеки
#include <iterator>             //на Си
 
class TestVal : unary_function(int, bool) {         //тут не знаю как переделать
    int lover;
    int upper;
 
    TestVal(int l, int u) : lover(l), upper(u) {}
    bool operator() (const int& val){
        return ( val < lover || val > upper );
    }
};
 
int main(){
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, A = 1, B = 7;
    size_t size = sizeof(arr) / sizeof(arr[0]);
 
    printf("All sequence:");
    std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));     //тут не знаю как переделать
    std::cout << std::endl;
 
    int* i = (int*) std::find_if(arr, arr + size, TestVal(A, B));               //тут не знаю как переделать
    if ( i != arr + size ){
        printf("First value not in range (A;B) is %d", *i); //тут не знаю правильно или нет?
    }
    else
        printf("No elements out of range!");
 
    return 0;
}
0
M128K145
Эксперт JavaЭксперт С++
8326 / 3546 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
11.03.2010, 02:11 #7
Лестат, это библиотека STL, которая есть только в C++, поэтому придется самостоятельно переписывать на С
1
Ivaneo
2 / 2 / 0
Регистрация: 01.08.2009
Сообщений: 16
11.03.2010, 07:43 #8
Будда как всегда в своем стиле. Представляю реакцию преподов, когда детишки приносят им такие решения задач
0
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,321
11.03.2010, 10:44 #9
Цитата Сообщение от Лестат Посмотреть сообщение
все равно не могу все переделать на Си=
Диржы!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void){
    int arr[] = { -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, A = -1, B = 7;
    size_t i, size = sizeof(arr) / sizeof(arr[0]);
    
    printf("All sequence:\n");
    for ( i = 0; i < size; ++i )
        printf("%d  ", arr[i]);
    
    for ( i = 0; i < size && arr[i] >= A && arr[i] <= B; ++i )
        ;
    if ( i < size )
        printf("\nFirst value out of range [%d, %d] is %d\n", A, B, arr[i]);
    else
        printf("\nNo values out of range [%d, %d]\n", A, B);
    
    return 0;
}
Добавлено через 1 час 24 минуты
Только это... Последовательность не забудь свою из формулы подставить...
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
18.03.2010, 17:35  [ТС] #10
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 25
int main()
{   int i;
    float arr[N];
    float A,B;
    printf("\nEnter A: ");
    scanf("%f",&A);
    printf("\nEnter B: ");
    scanf("%f",&B);
    printf("Posledovatel'nost:\n");
    arr[0]=0;
    for ( i = 0; i <= N; ++i )  
        arr[i]+=pow(-1,i)*(pow(2,0.5)+i) ;
        
    for ( i = 0; i <= N&&arr[i]>=A&&arr[i]<=B; ++i )
        printf("\n%f",arr[i]);
    if ( i < N )
        printf("\nPervoe znachenie ne prenadlezhashee [%f, %f] is %f\n", A, B, arr[i]);
    else
        printf("\nNet znachenii za [%f, %f]\n", A, B);
return 0;
}
тут что-то не получается, последовательность не выводит =(
а где ошибки - не знаю
0
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,321
18.03.2010, 18:01 #11
Цитата Сообщение от Лестат Посмотреть сообщение
for ( i = 0; i <= N; ++i )
вылет за границу массива
C
1
for ( i = 0; i < N; ++i )
1
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
18.03.2010, 18:23 #12
вот я тут пробовал))
осталось тока найти первое число не входящее в отрезок
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 25
int main()
{       int i;
        static float arr[N];
        float A,B,k;
        printf("Enter A: ");
        scanf("%f",&A);
        printf("\n");
        printf("Enter B: ");
        scanf("%f",&B);
        printf("\n");
 
        for ( i = 1; i <= N; ++i )
            arr[i]+=pow(-1,i)*(pow(2,0.5)+i);
                for ( i = 1; i <= N; ++i )
                printf(" %0.2f ",arr[i]);
     
 
                
        if( arr[i]>A && arr[i]<B || arr[i]<A && arr[i]>B )
               printf("\nNet znachenii za [%0.1f, %0.1f]\n", A, B); 
        else
            k=arr[i];
                printf("\nPervoe znachenie ne prenadlezhashee [%0.1f, %0.1f] is %0.2f\n", A, B, k);
 
}
вот тут шото надо исправить))
C
1
2
3
4
5
 if( arr[i]>A && arr[i]<B || arr[i]<A && arr[i]>B )
               printf("\nNet znachenii za [%0.1f, %0.1f]\n", A, B); 
        else
            k=arr[i];
                printf("\nPervoe znachenie ne prenadlezhashee [%0.1f, %0.1f] is %0.2f\n", A, B, k);
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
24.03.2010, 14:13  [ТС] #13
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 10
int main()
{   int i;
    static float arr[N];
    static float A,B,k;
    printf("Enter A: ");
    scanf("%f",&A);
    printf("\n");
    printf("Enter B: ");
    scanf("%f",&B);
    printf("\n");
    for ( i = 1; i < N; ++i )
        arr[i]+=pow(-1,i)*(pow(2,0.5)+i);
    for ( i = 1; i < N; ++i )
        printf(" %0.2f ",arr[i]);
        if ( arr[i] <= A && arr[i] >= B )
        {
            k=arr[i];
            printf("\nPervoe znachenie ne prenadlezhashee [%f, %f] is %0.2f\n", A, B, k);
        }
        else
            printf("\nNet znachenii za [%0.1f, %0.1f]\n", A, B); 
 
    return 0;
 
}
ну вот такое, но не выводится первое значение, которое не принадлежит отрезка [A;B]
что надо исправить, подскажите плз
0
24.03.2010, 14:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2010, 14:13

Найти первый отрицательный член последовательности
Найти U – первый отрицательный член последовательности Cos (Ctg n), n = 1, 2,...

Найти первый член последовательности меньший Е
Помогите с решением. Ввести с клавиатуры числа x, E. Последовательность а1,...

Найти первый отрицательный член заданной последовательности
Дано действительное число b 0. Последовательность а ,а ,… образована...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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