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

Как одномерный массив представить двумерным? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ киньте задания по лабам и курсачам где-то для 1-2 курса, заранее спасибо) http://www.cyberforum.ru/cpp-beginners/thread897318.html
по с++, delphi, c# хочу поучить пока время есть
C++ Разложить время по компонентам Возможно ли получить, скажем, текущую секунду системного времени, используя std::chrono, и не опускаясь при этом до уровня time_t? http://www.cyberforum.ru/cpp-beginners/thread897313.html
C++ В заданном предложении удалить самое короткое слово
4. В заданном предложении удалить самое короткое слово. Считать, что слова в тексте отделены друг от друга одним пробелом.
C++ Работа с прерываниями
Доброе время суток. Возник вопрос, недавно я начал учиться работать с прерываниями в DOS, но до конца еще не разобрался, а сейчас пишу программу для поиска файлов в каталоге. Но я не знаю как передать параметру DS:DX строку, т. к. при передачи (DS:DX=text;) возникает ошибка(undefinded symbol 'DX') ниже приведена справка по прерыванию Поиск в каталогах Часто перед программистом стоит задача...
C++ Вывести значение первого из элементов массива A (Аk), которые удовлетворяют неравенству Аk < A10 http://www.cyberforum.ru/cpp-beginners/thread897286.html
Данный массив А ненулевых целых чисел размера 10. Вывести значение первого из тех его элементов АК, которые удовлетворяют неравенство АК <A10.Якщо таких элементов нет, то вывести 0.
C++ Сочетание цыкла и разветвления Нужно изменить первый отрицательный елемент сумой парных елементов которые размещенны после него подробнее

Показать сообщение отдельно
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
10.06.2014, 01:49     Как одномерный массив представить двумерным?
Я как-то писал программу, которая может помочь понять: как с одно мерным массивом, можно работать, как с двухмерным.
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
#include "c:/MyLib/nn_p.h"
#include "c:/MyLib/winconsole.h"
#define s 254
int main()
{
    char fieldYX[49*80];
    for (int i = 0; i < 49*80;fieldYX[i++]=' ');
    Blinking();
    int g,yx=24*41;
    do
    {
        _XY();p(fieldYX);
        g=_getch();
        switch(g)
        {
        case 'q':if((yx-80)>=0)fieldYX[yx-=80]=s;break;
        case 'a':if((yx+80)<=49*80)fieldYX[yx+=80]=s;break;
        case 'o':if((yx-1)>=0&&(yx)%80!=0)fieldYX[--yx]=s;break;
        case 'p':if((yx+1)<=49*80&&(yx+1)%80!=0)fieldYX[++yx]=s;break;
        }
    }
    while(g!=27);
    return 0;
}
q-верх
a-вниз
o-влево
p-вправо

Добавлено через 14 минут
Прошу прощения, предыдущий исходник, ссылался на мою библиотеку.
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
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define s 254
HANDLE hCon =  GetStdHandle( STD_OUTPUT_HANDLE );
void Blinking(int off=99)// MEPYAHUE y5PATb
{   CONSOLE_CURSOR_INFO cci;
    cci.dwSize=off;
    cci.bVisible=false;
    SetConsoleCursorInfo(hCon,&cci);
}
void AltEnter()
{
    keybd_event(VK_MENU,
                0x38,
                0,
                0);
    keybd_event(VK_RETURN,
                0x1c,
                0,
                0);
    keybd_event(VK_RETURN,
                0x1c,
                KEYEVENTF_KEYUP,
                0);
    keybd_event(VK_MENU,
                0x38,
                KEYEVENTF_KEYUP,
                0);
}
void _XY(unsigned short X=0,unsigned short Y=0)// nO3UYUR KyPCOPA, D7R CUMBO7OB
{   COORD coord = { X, Y };
    SetConsoleCursorPosition(hCon, coord);
}
char fieldYX[49*80];// Обяъявил глобальной, чтобы в конце ноль не дописовать, чтобы мусор не выводить
int main()
{
    
    for (int i = 0; i < 49*80;fieldYX[i++]=' ');
    Blinking();
    AltEnter();
    int g,yx=24*41;
    do
    {
        _XY();printf(fieldYX);
        g=_getch();
        switch(g)
        {
        case 'q':if((yx-80)>=0)fieldYX[yx-=80]=s;break;
        case 'a':if((yx+80)<=49*80)fieldYX[yx+=80]=s;break;
        case 'o':if((yx-1)>=0&&(yx)%80!=0)fieldYX[--yx]=s;break;
        case 'p':if((yx+1)<=49*80&&(yx+1)%80!=0)fieldYX[++yx]=s;break;
        }
    }
    while(g!=27);
    delete hCon;
    return 0;
}
ESC-Выход
 
Текущее время: 00:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru