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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
Сиплюсплюс
Сообщений: n/a
#1

Массивы,инициализация(qbasic'овские read,data) - C++

12.10.2008, 10:28. Просмотров 2448. Ответов 5
Метки нет (Все метки)

Недавно начал изучать С++.
Маленький совет: книги не покупай, а скачивай через интернет.(если есть возможность конечно)
Некоторые книжки не сразу понятны, и ты бысторо сможешь её поменять.
Конечно в таком варианте есть много минусов, но главный плюс это: Экономичность.

Вообще на сайт зашел что бы задать очередной вопрос:
Напомню что перехожу на С++ с QBASICа. Скажите пожалуйста есть ли что нибудь подобное бейсиковским:
READ (Считать из DATA очередную переменную)
RESTORE (С какого места считывать из DATA)
DATA (собственно сами переменные)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2008, 10:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы,инициализация(qbasic'овские read,data) (C++):

map assigment of read only data member или WTF? - C++
задача:из acm.timus.ru 1100. Таблица результатов Ограничение времени: 1.0 секунды Ограничение памяти: 16 МБ Старое программное...

Read PNG in C - C++
Всем привет. Подскажите как на С (без привлечения сторонних библиотек) прочитать PNG файл. В конечном итоге хотелось бы получить...

использование read - C++
как ввести строку символов из консоли используя read? Добавлено через 38 секунд в языке си

template+read only - C++
Доброго времени суток, уважаемые форумчане! Суть проблемы такая: Есть некий класс: template<typename T> class Tree { public: ...

read(); write(); - C++
Вот такая вот небольшая программка fstream myFileReader("hardware.dat", ios::in | ios::out); int example = 1; ...

assignment of read-only location - C++
Здравствуйте! Столкнулся с вот такой ошибкой и не знаю как ее исправить. enum { finish = 0, start = 300, wall = 9999, empty_cell = -1 };...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Polugut
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 9
12.10.2008, 14:59 #2
Цитата Сообщение от Сиплюсплюс Посмотреть сообщение
Недавно начал изучать С++.
Напомню что перехожу на С++ с QBASICа. Скажите пожалуйста есть ли что нибудь подобное бейсиковским:
READ (Считать из DATA очередную переменную)
RESTORE (С какого места считывать из DATA)
DATA (собственно сами переменные)
Можно наверное так:

int READ=0;
int DATA[n]; // n заменяется на к-во данных в массиве
DATA []={n1,n2,n...};

// Далее по программе
int A=DATA[READ]; READ++;

// Если надо сбросить
READ=n; //n- нужная позиция

P.S. С++-программеры, не пинайте сильно за такую реализацию, я просто решил попробовать реализовать в стиле Бэээйсика. Вижу, что можно выйти за пределы массива. Но самое быстрое, что в голову пришло. Еще придумал как это функциями сделать, можно и объектами сделать, но думать дольше, и знаков больше. И не очень нужно.
0
Сиплюсплюс
Сообщений: n/a
13.10.2008, 07:32 #3
Мне нужно что бы работала такая программа
Код
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
int main()
{
 int pole[3][3];
 for (int cicl=1;cicl<3;cicl++)
 {
   cout << "\n";
   if (cicl == 1)
     {
     int pole[3][3] = {1,1,1,2,2,2,1,1,1};
     }
   if (cicl == 2)
    {
    int pole[3][3] = {1,2,1,1,2,1,1,2,1};
    }
   for (int x = 0; x < 3; x++)
   {
   cout << "\n";
   for (int y = 0; y < 3; y++)
   {
   cout << pole [x] [y] << "   ";
   }
   }
 }
system("pause");
return 0;
}
она работает, но немного не так. Почему массив не обновляется?
Polugut
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 9
13.10.2008, 10:39 #4
Цитата Сообщение от Сиплюсплюс Посмотреть сообщение
она работает, но немного не так. Почему массив не обновляется?
Код
 int pole[3][3];
 for (int cicl=1;cicl<3;cicl++)
 {
   cout << "\n";
   if (cicl == 1)
     {
     int pole[3][3] = {1,1,1,2,2,2,1,1,1};
Насколько понял, так неправильно писать. Сначало определение массива, (int pole[3][3] потом его повторное определение с инициализацией (int pole[3][3] = {1,1,1,2,2,2,1,1,1}. Тип (в данном случае int) указывается только при определении, и потом не пишется. А инициализация (int pole[3][3] = {1,1,1,2,2,2,1,1,1} делается только раз, потом так массив не переделать, надо обращаться по номерам элементов. Хотя можно наверное и так, но переменные, существуют только внутри своих скобок {}, а снаружи ьни не работают. Т.е. заново определенные массивы существуют только до закрывающей скобки }.

Вот пример определения и инициализации массива, с заполнением тройками, как это надо делать. Тройки для примера, если данные должны быть разнородны, то и кода больше будет.
Код
#include <iostream.h>

int main()
{
    int pole[3][3] = {1,1,1,2,2,2,1,1,1};

     for (int x = 0; x < 3; x++)
     {

            for (int y = 0; y < 3; y++)
            {
                pole[x][y]=3;
                cout << pole [x] [y] << " ";
            };
     };



return 0;
}
0
Сиплюсплюс
Сообщений: n/a
13.10.2008, 22:30 #5
То что код будет намного больше чем если в с++ были бы (read и data) я уже понял.
Делаю логическую детскую игру типа лабиринтика с некими предметами.
Кстати на QBASICе я её забацал за два дня не напрягаясь(там exe'шник нельзя делать, а то бы и не заморачивался я).
В с++ проблема в том что каждый уровень мне придётся прописывать в отдельной подпрограмме. А каждый уровень это массив 20 на 15. А в игре три разных вида подигры. И хотелось бы по 20levl'ов в каждой. Вобщем гемморой.
Может кто нибудь знает аналоги (read и data).
Или что нибудь подобное с уровнями (напоминают loderunner) делал?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
13.10.2008, 22:56 #6
Сиплюсплюс,
Для вопросов стоит создавать новые темы,чтобы не вызывать неразбериху.

По поводу массивов. "уровни" объявлять внутри программы - странное явление. Создайте входной файл, и оттуда считывайте их. // fopen.fscanf,fprintf //

Вообще,я понимаю,что вы не профессионально нацелены на язык. Но все же учтите такой момент :не стоит называть переменные транслитом("cicl"). Смотрится ужасно,можно ошибиться. для цикловых переменных часто используют i,j,k,l.

по поводу кубейсиковской даты...ну,смахивает на обычный массив,без муторных слов restore read и data. Так что насчет того,что будет без этой даты длиннее - сомневаюсь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2008, 22:56
Привет! Вот еще темы с ответами:

Read() блокирует поток - C++
есть у меня процесс который записывает данные в пайп функцией write(), другой процесс считывает их read(), нормально не блокируясь. НО...

Read Structure From File - C++
Собственно запускаем такую программу. Файл обязательно должен быть бинарным. #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include...

Функции write и read - C++
Здравствуйте, уважаемые! Вопросы по работе с файлом через fstream. Возник вопрос по поводу записи структуры в нужном месте файла....

Read page faults - C++
Есть программка, которая в цикле до конца считывает данные с stdin при указанном размере буффера. Вопрос почему происходят page fault's ?...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.10.2008, 22:56
Ответ Создать тему
Опции темы

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