Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Команда повторения с параметром






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

Общий вид команды:

пока условие нц серия кц

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

Составим алгоритм с командой повторения для вычисления суммы натуральных чисел от 100 до 505, кратных 25.

S = 100 +125 + 150 + 175 + 200 + … + 500.

Алгоритм будет выглядеть так:

алг сумма (нат S, a) арг a рез S нач s: =100 a: =125 пока a≤ 505 нц S: =S+a а: =a+25 кц кон

С переменной «а» связаны три команды: a: =125, a≤ 500, а: =a+25. Эти три команды будем писать на одной строке.

 

алг сумма (нат S, a) арг a рез S нач s: =100 a: =125 пока a≤ 500 нц S: =S+a а: =a+25 кц кон алг сумма (нат S, a) арг a рез S нач s: =100 для а от 125 до 500 шаг 25 нц S: =S+a кц кон

Переменная «а» называется в новой записи параметром, а команда повторения – командой повторения с параметром.

Общий вид команды повторения с параметром:

для х от xmin до xmax шаг n нц серия кц

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

1) х от xmin х: = xmin
2) до xmax x ≤ xmax
3) шаг n x: = x + n

Если n = 1, то команда шаг n опускается.

Перепишем составленный нами алгоритм для нахождения суммы 1+2+3+4+…+50 в виде алгоритма с командой повторения с параметром.

алг сумма (нат S, a) арг a рез S нач s: =1 a: =2 пока a≤ 50 нц S: =S+a а: =a+1 кц кон алг сумма (нат S, a) арг a рез S нач s: =1 для а от 2 до 50 нц S: =S+a кц кон

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

Вспомните алгоритм который мы с вами составили для нахождения произведения чисел, не превосходящих 100 и кратных 4.

алг произведение (нат Р, n) арг n рез P нач P: =4 n: =8 пока n ≤ 100 нц P: =P × n n: =n + 4 кц кон алг произведение (нат Р, n) арг n рез P нач P: =4 для n от 8 до 100 шаг 4 нц P: =P × n кц кон

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

 

алг заполнение (вещ таб А[11: 18, 3: 6]) рез А начнат i: j i: =11 пока i< =18 нц j: =3 пока j< =6 нц если 3j> =i то А[i, j]: =i+j иначе А[i, j]: =50 все j: =j+1 кц i: =i+1 кц кон   алг заполнение (вещ таб А[11: 18, 3: 6]) рез А начнат i: j для i от 11 до 18 нц для j от 3 до 6 нц если 3j> =i то А[i, j]: =i+j иначе А[i, j]: =50 все кц кц кон  
алг сумма (вещтаб Т[10: 14, 3: 5], а) рез Т начнат i: j i: =10; а: =0 пока i< =14 нц j: =3 пока j< =5 нц если Т[i, j]< 45 то а: =а+Т[i, j] иначе а: =а все j: =j+1 кц i: =i+1 кц кон     алг сумма (вещтаб Т[10: 14, 3: 5], а) рез Т начнат i: j а: =0 для i от 10 до 14 нц для j от 3 до 5 нц если Т[i, j]< 45 то а: =а+Т[i, j] иначе а: =а все кц кц кон  
алг произведение (вещтаб С[4: 7, 13: 19], р) арг C рез p начнат i: j i: =4; р: =1 пока i< =7 нц j: =13 пока j< =19 нц если С[i, j]< =0 то р: =р*С[i, j] все j: =j+1 кц i: =i+1 кц кон алг произведение (вещтаб С[4: 7, 13: 19], р) арг C рез p начнат i: j р: =1 для i от 4 до 7 нц для j от 13 до 19 нц если С[i, j]< =0 то р: =р*С[i, j] все кц кц кон
алг подсчет (вещтаб G[4: 8, 2: 9], цел x, z) арг G рез z начнат i, j i: =4; z: =1; x: =0 пока i< =8 нц j: =2 пока j< =9 нц если G[i, j]< 0 то z: =z+1 иначе x: =x+1 все j: =j+1 кц i: =i+1 кц кон алг подсчет (вещтаб G[4: 8, 2: 9], цел x, z) арг G рез z начнат i, j z: =1; x: =0 для i от 4 до 8 нц для j от 2 до 9 нц если G[i, j]< 0 то z: =z+1 иначе x: =x+1 все кц кон

 

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

Пример 1. Составить алгоритм, заполняющий линейную таблицу нулями.

Пусть наша таблица имеет 100 столбиков, назовем ее «А».

алг обнуление (целтаб А[1: 100]) рез А начнат i для i от 1 до 100 нц А[i]: = 0 кц кон

 

Пример 2. Построить алгоритм суммирования элементов линейной таблицы.

алг обнуление (вещтаб В[1: 100], S) арг В рез S начнат i для i от 1 до 100 нц S: = S +В[i] кц кон

 

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

 

алг таблица умножения (вещтаб G[1: 9, 1: 9]) рез G начнат i, j для i от 1 до 9 нц для j от 1 до 9 нц G[i, j]: = i × j кц кц кон

 

Пример 4. Построить алгоритм для подсчета положительных, отрицательных чисел и

нулей в прямоугольной таблице.

 

алг подсчет (вещтаб С[10: 15, 0: 1], цел m, n, k) арг С рез m, n, k начцел i, j m: =0; n: =0; k: =0 для i от 10 до 15 нц для j от 0 до 1 нц если C[i, j]> 0 то m: =m+1 иначеесли C[i, j]=0 то n: =n+1 иначе k: =k+1 все все кц кц кон

 

Вопросы

1 Общий вид команды повторения?

2 Как работает команда повторения?

3 Общий вид команды повторения с параметром?

4 Как работает команда повторения с параметром?

5 Когда опускается шаг в команде повторения с параметром?

6 Почему при работе с табличными величинами шаг отсутствует?

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.