Ошибки допущенные на этапе разработки алгоритма называются

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

Алгоритм – одно
из основных математических понятий.
Происхождение термина «алгоритм»
связывают с именем великого узбекского
математика и астронома аль-Хорезми,
жившего в IXвеке и
разработавшего правила выполнения
четырех арифметических действий над
числами в десятичной системе счисления.
Множества этих правил назвали алгоритмом
(algorithmi- от латинского
написания имени аль-Хорезми), а затем
словом «алгоритм» стали обозначать
совокупность правил определенного
вида, а не только правил выполнения
арифметических действий.

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

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

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

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

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

Вопрос:

Имеется газовая
плита, спички, водопровод, чайник. Как
вскипятить чай?

Ответ:

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

Вопрос:

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

Ответ:

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

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

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

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

Правильно
разработанный алгоритм должен обладать
следующими свойствами:

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

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

  • дискретностью
    — возможность расчленить его на конечное
    количество отдельных «элементарных»
    шагов;

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

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

Пример.

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

а) умножить число
хна 10;

б) к результату
прибавить число 5;

в) полученную сумму
удвоить;

г) сообщить
полученное число.

Зная полученное
число mможно отгадать
задуманное число х, используя
следующий алгоритм:

  1. разделить
    число mна 10, перейти
    к пункту 2;

  2. от
    результата отнять единицу, перейти к
    пункту 3;

  3. полученный
    результат разделить на 2.

Это и будет
задуманное число х.

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

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

Формальность– очень важная черта каждого алгоритма.
Именно благодаря этому исполнение
алгоритма можно поручить любому автомату,
который «умеет» точно выполнять команды
алгоритма.

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

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

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

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

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

Операторная
запись алгоритма
представляет собой
изображение алгоритма в виде
последовательности операторов какого-либо
алгоритмического языка.

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

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

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

УСЛОВНЫЕ
ГРАФИЧЕСКИЕ ОБОЗНАЧЕНИЯ, ПРИМЕНЯЕМЫЕ
ПРИ СОСТАВЛЕНИИ СХЕМ АЛГОРИТМОВ.

№ п/п

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

Символ

Отображаемая
функция

1

Блок
вычислений (процесс)

Вычислительное
действие или последователь-ность
вычисли-тельных действий

2

Логический
блок (решение)

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

3

Блоки
ввода-вывода

Общее
обозначение ввода или вывода данных
(в незави-симости от физи-ческого
носителя)

Вывод
данных, носителем кото-рых служит
доку-мент (печатающее устройство)

4

Начало-конец
(вход – выход)

Начало
или конец программы, оста-нов, вход
или выход в подпрог-раммах

5

Предопределён­ный
процесс (подпрограмма)

Вычисления
по стандартной под-программе или
подпрограмме пользователя

6

Блок
модификации (заголовок цикла)

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

7

Соединитель

Указание
связи между прерванными линиями
потока информации в пределах одной
страницы

8

Межстранич-ный
соединитель

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Содержание:

Введение

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

Понятие алгоритма – одно из фундаментальных понятий, которое составляет самостоятельную дисциплину — «теорию алгоритмов». Также теорию алгоритмов можно рассматривать промежуточным звеном между двумя дисциплинами: математикой и информатикой, связанной с программированием.

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

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

Задачи работы:

Формирование базовых знаний по алгоритмизации, рациональные методах разработки алгоритмов;

Изучение базовых алгоритмических структур;

Изучение объектов алгоритмов.

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

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

I этап – постановка задачи. На данном этапе должна быть определена предметная область задачи, определены её цели, необходимый объем исходной информации, проведено описание всех исходных данных. Предложен общий подход к решению.

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

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

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

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

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

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

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

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

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

Понятие алгоритма

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

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

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

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

Алгоритм — понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи.[11]

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

Сам термин алгоритм происходит от имени узбекского ученого IХ в. Аль- Хорезми, который в своем труде «Арифметический трактат» изложил правила арифметических действий над числами в десятичной системе счисления. Эти правила и были названы алгоритмами. Следовательно, правила сложения, вычитания, деления, умножения чисел, правила преобразования алгебраических выражений, правила построения геометрических фигур, грамматические правила правописания слов и предложений — все это алгоритмы. Многие правила, инструкции, записанные в различных документах и представляющие собой подробные указания, которые могут быть использованы во всевозможных ситуациях, можно также отнести к алгоритмам.

Виды алгоритмов как логико-математических средств отражают также компоненты человеческой деятельности, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения и определения действий исполнителя подразделяются на [14]:

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

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

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

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

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

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

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

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

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

Типичный пример эквивалентного преобразования алгоритмов — перевод с одного алгоритмического языка на другой.

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

1) последовательную декомпозицию задачи, выделение независимых этапов вычислительного процесса и разбивку каждого этапа на отдельные шаги;

2) формальную запись содержания каждого этапа или шага;

3) определение общего порядка выполнения этапов или шагов;

4) проверку правильности алгоритма.[3]

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

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

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

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

На втором этапе остается лишь выполнить кодирование (программирование), заменив формульно-словесные инструкции алгоритма операторами конкретного языка. Эта работа уже не связана с большим умственным напряжением. При простых задачах для ее выполнения достаточно знать общие правила оформления программ, правила описания данных, основные операторы (ввода, вывода, управления, обработки). [3]

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

Свойства алгоритмов

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

Алгоритмы обладают следующими свойствами [4]: понятностью, дискретностью, точностью, результативностью, массовостью.

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

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

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

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

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

Характеристики алгоритмов

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

Временные характеристики алгоритма определяют длительность решения или временную сложность [7].

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

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

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

Для сложных задач эта характеристика имеет большое значение, т.к. её изменение значительнее влияет на время решения, чем изменение быстродействия компьютера. Например, при зависимости f(n) = 2n увеличение производительности в 10 раз увеличивает размерность задачи, решаемой за то же время, только на 15% [7].

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

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

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

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

Очевидно, что при выборе алгоритмов требуется учитывать не только их характеристики качества, но и способ реализации алгоритма. Например, многие итерационные алгоритмы удобны для компьютера, но слишком трудоемки для человека. Тип используемого компьютера также может влиять на выбор алгоритма (но иногда имеет место и обратный вариант, когда сначала определяется алгоритм и лишь затем способ реализации). [7]

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

Рассмотрим основные способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.

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

Пример. Запишем алгоритм Эвклида нахождения наибольшего общего делителя двух натуральных чисел.

Алгоритм следующий:

  1. задать два числа;
  2. если числа равны, то взять любое из них в качестве результата и остановиться, в противном случае продолжить выполнение алгоритма;
  3. определить набольшее из чисел;
  4. заменить набольшее из чисел разностью большего и меньшего из чисел;
  5. повторить алгоритм с шага 2.

Описанный алгоритм применим к любым натуральным числам и должен однозначно приводить к решению поставленной задачи. Убедимся в этом, определив наибольший общий делитель (НОД) чисел 125 и 75.

  1. а = 125; b = 75
  2. 125 — 75 = 50; а = 50, b = 75
  3. 75 — 50 = 25; а = 50, b = 25
  4. 50 — 25 = 25; а = 25, b = 25
  5. НОД = 25; 125 / 25 = 5, 75 / 25 = 3

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

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

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

Пример.

Основные служебные слова

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

сим (символьный)

дано

для

да

арг (аргумент)

лит (литерный)

надо

от

нет

рез (результат)

лог (логический)

если

до

при

нач (начало)

таб(таблица)

то

знач

выбор

кон (конец)

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

иначе

и

ввод

цел (целый)

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

все

или

вывод

вещ (вещественный)

длин (длина)

пока

не

утв

Общий вид алгоритма:

алг название алгоритма (параметры)

дано условия применимости алгоритма

надо цель выполнения алгоритма

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

| последовательность команд (тело алгоритма)

кон

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

Блок-схема — описание структуры алгоритма с помощью геометрических фигур с соединительными линиями-связями, показывающими порядок выполнения отдельных инструкций. Данный способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает читаемость алгоритма и явно отображает порядок выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур. Запись алгоритма должна выполняться в соответ­ствии с ГОСТ 19.701-90 «Схемы алгоритмов, программ данных и систем. Условные обозначения и правила выполнения».[2]

Пример.

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

Обозначение и пример заполнения

Пояснение

Процесс

да

нет

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

Решение

Проверка условий

Модификация

Начало цикла

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

Вычисления по подпрограмме, стандартной подпрограмме

Ввод-вывод

Ввод-вывод в общем виде

Пуск-останов

Начало, конец алгоритма, вход и выход в подпрограмму

Документ

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

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

Программа — описание структуры алгоритма на языке алгоритмического программирования. С другой стороны, понятие «программа» нельзя трактовать только таким образом, программа на языке декларативного программирования представляет собой совокупность описанных знаний и не содержит явного алгоритма исполнения.[9]

Типы алгоритмов

Существует три основных типа алгоритмов: линейный, разветвляющийся и циклический.[5]

Линейный алгоритм предполагает однократное выполнение одной и той же последовательности шагов при любых наборах исходных данных.

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

IF <условие> THEN <оператор_1> ELSE <оператор_2>

<условие> — произвольное выражение логического типа;

<оператор_1>, <оператор_2> — любые операторы алгоритмического языка.

При выполнении условия будет выполняться <оператор_1>, в противном случае <оператор_2>. Часть оператора ELSE может быть опущена. В этом случае мы имеем краткую форму записи оператора:

IF <условие> THEN <оператор>

При выполнении условия будет выполняться <оператор>, в случае невыполнения условия выполняется первый оператор, следующий за оператором IF.

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

цикл — пока

условие В;

повторить

действие А;

все — цикл

выбор — по

если (=0)

действие А;

если (=1)

действие В;

если (=2)

действие С;

все — выбор

если α, то действие А;

иначе действие В;

все — если

действие А

действие В

А

В

α

А

В

цикл

действие А;

по

условие В;

все — цикл

д)

нет

да

B

A

=1

i

А

B

C

цикл — пока

условие В;

повторить

действие А1

если

условие γ

то

выйти…

все — если

действие А2;

все — пока

е)

к обработке

ошибки

да

да

B

A1

да

γ

B

A2

A

  1. Основные управляющие структуры. а)последовательность; б)разветвление; в)выбор; г)цикл «пока»; д)цикл «до»; е)выход из цикла

Примеры записи основных алгоритмических структур на языке Pascal.

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

Найти сумму, разность и произведение двух чисел.

program lin;

var

a, b, s, r, p: real;

begin

writeln(‘Введите числа a, b ‘);

readln(a, b);

s := a + b;

r := a — b;

p := a * b;

writeln(‘Сумма ‘, s:6:2);

writeln(‘разность ‘, r:6:2);

writeln(‘произведение ‘, p:6:2);

readln;

end.

2. Разветвляющийся алгоритм

Вывод на экран последовательности вида

может быть организован следующей программой:

program vetv;

var

n, i: integer;

f: boolean;

begin

write(‘Введите натуральное число n = ‘);

readln (n);

if n mod 2=0 then

f := false

else

f := true;

write(‘s =’);

for i := 1 to n — 2 do

if (not f) and (i mod 2 = 0) then

write(i,’*’)

else

if f and (i mod 2 <>0) then

write(i,’*’);

writeln(n)

end.

3. Циклический алгоритм

Вводится последовательность из N целых чисел. Найти сумму всех ее чисел.

program cikl;

var

n, x, sum, i: integer;

begin

write(‘ВВедите длину последовательности n = ‘);

readln (n);

sum := 0;

for i := 1 to n do

begin

write(‘Введите х = ‘);

readln (x);

sum := sum+x

end;

writeln(‘Сумма чисел sum = ‘, sum);

end.

Вспомогательные алгоритмы

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

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

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

Декомпозиция алгоритма

Под декомпозицией алгоритма понимают разделение его o6щeй алгоритмической схемы на вспомогательные алгоритмы (процедуры и функции) и главный алгоритм. [12]

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

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

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

Процедура сортировки требует перестановки значений двух простых переменных. Вспомогательный алгоритм, реализующий эту процедуру, показан на рис. 2. Алгоритм имеет имя Swap и два формальных параметра — переменные a, b. Тело алгоритма состоит из одного блока, где выполняется три оператора присваивания. Сначала оператором c := a значение ячейки a копируется во вспомогательную переменную c, затем оператором a := b из ячейки с адресом b производится копирование значения в ячейку с адресом a, последним оператором b := c из вспомогательной ячейки с адресом c значение копируется в переменную с адресом b. В результате такого кругового копирования содержимое ячеек a и b поменяется местами.

Swap(a, b)

c = a; a = b; b =c

Конец

1

2

3

  1. Процедура Swap

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

Основной алгоритм сортировки массива приведен на рис. 3. Алгоритм имеет имя Bubble и содержит два формальных параметра: N — длина массива, Z — имя массива, который нужно отсортировать.

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

1

Bubble(N, Z)

L = 0

Конец

2

3

i = 1, N — 1

4

Zi+1 > Zi

Perm(Zi+1, Zi)

5

L = L + 1

6

да

нет

L = 0

да

нет

7

8

  1. Процедура Bubble

Алгоритм работает следующим образом. Сначала в блоке 2 параметр L получает значение 0 (ноль). Далее выполняется внутренний цикл из блоков 3 — 6. В нем счетчик цикла i будет последовательно принимать значения 1, 2, 3, …, N-1. При каждом таком значении счетчика в блоке 4 производится сравнение соседних элементов с номерами i и i + 1. В том случае, если пара не отсортирована, то в блоке 5, используя вспомогательный алгоритм Swap, эта пара будет отсортирована путем перестановки значений этих элементов. После каждой перестановки счетчик перестановок L будет увеличиваться на 1. После прохода по всем парам элементов по завершении внутреннего цикла выполнится проверка количества совершенных перестановок. Если перестановок не было (т.е. L = 0), то это означает, что массив отсортирован и работа процедуры сортировки завершена. Если же L отлично от 0, то управление предается на блок 2 и процесс сортировки продолжится по той же схеме. Внешний цикл будет выполняться до тех пор, пока при выполнении по внутреннего цикла не будет выполнено ни одной перестановки.

На рис. 4 показан главный управляющий алгоритм, который и решает поставленную задачу. Сначала в блоке 2 задается количество N элементов массива и вводятся значения всех N элементов массива A. Затем в блоке 3 происходит вызов алгоритма сортировки Bubble. В нем на место формального параметра N подставляется фактическое значение параметра N головного алгоритма, а на место формального массива Z подставляется фактический массив A. Теперь управление передается в алгоритм Bubble, который выполнит сортировку массива A. После сортировки в блоке 4 головного алгоритма отсортированный массив будет выведен. В блоке 5 алгоритм закончит свою работу.

Начало

N, A

Конец

1

2

5

Bubble(A, N)

3

A

4

  1. Головной алгоритм

Реализация алгоритмов

После разработки алгоритма встает задача его реализации в виде программы, которую можно выполнить на вычислительной машине (компьютере). В ГОСТ 19781-90 дано следующее определение программы.

Программа — это данные, предназначенные для управления конкретными компонентами обработки информации в целях реализации определенного алгоритма.[1]

Для написания программы необходимо в первую очередь выбрать язык программирования (алгоритмический язык). В общем случае алгоритмический язык — это набор символов с заданными правилами образования из этих символов конструкций, с помощью которых описывается процесс выполнения алгоритма. В ГОСТ 19781-90 дано следующее определение алгоритмического языка.[1]

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

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

Выбор языка определяется:

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

Например, для программирования сложных (чаще всего системных) задач выбирают язык Ассемблер или С++, а для решения инженерных задач предпочтение отдают Pascal (Object Pascal), Fortran, C# или Basic.

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

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

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

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

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

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

Ошибки в алгоритме — в этом случае необходимо вернутся к начальным этапам разработки алгоритма. Для выявления этих ошибок рекомендуется выполнить тестирование алгоритма. [13]

Схема этапов подготовки программы представлена на рис. 5.

Тестирование алгоритма

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

В общем случае отсутствуют универсальные правила выполнения тестирования.

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

Исходный модуль

Объектный модуль

Исполняемая программа

Библиотека объектных модулей

Транслятор

Компоновщик

Этап 1

Этап 2

Этап 3

  1. Этапы подготовки программы

Для более детального анализа правильности алгоритма и программы необходимо при отладке программы предусмотреть вывод этапов прохождения алгоритма, промежуточных переменных и переменных цикла. [7]

Величины в алгоритмах

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

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

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

Типы данных: вещественные, целые, логические, текстовые, символьные и другие.

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

Константа — это величина, значение которой не изменяется в процессе выполнения алгоритма.

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

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

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

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

Массив может быть одномерным, количество индексов — один; двумерным, количество индексов — два и т.д. Количество индексов определяет размерность массива.

Первый компонент одномерного массива — это элемент с номером 1, второй — с номером 2 и т.д., запись в математике — X1, X2,… При программировании запись более формализована: X(1), X(2),… (в некоторых языках программирования допускается использование нулевых и отрицательных индексов).

Двумерный массив — это матрица из строк и столбцов. Первый индекс определяет номер строки, второй — номер столбца. Номер строки изменяется от 1 до N, где N — полное число строк, номер столбца от 1 до М, где М — полное число столбцов. При программировании элементы двумерного массива по имени Y будут записаны Y(1,1), Y(1,2), Y(1,3) и т.д. Индексы отделяются запятыми.

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

Основными характеристиками массива являются:

— имя массива;

— тип элементов;

— размерность, равная количеству измерений массива;

— значения верхней и нижней границы для каждого индекса;

— размер массива — количество компонентов. [4]

Типовые приемы алгоритмизации

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

  • алгоритмы накопления (счетчик, вычисление суммы и произведения элементов массива);
  • поиск максимума (минимума);
  • сортировка.

Вычисление суммы и произведения

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

S = S + у,

где у — очередное слагаемое;

S — промежуточная сумма.

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

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

P = P⋅у,

где у — очередной сомножитель;

Р — промежуточное произведение.

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

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

Задача. Задан массив по имени А, состоящий из 20 элементов Аi; i = 1, …, 20. Составить алгоритм вычисления суммы и произведения элементов этого массива.

Решение. В соответствии со смыслом описываемых величин выбираем имя переменных: для суммы — S, произведения — P.

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

1. Ввод массива Ai; i = 1, …, 20.

2. Задание начальных значений переменных S и P.

S = 0, P = 1.

3. Цикл. Задаются параметры цикла: начальное значение параметра цикла 1, конечное значение 20, шаг 1.

4. Вычисление текущих значений S и P.

S = S + Ai;

P = P × Ai.

5. Проверка окончания цикла. Если параметр цикла меньше конечного значения, то увеличиваем переменную цикла на 1 и переходим к шагу 4. Если переменная цикла больше конечного значения, то переходим к шагу 6.

6. Печать вычисленных значений S и P.

7. Конец.

Вычисление количества элементов

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

К = К + 1.

Начальное значение К = 0.

Задача. Задан массив А, состоящий из 20 элементов, Ai; i = 1, …, 20. Составить алгоритм вычисления суммы и количества положительных элементов массива.

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

1. Ввод массива Ai; i = 1, …, 20.

2. Задание начальных значений переменных

S = 0,

К = 0.

3. Цикл. Задаются начальное и конечное значение переменной цикла и шаг цикла.

4. Проверка очередного элемента Ai на знак. Если условие Ai > 0 выполняется, то переход к шагу 5, если нет — к шагу 6.

5. Накопление суммы

S = S + X,

и увеличение счетчика К на 1,

К = К + 1.

6. Проверка окончания цикла.

7. Печать значений S и К.

8. Конец.

Нахождение максимального и минимального элементов в заданной последовательности

Задача. Задан массив Ai; j = 1, …, 30. Найти максимальный элемент этого массива.

Решение. Поиск максимального элемента массива выполняется в цикле путём последовательного сравнения значения текущего элемента массива с максимальным элементом из всех предыдущих. И, если значение текущего элемента больше максимального из предыдущих, то максимуму присваивается значение текущего элемента. В j-м цикле для выбора максимального элемента используется следующая формула:

После окончания цикла значение Аmax будет максимальным из всёх рассмотренных значений А.

Для применения указанного способа необходимо перед началом цикла задать начальное значение Аmax некоторое начальное значение. Например, это может быть значение первого элемента массива. Поиск в цикле начинается со второго элемента. При первом выполнении цикла (j = 2) Аmax будет сравниваться с А2. И если А2 будет больше Аmax, то меняем значение Аmax, присваивая переменной Аmax значение А2. И продолжаем сравнение, теперь уже со следующим элементом.

Можно взять в качестве начального значения заведомо маленькое число. Тогда после выполнения первого цикла (j = 1) Аmax будет равен А1. Данный приём используется в циклах с простыми переменными.

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

1. Ввод исходного массива А; j = 1, …, 30.

2. Задание начального значения Аmax = А1.

3. Цикл. Задаются параметры цикла: начальное значение переменной цикла 2, конечное значение 30, шаг цикла 1.

4. Сравнение очередного j-го элемента Аj и Аmax. Проверяется условие Аj > Аmax? Если условие выполняется, переход к шагу 5, если нет, то — к шагу 6.

5. Присвоение Аmax = Аj.

6. Конец цикла.

7. Печать максимального элемента массива Аmax.

8. Конец.

Если надо найти минимальный элемент массива, то для выбора минимального элемента используется формула

и алгоритм выбора аналогичен рассмотренному выше.

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

Задача. Для массива А, заданного в предыдущей задаче, найти минимальный элемент Аmin и его порядковый номер jmin.

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

2. Задание начального значения Аmin = А1, jmin = 1.

4. Сравнение очередного элемента Аj и Аmin. Если Аj меньше Аmin, то переход к шагу 5, если больше — к шагу 6.

5. Присвоение Аmin = Аj, jmin = j.

6. Конец цикла.

7. Печать номера минимального элемента jmin и значения минимального элемента Аmin.

Так как цикл начнется со второго элемента массива, то первый элемент А1 может оказаться минимальным. Поэтому в п. 2 задаётся начальное значение не только Аmin = А1, но и jmin = 1.

Структуры с вложенными циклами

Алгоритмы решения многих задач требуют нескольких циклов. Это:

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

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

Например, вычисление суммы всех элементов матрицы. Здесь начальное значение суммы элементов нужно задать перед внешним циклом, а накапливать её во внутреннем цикле.

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

Задача. Задана матрица Х(N×М). Определить количество положительных элементов в каждой строке матрицы.

Решение. Матрица Х имеет размер N×М, т.е. в ней N строк и М столбцов. Вводить и печатать матрицу будем в общепринятом виде — по строкам. Вывод матрицы на печать необходим для получения результата в удобном для чтения виде.

Алгоритм.

1. Ввод матрицы Х(N, М), где i = 1, …, N; j = 1, …, М.

2. Печать исходной матрицы Х(N, М), где i = 1, N; j = 1, М.

3. Внешний цикл по строкам. Переменная цикла i изменяется от 1 до N, шаг 1.

4. Задание начального значения количества положительных элементов для каждой строки матрицы К = 0.

5. Внутренний цикл по столбцам. Параметр цикла j изменяется о 1 до М, шаг 1.

6. Проверка очередного элемента Хij на знак. Если Хij больше или равно нулю, то переход к шагу 7, иначе — к шагу 8.

7. Увеличение счетчика количества положительных элементов К на 1,

К = К + 1.

8. Конец внутреннего цикла.

9. Печать номера строки i и количества положительных элементов К.

10. Конец внешнего цикла.

11. Конец.

Заключение

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

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

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

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

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

Список использованной литературы

  1. ГОСТ 19.781-90. Обеспечение систем обработки информации программное. Термины и определения. –М.: Стандартинформ, 2010. –172 с.
  2. ГОСТ 19.701-90. Схемы алгоритмов, программ данных и систем. Условные обозначения и правила выполнения. –М.: Стандартинформ, 2010. –172 с.
  3. Белов М. П. Основы алгоритмизации в информационных системах: Учеб. пособие. -СПб.: СЗТУ, 2003. — 85 с.
  4. Давыдов И. С. Информатика. -М.: Проспект Науки, 2009. -480 с.
  5. Голицына О.П., Попов И.И. Основы алгоритмизации и программирования. Учебное пособие. -М.: Инфра-М, 2015. -432 с.
  6. Ефимова О.В., Морозов В.В., Угринович Н.Д. Курс компьютерной технологии с основами информатики. –М.: АБФ, ACT, 2015. –482 с.
  7. Затонский А.В., Бильфельд Н.В. Программирование и основы алгоритмизации. -М.: ДРОФА, 2014. -176 с.
  8. Информатика: учебник/ Б.В. Соболь. –Ростов н/Д: Феникс, 2016. –446 с.
  9. Канцедал С.А. Алгоритмизация и программирование. -М.: Инфра-М, 2016. -352 с.
  10. Колмыкова Е. А., Кумскова И. А. Информатика. –М.: Академия, 2010. — 416 с.
  11. Макарова Н. В., Волков В. Б. Информатика. –СПб.: Питер, 2011. -576 с.
  12. Незнанов А.А. Программирование и алгоритмизация. -М.: Academia, 2010. -304 с.
  13. Потопахин В.В. Искусство алгоритмизации. -М.: ДМК Пресс, 2014. -320 с.
  14. Степанов А.Н. Информатика: учеб. пособие / А.Н. Степанов. — СПб.: Питер, 2008. –765 с.

СПИСОК ДЛЯ ТРЕНИРОВКИ ССЫЛОК

  • Анализ материалов об объектно-ориентированном подходе и обзор наиболее популярных программных средств реализации данного подхода.
  • Субъекты предпринимательского права ( Правовой статус субъектов предпринимательской деятельности и их юридическое закрепление в нормах права)
  • Нотариат в РФ (История и основные мировые системы нотариата)
  • Проектирование реализации операций бизнес-процесса «Разработка бюджетов»
  • Роль информационного права и информационной безопасности в современном обществе (Понятие и сущность информационного права)
  • Невербальные проявления эмоциональных состояний человека
  • Разработка регламента выполнения процесса «Предоставление рекламных услуг» ( Построение бизнес-процессов «как есть»)
  • Лицензирование отдельных видов предпринимательской деятельности ( Понятие лицензирования)
  • Статус нотариуса ( Понятие нотариата, его основные характеристики )
  • Государственное регулирование предпринимательской деятельности. Сущность. условия, механизм
  • Нотариат и его роль в защите гражданских прав и охраняемых законом интересов ( Нотариус, его права и обязанности)
  • Классификация систем защиты программного обеспечения (Основные виды, средства и методы защиты информации)

«ТЕХНОЛОГИЯ РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

1  Какие программы можно отнести к системному ПО

1)      
+драйверы 

2)      
текстовые редакторы 

3)      
электронные таблицы 

4)      
графические редакторы

5)      
все ответы верны

2  Специфические особенности ПО как продукта

1)      
+продажа по ценам
ниже себестоимости (лицензирование)   

2)      
низкие материальные
затраты при создании программ 

3)      
возможность создание
программ небольшие коллективом или даже одним человеком 

4)      
разнообразие решаемых
задач с помощью программных средств

5) все ответы верны

3  Какие программы нельзя отнести к системному ПО

1)      
+игровые программы 

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

3)      
операционные системы 

4)      
системы управления
базами данных

5)      
все ответы верны

4  Специфические особенности ПО как продукта

1)      
+низкие затраты
при дублировании 

2)      
универсальность 

3)      
простота эксплуатации 

4)      
наличие поддержки
(сопровождения) со стороны разработчика

5)      
все ответы верны

5  Какие программы можно отнести к системному ПО

1)      
+утилиты 

2)      
экономические
программы 

3)      
статистические
программы 

4)      
мультимедийные программы

5)      
все ответы верны

6  Этап,
занимающий наибольшее время, при разработке программы

1)       +тестирование 

2)      
сопровождение 

3)      
проектирование 

4)      
программирование 

5)      
формулировка
требований

7  Первый этап в жизненном цикле программы

1)      
+формулирование
требований 

2)      
анализ требований 

3)      
проектирование 

4)      
автономное
тестирование 

5)      
комплексное
тестирование

8  Один из необязательных этапов жизненного цикла программы

1)      
+оптимизация 

2)      
проектирование 

3)      
тестирование 

4)      
программирование 

5)      
анализ требований

9  Самый большой
этап в жизненном цикле программы

1)      
+эксплуатация 

2)      
изучение предметной
области 

3)      
программирование 

4)      
тестирование 

5)      
корректировка ошибок

10  Какой этап
выполняется раньше

1)      
отладка 

2)      
оптимизация 

3)      
+программирование 

4)      
тестирование

5)      
все ответы верны

11  Что выполняется раньше

1)      
+компиляция 

2)      
отладка 

3)      
компоновка 

4)      
тестирование

5) нет правильного ответа

12  Что выполняется раньше

1)       +проектирование 

2)      
программирование 

3)      
отладка 

4)      
тестирование

5)      
компоновка

13  В стадии разработки программы не входит

1)      
+автоматизация
программирования 

2)      
постановка задачи 

3)      
составление
спецификаций 

4)      
эскизный проект 

5)      
тестирование

14  Самый важный критерий качества программы

1)      
+работоспособность 

2)      
надежность 

3)      
эффективность 

4)      
быстродействие 

5)      
простота эксплуатации

15  Способы оценки качества

1)      
+сравнение с
аналогами 

2)      
наличие документации 

3)      
оптимизация программы 

4)      
структурирование
алгоритма

5)      
хранение и
запоминание информации

16  Наиболее важный критерий качества

1)      
+надежность 

2)      
быстродействие 

3)      
удобство в
эксплуатации 

4)      
удобный интерфейс 

5)      
эффективность

17  Способы оценки надежности

1)      
+тестирование 

2)      
сравнение с аналогами 

3)      
трассировка 

4)      
оптимизация

5)      
удобный интерфейс

18  В каких единицах можно измерить надежность

1)      
+отказов/час   

2)      
км/час 

3)      
Кбайт/сек 

4)      
операций/сек

5)      
мб/сек

19  В каких единицах можно измерить быстродействие

1)      
отказов/час   

2)      
км/час 

3)      
Кбайт/сек 

4)      
+операций/сек

5)      
мб/сек

20  Что относится к этапу программирования

1)      
+написание
кода программы 

2)      
 разработка
интерфейса 

3)      
 работоспособность 

4)      
анализ требований

5)      
создание базы данных

21  Последовательность
этапов программирования

1)      
+компилирование,
компоновка, отладка 

2)      
B) компоновка, отладка, компилирование 

3)      
отладка,
компилирование, компоновка 

4)      
компилирование,
отладка, компоновка

5)      
все ответы верны

22   Инструментальные средства программирования

1)      
+компиляторы,
интерпретаторы 

2)      
СУБД (системы
управления базами данных) 

3)      
BIOS (базовая система
ввода-вывода) 

4)      
ОС (операционные
системы)

5)      
нет правильного
ответа

23  На языке программирования составляется

1)      
+исходный код 

2)      
исполняемый код 

3)      
объектный код 

4)       алгоритм

5)      
предметный код

24  Правила, которым должна следовать программа это

1)      
+алгоритм 

2)      
структура 

3)      
спецификация 

4)      
состав информации 

5)      
последовательность

25  Доступ, при котором записи файла читаются в физической
последовательности, называется

1)      
+последовательным 

2)      
прямым 

3)      
простым 

4)      
основным

5)      
вторичным

26  Доступ, при котором записи файла обрабатываются в произвольной
последовательности, называется

1)      
+прямым 

2)      
последовательным 

3)      
простым 

4)      
основным

5)      
вторичным

27  Методы программирования (укажите НЕ верный ответ)

1)      
+логическое 

2)      
структурное 

3)      
модульное

4)      
компиляторное

5)      
линейное

28  Что выполняется раньше

1)      
+разработка алгоритма 

2)      
выбор языка программирования 

3)      
написание исходного кода 

4)      
компиляция

5)      
Все ответы верны

29  Найдите НЕ правильное условие для создания имен

1)      
+имена могут
содержать пробелы 

2)      
длинное имя можно
сократить 

3)      
из имени лучше
выбрасывать гласные 

4)      
можно использовать
большие буквы

5)      
нет правильного
ответа

30  Какие символы не допускаются в именах переменных

1)      
+пробелы 

2)      
цифры 

3)      
подчеркивание

4)      
знаки препинания

5)      
заглавные буквы

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

1)      
прямым указанием 

2)      
+венгерской
нотацией 

3)      
структурным
программированием 

4)      
поляризацией

5)      
Нет правильного
ответа

32  На каком этапе производится выбор языка программирования

1)      
+проектирование 

2)      
программирование 

3)      
отладка 

4)      
тестирование

5)      
разработка

33  Для решения экономических задач характерно применение

1)      
+СУБД (систем
управления базами данных) 

2)      
языков высокого
уровня 

3)      
языков низкого уровня 

4)      
применение сложных
математических расчетов

5)      
Нет правильного
ответа

34  Для решения инженерных задач характерно применение

1)      
+САПР (систем
автоматизированного проектирования)
 

2)      
СУБД (систем
управления базами данных) 

3)      
ОС (операционных систем)

4)      
(ТРПП) Технология и
разработка программного продукта

5)      
Нет правильного
ответа

35  Причины
синтаксических ошибок

1)      
+плохое знание
языка программирования 

2)      
ошибки в исходных
данных 

3)      
ошибки, допущенные на
более ранних этапах 

4)      
неправильное
применение процедуры тестирования

5)      
неправильная
установка ПО

36  Когда можно
обнаружить синтаксические ошибки

1)      
+при
компиляции 

2)      
при отладке 

3)      
при тестировании 

4)      
на этапе
проектирования 

5)      
при эксплуатации

37  Ошибки
компоновки заключаются в том, что

1)      
+указано
внешнее имя, но не объявлено 

2)      
неправильно
использовано зарезервированное слово 

3)      
составлено неверное
выражение 

4)      
указан неверный тип
переменной

5)      
Все ответы верны

38  Защитное
программирование это

1)      
+встраивание в
программу отладочных средств 

2)      
создание задач защищенных
от копирования 

3)      
разделение доступа в
программе 

4)      
использование паролей 

5)      
оформление авторских
прав на программу

39 Вид ошибки с неправильным написанием служебных слов (операторов)

1)      
+синтаксическая 

2)      
семантическая 

3)      
логическая 

4)      
символьная

5)      
алгоритмическая

40  Вид ошибки с неправильным использованием служебных слов (операторов)

1)      
+семантическая 

2)      
синтаксическая 

3)      
логическая 

4)      
символьная 

5)      
алгоритмическая

41  Ошибки при написании программы бывают

1)      
+синтаксические 

2)      
орфографические 

3)      
лексические 

4)      
фонетические 

5)      
морфологические

42  Процедура поиска ошибки, когда известно, что она есть это

1)      
+отладка 

2)      
тестирование 

3)      
компоновка 

4)      
транзакция 

5)      
трансляция

43  Программа для просмотра значений переменных при выполнении программы

1)      
+отладчик 

2)      
компилятор  

3)      
интерпретатор 

4)      
трассировка 

5)      
тестирование

44  Отладка – это

1)      
+процедура
поиска ошибок, когда известно, что ошибка есть 

2)      
определение списка
параметров 

3)      
правило вызова
процедур (функций) 

4)      
составление
блок-схемы алгоритма

5)      
нет правильного
ответа

45  Когда
программист может проследить последовательность выполнения команд программы

1)      
+при
трассировке 

2)      
при тестировании 

3)      
при компиляции 

4)      
при выполнении
программы 

5)      
при компоновке

46  На каком этапе создания программы могут появиться синтаксические
ошибки

1)      
+программирование 

2)      
проектирование 

3)      
анализ требований 

4)      
тестирование

5)      
разработка ПО

47  Когда приступают к тестированию программы

1)      
+когда программа
уже закончена 

2)      
после постановки
задачи 

3)      
на этапе
программирования 

4)      
на этапе
проектирования 

5)      
после составления
спецификаций,

48 Тестирование бывает

1)      
+автономное 

2)      
инструментальное 

3)      
визуальное 

4)      
алгоритмическое

5)      
структурное

49  Тестирование бывает

1)      
+комплексное 

2)      
инструментальное 

3)      
визуальное 

4)      
алгоритмическое

5)      
структурное

50  При комплексном тестировании проверяются

1)      
+согласованность
работы отдельных частей программы
 

2)      
правильность работы
отдельных частей программы 

3)      
быстродействие
программы 

4)      
эффективность
программы

5)      
все ответы верны

51  Чему нужно уделять больше времени, чтобы получить хорошую программу

1)      
+тестированию 

2)      
программированию 

3)      
отладке 

4)      
проектированию

5)      
разработке

52  Процесс исполнения программы с целью обнаружения ошибок

1)      
+тестирование 

2)      
кодирование 

3)      
сопровождение 

4)      
проектирование

5)      
разработка

53  Автономное тестирование это

1)      
+тестирование отдельных
частей программы 

2)      
инструментальное
средство отладки 

3)      
составление блок-схем 

4)      
пошаговая проверка
выполнения программы

5)      
все ответы верны

54  Трассировка это

1)      
+проверка
пошагового выполнения программы 

2)      
тестирование
исходного кода 

3)      
отладка модуля 

4)      
составление
блок-схемы алгоритма

5)      
нет правильного
ответа

55  Локализация ошибки

1)      
+определение
места возникновения ошибки 

2)      
определение причин
ошибки 

3)      
обнаружение причин
ошибки 

4)      
исправление ошибки

5)      
анализ данных

56  Назначение тестирования

1)      
+повышение надежности
программы 

2)      
обнаружение ошибок 

3)      
повышение
эффективности программы 

4)      
улучшение
эксплуатационных характеристик 

5)      
приведение программы
к структурированному виду

57  Назначение отладки

1)      
+поиск причин
существующих ошибок 

2)      
поиск возможных
ошибок 

3)      
составление
спецификаций 

4)      
разработка алгоритма

5)      
разработка проекта

58  Создание исполняемого кода программы без написания исходного кода
называется

1)      
составлением
спецификаций 

2)      
отладкой 

3)      
проектированием

4)      
+автоматизацией
программирования 

5)      
анализ данных

58  Один из методов автоматизации программирования

1)      
структурное
программирование 

2)      
модульное
программирование   

3)      
+визуальное
программирование 

4)      
объектно-ориентированное
программирование

5)      
машинное
программирование

59  Автоматизация программирования позволяет

1)      
повысить
надежность программы   

2)      
+сократить время
разработки программы 

3)      
повысить
быстродействие программы

4)      
ускорить процесс
программы

5)      
все ответы верны

60  Что легко поддается автоматизации

+A) интерфейс 

B) работа с файлами 

C) сложные логические задачи 

D) алгоритмизация

E) разработка ПО

61  Нахождение
наилучшего варианта из множества возможных

+A) оптимизация 

B) тестирование 

C) автоматизация 

D) отладка 

E) сопровождение

62  Что такое
оптимизация программ

+A) улучшение работы существующей программы 

B) создание удобного интерфейса пользователя 

C) разработка модульной конструкции программы 

D) применение методов объектно-ориентированного
программирования

E) Все ответы верны

63  Критерии
оптимизации

+A) время выполнения или размер требуемой памяти 

B) размер программы и ее эффективность 

C) независимость модулей 

D) качество программы, ее надежность

E) Нет правильного ответа

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

A) в изменении порядка следования элементов
выражения 

B) в использовании простых логических выражений 

C) в использовании
сложных логических выражений 

D) в использовании
операций AND, OR и NOT

E) в использовании
всех операций выражения

65  Оптимизация циклов заключается в

+A) уменьшении количества
повторений тела цикла 

B) просмотре задачи с
другой стороны 

C) упрощение задачи за
счет включения логических операций

D) увеличении
количества повторений тела цикла

E) упрощение задачи за
счет отключения логических операций

66  Оптимизация программы это

+A) модификация 

B) отладка 

C) повышение сложности
программы 

D) уменьшение
сложности программы

E) быстродействие
программы

67  Критерии
оптимизации программы

+A) быстродействие или размер программы 

B) быстродействие и размер программы 

C) надежность или эффективность 

D) надежность и эффективность

E) Все ответы верны

68  Результат
оптимизации программы

+A) эффективность 

B) надежность 

C) машино-независимость 

D) мобильность

E) Все ответы верны

69  Сущность
оптимизации циклов

+A) сокращение количества повторений выполнения тела цикла 

B) сокращение тела цикла 

C) представление циклов в виде блок-схем 

D) трассировка циклов 

E) поиск ошибок в циклах

70  Рекомендуемые размеры модулей

+A) небольшие 

B) большие 

C) равные  

D) фиксированной длины

71  В чем заключается независимость модуля

+A) в написании,
отладке и тестировании независимо от остальных модулей 

B) в разработке и
написании независимо от других модулей 

C) в независимости от
работы основной программы

D) в зависимости от
работы вторичной программы

Е) в разработка и написании в зависимости от вторичных программ

72  При модульном программировании желательно, чтобы модуль имел

A) большой размер 

+B) небольшой размер 

C) фиксированный
размер 

D) любой размер

E) Все ответы верны

73  Достоинство модульного программирования

+A) создание
программы по частям в произвольном порядке 

B) не требует компоновки 

C) всегда дает эффективные программы 

D) снижает количество ошибок

E) Все ответы верны

74  Недостаток модульного программирования

A) увеличивает трудоемкость программирования 

+B) усложняет
процедуру комплексного тестирования 

C) снижает быстродействие программы 

D) не позволяет выполнять оптимизацию
программы

E) Все ответы верны

75  Достоинство модульного программирования

+A) возможность
приступить к тестированию до завершения написания всей программы 

B) не требует комплексного тестирования 

C) уменьшает размер программы   

D) повышает надежность программы

E) Все ответы верны

76  Программирование без GO TO применяется  при

+A) структурном
программировании 

B) модульном
программировании 

C)
объектно-ориентированном программировании 

D) все ответы верные

E) машинном
программировании

77  Достоинство структурного программирования

+A) можно приступить к
комплексному тестированию на раннем этапе разработки 

B) можно приступить к
автономному тестированию на раннем этапе разработки 

C) нет необходимости
выполнять тестирование 

D) можно пренебречь
отладкой

E) Все ответы верны

78  Недостаток структурного программирования

+A) увеличивает размер
программы 

B) снижает
эффективность 

C) уменьшает
количество ошибок 

D) не требует отладки

E) Все ответы верны

79  Что такое объект, в объектно-ориентированное программировании

+A) тип данных 

B) структура данных 

C) событие 

D) обработка событий 

E) использование
стандартных процедур

  1. Инкапсуляция это

A) определение новых типов
данных 

B) определение новых
структур данных 

+C) объединение переменных, процедур
и функций в одно целое   

D) разделение переменных,
процедур и функций 

E) применение стандартных
процедур и функций

81.  
Наследование
это

A) передача свойств
экземплярам
 

B) передача свойств предкам 

+C) передача свойств потомкам 

D) передача событий потомкам

E) Все ответы верны

82.  
Полиморфизм
это

+A) изменение поведения потомков,
имеющих общих предков 

B) передача свойств по
наследству 

C) изменение поведения
потомков на разные события 

D) изменение поведения
экземпляров, имеющих общих предков 

E) Все ответы верны

83.  
Три
«кита» объектно-ориентированного метода программирования

A) предки, родители, потомки 

+B) полиморфизм, инкапсуляция,
наследование 

C) свойства, события, методы 

D) визуальные, не визуальные
компоненты и запросы

E) Все ответы верны

84.  
Какое
утверждение верно

A) предки наследуют свойства
родителей 

B) родители наследуют
свойства потомков 

C) потомки не могут иметь
общих предков 

+D) потомки наследуют свойства
родителей

E) Все ответы верны

85.  
Могут
ли два визуальных компонента иметь общего предка

+A) да 

B) нет 

C) если их свойства
совпадают 

D) если их методы совпадают

E) Все ответы верны

86.
  Есть ли различие в поведении объекта и экземпляра того же типа

A) да 

B) если у них есть общий
предок 

+C) нет 

D) если у них нет общего
предков

E) Все ответы неверны

87.
  Изменение свойств, приводит к изменению поведения экземпляра

A) нет 

B) только для визуальных   

C) только НЕ для визуальных   

+D) да  

Е)
Все ответы неверны

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

+A) проектирование 

B) анализ требований 

C) программирование 

D) тестирование

E) Все ответы неверны

89.  Составление спецификаций это

+A) формализация задачи 

B) эскизный проект 

C) поиск алгоритма 

D) отладка

E) Все ответы неверны

90.  Этап разработки программы, на котором дается характеристика области
применения программы

+A) техническое задание 

B) эскизный проект 

C) технический проект 

D) внедрение 

E) рабочий проект

91  Укажите правильную последовательность создания программы

+A) формулирование
задачи, анализ требований, проектирование, программирование 

B) анализ требований,
проектирование, программирование, тестирование, отладка 

C) анализ требований,
программирование, проектирование, тестирование 

D) анализ требований,
проектирование, программирование, модификация, трассировка 

E) формулирование
задачи, анализ требований, программирование, проектирование, отладка

92.  Метод проектирования

+A) нисходящее 

B) алгоритмическое 

C) логическое 

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

E) составление
блок-схем

93.   Нисходящее проектирование это

+A) последовательное
уточнение (детализация) 

B) составление
блок-схем 

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

D) трассировка

E) Все ответы верны

94.   Признаки нисходящего программирования

+A) последовательная
детализация 

B) наличие оптимизации 

C) наличие
тестирования 

D) автоматизация
программирования

E) Все ответы верны

95.   Модульное программирование применимо при

A) проектировании
сверху вниз 

B) проектирование
снизу-вверх 

+C) и в том, и другом
случае 

D) ни в коем случае

E) Все ответы неверны

96  В каких единицах измеряются затраты на проектирование

+A) в человеко-днях 

B) в терабайтах

C) в гигабайтах

D) в килобайтах

Е)  в мегабайтах

97. Упорядоченная последовательность команд
(инструкций) компьютера для решения конкретной задачи.

A.    Свойство программы

B.    Программное обеспечение

C.    Постановка задачи

+D.  Программа

E.            Язык
программирования

98. С позиции специфики разработки и вида
программного обеспечения, на какие два класса делятся задачи?

A.    Позиционные и функциональные

+B.  Технологические и
функциональные

C.    Позиционные и непозиционные

D.    Технологические и параметрические

E.  
Нет верного ответа

99. Какими
последовательными действиями можно представить процесс создания программ?

A.    Программирование,
постановка задачи, построение алгоритма

B.    Построение
алгоритма, решение задачи

C.    Построение
алгоритма, программирование

+D.  Программирование,
построение алгоритма, постановка задачи

E.  
Постановка задачи, построение алгоритма решения, программирование

100. Постановка задачи — это …

A.    упорядоченная последовательность команд
компьютера для решения задач

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

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

D.    система точно сформулированных правил

E.   
Все ответы верны

101. Алгоритм — это …

A.    разбиение процесса обработки информации на
более простые этапы

B.    задача, подлежащая реализации с
использованием средств информационных технологий

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

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

E. 
нет верного ответа

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

A. Массивы

B. Безопасность

C. Программное обеспечение

+D. Алгоритм

E.
Все ответы неверны

103. Выполнимость — это

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

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

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

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

Е.
нет верного ответа

104. Осуществляет
разработку и отладку программ для решения функциональных задач

A. Системный
программист

B. Программист-аналитик

+C. Прикладной
программист

D. Администратор

E. 
Постановщик задач

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

+A. Прикладной
программист

B  Программист-аналитик

C. Системный
программист

D. Администратор БД

E.
нет верного ответа

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

A. Прикладной
программист

B. Программист-аналитик

C. Системный
программист

D. Постановщик задач

+E. 
Администратор

107. Участвует в процессе
создания программ на начальной стадии работ

A. Администратор БД

+B. Прикладной
программист

C. Постановщик задач

D. Системный
программист

E.
все ответы верны

108. Является основным
потребителем программ

A. Прикладной
программист

B. Программист-аналитик

C. Системный
программист

D. Конечный
пользователь

+E.
Нет верного ответа

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

A. Дискретность

B. Экономичность

+C. Готовность

D. Работоспособность

E.
Надежность

110. Возможность
доступа к услугам АИС с использованием соответствующих технологий всегда, когда
в ней возникает необходимость

A. Определенность

B. Работоспособность

C. Надежность

D. Экономичность

+E. 
Готовность

111. Количество и
степень занятости ресурсов, процессов, ОП, внешней и внутренней памяти, каналов
ввода/вывода, терминалов и каналов сети

A. Экономичность

B. Готовность

C. Надежность

+D. Определенность

E.
Работоспособность

112. Устойчивость — …

A.    характеризует способность к безотказному
функционированию при наличии сбоев

B. возможность доступа к услугам АИС с
использованием соответствующих технологий всегда, когда в ней возникает
необходимость

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

D. количество и степень занятости ресурсов,
процессов, ОП, внешней и внутренней памяти, каналов ввода/вывода, терминалов и
каналов сети

+E.
Нет верного ответа

113. Процесс
обеспечивает возобновления нормально функционирования АИС

A. Устойчивость

+B. Перезапуск

C. Готовность

D. Надежность

E.
Все ответы верны

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

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

A. Документирование

B. Программирование

C. Сопровождение

D. Проектирование

+E.
нет верного ответа

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

A. Документирование

B. Проектирование структуры ПП

+C. Программирование,
тестирование и отладка

D. Сопровождение ПП

E.
Все ответы верны

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

A. Проектирование

B. Эксплуатация

C. Документирование

D. Программирование

+E. 
нет верного объекта

117. Жизненный цикл ПО — …

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

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

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

D. прерывающийся процесс, который начинается с
момента написания структуры программы и заканчивается в момент его полного
изъятия из эксплуатации

E.
Нет верного ответа

118. На какие три
группы процессов делится структура жизненного цикла ПО по стандарту ISO/IEC
12207?

A. Составные, действующие и вспомогательные
процессы

B. Основные, дополнительные и остальные процессы

C. Вспомогательные, основные и дополнительные
процессы

+D. Основные,
вспомогательные и организационные процессы

E.
Нет верного ответа

119. Основные процессы
жизненного цикла ПО делятся на …

A. Процесс документирования, процесс обеспечения
качества, процесс верификации

B. Процесс поставки, процесс обеспечения качества,
процесс верификации

+C. Процесс управления, процесс
создания инфраструктуры, процесс обучения

D. Процесс
приобретения, процесс поставки, процесс разработки*

E. Процесс управления, процесс разработки, процесс
обучения

120. Вспомогательные
процессы жизненного цикла ПО делятся на …

A.    Процесс документирования, процесс
обеспечения качества, процесс верификации*

B. Процесс поставки, процесс обеспечения качества,
процесс верификации

+C. Процесс управления, процесс
создания инфраструктуры, процесс обучения

D. Процесс приобретения, процесс поставки, процесс
разработки

E. Процесс управления, процесс разработки, процесс
обучения

Ошибки, допущенные на этапе разработки алгоритма, называются …

  • синтаксическими
  • ошибками постановки задачи
  • логическими
  • ошибками выполнения

Тип вопроса: Вопрос с одним правильными вариантом

Ответ на этот вопрос уже получили: 71 раз(а)

Помогли ответы? Ставь лайк 👍

Вопрос задал(а): Анонимный пользователь, 08 Декабрь 2015 в 07:25
На вопрос ответил(а): Любимов Павел, 08 Декабрь 2015 в 07:25

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

Алгоритм – одно
из основных математических понятий.
Происхождение термина «алгоритм»
связывают с именем великого узбекского
математика и астронома аль-Хорезми,
жившего в IXвеке и
разработавшего правила выполнения
четырех арифметических действий над
числами в десятичной системе счисления.
Множества этих правил назвали алгоритмом
(algorithmi- от латинского
написания имени аль-Хорезми), а затем
словом «алгоритм» стали обозначать
совокупность правил определенного
вида, а не только правил выполнения
арифметических действий.

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

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

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

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

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

Вопрос:

Имеется газовая
плита, спички, водопровод, чайник. Как
вскипятить чай?

Ответ:

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

Вопрос:

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

Ответ:

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

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

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

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

Правильно
разработанный алгоритм должен обладать
следующими свойствами:

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

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

  • дискретностью
    — возможность расчленить его на конечное
    количество отдельных «элементарных»
    шагов;

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

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

Пример.

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

а) умножить число
хна 10;

б) к результату
прибавить число 5;

в) полученную сумму
удвоить;

г) сообщить
полученное число.

Зная полученное
число mможно отгадать
задуманное число х, используя
следующий алгоритм:

  1. разделить
    число mна 10, перейти
    к пункту 2;

  2. от
    результата отнять единицу, перейти к
    пункту 3;

  3. полученный
    результат разделить на 2.

Это и будет
задуманное число х.

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

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

Формальность– очень важная черта каждого алгоритма.
Именно благодаря этому исполнение
алгоритма можно поручить любому автомату,
который «умеет» точно выполнять команды
алгоритма.

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

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

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

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

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

Операторная
запись алгоритма
представляет собой
изображение алгоритма в виде
последовательности операторов какого-либо
алгоритмического языка.

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

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

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

УСЛОВНЫЕ
ГРАФИЧЕСКИЕ ОБОЗНАЧЕНИЯ, ПРИМЕНЯЕМЫЕ
ПРИ СОСТАВЛЕНИИ СХЕМ АЛГОРИТМОВ.

№ п/п

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

Символ

Отображаемая
функция

1

Блок
вычислений (процесс)

Вычислительное
действие или последователь-ность
вычисли-тельных действий

2

Логический
блок (решение)

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

3

Блоки
ввода-вывода

Общее
обозначение ввода или вывода данных
(в незави-симости от физи-ческого
носителя)

Вывод
данных, носителем кото-рых служит
доку-мент (печатающее устройство)

4

Начало-конец
(вход – выход)

Начало
или конец программы, оста-нов, вход
или выход в подпрог-раммах

5

Предопределён­ный
процесс (подпрограмма)

Вычисления
по стандартной под-программе или
подпрограмме пользователя

6

Блок
модификации (заголовок цикла)

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

7

Соединитель

Указание
связи между прерванными линиями
потока информации в пределах одной
страницы

8

Межстранич-ный
соединитель

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

Виды ошибок

Ошибки компиляции

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

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

Ошибки компоновки

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

Ошибки выполнения (RUNTIME Error)

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

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

Ошибки выполнения можно разделить на три большие группы.

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

К ним относятся:

  • ошибки преобразования;
  • ошибки данных;
  • ошибки перезаписи.

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

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

В эту группу входят:

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

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

Методы отладки программного обеспечения

Метод ручного тестирования

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

Метод индукции

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

Вот как выглядит процесс:

Алгоритм отладки по методу индукции

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

Метод дедукции

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

Отладка по методу дедукции

Метод обратного прослеживания

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

Как выполняется отладка в современных IDE

Ранние отладчики, например gdb, представляли собой отдельные программы с интерфейсами командной строки. Более поздние, например первые версии Turbo Debugger, были автономными, но имели собственный графический интерфейс для облегчения работы. Сейчас большинство IDE имеют встроенный отладчик. Он использует такой же интерфейс, как и редактор кода, поэтому можно выполнять отладку в той же среде, которая используется для написания кода.

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

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

Шаг с заходом (step into)

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

Шаг с обходом (step over)

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

Шаг с выходом (step out)

В отличие от step into и step over, step out выполняет не следующую строку кода, а весь оставшийся код функции, исполняемой в настоящее время. После возврата из функции он возвращает управление разработчику. Эта команда полезна, когда специалист случайно вошел в функцию, которую не нужно отлаживать.

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

У некоторых отладчиков (таких как GDB 7.0, Visual Studio Enterprise Edition 15.5 и более поздних версий) есть возможность вернуться на шаг назад. Это полезно, если пропущена цель либо нужно повторно проверить выполненную инструкцию. 

«ТЕХНОЛОГИЯ РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

1  Какие программы можно отнести к системному ПО

1)      
+драйверы 

2)      
текстовые редакторы 

3)      
электронные таблицы 

4)      
графические редакторы

5)      
все ответы верны

2  Специфические особенности ПО как продукта

1)      
+продажа по ценам
ниже себестоимости (лицензирование)   

2)      
низкие материальные
затраты при создании программ 

3)      
возможность создание
программ небольшие коллективом или даже одним человеком 

4)      
разнообразие решаемых
задач с помощью программных средств

5) все ответы верны

3  Какие программы нельзя отнести к системному ПО

1)      
+игровые программы 

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

3)      
операционные системы 

4)      
системы управления
базами данных

5)      
все ответы верны

4  Специфические особенности ПО как продукта

1)      
+низкие затраты
при дублировании 

2)      
универсальность 

3)      
простота эксплуатации 

4)      
наличие поддержки
(сопровождения) со стороны разработчика

5)      
все ответы верны

5  Какие программы можно отнести к системному ПО

1)      
+утилиты 

2)      
экономические
программы 

3)      
статистические
программы 

4)      
мультимедийные программы

5)      
все ответы верны

6  Этап,
занимающий наибольшее время, при разработке программы

1)       +тестирование 

2)      
сопровождение 

3)      
проектирование 

4)      
программирование 

5)      
формулировка
требований

7  Первый этап в жизненном цикле программы

1)      
+формулирование
требований 

2)      
анализ требований 

3)      
проектирование 

4)      
автономное
тестирование 

5)      
комплексное
тестирование

8  Один из необязательных этапов жизненного цикла программы

1)      
+оптимизация 

2)      
проектирование 

3)      
тестирование 

4)      
программирование 

5)      
анализ требований

9  Самый большой
этап в жизненном цикле программы

1)      
+эксплуатация 

2)      
изучение предметной
области 

3)      
программирование 

4)      
тестирование 

5)      
корректировка ошибок

10  Какой этап
выполняется раньше

1)      
отладка 

2)      
оптимизация 

3)      
+программирование 

4)      
тестирование

5)      
все ответы верны

11  Что выполняется раньше

1)      
+компиляция 

2)      
отладка 

3)      
компоновка 

4)      
тестирование

5) нет правильного ответа

12  Что выполняется раньше

1)       +проектирование 

2)      
программирование 

3)      
отладка 

4)      
тестирование

5)      
компоновка

13  В стадии разработки программы не входит

1)      
+автоматизация
программирования 

2)      
постановка задачи 

3)      
составление
спецификаций 

4)      
эскизный проект 

5)      
тестирование

14  Самый важный критерий качества программы

1)      
+работоспособность 

2)      
надежность 

3)      
эффективность 

4)      
быстродействие 

5)      
простота эксплуатации

15  Способы оценки качества

1)      
+сравнение с
аналогами 

2)      
наличие документации 

3)      
оптимизация программы 

4)      
структурирование
алгоритма

5)      
хранение и
запоминание информации

16  Наиболее важный критерий качества

1)      
+надежность 

2)      
быстродействие 

3)      
удобство в
эксплуатации 

4)      
удобный интерфейс 

5)      
эффективность

17  Способы оценки надежности

1)      
+тестирование 

2)      
сравнение с аналогами 

3)      
трассировка 

4)      
оптимизация

5)      
удобный интерфейс

18  В каких единицах можно измерить надежность

1)      
+отказов/час   

2)      
км/час 

3)      
Кбайт/сек 

4)      
операций/сек

5)      
мб/сек

19  В каких единицах можно измерить быстродействие

1)      
отказов/час   

2)      
км/час 

3)      
Кбайт/сек 

4)      
+операций/сек

5)      
мб/сек

20  Что относится к этапу программирования

1)      
+написание
кода программы 

2)      
 разработка
интерфейса 

3)      
 работоспособность 

4)      
анализ требований

5)      
создание базы данных

21  Последовательность
этапов программирования

1)      
+компилирование,
компоновка, отладка 

2)      
B) компоновка, отладка, компилирование 

3)      
отладка,
компилирование, компоновка 

4)      
компилирование,
отладка, компоновка

5)      
все ответы верны

22   Инструментальные средства программирования

1)      
+компиляторы,
интерпретаторы 

2)      
СУБД (системы
управления базами данных) 

3)      
BIOS (базовая система
ввода-вывода) 

4)      
ОС (операционные
системы)

5)      
нет правильного
ответа

23  На языке программирования составляется

1)      
+исходный код 

2)      
исполняемый код 

3)      
объектный код 

4)       алгоритм

5)      
предметный код

24  Правила, которым должна следовать программа это

1)      
+алгоритм 

2)      
структура 

3)      
спецификация 

4)      
состав информации 

5)      
последовательность

25  Доступ, при котором записи файла читаются в физической
последовательности, называется

1)      
+последовательным 

2)      
прямым 

3)      
простым 

4)      
основным

5)      
вторичным

26  Доступ, при котором записи файла обрабатываются в произвольной
последовательности, называется

1)      
+прямым 

2)      
последовательным 

3)      
простым 

4)      
основным

5)      
вторичным

27  Методы программирования (укажите НЕ верный ответ)

1)      
+логическое 

2)      
структурное 

3)      
модульное

4)      
компиляторное

5)      
линейное

28  Что выполняется раньше

1)      
+разработка алгоритма 

2)      
выбор языка программирования 

3)      
написание исходного кода 

4)      
компиляция

5)      
Все ответы верны

29  Найдите НЕ правильное условие для создания имен

1)      
+имена могут
содержать пробелы 

2)      
длинное имя можно
сократить 

3)      
из имени лучше
выбрасывать гласные 

4)      
можно использовать
большие буквы

5)      
нет правильного
ответа

30  Какие символы не допускаются в именах переменных

1)      
+пробелы 

2)      
цифры 

3)      
подчеркивание

4)      
знаки препинания

5)      
заглавные буквы

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

1)      
прямым указанием 

2)      
+венгерской
нотацией 

3)      
структурным
программированием 

4)      
поляризацией

5)      
Нет правильного
ответа

32  На каком этапе производится выбор языка программирования

1)      
+проектирование 

2)      
программирование 

3)      
отладка 

4)      
тестирование

5)      
разработка

33  Для решения экономических задач характерно применение

1)      
+СУБД (систем
управления базами данных) 

2)      
языков высокого
уровня 

3)      
языков низкого уровня 

4)      
применение сложных
математических расчетов

5)      
Нет правильного
ответа

34  Для решения инженерных задач характерно применение

1)      
+САПР (систем
автоматизированного проектирования)
 

2)      
СУБД (систем
управления базами данных) 

3)      
ОС (операционных систем)

4)      
(ТРПП) Технология и
разработка программного продукта

5)      
Нет правильного
ответа

35  Причины
синтаксических ошибок

1)      
+плохое знание
языка программирования 

2)      
ошибки в исходных
данных 

3)      
ошибки, допущенные на
более ранних этапах 

4)      
неправильное
применение процедуры тестирования

5)      
неправильная
установка ПО

36  Когда можно
обнаружить синтаксические ошибки

1)      
+при
компиляции 

2)      
при отладке 

3)      
при тестировании 

4)      
на этапе
проектирования 

5)      
при эксплуатации

37  Ошибки
компоновки заключаются в том, что

1)      
+указано
внешнее имя, но не объявлено 

2)      
неправильно
использовано зарезервированное слово 

3)      
составлено неверное
выражение 

4)      
указан неверный тип
переменной

5)      
Все ответы верны

38  Защитное
программирование это

1)      
+встраивание в
программу отладочных средств 

2)      
создание задач защищенных
от копирования 

3)      
разделение доступа в
программе 

4)      
использование паролей 

5)      
оформление авторских
прав на программу

39 Вид ошибки с неправильным написанием служебных слов (операторов)

1)      
+синтаксическая 

2)      
семантическая 

3)      
логическая 

4)      
символьная

5)      
алгоритмическая

40  Вид ошибки с неправильным использованием служебных слов (операторов)

1)      
+семантическая 

2)      
синтаксическая 

3)      
логическая 

4)      
символьная 

5)      
алгоритмическая

41  Ошибки при написании программы бывают

1)      
+синтаксические 

2)      
орфографические 

3)      
лексические 

4)      
фонетические 

5)      
морфологические

42  Процедура поиска ошибки, когда известно, что она есть это

1)      
+отладка 

2)      
тестирование 

3)      
компоновка 

4)      
транзакция 

5)      
трансляция

43  Программа для просмотра значений переменных при выполнении программы

1)      
+отладчик 

2)      
компилятор  

3)      
интерпретатор 

4)      
трассировка 

5)      
тестирование

44  Отладка – это

1)      
+процедура
поиска ошибок, когда известно, что ошибка есть 

2)      
определение списка
параметров 

3)      
правило вызова
процедур (функций) 

4)      
составление
блок-схемы алгоритма

5)      
нет правильного
ответа

45  Когда
программист может проследить последовательность выполнения команд программы

1)      
+при
трассировке 

2)      
при тестировании 

3)      
при компиляции 

4)      
при выполнении
программы 

5)      
при компоновке

46  На каком этапе создания программы могут появиться синтаксические
ошибки

1)      
+программирование 

2)      
проектирование 

3)      
анализ требований 

4)      
тестирование

5)      
разработка ПО

47  Когда приступают к тестированию программы

1)      
+когда программа
уже закончена 

2)      
после постановки
задачи 

3)      
на этапе
программирования 

4)      
на этапе
проектирования 

5)      
после составления
спецификаций,

48 Тестирование бывает

1)      
+автономное 

2)      
инструментальное 

3)      
визуальное 

4)      
алгоритмическое

5)      
структурное

49  Тестирование бывает

1)      
+комплексное 

2)      
инструментальное 

3)      
визуальное 

4)      
алгоритмическое

5)      
структурное

50  При комплексном тестировании проверяются

1)      
+согласованность
работы отдельных частей программы
 

2)      
правильность работы
отдельных частей программы 

3)      
быстродействие
программы 

4)      
эффективность
программы

5)      
все ответы верны

51  Чему нужно уделять больше времени, чтобы получить хорошую программу

1)      
+тестированию 

2)      
программированию 

3)      
отладке 

4)      
проектированию

5)      
разработке

52  Процесс исполнения программы с целью обнаружения ошибок

1)      
+тестирование 

2)      
кодирование 

3)      
сопровождение 

4)      
проектирование

5)      
разработка

53  Автономное тестирование это

1)      
+тестирование отдельных
частей программы 

2)      
инструментальное
средство отладки 

3)      
составление блок-схем 

4)      
пошаговая проверка
выполнения программы

5)      
все ответы верны

54  Трассировка это

1)      
+проверка
пошагового выполнения программы 

2)      
тестирование
исходного кода 

3)      
отладка модуля 

4)      
составление
блок-схемы алгоритма

5)      
нет правильного
ответа

55  Локализация ошибки

1)      
+определение
места возникновения ошибки 

2)      
определение причин
ошибки 

3)      
обнаружение причин
ошибки 

4)      
исправление ошибки

5)      
анализ данных

56  Назначение тестирования

1)      
+повышение надежности
программы 

2)      
обнаружение ошибок 

3)      
повышение
эффективности программы 

4)      
улучшение
эксплуатационных характеристик 

5)      
приведение программы
к структурированному виду

57  Назначение отладки

1)      
+поиск причин
существующих ошибок 

2)      
поиск возможных
ошибок 

3)      
составление
спецификаций 

4)      
разработка алгоритма

5)      
разработка проекта

58  Создание исполняемого кода программы без написания исходного кода
называется

1)      
составлением
спецификаций 

2)      
отладкой 

3)      
проектированием

4)      
+автоматизацией
программирования 

5)      
анализ данных

58  Один из методов автоматизации программирования

1)      
структурное
программирование 

2)      
модульное
программирование   

3)      
+визуальное
программирование 

4)      
объектно-ориентированное
программирование

5)      
машинное
программирование

59  Автоматизация программирования позволяет

1)      
повысить
надежность программы   

2)      
+сократить время
разработки программы 

3)      
повысить
быстродействие программы

4)      
ускорить процесс
программы

5)      
все ответы верны

60  Что легко поддается автоматизации

+A) интерфейс 

B) работа с файлами 

C) сложные логические задачи 

D) алгоритмизация

E) разработка ПО

61  Нахождение
наилучшего варианта из множества возможных

+A) оптимизация 

B) тестирование 

C) автоматизация 

D) отладка 

E) сопровождение

62  Что такое
оптимизация программ

+A) улучшение работы существующей программы 

B) создание удобного интерфейса пользователя 

C) разработка модульной конструкции программы 

D) применение методов объектно-ориентированного
программирования

E) Все ответы верны

63  Критерии
оптимизации

+A) время выполнения или размер требуемой памяти 

B) размер программы и ее эффективность 

C) независимость модулей 

D) качество программы, ее надежность

E) Нет правильного ответа

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

A) в изменении порядка следования элементов
выражения 

B) в использовании простых логических выражений 

C) в использовании
сложных логических выражений 

D) в использовании
операций AND, OR и NOT

E) в использовании
всех операций выражения

65  Оптимизация циклов заключается в

+A) уменьшении количества
повторений тела цикла 

B) просмотре задачи с
другой стороны 

C) упрощение задачи за
счет включения логических операций

D) увеличении
количества повторений тела цикла

E) упрощение задачи за
счет отключения логических операций

66  Оптимизация программы это

+A) модификация 

B) отладка 

C) повышение сложности
программы 

D) уменьшение
сложности программы

E) быстродействие
программы

67  Критерии
оптимизации программы

+A) быстродействие или размер программы 

B) быстродействие и размер программы 

C) надежность или эффективность 

D) надежность и эффективность

E) Все ответы верны

68  Результат
оптимизации программы

+A) эффективность 

B) надежность 

C) машино-независимость 

D) мобильность

E) Все ответы верны

69  Сущность
оптимизации циклов

+A) сокращение количества повторений выполнения тела цикла 

B) сокращение тела цикла 

C) представление циклов в виде блок-схем 

D) трассировка циклов 

E) поиск ошибок в циклах

70  Рекомендуемые размеры модулей

+A) небольшие 

B) большие 

C) равные  

D) фиксированной длины

71  В чем заключается независимость модуля

+A) в написании,
отладке и тестировании независимо от остальных модулей 

B) в разработке и
написании независимо от других модулей 

C) в независимости от
работы основной программы

D) в зависимости от
работы вторичной программы

Е) в разработка и написании в зависимости от вторичных программ

72  При модульном программировании желательно, чтобы модуль имел

A) большой размер 

+B) небольшой размер 

C) фиксированный
размер 

D) любой размер

E) Все ответы верны

73  Достоинство модульного программирования

+A) создание
программы по частям в произвольном порядке 

B) не требует компоновки 

C) всегда дает эффективные программы 

D) снижает количество ошибок

E) Все ответы верны

74  Недостаток модульного программирования

A) увеличивает трудоемкость программирования 

+B) усложняет
процедуру комплексного тестирования 

C) снижает быстродействие программы 

D) не позволяет выполнять оптимизацию
программы

E) Все ответы верны

75  Достоинство модульного программирования

+A) возможность
приступить к тестированию до завершения написания всей программы 

B) не требует комплексного тестирования 

C) уменьшает размер программы   

D) повышает надежность программы

E) Все ответы верны

76  Программирование без GO TO применяется  при

+A) структурном
программировании 

B) модульном
программировании 

C)
объектно-ориентированном программировании 

D) все ответы верные

E) машинном
программировании

77  Достоинство структурного программирования

+A) можно приступить к
комплексному тестированию на раннем этапе разработки 

B) можно приступить к
автономному тестированию на раннем этапе разработки 

C) нет необходимости
выполнять тестирование 

D) можно пренебречь
отладкой

E) Все ответы верны

78  Недостаток структурного программирования

+A) увеличивает размер
программы 

B) снижает
эффективность 

C) уменьшает
количество ошибок 

D) не требует отладки

E) Все ответы верны

79  Что такое объект, в объектно-ориентированное программировании

+A) тип данных 

B) структура данных 

C) событие 

D) обработка событий 

E) использование
стандартных процедур

  1. Инкапсуляция это

A) определение новых типов
данных 

B) определение новых
структур данных 

+C) объединение переменных, процедур
и функций в одно целое   

D) разделение переменных,
процедур и функций 

E) применение стандартных
процедур и функций

81.  
Наследование
это

A) передача свойств
экземплярам
 

B) передача свойств предкам 

+C) передача свойств потомкам 

D) передача событий потомкам

E) Все ответы верны

82.  
Полиморфизм
это

+A) изменение поведения потомков,
имеющих общих предков 

B) передача свойств по
наследству 

C) изменение поведения
потомков на разные события 

D) изменение поведения
экземпляров, имеющих общих предков 

E) Все ответы верны

83.  
Три
«кита» объектно-ориентированного метода программирования

A) предки, родители, потомки 

+B) полиморфизм, инкапсуляция,
наследование 

C) свойства, события, методы 

D) визуальные, не визуальные
компоненты и запросы

E) Все ответы верны

84.  
Какое
утверждение верно

A) предки наследуют свойства
родителей 

B) родители наследуют
свойства потомков 

C) потомки не могут иметь
общих предков 

+D) потомки наследуют свойства
родителей

E) Все ответы верны

85.  
Могут
ли два визуальных компонента иметь общего предка

+A) да 

B) нет 

C) если их свойства
совпадают 

D) если их методы совпадают

E) Все ответы верны

86.
  Есть ли различие в поведении объекта и экземпляра того же типа

A) да 

B) если у них есть общий
предок 

+C) нет 

D) если у них нет общего
предков

E) Все ответы неверны

87.
  Изменение свойств, приводит к изменению поведения экземпляра

A) нет 

B) только для визуальных   

C) только НЕ для визуальных   

+D) да  

Е)
Все ответы неверны

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

+A) проектирование 

B) анализ требований 

C) программирование 

D) тестирование

E) Все ответы неверны

89.  Составление спецификаций это

+A) формализация задачи 

B) эскизный проект 

C) поиск алгоритма 

D) отладка

E) Все ответы неверны

90.  Этап разработки программы, на котором дается характеристика области
применения программы

+A) техническое задание 

B) эскизный проект 

C) технический проект 

D) внедрение 

E) рабочий проект

91  Укажите правильную последовательность создания программы

+A) формулирование
задачи, анализ требований, проектирование, программирование 

B) анализ требований,
проектирование, программирование, тестирование, отладка 

C) анализ требований,
программирование, проектирование, тестирование 

D) анализ требований,
проектирование, программирование, модификация, трассировка 

E) формулирование
задачи, анализ требований, программирование, проектирование, отладка

92.  Метод проектирования

+A) нисходящее 

B) алгоритмическое 

C) логическое 

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

E) составление
блок-схем

93.   Нисходящее проектирование это

+A) последовательное
уточнение (детализация) 

B) составление
блок-схем 

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

D) трассировка

E) Все ответы верны

94.   Признаки нисходящего программирования

+A) последовательная
детализация 

B) наличие оптимизации 

C) наличие
тестирования 

D) автоматизация
программирования

E) Все ответы верны

95.   Модульное программирование применимо при

A) проектировании
сверху вниз 

B) проектирование
снизу-вверх 

+C) и в том, и другом
случае 

D) ни в коем случае

E) Все ответы неверны

96  В каких единицах измеряются затраты на проектирование

+A) в человеко-днях 

B) в терабайтах

C) в гигабайтах

D) в килобайтах

Е)  в мегабайтах

97. Упорядоченная последовательность команд
(инструкций) компьютера для решения конкретной задачи.

A.    Свойство программы

B.    Программное обеспечение

C.    Постановка задачи

+D.  Программа

E.            Язык
программирования

98. С позиции специфики разработки и вида
программного обеспечения, на какие два класса делятся задачи?

A.    Позиционные и функциональные

+B.  Технологические и
функциональные

C.    Позиционные и непозиционные

D.    Технологические и параметрические

E.  
Нет верного ответа

99. Какими
последовательными действиями можно представить процесс создания программ?

A.    Программирование,
постановка задачи, построение алгоритма

B.    Построение
алгоритма, решение задачи

C.    Построение
алгоритма, программирование

+D.  Программирование,
построение алгоритма, постановка задачи

E.  
Постановка задачи, построение алгоритма решения, программирование

100. Постановка задачи — это …

A.    упорядоченная последовательность команд
компьютера для решения задач

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

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

D.    система точно сформулированных правил

E.   
Все ответы верны

101. Алгоритм — это …

A.    разбиение процесса обработки информации на
более простые этапы

B.    задача, подлежащая реализации с
использованием средств информационных технологий

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

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

E. 
нет верного ответа

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

A. Массивы

B. Безопасность

C. Программное обеспечение

+D. Алгоритм

E.
Все ответы неверны

103. Выполнимость — это

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

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

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

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

Е.
нет верного ответа

104. Осуществляет
разработку и отладку программ для решения функциональных задач

A. Системный
программист

B. Программист-аналитик

+C. Прикладной
программист

D. Администратор

E. 
Постановщик задач

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

+A. Прикладной
программист

B  Программист-аналитик

C. Системный
программист

D. Администратор БД

E.
нет верного ответа

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

A. Прикладной
программист

B. Программист-аналитик

C. Системный
программист

D. Постановщик задач

+E. 
Администратор

107. Участвует в процессе
создания программ на начальной стадии работ

A. Администратор БД

+B. Прикладной
программист

C. Постановщик задач

D. Системный
программист

E.
все ответы верны

108. Является основным
потребителем программ

A. Прикладной
программист

B. Программист-аналитик

C. Системный
программист

D. Конечный
пользователь

+E.
Нет верного ответа

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

A. Дискретность

B. Экономичность

+C. Готовность

D. Работоспособность

E.
Надежность

110. Возможность
доступа к услугам АИС с использованием соответствующих технологий всегда, когда
в ней возникает необходимость

A. Определенность

B. Работоспособность

C. Надежность

D. Экономичность

+E. 
Готовность

111. Количество и
степень занятости ресурсов, процессов, ОП, внешней и внутренней памяти, каналов
ввода/вывода, терминалов и каналов сети

A. Экономичность

B. Готовность

C. Надежность

+D. Определенность

E.
Работоспособность

112. Устойчивость — …

A.    характеризует способность к безотказному
функционированию при наличии сбоев

B. возможность доступа к услугам АИС с
использованием соответствующих технологий всегда, когда в ней возникает
необходимость

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

D. количество и степень занятости ресурсов,
процессов, ОП, внешней и внутренней памяти, каналов ввода/вывода, терминалов и
каналов сети

+E.
Нет верного ответа

113. Процесс
обеспечивает возобновления нормально функционирования АИС

A. Устойчивость

+B. Перезапуск

C. Готовность

D. Надежность

E.
Все ответы верны

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

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

A. Документирование

B. Программирование

C. Сопровождение

D. Проектирование

+E.
нет верного ответа

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

A. Документирование

B. Проектирование структуры ПП

+C. Программирование,
тестирование и отладка

D. Сопровождение ПП

E.
Все ответы верны

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

A. Проектирование

B. Эксплуатация

C. Документирование

D. Программирование

+E. 
нет верного объекта

117. Жизненный цикл ПО — …

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

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

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

D. прерывающийся процесс, который начинается с
момента написания структуры программы и заканчивается в момент его полного
изъятия из эксплуатации

E.
Нет верного ответа

118. На какие три
группы процессов делится структура жизненного цикла ПО по стандарту ISO/IEC
12207?

A. Составные, действующие и вспомогательные
процессы

B. Основные, дополнительные и остальные процессы

C. Вспомогательные, основные и дополнительные
процессы

+D. Основные,
вспомогательные и организационные процессы

E.
Нет верного ответа

119. Основные процессы
жизненного цикла ПО делятся на …

A. Процесс документирования, процесс обеспечения
качества, процесс верификации

B. Процесс поставки, процесс обеспечения качества,
процесс верификации

+C. Процесс управления, процесс
создания инфраструктуры, процесс обучения

D. Процесс
приобретения, процесс поставки, процесс разработки*

E. Процесс управления, процесс разработки, процесс
обучения

120. Вспомогательные
процессы жизненного цикла ПО делятся на …

A.    Процесс документирования, процесс
обеспечения качества, процесс верификации*

B. Процесс поставки, процесс обеспечения качества,
процесс верификации

+C. Процесс управления, процесс
создания инфраструктуры, процесс обучения

D. Процесс приобретения, процесс поставки, процесс
разработки

E. Процесс управления, процесс разработки, процесс
обучения

  • Ошибки допускаемые при составлении резюме
  • Ошибки других хорошие учителя
  • Ошибки допускаемые при осмотре места происшествия
  • Ошибки других судить вы так усердно рветесь шекспир
  • Ошибки допускаемые при метании мяча