Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/24: Рейтинг темы: голосов - 24, средняя оценка - 4.83
Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
1

Программа, которая выводит на экран изображение шахматной доски

23.01.2013, 14:24. Просмотров 4703. Ответов 11
Метки нет (Все метки)

и снова привет!
мне опять нужна ваша помощь.
вот код, который жутко глючит(((
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
{
    // Напишите программу, которая выводит на экран изображение шахматной доски.
    //Черные клетки отображать "звездочкой", белые — пробелом.
    for (int ryad = 1; ryad <= 8; ryad++)
    {
        if (ryad % 2 == 0)
        {
            cout<<"*";
        }
        else
        {
            cout<<" ";
        }
        for (int kletka = 2; kletka <= 8; kletka++)
        {
            if (kletka % 2 == 0)
            {
                cout<<"*";
            }
            else
            {
                cout<<" ";
            }
            if (kletka % 8 == 0)
            {
                cout<<"\n";
            }
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 14:24
Ответы с готовыми решениями:

Написать программу, которая выводит на экран изображение шахматной доски
Написать программу, которая выводит на экран изображение шахматной доски.

Вывод на экран шахматной доски
Помогите пожалуйста написать код программы выводящей на экран шахматную доску....

Написать программу, которая выводит на экран изображение
Need help!!!! Помогите решить задачи на языке С++!!! 1)...

Программа обхода конем шахматной доски -рекурсией с++
Пока писала ,наделала кучу ошибок. Компилятор сильно ругается. Понятия не...

Программа, которая выводит на экран меню
Написать программу, которая выводит на экран меню в виде: Please enter one of...

11
3BEPb_TyTa
18 / 18 / 4
Регистрация: 18.05.2010
Сообщений: 83
23.01.2013, 14:32 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for (int ryad = 1; ryad <= 8; ryad++)
    {
        for (int kletka = 2; kletka <= 8; kletka++)
        {
            if ((kletka + ryad) % 2 == 0)
            {
                cout<<"*";
            }
            else
            {
                cout<<" ";
            }
            if (kletka % 8 == 0)
            {
                cout<<"\n";
            }
        }
    }
1
SatanaXIII
Почетный модератор
Эксперт С++
5773 / 2773 / 377
Регистрация: 01.11.2011
Сообщений: 6,743
Завершенные тесты: 1
23.01.2013, 14:34 3
Цитата Сообщение от Alika07 Посмотреть сообщение
вот код, который жутко глючит
В чем проблема то?

Выводит
C++
1
2
3
4
5
6
7
8
 * * * *
** * * *
 * * * *
** * * *
 * * * *
** * * *
 * * * *
** * * *
Красиво.
0
Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
23.01.2013, 14:41  [ТС] 4
не совсем( там в каждом ряду должно быть по 8 символов: 4 пробела и 4 *. но все равно спасибо. буду думать)

Добавлено через 1 минуту
Цитата Сообщение от SatanaXIII Посмотреть сообщение
В чем проблема то?
а должно выводить
-*-*-*-*
*-*-*-*-
-*-*-*-*
*-*-*-*-
-*-*-*-*
*-*-*-*-
-*-*-*-*
*-*-*-*-
(пробел тут почему-то не отображается)
0
UserAK
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
23.01.2013, 14:44 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{
    unsigned row, col;
    bool black = false;
 
    cout<<" ABCDEFGH\n";
    for( row = 0; row < 8; row++ ){
        cout<<8-row;
        for( col = 0; col <8; col++ ){
            cout<<(black ? "*" : " ");
            black = !black;
        }
        black = !black;
        cout<<8-row<<endl;
    }
    cout<<" ABCDEFGH\n";
 
    system("pause");
    return 0;
}
3
Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
23.01.2013, 14:47  [ТС] 6
спасибо
0
UserAK
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
23.01.2013, 14:52 7
даже думаю идеологически правильно было бы начать с 8 и уменьшать индекс строки

Добавлено через 29 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{
    unsigned row, col;
    bool black = false;
 
    cout<<" ABCDEFGH\n";
    for( row = 8; row > 0; row-- ){
        cout<<row;
        for( col = 0; col <8; col++ ){
            cout<<(black ? "*" : " ");
            black = !black;
        }
        black = !black;
        cout<<row<<endl;
    }
    cout<<" ABCDEFGH\n";
 
    system("pause");
    return 0;
}
0
SatanaXIII
Почетный модератор
Эксперт С++
5773 / 2773 / 377
Регистрация: 01.11.2011
Сообщений: 6,743
Завершенные тесты: 1
23.01.2013, 14:55 8
Вот такой еще псевдовариант. ))
C++
1
2
3
4
5
6
7
8
9
for (int ryad = 1; ryad <= 8; ryad++)
  {
    for(int kletka = 1; kletka <= 8; kletka++)
    {
    if(ryad % 2 == 0) cout << "* ";
    else cout << " *";
    }
  cout << "\n";
  }
0
Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
23.01.2013, 15:27  [ТС] 9
а еще можно как-то так, только я с endl напутала
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
// Напишите программу, которая выводит на экран изображение шахматной доски.
    //Черные клетки отображать "звездочкой", белые — пробелом.
    int ryad, kletka;
    cout<<" ABCDEFGH"<<endl;
    for ( ryad = 8; ryad >= 1; ryad--)
    {
        cout<<ryad<<endl;
        {
            for (kletka = 1; kletka <= 8; kletka++)
            {
                if ((kletka + ryad) % 2 == 0)
                {
                    cout<<" ";
                }
                else
                {
                    cout<<"*";
                }
            }
        }
        if (ryad % 8 == 0)
        {
            cout<<ryad<<endl;
        }
    }
    cout<<" ABCDEFGH"<<endl;
}
Добавлено через 1 минуту
Цитата Сообщение от 3BEPb_TyTa Посмотреть сообщение
if ((kletka + ryad) % 2 == 0)
спасибо за формулу!
0
SatanaXIII
Почетный модератор
Эксперт С++
5773 / 2773 / 377
Регистрация: 01.11.2011
Сообщений: 6,743
Завершенные тесты: 1
23.01.2013, 15:30 10
Во. Аскетично:
C++
1
2
3
4
5
6
7
8
9
for (int ryad = 1; ryad <= 8; ryad++)
  {
    for(int kletka = 1; kletka <= 8; kletka++)
    {
    if( (kletka+ryad) % 2 == 0) cout << "*";
    else cout << " ";
    }
  cout << "\n";
  }
0
UserAK
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
23.01.2013, 15:42 11
ещё немного и вы напишете простую шахматную программу где по очереди ходят белые и чёрные
0
vallinor
3 / 3 / 1
Регистрация: 20.04.2015
Сообщений: 21
17.05.2015, 11:28 12
Всем доброго времени суток. Раз пошло такое обсуждение выложу и свой вариант

Тут задача немного другая - надо напечатать доску только заданными командами вывода

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
//Рисуем шахматную доску операторами cout<< "* "; cout<<" "; cout<<"\n";
#include <cstdlib>  //библиотека управления процессом
#include <iostream> //библиотека ввод вывода
 
using namespace std;    //использование в программе команд библиотеки iostream
 
int main()  //главная функция
{   //начало программы
    
    int a=8,  //четная строка
        b=8,  //нечетная строка
        c=0;  //счетчик повторов
        
   for(c;c<=7;c++)  //задаем цикл повторов 
   {    //начало цикла
        if(c%2==0)  //если условие выполнения истинно
        {   //начало условия
            while(a!=0) //условие печати четной строки
            {   //начало условия
                cout<<"* "; //вывод на экран
                a--;    //уменьшаем переменную на 1
            }   //конец условия
            a=8;    //присваиваем переменной значение
            cout<<"\n"; //переход на новую строку
        }   //конец условия
        else    //Если условие выполнения ложно
        {   //начало условия
            cout<<" ";  //вывод на экран
            while(b!=0) //условие печати нечетной строки
            {   //начало условия
                cout<<"* "; //вывод на экран
                b--;    //уменьшение переменной на 1
            }   //конец условия
            b=8;    //присваиваем переменной значение
            cout<<"\n"; //переход на новую строку
        }   //конец условия
    }   //конец цикла
    system("pause");    //приостановка программы
    return 0;   //указывает на успешное завершение программы
}  //конец программы
Надеюсь кому-нибудь пригодится.
0
17.05.2015, 11:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2015, 11:28

Программа которая выводит на экран целые числа
Привет всем) я тут новичек и учу с++,задали мне тут такой вопрос:написать...

Программа которая выводит на экран геометрическую фигуру
Разработать программу, которая выводит на экран геометрическую фигуру, заполняя...

Программа которая выводит крест на экран (консоль)
Нужно написать программу с использованией for, язык C++


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru