Это старая версия Информатика/Архив/2019/10Б за 05.04.2019 14:59 под редакцией VladimirIlyin.
Просмотр кода страницы 10 Б страница
=== Задачи на SELECT === Имя, фамилия 1. Напишите запрос, выбирающий все данные из таблицы STUDENT, расположив столбцы таблицы в следующем порядке: KURS, SURNAME, NAME, STIPEND. Напишите запрос SELECT, который выводит наименование предмета обучения (SUJECT_NAME) и количество часов (HOUR) для каждого предмета (SUBJECT) в 4-м семестре (SEMESTER). 2. Напишите запрос, который выводит список фамилий студентов, обучающихся на третьем и последующих курсах. 3. Напишите запрос, выполняющий выборку из таблицы SUBJECT названий всех предметов обучения, на которые отводится более 30 часов. 4. Напишите запрос к таблице STUDENT для вывода списка фамилий (SURNAME), имен (NAME)- и номера курса (KURS) всех студентов со стипендией, большей или равной 100, и живущих в Воронеже. 5. Напишите запрос, выбирающий сведения о студентах, у которых имена начинаются на буквы «И» или «С». 6. Напишите запрос на вывод из таблицы EXAM_MARKS записей, имеющих в поле MARK значения оценок. 7. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Б.КУЗНЕЦОВ;местожительства-БРЯНСК;родился-8.12.81. 8. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Борис Кузнецов родился в 1981 году. 9. То же, что и в задаче 8, но только для студентов 1, 2 и 4-го курсов и таким образом, чтобы фамилии и имена были выведены прописными буквами. ==Программирование== ===Структуры данных=== [[https://informatics.mccme.ru/mod/statements/view.php?id=30086#1 ArrayList Java]] в решении должна быть одна пара квадратных скобок [[https://informatics.mccme.ru/mod/statements/view.php?id=40362#1 Очереди, стеки, деки просто]] [[https://informatics.mccme.ru/moodle/mod/statements/view3.php?id=40363#1 Очереди, стеки, деки сложно]] [[http://axis.bplaced.net/news/773 Список]] Напишите двусвязный список, сравните его эффективность с ArrayList и LinkedList. ===Реляционные базы данных. Язык SQL=== Для работы (обучения) удобно использовать SQLite. Почему? **0. Soft** Удобно работать при помощи SQLite Browser. Установите его. **1. Создание таблиц** [[http://xbb.uz/db/Tipy-dannyh-v-SQLite-versii-3 Какие типы данных есть в SQLitе? (ДО п. 2)]] Изучите синтаксис SQL для [[http://moonexcel.com.ua/уроки-sql14-создание-таблиц-create-table_ru создания и удаления таблиц]] Создайте базу данных из след. таблиц (какие поля можно и нужно сделать ключевыми?) STUDENT : ID, SURNAME, NAME, STIPEND, KURS, CITY, BIRTHDAY, UNIV_ID LECTURER : ID, SURNAME, NAME, CITY, UNIV_ID SUBJECT : ID, NAME, HOUR, SEMESTER UNIVERCITY : ID, UNIV_NAME, RAITING, CITY EXAM_MARKS : EXAM_ID, STUDENT_ID, SUBJ_ID, MARK, EXAM_DATE SUBJ_LECT : LECTURER_ID, SUBJECT_ID **2. Наполнение данными** Изучите [[http://www.sql-tutorial.ru/ru/book_operator_insert.html синтаксис команды INSERT]]. В каждой таблице должно быть не менее 100 записей. Для того, чтобы сделать это быстро, стоит использовать скрипты - программы, генерирующие команды INSERT **3. Запросы а выборку из одной таблицы** [[http://www.sql-tutorial.ru/ru/book_simple_select_statement.html Простейшие варианты]] [[http://2sql.ru/novosti/sql-where/ Условие WHERE]] [[https://function-x.ru/sql_select.html Дополнительные возможности SELECT]] [[http://webmasterschool.ru/sql2/ch7.php Вычисляемые поля]] ==== Задачи на простой SELECT ==== **Совсем просто** 1. Напишите запрос для вывода идентификатора (номера) предмета обучения, его наименования, семестра, в котором он читается, и количества отводимых на этот предмет часов для всех строк таблицы SUBJECT. 2. Напишите запрос, выбирающий все данные из таблицы STUDENT, расположив столбцы таблицы в следующем порядке: KURS, SURNAME, NAME, STIPEND. 3. Напишите запрос, позволяющий получить из таблицы EXAM_MARKS значения столбца MARK (экзаменационная оценка) для всех студентов, исключив из списка повторение одинаковых строк. 4. Напишите запрос, выбирающий данные о фамилии, имени и номере курса для студентов, получающих стипендию больше 140. 5. Напишите запрос, который выполняет вывод списка университетов, рейтинг которых превышает 300 баллов. 6. Напишите запрос на вывод находящихся в таблице EXAM_MARKS номеров предметов обучения, экзамены по которым сдавались между 10 и 20 января 1999 года. 7. Напишите запрос на вывод названий предметов обучения, начинающихся на букву «И». 8. Напишите запрос для выбора из таблицы EXAM_MARKS записей, в которых отсутствуют значения оценок (поле MARK). **Вычисления в запросах SELECT** 1. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала один столбец, содержащий последовательность разделенных символом «;» (точка с запятой) значений всех столбцов этой таблицы, и при этом текстовые значения должны отображаться прописными символами (верхний регистр), то есть быть представленными в следующем виде: 10;КУЗНЕЦОВ;БОРИС;0;БРЯНСК;8/12/1981;10. 2. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: б.кузнецов;место жительства-брянск;родился:8-дек-1981. 3. Вывести фамилии, имена студентов и величину получаемых ими стипендий, при этом значения стипендий должны быть увеличены в 100 раз. 4. Составьте запрос для таблицы UNIVERSITY таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Код-10;ВГУ-г. ВОРОНЕЖ;Рейтинг=296. ===Протокол HTTP 1.0 на практике=== Броузер шлет обычно запрос по по версии 1.1, но отвечать ему можно и нужно по протоколу 1.0. **0. Prerequisites** Практика: Клиент - [[https://www.putty.org/ putty]] a) Открыть серверный сокет, передать клиенту строку символов, забрать от клиента строку символов b) То же, несколько строк. с) Переподключение: сделать так, чтобы несколько клиентов могли подключаться последовательно. **1. Основы HTTP** a) Основные ссылки по HTTP-протоколу b) Виды запросов c) Синтаксис GET-запроса d) Структура ответа, основные коды ответа e) Значимые заголовки **2. Практика. Простой GET-запрос** a) Получение браузером от сервера простой статичной Web-страницы **3. Практика. Работа с файлами** a) Вывод содержимого файла из текущего каталога в консоль б) То же из подкаталога текущего каталога в) Скопировать бинарный, например, графический файл. **4. Практика. Передача файлов по HTTP** a) Получение браузером конкретного HTML-файла, путь которого жестко прописан в коде сервера b) Получение браузером картинки, путь которой жестко прописан в коде сервера. **5. Практика. GET-запрос** a) Выделить путь из GET-запроса - отдать браузеру требуемый файл с правильным Content-type b) Обработать ошибку 404. **6. Теория. Web-формы HTML** a) Устройство HTML формы (тег FORM атрибут ACTION, атрибут METHOD, Submit) b) Пользовательский ввод (поле ввода, поле для ввода пароля, checkbox, radiobutton, выпадающий список) **7. Практика. Web-формы HTML** a) Создать форму со всеми элементами с GET запросом на localhost **8. Практика. Web-формы GET** a) Проанализировать получаемые данные браузера по GET запросу формы б) Сформировать ответ браузеру, передав полученные данные в HTML **9. Практика. Web-формы POST** a) Проанализировать получаемые данные браузера по POST запросу формы б) Сформировать ответ браузеру, передав полученные данные в HTML [[http://skipy.ru/technics/layouts.html Менеджеры компоновки]] [[http://www.quizful.net/post/swing-layout-managers вторая ссылка]] [[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Java SDK]] [[http://www.fandroid.info/ustanovka-jdk-java-development-kit/ Инструкция по установке]] [[https://docs.oracle.com/javase/10/docs/api/java/lang/String.html Документация по строкам]] 1. [[https://myitschool.ru/book_copy/ Контесты по основам]] 2. Вывести в консоль ровный треугольник Паскаля