Sdscompany.ru

Компьютерный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ошибка синтаксиса в выражении запроса

Форма доступа — ошибка синтаксиса (отсутствующий оператор) в выражении запроса

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

Любые идеи, почему только форма генерирует синтаксическую ошибку или как это исправить?

Мне удалось быстро исправить это, перейдя в «Дизайн-вид формы» и положив [] на любые имена полей, в которых были пробелы. Теперь я могу использовать встроенные фильтры без раздражающего всплывающего окна о проблемах с синтаксисом.

У меня была такая же проблема. Как говорит Дедрен, проблема заключается не в запросе, а в источнике управления объектами формы. Поместите [] вокруг каждого объекта Control Source. например: Contol Source: [Product number] , Control Source: Salesperson.[Salesperson number] и т.д.

Makita рекомендует перейти к исходной таблице, на которую вы ссылаетесь в своем запросе, и переименовать поле, чтобы не было пробелов, например: SalesPersonNumber , ProductNumber и т.д. Это также решит многие будущие проблемы. Лучшее из удачи!

Попробуйте сделать имена полей законными, удалив пробелы. Это длинный выстрел, но он действительно помог мне раньше.

Эти ответы неверны. Существует фундаментальное отсутствие знаний в вашем мозгу, что я сейчас исправлю.

Ваша главная проблема здесь — ваша схема именования. Он многословный, содержит нежелательные символы и ужасно непоследователен.

Первая. Таблица, которая называется Salesperson , не обязательно должна иметь каждое поле в таблице с именем Salesperson.Salesperson number , Salesperson.Salesperson email . Вы уже находитесь в таблице Salesperson . Все в этой таблице относится к Salesperson . Вам не нужно продолжать это говорить.

Вместо этого используйте ID , Email . Не используйте Number , потому что это, вероятно, зарезервированное слово. Вы действительно пытаетесь ввести [] вокруг каждого имени поля для срока службы вашей базы данных?

Первичные ключи таблицы Student могут быть ID или StudentID , но быть последовательными. Внешние ключи должны быть только обозначены таблицей, на которую указывает, а затем ID . Например: Student.ID и Appointment.StudentID . ID всегда заглавная. Мне все равно, не сообщит ли вам ваш IDE, потому что везде, но ваша IDE будет ID . Даже Access нравится ID .

Второй. Назовите все свои поля без пробелов или специальных символов и сохраните их как можно короче, и если они конфликтуют с зарезервированным словом, найдите другое слово.

Вместо phone number используйте PhoneNumber или даже лучше, просто, Phone . Если вы выберете what time user made the withdrawal , вам придется вводить его каждый раз.

Третий. И это один из наиболее важных: всегда быть последовательным в любой выбранной вами схеме именования. Вы должны быть в состоянии сказать: «Мне нужен почтовый код из этой таблицы, его имя будет PostalCode». Вы должны знать, что даже не нужно искать его, потому что вы согласны в своем соглашении об именах.

Recap: Тесный, а не подробный. Держите имена короткими без пробелов, не повторяйте имя таблицы, не используйте зарезервированные слова и заглавные буквы каждого слова. Прежде всего, будьте последовательны.

Надеюсь, вы примете мой совет. Это правильный способ сделать это. Мой ответ правильный. Вы должны быть чрезвычайно педантичным с вашей схемой именования до абсолютной одержимости на всю оставшуюся жизнь на этой планете.

ПРИМЕЧАНИЕ. Фактически вам нужно изменить имя поля в представлении проекта таблицы и в запросе.

Форма доступа — ошибка синтаксиса (отсутствующий оператор) в выражении запроса

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

Любые идеи, почему только форма генерирует синтаксическую ошибку или как это исправить?

Мне удалось быстро исправить это, перейдя в «Дизайн-вид формы» и положив [] на любые имена полей, в которых были пробелы. Теперь я могу использовать встроенные фильтры без раздражающего всплывающего окна о проблемах с синтаксисом.

У меня была такая же проблема. Как говорит Дедрен, проблема заключается не в запросе, а в источнике управления объектами формы. Поместите [] вокруг каждого объекта Control Source. например: Contol Source: [Product number] , Control Source: Salesperson.[Salesperson number] и т.д.

Makita рекомендует перейти к исходной таблице, на которую вы ссылаетесь в своем запросе, и переименовать поле, чтобы не было пробелов, например: SalesPersonNumber , ProductNumber и т.д. Это также решит многие будущие проблемы. Лучшее из удачи!

Читать еще:  Ошибка 509 что значит

Попробуйте сделать имена полей законными, удалив пробелы. Это длинный выстрел, но он действительно помог мне раньше.

Эти ответы неверны. Существует фундаментальное отсутствие знаний в вашем мозгу, что я сейчас исправлю.

Ваша главная проблема здесь — ваша схема именования. Он многословный, содержит нежелательные символы и ужасно непоследователен.

Первая. Таблица, которая называется Salesperson , не обязательно должна иметь каждое поле в таблице с именем Salesperson.Salesperson number , Salesperson.Salesperson email . Вы уже находитесь в таблице Salesperson . Все в этой таблице относится к Salesperson . Вам не нужно продолжать это говорить.

Вместо этого используйте ID , Email . Не используйте Number , потому что это, вероятно, зарезервированное слово. Вы действительно пытаетесь ввести [] вокруг каждого имени поля для срока службы вашей базы данных?

Первичные ключи таблицы Student могут быть ID или StudentID , но быть последовательными. Внешние ключи должны быть только обозначены таблицей, на которую указывает, а затем ID . Например: Student.ID и Appointment.StudentID . ID всегда заглавная. Мне все равно, не сообщит ли вам ваш IDE, потому что везде, но ваша IDE будет ID . Даже Access нравится ID .

Второй. Назовите все свои поля без пробелов или специальных символов и сохраните их как можно короче, и если они конфликтуют с зарезервированным словом, найдите другое слово.

Вместо phone number используйте PhoneNumber или даже лучше, просто, Phone . Если вы выберете what time user made the withdrawal , вам придется вводить его каждый раз.

Третий. И это один из наиболее важных: всегда быть последовательным в любой выбранной вами схеме именования. Вы должны быть в состоянии сказать: «Мне нужен почтовый код из этой таблицы, его имя будет PostalCode». Вы должны знать, что даже не нужно искать его, потому что вы согласны в своем соглашении об именах.

Recap: Тесный, а не подробный. Держите имена короткими без пробелов, не повторяйте имя таблицы, не используйте зарезервированные слова и заглавные буквы каждого слова. Прежде всего, будьте последовательны.

Надеюсь, вы примете мой совет. Это правильный способ сделать это. Мой ответ правильный. Вы должны быть чрезвычайно педантичным с вашей схемой именования до абсолютной одержимости на всю оставшуюся жизнь на этой планете.

ПРИМЕЧАНИЕ. Фактически вам нужно изменить имя поля в представлении проекта таблицы и в запросе.

Помогите разобраться с запросом

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

В консоли запроса при попытке выполнить ругается вот так:

<Форма.Форма(739)>: Ошибка при вызове метода контекста (Выполнить): <(41, 52)>: Синтаксическая ошибка «Обслуживание.ДоговорКонтрагента.Владелец»
«+?(СписокГруппКонтрагентов.Количество()>0,» >Обслуживание.ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&СписокГруппКонтрагентов) И»,»)+»

может кто сможет понять и увидеть что не так для конструктора?
Сам запрос вот:

|Обслуживание.Адрес.РайонДляОтчетов как Район,

| Обслуживание.ДоговорКонтрагента.Владелец КАК Контрагент,
| Обслуживание.ДоговорКонтрагента КАК Договор,
| Обслуживание.СерияНоменклатуры.Владелец КАК Номенклатура,
| Обслуживание.СерияНоменклатуры КАК Номер,
| Обслуживание.ДоговорКонтрагента.ДатаОкончания как ДатаОкончания,
| Обслуживание.Выезд КАК Выезд,
//1

| ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) КАК Цена,
| ЕСТЬNULL(Обслуживание.Количество, 0) КАК Количество,
| ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) * ЕСТЬNULL(Обслуживание.Количество, 0) КАК Сумма,
| ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 0) КАК Взаиморасчеты,
| Обслуживание.Адрес КАК Адрес,
| Обслуживание.Адрес.Телефоны+»»; «»+Обслуживание.Комментарий КАК Комментарий,
| Обслуживание.Смена КАК Время,
| &СостояниеЗаказа КАК Состояние,
| &ПустойАвтор КАК Автор
|ИЗ
| РегистрСведений.Обслуживание КАК Обслуживание
|ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
|ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
|СУММА(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовОстаток
|ИЗ
|РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&Момент, ) КАК ВзаиморасчетыСКонтрагентамиОстатки
|СГРУППИРОВАТЬ ПО
|ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента) КАК ВзаиморасчетыСКонтрагентамиОстатки
| ПО Обслуживание.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоДоговору.СрезПоследних(&Момент, ) КАК ЦеныПоДоговоруСрезПоследних
| ПО Обслуживание.СерияНоменклатуры.Владелец = ЦеныПоДоговоруСрезПоследних.Номенклатура
| И Обслуживание.ДоговорКонтрагента = ЦеныПоДоговоруСрезПоследних.ДоговорКонтрагента

| И Обслуживание.Адрес = ЦеныПоДоговоруСрезПоследних.Адрес

|ГДЕ
| Обслуживание.ДатаЗадания МЕЖДУ &НачалоСуток И &КонецСуток И
| «;
Если СписокГруппКонтрагентов.Количество()>0 тогда
Запрос.ТекстЗапроса=Запрос.ТекстЗапроса+»
| Обслуживание.ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&СписокГруппКонтрагентов) И»;
КонецЕсли;
Если СписокАдресовИсключений.Количество()>0 тогда
Запрос.ТекстЗапроса=Запрос.ТекстЗапроса+»
| Обслуживание.Адрес НЕ В (&СписокАдресовИсключений) И»;
КонецЕсли;
Запрос.ТекстЗапроса=Запрос.ТекстЗапроса+»
| Обслуживание.Состояние = &Действует И

Замени свой фрагмент на такую конструкцию

(3) Klyacksa, Ваш код помог, но теперь ругается на следующую конструкцию

<Форма.Форма(739)>: Ошибка при вызове метода контекста (Выполнить): <(48, 81)>: Ожидается выражение «)»
И (-ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 0) >»+Символ+» ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) * ЕСТЬNULL(Обслуживание.Количество, 0)

как можно здесь по другому написать?

ВСЕМ КТО ДАЕТ СОВЕТЫ И ПЫТАЕТСЯ ПОМОЧЬ — ОГРОМНОЕ СПАСИБО. ПРИЯТНО ОСОЗНАВАТЬ, ЧТО ЕСТЬ ЛЮДИ, ГОТОВЫЕ ПОМОЧЬ)

(6) Klyacksa, )) я тоже скобку подставлял сначала(но похоже она не при чем, тк код рабочий), но тогда ругается вот так

<Форма.Форма(739)>: Ошибка при вызове метода контекста (Выполнить): <(49, 81)>: Синтаксическая ошибка «»+Символ+»»
И (-ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 0)) >»+Символ+» ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) * ЕСТЬNULL(Обслуживание.Количество, 0)

Запрос.текст выглядит во так:

Обслуживание.Адрес.РайонДляОтчетов как Район,

Обслуживание.ДоговорКонтрагента.Владелец КАК Контрагент,
Обслуживание.ДоговорКонтрагента КАК Договор,
Обслуживание.СерияНоменклатуры.Владелец КАК Номенклатура,
Обслуживание.СерияНоменклатуры КАК Номер,
Обслуживание.ДоговорКонтрагента.ДатаОкончания как ДатаОкончания,
Обслуживание.Выезд КАК Выезд,
//1

ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) КАК Цена,
ЕСТЬNULL(Обслуживание.Количество, 0) КАК Количество,
ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) * ЕСТЬNULL(Обслуживание.Количество, 0) КАК Сумма,
ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 0) КАК Взаиморасчеты,
Обслуживание.Адрес КАК Адрес,
Обслуживание.Адрес.Телефоны+»; «+Обслуживание.Комментарий КАК Комментарий,
Обслуживание.Смена КАК Время,
&СостояниеЗаказа КАК Состояние,
&ПустойАвтор КАК Автор
ИЗ
РегистрСведений.Обслуживание КАК Обслуживание
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
СУММА(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовОстаток
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&Момент, ) КАК ВзаиморасчетыСКонтрагентамиОстатки
СГРУППИРОВАТЬ ПО
ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента) КАК ВзаиморасчетыСКонтрагентамиОстатки
ПО Обслуживание.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоДоговору.СрезПоследних(&Момент, ) КАК ЦеныПоДоговоруСрезПоследних
ПО Обслуживание.СерияНоменклатуры.Владелец = ЦеныПоДоговоруСрезПоследних.Номенклатура
И Обслуживание.ДоговорКонтрагента = ЦеныПоДоговоруСрезПоследних.ДоговорКонтрагента

Читать еще:  Ошибка аутентификации вай фай что делать

И Обслуживание.Адрес = ЦеныПоДоговоруСрезПоследних.Адрес

ГДЕ
Обслуживание.ДатаЗадания МЕЖДУ &НачалоСуток И &КонецСуток И
Обслуживание.ДоговорКонтрагента.Владелец В ИЕРАРХИИ (&СписокГруппКонтрагентов) И
Обслуживание.Адрес НЕ В (&СписокАдресовИсключений) И

Обслуживание.Состояние = &Действует И
Обслуживание.Количество <> 0

И (-ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 0))»+Символ+» ЕСТЬNULL(ЦеныПоДоговоруСрезПоследних.ЦенаТО, 0) * ЕСТЬNULL(Обслуживание.Количество, 0)

«+?(Должники,» И Обслуживание.Выезд = &Платный) «,» ИЛИ Обслуживание.Выезд = &Бесплатный)»)+»
И Обслуживание.Смена = &Смена
И (Обслуживание.ДоговорКонтрагента.ДатаОкончания = ДАТАВРЕМЯ(1,1,1,0,0,0)
Или Обслуживание.ДоговорКонтрагента.ДатаОкончания >= &ДатаВыезда)

Ограничение ввода данных с помощью правил проверки

Правила проверки позволяют выполнять проверку данных по мере их ввода в базы данных Access для настольных систем. Для правильного форматирования правил вы можете использовать построитель выражений. Правила проверки можно задавать в конструкторе таблиц или в режиме таблицы. В Access существуют правила проверки трех типов.

1. Правило проверки поля . Это правило можно использовать для определения условий, которым должны соответствовать все допустимые значения полей. Не указывайте текущее поле в качестве части правила, если вы не используете это поле в функции. Для ограничения типов символов, которые можно вводить в поле, удобно использовать маску ввода. Например, для полей даты можно задать правило проверки, запрещающее указывать прошедшие даты.

Запрет прошедших дат: >=Date()

Общепринятый формат эл. почты: Is Null OR ((Like «*?@?*.?*») AND (Not Like «*[ ,;]*»))

Число не больше пяти: =0

Ограничения числа знаков в строке: Len([StringFieldName]) =[Дата начала]

Ввод даты назначения, которая должна быть не позднее 30 дней с даты заказа: [Дата назначения]

В этой статье

Общие сведения

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

После ввода данных Access проверяет их на соответствие правилу проверки. Если данные недопустимы, отобразится сообщение.

В Access есть несколько способов ограничения ввода данных.

Типы данных .Каждое поле таблицы имеет тип данных, который ограничивает возможности ввода для пользователей. Например, в поле с типом данных «Дата/время» можно ввести только дату и время, в поле с типом данных «Денежный» — только денежные данные и т. д.

Свойства поля .Некоторые свойства поля ограничивают ввод данных. Например, свойство Размер поля ограничивает количество вводимых данных.

Можно также использовать свойство Правило проверки, чтобы ограничить ввод строго определенными значениями, и свойство Сообщение об ошибке, чтобы предупреждать пользователей об ошибках. Например, правило >100 And =[ДатаНачала] требует, чтобы вводимая дата окончания совпадала с датой начала либо следовала за ней. Текст типа «Введите значения в диапазоне от 100 до 1000» или «Введите дату окончания, которая не предшествует дате начала», указанный в свойстве Сообщение об ошибке, сообщит пользователям о допущенной ошибке и о том, как ее исправить.

Маски ввода .Маски ввода можно использовать для проверки данных, если требуется, чтобы пользователи вводили значения в определенном формате. Например, с помощью маски ввода можно разрешить вводить даты только в европейском формате (например, 2007.04.14).

Эти методы проверки данных можно использовать как вместе, так и в отдельности. Типы данных являются обязательными и предоставляют наиболее распространенные типы проверки данных.

Дополнительные сведения о типах данных, размерах полей и масках ввода см. в статье Введение в использование типов данных и свойств полей.

Типы правил проверки

Можно создать два основных типа правил проверки.

Правило проверки поля .Это правило используется для проверки введенного значения при переходе к другому полю. Предположим, имеется поле даты, и для свойства Правило проверки задано значение >=#01.01.2010#. Это правило требует, чтобы пользователи вводили дату не ранее 1 января 2010 года. Если указать дату ранее 2010 года, вы не сможете перейти к другому полю в Access, пока не исправите ошибку.

Правило проверки записи .Это правило используется для управления сохранением записи (строки в таблице). В отличие от правила проверки поля, для правила проверки записи используются ссылки на другие поля той же таблицы. Правило проверки записи создается, если требуется сравнить значения в разных полях. Предположим, вам требуется доставить товар в течение 30 дней, и в случае если товар не будет доставлен в этот срок, необходимо возместить клиенту убытки. Можно задать правило проверки [Срок]

Применение правил проверки

Можно задавать правила проверки для полей таблиц и элементов управления в формах. Заданные правила проверки для таблиц применяются также при импорте данных. Чтобы добавить правила проверки в таблицу, откройте нужную таблицу и используйте команды на вкладке Поля ленты. Чтобы добавить правила проверки в форму, откройте форму в режиме макета и добавьте эти правила в свойства отдельных элементов управления.

Читать еще:  Как убрать ошибки в ворде

Из инструкций, приведенных в разделе Добавление правила проверки в таблицу, вы узнаете, как добавлять правила проверки в поля таблицы. А в разделе Добавление правила проверки для элемента управления формы, который вы найдете ниже в этой статье, описано, как добавлять правила в свойства отдельных элементов управления.

Данные, которые можно ввести в правило проверки

Правила проверки могут содержать выражения — функции, возвращающие единственное значение. Выражение можно использовать для выполнения вычислений, обработки знаков или проверки данных. Выражение правила проверки выполняет проверку данных. Например, может проверять наличие одного значения из ряда, например «Токио» OR «Москва» OR «Париж» OR «Хельсинки» . Выражения также могут выполнять математические операции. Например, выражение

Добавление правила проверки в таблицу

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

Примечания: Правила проверки не поддерживаются в таких типах полей:

Делфи пишет » Ошибка синтаксиса (пропущен оператор) в выражении запроса

‘SELECT[Таблица 1].Название_картины, [Таблица 1].Автор_картины, [Таблица 1].Год_Создания, [Таблица 1].Тип_картины’+
‘FROM[Таблица 1]’+
‘WHERE[Таблица 1].Тип_картины =холст AND масло ‘

В чём здесь ошибка какой оператор пропущен Роман Убушаев

Другие интересные вопросы и ответы

Возможно ли изучить программирование за лето?

Смотря что ты хочешь изучить и что имеешь ввиду под программированием.

Если html+css — да, вполне возможно. Но это верстка а не программирование. SQL — так же возможно, но и работу с БД я так же не могу назвать настоящим программированием.

Если же брать серьезное программирование — однозначное нет. Минимум год самообучения по 8-12 часов в день. Минимум — если у тебя уже есть некая база и неплохо поставленная логика. Значительно больше если нет.
У меня была очень сильная база (я несколько лет работал в IT конторе мирового масштаба(входит в первую десятку по размеру) международной тех.поддержкой высшего уровня[там было 5 таких] а так же QA[тестировщиком], а так же некую базу программирования уже имел), но у меня пошло пол года по 8-12 часов в день что бы достичь некоего более-менее неплохого уровня на C#. По факту недостаточного что бы работать полноценным программистом. Но все же достаточного для автоматизации.

Реальное программирование — это не просто синтаксис языка. Программирование — это умение решать задачи. Как математические так и логические. Логические — в первую очередь! А так же знание ряда алгоритмов. А так же знание инструментов которыми пользуешься(например нужно понимать как внутри устроен List/LinkedList и Array для того,что бы их правильно оптимально использовать, просто знать что длинна аррея не меняется — НЕ ДОСТАТОЧНО). Синтаксиса языка НЕ ДОСТАТОЧНО кто бы тебе не говорил обратного.

Что бы не быть баснословным, я наведу простой пример использования алгоритмов:

Алгоритм среднего между 2мя целыми числами нормального человека:
(a+b)/2
алгоритм среднего из 2х целых чисел программиста(умного, а не в кавычках):
a/2+b/2+(a%2+b%2)/2
где % — вычисление остачи от деления.

потому как первый алгоритм даст ровно в половине из возможных случаев неправильный ответет из-за переполнения памяти + еще в четверти случаях просто на одиницу меньше нужного. Заметьте! Не ошибку! А неправильный ответ в трех случаях из 4х! А «программист»(именно в кавычках) еще и не будет в курсе почему так 🙂

Для нецелочисленного типа данных(double, float) проще:
a/2+b/2

Как видишь, проблема не в синтаксисе как таковом 🙂 Выучить синтаксис — как раз наименьшая из проблем. Хотя, замечу, что, даже, это для многих будет непосильной задачей.

С другой стороны — я за то что бы не грузить человека «паттернами» и излишними алгоритмами. На новичков это подействует, скорее всего, негативно, чем позитивно. Типа…. «я слышал про паттерн ____________, вот задача на которую КАЖЕТСЯ подойдет он.» А потом решение задачи усложняется в разы. Ну или затягивается. Паттерны нужно не только знать, но и применять с умом. К алгоритмам так же нужны знания как и когда их лучше применять. Поэтому — БЕЗ ФАНАТИЗМА.

PS: человек снизу, который меня активно критикует(Jone Done), даже путает среду разработки и язык… Delphi — это не язык, а IDE, а язык там это Object Pascal.
Так же там в коментариях у нее я проверил ее «нормальные знания джавы»… Желающие посмотреть на «номально выучившую язык за 2,5 месяца» смотреть туда. И это при том что Я ДЖАВУ НЕ ЗНАЮ, а, так, посмотрел инфу не более чем 3 дня где-то пол года назад просто для общего развития и что бы лично сложить свое собственное мнение по языку.

Ссылка на основную публикацию
Adblock
detector