Сколько места в памяти необходимо выделить для хранения предложений по информатике и информатике
Обновлено: 21.11.2024
Сеть состоит из двух или более компьютеров, которые связаны между собой для совместного использования ресурсов (например, принтеров и компакт-дисков), обмена файлами или обеспечения электронной связи. Компьютеры в сети могут быть связаны кабелями, телефонными линиями, радиоволнами, спутниками или лучами инфракрасного света.
Два очень распространенных типа сетей включают:
Вы также можете увидеть ссылки на городские сети (MAN), беспроводную локальную сеть (WLAN) или беспроводную глобальную сеть (WWAN).
Локальная сеть
Локальная вычислительная сеть (LAN) – это сеть, ограниченная относительно небольшой территорией. Как правило, это ограничено географической областью, такой как письменная лаборатория, школа или здание.
Компьютеры, подключенные к сети, обычно классифицируются как серверы или рабочие станции. Серверы, как правило, не используются людьми напрямую, а работают непрерывно, предоставляя «услуги» другим компьютерам (и их пользователям-людям) в сети. Предоставляемые услуги могут включать в себя печать и отправку факсов, хостинг программного обеспечения, хранение и совместное использование файлов, обмен сообщениями, хранение и извлечение данных, полный контроль доступа (безопасность) к сетевым ресурсам и многое другое.
Рабочие станции называются так потому, что на них обычно есть человек, который через них взаимодействует с сетью. Рабочими станциями традиционно считались настольные компьютеры, состоящие из компьютера, клавиатуры, дисплея и мыши, или ноутбуки со встроенными клавиатурой, дисплеем и сенсорной панелью. С появлением планшетных компьютеров и устройств с сенсорным экраном, таких как iPad и iPhone, наше определение рабочей станции быстро расширилось и включает эти устройства из-за их способности взаимодействовать с сетью и использовать сетевые службы.
Серверы, как правило, более мощные, чем рабочие станции, хотя конфигурация определяется потребностями. Например, группа серверов может быть расположена в безопасном месте, вдали от людей, и доступ к ним возможен только через сеть. В таких случаях серверы обычно работают без специального дисплея или клавиатуры. Однако размер и скорость серверного процессора (процессоров), жесткого диска и оперативной памяти могут значительно увеличить стоимость системы. С другой стороны, рабочей станции может не требоваться столько места для хранения или оперативной памяти, но для удовлетворения потребностей пользователя может потребоваться дорогостоящий дисплей. Каждый компьютер в сети должен быть соответствующим образом настроен для его использования.
В одной локальной сети компьютеры и серверы могут быть соединены кабелями или по беспроводной сети. Беспроводной доступ к проводной сети возможен благодаря точкам беспроводного доступа (WAP). Эти устройства WAP обеспечивают мост между компьютерами и сетями. Типичная точка доступа может иметь теоретическую пропускную способность для подключения к сети сотен или даже тысяч беспроводных пользователей, хотя практическая пропускная способность может быть намного меньше.
Почти всегда серверы будут подключаться к сети кабелями, потому что кабельные соединения остаются самыми быстрыми. Стационарные рабочие станции (настольные) также обычно подключаются к сети кабелем, хотя стоимость беспроводных адаптеров снизилась до такой степени, что при установке рабочих станций в существующем помещении с неадекватной проводкой может быть проще и дешевле подключиться к сети. использовать беспроводную связь для рабочего стола.
Дополнительную информацию о настройке локальной сети см. в разделах «Топология», «Кабели» и «Оборудование» этого руководства.
Глобальная сеть
Глобальные сети (WAN) соединяют сети в более крупных географических регионах, таких как Флорида, США или по всему миру. Для подключения этого типа глобальной сети можно использовать выделенные трансокеанские кабельные или спутниковые каналы связи.
Используя глобальную сеть, школы Флориды могут связываться с такими местами, как Токио, за считанные секунды, не оплачивая огромные счета за телефон. Два пользователя на расстоянии полмира с рабочими станциями, оборудованными микрофонами и веб-камерами, могут проводить телеконференции в режиме реального времени. WAN — это сложно. Он использует мультиплексоры, мосты и маршрутизаторы для подключения местных и городских сетей к глобальным коммуникационным сетям, таким как Интернет. Однако для пользователей глобальная сеть не будет сильно отличаться от локальной сети.
Преимущества установки школьной сети
Управление доступом пользователей. Современные сети почти всегда имеют один или несколько серверов, что позволяет централизованно управлять пользователями и сетевыми ресурсами, к которым у них есть доступ. Учетные данные пользователя в частной и управляемой сети могут быть такими же простыми, как имя пользователя и пароль, но с постоянно растущим вниманием к проблемам компьютерной безопасности эти серверы имеют решающее значение для обеспечения того, чтобы конфиденциальная информация была доступна только авторизованным пользователям. Хранение и обмен информацией. Компьютеры позволяют пользователям создавать и манипулировать информацией. Информация в сети живет своей собственной жизнью.Сеть предоставляет как место для хранения информации, так и механизмы для обмена этой информацией с другими пользователями сети. Соединения. Администраторы, преподаватели и даже студенты и гости могут быть подключены к сети кампуса. Услуги. Школа может предоставлять такие услуги, как регистрация, школьные справочники, расписания курсов, доступ к исследованиям, учетные записи электронной почты и многие другие. (Помните, что сетевые службы обычно предоставляются серверами). Интернет. Школа может предоставить пользователям сети доступ к Интернету через интернет-шлюз. Вычислительные ресурсы. Школа может предоставить доступ к специализированным вычислительным устройствам, которыми отдельные пользователи обычно не владеют. Например, школьная сеть может иметь высокоскоростные высококачественные принтеры, стратегически расположенные по территории кампуса для использования инструкторами или учащимися. Гибкий доступ. Школьные сети позволяют учащимся получать доступ к своей информации с подключенных устройств по всей школе. Учащиеся могут начать задание в своем классе, сохранить часть его в общедоступной зоне сети, а после уроков пойти в медиацентр, чтобы закончить работу. Студенты также могут работать совместно через сеть. Вычисление рабочей группы. Программное обеспечение для совместной работы позволяет многим пользователям одновременно работать над документом или проектом. Например, преподаватели, работающие в разных школах округа, могут одновременно вносить свои идеи о новых стандартах учебной программы в один и тот же документ, электронные таблицы или веб-сайт.
Дорогая установка. Крупные сети кампусов могут иметь высокие цены. Кабели, сетевые карты, маршрутизаторы, мосты, брандмауэры, точки беспроводного доступа и программное обеспечение могут стоить дорого, а для установки, безусловно, потребуются услуги технических специалистов. Но благодаря простоте настройки домашних сетей простую сеть с доступом в Интернет можно настроить для небольшого кампуса за полдня. Требуется административное время. Надлежащее обслуживание сети требует значительного времени и опыта. Многие школы установили сеть только для того, чтобы обнаружить, что в бюджете не предусмотрена необходимая административная поддержка. Серверы выходят из строя. Хотя сетевой сервер не более подвержен сбоям, чем любой другой компьютер, когда файловый сервер «выходит из строя», вся сеть может остановиться. Хорошие методы проектирования сети говорят о том, что критически важные сетевые службы (предоставляемые серверами) должны быть избыточными в сети, когда это возможно. Кабели могут порваться. В главе «Топология» представлена информация о различных конфигурациях кабелей. Некоторые конфигурации предназначены для сведения к минимуму неудобств, связанных с оборванным кабелем; при других конфигурациях один оборванный кабель может остановить всю сеть. Безопасность и соответствие. Безопасность сети стоит дорого. Это также очень важно. Школьная сеть, возможно, будет подвергаться более строгим требованиям безопасности, чем корпоративная сеть аналогичного размера, из-за вероятности хранения личной и конфиденциальной информации пользователей сети, опасность которой может усугубляться, если какие-либо пользователи сети являются несовершеннолетними. Большое внимание необходимо уделять сетевым службам, чтобы обеспечить соответствие всего сетевого контента сетевому сообществу, которое он обслуживает.
4202 E. Fowler Ave., EDU162
Тампа, Флорида 33620
Доктор. Рой Винкельман, директор
Эта публикация была подготовлена в рамках гранта Министерства образования Флориды.
Информация, содержащаяся в этом документе, основана на информации, доступной на момент публикации, и может быть изменена. Несмотря на то, что были предприняты все разумные усилия для включения точной информации, Флоридский центр учебных технологий не дает никаких гарантий в отношении точности, полноты или пригодности информации, представленной здесь, для какой-либо конкретной цели. Ничто в данном документе не может быть истолковано как рекомендация использовать какой-либо продукт или услугу в нарушение существующих патентов или прав третьих лиц.
Переменные используются для хранения информации, на которую можно ссылаться и которой можно манипулировать в компьютерной программе. Они также предоставляют способ маркировки данных описательным именем, чтобы наши программы могли быть более понятными читателю и нам самим. Полезно думать о переменных как о контейнерах, содержащих информацию. Их единственная цель — маркировать и хранить данные в памяти. Затем эти данные можно использовать во всей вашей программе.
Присвоение значения переменным
Присвоение имен переменным известно как одна из самых сложных задач в компьютерном программировании. Когда вы даёте имена переменным, хорошо подумайте об именах. Старайтесь изо всех сил, чтобы имя, которое вы присваиваете своей переменной, было точно описательным и понятным другому читателю. Иногда этот другой читатель — это вы сами, когда пересматриваете программу, написанную месяцами или даже годами ранее.
Когда вы назначаете переменную, вы используете символ =. Имя переменной указывается слева, а значение, которое вы хотите сохранить в переменной, — справа.
Здесь мы присвоили значение 'Joe' , которое является строкой, переменной first_name . Теперь, если мы хотим сослаться на эту переменную, мы можем это сделать.
Как видите, теперь мы сохранили строку "Джо" в памяти для использования во всей программе.
Примечание. Не путайте оператор присваивания (=) с оператором равенства (==). Отдельный символ = присваивает значение, а символ == проверяет, равны ли две вещи.
Давайте попробуем кое-что. Посмотрите на следующий сеанс irb.
Каково значение b в этот момент? Попробуйте предположить, а затем введите этот сеанс в irb, чтобы выяснить это.
Вы заметите, что значение b осталось равным 4, а значение a было изменено на 7. Это показывает, что переменные указывают на значения в памяти и не связаны друг с другом глубоко. Если это сбивает с толку, не волнуйтесь, у нас есть много упражнений для вас, чтобы сделать эту информацию ясной и очевидной. А если сомневаетесь, всегда пробуйте в irb.
Получение данных от пользователя
До сих пор вы могли назначать данные переменным только из программы. Однако на практике вам нужно, чтобы другие люди могли интересным образом взаимодействовать с вашими программами. Для этого мы также должны позволить пользователю хранить информацию в переменных. Затем мы можем решить, что нам делать с этими данными.
Один из способов получить информацию от пользователя — вызвать метод gets. gets означает "получить строку", и это очень весело. Когда вы используете его, программа ждет, пока пользователь 1) введет информацию и 2) нажмет клавишу ввода. Давайте попробуем. Напечатайте эти примеры в irb, чтобы получить представление, и немного поэкспериментируйте с ними, если хотите.
Ну вот! Это намного красивее. Теперь мы можем использовать переменную имени по своему усмотрению.
Область действия переменной
Область действия переменной определяет, где в программе переменная доступна для использования. Область действия переменной определяется тем, где переменная инициализируется или создается. В Ruby область действия переменной определяется определением метода или блоком.
Мы узнаем о методах в следующей главе. На данный момент вы можете думать о методах как о фрагментах многократно используемого кода, которые ваша программа может выполнять много раз во время своего выполнения. Определения методов выглядят следующим образом:
Определив метод, мы можем вызывать его столько раз, сколько нам нужно, с разными значениями для first_name и last_name :
С точки зрения области действия переменных, методы имеют автономную область действия. Это означает, что из тела метода можно ссылаться или изменять только переменные, инициализированные в теле метода. Кроме того, переменные, инициализированные внутри тела метода, недоступны вне тела метода. Это немного похоже на непроницаемый пузырь. Таким образом, в приведенном выше коде мы не можем использовать или изменить переменную имени из строки 1 внутри метода print_full_name. Однако мы можем создать и использовать переменную с другим именем, локально связанную с методом. Вот почему строки 3 и 4 работают без изменения значения имени из строки 1.
Блок – это фрагмент кода, который следует за вызовом метода и ограничен фигурными скобками <> или do/end :
В приведенных выше примерах < |number| . >является блоком, как и do |number| . конец . Хотя они выглядят по-разному, поведение идентично. В обоих случаях код может получать доступ и изменять переменные, определенные вне блока. Таким образом, оба блока могут получить доступ и изменить total . Однако любые переменные, инициализированные внутри блока (например, number ), недоступны для внешнего кода.
Имейте в виду, что не все. концевые пары подразумевают блок. Мы рассмотрим это более подробно в последующих курсах. В частности, делать. конец цикла for или while не является блоком.
Теперь, когда у вас есть представление о том, что представляет собой область действия переменной, мы хотим подчеркнуть одно правило:
Внутренняя область может обращаться к переменным, инициализированным во внешней области, но не наоборот.
Посмотрев на код, вы проясните это. Допустим, у нас есть файл с именем scope.rb .
Каково значение a при выводе на экран? Попробуйте.
Значение a равно 3. Это связано с тем, что a доступно для внутренней области видимости, созданной 3.times do . end , что позволило коду переназначить значение a . На самом деле он трижды переназначал его на 3.
Давайте попробуем что-нибудь другое. Мы изменим исходный код scope.rb:
Какой результат вы получили при запуске этой программы? Вы должны были получить сообщение об ошибке на тему:
Это связано с тем, что переменная b недоступна вне вызова метода с блоком, в котором она инициализирована. Когда мы вызываем puts b, он недоступен в этой внешней области.
* Примечание: ключевой отличительный фактор для принятия решения о том, считается ли код, разделенный символом <> или do/end, блоком (и, таким образом, создается новая область действия для переменных), заключается в том, чтобы увидеть, следует ли <> или do/end сразу за кодом. вызов метода. Например:
Ответ: да. Причина в том, что для. Код do/end не создавал новую внутреннюю область видимости, поскольку for является частью языка Ruby, а не вызовом метода. Когда мы используем each , times и другие вызовы методов, за которыми следует <> или do/end , создается новый блок.
Обратите внимание, что блоки также можно записывать с помощью фигурных скобок, хотя общепринятой практикой является использование их только для однострочников: вызов метода и блок должны располагаться на одной строке. Например, вот приведенный выше цикл времени, переписанный с использованием фигурных скобок:
Блоки фигурных скобок идентичны do. конечные блоки с точки зрения области действия.
Типы переменных
Прежде чем мы продолжим, вы должны знать, что существует пять типов переменных. Константы, глобальные переменные, переменные класса, переменные экземпляра и локальные переменные. Пока вам не следует слишком сильно углубляться в эти темы, вот краткое описание каждой из них.
Константы объявляются путем написания каждой буквы в имени переменной заглавной в соответствии с соглашением Ruby. Они используются для хранения данных, которые никогда не нужно изменять. В то время как большинство языков программирования не позволяют изменять значение, присвоенное константе, Ruby позволяет. Однако он выдаст предупреждение, информирующее вас о том, что для этой переменной было предыдущее определение. То, что вы можете, не означает, что вы должны изменить значение. На самом деле, вы не должны. Константы не могут быть объявлены в определениях методов и доступны во всех областях вашего приложения.
Пример объявления константы:
Глобальные переменные объявляются, когда имя переменной начинается со знака доллара ( $ ). Эти переменные доступны во всем приложении, переопределяя все границы области. Рубисты стараются держаться подальше от глобальных переменных, так как при их использовании могут возникнуть неожиданные сложности.
Пример объявления глобальной переменной:
Переменные класса объявляются, когда имя переменной начинается с двух знаков @. Эти переменные доступны экземплярам вашего класса, а также самому классу. Когда вам нужно объявить переменную, связанную с классом, но каждому экземпляру этого класса не требуется собственное значение для этой переменной, вы используете переменную класса. Переменные класса должны быть инициализированы на уровне класса, вне каких-либо определений методов. Затем их можно изменить с помощью определений методов класса или экземпляра.
Пример объявления переменной класса:
Переменные экземпляра объявляются, когда имя переменной начинается с одного знака @. Эти переменные доступны во всем текущем экземпляре родительского класса. Переменные экземпляра могут пересекать некоторые границы области, но не все из них. Вы узнаете больше об этом, когда доберетесь до тем ООП, и не должны использовать переменные экземпляра, пока не узнаете о них больше.
Пример объявления переменной экземпляра:
Локальные переменные — это наиболее распространенные переменные, с которыми вы столкнетесь, и они подчиняются всем границам области действия. Эти переменные объявляются, начиная имя переменной ни с $, ни с @, а также не используя заглавные буквы во всем имени переменной.
Пример объявления локальной переменной:
Обзор
В этой главе мы говорили о том, как использовать переменные для хранения информации для последующего использования и как получить информацию от пользователя. Мы также показали, что не все переменные созданы одинаковыми и что область, в которой определена переменная, меняет ее доступность во всей программе. Теперь, когда вы знаете о различных типах переменных и о том, как их использовать, давайте применим некоторые из этих знаний на практике с помощью нескольких упражнений.
Упражнения
Напишите программу с именем name.rb, которая просит пользователя ввести свое имя, а затем распечатывает приветственное сообщение с включенным именем.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 2:32
Напишите программу age.rb, которая спрашивает пользователя, сколько ему лет, а затем сообщает, сколько ему будет лет через 10, 20, 30 и 40 лет. Ниже приведены результаты для человека 20 лет.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 3:39
Добавьте еще один раздел в name.rb, который печатает имя пользователя 10 раз. Вы должны сделать это без явного написания метода puts 10 раз подряд. Подсказка: вы можете использовать метод times, чтобы делать что-то повторно.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 2:05
Снова измените name.rb, чтобы он сначала запрашивал у пользователя его имя, сохранял его в переменной, а затем делал то же самое для фамилии. Затем выводит их полное имя сразу.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 2:53
Посмотрите на следующие программы.
Что x выводит на экран в каждом случае? Оба выдают ошибки? Ошибки разные? Почему?
Решение
Первый выводит на экран 3. Второй выдает ошибку: неопределенная локальная переменная или метод, потому что x недоступен, так как он создается в рамках блока do/end.
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Переменные используются для хранения информации, на которую можно ссылаться и которой можно манипулировать в компьютерной программе. Они также предоставляют способ маркировки данных описательным именем, чтобы наши программы могли быть более понятными читателю и нам самим. Полезно думать о переменных как о контейнерах, содержащих информацию. Их единственная цель — маркировать и хранить данные в памяти. Затем эти данные можно использовать во всей вашей программе.
Присвоение значения переменным
Присвоение имен переменным известно как одна из самых сложных задач в компьютерном программировании. Когда вы даёте имена переменным, хорошо подумайте об именах. Старайтесь изо всех сил, чтобы имя, которое вы присваиваете своей переменной, было точно описательным и понятным другому читателю. Иногда этот другой читатель — это вы сами, когда пересматриваете программу, написанную месяцами или даже годами ранее.
Когда вы назначаете переменную, вы используете символ =. Имя переменной указывается слева, а значение, которое вы хотите сохранить в переменной, — справа.
Здесь мы присвоили значение 'Joe' , которое является строкой, переменной first_name . Теперь, если мы хотим сослаться на эту переменную, мы можем это сделать.
Как видите, теперь мы сохранили строку "Джо" в памяти для использования во всей программе.
Примечание. Не путайте оператор присваивания (=) с оператором равенства (==). Отдельный символ = присваивает значение, а символ == проверяет, равны ли две вещи.
Давайте попробуем кое-что. Посмотрите на следующий сеанс irb.
Каково значение b в этот момент? Попробуйте предположить, а затем введите этот сеанс в irb, чтобы выяснить это.
Вы заметите, что значение b осталось равным 4, а значение a было изменено на 7. Это показывает, что переменные указывают на значения в памяти и не связаны друг с другом глубоко. Если это сбивает с толку, не волнуйтесь, у нас есть много упражнений для вас, чтобы сделать эту информацию ясной и очевидной. А если сомневаетесь, всегда пробуйте в irb.
Получение данных от пользователя
До сих пор вы могли назначать данные переменным только из программы. Однако на практике вам нужно, чтобы другие люди могли интересным образом взаимодействовать с вашими программами. Для этого мы также должны позволить пользователю хранить информацию в переменных. Затем мы можем решить, что нам делать с этими данными.
Один из способов получить информацию от пользователя — вызвать метод gets. gets означает "получить строку", и это очень весело. Когда вы используете его, программа ждет, пока пользователь 1) введет информацию и 2) нажмет клавишу ввода. Давайте попробуем. Напечатайте эти примеры в irb, чтобы получить представление, и немного поэкспериментируйте с ними, если хотите.
Ну вот! Это намного красивее. Теперь мы можем использовать переменную имени по своему усмотрению.
Область действия переменной
Область действия переменной определяет, где в программе переменная доступна для использования. Область действия переменной определяется тем, где переменная инициализируется или создается. В Ruby область действия переменной определяется определением метода или блоком.
Мы узнаем о методах в следующей главе. На данный момент вы можете думать о методах как о фрагментах многократно используемого кода, которые ваша программа может выполнять много раз во время своего выполнения. Определения методов выглядят следующим образом:
Определив метод, мы можем вызывать его столько раз, сколько нам нужно, с разными значениями для first_name и last_name :
С точки зрения области действия переменных, методы имеют автономную область действия. Это означает, что из тела метода можно ссылаться или изменять только переменные, инициализированные в теле метода. Кроме того, переменные, инициализированные внутри тела метода, недоступны вне тела метода. Это немного похоже на непроницаемый пузырь. Таким образом, в приведенном выше коде мы не можем использовать или изменить переменную имени из строки 1 внутри метода print_full_name. Однако мы можем создать и использовать переменную с другим именем, локально связанную с методом. Вот почему строки 3 и 4 работают без изменения значения имени из строки 1.
Блок – это фрагмент кода, который следует за вызовом метода и ограничен фигурными скобками <> или do/end :
В приведенных выше примерах < |number| . >является блоком, как и do |number| . конец .Хотя они выглядят по-разному, поведение идентично. В обоих случаях код может получать доступ и изменять переменные, определенные вне блока. Таким образом, оба блока могут получить доступ и изменить total . Однако любые переменные, инициализированные внутри блока (например, number ), недоступны для внешнего кода.
Имейте в виду, что не все. концевые пары подразумевают блок. Мы рассмотрим это более подробно в последующих курсах. В частности, делать. конец цикла for или while не является блоком.
Теперь, когда у вас есть представление о том, что представляет собой область действия переменной, мы хотим подчеркнуть одно правило:
Внутренняя область может обращаться к переменным, инициализированным во внешней области, но не наоборот.
Посмотрев на код, вы проясните это. Допустим, у нас есть файл с именем scope.rb .
Каково значение a при выводе на экран? Попробуйте.
Значение a равно 3. Это связано с тем, что a доступно для внутренней области видимости, созданной 3.times do . end , что позволило коду переназначить значение a . На самом деле он трижды переназначал его на 3.
Давайте попробуем что-нибудь другое. Мы изменим исходный код scope.rb:
Какой результат вы получили при запуске этой программы? Вы должны были получить сообщение об ошибке на тему:
Это связано с тем, что переменная b недоступна вне вызова метода с блоком, в котором она инициализирована. Когда мы вызываем puts b, он недоступен в этой внешней области.
* Примечание: ключевой отличительный фактор для принятия решения о том, считается ли код, разделенный символом <> или do/end, блоком (и, таким образом, создается новая область действия для переменных), заключается в том, чтобы увидеть, следует ли <> или do/end сразу за кодом. вызов метода. Например:
Ответ: да. Причина в том, что для. Код do/end не создавал новую внутреннюю область видимости, поскольку for является частью языка Ruby, а не вызовом метода. Когда мы используем each , times и другие вызовы методов, за которыми следует <> или do/end , создается новый блок.
Обратите внимание, что блоки также можно записывать с помощью фигурных скобок, хотя общепринятой практикой является использование их только для однострочников: вызов метода и блок должны располагаться на одной строке. Например, вот приведенный выше цикл времени, переписанный с использованием фигурных скобок:
Блоки фигурных скобок идентичны do. конечные блоки с точки зрения области действия.
Типы переменных
Прежде чем мы продолжим, вы должны знать, что существует пять типов переменных. Константы, глобальные переменные, переменные класса, переменные экземпляра и локальные переменные. Пока вам не следует слишком сильно углубляться в эти темы, вот краткое описание каждой из них.
Константы объявляются путем написания каждой буквы в имени переменной заглавной в соответствии с соглашением Ruby. Они используются для хранения данных, которые никогда не нужно изменять. В то время как большинство языков программирования не позволяют изменять значение, присвоенное константе, Ruby позволяет. Однако он выдаст предупреждение, информирующее вас о том, что для этой переменной было предыдущее определение. То, что вы можете, не означает, что вы должны изменить значение. На самом деле, вы не должны. Константы не могут быть объявлены в определениях методов и доступны во всех областях вашего приложения.
Пример объявления константы:
Глобальные переменные объявляются, когда имя переменной начинается со знака доллара ( $ ). Эти переменные доступны во всем приложении, переопределяя все границы области. Рубисты стараются держаться подальше от глобальных переменных, так как при их использовании могут возникнуть неожиданные сложности.
Пример объявления глобальной переменной:
Переменные класса объявляются, когда имя переменной начинается с двух знаков @. Эти переменные доступны экземплярам вашего класса, а также самому классу. Когда вам нужно объявить переменную, связанную с классом, но каждому экземпляру этого класса не требуется собственное значение для этой переменной, вы используете переменную класса. Переменные класса должны быть инициализированы на уровне класса, вне каких-либо определений методов. Затем их можно изменить с помощью определений методов класса или экземпляра.
Пример объявления переменной класса:
Переменные экземпляра объявляются, когда имя переменной начинается с одного знака @. Эти переменные доступны во всем текущем экземпляре родительского класса. Переменные экземпляра могут пересекать некоторые границы области, но не все из них. Вы узнаете больше об этом, когда доберетесь до тем ООП, и не должны использовать переменные экземпляра, пока не узнаете о них больше.
Пример объявления переменной экземпляра:
Локальные переменные — это наиболее распространенные переменные, с которыми вы столкнетесь, и они подчиняются всем границам области действия. Эти переменные объявляются, начиная имя переменной ни с $, ни с @, а также не используя заглавные буквы во всем имени переменной.
Пример объявления локальной переменной:
Обзор
В этой главе мы говорили о том, как использовать переменные для хранения информации для последующего использования и как получить информацию от пользователя. Мы также показали, что не все переменные созданы одинаковыми и что область, в которой определена переменная, меняет ее доступность во всей программе. Теперь, когда вы знаете о различных типах переменных и о том, как их использовать, давайте применим некоторые из этих знаний на практике с помощью нескольких упражнений.
Упражнения
Напишите программу с именем name.rb, которая просит пользователя ввести свое имя, а затем распечатывает приветственное сообщение с включенным именем.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 2:32
Напишите программу age.rb, которая спрашивает пользователя, сколько ему лет, а затем сообщает, сколько ему будет лет через 10, 20, 30 и 40 лет. Ниже приведены результаты для человека 20 лет.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 3:39
Добавьте еще один раздел в name.rb, который печатает имя пользователя 10 раз. Вы должны сделать это без явного написания метода puts 10 раз подряд. Подсказка: вы можете использовать метод times, чтобы делать что-то повторно.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 2:05
Снова измените name.rb, чтобы он сначала запрашивал у пользователя его имя, сохранял его в переменной, а затем делал то же самое для фамилии. Затем выводит их полное имя сразу.
Решение
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Продолжительность: 2:53
Посмотрите на следующие программы.
Что x выводит на экран в каждом случае? Оба выдают ошибки? Ошибки разные? Почему?
Решение
Первый выводит на экран 3. Второй выдает ошибку: неопределенная локальная переменная или метод, потому что x недоступен, так как он создается в рамках блока do/end.
Видеопрохождение
Для просмотра этого видео включите JavaScript и рассмотрите возможность перехода на веб-браузер, поддерживающий видео в формате HTML5
Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.
Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.
операционная система (ОС), программа, которая управляет ресурсами компьютера, особенно распределением этих ресурсов среди других программ. Типичные ресурсы включают центральный процессор (ЦП), память компьютера, хранилище файлов, устройства ввода-вывода (I/O) и сетевые соединения. Задачи управления включают планирование использования ресурсов, чтобы избежать конфликтов и помех между программами. В отличие от большинства программ, которые выполняют задачу и завершают работу, операционная система работает бесконечно и завершает работу только при выключении компьютера.
Современные многопроцессорные операционные системы позволяют активировать множество процессов, где каждый процесс представляет собой «поток» вычислений, используемый для выполнения программы. Одна из форм многопроцессорной обработки называется разделением времени, что позволяет многим пользователям совместно использовать доступ к компьютеру, быстро переключаясь между ними. Разделение времени должно защищать от помех между программами пользователей, и в большинстве систем используется виртуальная память, в которой память или «адресное пространство», используемое программой, может находиться во вторичной памяти (например, на магнитном жестком диске), когда не используется в данный момент, чтобы его можно было заменить обратно, чтобы по требованию занять более быструю основную память компьютера. Эта виртуальная память увеличивает адресное пространство, доступное для программы, и помогает предотвратить вмешательство программ друг в друга, но требует тщательного контроля со стороны операционной системы и набора таблиц распределения для отслеживания использования памяти. Пожалуй, самой деликатной и критической задачей для современной операционной системы является выделение центрального процессора; каждому процессу разрешается использовать ЦП в течение ограниченного времени, которое может составлять доли секунды, а затем он должен отказаться от управления и приостановиться до следующего хода. Переключение между процессами само по себе должно использовать ЦП при защите всех данных процессов.
Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.
У первых цифровых компьютеров не было операционных систем. Они запускали одну программу за раз, которая распоряжалась всеми системными ресурсами, а оператор-человек предоставлял любые необходимые специальные ресурсы. Первые операционные системы были разработаны в середине 1950-х гг. Это были небольшие «программы-супервизоры», которые обеспечивали базовые операции ввода-вывода (такие как управление считывателями перфокарт и принтерами) и вели учет использования ЦП для выставления счетов. Программы супервизора также предоставляли возможности мультипрограммирования, позволяющие запускать несколько программ одновременно. Это было особенно важно, чтобы эти первые многомиллионные машины не простаивали во время медленных операций ввода-вывода.
Компьютеры приобрели более мощные операционные системы в 1960-х годах с появлением разделения времени, которое требовало системы для управления несколькими пользователями, совместно использующими процессорное время и терминалы. Двумя ранними системами разделения времени были CTSS (совместимая система разделения времени), разработанная в Массачусетском технологическом институте, и базовая система Дартмутского колледжа, разработанная в Дартмутском колледже. Другие многопрограммные системы включали Atlas в Манчестерском университете, Англия, и IBM OS/360, вероятно, самый сложный программный пакет 1960-х годов. После 1972 года система Multics для компьютера General Electric Co. GE 645 (а позже и для компьютеров Honeywell Inc.) стала самой сложной системой с большинством возможностей мультипрограммирования и разделения времени, которые позже стали стандартными.
У мини-компьютеров 1970-х годов был ограниченный объем памяти и требовались операционные системы меньшего размера. Самой важной операционной системой того периода была UNIX, разработанная AT&T для больших миникомпьютеров как более простая альтернатива Multics. Он стал широко использоваться в 1980-х годах, отчасти потому, что он был бесплатным для университетов, а отчасти потому, что он был разработан с набором инструментов, которые были мощными в руках опытных программистов. Совсем недавно Linux, версия UNIX с открытым исходным кодом, разработанная частично группой под руководством финского студента информатики Линуса Торвальдса и частично группой под руководством американского программиста Ричарда Столлмана, стала популярной как на персональных компьютерах, так и на большие компьютеры.
Помимо таких систем общего назначения, на небольших компьютерах работают специальные операционные системы, управляющие сборочными линиями, самолетами и даже бытовой техникой. Это системы реального времени, предназначенные для обеспечения быстрого реагирования на датчики и использования их входных данных для управления механизмами. Операционные системы также были разработаны для мобильных устройств, таких как смартфоны и планшеты. iOS от Apple Inc., работающая на iPhone и iPad, и Android от Google Inc. — две известные мобильные операционные системы.
С точки зрения пользователя или прикладной программы операционная система предоставляет услуги. Некоторые из них представляют собой простые пользовательские команды, такие как «dir» — показать файлы на диске, а другие — низкоуровневые «системные вызовы», которые графическая программа может использовать для отображения изображения. В любом случае операционная система обеспечивает соответствующий доступ к своим объектам, таблицам расположения дисков в одном случае и подпрограммам для передачи данных на экран в другом. Некоторые из его подпрограмм, управляющие процессором и памятью, обычно доступны только другим частям операционной системы.
Современные операционные системы для персональных компьютеров обычно имеют графический интерфейс пользователя (GUI). Графический интерфейс пользователя может быть неотъемлемой частью системы, как в старых версиях Mac OS от Apple и ОС Windows от Microsoft Corporation; в других случаях это набор программ, которые зависят от базовой системы, как в системе X Window для UNIX и Mac OS X от Apple.
Операционные системы также предоставляют сетевые службы и возможности обмена файлами — даже возможность совместного использования ресурсов между системами разных типов, такими как Windows и UNIX. Такое совместное использование стало возможным благодаря внедрению сетевых протоколов (правил связи), таких как TCP/IP в Интернете.
Читайте также: