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

Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину - C++

Восстановить пароль Регистрация
 
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
23.01.2012, 21:29     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #1
Нужно написать алгоритм чтобы каждый квадрат возрастал на одинаковую величину, ну и уменьшался тоже. Прошу помощи не в написании программы, а в написании этого алгоритма. Т. е. по сути вставка символа "-" и "|" в каждый квадрат.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
--------------------------------- 
|          |         |           |
|    n    |         |           |
|          |         |           |
---------------------------------
|          |         |           |
|          |         |           |
|          |         |           |
----------------------------------
|          |         |           |
|          |         |           |
|          |         |           |
---------------------------------
Добавлено через 7 часов 40 минут
КАк предолжите реализовывать этот алгоритм?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2012, 21:29     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину
Посмотрите здесь:

C++ как написать квадрат
Сколько чисел последовательности 2, 4, 6, 8, ... нужно взять, чтобы их сумма превысила 1000? Вывести величину последнего слагаемого и суммы. C++
C++ Если число отрицательных элементов матрицы превышает число положительных, увеличить каждый её элемент на величину среднего арифметического её элем-ов
C++ Увеличить каждый элемент массива на величину следующего элемента в массиве
Составить алгоритм, заменяющий каждый символ текста его ASCII кодом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
23.01.2012, 23:28     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <iomanip>
using namespace std;
 
typedef const unsigned int cui;
typedef unsigned int ui;
 
#define KOEF 3 // коэффициент удлинения вертикальной линии
// рисование полотна из прямоугольников
// входные параметры: ширина, высота одного прямоугольника, количество прямоугольников
void draw_area_rects( cui, cui, cui );
// рисование горизонтальной линии
void draw_hor_line( cui );
// рисование тела прямоугольника
void draw_hor_body( cui, cui );
 
int main() {
    draw_area_rects( 5, 5, 4 );
    return 0;
}
 
void draw_area_rects( cui width_one, cui height_one, cui count ) {
    for ( ui i = 0; i != count; ++i ) {
        draw_hor_line( width_one * count );
        for ( ui j = 0; j != height_one; ++j )
            draw_hor_body( width_one, count );
    }
 
    draw_hor_line( width_one * count );
}
 
void draw_hor_line( cui length ) {
    for ( ui i = 0; i != length; ++i )
        for ( ui j = 0; j != KOEF; ++j )
            cout << "-";
    cout << "-" << endl;
}
 
void draw_hor_body( cui length_one, cui count ) {
    cout << "|";
    cui curr_space = length_one * KOEF;
    for ( ui i = 0; i != count; ++i ) {
        cout << setw( curr_space ) << "|";
    }
    cout << endl;
}
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
23.01.2012, 23:52  [ТС]     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #3
Да мне не рисовать квадрат, а увеличивать (с помощью добаления символов) и уменьшать (с помощью их удаления). И просто алгоритм этих действий.
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
23.01.2012, 23:55     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #4
Непонятно.
Увеличивать и уменьшать ненарисованный прямоугольник?
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
23.01.2012, 23:58  [ТС]     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #5
Цитата Сообщение от Roof Посмотреть сообщение
Непонятно.
Увеличивать и уменьшать ненарисованный прямоугольник?
Я вывожу его из файла. Он такой же как на картинке.
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
24.01.2012, 00:03     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #6
А в каком виде он в файле хранится?
И как Вы его выводите?
Пишите подробно все - полностью пример вывода из файла.
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
24.01.2012, 00:06  [ТС]     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #7
Цитата Сообщение от Roof Посмотреть сообщение
А в каком виде он в файле хранится?
И как Вы его выводите?
Пишите подробно все - полностью пример вывода из файла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::ifstream in("file.txt");
    //не проверяю открылся ли файл, а надо!
    std::string str;
    while(getline(in, str)) {
        std::cout<<str<<std::endl;
    }
    return 0;
}
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
24.01.2012, 14:00     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #8
В общих чертах:
Можно считать строку из файла в str и работать с этой строкой - добавлять в нее символы( либо '-', либо пробел ).
Также при выводе на экран добавлять строки не из файла - так как высота тоже меняется.

Но я думаю, что это не самый лучший способ - хранить в файле непосредственно саму схему. Проще хранить параметры схемы в файле и выводить на экран уже с помощью процедур, принимающих данные параметры.
sonice
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 41
24.01.2012, 18:56  [ТС]     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #9
Есть какие либо идеи именно по этому алгоритму?
-=ЮрА=-
Заблокирован
Автор FAQ
25.01.2012, 13:06     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sonice Посмотреть сообщение
Нужно написать алгоритм чтобы каждый квадрат возрастал на одинаковую величину, ну и уменьшался тоже.
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
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <conio.h>
using namespace std;
 
void DrawGrid(int size, char smb)
{
    int i,j;
    for(i = 0; i < size*size; i++)
    {
        for(j = 0; j < size*size; j++)
        {
            if(i % (size - 1) == 0)
                cout<<"*";
            else
            if(j % (size - 1) == 0)
                cout<<"*";
            else
            {
                if
                (
                    (i + size/2) % (size - 1) == 0 
                    &&
                    (j + size/2) % (size - 1) == 0
                )
                    cout<<smb;
                else
                    cout<<" ";
            }
        }
        cout<<endl;
    }
}
 
int main()
{
    int size  = 3;
    char chr;
    while(true)
    {
        system("cls");
        cout<<"Grid size : "<<size<<" x "<<size<<endl;
        cout<<"D - size UP\n";
        cout<<"A - size DOWN\n";
        switch(chr = toupper(_getch()))
        {
        case 'D':
            size += 2;
            break;
        case 'A':
            if(3 < size)
                size -= 2;
            break;
        default:
            cout<<"Unsupported key pressed\n";
            break;
        }
        system("cls");
        DrawGrid(size, 'S');
        system("pause");
    }
    return 0;
}
D - увеличить
А - уменьшить
Миниатюры
Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 13:09     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину
Еще ссылки по теме:

Что исправить, чтобы фигуры квадрат и прямоугольник могли изменять размер? C++
C++ Написать программу пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часа
В массиве каждый элемент значение которого лежит вне заданного диапазона возвести в квадрат C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
25.01.2012, 13:09     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину #11
sonice, когда используем псевдографику, нужно чтобы символы имели одинаковый размер - могласись ширина у '-', '|' и пробелов разная, поэтому у тебя будут не квадраты с одинаковым числом элементов, а прямоугольники!Поэтому нужно использовать символы с одной шириной коими являются звёздочка и пробел. Помню ты просил ещё и символ внутри квадрата, смотри на функцию
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
void DrawGrid(int size, char smb)
- она заполняет серединки квадратов символом char smb
Yandex
Объявления
25.01.2012, 13:09     Написать алгоритм, чтобы каждый квадрат возрастал на одинаковую величину
Ответ Создать тему
Опции темы

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