Суббота, 27 Апреля 2024, 05:57

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Форум игроделов » Программирование » C/C++ » Массивы и метки в C++
Массивы и метки в C++
MrIncrofДата: Вторник, 30 Августа 2011, 11:46 | Сообщение # 1
Lite Programmer
Сейчас нет на сайте
Привет, сейчас мы рассмотрим массивы и метки, массивы - это своеобразные стопки в одной переменной, массивы в языке С++ задаются так, сначала вызывается обычная переменная, только со скобками [], внутри которых нужно прописать количество значений в стопке, например, можно написать:
Code
int Massive[5];

В этом коде мы задали количество значений в стопке на 5. Теперь посмотрим на метки, метки задаются переменной, только без всякого оператора, но с двоеточием (:) в конце, например:
Code
GOTO1:
SUPER:
TEST:

И так далее, переход к меткам осуществляется оператором goto, например, чтобы переместиться к метке SUPER, нам нужно прописать:
Code
goto SUPER;

Всё очень просто. Теперь мы сделаем чтение из значений в массиве, а когда прочитали, переместиться назад, вот и код:
Code
#include <iostream> //Подключаем ввод-вывод
using namespace std; //Подключаем пространство имён
int main() //Главный класс
{
    SKIP: //Метка
    setlocale(LC_ALL, "Russian"); //Делаем Русский язык
    int ms[5]; //Наш массив
    for (int i = 0; i <= 5; ++i) //Через цикл мы записываем значения в стопку (массив)
    {
     cout << "Введите число № " << i << endl; //Смотрим
     cin >> ms[i]; //Вводим
    }
    int ii; //Переменная для прочтения массива
    cout << "Прочитать массив номер " << endl; //Смотрим
    cin >> ii; //И записываем нужный нам массив
    cout << "Число " << ms[ii] << endl; //После этого смотрим, какое там число
    goto SKIP; //И в конце перемещаемся к метке
}

Всё просто, нужно только понять.
Пример: СсылкА
Спасибо за внимание, с вами был 4aBo
biggrin Плюсики желательны biggrin


Сообщение отредактировал 4aBo - Вторник, 30 Августа 2011, 11:57
zodiakДата: Вторник, 30 Августа 2011, 12:25 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Quote (4aBo)
goto


фу. еретик! сжечь!

Оскорбление на GCUP'е запрещены. Устное предупреждение


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
MrIncrofДата: Вторник, 30 Августа 2011, 12:42 | Сообщение # 3
Lite Programmer
Сейчас нет на сайте
Quote (zodiak)
фу. еретик! сжечь!

Всмысле?! angry
noTformaTДата: Вторник, 30 Августа 2011, 12:54 | Сообщение # 4
Ukrainian independent game developer
Сейчас нет на сайте
Quote (4aBo)
Всмысле?!

это он о том, что стиль использования оператора goto - запрещен как церковью (папа не одобряет goto), так и многими видными программистами типа Дейксты, создателя С++, создателя паскаля, Кнут и т.д.


@noTformaT
KornivalДата: Вторник, 30 Августа 2011, 12:56 | Сообщение # 5
The Witcher
Сейчас нет на сайте
Quote (4aBo)
Всмысле?!

Ну как бы метки уже не Ъ, им на замену пришли циклы)
4aBo, не обижайся, но ты занимаешься бесполезным делом. В сети очень много книг по С++ в которых все написано, причем написано лучше чем у тебя.
ЗЫ. Фраза "вызывается обычная переменная" ввела меня в ступор, ты так можешь запутать новичков.

Добавлено (30.08.2011, 12:56)
---------------------------------------------
noTformat, опередил)

MrIncrofДата: Вторник, 30 Августа 2011, 13:35 | Сообщение # 6
Lite Programmer
Сейчас нет на сайте
noTformaT, если он запрещён, тогда зачем же его сделали, логики не вижу. Пользоваться метками по моему удобнее чем циклами, и быстрее
noTformaTДата: Вторник, 30 Августа 2011, 13:40 | Сообщение # 7
Ukrainian independent game developer
Сейчас нет на сайте
Quote (4aBo)
если он запрещён, тогда зачем же его сделали, логики не вижу. Пользоваться метками по моему удобнее чем циклами, и быстрее

http://ru.wikipedia.org/wiki/GOTO - есть раздел "Критика". Там видно что иногда программа с ГоТо вообще является программой без логики. Иногда его используют, вот поэтому и оставили, но лично я, никогда не видел код в котором используется этот оператор, наверное потомушто долгое время работал на Джаве, где этот оператор выпилили, или потому, что безусловные переходы - понятие весьма странное smile


@noTformaT
KornivalДата: Вторник, 30 Августа 2011, 13:43 | Сообщение # 8
The Witcher
Сейчас нет на сайте
Quote (4aBo)
и быстрее

C чего ты взял?
MrIncrofДата: Вторник, 30 Августа 2011, 13:46 | Сообщение # 9
Lite Programmer
Сейчас нет на сайте
Kornival, не в том смысле что компилируется быстрее, писать быстрее, одна команда и всё
KornivalДата: Вторник, 30 Августа 2011, 13:55 | Сообщение # 10
The Witcher
Сейчас нет на сайте


Сообщение отредактировал Kornival - Вторник, 30 Августа 2011, 13:57
05142Дата: Вторник, 30 Августа 2011, 13:57 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Вопервых, какая стопка? Может стек? Но стеком тут и не пахнет.
Во вторых
Quote (4aBo)
Плюсики желательны
за goto новичкам ещё и плюсики? А про массивы ничего не рассказал. Например что переменная масива только указатель.


mecinvader
KornivalДата: Вторник, 30 Августа 2011, 14:01 | Сообщение # 12
The Witcher
Сейчас нет на сайте
froexДата: Вторник, 30 Августа 2011, 14:51 | Сообщение # 13
Руководитель Froexilize team
Сейчас нет на сайте
Использование goto возможно только в осмысленных задачах. Например, когда break не помогает, либо для истинно безусловных переходов... Не припомню все случаи, когда происходит выигрыш. Для некоторых систем защит выигрыш иногда более очевиден.

4aBo, твой код очень, очень плох. Динамически выделяется память под массив, но ты не выходишь за область его видимости в программе. Тем не менее ты возвращаешься на его объявление. Такие семантические ошибки почти никогда не находятся просто.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
KornivalДата: Вторник, 30 Августа 2011, 14:56 | Сообщение # 14
The Witcher
Сейчас нет на сайте
Где там память выделяется динамически? dry
froexДата: Вторник, 30 Августа 2011, 15:01 | Сообщение # 15
Руководитель Froexilize team
Сейчас нет на сайте
Kornival, ты не видишь указателя?

Добавлено (30.08.2011, 15:01)
---------------------------------------------
Для справки почитай информацию по статической и динамической памяти и их различие.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
noTformaTДата: Вторник, 30 Августа 2011, 15:07 | Сообщение # 16
Ukrainian independent game developer
Сейчас нет на сайте
Quote (froex)
Kornival, ты не видишь указателя?

Мож я что то путаю, или не знаю, но синтаксис указателей:

int *variable;

тут я чет не вижу такого синтаксиса. В чем прикол?


@noTformaT
KornivalДата: Вторник, 30 Августа 2011, 15:14 | Сообщение # 17
The Witcher
Сейчас нет на сайте
где? Неужели речь идет о массиве ms?

Добавлено (30.08.2011, 15:11)
---------------------------------------------
где? Неужели речь идет о массиве ms?

Добавлено (30.08.2011, 15:14)
---------------------------------------------
froex что-то напутал. Наверное он имел ввиду что первый элемент массива есть указатель. Но память там выделяется статически.

noTformaTДата: Вторник, 30 Августа 2011, 15:15 | Сообщение # 18
Ukrainian independent game developer
Сейчас нет на сайте
Возможно froex, имел в виду функцию setlocale, которая во втором параметре принимает указатель.
А вот к чему вот это:
Quote (froex)
Для справки почитай информацию по статической и динамической памяти и их различие.

я хз.


@noTformaT
KornivalДата: Вторник, 30 Августа 2011, 15:17 | Сообщение # 19
The Witcher
Сейчас нет на сайте
в любом случае динамического выделения памяти там нет.
GECKДата: Вторник, 30 Августа 2011, 16:19 | Сообщение # 20
заслуженный участник
Сейчас нет на сайте
Буду третьим, кого заинтересовал вопрос о динамическом выделении памяти.

Стопка - это пять, однозначно smile

Quote (4aBo)
если он запрещён, тогда зачем же его сделали, логики не вижу.

Его сначала сделали, и лишь спустя долгое время предали анафеме. А оставили ради обратной совместимости, да и иногда он бывает полезен.


Всё гениальное просто. И хреново работает.
Форум игроделов » Программирование » C/C++ » Массивы и метки в C++
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг