4912

Алгоритмы и основы программирования

Практическая работа

Информатика, кибернетика и программирование

Алгоритмы и основы программирования. Краткое содержание: Этапы создания компьютерной программы. Понятие алгоритма. Виды алгоритмов. Представление алгоритмов в виде блок-схем. Понятие о программировании. Системы и языки программирования. Запись алгор...

Русский

2012-11-29

651.5 KB

198 чел.

Алгоритмы и основы программирования.

Краткое содержание: Этапы создания компьютерной программы. Понятие алгоритма. Виды алгоритмов. Представление алгоритмов в виде блок-схем. Понятие о программировании. Системы и языки программирования. Запись алгоритма на языке программирования. Трансляторы: компиляторы и интерпретаторы. Интерпретатор Quick Basic. Запуск интерпретатора и структура окна. Алфавит языка. Переменные и зачем они нужны. Типы переменных и их запись. Способы объявления переменных. Задание значений переменным. Оператор присваивания. Запись чисел, строк. Арифметические операторы и выражения. Ввод программы. Запуск программы. Исправление ошибок. Сохранение и открытие файлов. Справочная система. Ввод данных. Стандартные функции языка программирования и их использование в арифметических выражениях. Примеры составления простейших линейных программ. Вывод информации на экран. Операторы вывода. Средства расположения информации на экране. Оператор очистки экрана. Комментарии. Константы. Разветвляющиеся алгоритмы. Условный переход IF -THEN - ELSE. Виды условий. Операторы сравнения. Логические операторы и выражения. Сложные условия. Примеры программ с условными операторами. Циклические алгоритмы. Организация циклов с помощью условных операторов. Цикл с параметром FOR. Циклы с предусловием и постусловием. Вложенные циклы. Примеры организации циклических процессов.

Пояснение по теме 7.

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

- проектирование программы,

- написание программы,

- тестирование и отладка программы.

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

Слово «алгоритм» происходит от имени математика Аль-Хорезми, который сформулировал правила выполнения арифметических операций.

Определения алгоритма: 

  •  система правил, описывающая последовательность действий, которые необходимо выполнить для решения задачи
  •  точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.

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

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

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

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

1. Понятность, т. к. он составляется из команд, входящих в СКИ, и точность – каждая команда алгоритма управления определяет однозначное действие исполнителя.

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

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

4.  массовость - свойство алгоритма, которое характеризует пригодность алгоритма для решения задач некоторого класса.

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

Виды алгоритмов:

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

Исходными данными для построения алгоритмов, независимо от способов их написания, являются:

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

- способ (метод) решения задачи.

Алгоритм может быть описан (формализован) по некоторым правилам посредством конкретных изобразительных средств.

Основные способы записи (формализации) алгоритма:

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

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

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

Перечень символов, их наименование, отображаемые ими функции, форма и размер определяются правилами ГОСТ и представлен на рисунке 1.

Рисунок 1. Некоторые элементы блок-схем алгоритмов.

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

При всем многообразии алгоритмов решения задач выделяют три основных вида вычислительных процессов и соответствующих типов алгоритмов:

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

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

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

Цикл – это многократно повторяемый участок вычислений. Имеются циклы с определенным (заранее заданным) числом повторений и с неопределенным числом повторений.

Количество повторений зависит от соблюдения условия. Если проверка условия идет в начале цикла, то такой цикл называется с предусловием, в конце - с постусловием.

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

Основной графический блок проверки по условию показан на рисунке 2.

Рисунок 2. Графический  блок проверки по условию.

                          Цикл  с  параметром

 

Рисунок 3. Блок- схемы типов алгоритмов и разновидностей алгоритмов.

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

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

  1.  Выявить исходные данные, результаты, назначить им имя.
  2.  Выбрать метод (порядок) решения задачи.
  3.   Разбить метод решения задачи на этапы (с  учётом возможностей ПК) для графического представления алгоритма.
  4.   Изобразить каждый этап в виде соответствующего блока схемы алгоритма и указать линиями связи  порядок их выполнения.
  5.  В полученной схеме при любом варианте вычисления:

а) предусмотреть выдачу результатов или сообщений об их отсутствии;

б)обеспечить возможность после выполнения любой операции так или иначе перейти к блоку « конец».  

 Основные типы алгоритмических структур

1.Линейный алгоритм

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

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

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

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

В алгоритмической структуре «ветвление» та или иная серия команд выполняется в зависимости от истинности условия.

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

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

Алгоритмическая структура «ветвление» может быть зафиксирована различными способами:

  •  графически, с помощью блок-схемы;
  •  на языке программирования, например, на языках Visual Basic и VBA c использованием специальной инструкции ветвления (оператора условного перехода).

После первого ключевого слова ( If ) должно быть размещено условие. После второго ключевого слова ( Then ) последовательность команд ( серия 1 ), которая должна выполняться, если условие принимает значение «истина». После третьего ключевого слова  (Else) размещается последовательность команд  (серия 2), которая должна выполняться, если условие принимает значение «ложь»

Блок-схема

Языки программирования Visual Basic и VBA

 If  Условие Then

Серия 1

 Else

Серия 2

End If

If Условие

Then Серия 1

 Else Серия 2

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

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

 В многострочной форме он записывается с помощью инструкции

If… Then… Else… End If (ЕслиТо…Иначе… Конец Если). В этом случае ключевое слово Then размещается на той же строчке, что и условие, а последовательность команд (серия 1) – на следующей. Третье ключевое слово Else размещается на третьей строчке, а последовательность команд (серия 2) – на четвёртой. Конец инструкции End If размещается на пятой строчке.

 В однострочной форме он записывается с помощью инструкции

 IfThenElse… (Если… ТО… Иначе…). Если инструкция не помещается на одной строке, она может быть разбита на несколько строк. Такое представление инструкций более наглядно для человека. Компьютер же должен знать, что разбитая на строки инструкция представляет единое целое. Это обеспечивает знак «переноса», который задаётся символом «переноса», который задаётся символом подчёркивания после пробела « _». Третье ключевое слово Else в сокращённой форме инструкции может отсутствовать. (Необязательные части оператора записываются в квадратных скобках). Тогда, в случае, если условие ложно, выполнение оператора условного перехода заканчивается и выполняется следующая строка программы.

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

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

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

На языках программирования Visual Basic и VBA инструкция выбора начинается с ключевых слов  Select Case, после которых записывается выражение   ( переменная, арифметическое выражение и так далее). После ключевых слов Case заданное выражение сравнивается с определёнными значениями – записываются условия, при истинности одного из которых начинает выполняться серия команд. Заканчивается инструкция ключевыми словами End Select.

              

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

Блок-схема

Языки программирования Visual Basic и VBA

 Case Выражение

Case Условие 1

Серия 1

Case  Условие 2

Серия 2

Case Else

Серия 

End Select

 

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

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

Циклические алгоритмические структуры бывают двух типов:

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

В алгоритмической структуре «цикл» серия команд (тело цикла) выполняется многократно.

Алгоритмическая структура «цикл» может быть зафиксирована различными способами:

  •  графически – с помощью блок-схемы;
  •  на языке программирования, например, на языках Visual Basic и VBA

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

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

Блок-схема

Языки программирования Visual Basic и VBA

For Счётчик = НачЗнач То КонЗнач Step шаг

Тело цикла

Next   Счётчик

Синтаксис оператора ForNext следующий: строка, начинающаяся с ключевого слова For, является заголовком цикла, а строка с ключевым словом  Next – концом цикла, между ними располагаются операторы, являющиеся телом цикла.

В начале выполнения цикла значение переменной устанавливается

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

 Цикл с условием. Часто бывает так, что необходимо повторить тело цикла, но заранее не известно, какое количество раз надо это сделать. В таких случаях количество повторений зависит от некоторого условия. Такой цикл реализуется с помощью инструкции  Do…  Loop.

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

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

Цикл с предусловием.

Блок-схема

Языки программирования Visual Basic и VBA

 

 Do  While Условие

Тело цикла

Loop

Do Until Условие

Тело цикла

 Loop

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

Условие выхода из цикла можно поставить в конце, после тела цикла. Такой цикл называется циклом с постусловием. Этот  цикл реализуется также с помощью инструкции Do Loop.

 Проверка условия выхода из цикла проводится с помощью ключевых слов While и Until.

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

Блок-схема

Языки программирования Visual Basic и VBA

 

 Do  

Тело цикла

Loop While  Условие

Do 

Тело цикла

 Loop Until  Условие

При создании блок - схемы алгоритма нужно знать следующее

Блок-схема

Наиболее часто употребляемые блочные символы

Название символа

Графическое изображение

Комментарии

Пуск/Останов (блоки начала и конца алгоритма)

Указание на начало или конец алгоритма

Ввод/Вывод (блоки ввода, вывода)

Организация ввода/вывода в общем виде

Процесс (операторные блоки)

Выполнение вычислительного действия или

последовательности действий

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

Условие ( условный блок)

да                      нет

Выбор направления выполне-ния алгоритма. Если условие,

записанное внутри ромба, выполняется, то управление передаётся по стрелке «да», в противном случае – по стрелке «нет». Таким образом, реализуется процесс изменения последовательности вычислений в зависимости от выполнения условия

Начало цикла с параметром

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

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

Предопределённый процесс

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

Печать сообщений

Вывод результатов на печать

Условия, которые требуют проверки при составлении блок-схемы.

Из каждого прямоугольника и параллелограмма (кроме конца алгоритма) должна выходить только одна стрелка.

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

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

Знакомство с разработкой непосредственно программ необходимо начинать с терминологии.

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

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

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

Языки программирования являются разнообразными знаковыми системами для записи алгоритмов и выполняют две основные взаимосвязанные задачи:

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

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

Система программирования – это совокупность различных программ, используемых для автоматизации  процессов программирования сценариев работы ЭВМ.

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

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

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

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

Основные недостатки машинно-ориентированных языков заключаются в сложности написания на них программы.

От этих недостатков избавлены машинно-независимые языки (высокого уровня), которые делятся на следующие виды:

  •  процедурно-ориентированные (средства записи процедур или алгоритмов обработки информации для определенного круга задач) – Fortran, Basic, Pascal, C,
  •  проблемно-ориентированные (средства для новых классов задач, например, в экспертных системах и системах искусственного интеллекта) - Lisp, Prolog,
  •  объектно-ориентированные (средства развития процедурных и проблемных языков для классов предметных областей) – Visual Basic (аналог Basic), Delphi (аналог Pascal),  Visual Fortran (аналог Fortran), С++, Prolog++.

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

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

Трансляторы подразделяются на два основных вида программ:

- интерпретаторы, проверяющие и выполняющие исходный код построчно по шагам,

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

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

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

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

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

Таблица 1 – Алфавит языков программирования

Символы

Наименование

A - Z, a - z

Заглавные и прописные буквы

0 - 9

цифры

пробелы

!

Восклицательный знак

#

диез

%

Знак процента

&

Знак амперсанда

$

Знак доллара

     «

Двойные  кавычки

Апостроф  (одинарная кавычка)

.

точка

,

запятая

?

Вопросительный знак

;

Точка с запятой

:

двоеточие

+

Знак плюс

-

Знак минус

*

Знак Asterisk

/

Наклонная черта (слеш)

\

Обратная наклонная черта (обратный слеш)

^

Знак вставки

=

Знак равенства

<

Знак меньше

>

Знак больше

( )

Левая и правая скобки

_

Знак подчеркивания

̃̃

˜

Тильда

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

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

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

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

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

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

Выражение – это запись, которая определяет последовательность действий над величинами.

В общем случае, величины (обычно переменные) разделяют на следующие типы:

- целые (целочисленные),

- вещественные,

- символьные,

- логические.

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

Пример записи (объявления) величины или так называемый формат:

<имя величины> : <тип величины>

Символьные переменные иначе называют текстовыми или строковыми (от английского слова string). Для строковых переменных существуют следующие понятия:

- длина строки,

- пустая строка,

- конкатенация.

Длина строки (текста) – число символов, составляющих текст, включая пробелы и знаки препинания.

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

Конкатенация – объединение (склеивание) двух последовательностей в одну. Ее можно толковать как последовательное сложение символов текста (строк).

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

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

В программировании существует такое важное понятие, как команда или оператор присваивания.

Оператор (команда) присваивания – команда исполнителя, в результате которой переменная получает новое имя.

Формат команды присваивания (знаки := используются не во всех языках):

<имя переменной> := <выражение>.

Оператор присваивания применяется для наименования как числовых, так и текстовых данных.

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

Отрицательные числа имеют знак минус, числа без знака считаются положительными.

Дробная часть числа от целой отделяется, как правило, точкой, а не запятой.

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

Примеры записи числовых данных:

Целое положительное число– 15238,

Целое отрицательное  число– -15238,

Действительное число –          15238.325,

Действительное большое число – 5689000000.0 = 5.689 * 109 = 5.689Е+9,

Действительное малое число – 0.000000419 = 4.19 * 10-9 = 4.19Е-9.

Текст в программах записывается в кавычках, которые называются ограничителями. Ограничители служат для определения начала и конца текстового выражения, помещаемого в программу.

В качестве ограничителей используются, как правило, одинарные кавычки, но в некоторых языках – двойные кавычки.

Над числовыми данными совершаются вычисления – действия, которые обозначаются соответствующими арифметическими операторами. Арифметические операторы обозначаются знаками арифметических действий, размещаемыми на клавиатуре компьютера. Данные знаки помещены в таблице 2.

Таблица 2 – Арифметические действия, применяемые в программировании.

Знаки

Арифметические операторы

Приоритет

+

сложение

низкий

-

вычитание

низкий

*

умножение

высокий

/

деление

высокий

^

возведение в степень

Самый высокий

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

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

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

5,02                5.0^2*17.0/ (3.5+4.0-2.3)

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

  1.  целочисленное деление – (нахождение целого при делении),
  2.  нахождение остатка от деления.

Целочисленное деление обозначается знаком обратного слеша \ или используется ключевое слово DIV.

Например, 14:5 – это 2 целых, и остаток 4.

14 DIV 5 равно 2.

Округление в данной операции неприменимо.

Для нахождения остатка используется ключевое слово MOD.

14 MOD 5 равно 4.

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

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

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

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

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

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

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

Ввод данных в языках программирования осуществляется обычно двумя способами:

- автоматически в тексте программы с помощью описанных выше операторов присваивания,

- с использованием клавиатуры вручную.

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

При этом в процессе выполнения программы совершаются следующие действия:

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

В языке BASIC оператор ввода обозначается ключевым словом INPUT, язык PASCAL обычно использует оператор READ(), т. е. указание компьютеру «Читай».

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

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

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

В зависимости от цели стандартные функции разделяются на следующие типы:

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

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

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

Например, тригонометрические функции в языках программирования имеют следующие обозначения (х – аргумент, числовая переменная):

sinx → sin (x),

cosx → cos (x),

tgx → tan (x),

Абсолютное значение (модуль) числа обозначается:

|x|  → abs (x),

Экспонента числа:

exexp (x),

Квадратный корень из числа:

 → sqr (x), и т. д.

Таким образом, математическое выражение x2 +3 ex +cos(x+1) - |sin(x-2)| в языках программирования представляется в виде следующей последовательности:

x^2 + 3*exp(x) + cos(x+1) –abs(sin(x+2)).

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

Блок-схема данного линейного алгоритма показана на рисунке 4.

Пример 1. Вычислить при x=2,3

В общем случае, алгоритм решения имеет следующее описание:

Начало

ввести ‘x:=2.3’

y:=(x^3 +5*x+cos(x+1))/(x-exp(x))

напечатать (‘y=’;y)

конец.

Рисунок 4 – Блок-схема простейшего линейного алгоритма.

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

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

Для этого кроме операторов ввода используют операторы вывода (например, те же PRINT или WRITE), а также стандартные функции, которые позволяют выводить информацию на экран в любой форме и получать результат, отличающийся от простого использования знаков препинания. Так, например, в языке BASIC можно применять дополнительные возможности оператора PRINT, при которых обеспечивается вывод данных в виде колонки или одной строкой, таблицей или с пробелами. Стандартная функция TAB может установить позицию, с которой информация будет выводиться на экран, а функция SPC позволяет разделять результата вывода пробелами.

Можно также использовать оператор PRINT USING, который позволяет:

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

В языке PASCAL также существуют дополнительные возможности для форматирования вывода информации на экран.

Так как некоторые языки (в частности, тот же BASIC) не очищают автоматически экран при запуске новой программы, то программы разумно и грамотно начинать с оператора очистки экрана (с ключевым словом CLS), который стирает все предыдущие результаты выполнения программ с экрана, но не действует на данные, хранящиеся в памяти компьютера.

Для пояснения текстов в программах используются комментарии, которые размещаются в листинге программы или включаются в текст выводимой на экран информации при выполнении программы с помощью специальных разделяющих знаков. Например, в BASIC комментарии разделяются апострофом или оператором REM, в PASCAL кавычками, и выводятся на экран с применением операторов вывода. Без вывода на экран при выполнении программы комментарии игнорируются, однако они содержат полезные сведения при рассмотрении листинга программы.

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

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

- константы,

- переменные,

- массивы,

- файлы.

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

Как правило, константы определяются в начале программы и обозначаются ключевым словом const. Например, в PASCAL обозначим –pi= const . в данном случае pi – это число π, которое можно считать равным 3,14.

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

Разветвляющий алгоритм – это алгоритм с проверкой некоторых действий, которая разветвляет выполнение программы по двум направлениям.

В общем случае, условные операторы позволяют выбирать различные варианты выполнения программ. К ним относятся оператор безусловного перехода (GO TO), условного перехода (IF - THEN), сложные структурные операторы (IF - THENELSE и SELECT - CASE).

Оператор IF (ЕСЛИ) применяется для создания многоуровневых проверок – с использование вложенных операторов IF или с использованием многоуровневых построений с данными операторами.

Условный структурный оператор IF - THENELSE (ЕСЛИ…ТОГДА, ИНАЧЕ…) включает в себя целый блок действий.

Формат данного условного оператора:

IF <условие – логическое выражение> THEN операторы 1 ELSE операторы 2.

При этом если условие истинно, то выполняются операторы 1, если ложно - операторы 2.

Структурный оператор SELECTCASE проверяет логическое действие («истина» или «ложь») и определяет оператор, который выполняется следующим.

Формат данного оператора имеет вид:

SELECT  CASE <выражение>

CASE <условие> операторы 1

CASE <условие> операторы 2

CASE  ELSE операторы 3

CASE  ELSE операторы 4

END CASE SELECT 

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

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

Логические выражения состоят из операторов сравнения и числовых и текстовых сравниваемых данных.

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

Таблица 3 – Операторы сравнения в программировании.

Знак

Значение операции

Пример

=

равно

4=4

<>

не равно

5<>6

>

больше

8>7

<

меньше

3<6

>=

больше или равно

9>=9

<=

меньше или равно

8<=9

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

Таблица 4 – Логические операторы в программировании.

Имя оператора

Наименование операции

AND

Конъюнкция (логическое умножение)

OR

Дизъюнкция (логическое сложение)

NOT

Инверсия (логическое отрицание)

EQV

Эквивалентность

IMP

Импликация

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

Пример 2. Вывести на экран компьютера сообщение о возрасте пользователя, который вводит свой год рождения с клавиатуры. Для этого построить блок-схему алгоритма, при котором, если возраст пользователя (YOUR AGE) меньше 7 лет, то выводится сообщение: «Вы ребенок», если меньше 18 лет – «Вы подросток», меньше 21 года – «Вы юноша», больше 21 года – «Вы взрослый». При этом вывести данные о возможных ошибках (когда вводится данные, меньше 0).

Решение. В блок-схеме используются последовательно операторы IF, в которых закладываются условия:

Блок 1. Проверка условия: ЕСЛИ меньше 0, то вывод «ошибка», больше 0, переход к следующему  блоку.

Блок 2.  Проверка условия: ЕСЛИ меньше и равно 7, то вывод «Вы ребенок», больше 7, переход к следующему  блоку.

Блок 3. Проверка условия: ЕСЛИ меньше 18, то вывод «Вы подросток», больше и равно 18, переход к следующему  блоку.

Блок 4. Проверка условия: ЕСЛИ меньше 21, то вывод «Вы юноша», больше и равно 21, то вывод сообщения «Вы взрослый».

Блок-схема данного алгоритма представлена на рисунке 5.

 

Рисунок 5 - Блок-схема разветвляющегося  алгоритма  примера 2.

Пример 3.  Вводятся последовательно значения трех переменных А, В, С. Вывести на экран наименьшее из этих трех чисел.

Решение. Вводим последовательно данные числа и сравниваем их, присваивая им значение MIN. Для этого в блок-схеме используются последовательно операторы IF, в которых закладываются соответствующие условия.

Блок 1. Вводится число А.

Блок 2. Присваиваем А значение MIN - А:= MIN.

Блок 3. Вводится число В.

Блок 4. Сравниваем MIN и В. Проверка условия: ЕСЛИ MIN меньше В, то присваиваем MIN:= MIN, MIN больше В, то присваиваем В:= MIN.

Блок 5. Вводится число С.

Блок 6. Сравниваем  MIN и С. Проверка условия: ЕСЛИ  MIN меньше С, то присваиваем MIN:= MIN, MIN больше С, то присваиваем С:= MIN.

Блок 7. Выводим на экран значение MIN.

Блок-схема данного алгоритма представлена на рисунке 6.

Рисунок 6 - Блок-схема разветвляющегося  алгоритма  примера 3.

Пример 4.  Чему будет равно значение переменной S после выполнения фрагмента программы, представленной на блок-схеме рисунка 7.

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

Рисунок 7 -Блок-схема фрагмента разветвляющегося  алгоритма  примера  4.

Так, по приведенному рисунку алгоритма выявлены следующие действия над соответствующими данными:

  1.  Вводится  постоянная величина M, равная 10.
  2.  Автоматически присваиваются переменным следующие значения –a:=10, b:=1, c:=2.
  3.  Вводится переменная S, равная 4.
  4.  Ставится условие, что переменная c должна быть меньше или равной постоянной M.
  5.  При выполнении данного условия переменным должны присваиваться следующие значения – a:=b, b:=c, c:=a+b, S:=S+c, а также организуется программный счетчик подсчета количества шагов – c:=c-1.
  6.  Если условие не выполняется, то переменной S присваивается значение S:=S-c.
  7.  В результате фрагмента алгоритма значение переменной S выводится на экран.

Вычислительная таблица примера представлена в таблице 6.

Таблица 6. –Вычислительный процесс примера 4.

Вводимые величины M=10, a:=10, b:=1, c:=2, S:=4

Шаг 1

Значения

Условие выполнения цикла

c<=M

c=2, M=10

True

a:=b, b:=c, c:=a+b, S:=S+c, c:=c-1

False

S:=S-c

Выполняемые действия и результаты a:=1, b:=2, c:=1+2=3, S:=4+3=7, c:=3-1=2

Шаг 2

Значения

Условие выполнения цикла c<=M

c=2, M=10

True

a:=b, b:=c, c:=a+b, S:=S+c, c:=c-1

False

S:=S-c

Выполняемые действия и результаты a:=2, b:=2, c:=2+2=4, S:=7+4=11, c:=4-1=3

Шаг 3

Значения

Условие выполнения цикла c<=M

c=3, M=10

True 

a:= b, b:=c, c:=a+b, S:=S+c, c:=c-1

False

S:=S-c

Выполняемые действия и результаты a:= 2, b:=3,

c:=2 +3=5, S:=11+5=16, c:=5-1=4

Шаг 4

Значения

Условие выполнения цикла c<=M

c=4, M=10

True

a:=b, b:=c, c:=a+b, S:=S+c, c:=c-1

False

S:=S-c

Выполняемые действия и результаты a:=3, b:=4, c:=3+4 =7, S:=16+7=23, c:=7-1=6

Шаг 5

Значения

Условие выполнения цикла c<=M

c=6, M=10

True a:=b, b:=c, c:=a+b, S:=S+c, c:=c-1

Выполняемые действия и результаты a:=4, b:=6, c:=4+6=10, S:=23+10=33, c:=10-1=9

Шаг 6

Значения

Условие выполнения цикла c<=M

c=9, M=10

True a:=b, b:=c, c:=a+b, S:=S+c, c:=c-1

Выполняемые действия и результаты a:=6, b:=9, c:=6+9=15, S:=33+15=48, c:=15-1=14

Шаг 7

Значения

Условие выполнения цикла c<=M

c=14, M=10

False S:=S-c

Выполняемые действия и результаты S:=S-c=48-14=34

Выводимые результаты S=34

Ответ: S=34.

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

1. ввод,

2. вывод,

3. ветвление (полное и неполное),

4. цикл (с предусловием, с постусловием и с параметром).

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

Операторы циклов (или повторений) – это операторы, которые обеспечивают повторение одних и тех же действий.

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

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

Формат применения данного оператора обычно имеет вид:

Начало цикла: для <параметр цикла> от  <начальное значение> до <конечное значение> <тело оператора цикла> конец цикла,

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

Блок-схема, в общем виде использующаяся данный оператор, представлена на  рисунке 8.

Для языка программирования PASCAL цикл с параметром I имеет следующие основные форматы:

  1.  for I:=Iн to Iк do <тело цикла>
  2.  for I:=Iн  down to Iк do <тело цикла>,

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

Рисунок – Блок-схема цикла с оператором - параметром.

Пример 5. Вывести целые числа от 10 до 20 на экран компьютера.

Решение. Используем оператор с параметром i, при этом начальное значение оператора i равно 10, конечное 20. Блок-схема представлена на рисунке 9, при этом  считаем, что, параметр цикла i – целое число.

Рисунок 9 – Блок-схема алгоритма решения примера.

Если необходимо, можно изменить шаг параметра в цикле, тогда значение переменной в примере нужно записать i: = i + [шаг].

Частным случаем оператора цикла с параметром является вариант, когда само значение его в основной части алгоритма не используется. Так, если требуется повторить какие-то действия 10 раз,  то используется следующая схема:

Начало цикла: для <параметр цикла> от  1 до 10 <действия в цикле> конец цикла.

При этом переменная  <параметр цикла> в теле оператора цикла вообще не используется, и она играет роль счетчика количества повторений.

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

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

Формат применения данного оператора обычно имеет вид:

Начало цикла: пока <условие> <тело оператора цикла> конец цикла,

где <условие> – условие, при котором выполняется  <тело оператора цикла>. На рисунке  10 показана блок-схема такого цикла.

Рисунок 10 – Блок-схема цикла с оператором-предусловием.

В языках программирования данный оператор может использовать ключевое слово WHILE, например, для Basic формат такого оператора имеет вид:

DO LOOP WHILE <условие>

Для языка PASCAL формат цикла имеет вид:

While < условие – логическое выражение> do <тело цикла>.

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

  1.  Определите действия, при котором нужно выполнять повторяющиеся действия;
  2.  запишите в операторе цикла условие, противоположное найденному действию.

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

С данным оператором также организуют пустые циклы для реализации паузы в программе.

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

Формат применения данного оператора обычно имеет вид:

Начало цикла: <тело оператора цикла> при <условие> конец цикла,

где <условие> – условие, при котором прекращает действие  <тело оператора цикла>. На рисунке 11 показана блок-схема такого цикла.

В языках программирования данный оператор может использовать ключевое слово UNTIL, например, для Basic формат такого оператора имеет вид:

DO UNTIL <условие>….LOOP.

Рисунок 11 – Блок-схема цикла с оператором-постусловием.

Для языка PASCAL формат цикла имеет вид:

repeat <тело цикла> until < условие – логическое выражение> .

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

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

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

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

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

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

  •  внутренний цикл должен заканчиваться раньше, чем внешний;
  •  управление не должно передаваться сразу в середину цикла, так как в этом случае переменная параметра становится неопределенной.

Пример 6. Организация циклических процессов.

Построить блок-схему алгоритма вывода на экран элементов двумерного массива (N,N), у которых значение элемента равно сумме значений индексов массива.

Решение. Вводим следующие обозначения:

I - значение индекса элемента массива по строке,

J - значение индекса элемента массива по столбцу,

A(I,J) - имя элемента массива.

Условие  нахождения требуемого элемента массива A(I,J) =I+J,

m - количество элементов массива с требуемыми свойствами.

Для составления блок-схемы алгоритма определяем следующие циклы:

- ввод элементов двумерного массива с использованием параметрических циклов по I и J,

- цикл проверки условия нахождения требуемого элемента массива - A(I,J) =I+J с определением их количества m,

- проверка количества найденных элементов, т. е.  m>0,

- цикл вывода на экран требуемых элементов  массива,

Выражения, выводимые на экран:

- элементы массива, у которых значение элемента равно сумме значений индексов массива,

- таких чисел в массиве нет.

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

Также необходимо применить два раза оператор ЕСЛИ для проверки  существования элементов с заданными условиями и для вывода на экран найденных элементов.

С учетом вышесказанного блок-схема данного алгоритма приведена на рисунке 12.

Рисунок 12 – Блок-схема циклического алгоритма примера 6.

Тест - проверка знаний по теме 7 (с решениями).

Задача 1. Построить блок-схему алгоритма обмена данными двух переменных A и B.

Решение. Алгоритм обмена данными двух переменных (например, A=2, B=3) имеет следующую стандартную для программирования схему:

- находится сумма значений переменных, которой присваивается имя одной из вводимых переменных, т. е. A:=A+B (2+3=5)

- находятся последовательно разности значений суммы и переменной, которым присваивается имя вычитаемой переменной, т. е. B:=A-B=A+B-B=A (5-3=2, а это было значение переменной A), A:=A-B=A+B-A=B(5-2=3, а это было значение переменной B).

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

Рисунок 13 - Блок-схема линейного алгоритма задачи  1.

Задача 2. Построить блок-схему алгоритма Евклида – нахождение наибольшего общего делителя (НОД) двух натуральных чисел.

Решение. Данный алгоритм по Евклиду имеет следующее описание:

- строится цикл по проверке равенства двух натуральных чисел.

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

- цикл вычитания выполняется до тех пор, пока а не станет равным в. Полученное а является НОД по Евклиду. Блок-схема данного алгоритма представлена на рисунке 14.

Рисунок 14 - Блок-схема алгоритма задачи  2.

Проверим данный алгоритм по блок-схеме на примере, когда а=21, b=7.

Шаг 1. Вводим а=21 и b=7.

Шаг 2. Организуется цикл, т. к. а больше b.

Шаг 3. Присваиваем а=а-b=21-7=14.

Шаг 4. Проверка выхода из цикла - а больше b, выполняется, значит, возвращаемся к шагу 3.

Шаг 3. а=а-b =14-7=7, и переход к шагу 4.

Шаг 4. Проверка выхода из цикла - а равно b, условие не выполняется, значит, выходим из цикла и переходим к шагу 5.

Шаг 5. Присваиваем а значение НОД, т. е. 7, что соответствует правильному ответу в решении задачи.

Задача 3. Алгоритм, блок-схема которого приведена на рисунке  15, после ввода с клавиатуры трех чисел выводит на экран значения четырех чисел. В результате выполнения алгоритма после ввода переменных A, B и C были напечатаны числа - 10, -2, 6, неизвестное. Какое неизвестное число было напечатано последним?

Рисунок 15 - Блок-схема алгоритма задачи  3.

Решение. По блок-схеме алгоритма выполняются следующие действия:

Шаг 1. Ввод чисел A,B и C.

Шаг 2. Проверка условия, что последнее число С является отрицательным. Условие выполняется, т. к. в противном случае происходит окончание решения.

Шаг 3. Выполнение цикла по к (от 1 до 4). На экран выводится число С, равное -10.

Шаг 4. С присваивается значение С = -10*A - B.

Шаг 5. Выполнение второго оборота цикла по к. На экран выводится число С, равное -2.

Шаг 6. С присваивается значение С = -2*A -B.

Шаг 5. Выполнение третьего оборота цикла по к. На экран выводится число С, равное 6.

Шаг 6. С присваивается значение С = 6* A -B.

Шаг 7. Выполнение четвертого (последнего) оборота цикла по к. На экран выводится число С, которое является неизвестным. Данное неизвестное находим, определяя из системы двух уравнений:

1) -10*AB= -2,

2) -2*AB= 6.

Отсюда находим A=1, B=-8.

Значит, С=6*1- (-8)= 14.

Таким образом, на экране выводится число 14.

Шаг 8. С присваивается значение С = 14* 1 –(-8)=22. И на этом выполнение алгоритма заканчивается.

Задача 4. Построить блок-схему алгоритма нахождения суммы значений элементов двумерного массива (5, 6), которые не равны остатку от деления значения последнего элемента на значение первого.

Массивом называется совокупность группы переменных, объединенных общим именем.

Решение. Алгоритм данной задачи сводится к следующим действиям:

- организация цикла с параметром (например, I=6, J=5) для ввода значений элементов массива, обозначенных как A[I, J],

- присваивание нулевого значения сумме значений S:=0, целесообразно также присвоить значение остатку от деления значения последнего элемента на первый, например ost:= A[6,5] MOD A[1,1], для удобства сравнения по заданному условию.  

- организация того же цикла с параметром для проверки условия неравенства введенного элемента остатку от деления значения последнего элемента на первый – A[I,J] <> ost. Здесь же необходимо найти получаемую сумму как S:= S + A[I,J],

- вывод полученного результата на экран (при этом можно организовать проверку условия существования требуемых элементов – если S:=0, то вывод на экран сообщения: «Таких элементов нет»).

Блок-схема данного алгоритма представлена на рисунке 16.

Рисунок 16 - Блок-схема алгоритма задачи  4.

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

Решение. Алгоритм данной задачи, в общем случае, сводится к следующим действиям:

- организация цикла с параметром (I=N) для ввода значений элементов массива, обозначенных как A[I]= 3*I MOD 5,

- перед выполнением второго цикла первому  элементу массива A[1] присваивается значение MAX, т. е. MAX:= A[1].

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

Далее в цикле? если A[I+1] больше или равно A[I], то значение присваивается MAX:= A[I+1], иначе MAX:= A[I]. Для определения индекса последнего элемента используется переменная k, у которой, если MAX:= A[I+1], то k:= i+1, если  MAX:= A[I] -  то k:= i.

- вывод на экран найденного максимального значения элемента массива, т. е. “ k = ”, максимальное значение MAX.

Блок-схема алгоритма задачи  5 представлена на рис 17.

Рисунок 17 - Блок-схема алгоритма задачи  5.

Для проверки решения задачи по алгоритму, положим I, равным, например, 10. Тогда  значения 10 элементов по представленной блок-схеме (соответственно условию A[I]= 3*I MOD 5) показаны в таблице 2.

Таблица 2. элементы одномерного массива задачи 5.

A[1]

A[2]

A[3]

A[4]

A[5]

A[6]

A[7]

A[8]

A[9]

A[10]

2

1

4

2

0

3

1

4

2

0

Из таблицы видно, что максимальное значение, равное 4, имеют два элемента массива – 3-ий и 8-ой.

Таким образом, после выполнения цикла ввода элементов массива, выполняются следующие действия:

Шаг 1. Присваивается  переменной MAX значение A[1], т. е. MAX:= A[1]=2. Шаг 2. Выполнение второго цикла: значение  A[1] сравнивается с MAX, а т. к. A[1]= MAX, то MAX:= MAX=2 и к:=1.

Шаг 3. Значение  A[2] сравнивается с MAX, а т. к. A[2]= 1< 2, то MAX:= MAX=2 и к:=1.

Шаг 4. Значение  A[3] сравнивается с MAX, а т. к. A[3]= 4> 2, то MAX:= A[3]= 4 и к:=3.

Шаг 5. Значение  A[4] сравнивается с MAX, а т. к. A[4]= 2< 4, то MAX:= A[3]= 4 и к:=3.

Шаг 6. Значение  A[5] сравнивается с MAX, а т. к. A[5]= 0<4, то MAX:= A[3]= 4 и к:=3.

Шаг 7. Значение  A[6] сравнивается с MAX, а т. к. A[6]= 3<4, то MAX:= A[3]= 4 и к:=3.

Шаг 8. Значение  A[7] сравнивается с MAX, а т. к. A[7]= 1<4, то MAX:= A[3]= 4 и к:=3.

Шаг 9. Значение  A[8] сравнивается с MAX, а т. к. A[8]= 4=4, то MAX:= A[8]= 4 и к:=8.

Шаг 10. Значение  A[9] сравнивается с MAX, а т. к. A[9]= 2<4, то MAX:= A[8]= 4 и к:=8.

Шаг 11. Значение  A[10] сравнивается с MAX, а т. к. A[10]= 0<4, то MAX:= A[8]= 4 и к:=8.

Шаг 12. На экран выводится сообщение, что 8-ой элемент массива имеет максимальное значение, равное 4.

Задача 6. По представленной на рисунке блок-схеме определить значение выводимой на экран переменной S.

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

Рисунок 18 - Блок-схема алгоритма задачи  6.

Таблица 3 – вычислительная таблица примера 6.

Вводимые величины M=6, a:=10, b:=5, c:=2, S:=3

Шаг 1

Значения

Условие выполнения цикла

c<M

c=2, M=6

True

a:=b, b:=c, c:=a+b, S:=S+c, c:=c-3

False

S:=S-c

Выполняемые действия и результаты a:=5, b:=2, c:=5+2=7, S:=3+7=10, c:=7-3=4

Шаг 2

Значения

Условие выполнения цикла c<M

c=4, M=6

True

a:=b, b:=c, c:=a+b, S:=S+c, c:=c-3

False

S:=S-c

Выполняемые действия и результаты a:=2, b:=4, c:=2+4=6, S:=10+6=16, c:=6-3=3

Шаг 3

Значения

Условие выполнения цикла c<M

c=3, M=6

True 

a:= b, b:=c, c:=a+b, S:=S+c, c:=c-3

False

S:=S-c

Выполняемые действия и результаты a:= 4, b:=3,

c:=4+3=7, S:=16+7=23, c:=7-3=4

Шаг 4

Значения

Условие выполнения цикла c<M

c=4, M=6

True

a:=b, b:=c, c:=a+b, S:=S+c, c:=c-3

False

S:=S-c

Выполняемые действия и результаты a:=3, b:=4, c:=3+4 =7, S:=23+7=30, c:=7-3=4

Шаг 5

Значения

Условие выполнения цикла c<M

c=4, M=6

True a:=b, b:=c, c:=a+b, S:=S+c, c:=c-3

Выполняемые действия и результаты a:=4, b:=4, c:=4+4=8, S:=30+8=38, c:=8-3=5

Шаг 6

Значения

Условие выполнения цикла c<M

c=5, M=6

True a:=b, b:=c, c:=a+b, S:=S+c, c:=c-3

Выполняемые действия и результаты a:=4, b:=5, c:=4+5=9, S:=38+9=47, c:=9-3=6

Шаг 7

Значения

Условие выполнения цикла c<M

c=6, M=6

False S:=S-c

Выполняемые действия и результаты S:=S-c=47-6=41

Выводимые результаты S=41

Ответ: S=41.

Задача 7. Представление алгебраических выражений при написании программ. Представить следующую алгебраическую формулу:

Решение. Для представления формулы необходимо применять следующие правила:

- алгебраические выражения записываются одной строкой,

- операция деления представляется знаком слеш - /,

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

- некоторые математические операции заменяются стандартными функциями.

Учитывая данные правила, формула заменяется следующими последовательностями:

y = (действие 1)/(действие 2) – действие 3,

где действие 1 – числитель дроби,

действие 2 – знаменатель дроби,

действие 3 – извлечение квадратного корня.

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

Представляем:  как выражение sqr(45*x^5),

cos(x+0,5) как cos(x+0.5),

как выражение abs(x^3 +7*x^2-1).

Таким образом, действие 1 заменяется выражением:

sqr(45*x^5) + cos(x+0.5) – abs(x^3 +7*x^2-1).

Действие 2 представляет собой корень 4-ой степени некоторого выражения. Данный корень можно представить как возведение в ¼ степень  выражения, в котором последовательно заменяем:

6x3 как 6*x^3,

sinx как sin(x),

как exp(x+1).

Таким образом, действие 2 представляет собой выражение:

(6*x^3 – sin(x) – exp(x+1)^(1/4)

Действие 3 представляет собой квадратный корень степенного выражения и представляется как:

sqr(x^3 + 11).

И, окончательно, представленная формула преобразуется к виду:

y = (sqr(45*x^5) + cos(x+0.5) – abs(x^3 +7*x^2-1))/( (6*x^3 – sin(x) – exp(x+1)^(1/4)) - sqr(x^3 + 11).

Тесты по теме 7.

Вариант 1

1. Система правил, описывающая последовательность действий, которые необходимо выполнить для решения задачи, называется:

(?) транслятором

(?) математической моделью

(!) алгоритмом

(?) программой

2. Наивысший  приоритет при выполнении программ имеет арифметическое действие:

(?) сложение

(?) умножение

(!) возведение в степень

(?) деление

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

(?) терминистическим

(?) детерминистическим

(!) детерминированным

(?) итерационным

4. Прекращает выполнение программы оператор:

(?) PRINT

(?) FOR

(!) END

(?) WRITE

5. Процедурно-ориентированный язык программирования – это:

(?) Prolog

(?) Lisp

(!) Fortran

(?) Delphi

6. Число, записанное в программе, как 6.78Е-10, означает число:

(?) 6,78*10+10

(?) 678*10+10

(!) 6,78*10-10

(?) 678-10

7. Ключевое слово MOD в программировании означает:

(?) целочисленное деление двух чисел

(?) нахождение дробной части числа

(!) нахождение остатка от деления двух чисел

(?) нахождение целой части числа.

8. Знак <> в программировании означает:

(?) больше

(?) меньше

(!) не равно

(?) меньше или равно

9. Строковые данные, обозначенные как  “”, имеют длину, равную:

(?) 1

(?) 2

(!) 0

(?) 3

10. Если значения двух переменных были соответственно равны A=8, B=9, то в результате операции присваивания  A:=B, получилось:

(?) A=8, B=9

(?) A=8, B=8

(!) A=9, B=9

(?) A=9, B=8

11. Оператор AND в программировании означает:

(?) логическое отрицание

(?) логическое сложение

(!) логическое умножение

(?) эквивалентность

12. Числовые данные, которые не могут изменяться в ходе выполнения программы, называются:

(?) файлами

(?) массивами

(!) константами

(?) действительными

13. Оператор CLS используется в языках программирования для:

(?) ввода данных

(?) вывода данных

(!) очистки данных с экрана

(?) присваивания данных массиву

14. Пример записи (объявления) величины называется:

(?) строкой

(?) выражением

(!) форматом

(?) файлом

15. Для ввода данных в программировании не используют операторы:

(?) READ

(?) INPUT

(!) WRITE

(?) READLN

16. Нахождение абсолютной величины числа обозначается функцией:

(?) exp

(?) tan

(!) abs

(?) sqr

17. Программный цикл не выполняется при следующих условиях:

(?) если не задан шаг

(?) если у переменной счетчика начальное значение больше конечного с отрицательным шагом

(!) если у переменной счетчика начальное значение больше конечного  и не задан шаг

(?) если у переменной счетчика начальное значение меньше конечного, а заданный шаг положительный

18. Алгебраическое выражение sin2x + cos2x =1 при написании программы преобразуется в вид:

(?) sin2 (x)+ cos2 (x) =1

(?) sin2x + cos2x =1

(!) sin (x)* sin (x) +cos (x)*cos (x) = 1

(?) 2 * sin (x) +2*cos (x) = 1

19. Полным набором данных называется:

(?) точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи

(?) многократно повторяемый участок вычислений

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

(?) графическое изображение логической структуры алгоритма

20. Если a>1 and b<=a+5, то условие выполняется при значениях a и b, равных:

(?) a=6, b=12

(?) a=3, b=12

(!) a=3, b=8

(?) a=0, b=22

Вариант 2

1.К проблемно-ориентированным языкам программирования относится:

(?) Delphi

(?) C++

(!) Lisp

(?) Pascal

2. Если a>1 or b<=a+5, то условие выполняется при значениях a и b, равных:

(?) a=-1, b=12

(?) a=-3, b=5

(!) a=-3, b=2

(?) a=-4, b=12

3. Точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи, называется:

(?) системой языков программирования

(?) интерпретатором

(!) алгоритмом

(?) алфавитом

4. Для вывода данных в программировании не используют операторы:

(?) PRINT

(?) OUTPUT

(!) READLN

(?) WRITE

5. Укажите язык программирования, для которого необходимо использовать интерпретатор:

(?) автокод

(?) Pascal

(!) Basic

(?) Visual Fortran

6. Самый низкий приоритет в языках программирования имеет операция:

(?) возведение в степень

(?) умножение

(!) сложение

(?) деление

7. Экспоненциальная форма записи числа 1300000 в программах – это запись:

(?) 1,3*10+6

(?)1,3*10-6

(!) 1.3Е+6

(?) 1,3Е+6

8. Последовательность шагов алгоритма нарушает операция:

(?) чтение определенной записи из файла

(?) обработка данных

(!) вывод заголовка на экран

(?) вывод на экран обработанной информации

9. К операторам, используемым для организации циклов, не относится оператор:  

(?) FOR

(?) IF-THEN-ELSE

(!) CLS

(?) SELECT CASE

10. К основным способам записи (формализации) алгоритма не относится:

(?) словесный

(?) графический

(!) векторный

(?) на алгоритмическом языке

11. Для создания паузы в программах обычно используют:

(?) пустую строку

(?) оператор ввода

(!) пустой цикл

(?) оператор вывода

12. Алгебраическое выражение |sin2x + cos2x| при написании программы преобразуется в вид:

(?) sqr (sin2x + cos2x)

(?) abs(sin2x + cos2x)

(!) abs(sin(x)* sin(x)+ cos(x)* cos(x))

(?) abs(sinx* sinx+ cosx* cosx)

13. Программный цикл прекращает свое выполнение:

(?) когда переменная счетчика равна его конечному значению

(?) когда переменная счетчика меньше его конечного значения на единицу

(!) когда переменная счетчика превышает его конечное значение

(?) когда переменная счетчика меньше его конечного значения в несколько раз

14. Команда исполнителя, в результате которой переменная получает новое имя, называется:

(?) константой

(?) массивом

(!) присваиванием

(?) ветвлением

15. Результатом операции 23\10 является число:

(?) 3

(?) 10

(!) 2

(?) 1

16. Число символов, составляющих текст, включая пробелы и знаки препинания, определяет:

(?) пустой цикл

(?) формат данных

(!) длину строки

(?) пустую строку

17. Знаки <> в программировании обозначают операцию:

(?) равно

(?) меньше или равно

(!) не равно

(?) больше или равно

18. Условием, при котором в алгоритм добавляется разветвление, является операция:

(?) вывод заголовка на экран

(?) чтение следующей записи из файла

(!) проверка, достигнут ли конец файла

(?) вывод на экран информации

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

(?) 256

(?) 255

(!) 0

(?) 1

20. Алгебраическое выражение в программах представляется как:

(?) (x+3)1/5

(?) 1/(x+3)5

(!) (x+3)^(0.25)

(?)(x+3)^(0,25)

Вариант 3

1. Алгоритм решения вычислительной задачи, - это:

(?) описание  решения задачи, заданное на языке вычислительной машины

(?) совокупность различных программ, используемых для автоматизации  процессов программирования сценариев работы ЭВМ

(!) совокупность правил преобразования исходных данных в результатные

(?) многократно повторяемый участок вычислений

2. Результатом операции 33\3 является число:

(?) 0

(?) 3

(!) 11

(?) 10

3. Длина текста “Программа демонстрирует конкатенацию строк” составляет:

(?) 39 символов

(?) 25 символов

(!) 42 символа

(?) 5 символов

4. Объединение двух последовательностей в одну называется:

(?) присваиванием

(?) массивом

(!) конкатенацией

(?) константой

5. Выражение A <= B имеет значение «ложь», когда:

(?) A=1, B=5

(?) A=5, B=5

(!) A=10, B=5

(?) A=4, B=5

6. Набор сокращений слов английского языка, которые называются ключевыми или зарезервированными словами, обозначающими выполнение  определенного действия, является:

(?) алфавитом языка программирования

(?) транслятором языка программирования

(!) словарем языка программирования

(?) форматом языка программирования

7. Определите, сколько раз будет выполняться тело оператора цикла с параметром при начальном (a) и конечном (b) значениях параметра цикла равных: a=1, b=10. Шаг изменения параметра цикла равен 1.

(?) 11

(?) 9

(!) 10

(?) 8

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

(?) входным блоком

(?) выходным блоком

(!) блоком данных

(?) вычислительным блоком

9. Результатом выполнения арифметической последовательности чисел

y = abs (15*2 + 5 - 36) чисел является:

(?) -1

(?) 0

(!) +1

(?) +2

10. Если в строке текста имеется пробел и никаких символов, то длина текста составляет:

(?) 0

(?) 2

(!) 1

(?) неопределенную величину

11. Если в некотором языке программирования операция возведения в степень заменена умножением, то определите кратчайшее число шагов выполнения алгоритма алгебраической последовательности  y = x18:

(?) 6

(?) 7

(!) 5

(?) 4

12. Программы – переводчики языков высокого уровня на машинный язык иначе называют:

(?) автокодами

(?) ассемблерами

(!) трансляторами

(?) макросами

13. Из приведенных ниже выражений ложным является:

(?) “Оля” > “Анна”

(?) “Катя” =“Катя”

(!) “No>Yes

(?) 134 > 133.9

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

(?) ветвящимся

(?) циклом с предусловием

(!) циклом с постусловием

(?) линейным

15. Результатом выполнения программы деления числа 14 на 5 будет число:

(?) 2

(?) 3

(!) 2.8

(?) 2,8

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

(?) диаграммой

(?) временной последовательностью

(!) блок-схемой

(?) программой

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

(?) +

(?) ^

(!) $

(?) !

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

(?) подпрограммами

(?) файлами

(!) стандартными функциями

(?) массивами данных

19. Результатом выполнения арифметической последовательности чисел

y = abs (15*2 + 5 - 37) чисел является:

(?) -1

(?) +1

(!) +2

(?) -2

20. Знаки <= в программировании обозначают операцию:

(?) равно

(?) не равно

(!) меньше или равно

(?) больше или равно

Вариант 4

1. Длина текста “Программа имеет 32 оператора” составляет:

(?) 26 символов

(?) 24 символа

(!) 28 символов

(?) 30 символов

2. Результатом выполнения программы целочисленного деления числа 14 на 5 будет число:

(?) 2.8

(?) 3

(!) 2

(?) 2,8

3. Определите, сколько раз будет выполняться тело оператора цикла с параметром при начальном (a) и конечном (b) значениях параметра цикла равных: a=10, b=20. Шаг изменения параметра цикла равен 1.

(?) 10

(?) 9

(!) 11

(?) 8

4. Блок –схемное описание алгоритма это:

(?) способ представления структуры алгоритма в виде текста на естественном языке

(?) способ представления структуры алгоритма в виде математических выражений

(!) способ представления структуры алгоритма в виде геометрических символов

(?) способ представления структуры алгоритма в виде текста на искусственном языке

5. Блок программы, который выводит результаты ее выполнения на экран, называется:

(?) входным блоком

(?) блоком данных

(!) выходным блоком

(?) вычислительным блоком

6. Специальный символ, который в языках программирования показывает, что переменная относится к целым числам, обычно обозначается знаком:

(?) +

(?) ^

(!) %

(?) !

7. Язык Fortran является языком программирования:

(?) объектно-ориентированным

(?) низкого уровня

(!) высокого уровня

(?) проблемно-ориентированным

8. Спецификатор, определяющий экспоненциальный формат для чисел, обычно обозначается знаком:

(?) $

(?) #

(!) ^^^^

(?) **

9.В графическом режиме программирования не используют:

(?) относительные координаты

(?) абсолютные координаты

(!) полярные координаты

(?) точки последней ссылки

10.Оператор, который может изменить значение переменной, называют:

(?) вводом

(?) выводом

(!) присваиванием

(?) циклом с параметром

11. Для изменения неравенства > в программировании на более строгое  условие используют операцию:

(?) <>

(?) =

(!) >=

(?) <

12. Спецификации формата для вывода всего текстового выражения обычно обозначаются знаком:

(?) |

(?) \\

(!) &

(?) \

13. Выражение A >= B имеет значение «ложь», когда:

(?) A=10, B=5

(?) A=5, B=5

(!) A=1, B=5

(?) A=6, B=5

14. Если на экране компьютера появилось выражение %123.46, то это означает:

(?) соответствие формата выводимому числу

(?) точный формат выводимого числа

(!) не соответствие формата выводимому числу

(?) вывод числа без округления

15. Результатом выполнения арифметической последовательности чисел

y = abs (15*2 + 5 - 33) чисел является:

(?) -1

(?) +1

(!) +2

(?) 0

16. Если в некотором языке программирования операция возведения в степень заменена умножением, то определите кратчайшее число шагов выполнения алгоритма алгебраической последовательности  y = x9:

(?) 6

(?) 7

(!) 4

(?) 3

17. Результатом операции 15\6 является число:

(?) 3

(?) 5

(!) 2

(?) 4

18. Из приведенных ниже выражений истинным является:

(?) “Оля” < “Анна”

(?) “Катя” <>“Катя”

(!) “No” < “Yes

(?) 134 > 133.9

19. Знаки >= в программировании обозначают операцию:

(?) равно

(?) не равно

(!) больше или равно

(?) меньше или равно

20. Свойство алгоритма,  которое означает, что каждая команда алгоритма управления определяет однозначное действие исполнителя, называется:

(?) результативность

(?) конечность

(!) точность

(?) понятность

Вариант 5

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

(?) определенностью

(?) дискретностью

(!) массовостью

(?) результативностью

2. Длина текста “Программа ввода-вывода данных” составляет:

(?) 27 символов

(?) 28 символов

(!) 29 символов

(?) 30 символов

3. Результатом операции 13\10 является число:

(?) 2

(?) 3

(!) 1

(?) 0

4. Укажите, какой из языков обычно используется в экспертных системах:

(?) C++

(?) Delphi

(!) Lisp

(?) Fortran

5. Из приведенных ниже выражений истинным является:

(?) 7 > 10

(?) 5.7<> 5.7

(!) “missis”< “mister

(?)“Дом”<> “Дом”

6. Определите, сколько раз будет выполняться тело оператора цикла с параметром при начальном (a) и конечном (b) значениях параметра цикла равных: a=N, b=M. Шаг изменения параметра цикла равен 1.

(?) M+N+1

(?) M+N-1

(!) MN +1

(?) M-N

7. Блок программы, в которую вводятся даты конкретного дня, называют:

(?) вычислительным блоком

(?) блоком данных

(!) входным блоком

(?) выходным блоком

8. Результатом выполнения арифметической последовательности чисел

y = abs (15*2 + 5 - 34) чисел является:

(?) -1

(?) 0

(!) +1

(?) +2

9. Результатом выполнения программы деления числа 22 на 5 будет число:

(?) 4

(?) 5

(!) 4.4

(?) 4,4

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

(?) циклом с постусловием

(?) ветвящимся

(!) циклом с предусловием

(?) линейным

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

(?) +

(?) ^

(!) !

(?) $

12. Для изменения неравенства < в программировании на более строгое  условие используют операцию:

(?) <>

(?) =

(!)< =

(?) <

13. Вложенные операторы IF можно заменять оператором:

(?) WHILE

(?) PRINT

(!) AND

(?) OR

14. Способ представления структуры алгоритма в виде математических выражений является:

(?) графическим

(?) словесным

(!) формульно-словесным

(?) алгоритмическим

15. Последовательности значений (записей) различных типов данных, размещенных на внешней памяти, называют:

(?) константами

(?) подпрограммами

(!) файлами

(?) массивами

16. Знаки представления различных типов переменных иначе называют:

(?) диапазоном

(?) структурой

(!) суффиксом

(?) форматом

17. Спецификации формата для вывода первого символа текстового выражения обычно обозначаются знаком:

(?)&

(?) \\

(!) |

(?) \

18. Если в некотором языке программирования операция возведения в степень заменена умножением, то определите кратчайшее число шагов выполнения алгоритма алгебраической последовательности  y = x8:

(?) 6

(?) 5

(!) 3

(?) 4

19. Если число А не равно 10, то значение «истина» имеет выражение:

(?) A<10

(?) A>10

(!) A<>10

(?) A<=10

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

(?) Fortran

(?) Pascal

(!) Prolog

(?) C

Вариант 6

1. Результатом операции 3\4 является число:

(?) 3

(?) 1

(!) 0

(?) 2

2. Длина текста “Программа цикла с параметром” составляет:

(?) 26 символов

(?) 29 символов

(!) 28 символов

(?) 30 символов

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

(?) транслятором

(?) управляющей командой

(!) языком программирования

(?) интерпретатором

4. Из приведенных ниже выражений истинным является:

(?) 7 > 10

(?) 5.7<> 5.7

(!)“Дом”= “Дом”

(?) “missis”> “mister

5. Определите, сколько раз будет выполняться тело оператора цикла с параметром при начальном (a) и конечном (b) значениях параметра цикла равных: a=1, b=11. Шаг изменения параметра цикла равен 2.

(?) 5

(?) 7

(!) 6

(?) 4

6. Блок программы, в котором непосредственно производятся расчеты, называют:

(?) входным блоком

(?) выходным блоком

(!) вычислительным блоком

(?) блоком данных

7. Результатом выполнения арифметической последовательности чисел

y = abs (15*2 + 5 - 36) чисел является:

(?) -1

(?) 0

(!) +1

(?) +2

8. Спецификации формата для определения числа символов текстового выражения обычно обозначаются знаком:

(?)&

(?) |

(!) \\

(?) \

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

(?) подпрограммами

(?) стандартными функциями

(!) заглушками

(?) массивами

10. Текстовый тип данных в языках программирования иногда обозначают:

(?) text

(?) vario

(!) line

(?) array

11. К языкам высокого уровня не относятся:

(?) Pascal

(?) C++

(!) макрос

(?) Delphi

12. Процесс в программировании, называемый debugging, является:

(?) выполнением программы

(?) написанием листинга программы

(!) отладкой программы

(?) модификацией программы

13. Результатом выполнения программы целочисленного деления числа 22 на 5 будет число:

(?) 4.4

(?) 5

(!) 4

(?) 4,4

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

(?) &

(?) %

(!) #

(?) ^

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

(?) понятностью

(?) массовостью

(!) дискретностью

(?) точностью

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

(?) ошибкой в начальных данных

(?) ошибкой округления

(!) переполнением

(?) ошибкой по недостатку

17. Суффикс текстовых данных обозначается знаком:

(?) %

(?) #

(!) $

(?) &

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

(?) циклом с постусловием

(?) циклом с предусловием

(!) ветвящимся

(?) линейным

19. Если в некотором языке программирования операция возведения в степень заменена умножением, то определите кратчайшее число шагов выполнения алгоритма алгебраической последовательности  y = x16:

(?) 6

(?) 7

(!) 4

(?) 5

20. Если число А больше 10, то значение «истина» имеет выражение:

(?) A<>10

(?) A>=10

(!) A>10

(?) A≠10

Вариант 7

1.Основное свойство алгоритмов – детерминированность, иначе называют:

(?) массовостью

(?) результативностью

(!) определенностью

(?) понятностью

2. Алгебраическое выражение  y = ecosx - 1 в программировании преобразуется к виду:

(?) y = cos(x)*e - 1

(?) y = e cos(x) - 1

(!) y = exp(cos(x)) - 1

(?) y = exp(cos(x) - 1

3. К языкам низкого уровня не относятся:

(?) автокоды

(?) макросы

(!) объектно-ориентированные

(?) ассемблеры

4. Результатом операции 25\5 является число:

(?) 2

(?) 10

(!) 5

(?) 6

5. Число, обозначенное как integer, может иметь значение:

(?) 45.78

(?) 4.7E

(!) 2432

(?) 1010.101

6. Определите, сколько раз будет выполняться тело оператора цикла с параметром при начальном (a) и конечном (b) значениях параметра цикла равных: a=2, b=10. Шаг изменения параметра цикла равен 2.

(?) 10

(?) 3

(!) 5

(?) 6

7. Если в некотором языке программирования операция возведения в степень заменена умножением, то определите кратчайшее число шагов выполнения алгоритма алгебраической последовательности  y = x17:

(?) 6

(?) 7

(!) 5

(?) 4

8. Из приведенных ниже выражений истинным является:

(?) 7 > 10

(?) 5.7<> 5.7

(!) “Юля”<> “Маша”

(?)“Дом”> “Дом

9. Совокупность различных программ, используемых для автоматизации  процессов программирования сценариев работы ЭВМ, называется:

(?) ассемблером

(?) макросом

(!) системой программирования

(?) компилятором

10. Результатом выполнения арифметической последовательности чисел

y = abs (15*2 + 5 - 35) чисел является:

(?) -1

(?) +1

(!) 0

(?) +2

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

(?)#

(?) %

(!) &

(?) ^

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

(?) INPUT

(?) PRINT

(!) TAB

(?) :=

13. В число спецификаторов форматов для числовых символов обычно не используют знак:

(?) +

(?) **

(!) @

(?) ^^^^

14. Результатом выполнения программы деления числа 29 на 5 будет число:

(?) 5

(?) 6

(!) 5.6

(?) 5,6

15. Если число А больше или равно 10, то значение «истина» имеет выражение:

(?) A<>10

(?) A>10

(!) A>=10

(?) A≠10

16. Длина текста “Программа демонстрирует организацию циклов” составляет:

(?) 33 символа

(?) 30 символов

(!) 32 символа

(?) 29 символов

17. Вычислительный процесс, повторяющийся последовательно шаг за шагом, называется:

(?) циклом с постусловием

(?) циклом с предусловием

(!) линейным

(?) ветвящимся

18. Именем переменной при написании программы можно выбрать слово:

(?) PRINT

(?) MOD

(!) AGE

(?) CLS

19. Если задано, что в цикле с параметром К для переменной К начальное значение равно 10, а конечное 2, то при выполнении цикла за 5 шагов величина шага должна быть равной:

(?) +1

(?) +2

(!) -2

(?) -5

20. Вид алгоритма, выполняющийся за конечное число шагов, носит название:

(?) детерминистического

(?) детерминированного

(!) терминистического

(?) итерационного

Контрольная работа по теме 7.

Задача 1. Построить блок-схему алгоритма обмена данными трех переменных A, B и С, при котором  в результате обмена A = B, B=С, а С= A.

Решение. Блок-схема линейного алгоритма представлена на рисунке 1.

Рисунок 1 - Блок-схема линейного алгоритма задачи 1.

Задача 2. Описать алгоритм, представленный на рисунке 2, если a и b –  целые числа.

Рисунок 2 - Блок-схема алгоритма задачи 2.

Решение. Данная блок-схема представляет собой алгоритм нахождения НОД целых чисел с использованием операции нахождения остатка MOD.

Задача 3. Алгоритм, блок-схема которого приведена на рисунке  3, показывает ввод с клавиатуры трех чисел: 3, 2, 1. В результате выполнения алгоритма после ввода переменных A, B и C были напечатаны соответствующие числа. Какие числа последовательно выводились на экран в результате выполнения алгоритма?


Рисунок 3 - Блок-схема алгоритма задачи 3.

Решение. Вводятся следующие числа: 3, 2 ,1; 1, 3, 4; 4, 1, 17; 17, 4, 293.

Задача 4. Элементы двумерного массива (I = 5, J=6) представлены в таблице 1. Построить блок-схему алгоритма нахождения количества элементов, у которых значения не равны результату целочисленного деления значения первого элемента на значение последнего. Определить количество таких элементов.

Таблица 1.  Значение элементов двумерного массива

I/J

1

2

3

4

5

1

9

8

10

2

7

2

12

10

5

8

12

3

9

13

4

9

1

4

2

6

7

2

0

5

0

5

8

7

9

6

7

3

1

8

4

Решение. Таких элементов 28. Блок-схема алгоритма представлена на рисунке 4.

Рисунок 4 - Блок-схема алгоритма задачи 4.

Задача 5. По представленной блок-схеме на рисунке 5 найти выводимое на экран значение k, полученное в результате определения максимального элемента одномерного массива из 15 элементов.

Рисунок 5 - Блок-схема алгоритма задачи 5.

Решение. Значение k равно 30.

Задача 6. По представленной на рисунке блок-схеме определить значение выводимой на экран переменной S.

 

Рисунок 18 - Блок-схема алгоритма задачи  6.

Решение. S=29.

Задача 7. Представление алгебраических выражений при написании программ. Представить следующую алгебраическую формулу:

 

Решение. y = (8*x^3 + sin(x+1)^2 +exp((-1)*x))^(1/5) + ((x^2+0.25)^(1/3) –sqr(cos(x)-2*x^2))/(abs(exp(x)+1)+tan(x+0.8)).


     
i=m,n k

S

Начало

Команда 1

Команда 2

Команда N

Конец

Серия 2

Сурия 1

Условие

Серия

Условие 2

Серия 2

Серия 1

Условие 1

Тело цикла

Счётчик

Тело цикла

Условие

Тело цикла

Условие

подпрограмма


 

А также другие работы, которые могут Вас заинтересовать

14024. МУЗИЧНА КУЛЬТУРА ІНДІЇ І ДАЛЕКОГО СХОДУ 32.23 KB
  МУЗИЧНА КУЛЬТУРА ІНДІЇ І ДАЛЕКОГО СХОДУ ТЕМА Индия Искусство танца в Индии сохранилось с самых давних времен до сих пор в фактически неизменном виде. Первые упоминания о нем содержатся в Ригведе. Теоретическое обоснование танец получил в давних трактатах ко
14025. Андре́й Ви́кторович Кузьме́нко Скрябин 17.68 KB
  Скрябин Андре́й Ви́кторович Кузьме́нкоукраинский певец писатель телеведущий продюсер актер. Лидер группы Скрябин. Более известен под псевдонимом Кузьма. Биография Родился 17 августа 1968 года в городе Самбор хотя детство и школьные годы провел в Новояворов...
14026. Музична культура України другої половини XVIII ст. 61 KB
  Реферат на тему: Музична культура України другої половини XVIII ст. Музична культура В історії української музичної культури другу половину XVIII ст. називають золотим віком української музики. У цей період класичних вершин досягає духовна хорова творчість блиск...
14027. Региональная экономик 45 KB
  Метод обоснования показателей с помощью установленных норм и нормативов, в пределах которых должны совершаться проектные социально-экономические и технологические явления и процессы.
14028. Степан Руданський. Співомовки. «Вовки» 44 KB
  УРОК № 19 Тема.Степан Руданський. Співомовки. Вовки. Мета:ознайомити учнів із життям і творчістю С. Руданського поняттям співомовка; розвивати навички виразного читання ліричних творів їх аналізу визначення головної думки; виховувати почуття гумору оптимістичн...
14029. Природные ресурсы, их классификация и оценка 485 KB
  Природные ресурсы – компоненты и свойства природы, которые непосредственно используются в хозяйственной деятельности как средства производства, предметы труда и потребления. Поиск, изучение и использование природных ресурсов объединяются в особый вид хозяйственной деятельности – ресурсопользование
14030. Руданський. «Козак і король», «Запорожці у короля» 30.5 KB
  УРОК № 20 Тема.С. Руданський. Козак і король Запорожці у короля. Мета:ознайомити учнів зі співомовками письменника допомогти їм побачити зв’язок гумористичного відображення дійсності із серйозними історичними фактами; розвивати навички виразного читання анал...
14031. Гамма-излучение 5.8 MB
  Однако для корректного проведения лучевой терапии необходимой является проверка качества облучения, иначе подведенная доза может оказаться завышенной или заниженной, что пагубно скажется на качестве облучения.
14032. «Окуляри» С. Руданський 28.5 KB
  УРОК № 21 Тема. С. Руданський. Окуляри. Мета: ознайомити учнів із твором письменника допомогти їм усвідомити його зміст; закріпити знання про гумор комічне; розвивати навички виразного читання аналізу співомовок співставлення головної думки твору з реальним життя...