Подпрограмма- это часть некоторой программы, имеющая самостоятельное значение и допускающая многократное обращение к ней из различных точек программы.
Внутренние подпрограммы‑ это подпрограммы, которые находятся внутри текста основной программы (вызов по команде Gosub в Basic).
Внешние подпрограммы‑ это подпрограммы, которые находятся вне программы в отдельных файлах.
Рекурсивные программы‑ это подпрограммы, которые допускают многократное обращение к самой себе.
Оверлейныепрограммы‑ это подпрограммы, которые состоят из двух частей: постоянной (EXE) и перекрывающейся (OVL). Подпрограммы из второй части перекрывают друг друга в оперативной памяти, что уменьшает размер требуемой оперативной памяти при выполнении.
Реентерабельныепрограммы‑ допускают многократное использование одного экземпляра подпрограммы в оперативной памяти несколькими различными программами.
Множество всех программ образует программное обеспечение,которое состоит из двух частей:общей(организация вычислительного процесса и разработка программ: операционные и сетевые системы, языки программирования, текстовые и табличные процессоры, системы управления базами и др.) иприкладной, илиспециальной(решение конкретных функциональных задач).
Четыре программы для ПК-тип личности плюс помощь
1.7. Информация, данные и их характеристики
Информация‑ это мера уменьшения неопределенности знания о некотором объекте, событии или явлении (таблица умножения не является информацией для знающего ее).
Свойства информации
Релевантность‑ соответствие запросам пользователя.
Полнота‑ исчерпывающее отображение объекта.
Своевременность‑ соответствие нуждам пользователя в нужный момент.
Достоверность‑ отсутствие скрытых ошибок.
Доступность‑ возможность получения информации потребителем.
Защищенность‑ невозможность несанкционированного использования.
Эргономичность‑ удобство формы представления информации.
Адекватность‑ однозначное соответствие отображаемому объекту.
Количество информации может измеряеться энтропийным и объемным способами.
Энтропийный способ ‑ количество информации (H) определяется по формулеH=log2m, гдеm‑ число возможных равновероятных выборов.
Пример.Для угадывания случайно выбранной карты из колоды 32 карт нужна информация в количествеH=log232=5. Таким образом, нужно задать пять вопросов для угадывания, например, дамы пик:
- Карта красной масти? Ответ “Нет”.
- Трефы? Ответ “Нет”.
- Одна из четырех карт старших? Ответ “Да”.
- Одна из двух карт старших? Ответ “Нет”.
- Дама? Ответ “Да”.
- Элементарное данное‑ наименьшая единица информации, которую бессмысленно разбивать (дата, год рождения).
- Массив- группа переменных, доступ к которым осуществляется по индексу (обычно порядковый номер элемента в массиве). Массивы бывают размерности 1, 2, … N. Массивы позволяют реализовать алгоритмы циклической обработки.
- Запись‑ группа логически связанных переменных, возможно разного типа. Обычно элементы записи называются полями. Поля уточняются именем записи (sotrudnik.fam). Некоторые языки программирования выравнивают поля по кратности адресов: например, вещественные числа имеют адрес, кратный 4, целые ‑ 2. Поэтому возникают незаполненные участки записи.
- Очередь -структура, которая обслуживается по принципу “первым пришел, первым ушел” (список очередников на получение жилья).
- Магазин (стек)‑ структура, которая обслуживается по принципу “первым пришел, последним ушел” (стопка книг).
- Список‑ группа логически связанных записей, каждая из которых состоит из двух частей ‑ адресной и информационной. Адресная часть содержит адреса‑ссылки на логически связанные с ней записи. Информационная часть содержит сами данные. Списки бывают 1, 2, …, N — направленные (по количеству адресов в записи). Список называется кольцевым, если последняя запись списка содержит адрес первой записи.Достоинства списка: при удалении элемента из списка не производится массового копирования элементов к началу списка; при вставке нового элемента в список не производится массового копирования элементов к концу списка.Недостатки: логически близкие записи удаляются друг от друга физически, что замедляет переход от одной записи к другой; удаленные записи занимают место на внешнем носителе.
- повторное использование участков, занятых удаленными записями. Для списка делается дополнительный список, который содержит адреса удаленных записей, и при включении новой записи будет использоваться первая запись из списка удаленных записей;
- реорганизация списка: список копируется в логической последовательности, и удаленные записи игнорируются.
- Таблицы‑ структура данных, состоящая из колонок и строк, доступ к которым осуществляется по ключу в строке. Обычно таблицы сортируются по возрастанию или убыванию ключа. Таблицы являются основной структурой в реляционных базах данных.
- Строки‑ последовательность любых символов.
Источник: studfile.net
Какая разница между windows 32 bit и 64 bit
Что такое типизация: введение в программирование для новичков
Типизация — это важное свойство каждого языка программирования
Типизация — это способность языка распознавать типы данных. С каждым отдельным типом данных язык программирования может осуществлять определенные действия. Поэтому важно различать разные типы данных и понимать , как с ними может взаимодействовать язык программирования, с которым вы работаете.
Простой пример : в JavaScript можно складывать разные типы данных, например , вы можете суммировать строку с числом:
3 + “2“ , где 3 — это число, а “2“ — это строка.
Результат ом такого сложения будет строка «32».
Но если вы попытаетесь такую же операцию провести в Java, то тогда вы нарветесь на ошибку. Почему так происходит? Потому что у языков программирования различают разные виды типизации. То есть у типизации есть своя система градации.
Какие виды типизации бывают
- типизированные — это те, которые различают раз ные типы данных, например: Java, JavaScript, PHP, C, C++, C#, Python и др. ;
- нетипизированные — это те, которые не различают никаких типов данных, например: язык ассемблера, Forth, Brainfuck.
Какими бывают типизированные языки
- Статическ ой или динамическ ой . Статическая означает, что типы данных определяются до начала компилирования программы ; к этой группе относятся такие язык и, как С, Java, C# и др. Динамическая типизация означает, что типы данных определяются во время исполнения программы ; к этой группе языков относятся такие , как Python, Ruby, JavaScript и др.
- Сильн ой или слаб ой (или строг ой -нестрог ой ). Сильная типизация подразумевает, что языки не могут оперировать в одном выражении разными типами данных, то есть не могут сложить строку и число. К этой группе относятся следующие языки: Java, Python, Li sp и др. Слабая типизация дает возможность более свободно работать с разными типами данных. К этой группе относятся следующие языки программирования: С, JavaScript, PHP, Visual Basic и др.
- Явн ой или неявн ой . Языкам с явной типизацией нужно точно задавать тип новых переменных, функций, аргументов. К этой группе относятся следующие языки: С++, D, C# и др. Языкам с неявной типизацие й э то делать необязательно, так как определение точности типов лежит на компиляторе или интерпретаторе. К этой группе относятся языки программирования: PHP, Lua, JavaScript и др.
Как типизация влияет на работу с языком программирования
- Статическая типизация добавляет дополнительных трудностей при программировании, так как нужно много всего прописывать «руками», при этом уменьшается количество допущенных ошибок в программе. Динамическая типизация дает больше свободы и легкости в работе с языком, но с ней нужно быть осторожнее.
- Сильная типизация на кладывает ограничения на свободу, однако поведени е программы легче предсказать, если она написана на сильно типизированном языке. Слабая типизация — это свобода, однако с ней также нужно быть осторожней, потому что велик риск допущения критических ошибок.
- Явная типизация требует от программиста больше ответственности при объявлении новых функций и переменных. Неявная типизация перекладывает эту ответственность на компилятор/интерпретатор, от этого программисту становится легче.
Заключение
Типизация языка программирования — это не основной критерий высокой производительност и п ри выборе языка для разработки программы. Можно и со статическим языком так «напрограммировать», что программа будет еле работать. А программу на динамическом языке так оптимизировать, что она будет «летать». Поэтому многое зависит еще и от рук, которые программируют на конкретном языке.
Типы программ. Что можно, а что нельзя делать?
В этой заметке хотелось бы рассказать о том, какие программы бывают, и на каких условиях их можно использовать.
Поводом для написания этой заметки являются регулярные вопросы такого типа:
«Я хочу поместить на свой диск программу, но вот боюсь, что меня потом авторы засудят…»;
«Евгений, а зачем Вы нарушаете закон? Ведь нельзя выкладывать программы на диски!»;
«Я не могу установить программу, потому что она просит какой-то серийный номер. Что делать?»;
«А почему программа перестала работать? Месяц работала нормально, а сейчас ругается!»;
Чтобы подобных вопросов больше не возникало, давайте разберемся в типах программного обеспечения.
Начнем с того, что изначально всё программное обеспечение (программы, скрипты и т.п.) делится на две большие группы:
— бесплатное;
— платное.
Бесплатное ПО делится на следующие виды:
Free — бесплатная программа или скрипт. Вы можете пользоваться и распространять это ПО бесплатно, но вот изменять программу или скрипт Вы не имеете права.
Free GPL — бесплатное и свободное программное обеспечение. Обычно при такой лицензии Вы имеете право запускать, изучать, распространять и улучшать программу или скрипт. Исходники обычно доступны на сайте автора. Вы можете их скачать, изменить ПО под себя и спокойно им пользоваться. Никаких нарушений в этом случае не будет.
Распространять можно как исходное, так и измененное Вами или кем-то ПО.
Adware — бесплатная программа, которая полноценно исполняет возложенные на неё функции, но при этом содержит в себе дополнительные компоненты. Компонент может крутить какую-то рекламу внутри программы, а может, например, попросить Вас заполнить какую-то анкету и т.д. При установке подобных программ пользователя обычно предупреждают о том, что вместе с программой будут установлены дополнительные компоненты. По распространению — всё то же самое, что и у freeware-программ.
Платное ПО делится на следующие виды:
Shareware — условно-бесплатная программа или скрипт. Обычно программы этого типа ограничиваются в плане функциональности. Т.е. какие-то функции программа выполняет, как положено, а вот часть самых полезных и нужных функций заблокирована до тех пор, пока Вы не купите ключ. Распространять shareware-программы можно при условии, что в код не внесено никаких изменений, и программа не взломана.
Trial — условно-бесплатная программа или скрипт. По этому принципу делается большинство платных программ. Суть его в том, что программа не имеет ограничений по функциям, но работает без ключа только определенное количество времени (20-30 дней) или запусков (10-20 запусков). Сейчас этот тип условно-бесплатного ПО часто относят к Shareware (см. предыдущий пункт). По распространению — всё то же самое, что и у shareware программ.
Demo — демо-версия. Программы, работающие по этому принципу, обычно не имеют функциональных и временных ограничений. Ограничения накладываются на результат, т.е. Вы что-то создаете, а сохранить результат не можете. Иногда бывает, что при сохранении результата на него накладываются водяные знаки, говорящие о том, что использовалась демо-версия.
По распространению — всё тоже самое, что и у shareware-программ.
Это что касалось типов лицензий на ПО.
Теперь давайте поговорим о том, можно ли распространять программы и скрипты вместе с информационными продуктами, которые Вы создаете.
Чтобы быть уверенным в том, что Вы имеете право распространять программу, всегда читайте лицензионное соглашение, которое обычно появляется перед установкой любой программы.
В самом начале лицензионного соглашения автор (разработчик) всегда пишет что-то типа этого:
XP Tweaker Russian Edition поставляется по принципу «freeware». Никаких гарантий не прилагается и не предусматривается. Вы используете это программное обеспечение на свой риск.
Программа является shareware. Вы можете свободно распространять дистрибутив программы.
Как правило, разработчики программ с типами лицензий, описанными выше, всегда только «ЗА» то, что Вы будете распространять их детище по Сети или в оффлайне, отсюда и такое бурное развитие сайтов, основная тематика которых — это разного рода программное обеспечение.
Главное здесь знать, чего нельзя делать с ПО:
— Вы не имеете права продавать программы или скрипты, если Вы не автор или у Вас нет специальных прав перепродажи;
— Вы не имеете права распространять взломанные версии shareware-, trial- и demo-программ;
— Вы не имеете права изменять исходный код программ и скриптов (не считая тех, которые распространяются по лицензии GNU).
Вот, в принципе, и всё, что я хотел сказать в этой заметке. Надеюсь, она оказалась для Вас полезной и теперь, вопросов, связанных с распространением легальных версий freeware-, adware-, shareware-, trial- и demo-версий программ у Вас не будет.
Источник: evgeniypopov.com