среда, 29 апреля 2020 г.

Урок 53-54. Многотабличные базы данных

Дистанционное обучение. Дата занятия 30.04.20
Срок выполнения задания (решение двух задач) 22:00 час 30.04.20

Почему бы не собрать все данные в одной таблице?
У однотабличной модели есть недостатки:

  • дублирование данных
  • при изменении каких-то данных может потребоваться изменение нескольких записей
  • нет защиты от опечаток
Однотабличная БД - это аналог картотеки, в которой все карточки имеют одинаковую структуру. А на практике в одной БД нужно хранить данные, относящиеся к объектам разных типов, которые связаны между собой.

Удобнее классифицировать сведения об объектах и создать несколько таблиц - для каждого класса. При создании многотабличной БД между таблицами устанавливаются связи. Связь устанавливается только между парой таблиц. Одна из таблиц такой пары называется главной таблицей, другая - подчиненной таблицей.
При создании связи ключевое поле главной таблицы связывается с полем подчиненной таблицы, которое называется внешним ключом.
А теперь посмотрим презентацию, в которой многотабличные БД рассмотрены более подробно.

В конце презентации находится задание, которое надо выполнить сегодня, до 22:00

среда, 22 апреля 2020 г.

Урок 51-52. БД как модель предметной области

Дистанционное обучение. Дата занятия 23.04.20
Срок выполнения задания (заполнение формы) не позднее 22:00 час 23.04.20

Информационные системы и БД

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

  • Справочная адресная служба большого города
  • Транспортная информационная система, обеспечивающая также и покупку железнодорожных и авиабилетов
      
  • Информационно-поисковая система правового характера

Центральной частью любой информационной системы является база данных
База данных (БД) - это совокупность данных, организованных по определенным правилам, отражающая состояние объектов и их отношений в некоторой предметной области.

В середине ХХ века  были предложены следующие принципы  проектирования табличных БД:
    ,
  • Каждая таблица описывает один класс объектов;
  • Порядок расположения полей в таблице не имеет значения;
  • Все значения одного поля относятся к одному типу данных;
  • В таблице нет двух одинаковых записей;
  • Порядок расположения  записей в таблице не имеет значения.

Поэтому можно дать следующее определение. 
Реляционная БД - это БД, которую можно представить в виде набора таблиц с установленными между ними связями.

Система управления БД (СУБД) - это программное обеспечение для создания баз данных, хранения и поиска в них необходимой информации. 

Для проектирования БД средней сложности наиболее часто используются Microsoft Access, OpenOffice.org Base, LibreOffice Base.

Основными объектами СУБД являются:
  • Таблицы - это основной тип объектов. В таблицах хранятся данные.  
  • Формы - это вспомогательные объекты. Они обеспечивают удобную работу с данными в таблице.  
  • Запросы - это команды и результаты обращения пользователя к СУБД для поиска данных в таблицах, сортировки, добавления, удаления и обновления записей в таблицах.
  • Отчеты - это документы, сформированные на основе таблиц и запросов и предназначенные для вывода на печать.

Реляционные БД

 Реляционная БД может состоять из одной или нескольких взаимосвязанных таблиц.
Строка таблицы называется записью, столбец - полем.
Запись содержит информацию об одном объекте (Например, об одной книге в библиотеке)
Поле содержит информацию о значениях только одной характеристики объекта (Например, фамилия автора)
Поле БД имеет имя, тип, длину.
Тип поля определяется типом данных, которые в нем хранятся.
Поле или совокупность полей, значения которых в разных записях не повторяется (являются уникальными), называют первичным ключом таблицы БД.

Типы данных БД

Основные типы полей:
  • числовой - для полей, содержащих числовую информацию. Длина поля - стандартная
  • текстовый - для полей, содержащих произвольные последовательности символов. Длина поля - это максимальное количество символов, которые можно записать в это поле
  • логический - для полей, данные которых могут принимать только 2 значения: ДА/НЕТ или 1/0. Длина поля - стандартная
  • дата - для полей, содержащих календарные даты. Длина поля - стандартная
Посмотрим на уроке эту презентацию про БД
В срок до 22:00 23.04.20 заполните эту форму, ответьте на вопросы
Учтите, в 22:00 доступ к форме будет закрыт, ваши ответы приниматься не будут.

среда, 15 апреля 2020 г.

Урок 49-50. Цикл While. Решение задач

Дистанционное обучение. Дата занятия 16.04.20
Срок выполнения задания до 22:00 час 16.04.20
   Продолжаем решать задачи с использованием цикла While.
Давайте посмотрим, как по-разному решают одну и ту же задачу человек и компьютер.
   Задача: найти сумму пяти чисел:  5  15  7  12  3
Человек напишет так:
Sum = 5+15+7+12+3
Sum =42
Компьютер одновременно может работать только с двумя объектами.
Поэтому у него получится так:
Sum:=0;
Sum:=Sum+5;    // взять старое значение Sum:=0 и увеличить на 5
Sum:=Sum+15;  // взять старое значение Sum:=5 и увеличить на 15
Sum:=Sum+7;   //  взять старое значение Sum:=20 и увеличить на 7
Sum:=Sum+12;  // взять старое значение Sum:=27 и увеличить на 12
Sum:=Sum+13; //  взять старое значение Sum:=39 и увеличить на 3
Writeln (Sum);  //  вывести результат 42
Что же мы видим?
Компьютер несколько раз повторяет одни и те же действия:
"взять старое значение Sum и увеличить на Х"
Так это же цикл!
А теперь попробуем смоделировать работу кассира.
Каждый из нас ходит в магазин и расплачивается у кассы, вынимая один товар за другим.
А на индикаторе у кассира с каждой новой покупкой увеличивается значение суммы (она называется промежуточной или текущей суммой).
Когда все товары выложены из корзинки, кассир выбивает чек.

Задача While_kassa. Вычислить общую стоимость покупки, в которую входит 5 различных товаров. Стоимость очередного товара вводится командой read. Во время работы программы выводить промежуточные суммы. В конце работы вывести общую стоимость покупки
Блок-схема

Программа
program while_kassa;
var  sum: real;// общая стоимость покупки
var  num: real;// стоимость одного товара
var  j: integer;
begin
  writeln('Проходите на кассу');
  sum := 0; //вы еще ничего не купили
  j := 1;
  while j <= 5 do
  begin
    write('Введите стоимость товара:');
    readln(num);  // стоимость товара
    sum := sum + num; // это промежуточная стоимость покупки
    writeln(sum); // выводим промежуточную стоимость
    j := j + 1;  //
  end;
  writeln('стоимость покупки = ', sum );
end.




Задание на оценку 3: переписать и запустить задачу While_kassa, перерисовать блок-схему.
Прислать письмо с прикрепленными файлами: текста программы, скриншота экрана, фотографии блок-схемы
Задание на оценку 4-5: выполнить самостоятельную работу-ДОТ2

четверг, 9 апреля 2020 г.

Урок 47-48. Цикл с предусловием While

Дистанционное обучение. Дата занятия 9.04.20
Срок выполнения задания 9.04.20
   Мы рассмотрели алгоритмы, в которых действия выполняются последовательно.
Рассмотрели алгоритмы, в которых в зависимости от выполнения условия выполняется одна или другая ветвь программы (разветвляющиеся алгоритмы).
   Но есть много процессов, в которых некоторая последовательность действий повторяется раз за разом. Например, смена времен года. Работа нашего сердца. Трезвон будильника. Мерцание курсора на месте вставки символа...  Таким образом мы приходим к понятию цикла.
   Цикл - это многократно повторяющаяся последовательность действий. В программировании есть несколько видов циклов. Сегодня мы знакомимся с одним из них

Синтаксис цикла While 

Оператор цикла while имеет следующую форму:
while условие do
  
оператор
Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.
Если вместо одного оператора в теле цикла требуется выполнить несколько операторов, то используется блок команд begin...end.
Если условие всегда оказывается истинным, то может произойти зацикливание программы:
while 2>1 do
    write(1);

Чтобы прервать зациклившуюся программу, выполняющуюся из интегрированной среды в режиме связи с оболочкой, следует использовать комбинацию клавиш Ctrl-F2 или пункт меню Программа/Завершить
Изменение логического условия  внутри цикла должен обеспечить программист!

Пример. Программа While1. Программа выводит на печать числа от 1 до 10. Числа нужно разделять пробелами.
Алгоритм:
1. Объявить целочисленную вспомогательную переменную i, которая будет принимать значения от 1 до 10.
2. Определить начальное значение переменной i, равное 1.
3. До тех пор пока значение переменной i будет меньше либо равно 10, выводить текущее значение i и переходить к следующему (увеличивать значение переменно i на 1).


  
//Вывести числа от 1 до 10 через пробел

program while1;
var i: integer;  //целое число
begin
writeln ('Вас приветствует программа Петрова П');
  i := 1;  //задать начальное значение переменной i
  while (i <= 10) do
  begin
      write (i, '   ');  //Вывод значений переменной i через пробелы          
      i := i + 1;       //Увеличение значения 
переменной i на 1
  end;
end.

Задание

1. Прочитали пост? Теперь напишите письмо учителю информатики.
Тема письма: 8 кл ДОТ 1 Цикл  Паскаль  <ваша фамилия>
 В письме ответьте на вопросы:
1.1. Что такое цикл?
1.2. Приведите пример двух циклических процессов (техника, природа, быт)
1.3. Сколько раз выполнится цикл? Сколько раз будет выведено Ok! ?
    while 2 > 2 do
       
writeln('Ok!')

2. Перепишите  программу While1 к себе в тетрадь и на ПК. Запустите ее.

3. Выполните эту   Самостоятельную работу

Самостоятельную работу выполнить сегодня 9.04.2020 до 23.00, результат выслать по школьной  эл почте
Тема письма: 8 кл ДОТ 1  Паскаль  <ваша фамилия>


четверг, 12 марта 2020 г.

Урок 45-46. Контрольная работа. Решение задач

Дата проведения занятия 12.03.20
1 урок - контрольная работа
2 урок - решение задач
Разберем задачу
If2. Дано целое число.
Если оно является положительным, то вычесть из него 8;
иначе прибавить к нему 6.
Вывести полученное число
Посмотрите, как может выглядеть блок-схема и  текст программы этой задачи.

Текст программы
Блок-схема


Работа на компьютере

Составить блок-схему, написать текст программы, отладить следующие программы
1.  If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число»

2. If9. Даны две переменные вещественного типа: A, B. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.
3. IF99. Автомат получает на вход трехзначное целое десятичное число. По полученному числу строится новое десятичное число по следующим правилам.
  А. Вычисляются два новых числа: сумма старшего и среднего разрядов, а также сумма среднего и младшего разрядов.
  В. Полученные два числа записываются подряд в порядке невозрастания, без разделителей.
Задание
  1. Написать программу. Проверить работу программы на числах 321, 567.
  2. Найти наибольшее число, при выводе которого будет выведено 1716

Домашнего задания нет

четверг, 5 марта 2020 г.

Урок 43-44. Разветвляющийся алгоритм

Дата проведения занятия 5.03.20 
Ветвление - алгоритмическая конструкция, в которой в зависимости от результата проверки условия ("да" или "нет") предусмотрен выбор одной из двух последовательностей действий (ветвей). Алгоритмы, в основе которых лежит структура "ветвления", называются разветвляющимися.
Употребляют разные названия этого алгоритма:
  • разветвляющийся
  • ветвления
  • выбора
  • условный 

Существует 2 формы разветвляющегося алгоритма :
  • полная форма
  • неполная форма 
На Паскале разветвляющийся алгоритм (полная форма) реализуется с помощью условного оператора:
if условие then 
   оператор1
else 
   оператор2

На Паскале разветвляющийся алгоритм (неполная форма) реализуется с помощью условного оператора:

if условие then   оператор


Условный оператор работает так: 
1.      Проверяется выражение, которое является условием.
2.      Если условие истинно (true), выполняется оператор1, иначе (false) — оператор2.
Операторы  оператор1 и оператор2 никогда не выполняются вместе — работает только один из них. После выполнения условного оператора управление передается на оператор, который следует за условным.

Обратите внимание: в ветке if и в ветке else стоит ТОЛЬКО ОДИН ОПЕРАТОР!
А что делать, если надо выполнить не ОДИН, а НЕСКОЛЬКО операторов? Их надо "объединить" в один оператор при помощи операторных скобок begin  end 
if условие then 
   begin
     оператор11
     оператор12
     оператор13 
   end
else 
   begin
     оператор21
     оператор22
     оператор23 
   end
 

Работа на компьютере

А теперь посмотрим, как работает  условный оператор
1. Напишите в тетради программу pas8_cl_07_name, которая определяет, является ли введенное число четным или нечетным.
Для определения четности используется операция  a mod 2.
 Алгоритм
Объявите целую переменную a
Выведите сообщение: 'Работает программа Пети Петрова'
Выведите сообщение: 'Программа определяет четность числа'
Выведите сообщение: 'Введите число '
Введите а
Если а mod 2 = 0, то выведите сообщение: 'Число a=XX четное'
иначе выведите сообщение: 'Число a=XX нечетное'

2. Составить блок-схему, написать текст программы, отладить следующие программы
1. pas8_cl_08_name. Ввести число, вывести сообщение о том, делится ли оно на 5
2. If9. Даны две переменные вещественного типа: A, B. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.

Домашнее задание

  • Подготовиться к контрольной работе (арифметические операции, особенно div, mod; условный оператор if) 
  • Прислать учителю информатики до 10.03.20  до 23.00 по школьной эл почте письмо-отчет о выполнении домашнего задания.
  • Тема письма: 8 кл ДЗ к уроку 44 Паскаль  <ваша фамилия>
Задание Паскаль 3. Написать и отладить 2 программы
  1. If2. Дано целое число. Если оно является положительным, то вычесть из него 8; в противном случае прибавить к нему 6. Вывести полученное число
  2. Integer8. Дано двузначное число. Вывести число, полученное при перестановке цифр исходного числа
  3. Для каждой программы в тетради схематично зарисовать блок-схему   
  4. Для каждой программы после удачного выполнения сделать снимок экрана.
    Снимок экрана делать тогда, когда на экране есть результат выполнения. 
  5. К письму для каждой программы прикрепить файл программы с расширением .pas + снимок экрана (скриншот) в формате  png или jpg (не BMP!)
  6. Вариант1 получения снимка экрана: надо нажать клавишу print scrin, вставить данные  из буфера в окно программы paint, сохранить в формате png или jpg
  7. Вариант2 получения снимка экрана: найти папку Стандартные-Windows и посмотреть, есть ли в ней инструмент Ножницы. Если есть, то создать фрагмент изображения, обведя с помощью Ножниц  часть экрана, содержащую текст программы и результат работы программы

четверг, 27 февраля 2020 г.

Урок 41-42. Переменная. Типы данных. Арифметические операции

Дата проведения занятия 27.02.20
Часть 1. Понятие переменной
Алгоритм – это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Программа - алгоритм, записанный на языке, понятном компьютеру.
Исполнителем программы является компьютер.
Алгоритмы описывают последовательность действий, которые производятся над некоторыми объектами.
В информатике отдельный информационный объект (число, символ, строка и др) называется величиной. Величины бывают постоянные (константы) и переменные.
Константой называется величина, значение которой указывается в тексте программы и это значение не меняется во время работы программы.
Переменной  называется величина, значение которой меняется во время работы программы.
А вот другое определение переменной. Переменная - это поименованная область оперативной памяти, в которой хранится значение переменной.
Итак, переменная - это величина, которая имеет имя, тип и значение. Чтобы выделить место для хранения значения переменной, ее надо объявить в программе.
Смотрите презентацию Программирование на языке Паскаль, глава Введение



1. Имя переменной
В именах МОЖНО использовать:
  • латинские буквы (A - Z), причем строчные и заглавные буквы в Паскале не различаются
  • цифры (0 - 9), имя не может начинаться с цифры
  • знак подчеркивания _
В именах НЕЛЬЗЯ использовать:
  • русские буквы
  • пробелы
  • скобки, знаки +, =, !, ? и др
2. Тип данных (тип переменной)
Основными числовыми типами данных в Паскале являются
  • integer (синонимом является longint) - целый 
  • real (синонимом является double) - вещественный
  • boolean - логический
 3. Переменную нужно объявить в программе для выделения под нее памяти 
var a, b, c: integer; // целые a, b, c
var d, f: real;          // вещественные d, f
var log: boolean;    // логический
4. Присвоить значение переменной - значит записать новое значение в переменную. Знак присвоения :=
a:=6;   d:=a; d:= d + 5; f:=a+d;

Часть 2. Арифметические операции
Над числовыми данными выполняются следующие операции:
*  (умножение) для integer, real;
/   (деление) для integer, real; тип результата должен быть real
div (получение целого частного) только  для integer;
mod (получение целого остатка от деления) только  для integer.
+  (сложение) для integer, real;
-   (вычитание) для integer, real;
Подробнее про арифметические операции читать здесь

Порядок выполнения операций:
  • вычисление выражений в скобках 
  • умножение, деление, div, mod слева направо 
  • сложение и вычитание слева направо

Работа на ПК

Задание 1
1. Напишите в тетради программу Pas8_cl_06_name, которая вводит 2 целых числа x, y, последовательно считает:
  • сумму, выводит результат на экран
  • разность, выводит результат на экран
  • произведение, выводит результат на экран
  • среднее арифметическое x и y, выводит результат на экран
  • деление нацело  x на 3, выводит результат на экран
  • остаток от деления x на 2, выводит результат на экран
2. Наберите текст программы в окне Паскаля
3. Отформатируйте текст, нажав на 4-ую справа кнопку в меню окна PascalABC.NET
4. Сохраните текст программы на локальном компьютере в своей папке, во вложенной папке Pascal_name под именем Pas8_cl_06_name.pas
5. Сделайте компиляцию программы (Ctrl + F9).
6. Если нет синтаксических ошибок, то запустите программу (F9) 3 раза с разными данными
7. Проанализируйте полученный результат

Задание 2
Напишите программу Begin 32 - перевод градусов по С в градусы по F
Задание 3
Напишите программу Integer7: Дано двузначное число. Найти сумму и произведение его цифр.

Домашнее задание

Задание 1
Доделать программу Pas8_cl_06_name из классного Задания 1
Задание 2
  1. Написать в тетради программу вычисления площади прямоугольного треугольника S по двум катетам a, b. Значения a и b - это исходные данные, их требуется ввести, S - результат работы программы, его требуется вывести
  2. Набрать на ПК. Дать имя программе  pas8_hm_03_name (name - фамилия автора программы)
  3. Сохранить файл под именем Pas8_hm_03_name.pas
  4. Запустить программу в среде PascalABC.Net
  5. Сделать сканирование экрана ( кнопка Print Screen) и вставить в окно графического редактора (например, Paint)
  6. Прислать учителю информатики до 03.02.19 (воскресенье) до 22.00 по школьной эл почте письмо-отчет о выполнении домашнего задания.
    Тема письма: 8 кл ДЗ к уроку 42 Паскаль <ваша фамилия>
  7. К письму прикрепить скриншот экрана с результатом выполнения программы и свой файл типа .pas,
  8. Если что-то не получилось, в письме написать причину невыполнения задания.
Задание 3
В тетради решить примеры:
15 div 5=
15 mod 5=
421 mod 10=
421 div 10=
357 mod 100=
357 div 100=
357 div 10 mod 10=

  • Прислать учителю информатики до 4.03.20  до 22.00 по школьной эл почте письмо-отчет о выполнении домашнего задания.
    Тема письма: 8 кл ДЗ к уроку Паскаль-42 <ваша фамилия>
  • К письму прикрепить по 2 файла для каждой решенной задачи: скриншот экрана с результатом выполнения программы и свой файл типа .pas,
  • Если что-то не получилось, в письме написать причину невыполнения задания