Конкурс. Программирование.

Автор Proydoha, 22-07-2011, 17:28:47

« предыдущая - следующая »

0 Пользователей и 2 гостей просматривают эту тему.

Jeka

я в таком формате не буду отвечать))

Sasha

30-08-2011, 20:03:02 #286 Последнее редактирование: 30-08-2011, 21:18:33 от Sasha
Даю +1 сразу 2 людям. Отмечу что неплохую смекалку показал Пройдоха и был близок к истинне.
В операционной системе Windows минимально адрисуемой областью является так называемая страница (страничная память),  в данной ОС она пока равна 4 кб. Поэтому когда кто либо просит операционную систему выделить память, она выделяется страницами. Если какие-либо данные записаны на страницу, больше туда не может быть ничего записано. Поэтому фактически любой файл будет занимать места на диске кратного 4 кб, больше или равному по размеру этим данным. Если открыть свойства любого файла можно увидеть какой его реальный размер и сколько он занимает места на диске. Это вопрос из области системного программирования. Очень сложной области я вам скажу.
Буду думать над следующим мини вопросом.
skype: ab.sasha

Sasha

Прошу прощения, немного перепутал с виртуальной памятью при объяснении. Конечно это зависит от конкретной файловой системы, а не от ОС. Спасибо Жеке за поправку.
skype: ab.sasha

Jeka

вопрос из темы области видимости
почему такая конструкция разрешена
if (p_flag)
                {
                    int n;
                    if ((i + 1) % this.group!=0)
                     n = (i + 1) / this.group + 1;
                     ..........
а такая нет
if (p_flag)
                {
                    if ((i + 1) % this.group!=0)
                    int n = (i + 1) / this.group + 1;

Catcatcat

Цитата: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
почему такая конструкция разрешена
if (p_flag)
                {
                    int n;
                    if ((i + 1) % this.group!=0)
                     n = (i + 1) / this.group + 1;
                     ..........
а такая нет
if (p_flag)
                {
                    if ((i + 1) % this.group!=0)
                    int n = (i + 1) / this.group + 1;

Потому, что переменная должна быть с начала определена,  а потом вычисляется её значение.
во втором начинается вычисление, а потом она определяется, какая должна она быть.

Jeka

Цитата: Catcatcat от 31-08-2011, 16:04:55
Цитата: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
почему такая конструкция разрешена
if (p_flag)
                {
                    int n;
                    if ((i + 1) % this.group!=0)
                     n = (i + 1) / this.group + 1;
                     ..........
а такая нет
if (p_flag)
                {
                    if ((i + 1) % this.group!=0)
                    int n = (i + 1) / this.group + 1;

Потому, что переменная должна быть с начала определена,  а потом вычисляется её значение.
во втором начинается вычисление, а потом она определяется, какая должна она быть.
теоретически верно говоришь но есть одно НО. синтаксис си шарпа предполагает одновременное определение идентификатора с его начальной инициализацией. т.е синтаксис
int n=10+20; // вполне корректен

Sasha

31-08-2011, 21:00:07 #291 Последнее редактирование: 31-08-2011, 22:18:25 от Sasha
Цитата: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
Вопросы из области видимости, как и любые другие СЮДА
Цитата: Catcatcat от 31-08-2011, 16:04:55
Цитата: Jeka от 31-08-2011, 15:53:53
Потому, что переменная должна быть с начала определена,  а потом вычисляется её значение.
во втором начинается вычисление, а потом она определяется, какая должна она быть.
Она и во втором сначала определяется, а потом инициализируется.

Автору уже отвечал, отвечу и сюда. В данном случае оба варианта корректны. Ошибки могут появиться если попытаться потом использовать эту n за пределами ифа.
skype: ab.sasha

Jeka

спасибо ясно. под словом "одновременно" я имел в виду - в одной инструкции а не в одно и то же время >:(

Sasha

Извини, вобще не пойму к чему была последняя фраза сказана.
skype: ab.sasha

Jeka

Цитата: Sasha от 31-08-2011, 22:09:13
Извини, вобще не пойму к чему была последняя фраза сказана.
она была сказана к следующему
ЦитироватьОна и во втором сначала определяется, а потом инициализируется.

Sasha

Так это было сказано Каткэткату
skype: ab.sasha

Jeka

Цитата: Sasha от 31-08-2011, 22:17:34
Так это было сказано Каткэткату
извини  ;)

Sasha

Кстати страннно, теги цитаты закрыты, а сообщение все равно в цитате.
skype: ab.sasha

Proydoha

Цитата: Sasha от 31-08-2011, 22:19:09
Кстати страннно, теги цитаты закрыты, а сообщение все равно в цитате.

Не закрыт тег цитаты КатКатКата

[quote author=Jeka link=topic=113.msg1914#msg1914 date=1314795233]
[/quote]

[quote author=Catcatcat link=topic=113.msg1918#msg1918 date=1314795895]
[quote author=Jeka link=topic=113.msg1914#msg1914 date=1314795233]
[/quote]

Sasha

Кто мне объяснить (подробно), почему у меня в компьютере установлено 4 Гб оперативной памяти, а использую я только 3?
skype: ab.sasha