Вернуться   Развлекательный портал CN.ru - Форум > Технологии > Программирование > Начинающим

Ответ
 
Опции темы
Старый 23.01.2010, 15:33 ↑ #191
SL555
старожил эго-форума
 
Регистрация: 11.01.2008
Сообщений: 656
Репутация: 765
SL555 непререкаемый авторитет SL555 непререкаемый авторитет SL555 непререкаемый авторитет SL555 непререкаемый авторитет SL555 непререкаемый авторитет SL555 непререкаемый авторитет SL555 непререкаемый авторитет
По умолчанию Re: Уроки программирования на C++ для начинающих

Цитата:
Сообщение от Gunner-Kade Посмотреть сообщение
Язык программирования изучить по Кормену и Кнуту будет сложно - только базовые концепции - циклы, массивы, указатели, условия и т.д., тем более там псевдокод и MIX, который только отпугнет начинающих.
Спросили интересных задач, понятно что сам язык по ним не выучить, но и знание только языка мало.
SL555 вне форума   Ответить с цитированием
Старый 24.01.2010, 22:25 ↑ #192
iLoveSkA Мужской
новосёл
 
Аватар для iLoveSkA
 
Регистрация: 26.09.2009
Адрес: Академгородок
Возраст: 26
Сообщений: 32
Репутация: 8
iLoveSkA молчание-золото
Отправить сообщение для iLoveSkA с помощью ICQ Отправить сообщение для iLoveSkA с помощью Skype™
По умолчанию Re: Уроки программирования на C++ для начинающих

м, пишу парсер на c/c++. под линухом находит и русские, и английские слова. на виндооусе возникают проблемы. подскажите - чем решается? что-то с кодировками или как?
__________________
iLoveSkA вне форума   Ответить с цитированием
Старый 25.01.2010, 01:53 ↑ #193
Werehuman Мужской
cтарейшина эго-форума
 
Аватар для Werehuman
 
Регистрация: 07.04.2007
Адрес: mailto: root@localhost
Возраст: 30
Сообщений: 800
Репутация: 442
Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет
Отправить сообщение через Jabber пользователю Werehuman
По умолчанию Re: Уроки программирования на C++ для начинающих

Цитата:
Сообщение от iLoveSkA Посмотреть сообщение
м, пишу парсер на c/c++. под линухом находит и русские, и английские слова. на виндооусе возникают проблемы. подскажите - чем решается? что-то с кодировками или как?
Какие проблемы?
Werehuman вне форума   Ответить с цитированием
Старый 02.04.2010, 01:10 ↑ #194
Junior Мужской
завсегдатай эго-форума
 
Регистрация: 08.05.2006
Адрес: 151 nano
Возраст: 33
Сообщений: 337
Репутация: 434
Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет
По умолчанию Re: Уроки программирования на C++ для начинающих

Не буду создавать новую тему, спрошу здесь:

Весь вечер головой об стол...
указатели в С++, а если точнее с следующая конструкция:
Предположим. есть массив, и указатель на первый элемент:
Код:
   int main(void) **
   int array[10] = ** 2, 4, 5, 87, -12, 77, 0, 0, 0, 0 };
   int* ap = &array[0];
     cout << "----------------\n";
     cout << ap << "\n";
     cout << *ap << "\n";
     cout << *ap++ << "\n";
     cout << ap << "\n";
     cout << "----------------\n";
 }
сегодня один препод божился просто, что в этой строке:
Код:
cout << *ap++ << "\n";
сначала идет инкремент (так как его приоритет выше), затем возвращается значение. Проверяю в компиляторе (gcc linux): выдает сначала значение, затем инкремент адреса, то есть увеличение:

----------------
0xbfdb662c
2
2
0xbfdb6630
----------------

Кто из нас дурак? Или я чего - то не понимаю?

Последний раз редактировалось Junior; 02.04.2010 в 01:21.
Junior вне форума   Ответить с цитированием
Старый 02.04.2010, 09:23 ↑ #195
Werehuman Мужской
cтарейшина эго-форума
 
Аватар для Werehuman
 
Регистрация: 07.04.2007
Адрес: mailto: root@localhost
Возраст: 30
Сообщений: 800
Репутация: 442
Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет
Отправить сообщение через Jabber пользователю Werehuman
По умолчанию Re: Уроки программирования на C++ для начинающих

Цитата:
Сообщение от Junior Посмотреть сообщение
Кто из нас дурак? Или я чего - то не понимаю?
Нууу... По идее то прав ты, но лучше писать код так, чтобы он ни у кого не вызывал сомнения. Не бойся лишних скобочек. А у унарной * емнип наивысший приоритет.
Werehuman вне форума   Ответить с цитированием
Старый 11.04.2010, 00:15 ↑ #196
Raifeg Мужской
ГУРУ эго-форума
 
Аватар для Raifeg
 
Регистрация: 29.11.2008
Адрес: [140]
Сообщений: 1,742
Репутация: 5244
Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум Raifeg захватил ЭГО-Форум
Отправить сообщение для Raifeg с помощью ICQ Отправить сообщение через Jabber пользователю Raifeg
По умолчанию Re: Уроки программирования на C++ для начинающих

__________________
Raifeg вне форума   Ответить с цитированием
Старый 11.04.2010, 00:46 ↑ #197
Werehuman Мужской
cтарейшина эго-форума
 
Аватар для Werehuman
 
Регистрация: 07.04.2007
Адрес: mailto: root@localhost
Возраст: 30
Сообщений: 800
Репутация: 442
Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет
Отправить сообщение через Jabber пользователю Werehuman
По умолчанию Re: Уроки программирования на C++ для начинающих

Эх, не могу тебе в репу плюсануть, не разрешает вобла...
Хотя картинка старая. Аж месяц ей.
Werehuman вне форума   Ответить с цитированием
Старый 28.04.2010, 15:29 ↑ #198
Junior Мужской
завсегдатай эго-форума
 
Регистрация: 08.05.2006
Адрес: 151 nano
Возраст: 33
Сообщений: 337
Репутация: 434
Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет
По умолчанию Re: Уроки программирования на C++ для начинающих

Спрошу здесь также...

Мне необходимо, чтобы функция возвращала адрес минимального элемента массива, но адреса получаются разные, что делаю не так?

Код:
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
/*
 * 
 */
int* find_min(int* array) **
    const int arr_len = 10;
   // std::cout << &array[0] << "\n";
    int* pmin, min;
    min = array[0];
    for (int i = 0; i < arr_len; i++) **
        if (array[i] < min) **
            min = array[i];
            pmin = &min;
        }
    }
    return pmin;
}
int main(int argc, char** argv) **
    int len = 10;    
    int array[] = ** 22, 34, -1, -56, 77, -89, 23, -34, 67, -110, 99 };
    int* ptr = &array[0];
  
    std::cout << &array[9] << "\n";
    int* addr = find_min(array);
    std::cout << addr << "\n";

    return (EXIT_SUCCESS);
}
Вроде бы читал, что при передачи по указателю или ссылке, копия объекта не создается. Но тут получается наоборот. В таком случае, как нужно правильно передать адрес массива?
Junior вне форума   Ответить с цитированием
Старый 28.04.2010, 18:07 ↑ #199
Gunner-Kade Мужской
Борец с энтропией
старожил эго-форума
 
Аватар для Gunner-Kade
 
Регистрация: 02.08.2007
Возраст: 31
Сообщений: 522
Репутация: 84
Gunner-Kade на верном пути
Отправить сообщение для Gunner-Kade с помощью ICQ
По умолчанию Re: Уроки программирования на C++ для начинающих

Код:
    int* pmin, min;
    min = array[0];
    ...
    min = array[i];
    pmin = &min;
    ...
    return pmin;
Здесь собака зарыта, возвращается адрес не минимального элемента массива, а переменной min типа int.
Надо присваивать адрес конкретно элемента массива:

Код:
    int* pmin = array, min = array[0];
    ...
    min = array[i];
    pmin = &array[i];
    ...
    return pmin;
__________________
Не задавай вопросов - не услышишь лжи.
Поверьте, я знаю, что я делаю. (с) Sledge Hammer
Live for nothing or die for something. (c) John Rambo

Последний раз редактировалось Gunner-Kade; 28.04.2010 в 18:10.
Gunner-Kade вне форума   Ответить с цитированием
Старый 28.04.2010, 18:24 ↑ #200
Junior Мужской
завсегдатай эго-форума
 
Регистрация: 08.05.2006
Адрес: 151 nano
Возраст: 33
Сообщений: 337
Репутация: 434
Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет
По умолчанию Re: Уроки программирования на C++ для начинающих

эээм.. Спасибо... То есть он возвращал адрес min а не array[i]? Вот это я тупанул...
Junior вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Текущее время: 04:16. Часовой пояс GMT +6.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot

ВКонтактeTwitterFacebook
Хотите связаться с нами? Напишите письмо, и мы обязательно ответим.