Глава 1. История возникновения различных таймеров — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Глава 1. История возникновения различных таймеров

2020-03-31 252
Глава 1. История возникновения различных таймеров 0.00 из 5.00 0 оценок
Заказать работу

Содержание

 

Введение

Глава 1 Общие сведения о гаджетах - таймерах

История возникновения различных таймеров

1.2 Применение

    Интересные факты

    История развития языков программирования. Ранние этапы развития

    Совершенствование

    Объединение и развитие

    Языки программирования системного уровня

    Языки программирования более высокого уровня

Глава 2 Описание основных принципов создания приложения для выключения компьютера приложением «Таймер»

  Компоненты использованные для создания приложения

2.2 Интерфейс приложения

2.3 Описание кода программы

Заключение

Список использованной литературы

Листинг программы

Приложение (диск с программой)

 

 


 

Введение

 

Целью данной курсовой работы является разработка приложения для отключения компьютера по определенному времени, а также отмены отключения, показа времени начала работы программы и автозагрузки программы. Для реализации этой цели были поставлены следующие задачи:

· Обзор и анализ литературы и других источников по теме данной курсовой работы

·   Создание интерфейса приложения

·   Написание соответсвующего кода программы для работы приложения

·   Тестирование приложения, отладка и анализ ошибок

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

Курсовая работа состоит из следующих частей: Введение, двух частей, заключение, списка использованной литературы и приложений.

В первой части приведен теоретический материал по отключению компьютера и начала работы таймера.

Во второй части дается описание по разработке и созданию приложения для отключения компьютера.

В настоящее время применяются большей частью электронные цифровые таймеры, по принципу действия аналогичные электронным часам, вместе с тем, остаются ещё и механические таймеры, базовым элементом которых является часовой механизм, а также электромеханические, основой которых является реле времени <https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BB%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8>. Теоретически возможно построение простых таймеров на каких-либо других принципах (электрохимический счётчик времени, аналоговый электронный счётчик), однако на практике такие устройства не используются. Для автоматизации работ на персональном компьютере применяются программно реализованные таймеры или сетевые сервисы, например, OnlineТаймер <http://onlinetimer.ru/>.

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

 

 


Глава 1. История возникновения различных таймеров

Применение

· В научных лабораториях

·         В заводских лабораториях

·         В учебных лабораториях ВУЗов, техникумов и школ

·         В спорте

·         В военном деле (засекание времени хода торпеды, определение момента поражения торпедой цели)

В первую очередь секундомеры используются в спорте для точного измерения отрезка времени, потребовавшегося спортсмену для проведения некого упражнения, например в спринте <https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D1%80%D0%B8%D0%BD%D1%82_(%D0%BB%D1%91%D0%B3%D0%BA%D0%B0%D1%8F_%D0%B0%D1%82%D0%BB%D0%B5%D1%82%D0%B8%D0%BA%D0%B0)> или плавании <https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D1%81%D0%BF%D0%BE%D1%80%D1%82)>.

· В быту (на кухне, для определения времени готовки пищи)

 

Интересные факты

 

Цветочные часы (дар г. Женевы к 300-летию основания Санкт-Петербурга в мае 2003)

На разных этапах развития цивилизации человечество использовало солнечные, звёздные, водяные, огневые, песочные, колёсные, механические, электрические, электронные и атомные часы.

·         Направление движения стрелок часов «по часовой стрелке» и «против часовой стрелки» <https://ru.wikipedia.org/wiki/%D0%9F%D0%BE_%D1%87%D0%B0%D1%81%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B5_%D0%B8_%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2_%D1%87%D0%B0%D1%81%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B8> используется для указания направления кругового движения.

·         Традиционное направление движения часовой стрелки совпадает с направлением, в котором движется тень горизонтальных солнечных часов, расположенных в северном полушарии Земли. Однако, существуют часы, у которых стрелки движутся «против часовой стрелки» (как у солнечных настенных).

·         На циферблатах с римскими цифрами четвёртый час иногда обозначают как IIII вместо IV.[7] <https://ru.wikipedia.org/wiki/%D0%A7%D0%B0%D1%81%D1%8B>

·         На рекламе стрелочных часов обычно около 10:10 или 8:20. Это делается для того, чтобы стрелки не закрывали название. Кроме того, время 10:10 на часах в витрине напоминают улыбочку (смайлик), что положительно влияет на лояльность покупателя[8] <https://ru.wikipedia.org/wiki/%D0%A7%D0%B0%D1%81%D1%8B>.

·         Условный циферблат часов часто используется при ориентировании на местности для указания цели, маршрута или направления при взаимодействии подразделений (как правило американской армии) или отдельных наблюдателей. Направление объекта (или маршрута) указывается цифрой циферблата, угловому значению которого он соответствует относительно положения наблюдателя, как если бы циферблат представлялся горизонтально, его центр совпадал с наблюдателем, а 12 часов указывало текущее направление движения (или взгляда) самого наблюдателя. Так, объект находящийся строго справа, будет обозначен как «на 3 часа». После указания направления добавляется цифра, характеризующая расстояние до объекта.

·         В Москве XVII века <https://ru.wikipedia.org/wiki/XVII_%D0%B2%D0%B5%D0%BA> на часах Спасской башни <https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B0%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B0%D1%88%D0%BD%D1%8F> двигалась не единственная часовая стрелка, а циферблат.

Совершенствование

 

В период 1960 <https://ru.wikipedia.org/wiki/1960-%D0%B5_%D0%B3%D0%BE%D0%B4%D1%8B>-1970-х годов <https://ru.wikipedia.org/wiki/1970-%D0%B5_%D0%B3%D0%BE%D0%B4%D1%8B> были разработаны основные парадигмы языков программирования, используемые в настоящее время, хотя во многих аспектах этот процесс представлял собой лишь улучшение идей и концепций, заложенных еще в первых языках третьего поколения.

·         Язык APL <https://ru.wikipedia.org/wiki/APL_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)> оказал влияние на функциональное программирование <https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5> и стал первым языком, поддерживавшим обработку массивов <https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)>[6] <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>.

·         Язык ПЛ/1 <https://ru.wikipedia.org/wiki/%D0%9F%D0%9B/1> (NPL) был разработан в 1960-х годах как объединение лучших черт Фортрана и Кобола.

·         Язык Симула <https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D1%83%D0%BB%D0%B0>, появившийся примерно в это же время, впервые включал поддержку объектно-ориентированного программирования <https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>. В середине 1970-х группа специалистов представила язык Smalltalk <https://ru.wikipedia.org/wiki/Smalltalk>, который был уже всецело объектно-ориентированным.

·         В период с 1969 <https://ru.wikipedia.org/wiki/1969_%D0%B3%D0%BE%D0%B4> по 1973 годы <https://ru.wikipedia.org/wiki/1973_%D0%B3%D0%BE%D0%B4> велась разработка языка Си <https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)>, популярного и по сей день[7] <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F> и ставшего основой для множества последующих языков, например, столь популярных, как С++ и Java.

·         В 1972 году <https://ru.wikipedia.org/wiki/1972_%D0%B3%D0%BE%D0%B4> был создан Пролог <https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BB%D0%BE%D0%B3_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)> - наиболее известный (хотя и не первый, и далеко не единственный) язык логического программирования <https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>.

·         В 1973 году <https://ru.wikipedia.org/wiki/1973_%D0%B3%D0%BE%D0%B4> в языке ML <https://ru.wikipedia.org/wiki/ML> была реализована расширенная система полиморфной <https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)> типизации <https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%82%D0%B8%D0%BF%D0%BE%D0%B2>, положившая начало типизированным языкам функционального программирования <https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>.

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

Кроме того, в 1960-1970-х годах активно велись споры о необходимости поддержки структурного программирования <https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5> в тех или иных языках[8] <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>. В частности, голландский специалист Э. Дейкстра <https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D0%B0,_%D0%AD%D0%B4%D1%81%D0%B3%D0%B5%D1%80_%D0%92%D0%B8%D0%B1%D0%B5> выступал в печати с предложениями о полном отказе от использования инструкций GOTO во всех высокоуровневых языках. Развивались также приемы, направленные на сокращение объема программ и повышение продуктивности работы программиста и пользователя.


Объединение и развитие

 

В 1980-е годы <https://ru.wikipedia.org/wiki/1980-%D0%B5_%D0%B3%D0%BE%D0%B4%D1%8B> наступил период, который можно условно назвать временем консолидации. Язык С++ <https://ru.wikipedia.org/wiki/%D0%A1%2B%2B> объединил в себе черты объектно-ориентированного и системного программирования, правительство США <https://ru.wikipedia.org/wiki/%D0%A1%D0%A8%D0%90> стандартизировало язык Ада <https://ru.wikipedia.org/wiki/%D0%90%D0%B4%D0%B0_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)>, производный от Паскаля <https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BA%D0%B0%D0%BB%D1%8C_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)> и предназначенный для использования в бортовых системах управления военными объектами, в Японии <https://ru.wikipedia.org/wiki/%D0%AF%D0%BF%D0%BE%D0%BD%D0%B8%D1%8F> и других странах мира осуществлялись значительные инвестиции в изучение перспектив так называемых языков пятого поколения, которые включали бы в себя конструкции логического программирования[9] <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>. Сообщество функциональных языков приняло в качестве стандарта ML и Лисп. В целом этот период характеризовался скорее опорой на заложенный в предыдущем десятилетии фундамент, нежели разработкой новых парадигм.

Важной тенденцией, которая наблюдалась в разработке языков программирования для крупномасштабных систем, было сосредоточение на применении модулей - объемных единиц организации кода. Хотя некоторые языки, такие, как ПЛ/1, уже поддерживали соответствующую функциональность, модульная система нашла свое отражение и применение также и в языкахМодула-2 <https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B0-2>, Оберон <https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%B5%D1%80%D0%BE%D0%BD_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)>, Ада и ML. Часто модульные системы объединялись с конструкциями обобщенного программирования <https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BE%D0%B1%D1%89%D1%91%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>[10] <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>.

Важным направлением работ становятся визуальные (графические) языки программирования <https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>, в которых процесс «написания» программы как текста заменяется на процесс «рисования» (конструирования программы в виде диаграммы) на экране ЭВМ. Визуальные языки обеспечивают наглядность и лучшее восприятие логики программы человеком.

В 1990-х годах <https://ru.wikipedia.org/wiki/1990-%D0%B5_%D0%B3%D0%BE%D0%B4%D1%8B> в связи с активным развитием Интернета <https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82> распространение получили языки, позволяющие создавать сценарии для веб-страниц <https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0> - главным образом Perl <https://ru.wikipedia.org/wiki/Perl>, развившийся из скриптового инструмента для Unix-систем, и Java <https://ru.wikipedia.org/wiki/Java_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)>. Возрастала также и популярность технологий виртуализации <https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F>. Эти изменения, однако, также не представляли собой фундаментальных новаций, являясь скорее совершенствованием уже существовавших парадигм и языков (в последнем случае - главным образом семейства Си).

В настоящее время развитие языков программирования идет в направлении повышения безопасности и надежности, создания новых форм модульной организации кода и интеграции с базами данных <https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85>.

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

К концу 50-х годов начали появляться языки программирования более высокого уровня, такие как Lisp, Fortran, ALGOL. В них уже не было точного соответствия между языковыми конструкциями и машинными командами. Преобразование строк исходного кода в последовательности двоичных команд осуществлялось компилятором. Со временем их число пополнилось языками PL /1, Pascal, C, C++, Java. Все они менее эффективно используют аппаратуру по сравнению с языками ассемблера, но позволяет быстрее создавать приложения. В результате им удалось практически полностью вытеснить языки ассемблера при создании крупных приложении.


Для описания структур управления программист может использовать также ключевые слова, как if, while; последовательности машинных команд, соответствующие этим описаниям компилятор генерирует динамически.

Типизация

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

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

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

Данные и программный код разделены; создание нового кода по ходу исполнения программы затруднено, если вообще возможно. Переменные могут объединяться в структуры или объекты с четко определенной субструктурой и методами манипулирования своими компонентами. Объект одного типа не может быть использован в ситуации, где предписано применение объект другого типа.

Языки описания сценариев создавались для связывания готовых программ. Их применение подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом.

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

Языки описания сценариев

Языки описания сценариев, такие как Perl, Python, Rexx, Tcl, Visual Basic и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложений с “нуля”, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Например, Tcl, Visual Basic могут использоваться для построения пользовательских интерфейсов из имеющихся элементов управления, а языки описания сценариев для оболочек UNIX применяются для формирования “конвейеров” обработки потоков данных из набора стандартных фильтров. Языки описания сценариев часто применяются и для дополнения готовых компонентов новыми возможностями; однако эта деятельность редко охватывает создание сложных алгоритмов или структур данных, которые уже обычно бывают уже заложены в компоненты. Иногда языки описания сценариев даже называют связующими или языками системной интеграции.

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

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

Некоторые из систем снабжены очень удобными графическими средствами для построения экранов, которые скрывают сложности лежащего в основе языка, однако, как только возникает необходимость в написании дополнительного кода, например, чтобы расширить спектр вариантов поведения элементов интерфейса, у разработчика сразу возникают трудности. Все лучшие среды ускоренной разработки основаны на языках описания сценариев: Visual Basic, HyperCard, TCL/TK.

Internet

Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Сама сеть является не чем иным, как средством связи систем. Она не создает никаких новых данных и не занимается их обработкой; все, что она делает - обеспечивает легкий доступ к огромному множеству существующих объектов. Идеальным языком программирования для решения большинства связанных с сетью задач мог бы стать тот, который лучше организует совместную работу всех связанных компонентов, т.е. язык описания сценария. Так, для написания сеть-сценариев широко употребляется язык Perl, а среди разработчиков WEB-страниц популярен JavaScrint.

Компонентные инфраструктуры

Третий пример применения языков описания сценариев - компонентные инфраструктуры, такие как ActiveX, JavaBeans. Хотя языки программирования системного уровня с успехом используются для создания компонентов, задачи сборки из них приложении удобнее решаются при помощи сценариев. Без хорошего языка описания сценариев, предназначенного для манипулирования компонентами инфраструктуры, теряется значительная часть ее достоинств. Этим можно объяснить отчасти, почему компонентные инфраструктуры добились большей популярности в мире ПК, где существует такое удобное связующее средство, как Visual Basic, нежели на другихплатформах, таких как Unix/Cobra, компонентные инфраструктуры, для которых лишены языков описания сценариев.

Технология сценариев

Еще одна причина роста популярности языков описания сценариев - развитие их технологии. Такие современные представители этой категории, как TCL, Perl мало, чем напоминают своих далеких предшественников вроде JCL. Так, JCL не предусматривал даже простейших форм интерактивного взаимодействия, а ранние UNIX - оболочки не поддерживали процедур. Данная технология еще и сегодня остается относительно незрелой. Например, Visual Basic не является в полном смысле языком описания сценариев. Первоначально он был разработан в качестве упрощенного языка системного уровня, а затем - модифицирован так, чтобы его было удобнее применять к описанию сценариев. Таким образом, у будущих языков подобного рода есть большой простор для совершенствования.

Кроме того, технология сценариев много выиграла от повышения производительности компьютерного оборудования. Еще не так давно, чтобы добиться приемлемой скорости работы приложения любого уровня сложности, необходимо было обращаться к языкам системного уровня. В некоторых случаях даже их эффективность оказывалась недостаточной, и программу приходилось писать на ассемблере. Современные машины работают в 100-500 раз быстрее компьютеров 80-х годов, и их производительность продолжает удваиваться примерно каждые 18 месяцев. Сегодня целый ряд приложении может быть реализован на языках описания сценариев при, тем не менее, великолепной производительности. Например, TCL-сценарии позволяет манипулировать тысячами объектов при сохранении хорошего уровня интерактивности. По мере того как компьютеры будут становиться быстрее и быстрее, применение языков описания сценариев будет становиться привлекательным для реализации все более и более масштабных приложений.

Другие языки

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

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

Интерфейс приложения

Интерфейс состоит из 3-х компонентов image, с 28-ми компонентов button, 2 компонента maskedit. Нижний maskedit для показа времени компьютера, на котором была активирована программа, а верхний, ведет отчет времени программы, по умолчанию это запуск компьютера.

Панель вокруг формы, отсутствует. Первоначальный интерфейс приложения показан на рисунке 2.3.

 

Рис. 2.3 Интерфейс

 

При нажатии на нижнюю черную панель интерфейс преобразуется (см. рисунок 2.4).

 

Рис 2.4 Полный интерфейс гаджета

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

Принцип работы гаджета состоит в том, что по нажатию по определенным кнопкам с определенным значением, которое записано на кнопке, отключиться компьютер, и точно так же можно будет отменить вылючение компьютера, нажатием на кнопку с надписью “Отключить таймер”

 

Описание кода программы

 

Для работы гаджета нужно добавить следующие модули выделенные жирным шрифтом в раздел описания модулей, который начинается с служебного слова Uses:

 

uses, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, shellapi, Mask, Registry, jpeg;

 

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

 

var

Form1: TForm1;

a,b,c:TTime; //используем переменные с типом времени

procedure TForm1.Button3Click(Sender: TObject);(handle, nil,'shutdown',' -a','', SW_SHOWNORMAL); //код

отменяющий отключение компьютера;


 

Заключение

Повышение производительности компьютеров и перемены в составе используемого ПО делают роль языков описания сценариев в создании приложении будущего все более и более важной. Эти языки отличаются от языков программирования системного уровня тем, что их основное назначение - связывать различные компоненты и приложения друг с другом, выполняя роль своего рода клея. В них находят применение бестиповые подходы к описанию данных, что позволяет вывести программирование на более высокий уровень и ускорить процесс разработки по сравнению с языками системного уровня.

За прошедшие 15 лет в методологии написания программ для компьютеров произошла радикальная перемена. Она состоит в том, что разработчики перешли от языков программирования системного уровня, таких как С и С++, к языкам описания сценариев, примерами которых могут служить Perl Tcl. Хотя в эту перемену оказалось вовлечено огромное количество людей, лишь немногие из них осознают, что в действительности происходит, и еще меньше найдется таких, кто бы смог объяснить причины.

Эти языки создавались для различных целей, что обусловило ряд фундаментальных различий между ним. Системные разрабатывались для построения структур данных и алгоритмов “с нуля”, начиная от таких примитивных элементов, как слово памяти компьютера. В отличие от этого, языки описания сценариев создавались для связывания готовых программ. Их применение подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом. Языки системного уровня используют строгий контроль типов, что помогает разработчикам приложений справляться со сложными задачами; языки же описания сценариев не используют понятие типа, что упрощает установление связей между компонентами и ускоряет разработку прикладных систем.

Языки этих двух типов является взаимодополняющими, и большинство компьютерных платформ еще с середины 60-х годов оснащаются как теми, так и другими. В компонентных инфраструктурах они применяются, как правило, совместно компоненты создаются на языках программирования системного уровня, а для их связи между собой используются языки описания сценариев. Однако ряд современных тенденции, включая появление более быстрых машин и более совершенных языков описания сценариев, повышение значимости графического интерфейса пользователя и компонентных архитектур, а также рост популярности Internet, чрезвычайно расширили сферу применимости языков описания сценариев. Развитие этих тенденции продолжиться и в следующем десятилетии, вследствие чего все больше приложении будет создаваться целиком и полностью на языках описания сценариев, а роль языков программирования системного уровня сведется почти исключительно к созданию компонентов.

Цель, поставленная при написании курсовой работы достигнута. Все задачи выполненны.

 


Список использованной литературы

1. Э. Таненбаум <https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BD%D0%B5%D0%BD%D0%B1%D0%B0%D1%83%D0%BC,_%D0%AD%D0%BD%D0%B4%D1%80%D1%8E>, А. Вудхалл <https://ru.wikipedia.org/w/index.php?title=%D0%92%D1%83%D0%B4%D1%85%D0%B0%D0%BB%D0%BB,_%D0%90.&action=edit&redlink=1>. «Операционные системы: Разработка и реализация.» <http://os24.org/files/books/Andrew_Tanenbaum-Operating_Systems-RU.djvu> - СПб.: 2006.

.   Э. Таненбаум <https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BD%D0%B5%D0%BD%D0%B1%D0%B0%D1%83%D0%BC,_%D0%AD%D0%BD%D0%B4%D1%80%D1%8E>. «Современные операционные системы. 2-е изд.» - СПб.: Питер, 2005. - 1038 с.

.   Серафимов В.В. <https://ru.wikipedia.org/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC%D0%BE%D0%B2,_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D1%8C%D0%B5%D0%B2%D0%B8%D1%87&action=edit&redlink=1>, Лермонтов В.В. <https://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D1%80%D0%BC%D0%B0%D0%BD%D1%82%D0%BE%D0%B2,_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B8%D1%87>, - Часы <https://ru.wikisource.org/wiki/%D0%AD%D0%A1%D0%91%D0%95/%D0%A7%D0%B0%D1%81%D1%8B> // Энциклопедический словарь Брокгауза и Ефрона <https://ru.wikipedia.org/wiki/%D0%AD%D0%BD%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%BF%D0%B5%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C_%D0%91%D1%80%D0%BE%D0%BA%D0%B3%D0%B0%D1%83%D0%B7%D0%B0_%D0%B8_%D0%95%D1%84%D1%80%D0%BE%D0%BD%D0%B0>: В 86 томах (82 т. и 4 доп.). - СПб., 1890-1907.

.   Роберт У. Себеста. Основные концепции языков программирования. - 5-е изд. - М.: Вильямс, 2001. - 672 с.

5. В.Л. Шило «Популярные цифровые микросхемы» М. 1989 г

6. Н.Н. Васерин «Применение полупроводниковых индикаторов» М. 1991 г.

.   Ю.И. Степанов «Справочник по ЕСКД» К. 1975 г.

.   А. Уильямс «Применение интегральных схем» М. 1987 г.

.   С.А. Бирюков «Цифровые устройства на интегральных микросхемах» М.1991 г.

10. Информатика и информационные технологии. Конспект лекций. Романова Ю.Д., Лесничая И.Г. (2009, 320 с.)

11. Информатика и информационные технологии. Конспект лекций. Цветкова А.В. (2007, 192 с.)

12. Информатика и информационные технологии. Шпаргалки. Цветкова А.В. (2008, 32с.)

13. Информатика и компьютерные технологии. Основные термины. Толковый словарь. Фридланд А.Я. и др. (2003, 3-е изд., 272 с.)

14. Информатика и основы программирования. (Учебное пособие) Меняев М.Ф. (2007, 458 с.)

.   Информатика и программирование. (УМК) Комлева Н.В., Смирнов А.А., Хрипков Д.В. (ЕАОИ; 2008, 94с.)

.   Информатика. (Учебник) Соболь Б.В. и др. (2007, 3-е изд, 446 с.)

17. Информатика. (Учебник) Под общ. ред. А.Н. Данчула (2004, 528с.)

18. Информатика. (Учебник) Каймин В.А. (2001, 2-е изд., 272с.)

.   Информатика. (Учебное пособие) Горяев Ю.А. (МИЭМП; 2005, 116с.)

.   Архитектура компьютера. Таненбаум Э.С. (2007, 844с.)

Содержание

 

Введение

Глава 1 Общие сведения о гаджетах - таймерах

История возникновения различных таймеров

1.2 Применение

    Интересные факты

    История развития языков программирования. Ранние этапы развития

    Совершенствование

    Объединение и развитие

    Языки программирования системного уровня

    Языки программирования более высокого уровня

Глава 2 Описание основных принципов создания приложения для выключения компьютера приложением «Таймер»

  Компоненты использованные для создания приложения

2.2 Интерфейс приложения

2.3 Описание кода программы

Заключение

Список использованной литературы

Листинг программы

Приложение (диск с программой)

 

 


 

Введение

 

Целью данной курсовой работы является разработка приложения для отключения компьютера по определенному времени, а также отмены отключения, показа времени начала работы программы и автозагрузки программы. Для реализации этой цели были поставлены следующие задачи:

· Обзор и анализ литературы и других источников по теме данной курсовой работы

·   Создание интерфейса приложения

·   Написание соответсвующего кода программы для работы приложения

·   Тестирование приложения, отладка и анализ ошибок

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

Курсовая работа состоит из следующих частей: Введение, двух частей, заключение, списка использованной литературы и приложений.

В первой части приведен теоретический материал по отключению компьютера и начала работы таймера.

Во второй части дается описание по разработке и созданию приложения для отключения компьютера.

В настоящее время применяются большей частью электронные цифровые таймеры, по принципу действия аналогичные электронным часам, вместе с тем, остаются ещё и механические таймеры, базовым элементом которых является часовой механизм, а также электромеханические, основой которых является реле времени <https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BB%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8>. Теоретически возможно построение простых таймеров на каких-либо других принципах (электрохимический счётчик времени, аналоговый электронный счётчик), однако на практике такие устройства не используются. Для автоматизации работ на персональном компьютере применяются программно реализованные таймеры или сетевые сервисы, например, OnlineТаймер <http://onlinetimer.ru/>.

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


Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.151 с.