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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.62
CapitainJack
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 6
20.02.2011, 16:55     Определить, является ли вводимая последовательность геометрической прогрессией #1
С клавиатуры вводятся вещественные числа. Признак конца ввода – 0. Определить, является ли вводимая последовательность геометрической прогрессией.

Как записать код программы в с++???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 16:55     Определить, является ли вводимая последовательность геометрической прогрессией
Посмотрите здесь:

Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией C++
Определить, является ли вводимая последовательность упорядоченной по убыванию. C++
Определить является ли последовательность арифметической прогрессией C++
C++ Определить, является ли целочисленный массив арифметической или геометрической прогрессией.
C++ Проверить, является ли последовательность прогрессией или нет?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Топорик
7 / 7 / 1
Регистрация: 15.02.2011
Сообщений: 19
20.02.2011, 17:17     Определить, является ли вводимая последовательность геометрической прогрессией #2
Вот так. Только протестируй её.
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
double mas[100]={0},del=0;
int i,j,flag=1;
    for(i=0;;i++)
    {
        cin>>mas[i];
        if(mas[i]==0)
            break;
    }
del=mas[0]/mas[1];
    for(j=0;j<(i-1);j++)
        if((mas[j]/mas[j+1])==del);
        else
            flag=0;
    if(flag==0)
        cout<<"This not progressiv\n";
    else 
        cout<<"This is progressiv\n";
system("PAUSE");
    return 0;
}
CapitainJack
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 6
20.02.2011, 17:45  [ТС]     Определить, является ли вводимая последовательность геометрической прогрессией #3
Вышенапичанный код не работает! Караул!

Добавлено через 58 секунд
можно это записать попроще без разных библиотек типо
#include "stdafx.h" и массивов???

Добавлено через 52 секунды
Используя только оператор while...
Топорик
7 / 7 / 1
Регистрация: 15.02.2011
Сообщений: 19
20.02.2011, 18:07     Определить, является ли вводимая последовательность геометрической прогрессией #4
В visual studio 2010 все работает.
Библиотеку stdafx.h вписывает компилятор.
Без массивов нельзя. For поменяй на while, если так хочется
CapitainJack
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 6
20.02.2011, 18:40  [ТС]     Определить, является ли вводимая последовательность геометрической прогрессией #5
Надо сделать примерно так...

#include<iostream.h>
void main(){
int n,min s=0;
cin>>n;
while(n!=0){

и так далее...
поможет кто нибудь???
tro9an
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 59
Завершенные тесты: 1
20.02.2011, 19:02     Определить, является ли вводимая последовательность геометрической прогрессией #6
чел не наглей, за тебя уже всё сделали.
если надо через while, то просто поменяй цикл for на while
CapitainJack
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 6
20.02.2011, 19:15  [ТС]     Определить, является ли вводимая последовательность геометрической прогрессией #7
tro9an, а что толку из того что сделали? сам попробуй в билдере запустить и увидешь что компилятор ошибку выдаст
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
20.02.2011, 19:15     Определить, является ли вводимая последовательность геометрической прогрессией #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
33
/*С клавиатуры вводятся вещественные числа. Признак конца ввода – 0.
Определить, является ли вводимая последовательность геометрической прогрессией.
 
без массивов*/
 
#include <iostream>
 
int main()
{
    setlocale(2, ".1251");
    long cur, prev, ratio;
    std::cin >> prev >> cur;
    if (!prev || !cur)
    {
        std::cout << "Ввод закончен!";
        return 0;
    }
    ratio = cur/prev;
    while (1e-3) //просто бесконечный цикл, не спрашивайте про 1e-3, вместо него можно поставить любое число, кроме 0 =)
    {
        std::cin >> prev;
        if (!prev)
            break;
        if ((prev/cur) != ratio)
        {
            std::cout << "Это не прогрессия!";
            return 0;
        }
        std::swap(prev, cur);
    }
    std::cout << "Это прогрессия!";
    return 0;
}
DAgot_
 Аватар для DAgot_
22 / 22 / 1
Регистрация: 03.01.2010
Сообщений: 68
20.02.2011, 19:17     Определить, является ли вводимая последовательность геометрической прогрессией #9
Вот без массивов и с while'ом:
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
#include    <iostream>
 
int main(){
 
    double a, b, c = 1, d;
    bool no = true;
 
    std::cout << "Enter number:\t";
    std::cin >> a;
    std::cout << "\n";
 
    std::cout << "Enter number:\t";
    std::cin >> b;
    std::cout << "\n";
 
    d = a / b;
 
    while (c != 0){
 
        std::cout << "Enter number:\t";
        std::cin >> c;
        std::cout << "\n";
 
        if(c != 0){
            if(b / c != d)
                no = true;
            else
                no = false;
        }
 
        b = c;
 
    }
 
    if(!no)
        std::cout << "Yes" << "\n";
    else
        std::cout << "No" << "\n";
 
    return 0;
}
Говнокод тот ещё, но вроде работает.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.02.2011, 19:17     Определить, является ли вводимая последовательность геометрической прогрессией #10
Цитата Сообщение от Vandris Посмотреть сообщение
C++
1
std::swap
+
C++
1
#nclude <algorithm>
CapitainJack
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 6
20.02.2011, 19:49  [ТС]     Определить, является ли вводимая последовательность геометрической прогрессией #11
Цитата Сообщение от DAgot_ Посмотреть сообщение
Вот без массивов и с while'ом:
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
#include    <iostream>
 
int main(){
 
    double a, b, c = 1, d;
    bool no = true;
 
    std::cout << "Enter number:\t";
    std::cin >> a;
    std::cout << "\n";
 
    std::cout << "Enter number:\t";
    std::cin >> b;
    std::cout << "\n";
 
    d = a / b;
 
    while (c != 0){
 
        std::cout << "Enter number:\t";
        std::cin >> c;
        std::cout << "\n";
 
        if(c != 0){
            if(b / c != d)
                no = true;
            else
                no = false;
        }
 
        b = c;
 
    }
 
    if(!no)
        std::cout << "Yes" << "\n";
    else
        std::cout << "No" << "\n";
 
    return 0;
}
Говнокод тот ещё, но вроде работает.

а как записисать это без пространства имен - std ???

например:
std::cout << "Hello, world!" << std::endl;


а надо:

cout << "Hello, world!" <<endl;


просто если я начал стирать "std::" и программа работать бросает тогда....помогите плиз...
tro9an
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 59
Завершенные тесты: 1
20.02.2011, 19:56     Определить, является ли вводимая последовательность геометрической прогрессией #12
в самом вверху напиши using namespace std;
CapitainJack
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 6
20.02.2011, 19:58  [ТС]     Определить, является ли вводимая последовательность геометрической прогрессией #13
Цитата Сообщение от DAgot_ Посмотреть сообщение
Вот без массивов и с while'ом:
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
#include    <iostream>
 
int main(){
 
    double a, b, c = 1, d;
    bool no = true;
 
    std::cout << "Enter number:\t";
    std::cin >> a;
    std::cout << "\n";
 
    std::cout << "Enter number:\t";
    std::cin >> b;
    std::cout << "\n";
 
    d = a / b;
 
    while (c != 0){
 
        std::cout << "Enter number:\t";
        std::cin >> c;
        std::cout << "\n";
 
        if(c != 0){
            if(b / c != d)
                no = true;
            else
                no = false;
        }
 
        b = c;
 
    }
 
    if(!no)
        std::cout << "Yes" << "\n";
    else
        std::cout << "No" << "\n";
 
    return 0;
}
Говнокод тот ещё, но вроде работает.
а как будет выглядить алгортим данной программы ввиде блок схемы???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2011, 20:01     Определить, является ли вводимая последовательность геометрической прогрессией
Еще ссылки по теме:

Является ли одномерный массив геометрической прогрессией? C++
Определить, является ли данная последовательность арифметической прогрессией C++
Заполнить массив геометрической прогрессией 2, 6, 18, 54... C++

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

Или воспользуйтесь поиском по форуму:
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
20.02.2011, 20:01     Определить, является ли вводимая последовательность геометрической прогрессией #14
asics, у меня gcc 4.5.1 и без algorithm компилирует я даже начал было думать что std::swap в iostream, а проверять все лень было
Yandex
Объявления
20.02.2011, 20:01     Определить, является ли вводимая последовательность геометрической прогрессией
Ответ Создать тему
Опции темы

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