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

Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Lothair
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 3
01.12.2011, 21:52     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #1
Народ добрый, помогите пожалуйста. Пошел учиться на инженера-электрика, а нам информатик зверь какой-то попался. Заставляет писать проги на С++, а у нас группа в нём вообще ни бум-бум. Если в паскале хоть чуть-чуть разбираюсь, то С++ вообще никак. Напишите плз прогу, я думаю она очень легкая для знающих язык.
Вот: Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.

И еще небольшая просьба. Есть программа на паскале, а нужно чтобы была в С++. Поможет кто-нибудь перевести? Вот на паскале:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program try;
var
s,k :string;
i :integer;
begin
writeln('Введите строку:');
readln(s);
writeln('Введите подстроку:');
readln(k);
for i:=1 to length(s) do
begin
if copy(s,i,length(k))=k then
delete(s,i,length(k));
end;
writeln('Результат:');
writeln(s);
end.
Если кто поможет - большое человеческое спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 21:52     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.
Посмотрите здесь:

Определить сколько раз меняется знак в последовательности C++
Разработать программу,которая определяет сколько раз меняется знак заданной целочисленной последовательности C++
C++ Определить, сколько раз в последовательности меняется знак.
C++ Массив: Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которой происходит смена знака.
Дана последовательность ненулевых целых чисел, оканчивающаяся нулем. Определить, сколько раз в этой последовательности меняется знак C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
01.12.2011, 22:07     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
int main()
{
    int i;
    string s,k;
    cout <<"Введите строку: ";
    cin >> s;
    cout <<"Введите подстроку: ";
    cin >> k;
    i=strlen(s);
}
дальше не знаю, паскаль забыл((
скажи что за программа то, я тебе напишу
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.12.2011, 22:08     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #3
diman94x, похоже на удаление из строки s все вхождения строки k.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
01.12.2011, 22:13     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #4
как вариант)
массив заполняется вводом с клавиатуры

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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
/*
Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.
*/
 
class count_sign_s //: public unary_function<int, void>
{
public:
    count_sign_s() : last_element(), cnt() {}
 
    void operator()(int element)
    {
        if(   (element < 0) && (last_element > 0)
           || (element > 0) && (last_element < 0) )
        {
            ++cnt;
        }
 
        last_element = element;
    }
 
    operator int()
    {
        return cnt;
    }
 
private:
    int last_element;
    int cnt;
};
 
 
int main()
{
 
    vector<int> v = {1,2,-6,3,-7,-4,-2,5,-6,3,2,1,-9};  //7
 
    cout << for_each(v.begin(), v.end(), count_sign_s());
 
 
    return 0;
}
Lothair
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 3
01.12.2011, 22:16  [ТС]     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #5
Программа на паскале та, которая удаляет из введенной строки все подстроки совпадающие с заданной.

Спасибо всем!
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
01.12.2011, 22:17     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #6
Цитата Сообщение от PointsEqual Посмотреть сообщение
как вариант)
массив заполняется вводом с клавиатуры

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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
/*
Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.
*/
 
class count_sign_s //: public unary_function<int, void>
{
public:
    count_sign_s() : last_element(), cnt() {}
 
    void operator()(int element)
    {
        if(   (element < 0) && (last_element > 0)
           || (element > 0) && (last_element < 0) )
        {
            ++cnt;
        }
 
        last_element = element;
    }
 
    operator int()
    {
        return cnt;
    }
 
private:
    int last_element;
    int cnt;
};
 
 
int main()
{
 
    vector<int> v = {1,2,-6,3,-7,-4,-2,5,-6,3,2,1,-9};  //7
 
    cout << for_each(v.begin(), v.end(), count_sign_s());
 
 
    return 0;
}
Вы издеваетесь?))))) Не думаю что новички поймут))))
Можно же намного проще=))
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
01.12.2011, 22:23     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #7
Цитата Сообщение от diman94x Посмотреть сообщение
Можно же намного проще=))
да, но вдруг ТС захочется так..)
+
ему надо С++ style
Lothair
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 3
01.12.2011, 22:25  [ТС]     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #8
Компилятор показывает ошибку в этой строке: "vector<int> v = {1,2,-6,3,-7,-4,-2,5,-6,3,2,1,-9}; //7"
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
01.12.2011, 22:28     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #9
Цитата Сообщение от Lothair Посмотреть сообщение
Компилятор показывает ошибку в этой строке
значит ваш компилятор не поддерживает/не включен новый стандрт

замени ту строку на последовательность
v.push_back(4);
v.push_back(-4);
v.push_back(4);
и тд
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
01.12.2011, 22:31     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #10
Цитата Сообщение от soon Посмотреть сообщение
похоже на удаление из строки s все вхождения строки k.
В этом случае вот простой алгоритм:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
#define N 1024
 
int main( )
{
    char s[N], t[N], *ps;
    int i, j, k, len;
    printf("s = "); fgets(s, N, stdin);
    printf("t = "); scanf("%s", t);
    len = strlen(t);
    ps = s;
    while (ps = strstr(ps, t))
       strcpy(ps, ps + len);
    puts(s);
    return 0;
}
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
01.12.2011, 22:39     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #11
Цитата Сообщение от Lothair Посмотреть сообщение
Программа на паскале та, которая удаляет из введенной строки все подстроки совпадающие с заданной.
Спасибо всем!
что то я не въехал в тему
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
01.12.2011, 22:44     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #12
Цитата Сообщение от PointsEqual Посмотреть сообщение
что то я не въехал в тему
например, если s="abcxyzabc", t="abc", то после удаления получить s="xyz"
пост 10
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
01.12.2011, 22:45     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #13
Цитата Сообщение от Thinker Посмотреть сообщение
например, если s="abcxyzabc", t="abc", то после удаления получить s="xyz"
я не про это)

- сначала ему надо было знаки посчитать потом уже строки пошли

ну ладно. ТС доволен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2011, 22:47     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.
Еще ссылки по теме:

Определить, сколько раз в последовательности меняется знак числа C++
C++ Определить, сколько раз меняется знак в последовательности чисел, введенных с клавиатуры, применив массив
Определить сколько раз меняется знак в последовательности чисел C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
01.12.2011, 22:47     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры. #14
Цитата Сообщение от PointsEqual Посмотреть сообщение
- сначала ему надо было знаки посчитать потом уже строки пошли

Не по теме:

два в одном, как говорится)

Yandex
Объявления
01.12.2011, 22:47     Написать программу, определяющую сколько раз меняется знак в последовательности чисел введенных с клавиатуры.
Ответ Создать тему
Опции темы

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