Тема  7. Синтаксис Java

Содержание

  1. Типы данных
    1. Примитивные типы данных
      1. Целочисленные типы
      2. Символьный тип
      3. Числа с плавающей точкой
      4. Обертки примитивных типов
    2. Ссылочные типы
      1. Массивы
        1. Объявления
        2. Литералы
        3. Как объекты
        4. Ковариантность
        5. Reification
      2. Объекты
        1. Класс String
        2. Метод toString
        3. Класс StringBuilder
  2. Операции
    1. Приоритеты
    2. Ассоциативность
  3. Операторы
    1. Простые
    2. Ветвления
    3. Циклы
    4. Переходы
  4. Структура исходного кода
    1. Заголовок
    2. Классы
    3. Интерфейсы
    4. Поля
    5. Конструкторы
    6. Методы
    7. Инициализаторы

Слайды

HTML

Домашнее задание 8. Git

Загрузите решения домашних заданий (в том числе, сданных) в ваш персональный git-репозиторий. Со следующей недели сдача домашних заданий будет производиться только через репозитории.

Персональные репозитории имеют URL https://www.kgeorgiy.info/git-students/year2023/<USER>/prog-intro, где <USER> — имя пользователя в PCMS (пароль так же используется из PCMS). Если у вас нет логина/пароля в PCMS, то cоберитесь группой и обратитесь к Николаю Викторовичу.

Персональные репозитории являются клонами этого репозитория. В нём вы можете ознакомиться с правилами ведения репозитория и рекомендациями по его настройке.

Домашнее задание 9. Markdown to HTML

  1. Разработайте конвертер из Markdown-разметки в HTML.
  2. Конвертер должен поддерживать следующие возможности:
    1. Абзацы текста разделяются пустыми строками.
    2. Элементы строчной разметки: выделение (* или _), сильное выделение (** или __), зачеркивание (--), код (`)
    3. Заголовки (# * уровень заголовка)
  3. Конвертер должен называться md2html.Md2Html и принимать два аргумента: название входного файла с Markdown-разметкой и название выходного файла c HTML-разметкой. Оба файла должны иметь кодировку UTF-8.
  4. При выполнении этого ДЗ можно повторно использовать код ДЗ markup.
  5. Конвертер может хранить исходные и сконвертированные данные в памяти, в том числе, одновременно.
  6. Пример
    • Входной файл
      # Заголовок первого уровня
      
      ## Второго
      
      ### Третьего ## уровня
      
      #### Четвертого
      # Все еще четвертого
      
      Этот абзац текста,
      содержит две строки.
      
          # Может показаться, что это заголовок.
      Но нет, это абзац начинающийся с `#`.
      
      #И это не заголовок.
      
      ###### Заголовки могут быть многострочными
      (и с пропуском заголовков предыдущих уровней)
      
      Мы все любим *выделять* текст _разными_ способами.
      **Сильное выделение**, используется гораздо реже,
      но __почему бы и нет__?
      Немного --зачеркивания-- еще ни кому не вредило.
      Код представляется элементом `code`.
      
      Обратите внимание, как экранируются специальные
      HTML-символы, такие как `<`, `>` и `&`.
      
      Знаете ли вы, что в Markdown, одиночные * и _
      не означают выделение?
      Они так же могут быть заэкранированы
      при помощи обратного слэша: \*.
      
      
      
      Лишние пустые строки должны игнорироваться.
      
      Любите ли вы *вложеные __выделения__* так,
      как __--люблю--__ их я?
                  
    • Выходной файл
      <h1>Заголовок первого уровня</h1>
      <h2>Второго</h2>
      <h3>Третьего ## уровня</h3>
      <h4>Четвертого
      # Все еще четвертого</h4>
      <p>Этот абзац текста,
      содержит две строки.</p>
      <p>    # Может показаться, что это заголовок.
      Но нет, это абзац начинающийся с <code>#</code>.</p>
      <p>#И это не заголовок.</p>
      <h6>Заголовки могут быть многострочными
      (и с пропуском заголовков предыдущих уровней)</h6>
      <p>Мы все любим <em>выделять</em> текст <em>разными</em> способами.
      <strong>Сильное выделение</strong>, используется гораздо реже,
      но <strong>почему бы и нет</strong>?
      Немного <s>зачеркивания</s> еще ни кому не вредило.
      Код представляется элементом <code>code</code>.</p>
      <p>Обратите внимание, как экранируются специальные
      HTML-символы, такие как <code>&lt;</code>, <code>&gt;</code> и <code>&amp;</code>.</p>
      <p>Знаете ли вы, что в Markdown, одиночные * и _
      не означают выделение?
      Они так же могут быть заэкранированы
      при помощи обратного слэша: *.</p>
      <p>Лишние пустые строки должны игнорироваться.</p>
      <p>Любите ли вы <em>вложеные <strong>выделения</strong></em> так,
      как <strong><s>люблю</s></strong> их я?</p>
                  
    • Реальная разметка

      Заголовок первого уровня

      Второго

      Третьего ## уровня

      Четвертого # Все еще четвертого

      Этот абзац текста, содержит две строки.

      # Может показаться, что это заголовок. Но нет, это абзац начинающийся с #.

      #И это не заголовок.

      Заголовки могут быть многострочными (и с пропуском заголовков предыдущих уровней)

      Мы все любим выделять текст разными способами. Сильное выделение, используется гораздо реже, но почему бы и нет? Немного зачеркивания еще ни кому не вредило. Код представляется элементом code.

      Обратите внимание, как экранируются специальные HTML-символы, такие как <, > и &.

      Знаете ли вы, что в Markdown, одиночные * и _ не означают выделение? Они так же могут быть заэкранированы при помощи обратного слэша: *.

      Лишние пустые строки должны игнорироваться.

      Любите ли вы вложеные выделения так, как люблю их я?

Домашнее задание 10. Чемпионат

  1. Решите как можно больше задач Чемпионата северо-запада России по программированию 2019.
  2. Материалы соревнования:
  3. Задачи для решения
    ЗадачаТемаСложность
    A.Accurate MovementФормула5
    B.Bad TreapЦиклы10
    C.Cross-StitchГрафы40
    D.Double PalindromeМассивы40
    E.EquidistantДеревья30
    H.High Load DatabaseМассивы20
    I.Ideal PyramidЦиклы15
    J.Just the Last DigitМатрицы20
    K.King’s ChildrenМассивы40
    M.Managing DifficultiesКоллекции10
  4. Рекомендуемое время выполнения задания: 3 часа

Экзаменационные вопросы

  1. Типы данных
  2. Операции
  3. Операторы
  4. Структура исходного кода

Практические навыки

  1. Реализация программ на Java с применением интерфейсов и абстрактных базовых классов