rnrullez
1

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

06.11.2011, 00:12. Показов 3269. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте люди добрые,учусь на первом курсе и пока тяжело всё идёт. Столкнулся с проблемой для себя. Задача: Вводятся начальный член и шаг арифметической прогрессии. Вводится также число. Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом. Всё это в Visual studio на языке Си. В общем прошу , если можете написать полноценный код,ибо только по нему я могу разобрать всё по частям и понять суть,если можете то с комментариями,так я более усвою материал.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2011, 00:12
Ответы с готовыми решениями:

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

Вывести первые 10 членов арифметической прогрессии с заданным начальным членом и шагом
Вывести первые 10 членов арифметической прогрессии с заданным начальным членом и шагом.

Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и шагом
Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и...

Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и шагом
Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и...

5
11 / 11 / 2
Регистрация: 21.03.2010
Сообщений: 47
06.11.2011, 00:21 2
какова длина прогрессии?
0
82 / 82 / 24
Регистрация: 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;
}
держи
0
385 / 229 / 12
Регистрация: 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;
}
без лишних массивов и для вещественных чисел. только ввод вывод на сишный заменить, если уж такое жесткое требование.
первый вариант условия работает, но дабы быть независимым от представления вещественных чисел в компьютере, лучше воспользоваться вторым.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
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))
Решить надо циклом, а не формулой, хотя в данном случае и если бы это была не учебная задача, а реальная подзадача, то формульное решение лучше, но оно не всегда возможно, бывает, что нужен именно цикл, вот и надо познакомиться с циклами.
0
Paporotnik
06.11.2011, 13:11     Определить, принадлежит ли введенное число арифметической прогрессии с введенными начальным членом и шагом
  #6

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2011, 13:11

Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и шагом (через while)
Вывести члены арифметической прогрессии, которые не превышают 100, с заданым начальным членом и...

Массив: Заполнить массив из пяти элементов членами арифметической прогрессии с введёнными первым членом и шагом...
Написать программу, заполняющую одномерный массив из пяти элементов членами арифметической...

Найти суму n членов арифметической прогресии с заданым начальным членом и шагом
Найти суму n членов арифметической прогресии с заданым начальным членом и шагом(используя...

Вывести первые 10 членов геометрической прогрессии с заданным начальным членом и шагом
Решить задачу сперва с использованием цикла while , а затем for: Вывести первые 10 членов...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru