АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Задача 10

Читайте также:
  1. VI. Общая задача чистого разума
  2. Вопрос 2 Проверка и оценка в задачах со случайными процессами на примере решения задач экозащиты, безопасности и риска.
  3. Глава 10 Системный подход к задачам управления. Управленческие решения
  4. ГЛАВА 2.1. ЗАЩИТА ИННОВАЦИЙ КАК ЗАДАЧА УПРАВЛЕНИЯ ИННОВАЦИОННЫМИ ПРОЦЕССАМИ
  5. Глава 4. Математические основы оптимального управления в экономических задачах массового обслуживания
  6. Двойственная задача линейного программирования.
  7. Доклад о задачах власти Советов
  8. Доклад об экономическом положении рабочих Петрограда и задачах рабочего класса на заседании рабочей секции Петроградского совета рабочих и солдатских депутатов
  9. Задача 1
  10. Задача 1
  11. Задача 1
  12. ЗАДАЧА 1

Определить, для какого числа X, принимающего значения: 1, 2, 3 или 4,истинно высказывание:

Ответ: 4


Глава II. Математические и программные средства информатики

§1.Алгоритм и формы его представления

Алгоритмы могут описывать процессы преобразования самых различных объектов. Наиболее широкое распространение получили вычислительные алгоритмы, которые описывают преобразования числовых данных. Само слово «алгоритм» происходит от algorithmi – латинской формы написания имени выдающегося математика IX века аль-Хорезми, который сформулировал правила выполнения арифметических операций.

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

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

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

Алгоритм, записанный на «понятном» для компьютера языке программирования, называется программой.

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

В начале компьютерной эры, 50-е годы ХХ века, программы писались на машинном языке и представляли собой очень длинные последовательности кодов команд, выполняемых вычислительной машиной. Составление и отладка таких программ было чрезвычайно трудоёмким делом.

В 60-70-е годы для облегчения труда программистов начали создаваться языки программирования высокого уровня, формальные языки, кодирующие алгоритмы в привычном для человека виде (в виде предложений). Такие языки программирования строились на основе использования определённого алфавита и строгих правил построения предложений (синтаксиса).

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

Одним из первых процедурных языков программирования был Бейсик (Basic), созданный в 1964 году. В течение последующего времени Бейсик развивался, появлялись его различные версии (MSX-Basic, Бейсик-Агат, QBasic и др.). Другим широко распространённым языком программирования алгоритмического типа является Pascal.

В настоящее время наибольшей популярностью пользуются системы объектно-ориентированного визуального программирования Microsoft Visual Basic и Borland Delphi. Для создания приложений в среде Windows&Office используется язык программирования Visual Basic for Applications (VBA).

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

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

Для того чтобы сделать алгоритм более наглядным, часто используют блок-схемы.

Рис. 5 Блок-схема линейного алгоритма

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

Рис. 6. Алгоритмическая структура «ветвление»

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

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

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

Условные выражения могут быть простыми и сложными. Простое условие включает в себя два числа, две переменных или два арифметических выражения, которые сравниваются между собой с использованием операции сравнения (равно, больше, меньше и т. д.). Например: 5>2, 2∙8=4∙4 и т. д. Алгоритмическая структура «ветвление» может быть задана графически с помощью блок схемы (рис. 6).

Рис. 7. Алгоритмическая структура «выбор»

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

Алгоритмическая структура «выбор» может быть задана графически с помощью блок схемы (рис. 7).

В алгоритмическую структуру «цикл» входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла. Циклические алгоритмические структуры бывают двух типов:

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

· Циклы с условием, в которых тело цикла выполняется до тех пор, пока условие истинно.

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

Алгоритмическая структура «цикл со счётчиком» может быть задана графически с помощью блок схемы (рис. 8).

Рис. 8. Алгоритмическая структура «цикл со счётчиком»

 

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

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

Алгоритмическая структура «цикл с предусловием» может быть задана графически с помощью блок схемы (рис. 9).

Рис. 9. Алгоритмическая структура «цикл с предусловием»

Условие выхода из цикла можно поставить в конце, после тела цикла. Такой цикл называется цикл с постусловием (рис 10).

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

Рис. 10. Алгоритмическая структура «цикл с постусловием»

Структурное программирование [structured programming] - это методология программирования, направленная на создание логически простых и понятных программ. Структурное программирование основано на предположении, что логичность и понятность программы облегчает разработку, доказательство правильности и последующее сопровождение программы, а также обеспечивает ее надежность.

Модульный принцип программирования [modular programming] – это способ разработки программ, при котором программа разбивается на относительно независимые составные части — программные модули. При этом каждый модуль может разрабатываться, программироваться, транслироваться и тестироваться независимо от других. Внутреннее строение модуля для функционирования всей программы, как правило, значения не имеет. При модификации алгоритма, реализуемого модулем, структура программы не должна меняться.

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

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

Во – первых она должна работать правильно, т. е. не просто выполнять нужные действия, но и выполнять их правильно.

Во – вторых, любую программу должно быть легко изменить (модифицировать).

Правильность и лёгкость модификации достигаются за счёт применения структурного подхода к программированию. Этот метод называют пошаговой детализацией или методом программирования «сверху вниз».

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

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

Цель: нарисовать квадрат со стороной 10 (условных единиц) и вставить в исходное положение.

Запись на естественном языке:

1) нарисовать линию длиной 10 – первую сторону квадрата;

2) повернуть направо на 90 градусов;

3) повторить ещё три раза пункты 1 и 2.

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

Таблица 11. Обозначения основных типов блоков в блок-схемах.

Вид Название
Начало и конец алгоритма
Ввод-вывод в общем виде
Задание и проверка условий
Процесс, выполнение единичной команды
Начало цикла
Вывод результатов на печать

Разрабатывая некоторые детали программы, иногда прибегают к другому методу, называемому «снизу вверх». При этом пользователь как бы забегает вперёд, предугадывает, что надо будет выполнить на нижних уровнях и записывает сразу это на языке программирования.

§2. Решение задач на составление блок-схем

Задача 1:

Между населёнными пунктами Таблица 12

A, B, C, D, E, F построены дороги, протяжённость которых приведена в таблице 12. (Отсутствие числа в таблице означает, что прямой дороги между пунктами нет.)

Определите длину кратчайшего пути между пунктами A и F (при условии, что передвигаться можно только по построенным дорогам).
Решение:

Данный тип задач проще решать, если нарисовать схему. И двигаясь по различным маршрутам, найдем минимальный из них.

От F до E только один маршрут 2 км. Рис. 11

От Е три маршрута до B, C и D. Отбрасываем BE и CD-DE так как на этих маршрутах имеются более короткие пути. Таким образом, остается путь длинной 9 (см. рис. 11).

Задача 2:

Даны две переменные А и В; требуется выбрать переменную с большим значением. Значения переменных будут задаваться вводом. Значение большего из них должно быть присвоено переменной С и выведено на экран компьютера. Переменная А = 5, В = 8. Задачу решить с помощью блок – схемы.

Решение: Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем В, то переменной С присвоится значение А.

 

В противном случае, когда А < В, переменной С присвоится значение В. Условием, по которому разветвляется алгоритм, является отношение неравенства А > В. Если оно справедливо, то результатом будет логическая величина " истина " и выполнение алгоритма продолжится по ветви " да "; в противном случае логическое выражение примет Рис. 12

значение " ложь " и выполнение алгоритма пойдет по ветви " нет " (Рис. 12).

Задача 3:

Определите значение переменной b после выполнения фрагмента алгоритма, блок-схема которого представлена на рисунке 13.

Примечание: знаком:= обозначена операция присваивания.

знаком · обозначена операция умножения.

Рис. 13.

Задача 4:

Даны переменные A = -2 и B = -10. Определить значения этих переменных после выполнения следующего алгоритма (Рис. 14).

Рис. 14

Ответ: A = -2, B = 8

Задача 5:

Задан алгоритм программы:

X:= 5;

Z:= 7;

вывод (“ X = ”, X < Z, ” X = ”, X > Z, Z + X).

Определить, что будет выведено на экран в результате его выполнения?

Ответ: X = TRUE X = TRUE12

Задача 6:

Определить значение переменно z после выполнения фрагмента алгоритма, если заданы начальные значение переменных x = 1, y = -1;

1. z = 0

2. если x > 0 то если y > 0 то z = 1 иначе y = 2

Ответ: z = 0

 

 

Задача 7:

Вычислить, чему будет равно значение переменных c и d, после выполнения над ними следующих действий: c:= 5; d:= 7; c:= c – d; d:= 7 · d; d:= c – d;

Ответ: с = -1; d = -51;

Задача 8:

В результате работы алгоритма: Y:= X + 5; X:= Y; Y:= X + Y; переменная Y приняла значение 14. Определить, каким было значение переменной X до начала работы алгоритма?

Ответ: 2

Задача 9:

Задан фрагмент реализации алгоритма цикла с предусловием:

пока <условие>

нц (начало цикла)

действие

кц (конец цикла)

Определить, какой оператор обязательно должен содержаться внутри цикла?

Ответ: оператор, изменяющий переменные, относительно которых сформулировано условие повторения цикла.

Задача 10:

Вычислить значение переменой Y, после выполнения фрагмента алгоритма: Y:= X ^ 3 + B · C + A, при условии что значения X, A, B, C изначально равны 3, 2048, 2047 и -1 соответственно.

Ответ: 28


§3. Алгоритмический язык

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примером алгоритмического учебного языка (псевдокода) является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. "Основы информатики и вычислительной техники", 1991. Этот язык в дальнейшем мы будем называть просто " алгоритмический язык ". Основные служебные слова алгоритмического языка представлены в таблице 13.

Таблица 13

алг (алгоритм) сим (символьный) дано для да
арг (аргумент) Лит (литерный) надо от нет
рез (результат) лог (логический) если до при
нач (начало) таб (таблица) то знач выбор
кон (конец) нц (начало цикла) иначе и ввод
цел (целый) кц (конец цикла) все или вывод
вещ (вещественный) длин (длина) пока не утв

 

Часть алгоритма от слова алг до слова нач называется заголовком, а часть, заключенная между словами нач и кон - телом алгоритма.

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

 

Примеры предложений алг:

алг Объем и площадь цилиндра (арг вещ R, H, рез вещ V, S)

алг Корни КвУр(арг вещ а, b, c, рез вещ x1, x2, рез лит t)

алг Исключить элемент(арг цел N, арг рез вещ таб А[1:N])

алг Диагональ(арг цел N, арг цел таб A[1:N,1:N], рез лит Otvet)

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

1. алг Замена (арг лит Str1, Str2, арг рез лит Text)

дано | длины подстрок Str1 и Str2 совпадают

надо | всюду в строке Text подстрока Str1 заменена на Str2

2. алг Число максимумов (арг цел N, арг вещ таб A[1:N], рез цел K)

дано | N >0

надо | К - число максимальных элементов в таблице А

3. алг Сопротивление (арг вещ R1, R2, арг цел N, рез вещ R)

дано | N>5, R1>0, R2>0

надо | R - сопротивление схемы

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

Оператор присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А:= В, где знак ":=" означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.

Например, a:= (b + c) · sin(Pi / 4); i:= i + 1.

Для ввода и вывода данных используют команды

Ø ввод имена переменных

Ø вывод имена переменных, выражения, тексты.

Для ветвления применяют команды если и выбор, для организации циклов - команды для и пока.

Пример записи алгоритма на алгоритмическом языке:

алг Сумма квадратов (арг цел n, рез цел S)

дано | n > 0

надо | S = 1 · 1 + 2 · 2 + 3 · 3 +... + n · n

нач цел i

ввод n; S:= 0

нц для i от 1 до n

S:= S + i · i

кц

вывод "S = ", S

кон

 


§4. Решение задач на применение алгоритмического языка

Задача 1:

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

нц для i от 0 до 9

A[i]:= 9 – i

кц

нц для i от 0 до 4

k:= A[i]

A[i]:= A[9 – i]

A[9 – i]:= k

кц

Решение:

Для решения данной задачи следует понимать основы программирования и в частности понятия массивы и циклы. Построим таблицу с данными, которая иллюстрирует выполнение интераций. В первом столбе таблицы указан порядковый номер шага циклов (значение переменной i), в столбцах таблицы приведены значения элемента массива на каждом шаге цикла. В первом цикле переменная i изменяется от 0 до 9 с шагом 1. При значении переменной i = 0 значение элемента массива A имеющего номер 0 становится равным 9, при значении i = 1, значение элемента массива A имеющего номер 1 становится равным 8 и т.д. Таким образом после завершения первого цикла массив А становится заполненным последовательностью цифр: 9876543210. Во втором цикле переменная i изменяется от 0 до 4 с шагом 1. При значении переменной i = 0 значение элемента массива A имеющего номер 0 становится равным 0, а элемента массива A имеющего номер 9 становится равным 9. При значении i = 1, значение элемента массива A имеющего номер 1 становится равным 1, а элемента массива A имеющего номер 8, равным 8 и т.д.

Ответ: 0123456789.

Задача 2:

Дан фрагмент программы, обрабатывающей двухмерный массив A размера n×n. Что делает данный алгоритм?

k:= 1

нц для i от 1 до n

c:= A[i, i]

A[i, i]:= A[k, i]

A[k, i]:= c

кц

Решение:

Представим массив в виде квадратной таблицы, в которой для элемента массива A [ i, j ] величина i является номером строки, а величина j – номером столбца, в котором расположен элемент. Тогда данный алгоритм меняет местами элементы диагонали и k-го столбца таблицы.

Ответ: данный алгоритм меняет местами элементы диагонали и k-го столбца таблицы.

Задача 3:

Определите значение целочисленных переменных a и b после выполнения фрагмента программы (div и mod – функции, вычисляющие результат деления нацело первого аргумента на второй и остаток от деления соответственно):

агл

a:= 3 + 8 · 4

b:= div(a, 10) + 14

a:= mod(b, 10) + 2

кон

Ответ: 9

Задача 4:

Значения двух массивов A [ 1..100 ] и B [ 1..100 ] задаются с помощью следующего фрагмента программы:

нц для n от 1 до 100

A [ n ] := (n - 80) * (n - 80)

кц

нц для n от 1 до 100

B [ 101 - n ] := A [ n ]

кц

Вычислить, какой элемент массива B будет наибольшим?

Ответ: 100

Задача 5:

Даны две числовые переменные X:= 5 и Y:= 7. Определить, результат, который будет выведен на экран после выполнения программы, записанной на алгоритмическом языке.

алг

X:= 5

Y:= 7

вывод (“X = ”, X < Y, ”X = ”,Y > X, X + Y)

кон

Ответ: X = TRUE,X = TRUE12

Задача 6:

В программе на алгоритмическом языке программирования производится вычисление суммы положительных чисел, из 20 введённых с клавиатуры. Необходимо определить, какая часть программы пропущена?

алг

S:= 0;

нц для i от 1 до 20

ввод a

если a > 0

то _____

всё

кц

вывод S

кон

Ответ: S:= S + a

Задача 7:

Вычислить значение переменной d после выполнения фрагмента алгоритма (операция mod (x, y) – получение остатка целочисленного деления x на y).

алг

k:= 50

выбор

при mod(k,12) = 7: d:= k;

при mod(k,12) < 5: d:= 2;

при mod(k,12) > 9: d:= 3;

иначе d:= 1;

всё

кон

Ответ: d = 2

Задача 8:

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

алг

Y:= X + 5

X:= Y

Y:= X + Y

вывод Y

кон

Ответ: 2

Задача 9:

Выполняется алгоритм, написанный на алгоритмическом языке программирования. Требуется определить значение переменной Y, после ввода значений четырёх переменных: X:= 3, A:= 2048, B:= 2047, C:= -1.

алг

ввод X, A, B, C

Y:= X^3+B · C+A

вывод Y

кон

Ответ: 28

Задача 10:

В программе на алгоритмическом языке программирования выполняется цикл с предусловием. Значение переменной B:= 10, переменной D:= 30. Определить значение переменной D после окончания выполнения цикла.

алг

B:= 10

D:= 30

нц пока D >= B

D:= D – B

кц

кон

Ответ: 0


§5. Программные средства реализации информационных процессов

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

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

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

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

Операционная система MS-DOS (ОС MS-DOS), MS – это разработанная фирмой Microsoft операционная система персональных IBM-совместимых компьютеров.

MS-DOS 6.0 обеспечивает следующие основные операции:

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

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

· управление процессом выполнения операций, управление внешними устройствами,

· обработку запросов ввода-вывода,

· буферизацию, блокировку данных, планирование и обработку прерываний,

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

· доступ к верхней и дополнительной памяти,

· диспетчеризацию очередей и многое другое.

Операционная система UNIX – это интегрированная многозадачная операционная система, предоставляющая пользователю удобный язык команд и диалоговый интерфейс. Первоначально разработана в начале 70-х годов специалистами фирмы Bell Laboratories для ЭВМ серии PDP-11. В дальнейшем получила широкое распространение на ЭВМ различных классов и типов. Выделенная мобильная основная часть OS UNIX, написанная на языке Си, обеспечивает ее переносимость и переносимость программ, разработанных под UNIX, на машины с различными системами команд. В ОС UNIX впервые реализованы три основные концепции операционных систем: файловой системы, процесса и оболочки. Файловая система хранения программ, данных и текстов обеспечивает единый интерфейс всех видов ввода-вывода, а также средства защиты от аппаратных сбоев и несанкционированного доступа. Оболочка операционной системы имеет удобные средства диалога пользователя с системой, включая язык (SHELL, CSHELL), позволяющий создавать новые команды, изменяя и подстраивая пользовательский интерфейс по желанию пользователя.

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

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

Таблица 14.

Название программы Назначение программы
Архивация данных Позволяет производить резервное копирование важных данных
Дефрагментация диска Позволяет повысить быстродействие системы за счёт дефрагментации диска
Очистка диска Позволяет увеличить свободное дисковое пространство за счёт удаления временных файлов
Преобразование диска в FAT 32 Позволяет уменьшить потери дискового пространства за счёт уменьшения размера кластера
Проверка диска Позволяет восстановить файловую систему после сбоя или неправильного выключения компьютера
Сведения о системе Позволяет получить информацию о системе и её настройках
Сжатие данных Позволяет увеличить дисковое пространство за счёт сжатия данных

 

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

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

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

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

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

В персональных IBM-совместимых компьютерах файлы хранятся на магнитных дисках и рассматриваются в процессах ввода или вывода данных как единое целое.

Управление файлами обеспечивает файловая система- часть операционной системы компьютера. Работа с персональным компьютером — это работа с файлами.


§6. Ответы на вопросы

Вопрос 1:

Какая из программ: Антивирус Касперского, Borland Delphi, драйвер управления монитором или AdobePhotoshop является прикладной?

Решение:

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

Ответ: AdobePhotoshop

Воспрос 2:

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

Решение:

Термин «интерфейс» широко используется в областях, где человеку приходится иметь дело с обработкой информации на компьютере. В переводе с английского языка Interface означает внешнее лицо. В компьютерном мире известно множество разновидностей интерфейсов: интерфейс пользователя, графический интерфейс, интерфейс ввода-вывода, внешний или внутренний интерфейс, интеллектуальный интерфейс, человеко-машинный интерфейс, программный интерфейс и др.
Интерфейс – совокупность средств и правил, которые обеспечивают взаимодействие устройств, программ и человека.
Основная функция всех операционных систем – посредническая. Она заключается в обеспечении нескольких видов интерфейса: интерфейса между пользователем и программно-аппаратными средствами компьютера (интерфейс пользователя);интерфейса между программным и аппаратным обеспечением (аппаратно-программный интерфейс);интерфейса между разными видами программного обеспечения (программный интерфейс).

Ответ: аппаратно-программный интерфейс

Вопрос 3:

Дана маска для имени файла: k*t.d*. Какое имя файла: kot.d, kotenok.doc, kit_kat.dll или kompot.docx не удовлетворяет указанному шаблону?

Ответ: kotenok.doc

Вопрос 4:

К чему приведёт выполнение представленной на рисунке операции в Microsoft Office Word?

Ответ: изменение начертания шрифта.

Вопрос 5:

При каком действии указатель мыши в MS Excel имеет вид ?

Ответ: при изменении ширины столца.

 

Вопрос 6:

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

Ответ: 7, 2, 5, 8, 3, 4, 6


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



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