title: Скачать презентацию или конспект Беспроводная система Dialog 3G

extracted_text:
Беспроводная система Dialog 3G

Автоматизированная беспроводная система управления сетями коммерческого учета Dialog 3G
Dialog 3G - это полностью беспроводная система, включающая первичные приборы учета со встроенными или внешними радиомодулями для передачи данных, различные ретрансляторы, концентраторы и программное обеспечение сбора и обработки данных.
Информация от приборов учета автоматически с заданной периодичностью передается по радиоканалу на концентраторы, а затем по удаленным каналам связи (сотовым, Интернет и пр.) в систему обработки данных. При использовании ретрансляторов концентратор получает информацию по радиоканалу с любого количества приборов учета, расположенных в радиусе до 3 км.

Система моментально реагирует на состояние сетей, при этом коммунальные службы получают в реальном времени не только данные о расходе, но и сообщения о возникших проблемах на обслуживаемых объектах (протечки или разрыв труб, вандализм, попытки незаконного присоединения и пр.) в момент их возникновения.
Система Dialog 3G - это быстрое, точное и надежное решение для различных систем учета:
Сфера применения
 Для учета воды – сбор информации с индивидуальных счетчиков горячей и холодной воды и объектовых узлов учета воды.
 Для учета тепла – сбор информации с тепловычислителей объектовых узлов учета теплоснабжения и горячего водоснабжения.
Не требуется допуск в помещения с установленными приборами учета для снятия показаний - считывание производится дистанционно;

Отсутствие проводных линий связи от приборов учета к оборудованию сбора данных;

Высокая точность передачи показаний;

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

Предупреждающие и аварийные сообщения в режиме реального времени;

Полноценные данные для расчетно-платежных систем, документооборота и пр.;

Получение сводных данных по сравнительному потреблению, истории потребления, дефициту ресурса и т.д.;

Значительное снижение расходов на техническое обслуживание сетей учета.
Основные достоинства системы Dialog 3G
Описание компонентов системы
Оборудование передачи данных
Счетчики воды
Счетчики тепловой энергии
Описание компонентов системы
Оборудование передачи данных
Универсальный радиомодуль Universal 3G
Универсальный радиомодуль Universal 3G предназначен для передачи по радио показаний счетчиков воды, электроэнергии и газа различных производителей, оборудованных импульсными выходами для снятия показаний.

Universal 3G представляет собой электронный блок со встроенным радио приемопередатчиком и двумя литиевыми батареями, рассчитанными на 12 лет непрерывной эксплуатации.

Universal 3G имеет 4 входа для подключения любых счетчиков с импульсными выходами и встроенный архив на 4000 значений считываемых параметров.

Кроме данных расхода, Universal 3G передает в систему различные сигналы тревоги - попытка магнитного воздействия на счетчик, низкий уровень заряда батарей, протечка, и пр.
Интерфейсный радиомодуль EM 3G
Интерфейсный радиомодуль EM 3G предназначен для подключения различных приборов учета (тепловычислителей, корректоров расхода газа, электрических счетчиков и др.) по стандартным интерфейсам RS232/RS485, а также датчиков с аналоговым выходом (например, датчиков давления, уровня) и дискретных сигналов от устройств сигнализации.
EM 3G представляет собой электронный блок с микроконтроллером и встроенным радиоприемопередатчиком.
Описание компонентов системы
Оборудование передачи данных
Микроконтроллер получает необходимую информацию из прибора учета.
Далее информация передается по радиоканалу в систему.

Максимальное количество получаемых параметров из прибора учета - 32.
Кроме параметров, получаемых по протоколам из приборов учета, EM 3G имеет собственные аналоговые и цифровые входы и выходы для непосредственного подключения к внешним датчикам и исполнительным механизмам для выполнения различных функций сигнализации и управления (например, погодное и временное регулирование температуры теплоносителя, сигнализация подтопления, проникновения в помещение и пр.).
Система сбора и
обработки данных
Пользователь

Передача показаний счетчиков воды с помощью
интерфейсного радиомодуля EM 3G
Интерфейсный
радиомодуль EM 3G
Счетчики с интерфейсом
RS232/RS485.
Счетчики воды (ВВ, СВ-200)
и тепла (ТС-200)
Концентратор
FixReader
Радиоканал
Радиоканал
Компьютерная сеть, GPRS, Интернет
Ретранслятор
RepReader
Компьютерная сеть или Интернет

Ретранслятор Repiter LC
Радиоканал
Комбинированный радиомодуль Compound 3G
Compound 3G предназначен для передачи по радиоканалу показаний расхода, давления и сигнализации. Он представляет собой электронный блок со встроенным радиопередатчиком и антенной, к которому могут быть подключены:

 Расходомер с импульсным выходом;

 Датчик давления с аналоговым выходом 0…5V (0,5…4,5V);
Описание компонентов системы
Оборудование передачи данных

 Датчик подтопления (протечки) с дискретным выходом (контакт реле или открытый коллектор);

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

Питание прибора и подключаемых датчиков осуществляется от встроенных сменных батарей со сроком службы не менее 5 лет. Корпус герметичный, класс защиты IP65.
Описание компонентов системы
Оборудование передачи данных
Dialog Cellular
Модуль Dialog Cellular предназначен для дистанционного получения с объекта управления и передачи по каналу GPRS:

 показаний счетчиков с импульсными выходами;

 информации датчиков (напр., давления) с нормированным выходом 0…10VDC/4…20mA;

 различных дискретных сигналов (например, сигналов аварий или сигнализаций) типа «сухой контакт».
Питание модуля - автономное, от встроенных литиевых батарей исполнения «D» со сроком службы не менее 5 лет.
Исполнение - IP68.
Передача показаний счетчиков воды с помощью
модуля Dialog Cellular
Модуль Dialog Cellular
Система сбора и
обработки данных
Пользователь

Счетчики с импульсным выходом
(СХ, СГ, СКБИ, ВМХ, ВМГ, ВХ, ВМХм, КВМ, ВВ)
Компьютерная сеть или Интернет
Канал GPRS
Описание компонентов системы
Оборудование сбора данных - считывание на ходу
Система считывания на ходу или из автомобиля WalkBy/DriveBy
Система считывания на ходу WalkBy - один из способов получения показаний счетчиков, при котором пользователь, передвигающийся пешком по заданному маршруту, получает данные от первичных приборов учета системы Dialog 3G на портативный компьютер PocketPC, подключенный к переносному радио приемопередающему устройству MMR. Данное решение не требует проникновения в помещения с установленными приборами учета, считывание производится в течении нескольких секунд с расстояния 50...200 метров от мест установки счетчиков.

Пользователь предварительно считывает список счетчиков из системы на PocketPC, подключившись к рабочему компьютеру, после чего обходит (или объезжает на автомобиле) район, где установлены счетчики, и принимает показания системой WalkBy с помощью программы WalkBy (версия для Windows Mobile). Затем полученные данные переносятся на рабочий компьютер пользователя и передаются далее через Интернет или по корпоративной локальной сети в систему сбора и обработки данных для накопления и дальнейшей обработки.
Система сбора и
обработки данных
Система считывания на ходу или из автомобиля WalkBy/DriveBy
Счетчик воды АВХ
Счетчик воды АВГ
Система WalkBy/DriveBy
Пользователь

Компьютерная сеть или Интернет
Радиоканал
Компьютерная сеть или Интернет
Описание компонентов системы
Оборудование сбора данных - автоматический сбор данных
При проектировании и установке системы Dialog 3G может возникнуть ситуация, при которой радиосигнал одного или нескольких радиомодулей 3G не достигает концентратора FixReader или ретранслятора RepReader.

В этих ситуациях ретранслятор Repeater LC, имеющий небольшие габариты и автономное питание (сменные батареи со сроком службы не менее 5 лет), может решить проблему ретрансляции сигналов от приборов учета (до 500 приборов) с радиомодулей 3G в радиосеть Dialog 3G.
Ретранслятор Repiter LC
Ретранслятор RepReader
Для увеличения зоны приема концентратора FixReader, а также для работы в условиях помех, затрудняющих прием данных от счетчиков 3G, используется ретранслятор RepReader, повторяющий принятые сигналы от сотен счетчиков и усиливающий их для дальнейшей передачи на концентратор FixReader.

Возможны различные варианты исполнения RepReader - с питанием от электрической сети 220 VAC, с питанием от встроенных батарей с подзарядкой от сети 220 VAC (например, осветительной сети при установке RerReader в щитах на столбах освещения), с питанием от встроенных батарей с подзарядкой от солнечной батареи.
Описание компонентов системы
Оборудование сбора данных - автоматический сбор данных
Концентратор FixReader
Концентратор FixReader представляет собой промышленный компьютер, состоящий из процессора, радиоприемного модуля MMR, каналообразующей аппаратуры, источника бесперебойного питания, коннекторов для подключения внешних антенн и каналов передачи данных.
Используя внешнюю антенну, концентратор FixReader последовательно принимает информацию от счетчиков 3G, сохраняя ее во внутренней базе данных SQL.

Далее информация передается на сервер системы Dialog 3G по различным каналам связи (модемная связь, GPRS, Internet или корпоративная сеть по LAN 10 base Tx, WiFi и др.) автоматически, в соответствии с заданным расписанием, либо по внешнему запросу. Каждый концентратор FixReader в системе способен получать данные от нескольких тысяч приборов учета 3G, расположенных в радиусе до 3 км, используя для расширения зоны приема ретрансляторы RepReader. Концентратором FixReader можно управлять удаленно (при помощи TCP/IP или VPN) или при прямом подключении по LAN 10 base Tx к компьютеру специалиста для обновления программного обеспечения и технического обслуживания.
Описание компонентов системы
Оборудование сбора данных - автоматический сбор данных
Программное обеспечение сбора и обработки данных
Система с поддержкой удаленных WEB-пользователей City-Mind
Система сбора и обработки данных коммерческого учета City-Mind (новая версия ПОATUS2000) - это мощная вычислительная система регионального уровня на основе Web-сервера, в которую через концентраторы FixReader поступают данные по различным каналам связи от первичных приборов учета. Доступ пользователей к информации осуществляется через Интернет или по корпоративной локальной сети.  Web-сервер системы состоит из двух серверов - сервера базы данных (SQL Server) и сервера приложений (Application Server).
Программное обеспечение City-Mind включает базу данных, а также программы по обработке данных и обслуживанию запросов от пользователей. С помощью данной системы пользователь может осуществлять работу с сетями учета из офиса, дома или из любого другого места, причем информация надежно защищена от несанкционированного доступа защитным протоколом SSL 128bit. Система предоставляет удобный и наглядный интерфейс пользователя. Система моментально реагирует на состояние сетей учета, при этом коммунальные службы, кроме данных о расходе, получают сообщения о возникших проблемах (протечки или разрыв труб, вандализм, попытки незаконного присоединия, и пр.) в момент их возникновения.
Программное обеспечение сбора и обработки данных
Система Dialog AMR
Система Dialog AMR предназначена для сбора и обработки коммерческой информации, поступающей через концентраторы FixReader по различным каналам связи от первичных приборов учета системы Dialog 3G. Гибкая архитектура программного обеспечения позволяет использовать систему как для проектов с большим количеством распределенных объектов, так и для небольших проектов, предполагающих сбор информации с одного или нескольких домов ТСЖ или управляющих компаний.
Программное обеспечение Dialog AMR состоит из базы данных, системы сбора и обработки информации, системы отображения информации.
Система отображения информации устанавливается на диспетчерской станции (компьютере пользователя). База данных и система сбора и обработки информации может располагаться как на диспетчерской станции, так и на
отдельном сервере, к которому компьютер пользователя подключен по локальной сети, либо через Интернет или по каналу сотовой связи GPRS. Система предоставляет удобный и наглядный интерфейс пользователя. Кроме данных в реальном времени о потреблении, диспетчер получает сообщения о различных нарушениях - протечки, вандализм, попытки незаконного присоединения и пр. Для удобства пользователя возможно подключение к системе дополнительных сигналов, не относящихся к коммерческому учету (пожарная и охранная сигнализация, состояние работы лифтового оборудования, перебои в электроснабжении и пр.), с введением этих параметров в систему отчетности Dialog AMR.

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

Структурная схема сбора данных с общедомовых приборов
Структурная схема передачи данных в диспетчерский пункт

Спасибо за внимание!

  129626, г. Москва, ул. Новоалексеевская, д.16, стр. 13          Тел.: (495) 686 31 00, (495) 647 07 62

  www.vodopribor.su                              vodopribor@vodopribor.su


title: Скачать презентацию или конспект Компьютерные вирусы и антивирусные программы

extracted_text:
Презентация подготовлена для сайта:
http://interneshka.org/
Тема: «Разновидности компьютерных вирусов и методы защиты от них. Основные антивирусные программы»

Содержание
Понятие компьютерного вируса
Как вирус проникает в компьютер
Признаки заражения компьютера вирусом
Разновидности компьютерных вирусов
Методы защиты
Основные антивирусные программы

Понятие компьютерного вируса
Компьютерный вирус – это небольшая вредоносная программа, которая самостоятельно может создавать свои копии и внедрять их в программы (исполняемые файлы), документы, загрузочные сектора носителей данных.
Как вирус проникает в компьютер
  Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), всевозможные USB-носители, а также компьютерные сети. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения EXE, COM, SYS, BAT.

Признаки заражения компьютера вирусом
· медленная работа компьютера
· исчезновение файлов и каталогов или искажение их содержимого
· изменение даты и времени модификации файлов
· изменение размеров файлов
· неожиданное значительное увеличение количества файлов на диске
· существенное уменьшение размера свободной оперативной памяти
· вывод на экран непредусмотренных сообщений или изображений
· подача непредусмотренных звуковых сигналов
· частые зависания и сбои в работе компьютера

Разновидности компьютерных вирусов
1. по среде обитания;
2. по особенностям алгоритма;
3. по способам заражения;
4. по степени воздействия
Классификация по среде обитания
Файловые вирусы
Загрузочные вирусы
Макровирусы
Сетевые вирусы
По алгоритмам работы

Вирусы-черви
Паразитические
Стелс-вирусы
Троянский конь
Вирусы-мутанты
Логические бомбы
По способам заражения
1. Резидентные вирусы- При заражении вирусы такого типа проникают в оперативную память компьютера, где прослеживают действия пользователя и заражает вызванные программы;
2. Нерезидентные вирусы- Вирусы сами ищут незаражённые программы и записываются в них, действие вируса начинается при вызове заражённой программы.

По степени воздействия

Неопасные вирусы
Опасные вирусы
Очень опасные вирусы
Методы защиты
1.Не запускайте программы, полученные из Интернета или в виде вложения в сообщение электронной почты без проверки на наличие в них вируса.
2.Необходимо проверять все внешние диски на наличие вирусов
3.Необходимо установить антивирусную программу и регулярно пользоваться ею для проверки компьютеров. 4.Необходимо регулярно сканировать жесткие диски в поисках вирусов.
5.создавать надежные пароли, чтобы вирусы не могли легко подобрать пароль и получить разрешения администратора. 6.Основным средством защиты информации – это резервное копирование ценных данных, которые хранятся на жестких дисках.
Антивирусные программы
Антивирусные программы- программа, созданная для обнаружения компьютерных вирусов или других вредоносных программ и восстановления заражённых файлов, также антивирусы предназначены для профилактики заражения вредоносным кодом(вирусом).
Виды антивирусных программ
— программы-детекторы;
— программы-доктора, или фаги;
— программы-ревизоры;
— программы-фильтры;
— программы-вакцины, или иммунизаторы.

Основные антивирусные программы
К наиболее эффективным и популярным антивирусным программам относятся:
-Антивирус Касперского 7.0
-AVAST
-Dr. Web
- ESET NOD32 и многие другие.

Спасибо за внимание!


title: Скачать презентацию или конспект Алгоритм и его формальное исполнение

extracted_text:
Аналоговая (живописное полотно, цвет которого изменяется непрерывно)
Дискретная (изображение, напечатанное с помощью струйного принтера и состоящее из отдельных точек разного цвета)

Формы графической информации

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

Качество растрового изображения определяется разрешающей способностью.

Пиксель - минимальный участок изображения, для которого независимым образом можно задать цвет.

Разрешающая способность
сканера (например,1200х2400 dpi)
http://college.ru/pedagogam/modeli-urokov/po-predmetam/564/3237/
Получение
  дискретного
   изображения

Количеством точек как по горизонтали, так и по вертикали на единицу длины изображения
Выражается в dpi (dot per inch – точек на дюйм), в количестве точек в полоске изображения длиной один дюйм
	(1 дюйм = 2,54 см)
       Чем определяется
разрешающая
способность?

Оптическое разрешение (количество светочувствительных элементов на одном дюйме полоски)
Аппаратное разрешение (количество «микрошагов», которое может сделать полоска светочувствительных элементов, перемещаясь на один дюйм вдоль изображения)
Качество растрового
изображения при сканировании

Количество информации, которое используется для кодирования цвета  точки изображения
Палитра цветов – наборы цветов, в которые могут быть окрашены точки изображения
Каждый цвет можно рассматривать как возможное состояние точки.
N=2i, где N-количество цветов,i-глубина цвета
Глубина цвета

1) Если пиксель будет только в двух состояниях: светится – не светится, то сколько цветов в изображении?
Сколько бит памяти достаточно для его кодирования?

2) Сколько бит потребуется для кодирования монохромного четырех цветного изображения (с полутонами серого)?
Как можно закодировать цвета?

		3) В процессе  преобразования растрового графического изображения  количество цветов уменьшилось с 65536 до 16.  Во сколько раз уменьшился информационный объём?

Растровые изображения на экране монитора
Качество изображения зависит от величины пространственного разрешения и глубины цвета.
Пространственное разрешение определяется как произведение количества строк изображения на количество точек в строке.

Для того, чтобы на экране монитора формировалось изображение, информация о каждой его точке (код цвета точки) должна храниться в видеопамяти компьютера.
Расчет объема видеопамяти
Информационный объем требуемой видеопамяти можно рассчитать по формуле:
Iпамяти=I * X * Y
где Iпамяти – информационный объем видеопамяти в битах;
      X * Y – количество точек изображения (по горизонтали и по вертикали);
      I – глубина цвета в битах на точку.

ПРИМЕР. Необходимый объем видеопамяти для графического режима с пространственным разрешением 800 х 600 точек и глубиной цвета 24 бита равен:
Iпамяти= 24 * 600 * 800 = 11 520 000 бит =
= 1 440 000 байт = 1 406, 25 Кбайт =
= 1, 37 Мбайт

Растирание рук, массаж всех пальцев:
Надавливаем на суставы пальцев с боков, а также сверху – снизу.
«Кулак – кольцо» :
поочередно: одной рукой кулак, другой большой и указательный пальцы образуют кольцо.
«Вертолет»:
перемещаем карандаш между пальцами кисти.
«Колечко»:
поочередно и как можно быстрее перебираем пальцы рук, соединяя в кольцо с большим пальцем последовательно указательный, средний и т. д. в прямом и обратном порядке.
Физкультминутка

      Системы цветопередачи
RGB, CMYK в технике

Освещенный предмет
Источник света
Приемник света
Почему мы видим свет

Как Однажды Жан Звонарь Городской Сломал Фонарь
Каждый Охотник Желает Знать, Где Сидит Фазан
Белый свет

Почему  видим предметы цветными
Палитра цветов в системе цветопередачи RGB
С экрана монитора человек воспринимает цвет как сумму излучения трех базовых цветов:
red - красного,
green - зеленого,
blue - синего.
Цвет из палитры можно определить с помощью формулы:
Цвет = R + G + B,
Где R, G, B  принимают значения от 0 до max

Формирование цветов в системе RGB
В системе RGB палитра цветов формируется путем сложения красного, зеленого и синего цветов

При глубине цвета в 24 бита на кодирование каждого из базовых цветов выделяется по 8 битов, тогда для каждого из цветов возможны N=28=256 уровней интенсивности.

Кодирование цветов при глубине
цвета 24 бита

Кодирование цветов при глубине
цвета 24 бита

Как получить нужный цвет из
красного, зеленого и синего
Палитра цветов в системе цветопередачи CMYK
При печати изображений на принтере используется палитра цветов CMYK. Основные краски в ней: Cyan – голубая,  Magenta – пурпурная и Yellow -  желтая.
Система CMYK основана на восприятии отражаемого света. Нанесенная на бумагу голубая краска поглощает красный цвет и отражает зеленый и синий цвета.
Цвет из палитры можно определить с помощью формулы:
Цвет = C + M + Y,
Где C, M и Y  принимают значения от 0% до 100%

Формирование цветов в системе CMYK
В системе цветопередачи CMYK палитра цветов формируется путем наложения голубой, пурпурной, желтой и черной красок.

Базовые параметры в системе цветопередачи HSB:
Hue(оттенок цвета), Saturation(насыщенность) и Brightnees( яркость)

Палитра цветов формируется путем установки значений оттенка цвета, насыщенности и яркости

HSB

Как получить нужный цвет
в системе HSB

Выбор цвета в системах
цветопередачи RGB, CMYK, HSB
		4) Для кодирования цвета фона страницы
Интернет используется атрибут bgcolor
“#XXXXXX”, где в кавычках задаются
шестнадцатеричные значения интенсивности
цветовых компонент в 24-битовой RGB модели. Какой цвет будет у страницы, заданной тэгом
<bgcolor “#404000”>?
 1)серый 			 2)фиолетовый
3)темно-красный 	4)коричневый

		5) Для хранения растрового изображения размером 32х32 пикселя потребовалось 512 байт памяти. Каково максимально возможное число цветов в палитре изображения?

256 	    2) 2           3) 16             4) 4

		6) Палитра неупакованного растрового изображения, имеющего размер 128х4096 пикселей, состоит из 128 цветов. Какой объем на диске занимает изображение (в килобайтах)?

Ответы
2 цвета, для кодирования 2-х цветов достаточно 1 бита.
Для кодирования 4-х цветного изображения потребуется 2 бита. Закодировать можно таким образом:
	00 – черный
	01 – темно-серый
	10 – светло-серый
	11 – белый
1)2х=65536, х=16
	2)2у=16, у=4
	3)к=х/y=16/4=4, информационный объем уменьшится в четыре раза.
Ответ: 4) коричневый

1) 512*8/(32*32)=28*23/(25*25)=4
	2) 24=16(цветов)
1) 2x=128, x=7(бит)
	2)7*128*4096/(1024*8)=7*27*210*22/(210*23)=7*26=448(килобайт).


title: Скачать презентацию или конспект Язык программирования С++

extracted_text:
ПРОГРАММИРОВАНИЕ II
Емельянов Павел Геннадьевич
к.ф.-м.н., с.н.с. ИСИ СО РАН
emelianov@iis.nsk.su
Общий план курса
Объектно-ориентированное программирование (на примере основных концепций языка C++)
Объектно-ориентированное проектирование.
Модели данных и базы данных (на примере XML и реляционных МД и БД)
Организация взаимодействия между компьютером и человеком (на примере программных графических интерфейсов в среде Windows)
Часть I. Основы языка С++
Концепция класса. Видимость членов. Конструкторы/деструкторы.
Статические члены и методы.
Перегрузка имен. Переопределение операторов.
Друзья класса.
Области видимости и пространства имен.
 Исключения.
Шаблоны.
Наследование.
STL.
Литература
Б. Страуструп. Язык программирования С++. Третье издание: Пер. с англ. – М: М: ДМК Пресс; СПб: Питер, 1999. 991 с.
Б. Страуструп. Дизайн и эволюция С++. Пер. с англ. – М: ДМК Пресс; СПб: Питер, 2006. 448 с.
Н. Джосьютис. C++ Стандартная библиотека. Для профессионалов. Пер. с англ. – СПб: Питер, 2004. 730с.
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, Второе издание: Пер. с англ. – М: Бином, 1999. 560 с.
Курсы Интернет университета информационных технологий. http://www.intuit.ru/.

Программа на С

#include "myStack.h"

void init_stack(Stack* st, int size) {
  st->sp=0;
  st->sz=size;
  st->bf=(int*)malloc(size*sizeof(int));
}

void deinit_stack(Stack* st) {
  free(st->bf);
}

int empty(Stack* st) {
  return st->sp==0;
}

void push(Stack* st,int x) {
  if (st->sp==st->sz) {
    printf("error: stack overflow");
    return;
  }
  st->bf[st->sp++]=x;
}

int pop(Stack* st) {
  if (empty(st)) {
    printf("error: stack underflow");
    return 0;
  }
  return st->bf[--st->sp];
}

#include "myStack.h"

void main()
{
  Stack st;
  init_stack(&st,100);
  push(&st,5);
  . . .
  while (! empty(&st))
  {
    int x=pop(&st);
    . . .
    push(&st,x*x);
    . . .
  }
  deinit_stack(&st);
}
файл  myStack.c
файл  prog.c

typedef struct {
  int  sz;
  int  sp;
  int* bf;
} Stack;

void init_stack(Stack*, int);
void deinit_stack(Stack*);

int  empty(Stack*);
void push(Stack*,int);
int  pop(Stack*);

файл  myStack.h
Задачи, которые хотелось бы решить при создании нового языка
Удобное моделирование математических концепций (в С пользовательские типы не ведут себя как стандартные, конструирование новых типов из существующих, ...).
Повышение надежности создаваемых программных систем (в С слаб даже статический типовой контроль, неудобные средства обработки исключительных ситуаций, ...).
Разработка больших программных систем (использование старого кода, переиспользование существующих программных компонент, ...).
Краткая история С++
Язык С – 1970 год (действующий ISO стандарт – 1990 год).
Начало 80-х – С с классами.
Simula 67, Clu, Smalltalk,  Ada, Algol 68, Modula-2, ML.
Первая версия языка С++ – 1983 год (действующий ISO стандарт – 1998 год). Managed Extensions for C++ –> Ecma C++/CLI.

Что является С и не является С++
Отсутствие типа поразумевает int.
Устаревшее описание параметров функций и процедур.
В С++ появились новые ключевые слова.
Макросы С – ключевые слова С++.
В С возможен goto в обход инициализации.
В С в инициализаторе массива может быть больше элементов:
                      char a[3]=“abc”;
Новые возможности С++
Константы, инициализаторы в операторах, новое в приведении типов, параметры по умолчанию, операторы распределения динамической памяти.
Концепция класса, контроль доступа, виды хранения,  конструкторы/деструкторы.
Производные классы. Виртуальность/абстрактные классы.
Перегрузка операторов.
Шаблоны. Стандартная библиотека.
Обработка исключений.
Доступ к типовой информации во время исполнения.
Логический тип bool
int  x=0;
bool b = x==1;//значения типа bool: true/false
int  y=int(b);//у имеет значение 0
x=int(y == 0);//x имеет значение 1
b=123;        //b имеет значение true
Константы
#define  PI  3.14159      //стиль С
const float PI = 3.14159;
const int v[]={1,2,3};    //массив констант

void f(const int* n)
{
	*n=123;   //ошибка: менять *n нельзя
}
…
int x;      //переменная
…
f(&x);      //гарантируется, что значение не  			//изменится
…
Указатели и константы
void Proc(char * p, const char * q)
{
	char s[]=“abc”;

	const char * pc=s;         //указатель на константу
	pc[1]=‘z’;                 //ошибка
	pc=p;

	char * const cp=s;         //константный указатель
	cp[1]=‘z’;
	cp=p;                      //ошибка

	const char * const cpc=s;  //константный указатель на 			   		   //константу
	cpc[1]=‘z’;                //ошибка
	cpc=p;                     //ошибка

   *q=‘z’;                   //ошибка: нельзя изменить *q
}
Ссылки: пример из Паскаля
procedure Inc(var x:integer)
begin
	x:=x+1;
end;
…
Inc(y);
…
procedure Inc(x:^integer)
begin
	x^:=x^+1;
end;
…
Inc(@y);
…
Ссылки в С++
//что можно в С
void Inc(int* x)
{
	*x++;
}
…
Inc(&y);
…
//новое в C++
void Inc(int& x)
{
	x++;
}
…
Inc(y);
…
              Ссылки как альтернативные имена для объекта:

int  x=123;
int& r=x;  //ссылка обязательно должна быть инициализирована
int  y=r;  //значение y равно 123
r++;       //значение x и r равно 124, значение y не изменлось
//уточнение в С++
void Inc(int * const x)
{
	(*x)++;
}
…
Inc(&y);
…
Концепция класса
class Complex {
	double re;
	double im;
};
typedef struct {
	double re;
	double im;
} _Complex;
class Complex {
private:
	double re;
	double im;
public:
};
class _Complex {
public:
	double re;
	double im;
};
_Complex s; s.re+=s.im; //правильно: оба члена открыты

Complex  c; c.re+=c.im; //ошибка: члены класса закрыты
Классы и объекты: реализация стека
class Stack {
	int   sz;
	int   sp;
	int*  bf;
public:
 //объединяет варианты Stack() и Stack(int)
	Stack(int=100);
	~Stack() { delete[] bf; }
	bool empty() const {
		return this->sp==0;
	}void push(const int x) {
		bf[sp++]=x;
	}int pop();
};

inline Stack::Stack(int size) {
	sp=0;
	bf=new int[sz=size];
}

inline int Stack::pop() {
	 return this->bf[--this->sp];
}
#include “Stack.h”

void main()
{
Stack st100, st(5000);
…
st100.push(123);
…
while (!st100.empty()) {
	… st.push(st100.pop());
	…
}
}
Конструирование объектов – I
Автоматическое создание объекта при входе в блок.
Создание объекта в динамической памяти:	Stack* st100=new Stack();	Stack* st=new Stack(5000);
Объект, являющийся элементом массива:	Stack  st[25];	Stack* st=new Stack[25];ВАЖНО: Для всех элементов  массива будет вызван один и тот же конструктор без параметров!!!
Конструирование объектов – II
Статические объекты:
Глобальные в программе:	Stack stk;  //создается при запуске программы до вызова main	int main() { 	   return stk.pop(stk.push(123));
		}
Локальные в программе:	void func(int n) { 	   static Stack st0;   //создается при первом вызове func
		   if (n==1) {
         static Stack st1;//создается при первом вызове func c n=1
          …      }
        …
		}
Локальные в классе:
		class myClass { 	   static Stack st0; //создается при запуске программы до вызова main
       …
		}
Конструирование объектов – III
Создание нестатического объекта, являющегося членом класса:class newClass { 	Stack  stk;	int    num; public:
    newClass(int n=20) : stk(n), num(n) { stk.push(num); }
}
Создание временного объекта при вычислении выражения:class Complex {	double re;	double im;public:	Complex(double r=0.0, double i=0.0) : re(r), im(i) {}	Complex operator+(Complex x) { return Complex(re+x.re,im+x.im); }};…Complex  a(1,2),  b(2,1),  c=a+b+Complex(1,1);…
Конструктор по умолчанию
Конструктор без аргументов называется конструктором по умолчанию.
Конструктор, для всех аргументов которого заданы умолчательные значения, является конструктором по умолчанию.
Если конструктор по умолчанию не задан для класса явно, то он сгенерируется компилятором автоматически и будет вызываться неявно всякий раз, когда это требуется. При этом для членов классов будут вызываться конструкторы по умолчанию.
Класс, содержащий в качестве членов константы и ссылки, обязан содержать определение конструктора по умолчанию:class SomeClass {	const int  val;	int&       ref;public:	 SomeClass(int v=100, int& r) : val(v), ref(r) {}…}
Копирующий конструктор
Конструктор, единственным аргументом которого является объект того же самого типа, называется копирующим конструктором.//ВАЖНО: параметр – ссылка, иначе бесконечный цикл Stack::Stack(const Stack& stk) : sz(stk.sz), sp(stk.sp) {	//действия по копированию массива bf}
Случаи, когда объект копируется: инициализация, передача аргумента функции, возвращение значения функции и исключения.
Если копирующий конструктор не задан для класса явно, то он сгенерируется компилятором автоматически и будет вызываться неявно всякий раз, когда это требуется. Смысл – почленное копирование. «Ручная реализация»:class Complex {	double  re;	double  im;public: 	Complex(const Complex& c) : re(c.re), im(c.im) {}…}
ВАЖНО: отличия копирующего конструктора и оператора присваивания

“Плохой” копирующий конструктор

Stack  s1;
Stack  s2=s1;
...
 sz      100
 sp      0
 bf
s1

 sz      100
 sp      0
 bf
s2

Вах!!!
Уничтожение объектов
Деструктор вызывается:
	– для автоматических объектов – когда управление выходит из блока, где они описаны;
	– для статических объектов  - когда программа«завершает свое исполнение»;
в порядке,  обратном вызову конструкторов.
Обычно деструктор вызывается неявно. Явный вызов деструктора
		T* po=new T(); po->~T();
	встречается редко (например, переопределение оператора delete).

Статические члены и методы класса
class AAA {
	static const int BOUND=100;//статич. константа интегрального типа
   static int       count;
   int              val;
public:
   AAA(int n=1) : val(n) { ++count; }
   ~AAA() { --count; }
   void proc() {
      if (count>BOUND) val*=2; //имеется доступ ко всем членам
   }
   static int func() {
      val++;        //ошибка: доступ к нестатическому члену
      return count; //правильно: статический метод имеет доступ
                    //           только к статическим членам
   }
}
…
int AAA::count=0;
…
AAA x;  x.proc();
if (AAA::func()>1000) cout<<“too many objects!”;
this->
class SomeClass {
		 char *cache;
		 …
public:
	SomeClass() : cache(0) { /*инициализация других членов*/ }
	~SomeClass() {
	   delete[] cache;
	   /*деинициализация других членов*/
	}
	…
	char* toString() const {
	   if (! cache) {  //создать строковое представление объекта
	      SomeClass* thisObject=const_cast<SomeClass*>(this);
	      thisObject->cache=new char[100];
	      …
	   }
	   return cache;
	}
}

const SomeClass constObject;
… constObject.toString() …         //проблема!!!
Объявление mutableлогическое и физическое постоянство
mutable
Перегрузка имен функций – I
int abs(int);                       int    abs(int);
long labs(long);                    long   abs(long);
double fabs(double);                double abs(double);

void print(int);             void print(long);
void print(float);           void print(double);
void print(char);            void print(char*);
…
	print(1);    //ошибка: print(int) или print(long) или
                //        print(float) или print(double)?
	print(1.0);  //ошибка: print(float) или print(double)?

Явное приведение параметров, определяющее выбор:

print(int(1));
print(long(1));  //print(1L); print(static_cast<long>(1));
Перегрузка имен функций – II
Точное соответствие типов, включая следующие случаи:
имя массива и указатель		void print(char*);		…		char a[]=“abc”;		print(a);
имя функции и указатель на функцию		void map(void(*action)());		void F() { /*действие*/ };		…		map(F);
тип и константа такого типа		void print(const char);		…		char c=‘a’; 		print(c);
Процедура поиска (процедура разрешения неоднозначности) соответствия вызова определению функции основывается на проверке набора критериев в следующем порядке:
Перегрузка имен функций – III
Соответствие, достигаемое за счет продвижения в «охватывающие» типы:
bool, (signed/unsigned) char, short -> int
float -> double, double -> long double.
Соответствие, достигаемое за счет преобразований:
int -> double, double -> int, int -> unsigned int
произвольный указатель -> void*
указатели на производные типы -> указатели на их базовые типы.
Соответствие, достигаемое за счет преобразований, определяемых пользователем.
Соответствие за счет (...) в объявлении функции.
Перегрузка имен функций – IV
Результат разрешения перегрузки не зависит от порядка объявления функций.
Тип возвращаемого значения не используется при разрешении перегрузки.
Случай нескольких аргументов:int pow(int,int);double pow(double,double);…double d=pow(2.0,2);   //pow(int(2.0),2) или pow(2.0,double(2))?Правило: вызывается функция, у которой наилучшим образом соответствует один аргумент и лучшим либо таким же остальные аргументы. Иначе – ошибка (неоднозначность).
Переопределение операторов – I
class Complex {
	double re;
	double im;
public:
	Complex(double r=0.0, double i=0.0) : re(r), im(i) {}
	Complex operator+(Complex x) {
		return Complex(re+x.re,im+x.im);
	}
	Complex operator*(Complex x);
};
…
Complex Complex::operator*(Complex x) {
	return Complex(…,…);
}

…
Complex  a(1,2),  b(2,1),  c=a+Complex(0,1)*b; //приоритет операций обычный
…
			a+b   сокращение для   a.operator+(b)
Переопределение операторов – II
	+      -      *      /      %      ^      &
	|      ~      !      =      <      >      +=
	-=     *=     /=     %=     ^=     &=     |=
	<<     >>     >>=    <<=    ==     !=     <=
	>=     &&     ||     ++     --     ->*    ,
	->     []     ()     new    delete new[]  delete[]

Нельзя переопределить:
разрешение области видимости – ::
выбор члена – .
выбор члена через указатель на член – .*
тернарный условный оператор – ?:
Нельзя ввести новую лексему для оператора или изменить
его местность.

Предопределенный (для объектов) смысл операторов =, &
и , можно скрыть, сделав их закрытыми.
Переопределение операторов – III
Бинарные операторы могут определяться:
Либо в виде нестатической функции-члена с одним аргументом:class X {	…public:	X(int);	void operator+(int);	…}
Либо в виде функции-не-члена с двумя аргументами:	void operator+(X,X);за исключением операторов  =,  [],  ->, чтобы гарантировать, что первый аргумент изменяемое значение:	operator=(operator[](1,X),123); //!!!
Eсли определены обе операторные функции, то для выбора
применяются правила разрешения перегрузки:
	X a;
	a+1;		//a.operator+(1);
	1+a;		//operator+(X(1),a);
Если выбор неоднозначен, то выдается ошибка.
Переопределение операторов – IV
Унарные операторы могут определяться:
Либо в виде нестатической функции-члена :class X {	…public:  void operator~();       //без аргументов  void operator++();      //без аргументов - префиксный  void operator++(int);   //с одним фиктивным аргументом - постфиксный	…}
Либо в виде функции-не-члена:
		void operator~(X);      //с одним аргументом	void operator++(X);     //с одним аргументом – префиксный	void operator++(X,int); //с двумя аргументами - постфиксный
Eсли определены обе операторные функции, то для выбора
применяются правила разрешения перегрузки. Если выбор
неоднозначен, то выдается ошибка.

enum Day {sun,mon,tue,wed,thu,fri,sat};
Day& operator++(Day& d) {
	return d=(d==sat)?sun:Day(d+1);
}
Оператор присваивания
ВАЖНО: В отличии от копирующего конструктора
оператор присваивания работает с уже существующим
объектом:

class Stack{
	int   sp;
	int   sz;int*  bf;
public:
	…
	Stack& operator=(const Stack& stk) {
		//this->bf уже указывает на какой-то буфер. после
		//присваивания по умолчанию связь со старым буфером
		//могла бы потеряться. надо сделать что-то умное     …
	}
}

“Плохой” оператор присваивания

Stack  s1;
Stack  s2;
...
 sz      100
 sp      0
 bf
s1

 sz      100
 sp      0
 bf
s2

Вах!!!
s2=s1;
...

Вах!!!
Стандартные потоки ввода/вывода
class istream {
…
} cin;
class ostream {
	…
} cout, cerr;

istream& operator>>(istream&, int);
ostream& operator<<(ostream&, int);

#include <iostream>
…
int n;
cin >> n;
cout << n+1 << endl;
…

istream& operator>> ( istream& inputStream, Date& date ) {
	inputStream >> date.Month >> date.Day >> date.Year; return inputStream;
}
Переопределение операторов – V
class Complex {
	double re, im;
public:
	Complex(double r=0.0,double i=0.0) : re(r), im(i) {}
	double real() const { return re; }
	double imag() const { return im; }
	Complex& operator+=(Complex c) {
		re+=c.re; im+=c.im;
		return *this;
	}
	Complex& operator+=(double r) {
		re+=r;
		return *this;
	}
}
//функции помощники для реализации смешанной арифметики
Complex operator+(Complex a, Complex b) {
	Complex c=a;
	return  c+=b;
}
Complex  operator+ (Complex, double);
Complex  operator+ (double, Complex);
Complex  operator+ (Complex);		//унарный плюс
Complex  operator- (Complex);		//унарный минус
bool     operator==(Complex, Complex);
bool     operator!=(Complex, Complex);
istream& operator>>(istream&, complex&);
ostream& operator>>(ostream&, complex&);

Z=M*X+Y и эффективность
«Типичный» код в типичной программе по линейной алгебре:	… while (…) {… Z=M*X+Y; …} …где X, Y, Z – векторы и M – матрица.
При прямолинейной реализации создаются две временные переменные и осуществляются два копирования.
Очень неэффективно.
Широко распространенная операция:
The GNU Multiple Precision Arithmetic Libraryvoid mpz_addmul(mpz_t rop,mpz_t op1,mpz_t op2) //rop←rop+op1×op2
Операции вида rop←rop+op1×op2 стандартизованы в IEEE Standard for Floating-Point Arithmetic (IEEE 754) 2008 года.
Анонсировано FMA расширение SSE компаниями Intel и AMD (2011г.).
Z=M*X+Y и отложенные вычисления – I
void mul_add_and_assign(Vector&, const Matrix&,
                        const Vector&, const Vector& );

struct MVmul {
	const Matrix& m; const Vector& v;
	MVmul(const Matrix& mm, const Vector& vv) : m(mm), v(vv) {}
	operator Vector();  //
};
inline MVmul operator*(const Matrix& mm, const Vector& vv) {
	return MVmul(mm,vv);
}

struct MVmulVadd {
	const Matrix& m; const Vector& v; const Vector& v2;
	MVmulVadd(const Matrix& mv, const Vector& vv)
					: m(mv.m), v(mv.v), v2(vv){}
	operator Vector();
};
inline MVmulVadd operator+(const MVmul& mv, const Vector& vv) {
	return MVmulVadd(mm,vv);
}
class Vector {
	//
public:
	//
	Vector(const MVmulVadd& mvv) {	mul_add_and_assign(this,&mvv.m,&mvv.v,&mvv.v2);}
	Vector& operator=(const MVmulVadd& mvv) {	mul_add_and_assign(this,&mvv.m,&mvv.v,&mvv.v2);
		return *this;}
};
…
Matrix M;
Vector X,Y,Z;
…
Z=M*X+Y;
…
			Z.operator=(MVmulVadd(MVmul(M,X),Y));
				mul_add_and_assign(&Z,&M,&X,&Y);
Z=M*X+Y и отложенные вычисления – II

Друзья класса – I
Нестатическая функция-член обладает следующими
свойствами:
доступ к закрытой части класса;
находится в области видимости класса;
вызывается для объекта класса.
Статическая функция-член обладает только первыми двумя
свойствами.
Объявление функции-члена как friend наделяет ее только
первым свойством. Задачи, решаемые в данном случае:
– разделить различные классы объектов;
– предоставить эффективные средства доступа к внутреннему
   устройству классов, являющихся логически связанными.
Друзья класса – II
class Matrix;

class Vector {
	int length;
	…
public:…
	friend Vector operator*(const Matrix&, const Vector&);
	…
}

class Matrix {
	int numRows, numColumns;
	…
	friend Vector operator*(const Matrix&, const Vector&);
public:
	…
}

Vector operator*(const Matrix& m, const Vector& v) {
	if (m.numColumns!=v.length)
		//несоответствие размерностей. что-то надо сделать
	…
}
Друзья класса – III
Друзей можно объявлять как в private-, так и в
	public-части описания класса.
Отношение «дружбы» не является транзитивным.
Можно объявить весь класс другом:
	class A {	friend class B;
		int count;
		…
	public:
		…
	};
	class B {
		…
	public:
		B(const A& a) {
			if (a.count>0) /*что-то сделать*/
			…
		}
Области видимости и пространства имен
Глобальная ОВ (на уровне всей программы).
Локальная ОВ (внутри блока).
ОВ класса.
ОВ пространства имен.

	namespace UsefulThings {
		class Stack;
		class Queue {
		  …
		  Queue(const Stack& s) { /* использовать s */ }
		  …
		};
		…
	}
   …
	class UsefulThings::Stack {
		…
	};
	…
	UsefulThings::Queue* qе=new UsefulThings::Queue();
Пространства имен – I
Синонимы пространства имен:

		namespace UT=UsefulThings;
		…
		UT::Stack sp=UT::Stack(128);

«Глобализация» всех описаний из пространства имен:

		using namespace UsefulThings;
		…
		Stack sp=Stack(10);

«Глобализация» одного описания из пространства имен:

		using namespace UsefulThings::Stack;
		…
		Stack sp=Stack(10); //правильно 	Queue qe;           //ошибка: требуется квалификатор
				     //        пространства имен
Пространства имен – II
Разрешение области видимости:
	namespace ZZZ { int Var; }
	int Var;
	void main() {
		using namespace ZZZ;
		Var++;       //ошибка: глобальная или из ПИ ZZZ
		::Var++;     //правильно: глобальная
		ZZZ::Var++;  //правильно: из пространства имен ZZZ
	}
Вложенные пространства имен:
	namespace X { namespace Y { int Var; } }
	… X::Y::Var++; …
Пространства имен являются открытыми:
	namespace ZZZ { int AAA; }
	…
	namespace ZZZ { int BBB; }
Неименованные пространства имен:
	namespace { int Var; } //определение
	…  Var++; … //находится в той же единице трансляции, что и определение
Стандартное пространство имен:
	//файл stdio.h
	namespace std {
		…
		int printf(char* fmt, ...);
		…
	}
	using namespace std;

	//файл myProg.c
	#include <stdio.h>
	…
	printf(“Hello!”);
	…
Пространства имен – III

#include <cstdio>
…
std::printf(“Hello!”);
…

Исключения – I
При возникновении ошибок, которые невозможно
обработать в месте их возникновения, нужно:
сгенерировать информацию об ошибке;
перехватить эту информацию в том месте, где это важно;
обработать эту ошибку или передать дальше в случае невозможности восстановить корректный ход вычислений.
Традиционный подход, основанный на «длинных»
переходах или проверке системных переменных
errno/error/…, оказывается неадекватным для
систематического использования.
Исключения – II

class Stack {
	…
public:
	class Overflow {
		int limit;
	public:
		Overflow(int n=0) : limit(n) {}
		char* Message() { return /*выдать информацию о допустимом размере*/; }
	}
	…
	bool empty() throw() { return sp==0; }
	void push(int x) throw(Overflow) {
		if (sp==sz)
		    throw Overflow(sz);
		bf[sp++]=x;          //если ошибка, то std::unexpected
	}
}
…
try {
	stk.push(123);
}
catch (Stack::Overflow& err) {
	cout<<err.Message()<<endl;
}
…
Исключения – III
try {
	throw E();
}
catch (H) {
	//управление окажется здесь, если:
	//1. H того же типа, что и E.
	//2. H является однозначной открытой базой E.
	//3. H и E являются указателями, и пункт 1 или 2
	//   выполняется для типов, на которые они ссылаются.
	//4. H является ссылкой, и пункт 1 или 2 выполняется
	//   для типа, на который он ссылается.
}

try {
	//действия
}
catch (...) {
	//управление окажется здесь в случае любого
	//«С++»-исключения
}
Исключения – IV
Повторная генерация исключения
	try {
	   throw E();
	}
	catch (...) {
	   if (...)
		 //внештатная ситуация может быть полностью обработана
	   else
	     throw; //то же самое исключение генерируется повторно
	            //и передается выше
}

Порядок обработки исключений
	try {
		//возможны исключения
	}
	catch (ExceptionType1)
		//
	catch (ExceptionType2)
		//
	…
	catch (...)
		//все остальные исключения
Исключения – V
Техника обратных вызовов (callback techniques)

#include “LexicalAnalyser.h”
namespace LA=LexicalAnalyser;
…
while (true)
	try {
		LA::Lexer(inputStream); //чтение и разбор входного потока
	}
	catch (LA::Number& number) {
		//обработать число
	}
	catch (LA::Keyword& keyword) {
		//обработать ключевое слово
	}
	catch (LA::Name& name) {
		//обработать имя
	}
	catch (LA::Error& err) {
		//обработать известную лексическую ошибку/прервать разбор
	}
	catch (LA::EndOfInput& eof) {
		//достигнут конец входного потока
	}
	catch (...) {
		//неизвестная ошибка
	}
Сортировка в стандартной C-библиотеке
void qsort(					     файл stdlib.h
         void*   Base,
	      size_t  NumOfElements,
         size_t  SizeOfElements,
         int     (*Compare)(const void*, const void*)   );
                                                 файл myfile.h
#include <stdlib.h>
…
int cmp(const int* x,const int* y) {
  return (*x==*y ? 0 : (*x<*y ? -1 : 1));
}
…
int  arr[]={2,243,5,6,76,8,67,1,43,2};
…
qsort(arr, 10, sizeof(int), cmp);
…

Шаблоны – I
Процедурное программирование: один раз пишем – используем многократно; в качестве параметров выступают конкретные значения, типы которых зафиксированы при разработке.
Обобщенное программирование: один раз пишем – используем многократно; в качестве параметров выступают типы (и некоторые другие объекты языка). После настройки типа (выполняется автоматически компилятором) все как обычно.
Идеи из языка Ada: generic types and packages – обобщенные/родовые типы и пакеты.
Шаблоны – II
template<class T>void qsort(T a[], int p, int r) {
   if (p < r) {
	   T x=a[r], t;
      int i=p-1;
      for (int j=p; j<r; ++j) {
         if (a[j]<=x) {
            i++;
            t=a[i]; a[i]=a[j]; a[j]=t;
         }
      }
      t=a[i+1]; a[i+1]=a[r]; a[r]=t;
      int q=i+1;
      qsort<T>(a, p, q-1);
      qsort<T>(a, q+1, r);
   }
}
template<class T>void QuickSort(T a[], int sz) {
   qsort<T>(a, 0, sz-1);
}
void main() {
   int  arr[]={2,243,5,6,76,8,67,1,43,2};
   QuickSort<int>(arr,10);
}
Шаблоны – III
template<class Type, int size=100>
class Stack {
	int    sz;
	int    sp;
	Type   bf[size];
public:
	Stack() : sp(0), sz(size) {}
	…
	void push(const Type& x) {
		bf[sp++]=x;
	}
	Type pop() {
	  return bf[--sp];
	}
};

#include “Stack.h”

сlass SomeClass {
  //нужно что-нибудь?
} var;

void main()
{
Stack<int,50>    intStack;
Stack<SomeClass> st[10];
…
intStack.push(123);
st.push(var);
while (!st.empty()) {
	…
	st.push(*new SomeClass());
	…
}
…
}
Шаблоны – IV
template<class Type> class Stack {
	int    sz;
	int    sp;
	Type  *bf;
public:
	Stack(int=100);
	~Stack() {
		delete [] bf;
	}
	bool empty() const {
		return sp==0;
	}
	void push(const Type& x) {
	  bf[sp++]=x;
	}
	Type pop();
};

template<class Type>
inline Stack<Type>::Stack(int size) {
	sp=0;
	bf=new Type[sz=size];
}

template<class Type>
inline Type Stack<Type>::pop() {
	return bf[--sp];
}
#include “Stack.h”

сlass SomeClass {};

void main()
{
	int n;
	cin >> n;
	Stack<int> intStack(n);
	Stack<SomeClass> st[10];
	…
	intStack.push(123);
	…
	while (!st.empty()) {
	   …
	}
}
Template-реализация стека
namespace UsefulThings {
  template<class Type> class Stack {
    int    sz, sp;
    Type  *bf;
  public:
    class Stack_Overflow {};
    class Stack_Underflow {};
    Stack(int size=100) {
      sp=0;
      bf=new Type[sz=size];
    }
    Stack(const Stack& stk) {
      sp=stk.sp;
      bf=new Type[sz=stk.sz];
      for(int i=0; i<sp; ++i)
        bf[i]=stk.bf[i];
    }
    ~Stack() {
      delete[] bf;
    }
    Stack& operator=(const Stack& stk){
      delete[] bf;
      sp=stk.sp;
      bf=new Type[sz=stk.sz];
      for(int i=0; i<sp; ++i)
        bf[i]=stk.bf[i];
      return *this;
    }
    bool empty() const throw() {
      return sp==0;
    }
    void push(const Type& x) throw(Overflow) {
      if (sp==sz)
        throw Stack_Overflow();
      bf[sp++]=x;
    }
    Type pop() throw(Underflow) {
      if (empty())
        throw Stack_Underflow();
      return bf[--sp];
	}
  }; //конец определения класса
}    //конец определения пространства имен
class SomeClass{
	int val;
public:
	SomeClass(int x) : val(x) {}operator int() const { return val; }
};

template<class T1,class T2> void proc(Stack<T1>& s1,Stack<T2>& s2)
{
	while (!s1.empty())
		s2.push(T2(s1.pop()));
}

void main()
{
	Buff_Stack<int> st1;
	List_Stack<SomeClass> st2;
	List_Stack<int> st3;//заполнить st1
	proc(st1,st2);
	proc(st2,st3);
}
Наследование в ООП – I
Наследование в ООП – II
#include <list>

namespace UsefulThings {

template<class Type> class Stack {
public:
	class Stack_Overflow {};
	class Stack_Underflow {};
	virtual bool empty() const throw()=0;
	virtual void push(const Type& x)
                throw(Stack_Overflow)=0;
	virtual Type pop()
                throw(Stack_Underflow)=0;
   //Stack& operator=(const Stack& stk);
};

template<class Type>
class Buff_Stack : public Stack<Type> {
	int   sz, sp;
	Type  *bf;
public:
	Buff_Stack(int size=100);
	…
}

template<class Type>
class List_Stack : public Stack<Type> {
   std::list<Type>  lst;
public:
   List_Stack(){}     ~List_Stack(){}
   List_Stack(const List_Stack& src) :
      lst(src.lst.begin(),src.lst.end()) {}
   List_Stack& operator=(const List_Stack& src){
      lst.assign(src.begin(),src.end());
      return *this;
   }
   bool empty()const throw(){return lst.empty();}
   void push(const Type& x)throw(Stack_Overflow){
	  lst.push_front(x);
   }
   Type pop() throw(Stack_Underflow) {
      if (empty())
         throw Stack::Stack_Underflow();
      Type x=lst.front();
      lst.pop_front();
      return x;
   }
}; //конец определения класса
}  //конец определения пространства имен
Наследование в ООП – IIIЖизнь до ист.мат. Совмещение типов в C
typedef struct {
	Common com;
	int    radius;
} Circle;
typedef struct {
	Common com;
	Point* vectors;
} Polygon;
typedef struct {
	int x;
	int y;
} Point;
typedef int Color;
typedef enum { circ, poly } Kind;
typedef struct {
	Kind  kind;
	Point startpoint;
	Color color;
	Color bordercolor;
} Common;
typedef union {
	Circle  circle;
	Polygon polygon;
} Shape;
void RotatePolygon(Polygon p, int angle)
{ /*...*/ }

void Rotate(Shape* s, int angle)
{
	switch (s->circle.com.kind)
	{
	case circ:
	  //вращать не надо!!!
	  return;
	case poly:
	  RotatePolygon(*s,angle);
	  return;
	default:
	  //ошибка!!!
	}
}

void RotateAll(Shape* figs,int n,int a)
{
	for(int i=0; i<n; ++i)
	  rotate(figs+i,10);
}
Наследование в ООП – IIIЕще одна попытка
typedef struct {
	Shape  common;
	Point* vectors;
} Polygon;

Point where(struct Polygon s) {
	return s.common.startpoint;
}
void draw(struct Polygon s) {
	//...
}
void rotate(struct Polygon s, int angle){
	//...
}
typedef struct {
	Shape common;
	int   radius;
} Circle;

Point where(struct Circle s) {
	return s.common.startpoint;
}
void draw(struct Circle s) {
	//...
}
void rotate(struct Circle s, int angle){}
typedef struct {
	Point startpoint;
	Color color;
	Color bordercolor;
} Shape;
Point Where(struct Shape s) { return s.startpoint; }
void Draw(struct Shape s) { ??? }
void Rotate(struct Shape s, int angle) { ??? }
Наследование в ООП – IV
Класс, обеспечивающий интерфейс для множества других
классов, называется полиморфным типом.

class Shape {
   Point center;                           class Circle: public Shape {
	Color color;                               int radius;
protected:                                 public:
	Color bordercolor;                         Circle(Color c) :
public:                                              Shape(c), radius(0) {} Shape(Color c) : color(c) {}               void draw() { Point where() {                               //...    return center;                          } }                                          void rotate(int) {}
	virtual void draw()=0;                     void drawborder() { virtual void rotate(int angle)=0;            bordercolor=new Color(…); void move(Point position) {                  Shape::drawborder();   center=position;                        }   draw();                              };
   }
   virtual void drawborder()               void RotateAll(Shape* figs,int n,int a){
   {/*...использование bordercolor...*/}       for(int i=0; i<n; ++i)
};                                                      figs[i]->rotate(10);
                                                 }
Наследование в ООП – VРеализация

Shape

Circle

Circle::draw
Circle::rotate
Circle::drawborder
vtbl
Наследование – VI
class Person {
	char name[100];
	Date birthday;
	int  department;
};

class Manager : public Person {
	list<Person*> staff;
	Date          appointment;
public:
	int           level;
};
void proc(Manager m, Person p) {Person*  pp=&m;
	Manager* pm=&p;
	//…=static_cast<Manager*>(&p);

	pm->level=2; //!!!
	pm=static_cast<Manager*>(pp);
	pm->level=2;

	p=m;   //!!!
	m=p;

	m.staff.push_front(&m);
	m.staff.push_front(&p);
}
Person p;
Manager m;
Преобразования типов
static_cast          	int x=static_cast<int>(1.0);
reinterpret_cast  	int* x=reinterpret_cast<int*>(0xEEEE);
dynamic_cast   void proc(Base* pb) {                        //pb не нулевой     Derived* pd=dynamic_cast<Derived*>(pb);     if (!pd)        //pb не указывает на объект типа Derived или имеет         //в качестве базовых классов более одного типа Derived         …  }
const_cast    SomeClass* thisObject=const_cast<SomeClass*>(this);
Конструкторы как преобразователи типов.
Операторы-преобразователи типов.
Обзор STL
string (строки);
типы vector, list, deque, queue, stack, map, multimap, set, multiset, bitset;
memory (распределение памяти);
iterator (стандартные механизмы доступа)
algorithm (стандартные алгоритмы: сортировка, перестановка, мин/макс, …)
stdexcept (стандартные исключения)
locale (информация о культурных особенностях)
Стек, предоставляемый STL
template<class Ty, class Container = deque<_Ty>> class stack {
	Container c;
public:
	typedef _Container container_type;
	typedef typename Container::value_type value_type;
	typedef typename Container::size_type size_type;
	typedef typename Container::reference reference;
	typedef typename Container::const_reference const_reference;

	stack() : c() {}
	explicit stack(const _Container& _Cont) : c(_Cont) {}
	bool empty() const { return (c.empty()); }
	size_type size() const { return (c.size()); }
	reference top() { return (c.back()); }
	const_reference top() const { return (c.back()); }
	void push(const value_type& _Val) { c.push_back(_Val); }
	void pop() { c.pop_back(); }
};

template<class _Ty, class _Container> inline bool operator==
  					(const stack<_Ty, Container>& Left,
				 	 const stack<_Ty, Container>& Right) {
	return (_Left.c == _Right.c);
}
/*
 *Copyright (c) 1992-2005 by P.J. Plauger.  ALL RIGHTS RESERVED.
* Copyright (c) 1994
 * Hewlett-Packard Company
*/
Пример: for_each-шаблон
template<class _InIt, class _Fn1> inline _Fn1
			     for_each(_InIt _First, _InIt _Last, _Fn1_Func) {
	for (; _ChkFirst != _ChkLast; ++_ChkFirst)
		_Func(*_ChkFirst);
	return _Func;
}
...
class Average {
	long amount; long sum;
public:
	Average() : amount(0), sum(0) {}
	void operator()(int val) {
		amount++; sum+=val;
	}
	operator double() {
		return static_cast<double>(sum)/amount;
	}
};
...
vector<int> v1; //заполнить вектор значениями
cout<<for_each(v1.begin(), v1.end(), Average());
/*
 *Copyright (c) 1992-2005 by P.J. Plauger.  ALL RIGHTS RESERVED.
* Copyright (c) 1994
 * Hewlett-Packard Company
*/
Современное ООП вне C++. Расширение Микрософт языка C++  –  C++/CLI
Managed Extensions for C++ и C++/CLI
Managed Extensions for C++ компании Микрософт  появились в 2002 в связи с переходом на платформу .Net (Visual Studio .Net), в значительной мере унифицированную.
С выходом Visual C++ 2005, Managed Extensions for C++ включены в расширенный синтаксис языка Visual C++, получивший название C++/CLI.
CLI (Common Language Infrastructure) – это стандарт операционной обстановки, предназначенной для исполнения программного кода. CLR (Сommon Language Runtime) – реализация Микрософт стандарта CLI.
Этот синтаксис не является частью ANSI/ISO стандарта C++. Он стандартизован в Ecma C++/CLI Specification.
Нами в основном будут рассмотрены аспекты расширения, связанные с управлением памятью.
Функции CLR
CLR обеспечивает автоматическое размещение объектов и управление ссылками на них, а также освобождение объектов, когда они больше не используются (сборка мусора). Объекты, время жизни которых управляется подобным образом, называются управляемыми данными. Сборка мусора исключает утечки памяти, появление висячих ссылок, удаление используемых объектов  и некоторые другие ошибки программирования, возможные при использовании «неуправляемых» данных.
CLR упрощает разработку компонентов и приложений, разработанных на разных языках, путем предоставления общей системы типов, определяемых средой, и саму эту среду.
Программы компилируются в общий промежуточный язык (Common Intermediate Language, CIL), что дает возможность исполнения откомпилированного кода на любых процессорах и в любых операционных системах, поддерживающих среду выполнения.
Управляемые приложения включают метаданные, содержащие сведения о используемых компонентах и ресурсах. Среда выполнения использует эти сведения, чтобы обеспечить наличие всех необходимых ресурсов для компонента или приложения.
Выделение памяти в управляемой куче
При запуске приложения CLR резервирует для него непрерывную область адресного пространства –  управляемую кучу (УК). Все ссылочные типы размещаются в УК. Она хранит указатель, с которого будет выделена память для следующего объекта в куче.
Изначально этот указатель устанавливается в базовый адрес УК текущего приложения. При создании приложением очередного объекта ссылочного типа для него выделяется память в адресном пространстве, непосредственно следующем за уже размещенными объектами (по базовому адресу УК, если их еще не было).
Пока имеется доступное адресное пространство, память для новых объектов продолжает выделяться по этой схеме, являющейся очень эффективной.
Управляемая куча делится на два раздела. Один – для хранения мелких объектов. Второй – для объектов большого размера (>85000 байтов). Идея – большие объекты живут долго и перемещать их затратно.
Освобождение памяти в управляемой куче
Когда сборщик мусора (СМ) выполняет сборку мусора, он освобождает память, выделенную для объектов, которые больше не используются приложением.
Они определяются посредством построения графа достижимости для объектов.
При обнаружении недостижимого объекта СМ выполняет копирование памяти для уплотнения достижимых объектов в памяти, освобождая блоки адресного пространства, выделенные под недостижимые объекты. Память уплотняется, только если при очистке обнаруживается значительное число недостижимых объектов.
После уплотнения памяти, занимаемой достижимыми объектами, сборщик мусора вносит необходимые поправки в указатели приложения.
Эмпирические законы поведения объектов в куче

Уплотнять память для части управляемой кучи быстрее, чем для всей кучи.
Более новые объекты имеют меньшее время жизни, а более старые объекты имеют большее время жизни.
Новые объекты теснее связаны друг с другом, и приложение обращается к ним приблизительно в одно и то же время.
Поколения объектов
Объекты, созданные после последней сборки мусора или после запуска приложения до первой сборки мусора, являются объектами поколения 0.
Если приложение пытается создать новый объект, когда поколение 0 заполнено, сборщик мусора выполняет сборку, пытаясь освободить для этого объекта адресное пространство в поколении 0 (уплотняя объекты поколения 0).
Для объектов, оставшихся после сборок мусора, их уровень повышается, и они переводятся в поколение 1.
Если уплотнение объектов поколения 0 не освободило достаточно памяти, то уплотняются объекты поколения 1, а затем снова поколение 0.
Если это не принесло результатов, то последовательно уплотняются 2-1-0 (полная сборка мусора) и переводятся из поколения в поколение 0->1, 1->2.
Объекты поколения 2 существуют до тех пор пока не будут удалены при сборке.
Расширения C++/CLI для управления памятью
ref class / ref struct –  управляемые к/с.
gcnew – выделение памяти в управляемой куче.
nullptr – константа, представляющая нулевой указатель.
^ – управляемый указатель.
% – управляемая ссылка.
array – управляемый массив.
interior_ptr / pin_ptr – специфические указатели на объекты в управляемой куче.
Управляемые классы/структуры
В то время как «родные» объекты C++ могут создаваться в разделах памяти разных типов (например, стек или куча), объекты ref-типов создаются в УК (managed heap). CLR поддерживает эту специальную кучу и реализует для нее асинхронный сборщик мусора. Обычные указатели С++ не могут указывать на объекты в УК.	ref class MyClass {	public: 		int val; 		MyClass(int i) : val(i) {}	};
^ - управляемый указатель (handle to an object on the managed heap), указывает на объект управляемой кучи целиком, создается с помощью gcnew и уничтожается delete.	MyClass ^ mp=gcnew MyClass(123); cout<<mp->val;
% - управляемая ссылка (tracking reference), аналогична обычным ссылкам C++. Однако во время исполнения объект, на который она ссылается, может быть перемещен CLR сборщиком мусора. Управляемая ссылка размещается только на стеке. Она не может быть членом класса, но может указывать на член класса. Ей нельзя присвоить null. Управляемая ссылка может быть переприсвоена многократно.	MyClass ^% mr=mp;  int % r=mr->val;  mr->val=r+mr->val;
Внутренний указатель interior_ptr
Внутренний указатель interior_ptr используется для объявления указателя на члены объекта управляемого типа (внутрь и только туда). Внутренний указатель размещается только на стеке. Он не может быть членом класса. За исключением этого interior_ptr предоставляет ту же функциональность, что и обычный, включая сравнение и арифметику.
ref class IntClass { public: int data; };
...
IntClass^ obj = gcnew IntClass;
obj->data = 1;
interior_ptr<int> p1 = &(obj->data); //при перемещении СМ объекта
*p1 = 2;                             //obj будут корректироваться
interior_ptr<IntClass^> p2 = &obj;   //указатели p1 и p2
(*p2)->data = 3;
...
Пришпиленный указатель pin_ptr
Пришпиленный указатель pin_ptr является вариантом внутреннего указателя, который предотвращает перемещение СМ объекта, внутрь которого он указывает. Он может быть объявлен только как нестатическая локальная переменная на стеке. Главное назначение – охрана управляемых данных при передаче указателя на эти данные в функцию. Если pin_ptr присвоено новое значение (в том числе nullptr) или управление покинуло его область видимости, то объект, указываемый им ранее, перестает быть пришпиленным.
void unmanaged_function(int* p) {
    //делает что-то умное. во время исполнения может быть вызван СМ
}
ref class ArrClass {
   array<int>^ arr;
public:
   ArrClass() { arr = gcnew array<int>(1000); }
   void load() {
   	pin_ptr<int> p = &arr[0];    	int* ump = p;
   	unmanaged_function(ump);
   }
};
Некоторые другие расширения
value class
interface class
property
delegate
abstract
new
override
sealed
finally
for each
safe_cast
typeid
event


title: Скачать презентацию или конспект Структура программы на языке Паскаль

extracted_text:
Структура программы на языке Паскаль

Программа состоит из заголовка и блока.
В заголовке указывается имя программы и список параметров. Общий вид:
    program n (input, output, x, y,…);
    здесь n – имя программы;
    input – файл ввода;
    output – файл вывода;
    x, y – внешние файлы, используемые в программе.

Блок
      Блок программы состоит из шести разделов, следующих в строго определенном порядке:
раздел меток (label)
раздел констант (const)
раздел типов (type)
раздел переменных (var)
раздел процедур и функций
раздел действий (операторов)

      Раздел действий должен присутствовать всегда, остальные разделы могут отсутствовать.
      Каждый из первых четырех разделов начинается с соответствующего ключевого слова (label, const, type, var), которое записывается один раз в начале раздела и отделяется от последующей информации только пробелом, либо концом строки, либо комментарием.

Раздел констант (const)
     Если в программе используются константы, имеющие достаточно громоздкую запись (например, число pi с 8-ю знаками), либо сменные константы (для задания варианта программы), то такие константы обычно обозначаются какими-либо именами и описываются в разделе const, а в программе используются только имена констант. Это делает программу более наглядной и удобной при отладке и внесении изменений.
Общий вид:
const a1 = c1; a2 = c2; … здесь a1 – имя константы, c1 – значение константы.
Пример. const pi = 3.14; е = 2.71828;

Раздел переменных (var)
    Каждая переменная должна быть описана до ее использования в программе и отнесена к одному и только одному типу. Названия разделов (const, type, var…) указываются только один раз.
Пример.
var k, i, j: integer; a, b: real;
    Таким образом, в разделе var вводится имя каждой переменной и указывается, к какому типу эта переменная принадлежит. Тип переменной можно задать двумя способами: указать имя типа (например, real, color и т.д.), либо описать сам тип, например: array[1..16] of char

Раздел действий (операторов)
    Эта часть программы начинается с ключевого слова begin и заканчивается словом end, после которого должна стоять точка. Раздел действий есть выполняемая часть программы, состоящая из операторов.
    Под оператором в языке Паскаль подразумевают только описание действий. Операторы отделяются друг от друга только точкой с запятой. Если оператор стоит перед end, until или else, то в этом случае точка с запятой не ставится.
Оператор присваивания
       Общий вид: v := a;
       здесь v – переменная, a – выражение, := - операция присваивания. Выражение a может содержать константы, переменные, названия функций, знаки операций и скобки.
        Пример.  f := 3 * C + 2 * sin(x);
        Вид выражения однозначно определяет правила его вычисления: действия выполняются слева направо с соблюдением следующего старшинства (в порядке убывания):  1) not;  2) *, /, div, mod, and;  3) +, -, or;  4) =, <, >, <>, <=, >=, in.
        Любое выражение в скобках вычисляется раньше, чем выполняется операция, предшествующая скобкам.
        Присваивание допускается для переменных всех типов, за исключением типа файл.
        В операции v := a переменная v и выражение a должны иметь один и тот же тип, а для интервального типа – одно и то же подмножество значений.
        Замечание 1. Разрешается присваивать переменной типа real выражение типа integer.Замечание 2. Нельзя присваивать переменной типа integer выражение типа real.

Целые типы
    Переменные целого типа могут принимать только целые значения. Такие переменные в программе описываются следующим образом:a, b, c: integer;
   Здесь a, b, c… - имена переменных, integer – тип переменных. Транслятор, встретив такое описание переменных a, b, c, запоминает, что эти переменные могут принимать только целые значения и формирует соответственно этому команды программы.
div - целочисленное деление (остаток отбрасывается).
mod - остаток от деления: a mod b.

Вещественные типы
      В языке Паскаль существует несколько типов для представления действительный чисел. Однако чаще всего для их представления используется тип real.
      Над действительными числами выполнимы операции сложения (+), вычитания (-), умножения (*) и деления (/). Результатом этих операций является также действительное число. Даже если хотя бы один из операндов вещественный, то результат этих операций также будет вещественным.
Функция int возвращает в виде действительного значения целую часть аргумента, frac возвращает дробную часть аргумента.
Функции trunc и round возвращают результат целого типа. Первая отсекает дробную часть от аргумента, а вторая выполняет округление до ближайшего целого.
Функция random без аргументов возвращает равномерно распределенное случайное число от 0 до 1.

Стандартные функции Pascal, применимые к аргументам целых и действительных типов


title: Скачать презентацию или конспект Безопасная работа в социальных сетях

extracted_text:
Безопасная работа в социальных сетях: общение, публикация материалов
Презентация подготовлена для конкурса «Интернешка» http://interneshka.org
Автор: Чупрунова Полина, 9 класс,
Руководитель: Александрова З.В., учитель физики и информатики МБОУ  СОШ №5 пгт Печенга,  Мурманская область
   Интернет – это мир интересных и полезных возможностей, но в то же время это источник угроз, особенно для ребенка. Агрессия, преследования, мошенничество, психологическое давление, встречи с онлайн незнакомцами – это лишь некоторый перечень угроз, которые поджидают ребенка в глобальной сети каждый день.
Интернет
Интернет - это сеть, которая опутала весь земной шар. которая соединяет всех владельцев компьютеров, подключенных к этой сети.
При помощи Интернета можно связаться с человеком, который находится, например, в Австралии или Америке.
В интернете хранится очень много различной информации. Там можно отыскать словари, энциклопедии, газеты, произведения писателей, музыку. Можно посмотреть фильмы, теле- и радиопередачи, найти массу программ для своего компьютера.

Достоинства интернета:
Интернет помогает нам общаться, узнавать новое, делать покупки, заключать сделки и т. д.
Что такое Интернет?
Классификация интернет-рисков и угроз
Контентные риски
Электронные риски
Коммуникационные риски
Потребительские риски
Контентные риски связаны с нахождением в сети различных материалов (текстов, картинок, аудио-, видеофайлов, ссылок на сторонние ресурсы), содержащих противозаконную, неэтичную и вредоносную информацию (насилие, агрессию, эротику или порнографию, нецензурную лексику, информацию, разжигающую расовую ненависть, пропаганду анорексии и булимии, суицида, азартных 6 игр, наркотических веществ и т.д.). Столкнуться с ними можно практически везде: в социальных сетях, блогах, торрентах, персональных сайтах, видеохостингах.
Контентные риски
Электронные риски – возможность столкнуться с хищением персональной информации или подвергнуться атаке вредоносных программ. Вредоносные программы – различное программное обеспечение (вирусы, черви, «троянские кони», шпионские программы, боты и др.), которое может нанести вред компьютеру и нарушить конфиденциальность хранящейся в нем информации.
Электронные риски
Коммуникационные риски связаны с общением и межличностными отношениями интернет-пользователей. Примерами таких рисков могут быть: кибербуллинг, незаконные контакты (например, груминг, сексуальные домогательства), знакомства в сети и встречи с интернет-знакомыми. С коммуникационными рисками можно столкнуться при общении в чатах, онлайн-мессенджерах (ICQ, Google talk, Skype), социальных сетях, сайтах знакомств, форумах, блогах.
Коммуникационные риски
Потребительские риски – злоупотребление в интернете правами потребителя. Включают в себя: риск приобретения товара низкого качества, различные подделки, контрафактную и фальсифицированную продукцию, потерю денежных средств без приобретения товара или услуги, хищение персональной информации с целью кибермошенничества.
Потребительские риски
Основные правила безопасного
использования интернета
Контентные риски 
Для того, чтобы избежать встречи с неприятной информацией в интернете, установи на свой браузер фильтр или попроси сделать это взрослых – тогда ты сможешь смело путешествовать по интересным тебе страницам. 
Всегда спрашивай родителей о незнакомых вещах в интернете. Они расскажут, что безопасно делать, а что нет.
Электронные риски
Не скачивай и не открывай неизвестные тебе или присланные незнакомцами файлы из интернета.
Чтобы избежать заражения компьютера вирусом, установи на него специальную программу – антивирус! 
Если твой компьютер заблокирован, то попроси взрослых разблокировать твой компьютер с помощью антивируса.
Если твой компьютер заблокировался картинкой с требованием отправить смс, позвони на Линию помощи «Дети Онлайн» (8-800-25-000-15, бесплатно), и тебе помогут решить проблему!
Основные правила безопасного
использования интернета
Основные правила безопасного
использования интернета
Коммуникационные риски 
Прежде чем начать дружить с кем-то в интернете, спроси у родителей, как безопасно общаться в сети.
Никогда не рассказывай о себе незнакомым людям: где ты живешь, учишься, свой номер телефона. Это должны знать только твои друзья и семья!
Не отправляй свои фотографии, а также фотографии своей семьи и своих друзей незнакомым людям. Они могут использовать их так, что это навредит тебе или твоим близким.
Не встречайся без родителей с людьми из интернета в реальной жизни. В интернете многие люди рассказывают о себе неправду.
Общаясь в интернете, будь дружелюбен с другими. Не пиши грубых слов! Ты можешь нечаянно обидеть человека. Читать грубости также неприятно, как и слышать.
Если тебя кто-то расстроил или обидел в интернете, обязательно расскажи об этом родителям.
Иногда тебе в сети
Вдруг встречаются вруны.
Ты мошенникам не верь, Информацию проверь.
Не хочу попасть в беду –
Антивирус заведу!
Всем, кто ходит в интернет
Пригодится наш совет.
С грубиянами в сети
Разговор не заводи.
Ну и сам не оплошай –
Никого не обижай.
Злые люди в интернете
Расставляют свои сети.
С незнакомыми людьми
Ты на встречу не иди!
Потребительские риски
Если хочешь скачать картинку или мелодию, но тебя просят отправить смс – не спеши!
Сначала проверь этот номер в интернете – безопасно ли отправлять на него смс, и не обманут ли тебя. Сделать это можно на специальных сайтах: http://smscost.ru, http://smswm.ru, http://smsnumbers.ru.
Основные правила безопасного
использования интернета
Как и всюду на планете
Есть опасность в интернете.
Мы опасность исключаем,
Если фильтры подключаем.
Если что-то непонятно,
страшно или неприятно,
Быстро к взрослым поспеши,
Расскажи и покажи.
БЕЗОПАСНОСТЬ В   ИНТЕРНЕТЕ:
касается всех,
касается  каждого !
Помните, Интернет может быть прекрасным и полезным средством для обучения, отдыха или общения с друзьями.
Но как и реальный мир, Сеть тоже может быть опасна!
Спасибо за внимание!


title: Скачать презентацию или конспект Минусы интернета

extracted_text:
Минусы интернета
Выполнил ученик МАОУ СОШ 74
9 «б» Класса
Петров Кирилл
Современное молодое поколение предпочитает Интернет чтению книг, журналов и газет. И действительно, на множестве сайтов можно найти массу интересной и полезной информации, просмотреть новые фильмы, послушать музыку и т.д. Также Всемирная паутина позволяет, сидя в кресле перед монитором, совершить кругосветное путешествие, посетив известнейшие музеи, соборы, картинные галереи мира. Кроме того, Интернет способен полностью заменить собой походы по магазинам, развивающим курсам и проч. Нажатие всего пары клавиш на компьютерной клавиатуре, несколько движений мышки – и вы с легкостью закажете доставку на дом продуктов, обуви, мебели, бытовой техники или медикаментов, можете купить одежду в интернет-магазине.
Основные минусы
Невозможность подтвердить достоверность данных во многих случаях - При неправильном использовании потеря конфиденциальности (много чего можно узнать о человеке в интернете) - Интернет не может заменить настоящего, живого общения. - Российский сегмент интернета зачастую способствует пиратству. - Мошенничество
Зависимость
Интернет – хорошая, нужная вещь! Нужно только уметь им пользоваться и не злоупотреблять! Он всегда поможет, всё подскажет, но может и навредить. Так, большинство вирусов попадает в компьютер пользователя из интернета. Интернет-это большая свалка, где не нужной информации больше, чем полезной. И большинство этой информацией является ложью.
Проводя за компьютером до 18 часов в сутки, мы не задумываемся о том, насколько это вредно для наших глаз. Ведь вне зависимости от того, насколько качественной и надежной является защита монитора, он все равно оказывает вредное воздействие не только на зрение, но и на весь организм человека. Такое воздействие можно сравнить разве что с рентгеновскими лучами, воздействующими на ваше тело около 18 часов подряд.
Кроме того, постоянно сидя перед экраном компьютера, вы тем самым лишаете мышцы своего тела физических упражнений, необходимых им для полноценного развития и функционирования. А организм, лишенный прогулок на свежем воздухе и двигательной активности, «отомстит» вам множеством заболеваний, причем не только опорно-двигательного аппарата!
Также нельзя не заострить внимание на том, как Всемирная паутина воздействует на неокрепшую психику и ум ребенка. Ведь на различных сайтах представлено чересчур много излишне откровенных или жестоких фото, а также информации, которая не принесет вашему чаду ничего, кроме вреда.
Конечно, можно настроить браузер таким образом, чтобы избежать доступа ребенка к той информации, которая может нанести ему вред. В любом случае, оптимальный вариант – когда компьютер находится в общей комнате. Так родителям будет проще проконтролировать свое чадо. Вы можете совместно с ребенком подобрать сайты, которые будут интересны и безопасны для его возраста, сохранив их в разделе «Избранное». Чтобы быть полностью уверенными в его безопасности, установите фильтры.
В качестве профилактической прививки от интернет- зависимости постоянно  задавайте себе несколько наводящих вопросов:
Зачем я включаю компьютер?
Что я хочу здесь  получить?
Сколько времени для этого реально мне нужно  уделить? (Если внутри Вас не срабатывает внутренний таймер, используйте подключение  реального  таймера.)
Где искать необходимую информацию? Конечно,  в проверенных источниках, у профессионалов конкретной темы или ниши.
Вопрос «где и у кого?» поможет Вам не только не утонуть в потоке информации, но и   работать избирательно. При таком подходе Вы будете пользоваться информацией целенаправленно, и  это поможет Вам держать фокус Ваших интересов.
Итак, постоянно спрашивайте себя перед началом поиска информации:«Зачем? Что? Сколько? Где?»
Как избавиться от интернет - зависимости?
Заключение
Однако все это вовсе не значит, что нужно полностью вычеркнуть Интернет из своей жизни, достаточно просто ограничить времяпрепровождение за компьютером до разумных пределов. Тогда вы сможете почерпнуть полезную информацию, предоставленную на ваших любимых сайтах, а также избежите вредных последствий чрезмерного сидения в душной комнате под облучением монитора.


title: Скачать презентацию или конспект Текст как форма представления информации

extracted_text:
Текст как форма
 представления
информации
5 класс
Выполнила презентацию
Поспелова Г. В.
 учитель информатики
МОУ «СОШ №20»
г. Новомосковск Тульская область

Разминка
С буквой “Л” – в игре в футбол
Часто слышим слово …
ГОД
Я приношу с собою боль,
В лице большое искажение,
А “Ф” на “П” заменишь коль,
То превращаюсь я  в знак сложения.
С “Д” уж в слове смысл не тот –
Мерой стало просто …
ГОЛ

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

Информация, представленная в форме письменного текста, называется текстовой информацией.

Книги читать –
скуки не знать
Рукопись С. А. Есенина

Тексты отличаются один от другого по:
 оформлению и размеру;
 назначению и смыслу;
 носителю информации;
 способу создания и т.д.

В течение этого времени менялось:
то, на чем записывали информацию (камень, глина, дерево, папирус, пергамент, бумага);
то, с помощью чего записывали информацию (камень, костяная палочка, птичье перо, авторучки)
Но не менялось главное:
чтобы внести изменение в текст, его надо было переписать. А это очень длительный и трудоёмкий процесс.
На протяжении тысячелетий люди записывали информацию

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

Текст
 Для человека текст – это способ хранения и передачи информации другим людям.
Для компьютера текст – это просто цепочка символов, которые он хранит, обрабатывает и передает по информационным каналам.

Прочитанная басня Н.В. Крылова «Лебедь, рак и щука»
Задания на закрепление:
Является ли текстом или текстовой информацией:
Фотография в альбоме
Написанное вами сочинение
Схема метрополитена г. Москва
Мнение вашего друга по поводу просмотренного фильма
Просмотренный кинофильм

Вывод: таким образом, текст - любое словесное высказывание (написанное, напечатанное, в устной форме).

Всякий письменный текст – это определенная последовательность символов. Пропуск, пробел или перестановка одного символа в тексте изменяет его смысл.
Вспомним, фразу из сказки «12 месяцев», когда принцесса не знала, где ей поставить запятую.
Казнить нельзя помиловать.
Казнить, нельзя помиловать.
Казнить нельзя, помиловать.

Таким образом, всего лишь от одного символа- запятой  зависит жизнь человека. Изменение одного символа в тексте меняет смысл.

Электронная физминутка для глаз       «Крошка Енот»
Галкина И.А.
учитель начальных классов МОУ «Водоватовская СОШ»                        Арзамасского района, Нижегородской области

Самое главное:
Текст — одна из наиболее распространённых форм представления информации.
Всякий текст — это определённая последовательность символов.
 Пропуск, замена или перестановка хотя бы одного символа в тексте изменяет его смысл.

Домашнее задание
§1.9 (стр. 35-36)
РТ №№ 10, 11, 12 (с. 16); № 35 (бег, бант) (с.38)

Спасибо за урок!

Источники
Информатика и ИКТ : учебник для 5 класса/ Л. Л. Босова. – М.: БИНОМ. Лаборатория знаний,  2009. - 192 с.:ил.- ISBN : 978-5-94774-835-2
http://www.frankandandyschleck.com/images/open_book.jpg книга
http://www.novadent.ru/images/stories/flus.jpg флюс
http://willbe.ru/img/clause/rossijskie_gazety_dorozhajut_clause_original.gif газеты
http://i025.radikal.ru/0907/8a/265a27a77759.jpg дневник
http://www.corbisimages.com/images/CB029641.jpg?size=572&uid={2A18AF23-7B65-422F-8721-5A437478E418}   письмо
http://www.frimg.ru/upload/iblock/475/tekst.jpg текст
http://kp.md/f/4/image/95/18/91895.jpg рукопись Есенина
http://www.jeelinvicult.com/wp-content/uploads/2011/04/Hallway.jpg разговор
http://s47.radikal.ru/i115/0904/64/2f7442fd74c2.jpg поговорка
http://s14.radikal.ru/i187/1001/2f/930d3c6f9b7b.jpg компьютер
http://i.i.ua/photo/images/pic/8/9/3956398_8d017e3b.jpg учёный
http://static.amefiles.com/images/news/large/6/84736-binary_1_0.jpg двоичный код
http://tatianawirokova.ucoz.ru/dell_monitor.jpg монитор
http://i5.rozetka.ua/goods/1418/1418438.jpg  монитор1
http://img0.liveinternet.ru/images/attach/c/0/47/907/47907004_27.jpg учитель
http://www.master-live.ru/gifimg/lica.htm девочка
http://pedsovet.su/load/244-1-0-3886  физкультминутка
http://www.stihi.ru/pics/2010/10/25/7487.jpg колокольчик
Презентацию подготовила
Поспелова Г.В.
Желаю всем приятного просмотра!!!
Учитель информатики МОУ «СОШ № 20»
           г. Новомосковск
Тульская область, 2010 г.


title: Скачать презентацию или конспект Правовые и этические аспекты использования интернета

extracted_text:
Правовые и этические аспекты использования интернета
Нургалиев Амир 9 Е

Правовые и этические аспекты электронного маркетинга.
Развитие маркетинговой деятельности на новом рынке и/или с новыми товарами всегда сопровождается введением новых юридических и государственных правил и нормативов, регулирующих различные аспекты коммерческой деятельности. Еще 4000 лет назад в Вавилоне существовал Кодекс Гаммураби, включавший правила честной торговли. Использование новых бизнес моделей выявляет новые проблемы. Например, с развитием транспортных сетей товары проходили все большие расстояния от производителя до потребителя, поэтому все большее значение приобретали контракты между различными участниками канала распределения. Технически сложные товары требуют изменения маркировок на упаковке, специальных предупреждений о безопасном обращении с ними.

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

Во многих странах сеть Интернет рассматривают как новое средство связи наряду с почтовой, телефонной или телеграфной связью. Эти виды деятельности во многих странах обеспечиваются и контролируются государством. Интернет можно считать либо таким же видом связи, как уже известные ранее и распространить на него те же законы, которые регулируют все средства связи. Например, в США закон о защите частной жизни изначально означал, что войти в частный дом представители властей без разрешения хозяев могут только при наличии ордера на обыск. С введением телефонной связи этот закон был распространен и на нее, что значило незаконность, например, установки подслушивающих устройств в частных домах без наличия соответствующего юридического разрешения. Точно также распространяется действие уже имеющихся законов на это новое средство связи в таких вопросах, как правила передачи и распространения частной информации о здоровье, личной жизни и др.

Другим подходом может быть отношение к сети Интернет как к абсолютно новому каналу связи, требующему новых законов и правил использования. Некоторые могут видеть в Интернет определенную угрозу, поскольку он дает возможность скоростной и относительно дешевой глобальной связи, которую трудно контролировать как по пользователям, так и по содержанию коммуникаций. Если при этом вспомнить, что какие-то 20 лет назад в целом ряде стран чуть ни каждую пишущую машинку нужно было ставить на специальный учет, можно представить себе отношение к такому средству коммуникации.
Некоторые страны достаточно быстро приняли новшество, и государство поощряло как установку необходимого оборудования, так и использование Интернет отдельными людьми и организациями. Следует признать, что в число этих стран вошли в основном страны с небольшим населением, например, Эстония или Финляндия, в которой к тому же плотность населения в определенных регионах очень низка.

Защита частной жизни, включая такие вопросы, как:
При каких обстоятельствах разрешен сбор информации. Например, заполняя заявку на участие в лотерее или конкурсе, потребитель предоставляет свою частную информацию. Может ли компания хранить ее или продавать?
Если частная информация собрана без согласия клиента, законно ли ее хранить или продавать? Например, cookies могут дать сведения о вкусах и предпочтениях потребителя.
Какую информацию компания вправе запрашивать. Может ли такая информация храниться? Как долго?
Если пользователи Интернет предоставляют свой электронный адрес, можно ли его автоматически вносить в список рассылки? Или обязательно запрашивать их согласия?
Как защитить потребительскую информацию от несанкционированного доступа?
Как можно обеспечить контроль пользователей Интернет за использованием переданной ими информации?
Должна ли быть разница в правилах использования частной информации, посланной с места работы и из дома?


title: Скачать презентацию или конспект Советы по созданию правильных презентаций

extracted_text:
Советы по созданию правильных презентаций
Многие дизайнеры утверждают, что законов и правил в дизайне нет.
 Есть советы, рекомендации, приемы.
Необходимо учитывать специфику комбинирования фрагментов информации различных типов.
Презентация предполагает сочетание информации различных типов:
 текста,
графических изображений,
музыкальных и звуковых эффектов,
анимации и видеофрагментов.
Содержание и расположение информационных блоков на слайде
информационных блоков не должно быть слишком много (3-6);
желательно присутствие на странице блоков с разнотипной информацией (текст, графики, диаграммы, таблицы, рисунки), дополняющей друг друга;
ключевые слова в информационном блоке необходимо выделить;
информационные блоки лучше располагать горизонтально, связанные по смыслу блоки — слева направо;
наиболее важную информацию следует поместить в центр слайда;
логика предъявления информации на слайдах и в презентации должна соответствовать логике ее изложения.

Единое стилевое оформление
все слайды презентации должны быть выдержаны в одном стиле;
оформление слайда не должно отвлекать внимание слушателей от его содержательной части;
стиль может включать: определенный шрифт (гарнитура и цвет), цвет фона или фоновый рисунок, декоративный элемент небольшого размера и др.;
не рекомендуется использовать в стилевом оформлении презентации более 3 цветов и более 3 типов шрифта;

Текстовая информация
размер шрифта: 24–54 пункта (заголовок), 18–36 пунктов (обычный текст);
цвет шрифта и цвет фона должны контрастировать (текст должен хорошо читаться), но не резать глаза;
тип шрифта: для основного текста гладкий шрифт без засечек (Arial, Tahoma, Verdana), для заголовка можно использовать декоративный шрифт, если он хорошо читаем;
курсив, подчеркивание, жирный шрифт, прописные буквы рекомендуется использовать только для смыслового выделения фрагмента текста.

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

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

Анимация
Анимация в презентации имеет очень большое значение, она делает её более динамичной и интересной, помогает расставить акценты и визуально оформить логику вашего изложения.
Самой большой ошибкой является чрезмерное количество анимации, которое усложняет презентацию, тормозит вас в процессе изложения и самое главное отвлекает от основной информации, это вызывает негативную реакцию аудитории.

Кран В
Кран А
КОГДА ИЗ ТРУБЫ ПОЛЬЕТСЯ ВОДА?

Открыт кран А
Открыт кран В
И
0

0

0

1
Неравенство  sint > a

0
x
y
1. Отметить на оси ординат интервал  y > a.
2. Выделить дугу окружности, соответствующую интервалу.
3. Записать числовые значения граничных точек дуги.
4. Записать общее решение неравенства.
a

t1
π-t1
-1
1

Спасибо за внимание!Презентация подготовлена с использованием  материалов сайтов:http://present.griban.ru/http://comp-science.narod.ru/pr_prez.htmhttp://www.slideshare.net/p-guide/power-guide-full-versionswf-8743835
Не стоит забывать, что на каждое подобное утверждение есть сотни примеров, доказывающих обратное. Поэтому приведенные утверждения нельзя назвать общими и универсальными правилами дизайна, они верны лишь в определенных случаях.


title: Скачать презентацию или конспект Здоровье и безопасность детей в мире ИКТ

extracted_text:
Здоровье и безопасность детей в мире ИКТ
(Лекция для родителей)
МОУ Венгеровская СОШ№2
Подготовила: учитель начальных классов Высшей квалификационной категории
Шуликова Н.Н.
- Актуальность:
В связи с процессом глобальной компьютеризации жизни человека возникают вопросы о влиянии компьютера на  организм  человека и, в первую очередь, на его физическое
и психическое здоровье.
 Особое внимание должно быть уделено изучению влияния компьютера на здоровье школьника, что обусловлено как большей чувствительностью организма ребёнка к всевозможным факторам окружающей среды, так и возможными отдельными последствиями такого влияния, которые скажутся лишь через много лет.
- Практическая значимость:
Такая лекция необходима для выявления круга возможных профессиональных заболеваний пользователей компьютеров, разработки методов их профилактики, диагностики и лечения.
- Цель работы:
Изучение влияния компьютера на здоровье школьников.
-Задачи:
Ознакомить родителей с основными вредными факторами, действующими на человека за    компьютером.
Ознакомить родителей школьников с методами профилактики заболеваний.
«Компьютер – это резонатор того интеллекта, с которым человек к нему обращается»               В.Г.Кротов
Компьютеры и физическое здоровье детей
     Компьютер может стать помощником в интеллектуальном развитии ребенка, освоении им профессии, а может разрушить здоровье и привести к социальной дезадаптации.

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

Прямая осанка – здоровое будущее ребенка!
За  компьютером  надо сидеть чуть выше обычного.
Откажитесь от   стула для вас привычного.
Приобретите удобное кресло ребенку!
От него будет больше проку и толку!
Голову держать надо прямо,
Не наклонять ее  только влево или только вправо.
Сидя за компьютером,  сильно вперед не наклоняться,
Иначе без спины  и зрения можно остаться

Внимание!
Правильная посадка за компьютером!

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

Людей можно разделить на две группы: "зрительные" и "глазные".
Жалобы пользователей ПК  зависят как от времени непрерывной работы за экраном, так и от ее характера.

Профилактика нарушения осанки и зрения при работе на компьютере
Время непрерывной работы за компьютером в пределах одного урока  для учащихся начальной школы составляет 8 -15 минут;
В день младший школьник может пребывать перед монитором до полутора–двух часов, разделив их на 4 сеанса;
Чередование компьютерных занятий и физической активности;
Использование упражнений, снижающих зрительное утомление;
Применение разного рода тренажёров, установленных под рабочим столом – педалей, пневмоковриков;
Подбор стула, соответствующего росто-возрастным показателям ребёнка;
Принятие мер по уменьшению отражений от монитора (выключение верхнего света, задёргивание штор на окнах, поворот монитора;
Контроль позы ребёнка;
Использование упражнений кистевых пружинных или резиновых эспандеров; гимнастики, направленной на снятие утомления в кистях рук и предплечья, проведение точечного массажа.

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

К первым признакам развития компьютерной зависимости у ребенка относятся следующие:

Выводы:

Большинство школьников не знают вредных факторов, действующих на человека за компьютером.

2. Ученики недостаточно заботятся о своём здоровье, проводя много времени за компьютером, что может привести к возникновению различных заболеваний, в том числе психических.

3. Многие школьники игнорируют методы профилактики заболеваний при работе за компьютером.

Заключение:
Мы считаем, что необходимо вести борьбу за здоровье здоровых, проводить обучение, как детей, так и родителей. Мы предлагаем провести родительские собрания и классные часы в нашей школе на тему «Компьютер и здоровье школьника», которая в наше время является одной из самых актуальных.

Берегите детей!

Берегите детей!
Литература:
Ахутина Т.В. Здоровьесберегающие технологии: нейропсихологический подход // Вопросы психологии. - 2002. - №4
Гигиенические требования к условиям обучения в общеобразовательных учреждениях // Российская газета. – 2002. - №234
Димова А. Центр здоровья в образовательном учреждении / Димова А. // Высшее образование в России. – 2009. - №10
Иллюстрации:
http://images.yandex.ru/