Описывает то что должна сделать программа для решения поставленной задачи но никак она это должна

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

Однако, как правило, понимание появляется не раньше, чем вы сделаете первый шаг, а иногда картина проясняется только после того, как будет проделана большая часть пути. Из-за этого люди часто впадают в «аналитический паралич», начинают в деталях все обдумывать, в итоге не совершая никаких действий для решения задачи.

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

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

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

Пример: пока вы спали, в доме начался пожар. Если, проснувшись от запаха дыма, пытаться понять причину пожара, можно сгореть вместе с домом.

How to Start Unit-testing by Igor Alexeenko (Rus) | JS Conf Armenia 2017

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

Иллюзия фокусировки

Дэниел Канеман писал:

Ничто в жизни не важно настолько, насколько вам кажется, когда вы об этом думаете.

Это явление часто идет рука об руку с предыдущим: иногда все, что вы делаете — это думаете, что у вас недостаточно информации, чтобы начать действовать.

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

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

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

Агенты РФ заграницей / Санкции / Грузия / Дмитрий Гудков* / Персонально ваш // 17.05.2023 @Gudkov

Эффект фиксации

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

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

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

Нужно научиться принимать незавершенные дела, согласиться, что это реальность, в жизни всегда будут такие ситуации, и это нормально. Можно составить список «ожидания», чтобы не наблюдать такие задачи постоянно в списке дел и быть уверенным, что дело не потеряется.

Облегчить «страдания» также поможет выполнение какого-нибудь похожего по смыслу задания: например, сходите в магазин и купите к вашему будущему шкафу еще и табуретку.

Выводы

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

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

Фото на обложке: unsplash.com

Источник: rb.ru

Вопрос 1. Программный принцип управления компьютером

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

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

В основе принципа программного управления лежит представление алгоритма решения любой задачи в виде программы вычислений.

Читайте также:
Программа больше теле2 что это

Алгоритм [1][1] – точное предписание, определяющее процесс преобразования исходных данных в конечный результат. При решении задачи применим общий алгоритм: 1) получить исходные данные; 2) найти решение; 3) сообщить ответ.

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

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

Структура команды в общем случае имеет вид:

КОП Код операции А1 Адрес 1-го операнда А2 Адрес 2-го операнда А3 Адрес помещения результата А4 Адрес следующей команды

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

Суть принципа программного управления заключается в следующем:

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

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

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

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

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

Обычно программы хранятся во внешней памяти ПЭВМ и для выполнения передаются в оперативную память. Некоторые программы постоянно размещаются в памяти (ядро операционной системы, архиватор Zip Magic, монитор антивирусной программы Касперский АнтиВирус и др.) и называются резидентными, а другие – загружаются только на время выполнения, а затем удаляются из памяти, и называются транзитными.

Часть машинных программ, обеспечивающих автоматическое управление вычислениями и используемых наиболее часто, может размещаться в постоянном запоминающем устройстве – реализовываться аппаратно. Программы, записанные в ПЗУ, составляют базовую систему ввода/вывода (BIOS), которая является промежуточным звеном между программным обеспечением компьютера и его электронными компонентами. Ее компоненты обеспечивают выполнение всех операций ввода/вывода в соответствии со специфическими особенностями работы каждого из периферийных устройств данного компьютера (драйверы стандартных устройств), тестируют работу памяти и устройств компьютера при включении электропитания (тест), а также выполняют загрузку операционной системы.

Вопрос 2. Классификация программного обеспечения ПК

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

ПО современных компьютеров включает множество разнообразных программ, которое можно условно разделить на три группы (рис. 3.1):

1. Системное программное обеспечение (системные программы);

2. Прикладное программное обеспечение (прикладные программы);

3. Инструментальное обеспечение (инструментальные системы).

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

Центральное место среди системных программ занимают операционные системы (англ. operating systems). Операционная система (ОС) – это комплекс программ, предназначенных для управления загрузкой, запуском и выполнением других пользовательских программ, а также для планирования и управления вычислительными ресурсами ЭВМ, т.е. управления работой ПЭВМ с момента включения до момента выключения питания. Она загружается автоматически при включении компьютера, ведет диалог с пользователем, осуществляет управление компьютером, его ресурсами (оперативной памятью, дисковым пространством и т.д.), запускает другие программы на выполнение и обеспечивает пользователю и программам удобный способ общения – интерфейс – с устройствами компьютера. Другими словами, операционная система обеспечивает функционирование и взаимосвязь всех компонентов компьютера, а также предоставляет пользователю доступ к его аппаратным возможностям.

ОС определяет производительность системы, степень защиты данных, выбор программ, с которыми можно работать на компьютере, требования к аппаратным средствам. Примерами ОС являются MS DOS, OS/2, Unix, Windows 9х, Windows XP.

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

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

Для организации более удобного и наглядного интерфейса пользователя с компьютером используются программныеоболочки операционных систем – программы, которые позволяют пользователю отличными от предоставляемых ОС средствами (более понятными и эффективными) осуществлять действия по управлению ресурсами компьютера. К числу наиболее популярных оболочек относятся пакеты Norton Commander (Symantec), FAR (File and Archive manageR) (Е.Рошаль).

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

Читайте также:
Программа seed что это

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

· антивирусные программы, предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения;

· программы оптимизации и контроля качества дискового пространства;

· программы восстановления информации, форматирования, защиты данных;

· программы для записи компакт-дисков;

· драйверы[3][1] – программы, расширяющие возможности операционной системы по управлению устройствами ввода/вывода, оперативной памятью и т.д. При подключении к компьютеру новых устройств необходимо установить соответствующие драйверы;

· коммуникационные программы, организующие обмен информацией между компьютерами и др.

Некоторые утилиты входят в состав операционной системы, а некоторые поставляются на рынок как самостоятельные программные продукты, например, многофункциональный пакет сервисных утилит Norton Utilities (Symantec).

Прикладное программное обеспечение (ППО) предназначено для решения задач пользователя. В его состав входят прикладные программы пользователей и пакеты прикладных программ (ППП) различного назначения.

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

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

· ППП общего назначения – универсальные программные продукты, предназначенные для автоматизации широкого класса задач пользователя. К ним относятся:

Текстовые редакторы (например, MS Word, Word Perfect, Лексикон);

Табличные процессоры (например, MS Excel, Lotus 1-2-3, Quattro Pro);

Системы динамических презентаций (например, MS Power Point, FreelanceGraphics, Harvard Graphics);

Системы управления базами данных (например, MS Access, Oracle, MS SQL Server, Informix);

Графические редакторы (например, Сorel Draw, Adobe Photoshop);

Издательские системы (например, Page Maker, Venture Publisher);

Системы автоматизации проектирования (например, BPWin, ERWin);

Электронные словари и системы перевода (например, Prompt, Сократ, Лингво, Контекст);

Системы распознавания текста (например, Fine Reader, Cunei Form).

Системы общего назначения часто интегрируются в многокомпонентные пакеты для автоматизации офисной деятельности – офисные пакеты – Microsoft Office, StarOffice и др.

· методо-ориентированные ППП, в основе которых лежит реализация математических методов решения задач. К ним относятся, например, системы математической обработки данных (Mathematica, MathCad, Maple), системы статистической обработки данных (Statistica, Stat).;

· проблемно-ориентированные ППП предназначены для решения определенной задачи в конкретной предметной области. Например, информационно-правовые системы ЮрЭксперт, ЮрИнформ; пакеты бухгалтерского учета и контроля 1С: Бухгалтерия, Галактика, Анжелика; в области маркетинга –Касатка, Marketing Expert; банковская система СТБанк;

· интегрированные ППП представляют собой набор нескольких программных продуктов, объединенных в единый инструмент. Наиболее развитые из них включают в себя текстовый редактор, персональный менеджер (органайзер), электронную таблицу, систему управления базами данных, средства поддержки электронной почты, программу создания презентационной графики. Результаты, полученные отдельными подпрограммами, могут быть объединены в окончательный документ, содержащий табличный, графический и текстовый материал. К ним относят, например, MS Works. Интегрированные пакеты, как правило, содержат некоторое ядро, обеспечивающее возможность тесного взаимодействия между составляющими.

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

К инструментальному программному обеспечению относят: системы программирования – для разработки новых программ, например, Паскаль, Бейсик. Обычно они включают: редактор текстов, обеспечивающий создание и редактирование программ на исходном языке программирования (исходных программ), транслятор, а также библиотеки подпрограмм; инструментальные среды для разработки приложений, например, C++, Delphi, Visual Basic, Java, которые включают средства визуального программирования; системы моделирования, например, система имитационного моделирования MatLab, системы моделирования бизнес-процессов BpWin и баз данных ErWin и другие.

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

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

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

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

Источник: studopedia.su

Лекция №1. Алгоритм. Свойства алгоритма. Способы описания.

Широкая известность понятия алгоритма в настоящее время обусловлена развитием и широким применением вычислительной техники. Разработка алгоритма – необходимый этап в процессе решения задач на ЭВМ. В связи с этим алгоритмы представляют самостоятельную ценность как интеллектуальные ресурсы общества.

Понятие алгоритма

  • Среда;
  • Система команд;
  • Отказы.

Среда (обстановка) – это «место обитания» исполнителя. Например, среда ТР.

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

Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды.

Свойства алгоритма

  1. Результативность. Алгоритм имеет некоторое число входных величин – аргументов, задаваемых до начала работы. Цель выполнения алгоритма – получение результата (результатов), имеющего вполне определенное отношение к исходным данным. Можно сказать, что алгоритм указывает последовательность действий по преобразованию исходных данных в результаты.
  2. Массовость. Для алгоритма можно брать различные наборы данных, т.е. использовать один и тот же алгоритм для решения целого класса однотипных задач. Вместе с тем существуют алгоритмы, которые применимы только к единственному набору исходных данных. Например, для алгоритма пользования автоматическим турникетом при входе в метро существует единственный вариант исходного данного – жетон. Поэтому понятие массовости требует уточнения. Можно считать, что каждого алгоритма существует свой класс объектов, допустимых в качестве исходных данных. Тогда свойство массовости означает, применимость алгоритма ко всем объектам этого класса. А количество объектов класса (конечное или бесконечное) – свойство самого класса исходных данных.
  3. Понятность. Чтобы алгоритм можно было выполнить, он должен быть понятен исполнителю. Понятность алгоритма означает знание исполнителя алгоритма о том, что надо делать для его исполнения.
Читайте также:
Dpinst64 что это за программа

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

  1. Дискретность. Алгоритм представлен в виде конечной последовательности шагов. Говорят, что алгоритм имеет дискретную структуру. Следовательно, его исполнение расчленяется на выполнение отдельных шагов (выполнение каждого последующего шага начинается только после выполнения предыдущего).
  2. Конечность. Выполнение алгоритма заканчивается после выполнения конечного числа шагов. При выполнении алгоритма некоторые его шаги могут выполняться многократно.

В математике существуют вычислительные процедуры, имеющие алгоритмический характер, но не обладающие свойством конечности. Например, процедура вычисления числа π. Такая процедура описывает бесконечный процесс и никогда не завершится. Если же прервать ее искусственно, например, ввести условие завершения процесса вычислений вида: «Закончить вычисления после получения п десятичных знаков числа», то получится алгоритм вычисления п десятичных знаков числа π. На этом принципе основано получение многих вычислительных алгоритмов: строится бесконечный, сходящийся к искомому решению процесс. Он обрывается на некотором шаге, и полученное значение принимается за приближенное решение рассматриваемой задачи. При этом точность приближения зависит от числа шагов.

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

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

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

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

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

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

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

Одна из таких формализаций была предложена в 1936 г. английским математиком А. Тьюрингом, который формально описал конструкцию некоторой абстрактной машины (машины Тьюринга) как исполнителя алгоритма и высказал основной тезис о том, что всякий алгоритм может быть реализован соответствующей машиной Тьюринга. Примерно в это же время американским математиком Э. Постом была предложена другая формальная алгоритмическая схема – машина Поста, а в 1954 г. советским математиком А.А. Марковым была разработана теория класса алгоритмов, названных им нормальными алгоритмами, и высказан основной тезис о том, что всякий алгоритм нормализуем.

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

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

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

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

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru