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

Разветвляющиеся алгоритмы. Одномерные массивы - C++

Восстановить пароль Регистрация
 
Василий_1983
1 / 1 / 0
Регистрация: 06.12.2011
Сообщений: 8
10.10.2012, 21:24     Разветвляющиеся алгоритмы. Одномерные массивы #1
Доброго времени суток. Я учусь на заочке, а там сами знаете как учат. Так вот дали задание, где надо 1.Определить, угрожает ли слон, расположенный на поле (n1,m1) шахматной доски, фигуре, расположенной на поле (n2,m2). (n1,m1, n2,m2 – натуральные числа от 1 до 8).
2.Сформировать целочисленный массив X (N), элементами которого являются случайные числа из диапазона [–3..3]. Определить, сколько раз в нем встретилось два подряд идущих нулевых элемента.
С языком С++ не был знаком. Помогите студенту заочнику...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2012, 21:24     Разветвляющиеся алгоритмы. Одномерные массивы
Посмотрите здесь:

Одномерные массивы, Работа со строками, Многомерные массивы. C++
програмир на языке С-разветвляющиеся алгоритмы C++
C++ Одномерные массивы. Алгоритмы поиска и сортировки.
Целочисленная арифметика ,Одномерные массивы ,Двумерные массивы C++
Разветвляющиеся алгоритмы: Верно ли, что 3 цифры четырехзначного числа одинаковы? C++
C++ Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100)
C++ Разветвляющиеся алгоритмы: перевод времени из минут в часы и минуты

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21500 / 10253 / 1669
Регистрация: 12.02.2012
Сообщений: 17,139
11.10.2012, 10:09     Разветвляющиеся алгоритмы. Одномерные массивы #2
Вот решение задачи о шахматных слонах:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
 
int main(int argc, char* argv[])
{
    int m1,n1,n2,m2;
 
    cout << "m1=";
    cin >> m1;
    cout << "n1=";
    cin >> n1;
 
    cout << "m2=";
    cin >> m2;
    cout << "n2=";
    cin >> n2;
 
    cout << (((m2-m1) == (n2-n1))? "Yes" : "No") << endl;
 
    return 0;
}
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
11.10.2012, 11:59     Разветвляющиеся алгоритмы. Одномерные массивы #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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
1.Определить, угрожает ли слон, расположенный на поле (n1,m1) шахматной доски,
фигуре, расположенной на поле (n2,m2). (n1,m1, n2,m2 – натуральные числа от 1 до 8).
*/
 
#include <iostream>
 
void ShowField(const int N1, const int M1, const int N2, const int M2, const int N, const int M)
{
    if ((M == M1) && (N == N1))
        std::cout << "B ";
    else if ((M == M2) && (N == N2))
        std::cout << "P ";
    else if ( ((M - M1) == (N - N1)) || ((M1 - M) == (N - N1)) )
        std::cout << "* ";
    else
        std::cout << ". ";
}
 
void ShowBoard(const int N1, const int M1, const int N2, const int M2)
{
    std::cout << "nm 1 2 3 4 5 6 7 8 " << "\n\n";
    for (int n = 1; n <=8; ++n)
    {
        std::cout << n << "  ";
        for (int m = 1; m <= 8; ++m)
            ShowField(N1,M1,N2,M2,n,m);
        std::cout << '\n';
    }
    std::cout << '\n';
}
 
int main(void)
{
    setlocale(0, "rus");
 
    int n1, m1, n2, m2;
    std::cout << "Слон находится на поле: " << '\n';
    std::cout << "n1 = "; std::cin >> n1;
    std::cout << "m1 = "; std::cin >> m1;
    std::cout << "Фигура находится на поле: " << '\n';
    std::cout << "n2 = "; std::cin >> n2;
    std::cout << "m2 = "; std::cin >> m2;
    std::cout << "\n\n";
    
    ShowBoard(n1,m1,n2,m2);
 
    std::cout << "Слон" << ( ((m2-m1) == (n2-n1)) ? " " : " не " ) << "угрожает фигуре" << '\n';
    system("pause");
    return 0;
}
Добавлено через 18 минут
Ну и вторая задача в довесок:
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
/*
2.Сформировать целочисленный массив X (N),
элементами которого являются случайные числа
из диапазона [–3..3]. Определить, сколько раз
в нем встретилось два подряд идущих нулевых элемента.
*/
 
#include <iostream>
#include <algorithm>
 
// (rand() % 7) вернёт случайное число от 0 до 6
// (-3) - получим случайное число от -3 до 3.
int getRand(void) { return rand() % 7 - 3; }
 
bool equalToZero(int a, int b)
{
    return ((a == 0) && (b == 0));
}
 
const int N = 20;
 
int main(void)
{
    setlocale(0, "rus");
 
    int Array[N];
    std::generate(Array, Array + N, getRand);
    std::cout << "Массив: ";
    std::copy(Array, Array + N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';
 
    int * p = Array;
    int cnt = 0;
    while (p < Array + N)
    {
        p = std::adjacent_find(p, Array + N, equalToZero);
        if (p != Array + N)
            ++cnt;
        ++p;
    }
    std::cout << "Два подряд идущих нулевых элемента встретилось " << cnt << " раз" << std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
11.10.2012, 11:59     Разветвляющиеся алгоритмы. Одномерные массивы
Ответ Создать тему
Опции темы

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