Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмы для студентов раздать.docx
Скачиваний:
20
Добавлен:
18.11.2019
Размер:
569.3 Кб
Скачать

Задания для выполнения практической работы

Вариант 1

Первый уровень (на оценку «3»). Разработать алгоритм для решения задачи.

Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число.

Второй уровень (на оценку «4»).

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

Третий уровень (на оценку «5»). Разработать алгоритм для нахождения наименьшего:

Вариант 2

Первый уровень (на оценку «3»). Разработать алгоритм для решения задачи.

Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2. Вывести полученное число.

Второй уровень (на оценку «4»).

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

Третий уровень (на оценку «5»).

Разработать алгоритм для нахождения наибольшего:

Вариант 3

Первый уровень (на оценку «3»). Разработать алгоритм для решения задачи.

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

Второй уровень (на оценку «4»).

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

Третий уровень (на оценку «5»).

Разработать алгоритм для нахождения наибольшего:

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

4.1 Алгоритмы цикла типа «для» (цикл со счетчиком)

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

Вспомним, как этот тип цикла оформляется в идее блок-схемы:

На алгоритмическом языке оператор цикла со счетчиком имеет следующую форму записи:

ДЛЯ I := I_НАЧ ДО I_КОН

НЦ

действия (тело цикла)

КЦ

I – управляющая переменная цикла, так называемый счетчик цикла, значение которого меняется от начального (I_НАЧ) до конечного (I_КОН). После того как переменная-счетчик цикла примет конечное значение, тело цикла выполнится в последний раз и цикл будет завершен. Переменная-счетчик должна быть целого типа.

I_НАЧ и I_КОН – это начальное и конечное значения счетчика цикла. Оба значения должны быть того же типа, что и счетчик цикла, то есть целого.

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

Правила записи оператора цикла со счетчиком:

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

  2. Определить начальное и конечное значения параметра цикла.

  3. Определить повторяющиеся действия и записать их.

Работа цикла «ДЛЯ».

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

Задача 4. Алгоритм нахождения суммы чисел

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

Заметим, что всегда повторяется одно и то же действие: к старой сумме прибавляется следующее число.

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

Мы получили алгоритм нахождения суммы чисел. Этот алгоритм можно использовать во многих задачах. Его необходимо понять и запомнить.

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

  1. Параметр цикла: счетчик, который считает, сколько чисел уже введено и прибавлено к сумме. Пусть его имя будет I.

  2. Начальное значение параметра цикла равно 1, конечное значение параметра цикла равно 5.

  3. Повторяющиеся действия:

Ввод X

{на каждом новом шаге прибавления узнаем значение следующего числа}

S := S + X

{новое значение суммы (S, стоящее слева) получается путем прибавления к старому значению (S, стоящее справа) только что полученное число X}

Надо иметь ввиду, что начальное значение суммы S := 0.

1. Анализируем условие. Что дано в задаче? – числа X. Это переменная вещественного типа. Что является результатом в этой задаче? – Сумма S, которая тоже является переменной вещественного типа. Есть еще промежуточный результат. Это счетчик I – переменная целого типа.

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

2. Математическая модель. Здесь опишем формальную схему работы цикла со счетчиком

1. S := 0

2. (действия цикла)

2.1. Параметр цикла – переменная I.

2.2. Начальное значение I равно 1, конечное значение I равно 5.

2.3. Повторяющиеся действия:

Ввод X

S := S + X

3. После завершения работы цикла:

Вывод S

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

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

АЛГ сумма5

АРГ ВЕЩ X

РЕЗ ВЕЩ S, ЦЕЛ I

НАЧ

S := 0

ДЛЯ I := 1 ДО 5

НЦ

Ввод X

S := S + X

КЦ

Вывод S

КОН

Р ис. 4.

Задача 5: Таблица значений функции

Давайте решим следующую задачу. Получить таблицу значений функции на отрезке [a, b] с шагом h.

  1. Анализ условия. Дано: константы a и b, обозначающие концы отрезка функции, а также шаг h. Результат: аргумент и значение функции X и Y – переменные вещественного типа.

2. Математическая модель. Так как функция вычисляется несколько раз по одной формуле, то используем цикл со счетчиком. Для этого необходимо знать, сколько именно раз вычисляется функция. Для подсчета этого количества используем формулу, известную из математики: . Понятно, что может получиться нецелое число, поэтому его округляют в меньшую сторону и прибавляют единицу: . Если известны значения всех переменных, то значение n можно вычислить с помощью карандаша и бумаги. Но можно обойтись командами ввода переменных a, b и h и последующей записью приведенной формулы для n.

Например, если была поставлена задача получить таблицу значений функции на отрезке [-2, 2] с шагом 0,5, тогда a=-2,0, b=2,0 и h=0,5, а

Запишем математическую модель с помощью формул и математических соотношений.

1. ввод a, b и h {введем значения концов отрезка и шаг}

2. {подсчитаем количество значений}

3. Х := а {придадим Х начальное значение, равное правому концу отрезка}

4. (вычисление и вывод значений аргумента и функции)

4.1. Параметр цикла – переменная I, означает, какое по счету значение аргумента вычисляется.

4.2. Начальное значение I равно 1, конечное значение I равно n.

4.3. Повторяющиеся действия:

X := X + h {Вычислить следующее значение аргумента X}

Y := 2 * X + 5 {значение функции, соответствующее аргументу}

Вывод X, Y

3. Блок-схема алгоритма нашей задачи будет выглядеть как на рис. 6.

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

АЛГ таблица функции

АРГ

РЕЗ ВЕЩ X, Y

ЦЕЛ I

НАЧ

ввод a, b, h

Х := а

ДЛЯ I := 1 ДО n

НЦ

X := X + h

Y := 2 * X + 5

Вывод X, Y

КЦ

КОН

Рис. 5

Вопросы для самопроверки:

  1. Какая форма организации действий называется циклом?

  2. Какие данные необходимы для организации цикла?

  3. Когда применяется цикл «ДЛЯ»?

  4. Что такое управляющая переменная цикла?

  5. Что вы знаете о шаге в цикле?

  6. Что такое тело цикла?

Вопросы для размышления:

  1. Какой тип алгоритмической структуры необходимо применить, если:

    • последовательность команд должна быть выполнена определенное количество раз;

    • последовательность команд выполняется или не выполняется в зависимости от условия;

    • последовательность команд должна быть обязательно выполнена хотя бы один раз и должна повторяться до тех пор, пока условие справедливо?

2. Напишите циклический алгоритм и укажите в нем тело цикла.

Задания

1. Какое значение будет принимать переменная Y после выполнения фрагмента алгоритма:

а) Y := 0

ДЛЯ K := 1 ДО 9

НЦ Y := Y + K

КЦ

в) Y := 1

ДЛЯ K := 1 ДО 5

НЦ Y := Y * Х

КЦ

б) Y := 0

ДЛЯ K := 1 ДО 9

НЦ Y := Y + Х

КЦ

г) X := 0; Y := 1

ДЛЯ K := 1 ДО 5

НЦ Х := Х + 2; Y := Y * Х

КЦ

д)

е)

ж)

з)

2. Дана блок-схема. Напишите алгоритм на алгоритмическом языке по данной блок-схеме.

а )

б)

  1. Разработайте алгоритм (по всем этапам) для решения следующих задач:

3.1. Десять чисел вводятся по одному. Вычислить их среднее арифметическое.

3.2. Двадцать чисел вводятся по одному. Вычислить произведение тех из них, которые меньше -1 и больше 10.

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

3.4. Вычислить значение выражения:

3.5. Для заданных значений x и n вычислить , где n – натуральное число.

3.6. Вычислить значение переменной M:

3.7. Вычислить значение суммы

3.8. Получить таблицу значений функции на отрезке [-2, 8] с шагом 0,2.

3.9. Вычислить значение суммы

3.10. Вычислить значение суммы