C++

Вопросы по программированию
Сообщение
Автор
Аватара пользователя
Алексей_СН
Аксакал
Сообщения: 1967
Зарегистрирован: 12 янв 2007 16:36 pm
Репутация: 95
Откуда: щекино, 2 группа

#31 Сообщение Алексей_СН » 19 апр 2010 19:59 pm

Serg2006 писал(а):
Mamucho666 писал(а):А паскаль и басик... реально нужны?
На Visual Basic макросы под офис пишут, хотя можно и проги писать, ну я с ним особо не парился и не учил его. А продолжение или развитие паскаля это Delphi, тут уже кому что больше нравится паскаль (делфи) или си (С++ билдер или визуал си), возможности в принципе почти одинаковые. ИМХО паскаль немного проще и более понятен. А так у них много общего т.к. автор у них один Хейлсберг Андерс. Он изначально до 1996г. работал в Borland где был главным инженером и разрабатывал Turbo/Borland Pascal и Delphi, а в 1996 году перешел в MicroSoft, где работал над J++ и возглавлял группу по созданию и проектированию языка C#.
Вообще-то с Бейсика в советское время и начиналось изучение программирования как такового, самый простой и примитивный язык. Очень хорошо позволянт понять что такое подпрограммы, циклы, бесконечные переходы по меткам... :) и как в программный код преобразовать алгоритм нарисованный в умной книжке.
Паскаль следующий как правило язык за Бейсиком, классический язык высокого уровня. Тут понимаешь что такое процедуры и функции и почему переходы по меткам в языке высокого уровня это плохой тон.

До Паскаля у нас был популярен такой язык как АЛГОЛ (это 60-70е годы). Синтаксис похож на Паскаль. У меня по нему есть древняя книжка, в которой помимо синтаксиса дан разбор систем счисления, приведены разные алгоритмы работы с данными : поиск в массиве, сортировка, работа со строками, работа с графикой (например алгоритм Брезенхейма). Использую как справочник, очень помогает, особенно когда работаешь с примитивными кросс-компиляторами для микроконтроллеров, в которых нифига нет того к чему мы уже привыкли под Виндами в виде тысяч API функций.

Аватара пользователя
Алексей_СН
Аксакал
Сообщения: 1967
Зарегистрирован: 12 янв 2007 16:36 pm
Репутация: 95
Откуда: щекино, 2 группа

#32 Сообщение Алексей_СН » 19 апр 2010 20:03 pm

Mamucho666 писал(а):Никто не знает почему числа, допустим больше миллиона обрезаются? Причём вне зависимость int я выбрал или long, хотя конечно понятно почему... вне зависимости...
В общем никто не знает как проблему устранить? Нагуглить не получилось. Дальше по книге не нашёл. Вообще я конечно вперёд забегаю, просто хочется сразу сделать.
обрезаются как и на какой стадии - это главное.
Одно дело обрезаются при вводе или при вычислениях (это ваш тогда кривой алгоритм, что даже long не спасает), или обрезаются при выводе - а тут уже надо читать про функции вывода. Никто же тут не знает что вы там используете cout, printf или куда-то в окна выводите.

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#33 Сообщение Mamucho666 » 19 апр 2010 20:16 pm

юзаю cout.
Обрезается даже если в самой программе число присвоить и сразу вывести.

Аватара пользователя
Алексей_СН
Аксакал
Сообщения: 1967
Зарегистрирован: 12 янв 2007 16:36 pm
Репутация: 95
Откуда: щекино, 2 группа

#34 Сообщение Алексей_СН » 19 апр 2010 21:05 pm

Mamucho666 писал(а):юзаю cout.
Обрезается даже если в самой программе число присвоить и сразу вывести.
не буду точно показывать пальцем, лучше будет если сам найдешь.
Но могу подсказать с помощью чего управляют длинами вывода, форматированием, указанием точности для вывода float и т.д.
Смотри такую вещь как "манипуляторы потокового ввода-вывода", а именно и что туда входит.

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#35 Сообщение Mamucho666 » 19 апр 2010 21:15 pm

Почитаю, попробую.

Аватара пользователя
Serg2006
Аксакал
Сообщения: 2158
Зарегистрирован: 08 мар 2006 18:27 pm
Репутация: 30
Russia

#36 Сообщение Serg2006 » 19 апр 2010 23:41 pm

Mamucho666 писал(а):Никто не знает почему числа, допустим больше миллиона обрезаются? Причём вне зависимость int я выбрал или long, хотя конечно понятно почему... вне зависимости...
В общем никто не знает как проблему устранить? Нагуглить не получилось. Дальше по книге не нашёл. Вообще я конечно вперёд забегаю, просто хочется сразу сделать.
Не могут они после миллиона обрезаться, под int отводится 2 байта (16 бит) т.е. 216=65535 максимум, long 4 байта (64 бита) 264=4294967295 максимальное значение включая ноль, это для unsigned т.е. без знака, если signed (со знаком), то один бит отводится под знак и интервал +- (написанное выше)/2

Аватара пользователя
Serg2006
Аксакал
Сообщения: 2158
Зарегистрирован: 08 мар 2006 18:27 pm
Репутация: 30
Russia

#37 Сообщение Serg2006 » 19 апр 2010 23:51 pm

Алексей_СН писал(а):Вообще-то с Бейсика в советское время и начиналось изучение программирования как такового, самый простой и примитивный язык.
Сам с него начинал ))))
Алексей_СН писал(а):До Паскаля у нас был популярен такой язык как АЛГОЛ (это 60-70е годы)
Можно еще вспомнить фортран (хотя он и сейчас вроде используется в серьезных системах с мат. расчетами), лисп, лого, да много чего было, вопрос что выжило )))

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#38 Сообщение Mamucho666 » 19 апр 2010 23:51 pm

Серж, да я всё это понимаю, но long почему-то ничего не меняет. И как число обрезалось, так и обрезается. unsigned, да, влияет, ровно в два раза увеличивает максимально возможное число, в общем ничего удивительного.
Вот казалось бы, така проста проблема, а так непонятно.
P.S. Ну может не миллион, а чуть больше.

Аватара пользователя
Serg2006
Аксакал
Сообщения: 2158
Зарегистрирован: 08 мар 2006 18:27 pm
Репутация: 30
Russia

#39 Сообщение Serg2006 » 20 апр 2010 00:01 am

Mamucho666 писал(а):И как число обрезалось, так и обрезается.
ты не ответил на главный вопрос
Алексей_СН писал(а):обрезаются как и на какой стадии - это главное.
при присвоении такого не должно происходить если типы правилно заданы, скорее всего вопрос с форматом вывода. Не проще выложить кусок кода и задать конкретный вопрос, чем такать пальцем в небо?

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#40 Сообщение Mamucho666 » 20 апр 2010 00:15 am

Я просто не думаю, что присвоение с выводом у меня будет отличаться от присвоения у вас.
#include
int main()
{
long i=1000000000;
std::cout << i << std::endl;
system("pause");
return 0;
}

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#41 Сообщение Mamucho666 » 20 апр 2010 00:17 am

Тут думаю дело в винде или ещё в чём. Поставлю виртуалку завтра, посмотрю. И на работе гляну.

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#42 Сообщение Mamucho666 » 21 апр 2010 23:35 pm

Обновление сп1 поставил, проблема пропала.

Аватара пользователя
Mamucho666
Старейшина
Сообщения: 6655
Зарегистрирован: 23 окт 2007 22:30 pm
Репутация: 41
Откуда: Дрожащие острова.
Контактная информация:

#43 Сообщение Mamucho666 » 24 сен 2010 18:57 pm

Изображение

Ответить