Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Информатика - нуждаюсь в информации и советах

  1. #1 Информатика - нуждаюсь в информации и советах 
    Новичок
    Регистрация
    04.07.2018
    Сообщений
    9
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    === 79 == предположительно важнейшее в математике ==
    предположительно важнейшее в математике это
    1.теория Множеств
    2.логика
    3.теория неравенств
    4.теория совершенных и несовершенных пределов



    === 80 == информатика ==
    информация - это форма материи
    информатика - это наука о формах материи

    важнейшим в информатике является
    1.системотехника - наука о Системах
    2.лингвистика - наука о интерфейсах Систем, уже описывалась в главе 53 - лингвистика человеческой речи
    3.программирование - наука о формализации Систем
    4.математика - наука о законах Систем

    ==
    1.системотехника
    Система может состоять из частей, имеющих следующие категории:
    1.дерево - каталог объектов и других каталогов
    2.ветвь - объект, базовый каталог характеристик
    3.лист - характеристика объекта, базовая еденичная структура информации

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

    взаимодействуя друг с другом Системы могут образовывать МультиСистемы

    автономная Система может иметь:
    1.ядро - базовую её часть реализующую:
    1.1 базовые функции
    1.2 анализ информации
    1.3 синтез информации
    1.4 мировозрение анализа информации
    1.5 мировозрение синтеза информации
    2.инструментарий - набор функций
    3.учебники - Базы Знаний методов применения функций
    4.энциклопедии - Базы Знаний областей наук
    5.область деятельности - область применения методов
    6.область интерфейса ввода информации
    7.область интерфейса вывода информации
    8.область задач - поставленные Системе задачи
    9.область хранения информации - может включать в себя несколько областей информации, иногда сразу все собранные в одном месте, например с интерфейсом в виде иерархического дерева каталогов и файлов

    ==
    3.программирование

    предупреждение: в написании этого труда похоже участвовало несколько авторов, когда писал я, Власкин Иван Иванович, дата рождения 1976-03-18, то я в начале абзацов писал текст без заглавных букв и в конце абзацев не ставил точки

    Понятие алгоритма. Одним из фундаментальных понятий в информатике является понятие алгоритма. Происхождение самого термина <алгоритм> связано с математикой. Это слово происходит от Algorithm - латинского написания имени Мухаммеда аль-Хорезми (787-850), выдающегося математика средневекового Востока. В XII в. был выполнен латинский перевод его математическог

    =====
    программирование включает разные категории программирования:
    1.по типу логики решения задания (редукция, индукция, дедукция)
    2.по направлению синтеза решения (программирование "сверху", программирование "снизу")
    3.по структуре реализации алгоритма (структурное или блочное)
    4.по использованию функций (с функциями или без функций)

    ====
    по типу логики решения задания существуют:
    1.редукция - когда известны исходные данные и как их надо преобразовать - известно также как нисходящая декомпозиция или пошаговое усовершенствование
    2.индукция - когда известен формат результата, формат исходных данных и надо создать алгоритм
    3.дедукция - когда есть программа и надо понять смысл её работы - для этого надо абстрагировать алгоритм программы в автомат
    в ходе программирования эти типы могут комбинироваться

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

    ====
    по направлению синтеза решения существуют:
    1.программирование "сверху" или конструирование функции
    =
    достоинства:
    1.Хорошо решает проблемы имеющие иерархический характер
    2.Большая группа схожих проблем может быть идентифицирована и сгруппирована вместе.
    3.Каждая из этих проблем относительно мала и может характеризоваться малым числом параметров.
    4.Каждая из проблем отличается от других (иначе говоря, унификация требует многократного использования проекта и его кода в каждой проблеме).
    5.Нет включения сложных структур данных (иначе концептуальная автономия каждого прикладного модуля была бы потеряна).

    Области, которые соответствуют этим критериям, включают библиотеки математических подпрограмм для решения проблем линейной алгебры и дифференциально-разностных уравнений.
    =
    недостатки:
    1.Функциональную точку зрения трудно развивать.
    Каждая реальная система изменяется и эволюционирует. Нисходящий подход создает хорошую программную модель для исходных требований к системе. Но система изменяется, что ведет к появлению новых требований. Поэтому функциональная архитектура постепенно становится неуправляемой. Поскольку программное обеспечение разработано вокруг относительно фиксированной древовидной структуры, изменения обычно требуют длительного сокращения и прививания. Чистый и хорошо разработанный проект быстро становится "ужастиком", повествующим о новых и повисших связях. Сопровождение становится все более трудным, поскольку первоначальная архитектура медленно умирает с каждой новацией или изменением требований.
    2.Реальные системы трудно охарактеризовать функционально.
    Многие из больших систем не имеют верхнего уровня. Например, система управления базой данных включает инструментальные средства для запроса данных, изменение данных, хранение непротиворечивых данных, и т.д. Нет какой-либо функции, являющейся самым важным звеном в этой системе. Определение этой системы в терминах одной функции верхнего уровня искусственно и приводит к чрезмерно сложным и неадаптивным архитектурам.
    "Одним из наиболее важных решений, принимаемым при разработке системы, является предположение о том, как сделать декомпозицию верхнего уровня. При нисходящем подходе это решение необходимо принять в начале процесса проектирования, то есть тогда, когда имеется минимум информации... Возможно, наиболее серьезная слабость в том, что нисходящее функциональное проектирование требует, чтобы система характеризовалась одной функцией наверху. Это сомнительное требование для многих современных систем, управляемых событиями".
    3.Фокусирование на функциональности теряет из виду данные.
    Нисходящий проект не фиксирует информацию о данных, используемых в программе. Функции же всегда что-то делают с данными. Обычно, одни и те же данные разделены между функциями (например, модификации, удаления, вставки и запроса, работающих с таблицей базы данных). Так как декомпозиция только высвечивает функциональные аспекты проблемы, влияние структур данных на проблему оказывается потерянным.
    4.Функциональная ориентация производит код, менее пригодный для многократного использования.
    При нисходящем проектировании осуществляется непрерывное дробление проблемы на все более простые части. Каждый кусок анализируется и специфицируется отдельно без сильной связи между ним и остальной частью системы. Это является одной из причин, по которой проектирование "сверху вниз" так эффективно на этапе анализа проблемы. Данный метод работает хорошо при начальном проектировании системы, и помогает получить спецификации для выявления и решения проблемы. Однако каждый элемент программы разработан только с ограниченными требованиями к памяти. Так как маловероятно, что точно такие же требования встретятся при решении следующей проблемы, проект программы и код не могут быть обобщены для многократного использования.
    =
    проблемы:
    1.Когда необходимо иметь дело с более сложными проблемами приходится иметь индивидуальные подпрограммы со многими параметрами
    Большое число параметров будет делать подпрограмму трудно используемой и трудно сопровождаемой. Код, скорее всего, будет включать многочисленные вложения операторов if или case. Это кошмар при таких модификациях, как новые добавления к пространству состояний.
    2.Когда необходимо иметь дело с более сложными проблемами приходится иметь много малых подпрограмм с небольшим числом параметров.
    Большое количество подпрограмм будет затруднять их запоминание, что затрудняет использование. Более того, будет иметься много общего кода, рассеянного среди этих многих подпрограмм (так как многие из них будут очень похожи). Этот общий код будет трудно модифицировать и поддерживать. Библиотеки подпрограмм полезны в некоторых областях, но они не решают общих проблем, присущих синтезу.
    3.Синтез не препятствует созданию общих подпрограмм, которые разделяются между многими программами; но оно не поощряет этот процесс.

    ===
    2.программирование "снизу":
    =
    достоинства:
    1.Хорошо объединеняет повторно используемые программы и подпрограммы в систему
    =
    недостатки:
    1.сложность программы, с увеличением числа переменных, функций и их комбинаций, возрастает в геометрической прогрессии, изза чего:
    - сложно запомнить предназначение переменных, функций и адресных меток блоков
    - с увеличением количества строк уходит много времени на поиск требуемого текста программы и перемотку к нему

    ====
    по структуре реализации алгоритма существуют:
    1.структурное программирование - представление программы в виде одной структуры с ветвением на подструктуры с помощью оператров if, for, case, switch, while, do
    2.блочное программирование - представление программы в виде адресованных метками(label) блоков с переходами к ним по оператору goto

    ==
    1.структурное программирование
    =
    позволяет:
    1.возможность легкого заимстования кода в другие программы
    2.возможность легкого мелкого улучшения программ
    =
    создает проблемы:
    1.при большой вложенности циклов теряется читабельность программы
    2.при большой вложенности циклов неудобно редактировать программу в связи с большим количеством символов отступов показывающих степень вложенности команд в ядре цикла
    3.для проверки приходится в мозгу переводить все структуры в автомат

    ==
    2.блочное программирование
    =
    позволяет:
    1.возможность блочного программирования и как подраздел его - программирование автоматов (можно вместо goto использовать switch do и break, но это усложняет программу, теряет её наглядность и увеличивает количество её строк)
    2.быструю скорость программирования
    3.легкость понимания алгоритма кода
    4.легкость проверки кода на корректность работы алгоритмов
    5.возможность масштабных переходов, когда можно перейти сразу в конец программы без учета всяких закрывающих ковычек, слабую возможность этого делает break
    =
    создает проблемы:
    1.можно потерять данные
    2.можно потерять указатели
    3.можно перепутать переменную изза использования одной и той же переменной для разных задач
    4.если ваш работадатель узнает что вы в своем коде ставите goto вас могут уволить за якобы непрофессионализм, или если при приёме на работу в вашем тестовом задании увидят goto вам могут отказать в приёме на работу
    5.вас могут презирать ваши коллеги программисты за использование goto как непрофессионала
    6.ваш заказчик, если кто-нибудь ему сообщит что вы используете goto в программе, может отказать вам в заказе
    7.ваша репутация может быть испорчена

    ====
    по использованию функций существуют:
    1.программирование с функциями
    2.программирование без функций
    =
    достоинства функций:
    1.более понятный текст программы, особенно если название функции описывает её действие
    2.более короткий исходный код
    3.экономия памяти ОЗУ
    =
    недостатки функций:
    1.изза функций сложно использовать такой мощный инструмент как рекурсия, поскольку работающая со стеком функция использует изза рекурсии слишком много памяти, расходуемой стеком на передачу адреса возврата функции, либо вообще возможна утечка памяти
    2.функция - это потеря времени на переходы и работу со стеком, потеря времени на резервное хранение параметров функции, потеря памяти на работу стека функции и её переменных

    =====
    Основное различие между традиционными структурными методологиями проектирования и более новыми объектно-ориентированными методологиями находится в их первичном фокусировании:
    Структурные методы проектирования фокусируются на функциях системы: "Что она делает".
    Объектно-ориентированные методы фокусируются на данных (объектах) системы: "Что делается с...".

    Разработка программного обеспечения - это, прежде всего, нахождение способов получения качественного программного продукта
    Качество программного обеспечения -
    1.внешние характеристики (например, легкое в использовании, выполняется быстро)
    2.внутренние характеристики (например, модульная конструкция, читабельный код).
    Внешние метрики - единственные, которые, в конце концов, действительно имеют значение. Никто, на самом деле, не заботится, насколько хорошую модульную конструкцию вы использовали при создании программы. Всех только заботит, чтобы она хорошо выполнялась. Однако, внутренняя (скрытая) метрика является ключом к созданию внешних, и при этом необходимо учитывать правила конструирования программ и технику программирования.
     

  2. #2  
    Новичок
    Регистрация
    04.07.2018
    Сообщений
    9
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    =====
    параметры программы:
    1.Корректность (правильность) - Обеспечивает правильную обработку на правильных данных
    2.Устойчивость - "Элегантно" завершает обработку ошибок
    3.Расширяемость - Может легко адаптироваться к изменяющимся требованиям
    4.Многократность использования - Может использоваться и в других системах, а не только в той, для которой было создано.
    5.Совместимость - Может легко использоваться с другим программным обеспечением
    6.Эффективность - Эффективное использование времени, компьютерной памяти, дискового пространства и т.д.
    7.Переносимость - Можно легко перенести на другие аппаратные и программные средства
    8.Верификация - Простота проверки, легкость разработки тестов при обнаружении ошибок, легкость обнаружения мест, где программа потерпела неудачу, и т.д.
    9.Поддержка целостности - Защищает себя от неправильного обращения и неправильного употребления
    10.Легкость использования - Для пользователя и для будущих программистов
    11.Читабельный код - Для легкости использования программистом алгоритма кода с целью его изменения или заимствования

    ====
    1.Корректность
    2.Устойчивость
    Легко спутать термины "Корректная программа" и "Устойчивая программа". Корректная программа работает, когда поданы на вход правильные данные. Она отвечает всем требованиям к спецификации данных и не терпит неудачу внутри заданного диапазона. Устойчивость подразумевает не только правильность. Устойчивая программа способна обработать ситуации, не запланированные проектом. Эти ситуации включают некорректный ввод пользователя, аппаратный отказ и ошибки во время выполнения программы. Устойчивые системы терпят неудачу элегантно, без потери критических данных. Легко увидеть, что обе характеристики необходимы для любой системы, которая будет оценена как высококачественное программное обеспечение. Если система некорректна, то она бесполезна. Если система неустойчива, то она окажется неспособной справиться с задачей в реальной ситуации.

    ====
    3.Расширяемость
    Требований меняются. Это - один из бесспорных фактов процесса разработки программ. Высококачественная программа способна иметь дело с этими изменениями относительно безболезненно. Этот сорт адаптируемости - не является существенным для малых проектов, но становится определяющим, когда происходит "программирование в большом".
    Два основных принципа создания расширяемого программного обеспечения:
    =
    3.1.Простота проекта.
    Более простые проект и архитектура позволяют произвести изменения намного быстрее и легче, чем при сложном проекте.
    =
    3.2.Децентрализация.
    Разбиение сложных проблем на малые. Управляемость и независимость фрагментов, означающая, что они могут быть поделены внутри себя. Это значит, что изменения, могут быть выполнены без перекраивания других частей системы.
    =
    Эти принципы позволяют нам понять проблему в частях без опасения затеряться в несметном количестве непостижимых подробностей.

    ====
    4.Многократность (повторность) использования и совместимость
    Многократное использование может просматриваться на различных уровнях: при анализе, проектировании, и реализации.
    Оно поддерживает качество следующими способами:
    =
    Если проекты и код могут повторно использоваться, то мы можем начинать с уже проверенных, опробованных и правильных компонент, качество которых уже является высоким.
    =
    Время и энергия, сохраненные через многократное использование, могут применяться для улучшения других характеристик качества программы (например, корректности или устойчивости).

    ====
    5.Совместимость программного обеспечения
    Мера того, насколько просто объединить различные программные изделия вместе для нового применения. Основы совместимости вытекают из общих проектных решений. Например, файловая система UNIX разработана таким образом, чтобы позволить малым инструментальным средствам хорошо работать вместе при решении сложных проблем.
    Противоположным примером является типичный беспорядок при совместной подготовке текстов и графических изображений. В этом случае, большие усилия должны быть затрачены на создание транслятора, которые позволяет одной программе работать с другой.

    Совместимость и многократное использование идут "взявшись за руки", потому что повторно используемое программное обеспечение (например, plug&play компоненты) должно быть совместимо с его новым окружением. Совместимое программное обеспечение поддерживает качество посредством использования прошлых усилий и подпорок при формировании новых систем. Программное обеспечение с низким коэффициентом совместимости требует огромных усилий, чтобы настроить систему на необходимое использование. Это усилие могло быть потрачено на проектирование лучшей системы или на улучшение эффективности кода.


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

    =====
    В работе "Научные основы доказательного программирования" А.П.Ершов выделял три вида программирования:
    1.Синтезирующее (автоматическое, автоматизированное или ручное манипулирование знанием о задаче с синтезом соответствующей программы)
    2.Сборочное (построение программы из уже существующих и корректных фрагментов)
    3.Конкретизирующее (построение специализированных программ из универсальных заготовок). Их отображение на распространенные ныне парадигмы и языки программирования имеет следующий вид.
    =
    1.Синтезирующее программирование:
    императивное (Паскаль, Си);
    логическое (Пролог);
    функциональное (Лисп);
    параллельное (параллельный Паскаль, Оккам).
    =
    2.Сборочное программирование:
    модульное (Модула-2, Ада);
    компонентное (Эйфель, Component Pascal).
    =
    3.Конкретизирующее программирование:
    объектно-ориентированное (Smalltalk, Си++, Оберон, Java);
    шаблонно-ориентированное (Си++, Clarion).


    =====
    Литература:
    1.Гари Уорен Кинг (Gary Warren King) - статья "Объектно-ориентированный подход действительно лучше структурного"
    2.А.П.Ершов "Научные основы доказательного программирования"
    3.Руслан Богатырев "Об автоматном и асинхронном программировании"
    4.Зюбин В.Е. статья "Графические и текстовые формы спецификации сложных управляющих алгоритмов: непримиримая оппозиция или кооперация?"

    ==========
    изучить:
    Одной из таких удобных абстракций могут служить конечные автоматы, среди разновидностей которых стоит выделить трансдюсеры (transducer), автоматы Мили и Мура.
    ..
    Однако при этом надо четко себе представлять, в чем их недостатки, а для этого придется обратиться к истокам программирования, к идеям "механического" вычисления. Как известно, они воплотились в таких формальных моделях, как машины Тьюринга (1936), комбинаторные процессы Поста (1936), нормальные алгоритмы Маркова (1951).
    ..
    Чтобы ответить на этот вопрос и определить место конечных автоматов среди других абстракций, рассмотрим сети Петри, занимающие промежуточное положение между машинами Тьюринга и конечными автоматами. Сети Петри работают в терминах условий и событий, где первым сопоставлены позиции (особые узлы - емкости для хранения фишек связаны ориентированными дугами с переходами), а последним - переходы (особые узлы-действия, перемещающие фишки и связанные ориентированными дугами с позициями). Конечные автоматы являются частным случаем сетей Петри и эквивалентны автоматным сетям Петри - сетям, в которых каждый переход может иметь точно одну входную и выходную позицию.

    Сети Петри лучше всего подходят для описания любых асинхронных систем (асинхронное программирование), тогда как конечные автоматы - лишь для сугубо последовательных систем (автоматное программирование). (Система взаимосвязанных автоматов реализует параллельные системы - замечание Шалыто А.А.). Наглядность динамики и композиционные возможности сетей Петри выше (при различии понятий "позиция" и "состояние", что требует построения графа достижимых маркировок для определения функциональных возможностей сети Петри - замечание Шалыто А.А.), чем у конечных автоматов, но при этом компактность представления предпочтительнее у последних. Что касается отношения к машине Тьюринга, то достаточно расширить сеть Петри сдерживающими дугами (позволяющими определять отсутствие фишек в данной позиции), как она же становится эквивалентной машине Тьюринга. Очевидно, что чем "мощнее" абстракция, чем больше она позволяет синтезировать возможностей, тем хуже у нее дело обстоит с анализом. Иными словами, конечные автоматы анализировать гораздо проще, чем классические сети Петри и уж тем более чем машины Тьюринга.
    ==========
    сырой материал

    что узнать -
    редукция
    индукция
    дедукция

    трансдюсеры (transducer)
    автоматы Мили и Мура
    машины Тьюринга
    комбинаторные процессы Поста
    нормальные алгоритмы Маркова
    сети Петри
    ==========
     

  3. #3  
    Новичок
    Регистрация
    04.07.2018
    Сообщений
    9
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    вообще пишу большую статью, может даже книгу по информатике

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

  4. #4  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,457
    Сказал(а) спасибо
    1,572
    Поблагодарили 794 раз(а) в 678 сообщениях
    Записей в блоге
    1
    Простите, это невозможно читать. Ни простого языка ни каких-либо мыслей. Голые определения выдранные
    не пойми откуда. Что конкретно вы ждёте от форума?
    Тут так много неструктурированной информации не читают люди и тем более подобного вида, слабо связанной
    по смыслу.

    Книг по информатике валом, чем ваша будет лучше? Это будет справочник? Если так, то брать информацию
    из интернета - издатель забракует.

    Выделите общий контекст, перепишите всё по смыслу, сформируйте основную мысль, то, что вы хотите донести
    до читателя. Нормально оформите, например в виде Google Docs и выложите сюда ссылку.


    Бегло:

    .Децентрализация.
    Разбиение сложных проблем на малые.
    Децентрализация это перераспределение от центрального положения(по какому-либо фактору), а разбиение
    сложного на кучу простого - это декомпозиция.

    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    3.1.Простота проекта.
    Более простые проект и архитектура позволяют произвести изменения намного быстрее и легче, чем при сложном проекте.
    Нет такого термина простота, есть термины сложность(вкл. аспекты - требования к эффективности алгоритмов,
    емкость проектной задачи, наукоёмкость), ёмкость(объём работ и кол-во задач), наукоёмкость(исп. технологии).
    Сложность бывает аналитическая, архитектурная и практическая.
    Аналитическая - на стадии анализа задач и подбора алгоритмов. Самые сложные - недетерминированные и наукоёмкие алгоритмы.
    Архитектурная - на стадии разработки\выбора архитектуры проекта.
    Практическая - на стадии реализации(кодирования).

    Это из головы пишу, но можно и "более формальным" языком оформить.

    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    1.Синтезирующее программирование:
    . . .
    2.Сборочное программирование:
    . . .
    3.Конкретизирующее программирование:
    . . .
    Без примеров это всё бесполезно.


    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    Совместимость и многократное использование идут "взявшись за руки", потому что повторно используемое программное обеспечение (например, plug&play компоненты) должно быть совместимо с его новым окружением. Совместимое программное обеспечение поддерживает качество посредством использования прошлых усилий и подпорок при формировании новых систем. Программное обеспечение с низким коэффициентом совместимости требует огромных усилий, чтобы настроить систему на необходимое использование. Это усилие могло быть потрачено на проектирование лучшей системы или на улучшение эффективности кода.
    Совместимость и "многократное использование" (нет такого термина, есть "повторное использование") - это два разных понятия.
    И в понятии совместимости есть два объекта, тот который предполагает быть совместимым и тот, с которым предполагают совместимость.
    Это всё, что нужно об этом сказать. Какие-то там файловые системы, плаг & плеи - это всё вода на уши читателю.

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


    параметры программы:
    1.Корректность (правильность) - Обеспечивает правильную обработку на правильных данных
    2.Устойчивость - "Элегантно" завершает обработку ошибок
    3.Расширяемость - Может легко адаптироваться к изменяющимся требованиям
    4.Многократность использования - Может использоваться и в других системах, а не только в той, для которой было создано.
    5.Совместимость - Может легко использоваться с другим программным обеспечением
    6.Эффективность - Эффективное использование времени, компьютерной памяти, дискового пространства и т.д.
    7.Переносимость - Можно легко перенести на другие аппаратные и программные средства
    8.Верификация - Простота проверки, легкость разработки тестов при обнаружении ошибок, легкость обнаружения мест, где программа потерпела неудачу, и т.д.
    9.Поддержка целостности - Защищает себя от неправильного обращения и неправильного употребления
    10.Легкость использования - Для пользователя и для будущих программистов
    11.Читабельный код - Для легкости использования программистом алгоритма кода с целью его изменения или заимствования
    Очень так себе. Во первых надо разделять код и собственно программу. Программа(по умолчанию) - это готовый скомпилированный код.
    Некоторые пункты нужны для первого, другие для второго.

    Многократность использования - есть термин кроссплатформенность. Пункт 7 - туда же.
    Расширяемость - есть термин масштабируемость, возможно вы это имели в виду.

    Про корректность и устойчивость - какая-то чушь писана. Корректная программа не может быть не устойчивой,
    потому что в ней нет ошибок, т.е. её алгоритмы полностью формализованы и корректно спроектированы.
    Устойчивая же программа, "пытается-ковыряется" в попытках привести некорректные с её точки зрения данные
    в корректные, этим обычно занимаются недетерминированные алгоритмы. При этом если она "падает", это уже
    означает отсутствие корректности, но для программиста это отсутствие очевидно. Т.к. программист знает, где он
    "недопроектировал" и где дал повод проге навернуться. И элегантности в падении проги нет, это халатность,
    про которую лично создавал соотв. тему. Если автор не в состоянии спроектировать корректную прорамму, он
    шпигует её подобными подпорками, костылями, отлавливателями багов, крешрепортерами и т.п. И как бы они
    мягко о земь не падали - это не повод хвалить этих людей. Обычно же при падении даже "мягком", есть шанс
    потерять все рабочие данные.

    Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
    Легкость использования
    Нет термина лёгкость. Есть термин интуитивно-понятный интерфейс, или дружественный к пользователю интерфейс.

    Целостность - скомкано и не понятно пишете, есть понятие "целостность базы данных", почитайте.
    Простым языком: есть единая система, объекты которой нельзя разделять(они зависят друг от друга), иначе они
    попросту утратят свою функциональность.
    Последний раз редактировалось >Quiet Snow<; 04.07.2018 в 19:18.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    Ограниченно модерирую.
     

  5. Пользователь сказал cпасибо:

    IvanVlaskin1976 (05.07.2018)

  6. #5  
    Новичок
    Регистрация
    04.07.2018
    Сообщений
    9
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    вот спасиб за критику
    ваще это не я писал, я обычно начинаю абзац с маленьких букв и заканчиваю абзац без знаков препинания
    хакер какой то мой учебник программирования дополнил, да ещё и несовершенным образом
    обычно мой стиль предельно лаконичный, а у него куча воды
     

  7. #6  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,457
    Сказал(а) спасибо
    1,572
    Поблагодарили 794 раз(а) в 678 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    вот спасиб за критику
    Это не критика, просто попытался понять вашу цель и то, как в этом вам поможет форум. И прокомментировал немного...
    На форуме обычно в разговорной, ёмкой форме, спрашивают и отвечают. Максимум смысла, минимум конкретики.
    Форумчане не читают так много информации, сколько вы опубликовали, 99% пользователей закроют вашу
    тему сразу, потому что для них это "информационный шум". Такую информацию нужно давать порционно и
    дозированно, с хорошими комментариями.

    Чистота форума важна, поэтому выяснить суть вещей, моя обязанность. Если с автором можно говорить и он всё
    понимает, тогда дискуссия получается более продуктивной.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    Ограниченно модерирую.
     

  8. #7  
    Новичок
    Регистрация
    04.07.2018
    Сообщений
    9
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    вообще сильно текст не стал менял, дополнил его в основном альтернативной терминологией

    еще интересует
    1.критика и советы по Системотехнике
    2.как лучше оформить базовую алгоритмику - разъяснение про базовые блоки алгоритмов, виды условных переходов и циклов, безусловные переходы.. может проще и практичней теорию программирования автоматов дать?
    3.описание что такое компиляция и интерпретация и чем они отличаются, может добавить описалово настроек компиляции и всякие там менеджеры проектов
    4.планирую описать основы математики - теория Множеств, логика и прочее, как ты это лучше и лаконичнее сделать?
    5.есть идея описать достоинства и недостатки базовых языков программирования, область применения, платформы накоторых обычно они работают, типичная их область задач
    6.есть идея описать ресурсы интернета где можно достать информацию по программированию, по языкам, по библиотекам, по порталам, по ресурсам типа GitHub.com или SourceForge.net, где можно найти работу, где можно выложить файлы, где можно прорекламировать свой проект и как можно его продвинуть
     

  9. #8  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    276
    Сказал(а) спасибо
    157
    Поблагодарили 138 раз(а) в 104 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    вот спасиб за критику
    ваще это не я писал, я обычно начинаю абзац с маленьких букв и заканчиваю абзац без знаков препинания
    хакер какой то мой учебник программирования дополнил, да ещё и несовершенным образом
    обычно мой стиль предельно лаконичный, а у него куча воды
    ещё один юморист.



    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    4.планирую описать основы математики - теория Множеств, логика и прочее, как ты это лучше и лаконичнее сделать?
    - лучше подробно с примерами.

    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    6.есть идея описать ресурсы интернета где можно достать информацию по программированию, по языкам, по библиотекам,
    по порталам, по ресурсам типа GitHub.com или SourceForge.net, где можно найти работу, где можно выложить файлы, где
    можно прорекламировать свой проект и как можно его продвинуть
    - эта информация быстро устаревает.
    Последний раз редактировалось >Quiet Snow<; 05.07.2018 в 08:37. Причина: Объединение сообщений, теги цитат +.
     

  10. #9  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,457
    Сказал(а) спасибо
    1,572
    Поблагодарили 794 раз(а) в 678 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от nik_1 Посмотреть сообщение
    ещё один юморист.
    Ну пока поглядим, может в себя придёт, на другом форуме полная чушь творится.



    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    1.критика и советы по Системотехнике
    2.как лучше оформить базовую алгоритмику - разъяснение про базовые блоки алгоритмов, виды условных переходов и циклов, безусловные переходы.. может проще и практичней теорию программирования автоматов дать?
    3.описание что такое компиляция и интерпретация и чем они отличаются, может добавить описалово настроек компиляции и всякие там менеджеры проектов
    4.планирую описать основы математики - теория Множеств, логика и прочее, как ты это лучше и лаконичнее сделать?
    5.есть идея описать достоинства и недостатки базовых языков программирования, область применения, платформы накоторых обычно они работают, типичная их область задач
    6.есть идея описать ресурсы интернета где можно достать информацию по программированию, по языкам, по библиотекам, по порталам, по ресурсам типа GitHub.com или SourceForge.net, где можно найти работу, где можно выложить файлы, где можно прорекламировать свой проект и как можно его продвинуть
    Критикуют обычно законченный труд. Прозвучит, наверное, банально, но предложения пишутся с большой буквы,
    прочитайте правила форума. Есть общепринятые правила русского языка, безграмотность мы не поощряем.

    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    5.есть идея описать достоинства и недостатки базовых языков программирования
    Базовый ЯП всего один - это машинный код, он являет собой первое поколение языков.
    Если же имелось в виду не базовые, а "обучающие", то таковых не существует, существуют диалекты, применяемые
    при обучении(но это не означает то, что они используются только для обучения).

    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    3.описание что такое компиляция и интерпретация и чем они отличаются, может добавить описалово настроек компиляции и всякие там менеджеры проектов
    Захватите и термин "трансляция".



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

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


    Если вы хотите сделать книгу по всем аспектам, то следует разбить книгу на разделы, обдумать входные пороги.
    Начать, к примеру, с наименее сложного материала(допустим это раздел информатика), далее раздел программирование
    и потом уже математический раздел. Программирование не обходится без практических задач.
    Последний раз редактировалось >Quiet Snow<; 05.07.2018 в 09:19.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    Ограниченно модерирую.
     

  11. #10  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    508
    Сказал(а) спасибо
    28
    Поблагодарили 186 раз(а) в 131 сообщениях
    Цитата Сообщение от IvanVlaskin1976 Посмотреть сообщение
    вообще пишу большую статью, может даже книгу по информатике
    Все это надергано из пары десятков каких-то античных источников и не нужно.

    Если решил писать статью. - сначала определись с ее целью, темой и аудиторией.
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    [Ссылки могут видеть только зарегистрированные пользователи. ]
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 03.07.2018, 10:54
  2. Защита информации от веб-сервера клиенту
    от Алексей Янин в разделе Общие вопросы web-разработки
    Ответов: 1
    Последнее сообщение: 30.04.2014, 15:54
  3. Ответов: 0
    Последнее сообщение: 20.05.2012, 17:20
  4. Информатика
    от Kakos_nonos в разделе Учеба
    Ответов: 21
    Последнее сообщение: 17.12.2011, 03:19
  5. Ответов: 0
    Последнее сообщение: 30.11.2011, 20:37
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •