Re[7]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 21.09.09 04:38
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Я не больщой знаток стандарта, но ИМХО это корректно по стандарту

>>
>> a[i] === i[a]
V>Ага, но руки преподавателем отрывать за подобное надо. Не знает такого
V>студент и слава богу.

Я бы иначе выразился. Если он этого не знает — не беда. Если знает — тоже не беда. А вот если применяет — надо мягко его поправить, объяснив, почему это плохо, хотя формально разрешено. Руки отрывать ни ему, ни преподавателю не надо
With best regards
Pavel Dvorkin
Re[8]: Помогите с вопросами для студентов
От: Vzhyk  
Дата: 21.09.09 08:24
Оценка:
Pavel Dvorkin пишет:
>
>> > a[i] === i[a]
>
> Я бы иначе выразился. Если он этого не знает — не беда. Если знает —
> тоже не беда. А вот если применяет — надо мягко его поправить, объяснив,
> почему это плохо, хотя формально разрешено.
Вообще-тоо это ваша (преподавателей) забота мягко поправлять.

А почему я так злобно написал? Все просто. Приходят нонче студиозусы,
которые знают a[i] === i[a] (имхо, вообще ляп, хоть и не напрягающий) и
тому подобную дурь, а вот для чего и какую коллекцию применять ни в зуб
ногой и почему они именно такими разрабатывались. С ООП жуть. Про
параллелизацию вообще нуль и т.д.
А вообще, имхо, нынче основная проблема высшего образования в наших
странах, что опустились до уровня училища, техникума. Натаскают чуть
студента на умение лепить операторы языка в цепочку и ура, специалист
готов, а потом эти студенты ходят по собеседованиям и их везде выгоняют.
Posted via RSDN NNTP Server 2.1 beta
Re[9]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 21.09.09 12:00
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Вообще-тоо это ваша (преподавателей) забота мягко поправлять.


Ну так я это и делаю.

V>А почему я так злобно написал? Все просто.


<skipped>

Почти со всем согласен, но без злобы лучше.
With best regards
Pavel Dvorkin
Re: Помогите с вопросами для студентов
От: opener  
Дата: 03.10.09 14:54
Оценка: +1 :)))
Здравствуйте, Бабошин Андрей, Вы писали:

<...>


БА>Будет ли следующий тест адекватным?


<...>

БА>Заранее спасибо.

БА>П.С. Опыта преподавательской деятельности практически нет — одна лекция + руководство дипломом.

Чего-то мне после твоего теста анекдот вспомнился.
— Что такое экзамен?
— Это беседа двух умных людей.
— А если один из них дурак?
— Тогда второй останется без стипендии.
Re[8]: Помогите с вопросами для студентов
От: opener  
Дата: 03.10.09 15:03
Оценка: -1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Бабошин Андрей, Вы писали:


БА>>Нет, "сложными" вопросами, на мой взгляд, можно выявить "гиков".

БА>>Т.е. если человек знает, скажем, про симметричность оператора [], слышал про фьютексы, то посылать его почитать книжку либо устраивать быстрое введение в С не надо и можно сразу перейти к самому интересному.

E>К сожалению много раз встречал людей, которые знают всяку ерунду, а программировать не умеют...


А вопрос не такой ерундовый, как может показаться на первый взгляд. Например, он может показать, понимает человек или нет, что такое массивы, как они размещаются в памяти и как индексируются. Конечно, если человек задумывался над смыслом — почему можно написать и так и так, и это одно и то же — а не случайно где-то увидел и запомнил, или зазубрил.
Re[9]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 04.10.09 10:44
Оценка: 1 (1) -1
Здравствуйте, opener, Вы писали:

O>А вопрос не такой ерундовый, как может показаться на первый взгляд. Например, он может показать, понимает человек или нет, что такое массивы, как они размещаются в памяти и как индексируются. Конечно, если человек задумывался над смыслом — почему можно написать и так и так, и это одно и то же — а не случайно где-то увидел и запомнил, или зазубрил.


IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Помогите с вопросами для студентов
От: opener  
Дата: 04.10.09 11:36
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


O>>А вопрос не такой ерундовый, как может показаться на первый взгляд. Например, он может показать, понимает человек или нет, что такое массивы, как они размещаются в памяти и как индексируются. Конечно, если человек задумывался над смыслом — почему можно написать и так и так, и это одно и то же — а не случайно где-то увидел и запомнил, или зазубрил.


E>IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...


Что значит не имеет и при чем здесь особенность синтаксиса? Слева от квадратных скобочек записывается база (начальный адрес, от которого идет отсчет), в скобочках — индекс (порядковый номер элемента). Ежу понятно, что если переставить их местами, получим тот же адрес памяти. Но чтобы это было понятно, еж должен представлять, как расположены массивы в памяти и как происходит адресация элементов массивов, а это уже уровень ассемблера. На самом деле очень хорошо, когда программист понимает, что делает компилятор, когда он пишет в коде a[i], или if(), или switch() или любую другую конструкцию языка.
Re[11]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 04.10.09 19:29
Оценка:
Здравствуйте, opener, Вы писали:

E>>IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...


O>Что значит не имеет и при чем здесь особенность синтаксиса? Слева от квадратных скобочек записывается база (начальный адрес, от которого идет отсчет), в скобочках — индекс (порядковый номер элемента).

вообще-то, обычно, там записывается массив, а не адрес...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[12]: Помогите с вопросами для студентов
От: Аноним  
Дата: 05.10.09 10:55
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


E>>>IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...


O>>Что значит не имеет и при чем здесь особенность синтаксиса? Слева от квадратных скобочек записывается база (начальный адрес, от которого идет отсчет), в скобочках — индекс (порядковый номер элемента).

E>вообще-то, обычно, там записывается массив, а не адрес...

Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?
Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?
Re[13]: Перешёл на личности -- значит слил...
От: Erop Россия  
Дата: 05.10.09 11:09
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

E>>вообще-то, обычно, там записывается массив, а не адрес...

А>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?
Вообще-то нет.
Вот смотри:
int a[128]; // a -- это массив
assert( sizeof( a ) == sizeof( int* ) ); // если бы a представляло адрес в памяти, то assert бы не проваливался...


А>Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?

IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[14]: Абсолютно не значит.
От: opener  
Дата: 06.10.09 08:30
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Аноним, Вы писали:


E>>>вообще-то, обычно, там записывается массив, а не адрес...

А>>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?
E>Вообще-то нет.
E>Вот смотри:
int a[128]; // a -- это массив
E>assert( sizeof( a ) == sizeof( int* ) ); // если бы a представляло адрес в памяти, то assert бы не проваливался...


Массив располагается в памяти по какому-то адресу? Или он находится вне пространства и времени?
И когда компилятор всречает запись наподобие a[i], он понимает, что для того, чтобы добраться до объекта a[i], нужно базовый адрес (с которого начинается массив a[]), прибавить к нему размер элемента массива, умноженный на индекс i, и в результате получим адрес, по которому расположен i-й элемент. Поэтому с точки зрения компилятора абсолютно все равно, что считать базой, а что индексом — результат будет тот же. Что логично в общем-то.

А>>Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?

E>IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...

Я по спору могу сделать вывод что ты этих самых основ вообще не понимаешь.
Чтобы иметь право обвинять меня в неаккуратности, нужно видеть мой код. Ты его не видел, поэтому обвинять меня в неаккуратности не имеешь оснований. Из того, что я знаю что a[i] === i[a], никак не следует что я пишу так в реальных проектах. По крайней мере ни один из тех, кому доставался в наследство мой код, не жаловался на непонятность и нечитабельность. Разницу между массивами и указателями понимаю, так что тут тоже пальцем в небо.

В своих собственных проектах, которые я пишу для себя и в свое удовольствие, пишу как мне нравится и как считаю нужным. Например, могу вместо if() использовать логическое && — так короче, хотя тоже непонятно и нечитабельно. Считаю что имею на это полное право и это мое личное дело как мне писать код для себя.
Re[15]: Значит, значит... Значит аргументы закончились ;)
От: Erop Россия  
Дата: 06.10.09 14:36
Оценка:
Здравствуйте, opener, Вы писали:

А>>>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?

E>>IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...

O>Чтобы иметь право обвинять меня в неаккуратности, нужно видеть мой код.

Вот, опять неаккуратность. Я про твой код ничего не писал. Или приводи цитату...
Но я утверждаю, что выделенное полужирным шрифтом твоё утверждение некорректно и даже содержит грубую ошибку...
Правда я предполагаю, что тот аноним и ты -- это одно лицо. Предполагаю так потому, что ты отвечаешь за него, как за себя (ну типа пишешь, что я не имею права обвинять тебя, хотя я обвинял анонима и т. п... )


O>Массив располагается в памяти по какому-то адресу? Или он находится вне пространства и времени?

А переменная типа int, например, она где располагается? И представляет ли она свой адрес?
Кстати, говоря, адрес массива, так же как и адрес любой другой переменной можно получить при помощи унарного &
Но у массивов в С есть особенность -- они неявно преобразуются к указателю на свой нулевой элемент. Видимо это тебя и путает. Тем не менее тип переменной массива отличается от указателя. У них совсем разные свойства.
И чтобы писать код, вида:
template<typename T>T f( const T& arg) {/*...*/}
надо чётко представлять себе отличия массива от указателя...

O>И когда компилятор всречает запись наподобие a[i], он понимает, что для того, чтобы добраться до объекта a[i], нужно базовый адрес (с которого начинается массив a[]), прибавить к нему размер элемента массива, умноженный на индекс i, и в результате получим адрес, по которому расположен i-й элемент. Поэтому с точки зрения компилятора абсолютно все равно, что считать базой, а что индексом — результат будет тот же. Что логично в общем-то.


Тогда, наверное, эта же логика работает и для std::vector, если это "логично"?
AFAIK, такое поведение в С++ оставлено для совместимости с С, а не потому, что оно "логично"...

А>>>Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?

Вот такого рода заявы не по теме и обозначают, что ты слил...

O>Я по спору могу сделать вывод что ты этих самых основ вообще не понимаешь.

Ну не важно, понимаю я там что-то или нет. Важны доводы по теме

O>Ты его не видел, поэтому обвинять меня в неаккуратности не имеешь оснований. Из того, что я знаю что a[i] === i[a], никак не следует что я пишу так в реальных проектах.

Зато из того, как ты объясняешь логичность этого факта следует, что это место языка ты знаешь несколько неаккуратно... Только ли его -- фиг его знает...

O>По крайней мере ни один из тех, кому доставался в наследство мой код, не жаловался на непонятность и нечитабельность. Разницу между массивами и указателями понимаю, так что тут тоже пальцем в небо.

Ну ты сам вроде бы написал вроде, что

А переменная — имя массива — из себя что представляет? Адрес в памяти, не?

Так представляет из себя "переменная — имя массива" адрес в памяти, или что-то другое?
Ты уж хотя бы определись как-нибудь, что ли...
Или это был таки не ты, а ты просто впрягся "за того парня"?

O>В своих собственных проектах, которые я пишу для себя и в свое удовольствие, пишу как мне нравится и как считаю нужным. Например, могу вместо if() использовать логическое && — так короче, хотя тоже непонятно и нечитабельно. Считаю что имею на это полное право и это мое личное дело как мне писать код для себя.


Ну да. И вообще много что -- твоё личное дело. В крайнем случае личное дело тебя и твоего начальника. Но при чём тут всё это?
Мы вроде как осмысленность вопросов на собеседовании обсуждаем? Нет?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
нем
Re[16]: Значит, значит... Значит аргументы закончились ;)
От: Аноним  
Дата: 11.10.09 12:24
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


А>>>>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?

E>>>IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...

O>>Чтобы иметь право обвинять меня в неаккуратности, нужно видеть мой код.

E>Вот, опять неаккуратность. Я про твой код ничего не писал. Или приводи цитату...
E> ...

Ну говорить ты конечно мастер. Но все же ответь на вопрос: как компилятор вычисляет адрес элемента массива а[i]?
Желательно не в твоем обычном стиле, а коротко и по сути.
Re[17]: Значит, значит... Значит аргументы закончились ;)
От: Erop Россия  
Дата: 11.10.09 17:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ну говорить ты конечно мастер. Но все же ответь на вопрос: как компилятор вычисляет адрес элемента массива а[i]?

А>Желательно не в твоем обычном стиле, а коротко и по сути.

Компилятор обычно его вообще не вычисляет. Код часто вычисляет при помощи инструкций вроде lea...
Но это всё не про то. Неаккуртаность состояла не в том, как вычисляет что-то компилятор
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Про []
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 19:18
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Бабошин Андрей, Вы писали:


БА>>Здравствуйте, Pavel Dvorkin!


PD>Тогда практически на все вопросы из этого теста они должны дать правильные отвтеты, иначе их надо с 5 курса гнать. Хотя трюк с i[mas] едва ли показателен в плане знания. Я о нем довольно долго не знал, хотя знал С++ вполне прилично, и что такое *(mas+i) — конечно, знал. Но не приходило мне в голову i[mas]


Когда-то пригодилось
http://rsdn.ru/forum/cpp/2567450.1.aspx
Автор: SergeCpp
Дата: 02.07.07


...с телефона пишу, а то бы сам текст сюда поместил
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[8]: .dsw и .dsp в VS6
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 19:50
Оценка:
Здравствуйте, Pavel Dvorkin!

PD>Ну а в VS — solutions и project файлы (первое есть контейнер вторых, обычно один проект, а может быть и несколько — 1 EXE, N DLL)). В VS6 они были двоичные...


Вы про файлы настроек проекта?..

.dsw и .dsp в VS6 — текстовые файлы.
.dsp очень удобно редактируются в самой студии при открытии "как текст". Намного удобнее, чем по окошкам пробираться всяким
В одном месте всё
.dsw там — вообще простой-простой
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[8]: Помогите с вопросами для студентов
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 20:03
Оценка:
PD>Но однажды заказчик таки потребовал, чтобы был make файл для сборки с помощью nmake. Ему надо эту сборку зачем-то было в bat вставить, использовать только компилятор командной строки, без IDE. Пришлось сделать

В 6 студии был пункт меню ("кнопка") для делания make-файла для текущего проекта. В новых уже нету этого?
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[9]: Помогите с вопросами для студентов
От: . Великобритания  
Дата: 11.10.09 20:13
Оценка:
SergeCpp wrote:

> В 6 студии был пункт меню ("кнопка") для делания make-файла для текущего

> проекта. В новых уже нету этого?
Не знаю как в 6-й студии, но более поздние позволяют запускать сборку из командной строки самих проектых файлов.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: Гаусс и Шумахер
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 20:26
Оценка:
Здравствуйте, opener!


O>...На самом деле очень хорошо, когда программист понимает, что делает компилятор, когда он пишет в коде a[i], или if(), или switch() или любую другую конструкцию языка.


Об этом ещё товарищ Гаусс беспокоился в письме к тов. Шумахеру:

http://rsdn.ru/forum/philosophy/2310941.1.aspx
Автор: SergeCpp
Дата: 20.01.07


...да только увы...

P.S. Кстати, из книги Вирта фрагмент тот
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[15]: &&
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 20:40
Оценка:
Здравствуйте, opener!

O>В своих собственных проектах, которые я пишу для себя и в свое удовольствие, пишу как мне нравится и как считаю нужным. Например, могу вместо if() использовать логическое && — так короче...


О! Тоже так часто-часто пишу!
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.