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

Вывод на экран шахматной доски - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Цикл для подсчета произведения элементов массива http://www.cyberforum.ru/cpp-beginners/thread19148.html
#include <stdio.h> #include<math.h> int main()// главная функция программы { int i,u,g,a,p=1;double b; printf("Programma opredelyaet srgeom vsex chisel posledovatelnosti\n");//описание программы printf("vvedite chislo chisel posledovatelnosti\n");//запрос на ввод размерности массива
C++ Даны три целых числа. Вывести на экран те из них, которые являются положительными. 1. Даны три целых числа. Вывести на экран те из них, которые являются положительными. 2. Найти все двузначные числа, сумма квадратов цифр которых делится на 13. 3. В одномерном массиве, состоящем из N целых злементов, найти номер первого отрицательного злемента, дающего при делении на 5 остаток 2. 4. Дан двумерный массив вещественных чисел 7x7.Найти координаты максимального элемента. ... http://www.cyberforum.ru/cpp-beginners/thread19142.html
C++ Замена пар цифр в файле на буквы лат. алфавита и вывод на экран результата
Ночи доброй. Есть текстовый файл содержащий ряд чисел (00010203 и тд.). Каждая пара чисел соответствует символу лат. алфавита (само же число получается как первое вхождение в текстовую строку этой буквы -- т.е зависит от длины самой строки и расположения его в строке). Суть проблемы такова: В общем случае, как реализовать замену всех числовых пар в файле (скажем 00) на соответствующий...
C++ 3-х мерный массив+Строки+функции
Задача: Обработать n1 матриц размером n*m. Элемент строка. В каждой из матриц есть одно слово состоящее только из цифр. Найти его, преобразовать, записать в новый массив. Дополнение: -Обязательно использовать функции(Ввод матрицы, поиск слова, и тд) -Использовать динамическую память -Использовать операторы C++ нельзя. Только С Главная проблема это выделить память под всю эту конструкцию и...
C++ Поиск кратчашего пути в ненагруженном неорграфе от любой вершины до любой http://www.cyberforum.ru/cpp-beginners/thread19105.html
Задача: необходимо найти кратчайший путь в ненагруженном неорграфе от любой вершины до любой. Соображения: алгоритм Флойда не годится (О(n^3) - много). Общая идея - построение остовного дерева и определение пути с помощью оного. Кратчайший путь в данном случае находится с помощью глубинного обхода (вершина, от которой считается расстояние, объявляется корнем остовного дерева). Просьба: скинуть...
C++ Поиск в строке по образцу. Подсчитайте количество указанных цепочек в файле, найденных по образцу. Причем в образце символ "+" означает один произвольный символ, а символ "*" – произвольную цепочку длиной не более 5 символов. Помогите разобраться с "+" и "*", никак не соображу как условие записать.:help: подробнее

Показать сообщение отдельно
Grayswandir
 Аватар для Grayswandir
10 / 10 / 1
Регистрация: 05.02.2010
Сообщений: 12
05.02.2010, 22:51     Вывод на экран шахматной доски
Доброго времени суток.
Даны 2 задачи на вариацию шахматной доски.

1. Высота и ширина доски задаётся пользователем.
Нарисовать шахматную доску в консоли. Размер ячейки доски фиксирован - одно знакоместо.
Чёрные клетки - символ 'x', белый - символ '-'.
Тут сложностей нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        int h, w, i, j;
        
    cout << "Введите высоту шахматной доски.\nh = ";
    cin >> h;
    cout << "Введите ширину шахматной доски.\nw = ";
    cin >> w;
 
    for (i=0; i<h; i++)
    {
        for (j=0; j<w; j++)
        {
            ((j%2 && i%2) || (!(j%2) && !(i%2))) ? (cout << 'x') : (cout << '-');
        }
        cout << '\n';
    }
    cout << "\n\n\n";
2. условия те же, только размер ячейки не фиксирован, а задаётся пользователем.
Т.е., например, высота доски - 3, ширина - 4, размер ячейки - 3 знакоместа.
На выводе должно быть так:

xxx---xxx---
xxx---xxx---
xxx---xxx---
---xxx---xxx
---xxx---xxx
---xxx---xxx
xxx---xxx---
xxx---xxx---
xxx---xxx---

И вот тут у меня проблемы.
Помогите пожалуйста подсказкой как это реализовать, готовый код не надо - хочется самому разобраться.
Из обязательных условий: использование только циклов - никаких массивов, консольный вывод (cout).

Добавлено через 3 часа 53 минуты
Вторую задачу-таки победил

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
#include <iostream>
using namespace std;
void main()
{
    setlocale (LC_CTYPE, ".1251");  
    int h, a, w;
    cout << "Введите высоту шахматной доски.\nh = ";
    cin >> h;
    cout << "Введите ширину шахматной доски.\nw = ";
    cin >> w;
    cout << "Введите величину ячейки шахматной доски.\na = ";
    cin >> a;
    for (int i=0; i<h; i++)
    {
        for (int jj=0; jj<a; jj++)
        {
            for (int j=0; j<w; j++)
            {
                for (int ii=0; ii<a; ii++)
                {
                ((i+j)%2) ? (cout << '-') : (cout << 'x');
                }
            }
            cout << '\n';
        }
    }
    cout << "\n\n\n";
}
Если у кого-то есть идеи по оптимизации решения - с интересом бы посмотрел.
 
Текущее время: 16:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru