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

Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
rnrullez
Сообщений: n/a
06.11.2011, 00:12     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом #1
Здравствуйте люди добрые,учусь на первом курсе и пока тяжело всё идёт. Столкнулся с проблемой для себя. Задача: Вводятся начальный член и шаг арифметической прогрессии. Вводится также число. Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом. Всё это в Visual studio на языке Си. В общем прошу , если можете написать полноценный код,ибо только по нему я могу разобрать всё по частям и понять суть,если можете то с комментариями,так я более усвою материал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2011, 00:12     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом
Посмотрите здесь:

C++ Заполнить массив первыми 10 членами арифметической прогрессии с известным первым членом прогрессии А и разницей Р.
Найти суму n членов арифметической прогресии с заданым начальным членом и шагом C++
Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и шагом C++
Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и шагом (через while) C++
C++ Найти производную всех членов арифметической прогрессии от 10 до 30 с шагом 1,15
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MaXiDRoM_90
10 / 10 / 1
Регистрация: 21.03.2010
Сообщений: 47
06.11.2011, 00:21     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом #2
какова длина прогрессии?
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
06.11.2011, 01:18     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#define N 10 //макрос для размерности массива
 
int main()
{
    int a[N], d, i, s;
    printf("Write a[0] = ");
    scanf("%d", &a[0]);
    printf("Write step = ");
    scanf("%d", &d);
 
    for(i = 1; i < N; i++) { //цикл для построения прогресси до 10
        a[i] = a[0] + d * (i - 1); //собственно само построение прогрессии
        printf("a[%d] = %d\n", i, a[i]);
    }
    printf("Write number for search = ");
    scanf("%d",&s);
    for(i = 0; i < N; i++) 
        if (a[i] == s) printf("Number searched, a[%d] = %d", i, s); //поис заданного числа
 
    return 0;
}
держи
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
06.11.2011, 04:10     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main()
{
   double a0,k,x;
 
   cout<<"a0: ";
   cin>>a0;
   cout<<"k: ";
   cin>>k;
   cout<<"x: ";
   cin>>x;
   
   if ((x-a0)/k==int((x-a0)/k))       //либо if (fabs((x-a0)/k-int((x-a0)/k))<E), где E - некоторая точность. 
        cout<<"good";     
   else cout<<"not good";
 
   return 0;
}
без лишних массивов и для вещественных чисел. только ввод вывод на сишный заменить, если уж такое жесткое требование.
первый вариант условия работает, но дабы быть независимым от представления вещественных чисел в компьютере, лучше воспользоваться вторым.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.11.2011, 07:28     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом #5
Цитата Сообщение от MaXiDRoM_90 Посмотреть сообщение
какова длина прогрессии?
По такому условию бесконечна.

Добавлено через 7 минут
Цитата Сообщение от LostCoast Посмотреть сообщение
#define N 10 //макрос для размерности массива
здесь массив не нужен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
int main ()
{
 int a;
 int b;
 int h;
 double x;
 std::cin>>a>>h>>b;
 std::cout<<endl;
 for (x=a; x<b; x+=h);
 std::cout<<"Число b ";
 if (x==b)
 {
  std::cout<<"входит ";
 }
 else
 {
  std::cout<<"не входит ";
 }
 std::cout<<"в последовательность с начальным членом "<<a<<" и шагом "<<h<<endl;
 return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Paporotnik Посмотреть сообщение
double a0,k,x;
double сравнивается не надёжно.

Добавлено через 41 секунду
Цитата Сообщение от Paporotnik Посмотреть сообщение
if ((x-a0)/k==int((x-a0)/k))
Решить надо циклом, а не формулой, хотя в данном случае и если бы это была не учебная задача, а реальная подзадача, то формульное решение лучше, но оно не всегда возможно, бывает, что нужен именно цикл, вот и надо познакомиться с циклами.
Paporotnik
06.11.2011, 13:11     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом
  #6

Не по теме:

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

Yandex
Объявления
06.11.2011, 13:11     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом
Ответ Создать тему
Опции темы

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