roboforum.ru

Технический форум по робототехнике.

Язык программирования С++

Язык программирования С++

Pirate » 15 окт 2010, 23:25

Тема с вопросами, касающимися этого языка.


И собственно сам вопрос:
Можно ли в переменную место числа, записать слово либо предложение?
Если да, то как это сделать, желательно примерчики :) (два дня уже мучаюсь, на гугле забанили)
-----------------------
добавка.
Когда я что либо изучаю, всегда веду своеобразные памятки, текстовые документы, своеобразные справочники.
С++ начал учить недавно, и чтобы вы поняли уровень моих скромных знаний, выкладываю все что есть на данный момент в моей памятке. Может что от себя добавите поправив меня.

Код: Выделить всёРазвернуть
переменные:
int - простые положительные или отрицательные числа, испоьзуемые для перечисления
unsigned int - неотрицательные числа, предназначенные в первую очередь для перечисления

long - расширенная версия int, разницы между long и int нет
unsigned long - отрицвтельная версия long
float - действительные числа единичной точности. Это уменьшенная версия double, требующая мньшего количества памяти, но при этом имеющая меньшую точность и диапазон возможных значений

double - Стандартное представление чисел с плавающей точкой
char - Символьный тип, значением переменных может бить символ алфавита, цифра, знак препинания, или арефметический знак. Не годиться для арефметической операции.
string - "this is a string" строка символов, состовляющая предложение
bool   - true false логические типы true истина false ложъ
операторы логики:

==        равенство, когда значение левого аргумента совпадает со значенем правого
!==       Не равенство. Противоположность ==
>,<        больше, меньше, истинно, когда значение левого выражения больше (или меньше) значения правого
>=,<=    больше или равно, меньше или равно. истинно, если если истинной являеться >  или == и наоборот
&&        "И"   истинна если аргументы слева и справо являються истинной
||       "ИЛИ" истинно если левый или правый аргумент являеться истинной
!        "НЕ", истинно если его аргумент принимает ложное значение
         Побитовые операции
~        каждый бит меняет свое значение на противоположное, 0 на 1 или 1 на 0
&      побитовое "И" поочередно выполняет операцию И с парами битов левого
          и правого аргументов
|       побитовое ИЛИ
^       побитовое исключающее ИЛИ
Циклы
While (условие)
{
//Этот код выполняется повторно
//пока условие остается истинно
}
for (инициализация; условие; увеличение)
{
// тело цикла
}
break вход из цикла
переменная - изменяемая велечина
константа - неизменная велечина
функция - когда большую программу разбивают на куски, каждый кусок
называеться функцией.
value число
void-функция -  ничего не возвращающая 1. недействительный 2. пустой

Re: Язык программирования С++

=DeaD= » 16 окт 2010, 10:10

Pirate писал(а):И собственно сам вопрос:
Можно ли в переменную место числа, записать слово либо предложение?

Сделать такое теоретические можно, но это противоестественно, поэтому считайте что нет :crazy:

Re: Язык программирования С++

Pirate » 16 окт 2010, 11:33

интересно...
Просто пытался написать программу, где нужно было бы ввести слово, программа должна была была бы проверить совпадает ли введенное слово с тем словом, которое в ней записано,и если да вывести одно предложение, если нет то другое. С числами это просто, а вот как со словами быть пока что не знаю.. Ладна буду учиться дальше, там видно будет :)

Re: Язык программирования С++

vadinator » 16 окт 2010, 11:41

Pirate писал(а):интересно...С числами это просто, а вот как со словами быть пока что не знаю..

А переменные типа String... не катят?

Re: Язык программирования С++

=DeaD= » 16 окт 2010, 12:12

Может он char* юзает :)))

Он же программу не показывает, а продвинутые телепаты в отпуске.

Re: Язык программирования С++

Сергей » 16 окт 2010, 13:08

Я думаю стоит почитать книжку С++ для чайников,а еще лучше Язык программирования Си Керниган Ритчи. И тогда не будет глупых вопросов.

Re: Язык программирования С++

Romikgy » 16 окт 2010, 19:45

В с++ реально если эта переменная типа класс в который можно писать все что угодно ... в обычную переменную врядли... допустим переменая типа long (как правило 32 бита) как в нее записать слово из 10 букв? под них же где то место выделить надо ... а в классе можно произвести выделение памяти , скопировать само слово и сохранить указатель на слово ....

Re: Язык программирования С++

Pirate » 16 окт 2010, 21:12

vadinator, =DeaD=, я и String и char юзал, в чар всего первая буква из слова запоминается как переменная. В стринг не помню уже что было, но не катят для набора букв эти переменные. :pardon:

Сергей, у меня около 6-ти книжек включая эту. Учусь по одной из них, дохожу до чего-то, что мне не понятного, переключаюсь на другую, вижу что там автор более понятно изложил, разобравшись, возвращаюсь снова к первой и т.д.

Romikgy, Я до классов не дочитал еще :oops: :)

в общем всем спасибо, Romikgy ответил на мой вопрос.

Re: Язык программирования С++

Сергей » 16 окт 2010, 22:09

Pirate писал(а): у меня около 6-ти книжек включая эту. Учусь по одной из них, дохожу до чего-то, что мне не понятного, переключаюсь на другую, вижу что там автор более понятно изложил, разобравшись, возвращаюсь снова к первой и т.д.

Pirate писал(а):Я до классов не дочитал еще


Обычно в книжках по С++ на "введение" около 40 страниц максимум. Остальное ООП.
То, что вы называете С++ на самом деле "Си с классами" и к ООП не имеет отношения.

Re: Язык программирования С++

Romikgy » 16 окт 2010, 22:49

хмммм а разве классы не относятся к ООП????

Re: Язык программирования С++

Виталий » 16 окт 2010, 23:14

Также как линейки к линейному программированию.

Re: Язык программирования С++

Сергей » 16 окт 2010, 23:19

Зависит от того как их используешь. В случае "Си с классами" сами классы бесполезны.

Re: Язык программирования С++

AndreiSk » 16 окт 2010, 23:35

Pirate писал(а):...
Просто пытался написать программу, где нужно было бы ввести слово, программа должна была была бы проверить совпадает ли введенное слово с тем словом, которое в ней записано,и если да вывести одно предложение, если нет то другое. С числами это просто, а вот как со словами быть пока что не знаю.. Ладна буду учиться дальше, там видно будет :)


Походу вы пишете для ПК?
Попробуйте C#. Тот же си, но поприятнее будет ;)
А если уж нужно C в C#, сделаете unsafe вставки..
Вот так например:
Код: Выделить всёРазвернуть
public static unsafe Int32 GetHashCode32(String s) {
         fixed (char* str = s.ToCharArray()) {
            char* chPtr = str;
            int num = 0x15051505;
            int num2 = num;
            int* numPtr = (int*) chPtr;
            for (Int32 i = s.Length; i > 0; i -= 4) {
               num = (((num << 5) + num) + (num >> 0x1b)) ^ numPtr[0];
               if (i <= 2) {
                  break;
               }
               num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ numPtr[1];
               numPtr += 2;
            }
            return (num + (num2 * 0x5d588b65));
         }
   }


Если оффтоп, то :pardon: , кидайте томаты.
Но, IMHO, для ПК веселее писать на C#

Re: Язык программирования С++

Сергей » 16 окт 2010, 23:41

Да, согласен - если нет реальной надобности писать на С++ ли Си то С# лучший вариант - быстро и удобно.

Re: Язык программирования С++

Pirate » 17 окт 2010, 00:54

Не я хочу именно С++ выучить.
До опп я еще не дошел. Хотя уже близко.
Вроде как ничего особо сложного для себя не вижу пока что.., просто наткнулся на желание воспользоваться текстом место числа, но как это реализовать на такой ранней стадии не знал, вот и обратился за помощью.
С другой стороны можно было бы пронумеровать слова, и дать юзеру ввести место слова, выбор из пяти скажем вариантов слов, и по номеру "числу" сделать то что я хотел.. Но хотелось более продвинуто сделать ))


cron
Rambler\'s Top100 Mail.ru counter