Azotirovanie.ru

Инженерные системы и решения
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Блок 3: "Виды алгоритмов"

Тема 4:"Составление циклических алгоритмов."

Определите в данных условиях цикл и заполните следующую таблицу:

Начальное значениеКонечное значениеШаг

1) 1, 2, 3, 4, . ,10.

2) -5, -4, -3, -2, . , 5.

3) 2, 4, 6, . , 20.

7) b-5, b-4, b-3, . b+5.

1) от x=7 до 10 шаг 1;

2) от b=1 до 13 шаг 4;

3) от c=30 до 10 шаг -5;

4) от n=a до a+10 шаг 2;

6) от t=-4 до 4 шаг 1;

7) от p=7 до -7 шаг -1;

9) от -100 до 100 шаг c;

Перепишите на алгоритмическом языке блок-схемы циклов из тренинга №3.

1) В лототроне по порядку лежат шары с номерами от 100 до 200. Он выбрасывает каждый седьмой. Составьте алгоритм для определения номеров выпавших шаров.

2) В гонках участвовало 17 машин ( номера их идут по порядку). Каждая вторая машина сошла с дистанции по той или иной причине. Составьте алгоритм определения их номеров.

3) Преобразуйте циклы с параметром в цикл-до и цикл- пока. Запишите их в виде блок- схем. Образец:

4) Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Сколько км пробежал спортсмен за каждый день недели?

5) На опытном лесном участке ежегодный прирост древесины — 10%. Какое количество ее будет через 6 лет, если в начале 1 года было посажено 20000 м 3 ?

6) В банк был положен вклад в размере N руб. Каждый месяц он увеличивался на 1%. Определите размер вклада через 5 лет.

2) Спортсмен в день пробегает х метров. Начав тренировки, он в течение недели увеличивал свой пробег предыдущего дня на 250 метров. Сколько пробегал спортсмен в каждый день тренировки?

3) Блок-схемы, приведенные в 1 упражнении 1 уровня записать на алгоритмическом языке. Преобразовать их в цикл-до и цикл- пока. Образец:

цикл с параметром цикл-до цикл- пока
для N от 3 до 5 шаг 2
нц
K:=N^2
вывод K
кц
N:=3
нц
K:=N^2
вывод K
N:=N+2
до N>5
кц
N:=3
пока N<=5
нц
K:=N^2
вывод K
N:=N+2
кц

4) Напечатать все квадраты двухзначных чисел, не превышающие 200.

5) Банк принял два вклада по 1000$. Один под 2% годовых, а другой под 3%. Через сколько лет второй вклад превысит первый на 100$?

6) Количество рыбы в реке, в которую сбрасывались загрязнения, ежегодно сокращалось на 20%. Определите, через сколько лет рыбы в реке почти не останется ( ее количество будет меньше 1)? Известно, что до начала загрязнения ее было N особей.

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

2) В лаборатории были пробирки в форме цилиндров. Они отличались между собой по высоте ( h=2; 2,5; 3 . 25 см). За год пришла в негодность каждая пятая. Определите объемы разбитых пробирок, если радиус основания у всех пробирок был R. Формула для вычисления объема: V=3,14R 2 h .

3) Напечатать таблицу значений перевода температуры из градусов Цельсия (С) в градусы по шкале Фаренгейта (F) для значений от 15 до 30° С с шагом 1°. Формула для перевода: F=1,8C+32.

4) Около стены стоит палка длиной х см. Один ее конец находится на расстоянии y от стены. Каждую минуту палка скользила вниз по стене на 2% расстояния от пола. Определите через сколько минут она упала (Z<0,1см). Формула для расчетов: Z=(x 2 -y 2 ) 1/2

Читайте так же:
Счетчик измерение максимальной энергии

5) Поголовье скота в колхозе увеличивается с каждым годом. Прирост числа коров составляет 7%, а свиней 15%. Определите сколько всего голов скота при таких темпах сможет выращивать колхоз через 5 лет, если на начало этого периода было 100 коров и 100 свиней?

6) В упражнении 5 вычислить, через сколько лет количество свиней будет больше количества коров не менее чем на 100 ?

ИНФОРМАТИКА учебно-методическое пособие для студентов заочной формы обучения Тольятти 2011

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

Студент должен выполнить задание в двух вариантах:

Выполнить словесный алгоритм и записать его результат.

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

Выполнить упражнение 1. Перед выполнением упражнения изучите материал по теме из раздела 2.5 курса лекций.

1) Выполнить словесный алгоритм. Записать результат.

2) Составить блок-схему и написать программу по заданному алгоритму.

В результате работы линейного алгоритма:

найти значение переменных: k, n, m.

1) Словесный алгоритм выполняется последовательно.

Значение k = 8 подставляется в m =k+2=10.

Значение k = 8, m =10 подставляется в n =k+m =18.

Вычисляется новое k = n – 2 * k =18 – 2 * 8 = 2.

Вычисляется новое m:=k+n=2+18=20.

В результате работы линейного алгоритма значение переменных равны:

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

Программа алгоритма, представленного на рис.14.

Writeln (‘ввести k’);

Writeln (‘k=’, k,’ n=’, n,’ m=’, m);

В фигурных скобках даются пояснения (комментарии) к операторам.

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

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

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

Блоку 1 соответствует слово BEGIN(начало).

Блоку 2 соответствует оператор ввода Readln (k).

Блоки 36 переписываются с рис.14.

Блоку 7 соответствует оператор вывода Writeln (‘k=’, k,’ n=’, n,’ m=’, m).

Блоку 8 соответствует слово END(конец программы).

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

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

1) Выполнить словесный алгоритм. Записать результат.

2) Составить блок-схему и написать программу по алгоритму.

Задан фрагмент алгоритма:

если W > R, то R=W+R, иначе W=R-W.

В результате выполнения данного алгоритма с начальными значениями: W=-7, R=55

на экран будет выведено: W R

1) Для начальных значений: W=-7, R=55 условие W > R не выполняется. В этом случае выполняется вторая ветка W=R-W=55+7=62.

В результате работы алгоритма значение переменных равны: W=62, R=55.

2) Блок-схема словесного алгоритма представлена на рис.15.

На рис. 15 появился новый блок 3, в котором проверяется условие. Блок проверки условия образует ветвление по двум направлениям в алгоритме.

В блок-схеме видно, что в зависимости от условия w>r выполняется одна из веток алгоритма. Затем выводится результат вычисления.

Читайте так же:
Сброс счетчика принтера brother hl 2130r

Рис. 15. Алгоритм ветвления

Блоку 1 соответствует служебное слово BEGIN.

Блоку 2 соответствует оператор ввода Readln (w, r).

Блоку 3 соответствует оператор условия if w > r then w := w + r else r:=r-w.

Блоку 4 соответствует оператор присваивания w = w+r.

Блоку 5 соответствует оператор присваивания r=r-w.

Блоку 6 соответствует оператор вывода Writeln (’ w =’, w, ’ r =’, r).

Блоку 7 соответствует служебное слово END.

Программа алгоритма ветвления, представленного на рис.15.

Writeln (‘ввести w, r’);

Writeln (’ w =’, w, ’ r =’, r);

1) Выполнить словесный алгоритм. Записать результат.

2) Составить блок-схему и написать программу по алгоритму.

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

Заданы начальные значения переменных:

Начало цикла для i от 1 до 3

конец цикла; Вывод d, s.

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

После выполнения первого цикла значения переменных равны d=2, s=2.

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

После выполнения второго цикла значения переменных равны d=4, s=6.

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

В результате выполнения алгоритма значение переменных равны: d=8, s=14.

2) Блок-схема словесного алгоритма цикла со счётчиком представлена на рис.16.

Рис. 16. Алгоритм цикла со счётчиком

Блоку 1 соответствует служебное слово BEGIN.

Блоку 2 соответствует оператор ввода readln (n).

Блоку 3 соответствуют операторы присваивания s:=0; d:=1;

Блоку 4 соответствует оператор цикла со счётчиком for i:=1 to n do.

Блоку 5 соответствуют операторы присваивания d: =2 * d; s: =s + d;

Блоку 6 соответствует оператор вывода Writeln (‘d= ’, d, ‘s = ’, s);

Блоку 7 соответствует служебное слово END.

Программа алгоритма цикла со счётчиком, представленного на рис.16.

s, d, i, n :integer;

writeln (‘ввести количество циклов-n’);

Writeln (‘ d= ’, d, ‘ s = ’, s);

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

Заданы начальные значения переменных:

Начало цикла. Пока y>x выполнить:

Определить количество циклов k и значения переменной y после выхода из цикла.

1) Цикл выполняется до тех пор, пока выполняется условие y>x.

Так как y=5, x=1, то условие y>x выполняется и значение y вычисляется по формуле y = y – x.

В результате выполнения первого цикла y=4.

Во втором цикле условие y>x выполняется, после второго цикла значение y=3.

В третьем цикле условие y>x выполняется, после окончания третьего цикла значение y=2.

В четвертом цикле условие y>x выполняется, после выполнения цикла значение y=1.

При значениях y=1, x=1 условие y>x не выполняется, цикл не будет выполняться. Следовательно, цикл закончится и выполнится четыре цикла.

На выходе из цикла значения переменных будут равны: k=4, y=1, x=1.

2) Программа алгоритма цикла с предусловием, представленного на рис.12.

writeln (‘ ввести x, y ’);

writeln (‘ k=’, k , ‘ y= ’ , y);

В программе до выполнения цикла не задано начальное значение k. По умолчанию оно равно нулю.

В примере используется оператор цикла с предусловием, который в данном примере выполняется при условии y>x. Условие проверяется при входе в цикл. В теле цикла счётчик задан в виде оператора присваивания k:=k+1, который выдаёт количество выполненных циклов.

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

Программа алгоритма цикла с постусловием, представленного на рис.13.

writeln (‘ввести x, y , ’);

readln (‘ k=’ , k , ‘ y= ’, y);

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

Читайте так же:
Принцип работы счетчика джонсона

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

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

Лабораторная работа №4. “Программирование циклических вычислительных процессов”

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

Теоретическая часть

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

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

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Имеется 3 вида циклов:

— цикл с предусловием;

— цикл с постусловием;

— цикл со счетчиком (счетный цикл).

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

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

Блок-схемы циклических алгоритмов выглядят следующим образом:

1. Цикл со счетчиком.

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

4.1.2 Операторы цикла в языке программирования C++.

В C++ для каждого вида цикла имеется соответствующий оператор:

— цикл типа while (с предусловием);

— цикл типа do…while (с постусловием);

— цикл типа for (счетный).

1.Оператор цикла типа while

while (условие) оператор;

где: (условие) – логическое выражение;

оператор – выполняемый в цикле оператор или тело цикла.

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

Схема работы такого цикла: пока условие является истинным (true), выполняется тело цикла и снова проверяется условие и т.д. Когда условие станет ложным (false) цикл завершает работу.

2. Оператор цикла типа do…while

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

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

3. Оператор цикла типа for

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

i=0, x=0.5, p=1, s=0

B – условное выражение, которое проверяет условие продолжения работы цикла. Например:

C – выражение приращения, которое задает приращение параметру цикла и при необходимости другим параметров, тогда они записываются списком. Например: x+=0.1, i++

4.1.3 Пример составления алгоритма и программы на языке C++ для циклического вычислительного процесса.

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

b – исходная величина, ее значение вводятся с клавиатуры и не изменяется;

a – изменяется в диапазоне [0;10] с шагом 1;

y – результат, его значения выводятся на экран.

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

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

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

else printf(“ y не существуетn”);

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

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

else printf(“ y не существуетn”);

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

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

else printf(“ y не существуетn”);

Практическая часть

Читайте так же:
Втулка при замене счетчика

4.2.1 Требования к выполнению работы:

Выполнить задание из лабораторной работы № 3 для диапазона значений одной из переменных. Изменяемая переменная, диапазон ее изменения и шаг указаны в таблице 4. Составить блок-схемы алгоритмов и программы для двух типов циклов, указанных в индивидуальном задании (таблица 4).

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

Порядок выполнения работы.

1. Выполнить анализ задания, сформулировать постановку задачи.

2. Составить блок-схемы алгоритмов.

3. Составить программу на языке C++. Предусмотреть ввод исходных данных с клавиатуры и вывод результатов на экран.

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

5. Выполнить анализ полученных результатов.

Варианты индивидуальных заданий.

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

Алгоритмы и исполнители

Команда цикла обеспечивает повторное выполнение последовательности команд (тела цикла) по некоторому условию.

Для программирования алгоритмов циклической структуры в системе программирования КуМир предусмотрено два вида циклов: цикл с предусловием (цикл пока) и цикл с параметром (цикл для).

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

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

описание

блок-схема

При его выполнении ЭВМ циклически повторяет следующие действия:

а) проверяет записанное после слова пока условие;

б) если условие не соблюдается (условие ложно), то выполнение цикла завершается и ЭВМ начинает выполнять команды, записанные после КЦ. Если же условие соблюдается (условие истинно), то ЭВМ выполняет тело цикла, снова проверяет условие и т.д.

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

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

Дано целое положительное число N . Вычислить факториал этого числа: N ! = 1 * 2 * 3 * . * N.

алг Факториал
нач цел F , N , i
вывод ‘ Введите N ‘
ввод N
F : = 1
i : = 1
нц пока i < = N
F : = F * i
i : = i + 1
кц
вывод ‘ Факториал = ‘, F
кон

Цикл с параметром (цикл для)

Цикл с параметром (цикл для) — повторное выполнение тела цикла, пока целочисленный параметр пробегает множество всех значений от начального ( i 1 ) до конечного ( in ):

описание

блок-схема

Здесь i — переменная целого типа, называемая параметром цикла: i 1, in — начальное и конечное значения параметра цикла, которые могут быть заданы либо произвольными целыми числами, либо выражениями с целыми значениями; h — шаг изменения значения параметра цикла, значением шага может быть любое целое число (как положительное, так и отрицательное). Запись "шаг h " в первой строке может вообще отсутствовать, при этом по умолчанию значение шага принимается равным 1.

При выполнении цикла для, его тело выполняется для i = i 1, i = i 1 + h , i = i 1 + 2* h , . . . , i = in . Правила алгоритмического языка допускают задание любых целых i 1, in , h . В частности, in может быть меньше i 1. Если при этом значение h < 0, то цикл выполняется нужное количество раз, а если h имеет положительное значение, то этот случай не считается ошибочным — просто тело цикла не будет выполнено ни разу, а ЭВМ сразу перейдет к выполнению команд, записанных после КЦ. При h = 0 происходит зацикливание.

Читайте так же:
Правила установки водомерного счетчик

Пример: Дано целое положительное число N . Вычислить факториал этого числа: N ! = 1 * 2 * 3 * . * N .

алг Факториал
нач цел F , N , i
вывод ‘ Введите N ‘
ввод N
F : = 1
нц для i от 1 до N
F : = F * i
кц
вывод ‘ Факториал = ‘, F
кон

Запись алгоритмов в виде блок-схем

Алгоритмы можно записывать по-разному. Всякий алгоритм может быть:

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

• изображен в виде блок-схемы;

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

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

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

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

Рис. 2.3. Примеры структур алгоритмов: б алгоритм с ветвлением; в алгоритм с циклом

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

Примером может являться разветвляющийся алгоритм, изображенный в виде блок-схемы (рис. 2.3). Аргументами этого алгоритма являются две переменные А, В, а результатом переменная X. Если условие А >= В истинно, то выполняется операция Х :=А * В, в противном случае выполняется Х := А + В. В результате печатается то значение переменной X, которое она получает в результате выполнения одной из серий команд.

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

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

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

Рассмотрим циклический алгоритм типа пока на примере алгоритма вычисления факториала, изображенного на рис. 2.3, в. Переменная N получает значение числа, факториал которого вычисляется. Переменной М, которая в результате выполнения алгоритма должна получить значение факториала, присваивается первоначальное значение 1. Переменной К также присваивается значение 1. Цикл будет выполняться, пока справедливо условие N > K. Тело цикла состоит из двух операций М := М * K и К := К + 1.

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

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector