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

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

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

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

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

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

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

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

Перевод из Qbasic в C++ - C++
вот что пока вышло: #include <iostream> #include <math.h> #include <string> using namespace std; void main() { ...

Перевод с QBasic в С/С++ - C++
Есть программа для QBasic, она нужна в С/С++ RANDOMIZE TIMER CLS DIM k(5) k(1) = 0 k(2) = 0 К(3) = 0 k(4) = 0

Перевести с QBasic на С++ - C++
Добрый день.Имеется рабочий код на QBasic,хочу переписать его на C++.Пока не получается,требуется ваша помощь. CLS INPUT "ширина...

Перевод программы из QBasic в C/C++ - C++
Перевод программы из QBasic в C/C++: CLS INPUT st$ stn$ = "" INPUT s11$ INPUT s12$ k1 = LEN(st$) k2 = LEN(s11$) i = 1 ...

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Polugut
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 9
12.10.2008, 14:59     Массивы,инициализация(qbasic'овские read,data) #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. С++-программеры, не пинайте сильно за такую реализацию, я просто решил попробовать реализовать в стиле Бэээйсика. Вижу, что можно выйти за пределы массива. Но самое быстрое, что в голову пришло. Еще придумал как это функциями сделать, можно и объектами сделать, но думать дольше, и знаков больше. И не очень нужно.
Сиплюсплюс
Сообщений: n/a
13.10.2008, 07:32     Массивы,инициализация(qbasic'овские read,data) #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     Массивы,инициализация(qbasic'овские read,data) #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;
}
Сиплюсплюс
Сообщений: n/a
13.10.2008, 22:30     Массивы,инициализация(qbasic'овские read,data) #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     Массивы,инициализация(qbasic'овские read,data) #6
Сиплюсплюс,
Для вопросов стоит создавать новые темы,чтобы не вызывать неразбериху.

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

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

по поводу кубейсиковской даты...ну,смахивает на обычный массив,без муторных слов restore read и data. Так что насчет того,что будет без этой даты длиннее - сомневаюсь.
Yandex
Объявления
13.10.2008, 22:56     Массивы,инициализация(qbasic'овские read,data)
Ответ Создать тему
Опции темы

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