Показано с 1 по 5 из 5

Тема: Помогите решить задачу

  1. #1
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию Помогите решить задачу

    Описание на фото, есть файл проекта в CDS2.3.
    Изображения Изображения
    Вложения Вложения

  2. #2

    По умолчанию

    А почему там IFами всё написано? Я туплю, но разве в циклах нельзя массивы обойти?
    Код стрёмный в плане индексов и прочего. Может стоит задать размеры массивов хоть константами, чтобы корд выглядел как "IF (Index_2 = Arr2_Maximum) THEN", а не фиг что?
    И ещё можно же завести отдельную переменную для суммы. Обнулять её, а потом работать с ней, обходя массивы в цикле. Тогда обход массивов и присвоение суммы будут выглядеть читабельно и изящно.

  3. #3

    По умолчанию

    Вот это - оно? ArrSum-1.gif ArrSum-2.gif
    У меня только вопрос к постановщику задачи: чего это второй массив объявлен на один элемент больше, но даже в фотке решения эти пустые элементы не показаны?
    Почему первый массив от 1 до 5, а второй - от 0 до 5?

  4. #4
    Пользователь
    Регистрация
    07.06.2018
    Адрес
    Казань
    Сообщений
    54

    По умолчанию

    Да, это то, что мне требовалось!!
    Благодарю за помощь!
    Сам учусь пока, знаний не хватает как разрабатывать алгоритм "читабельно и изящно".

  5. #5

    По умолчанию

    А можно мне поворчать? Ну, если ты правда учишься для себя, а не формально спустя рукава для галочки?)
    У кода есть культура, и к ней лучше сразу жёстко приучиться, потому что она и себе же помогает, и другим, и исключает ошибки в коде.
    В школах нас ужасно и учили - всякие i, j, k в циклах, которые ни фига не значат и по ним ни фига не поймёшь все эти a[i][k] := b[i][j];
    Я давно учился прогать на других языках, и оттуда стащил принципы именования переменных, такие: переменная называется по схеме "префикс типа" + "группа" + название.
    То есть нужно делать так, чтобы название переменной было читаемым, и чтобы при была понятно то, куда эта переменная относится.
    Например переменные для режимов "Нагрев включен" и "Ошибка нагревателя" можно обозвать так
    * bNagrevON
    * bNagrevERR
    b - это BOOL. А дальше обрати внимание, что по русски мы назвали "Ошибка нагревателя", а название переменной перевернули наоброт, написав не "bERRNagrevatel", а "bNagrevERR", чтобы при выводе всяких подсказок (вызываются по F2 в CodeSys v2 и по точке в CodeSys v3) переменные для нагревателя оказались рядом по списку.
    Поэтому в моём примере я например минимумы и максимумы массивов зафигачил с префиксом этих массивов. То есть не Min_Array1, а Array1_Min.

    Ещё важно писать код так, чтобы в будущем он был универсальный. Это про "магические числа".
    Короче, всякие времена задержек, границы массивов удобно выносить в переменные или константы, чтобы их можно было легко подстроить или понимать, что это такое.
    Ну, образно, если у нас на каком-то таймере будет задано время в t#300ms, то мы хрен что поймём потом. А если это время будет внесено в константу и будет названо как tHeatDelay (НагревЗадержка), то и код будет понятным, и в будущем это время можно будетлегко в одном месте кода подкорректировать

Похожие темы

  1. Ответов: 8
    Последнее сообщение: 05.11.2018, 16:30
  2. Помогите решить задачу, регулировка насоса по давлению
    от Zhestov в разделе Подбор Оборудования
    Ответов: 20
    Последнее сообщение: 19.04.2018, 11:56
  3. помогите нубу решить задачу с МЭ110-224.1Т
    от opavlov в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 21.03.2017, 10:12
  4. ПР 110 Помогите решить задачу.
    от aleregin в разделе Программируемые реле
    Ответов: 5
    Последнее сообщение: 26.12.2013, 09:33
  5. Ответов: 5
    Последнее сообщение: 06.12.2013, 17:45

Ваши права

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