Образовательный материал

Алгоритмы: простые и сложные, типовые и эффективные.
Методика создания алгоритмов. Т.Л. Удалова

В данной работе представлена разработка собственной методики преподавания информатики с ориентацией на творческую деятельность учащихся и тестовый контроль.
В преподавании информатики на первое место в качестве цели обучения я ставлю формирование алгоритмического стиля мышления.
В данной работе представлены алгоритмы обработки массивов.
Большое внимание стоит уделять реализации задач с точки зрения оптимальности алгоритма ее решения, разумно будет проектировать такой алгоритм, который потребует меньших ресурсов времени и памяти.
Примеры задач реализованы на языке Паскаль.
В Приложениях 1-8 представлены схемы и программы алгоритмов.
В Приложениях 9-11 прилагается большая подборка задач.
Данная работа предназначена как для преподавателей в качестве материалов к уроку или дополнительным занятиям, так и для самостоятельной работы увлекающихся программированием школьников.

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

1 Алгоритм
Алгоритм должен быть определен настолько четко, чтобы его указаниям мог следовать даже компьютер.
Дональд Э.Кнут
В современной научной и любой другой литературе очень много определений алгоритма, но далеко не все они могут быть применимы в области программирования, поэтому за основу возьмем представление об алгоритме как описание некоторого вычислительного процесса и введем некоторые уточнения.
Форма записи алгоритма (формат) и его содержание не произвольны, а подчинены определенным ограничениям. Форматы известны различные: словесное описание, графическое (блок-схема), с помощью операторов языка программирования.
В данной работе предпочтение отдано «первичной» форме словесному описанию с нумерацией шагов и комментариями.
Основной особенностью вычислительного процесса является возможность разделить его на отдельные, дискретные действия, шаги.
Второй особенностью является последовательность действий процесса, оформленных как предписание алгоритма. Предписаний должно быть конечное число, каждое из них должно быть точным и не допускать неопределенного толкования.
Весь процесс, включающий все шаги от начала до завершения, должен быть конечен. Процесс должен преследовать конкретную цель, которая, в свою очередь, должна быть достижимой.
2.Анализ алгоритма
Анализ алгоритма позволяет оценить, как велико число шагов. Представить алгоритм без входных и/или выходных данных довольно затруднительно: зачем он тогда нужен? Кроме входных и выходных данных, алгоритм, как правило, предусматривает временное формирование промежуточных данных. Поэтому при конструировании алгоритма необходимо строго определить каждый его шаг, предусмотрев возможные состояния процесса и соответствующие инструкции для их обработки. Только такой алгоритм при неоднократном применении к одинаковым входным данным всегда приведет к одному итогу.
Анализ алгоритма должен дать четкое представление о емкостной и временной сложности алгоритма.
Емкостная сложность - это размеры памяти, в которой предстоит размещать все данные, участвующие в вычислительном процессе. К ним относятся: входные данные, промежуточные и выходная информация. Возможно, что не все перечисленные наборы требуют одновременного хранения (возможно применение динамических структур), что позволяет экономить затраты памяти.
Пример 1. Алгоритм обмена двух переменных Х и Y реализуется за 3 шага, независимо от того, к какому типу простых переменных он применяется. С точки зрения количества машинных операций, две разные ситуации - обмена содержимым между переменными, занимающими одно или два машинных слова - неравноценны. Но оценка алгоритмической трудоемкости это не учитывает.
Рассмотрим три различных алгоритма обмена двух переменных: в первом – используется рабочая переменная, во втором – арифметические действия, в третьем –свойство логической операции xor (Приложение 1).
Любой алгоритм обмена реализуется за 3 шага. Или, иначе говоря, имеет постоянную трудоемкость.
Временем работы алгоритма называется число элементарных шагов, которые он выполняет. Существует специальный механизм определения верхней оценки временной трудоемкости алгоритма (О(f(n)), что означает, что число операций алгоритма не более f(n)).
Если алгоритм связан с обработкой N входных элементов и нет формулы для быстрого вычисления результата, то достижение эффективности О(n) (линейная функция), следует рассматривать как большой успех.
Пример 2. Известная задача о количестве счастливых шестизначных (N значных) билетов имеет минимум два решения:
1. Для перебора всех шестизначных билетов для каждой цифры можно организовать свой цикл. Тогда временная трудоемкость алгоритма (шесть вложенных циклов) будет порядка О(N).
2. Единственный цикл перебора всех билетов с определением каждой цифры числа. Определение цифр числа:
число единиц в числе А равно A mod 10,
число десятков в числе А равно (A div 10) mod 10 и т.д.
В числе, состоящем из 6 цифр, количество операций не превысит 6*(6+2), где 6- число операций определения цифр, а 2- операции сравнения сумм цифр. Для N цифр – трудоемкость данного алгоритма < O(N).
Необходимо уделять внимание возможности оценки временной эффективности алгоритма.
Пример 3. В классе N учеников. Рассмотреть все возможные способы рассадки всех N учеников на N местах.
Обычная переборная задача. Для N=10 число вариантов N! > 3.5млн.
ПК справится, предположим, за 1 секунду. Но для N=15 времени потребуется в 360360 раз больше для этого же ПК, другими словами, применять алгоритм с трудоемкостью О(N!) надо очень осторожно!
3. Составление алгоритмов для обработки потока данных.
Основываясь на своем опыте работы с учащимися старшего звена, я выделила несколько основных тем, без усвоения которых невозможно успешное изучение всего курса информатики, и разработала собственную методику их преподавания. Я пользуюсь ей уже несколько лет, что позволяет добиваться хороших результатов в освоении учениками моего предмета. В данной работе я и хочу представить методику преподавания одной из таких тем.
Секрет могущества компьютера – высокая скорость и большая память. Для записи алгоритмов, работающих с большими объемами информации, в алгоритмическом языке существуют табличные величины (или массивы). Исполнение многих алгоритмов было бы просто невозможно, если бы соответствующие объекты не были упорядочены, классифицированы, занумерованы и так далее.
Часто требуется обработать одинаковым образом данные, поступающие в компьютер последовательно друг за другом. Например, найти средний рост учеников класса, вводя по очереди рост каждого ученика, или найти суммарную стоимость всех товаров, купленных одним покупателем в универсальном магазине, и т. п.
Итак, нужно уметь организовать не только действия, но и те объекты, над которыми эти действия производятся.
Необходимо отметить, что таблицы (массивы) как основное средство представления однотипной информации неизбежно используются во всех реальных компьютерных программах. На табличном принципе основана и архитектура современных ПК: память компьютера можно рассматривать как большой массив байтов, адреса которых располагаются по возрастанию.
Следовательно, без понимания информационной сущности таблиц и основных алгоритмов их обработки невозможно формирование полноценных представлений о возможностях компьютера и принципах его работы. Для построения сколь-нибудь сложных и содержательных программ необходимо уверенное владение общими принципами применения таблиц и базовыми приемами их обработки. В данной работе будет рассмотрен ряд простых алгоритмов, которые используются при построении более сложных.
Большое внимание стоит уделять реализации задачи с точки зрения оптимальности алгоритма ее решения, разумно будет проектировать такой алгоритм, который потребует меньших ресурсов времени и памяти.
Основные задачи:
научить учеников создавать свои алгоритмы, опираясь на уже изученные алгоритмы.
научить учеников переводить словесное описание алгоритмов на язык программ.
научить учеников создавать эффективные алгоритмы.
Примеры задач реализованы на языке Паскаль, который является стартовым языком программирования, лежит в основе Delphi.
4. Алгоритмы обработки массивов
4.1.Алгоритм вычисления суммы элементов массива
Пусть дан массив A, состоящий из n элементов: a1, a2, a3, , an. Нужно найти сумму элементов массива, т.е. S=a1+a2+a3++an.
Нахождение суммы есть реализация конструкции «Счетчик», т.е. последовательное нахождение суммы по формулам:
1)S=0 2) S=S+a1 S=S+a2 S=S+a3 S=S+ai S=S+an
Алгоритм вычисления суммы удобно организовать циклом, взяв за параметр цикла переменную i, которая меняется от 1 до n с шагом 1, и записав в цикле формулу S=S+ai один раз.
Фрагмент алгоритма: S=0; for i:=1 to n do S=S+a[i];
Схема алгоритма (программа) приведена в таблице 1 приложение 2
В схеме блок 1 – блок описания,
В схеме блок 2 – ввод элементов массива (n является переменной, значение которой равно числу элементов массива A)
В схеме блок 3 присваивает S нулевое значение,
В схеме блок 4 использование цикла, т.е. счетчику i присваивает начальное значение, цикл For осуществляет проверку условия повторения цикла, изменяет значение i на 1
В схеме блок 5 – тело цикла: выполняет накопление суммы,
В схеме блок 6 - вывод результата.
Любая программа содержит описание переменных, ввод входных данных и вывод результата, поэтому блоки 1, 2 и 6 являются обязательными для любого алгоритма.
4.2. Алгоритм вычисления произведения элементов массива
Этот алгоритм предлагается учащимся разработать самостоятельно, взяв за основу алгоритм определения суммы элементов массива.
Учащиеся должны не только указать на изменения блока 5 на S=S*ai (в S будет накапливаться произведение элементов), но и дать четкое объяснение изменению блока 3 на S=1.
Фрагмент алгоритма: S=1; for i:=1 to n do S=S*a[i];
4.3. Алгоритм вычисления суммы элементов с определенным качеством
При разработке этого алгоритма учащимся можно предложить изменить схему на случай, если нужно найти сумму четных значений элементов массива A. Задать вопрос – что изменится в схеме таблицы 1, если суммировать только четных элементы массива A? Ответ: Перед блоком суммирования 5 нужно поставить блок проверки элемента массива ai на четность. Если элемент массива четный, то нужно его суммировать, а если нет, то обходить блок суммирования.
Схема алгоритма (программа) приведена в таблице 2 приложение 3
При таком тщательном исследовании схемы алгоритма учащиеся без особых затруднений ответят на вопрос – что добавить в схеме (таблица3), чтобы в ней подсчитывалось еще количество четных элементов массива?
Фрагмент алгоритма: S=1; for i:=1 to n do If a[i] mod 2 = 0 Then
Begin S=S+a[i]; k:=k+1;End;
4.4. Алгоритм обмена местами двух элементов массива
Нужно поменять местами первый и третий элементы массива.
Необходимо дать правило: «Если поменять местами или изменить значение хотя бы одного элемента массива, то необходимо вывести весь массив».
При разработке этого алгоритма учащимся можно предложить изменить схему на случай, если нужно поменять местами первый и третий элементы массива.
Алгоритм обмена двух переменных Х и Y реализуется за 3 шага. Проводим аналогию, необходимо поменять местами a[1] и a[3].
Задать вопрос – что изменится в схеме таблицы 1.
Ответ: Блок суммирования 5 нужно заменить на три оператора присвоения. Необходимо добавить операторные скобки Begin и end. Блок 6 заменить на вывод массива.
Схема алгоритма (программа) приведена в таблице 3 приложение 4.
4.5. Алгоритм вычисления суммы элементов, расположенных на определенных местах в массиве A.
При разработке этого алгоритма учащимся можно предложить изменить схему на случай, если нужно найти сумму элементов, расположенных на четных местах в массиве A.
Первое решение : учащиеся предлагают изменить блок 5 на проверку индекса i на четность, т. е.
Фрагмент алгоритма: for i:=1 to n do If i mod 2 = 0 Then S=S+a[i];
Необходимо проанализировать алгоритм. Цикл работает n раз. Проверка условия четности индекса - n раз. А на четных местах всего n/2 значений элементов массива. Предлагаем изменить алгоритм, учитывая, что все четные значения отличаются на 2. Например, 2 4 6 8 . . .
Задать вопрос – что изменится в схеме таблицы 1.
Ответ: Блок 3 надо изменить на i=2 и изменение шага на i=i+2. Цикл For может выполнять шаг только 1 или -1. Поэтому будем использовать цикл While.
Схема алгоритма (программа) приведена в таблице 4 приложение 5.
Всякий раз, когда мы решаем задачу и располагаем не единственным вариантом решения, естественно выбрать из них тот, который потребует меньшего объема работы.
4.6. Алгоритм определения максимального элемента
Для получения максимального числа введем переменную M и ей присвоим значение первого элемента массива a1, а затем необходимо сравнить M с текущим элементом массива ai и если текущий элемент будет больше M, то значение M надо заменить на значение этого элемента.
Очень важно обратить внимание учащихся на начальное значение переменной M. Почему, например нельзя переменной M присвоить значение равное нулю? (Ответ: Для массива с отрицательными значениями элементов максимум не будет найден.)
Схема алгоритма (программа) приведена в таблице 5 приложение 6.
4.7. Алгоритм сдвига всех элементов массива влево циклически
Задача: Дан массив целых чисел. Элементы массива циклически перемещаются по следующему правилу: каждый элемент, за исключением начального элемента перемещается в предыдущий по порядку (меньший по индексу) элемент массива.При этом начальный элемент массива перемещается в последний элемент массива. В качестве результата выведите элементы массива после завершения перемещений.
Обозначим элементы массива: А1 А2 А3 А4 А5 А6 А7 . . . Аn-1 Аn
После сдвига всех элементов массива влево циклически массив выглядит следующим образом: А2 А3 А4 А5 А6 А7 . . . Аn-1 Аn А1
Запомним элемент массива крайний слева: Z= А1
Заметим: А1 = А2
А2 = А3
А3 = А4
. . . . .
Аn-1 = Аn
начальный элемент должен перемещаться в последний элемент, т.е. Аn = Z
Анализируем перемещения элементов массива и получаем реализацию на Паскале Z:=a[1]; For i:=1 to n-1 do A[i]:=a[i+1]; A[n]:=Z;
Программа приведена в приложение 7.
8. Алгоритм сдвига всех элементов массива вправо циклически
Элементы массива А1 А2 А3 А4 А5 А6 А7 . . . Аn-1 Аn
После завершения перемещений Аn А1 А2 А3 А4 А5 А6 . . . Аn-2 Аn-1
Запомним элемент массива крайний справа, т.е.: Z= Аn
Заметим Аn = Аn-1
Аn-1 = Аn-2
. . . . .
А3 = А2
А2 = А1
последний элемент перемещается в первый А1 = Z
Реализация: Z:=a[n]; For i:=n downto 2 do a[i]:=a[i-1]; a[1]:=Z;
Программа приведена в приложение 8.
Данная работа подготовлена по материалам, используемым в курсе информатики МАОУ «Физико-технический лицей №1» г. Саратова.
В Приложениях 9, 10, 11 прилагается большая подборка задач.
Как показывает опыт, при использовании данных материалов следует соблюдать принцип дидактической спирали: изучать разделы не целиком, а частично, последовательно, т.е. возвращаться к каждому разделу всякий раз на более глубоком уровне.
Данная работа предназначена как для преподавателей в качестве материалов к уроку или дополнительным занятиям, так и для самостоятельной работы увлекающихся программированием школьников.
Литература
Каймин В.А., Питеркин В.М. Основы информатики и ВТ. М., Прогресс, 2009.
Каймин В.А. Методы разработки программ на языках высокого уровня. М., МИЭМ, 2005.
Юрцева Светлана Сергеевна «Алгоритмы в школьной информатике»
[ Cкачайте файл, чтобы посмотреть ссылку ] «Алгоритмы обработки одномерных массивов»
Приложение 1 Алгоритм обмена
Задача: Имеется 2 переменных Х и Y. Поменять их значения местами.
Алгоритм 1.  Алгоритм обмена 1
При реализации алгоритма используется рабочая переменная Z. В нее записывается содержимое первой переменной, затем в первую переменную копируется содержимое второй, и наконец, во вторую переменную переносится содержимое рабочей переменной. Таким образом, алгоритм состоит из трех шагов: Z:=X;
X:=Y
Y:=Z;
Проверим работоспособность этого алгоритма на примере, скажем, X=7 и Y=10: Z=7; X=10; Y=7
Нередко переход от общей постановки задачи к более частной ситуации позволяет найти иное, отличное от общего подхода, решение.
Задача: Имеется 2 целочисленных переменных X и Y, причем их сумма и разность не выходят за рамки диапазона значений, допускаемого заданным типом. Поменять их значения местами.
Алгоритм 2. Алгоритм обмена 2
В этом случае можно использовать механизм, не требующий дополнительной переменной:
X := X + Y;
Y := X - Y;
X := X - Y;
Сравните, при тех же X=7 и Y=10 получаем: X=17; Y=7; X=10
Алгоритм 3. Алгоритм обмена 3
Он также не требует дополнительной переменной и использует свойство логической операции xor
X := X xor Y;
Y := X xor Y;
X := X xor Y;
Приложение 2 Алгоритм вычисления суммы элементов массива

Задача: Пусть дан массив A, состоящий из n элементов: a1, a2, a3, , an Нужно найти сумму элементов массива, т.е. S=a1+a2+a3++an.

Приведем схему алгоритма (программы) в таблице 1

1
Описание массива

var
a:array[1..100] of integer;
i,n,s:integer;






2
Ввод массива

readln(n);
for i:=1 to n do
read(a[i]);






3
Начальное значение суммы

S=0;






4
Использование цикла

for i:=1 to n do






5
Вычисление суммы

S=S+a[i];






6
Вывод суммы

Writeln(S);








Приложение 3 Алгоритм вычисления суммы элементов с определенным качеством

Задача: Пусть дан массив A, состоящий из n элементов: a1, a2, a3, , an. Нужно найти сумму четных значений элементов массива.

Схема алгоритма будет иметь вид: Таблица 2

1
Описание массива

var
a:array[1..100] of integer;
i,n,s:integer;






2
Ввод массива

readln(n);
for i:=1 to n do
read(a[i]);






3
Начальное значение суммы

S=0;






4
Использование цикла

for i:=1 to n do






5
Проверка ai на четность

If a[i] mod 2 = 0 Then






6
Вычисление суммы

S=S+a[i];






7
Вывод суммы

Writeln(S);






Приложение 4. Алгоритм обмена местами двух элементов массива

Задача: Пусть дан массив A, состоящий из n элементов:a1, a2, a3, an. Нужно поменять местами первый и третий элементы массива.

Схема алгоритма будет иметь вид: Таблица 3

1
Описание массива

var
a:array[1..100] of integer;
i,n,z:integer;






2
Ввод массива

readln(n);
for i:=1 to n do
read(a[i]);






3
Использование цикла

for i:=1 to n do






4
Обмен местами элементов массива

Begin
Z=a[1];
a[1]:=a[3];
a[3]:=Z;
end;






6
Вывод массива

for i:=1 to n do Write(a[i]),’ );






Приложение 5. Алгоритм вычисления суммы элементов, расположенных на определенных местах в массиве A.

Задача: Пусть дан массив A, состоящий из n элементов: a1, a2, a3, , an Нужно найти сумму элементов массива, расположенных на четных местах в массиве A.
Схема алгоритма будет иметь вид: Таблица 4





1
Описание массива

var
a:array[1..100] of integer;
i,n,s:integer;






2
Ввод массива

readln(n);
for i:=1 to n do read(a[i]);






3
Начальное значение суммы

S=0;






4
Начальное значение i

I:=2;






5
Использование цикла While

While i<= n do







6
Вычисление суммы

Begin
S=S+a[i];
I:=i+2;
End;






7
Вывод суммы

Writeln(S);

Приложение 6. Алгоритм определения максимального элемента

Схема алгоритма будет иметь вид: Таблица 5

1
Описание массива

var
a:array[1..100] of integer;
i,n,m:integer;






2
Ввод массива

readln(n);
for i:=1 to n do
read(a[i]);






3
Присвоение начального значения

m=a[1];






4
Использование цикла

for i:=2 to n do






5
Сравнение M с текущим элементом массива

If a[i] > m Then






6
Присвоение текущего элемента массива

m:=a[i];






7
Вывод максимального значения

Writeln(m);






Приложение 7. Алгоритм сдвига всех элементов массива влево циклически

program SDV_VLEVO;
var
a:array[1..100] of integer;
i,n,z:integer;
Begin
readln(n);
for i:=1 to n do read(a[i]);
Z:=a[1];
For i:=1 to n-1 do A[i]:=a[i+1];
A[n]:=Z;
for i:=1 to n do write(a[i],’ );
End.

Приложение 8. Алгоритм сдвига всех элементов массива вправо циклически

program SDV_VPRAVO;
var
a:array[1..100] of integer;
i,n,z:integer;
Begin
readln(n);
for i:=1 to n do read (a[i]);
Z:=a[n];
For i:=n downto 2 do a[i]:=a[i-1];
a[1]:=Z;
for i:=1 to n do write (a[i],’ );
End.
Приложение 9 Задачи Первого уровня
В массиве а1, а2, ..., аn определить количество нулей.
В массиве а1, а2, ..., аn найти сумму чисел, расположенных на нечетных местах.
Из массива а1, а2, ..., аn найти произведение чисел, расположенных на нечетных местах.
В массиве а1, а2, ..., аn найти сумму чисел больших единицы.
В массиве а1, а2, ..., аn найти произведение чисел больших 2.
В массиве а1, а2, ..., аn найти сумму чисел, расположенных на местах кратных 3.
В массиве а1, а2, ..., аn найти количество чисел равных 3,5.
В массиве а1, а2, ..., аn найти количество «нулей», стоящих на нечетных местах.
В массиве а1, а2, ..., аn найти произведение чисел, исключая первый и последний элемент.
В массиве а1, а2, ..., аn найти сумму отрицательных чисел, стоящих на нечетных местах.
В массиве а1, а2, ..., аn найти количество чисел, попавших в интервал [а, в]
В массиве а1, а2, ..., а60 найти количество нулей стоящих на местах, кратных 4 т.е. среди чисел a4, a8, ..., a60.
Приложение 10 Задачи второго уровня
Даны три последовательности чисел а1, а2, ..., an, b1, b2 ..., bn, с1, с2, ..., сn. Составьте новую последовательность d1, d2, , d9, каждый элемент которой определяется по правилу di = max (аi, bi, сi), где i= 1,2,...,9
Найти номер первого нулевого элемента массива х1, х2, ..., х20 и сумму элементов предшествующих ему.
Известно, что в массиве а1, а2, ..., а16 количество отрицательных чисел равно количеству положительных. Составить новый массив так, чтобы чередовались положительные и отрицательные числа.
Дана последовательность чисел с1 , с2, ..., с16 . Найти произведение элементов этой последовательности до первого нулевого и сумму элементов, расположенных после него.
Все положительные элементы массива а1, а2 , ..., а20, расположенные правее первого нулевого элемента, увеличить в два раза.
В массиве х1 , х2, ..., х25 поменять местами элементы х1 , х4, х7 , х10, ..., х22 с наименьшим из следующий за ними соответствующей пары элементов.
Из заданного массива а1 , а2, ..., а12 , не содержащего нулей, получить массив b1, b2, ..., b12 , приняв в качестве первых его элементов все положительные элементы массива A с сохранением порядка их следования, а в качестве остальных элементов все отрицательные элементы также с сохранением порядка их следования.
Дан массив с1 , с2, ..., с15, состоящий из нулей и единиц. Подсчитать количество 0, количество 1 и количество нулей до первой единицы.
Массивы х1, х2, , х10 и у1, у2, ..., у10 преобразовать по правилу: большее из хi и уi принять в качестве нового значения хi , а меньшее – в качестве нового значения уi (i = 1,2, ...,10).
В массиве а1, а2, ..., а25 найти произведение первых трех положительных элементов.
Приложение 11 Задачи третьего уровня
Найти номер первого нулевого элемента массива а1, а2, ..., а25 и произведение элементов, расположенных до него, а среди элементов, расположенных правее первого нулевого, найти максимальный элемент.
В данном массиве чисел с1, с2, ..., с25 поменять местами максимальный элемент с последним отрицательным элементом.
Из массива х1, х2, ..., х25 сформировать два массива; в одном написать числа, расположенные до минимального элемента массива х, в другой расположенный правее минимального.
Из массива а1, а2, ..., а30 исключить максимальный элемент.
Среди отрицательных элементов массива х1, х2, ..., х50 найти минимальный и помножить на него все отрицательные элементы, стоящие левее этого минимального.
Из отрицательных элементов массива х1, х2 ..., x30, расположенных левее минимального элемента, сформировать новый массив.
Из элементов последовательности у1, у2, ..., у25, расположенных между первым нулевым и максимальным (в предположении, что в массиве есть положительные числа) (или максимальным и первым нулевым), сформировать новый массив.
Дан массив х1, х2, ..., х30. Помножить элементы массива на квадрат его наименьшего элемента, если хi больше или равно 0, и на квадрат его наибольшего элемента, если хi меньше 0.
В массиве чисел х1, х2, ..., х17 заменить нулем все отрицательные элементы, предшествующие его максимальному элементу.
Дана последовательность чисел а1, а2, ..., а25; из положительных элементов данной последовательности, расположенных до минимального элемента, сформировать последовательность р1, p2, p3









13 PAGE \* MERGEFORMAT 142015




ђ Заголовок 1
ђ Заголовок 2
ђ Заголовок 315

Приложенные файлы


Добавить комментарий