Циклы с неизвестным числом повторений — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Циклы с неизвестным числом повторений

2020-12-06 239
Циклы с неизвестным числом повторений 0.00 из 5.00 0 оценок
Заказать работу

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

Оператор цикла с предусловием имеет следующий синтаксис:

while <логическое выражение> do

       <оператор>

Здесь внутренний <оператор> выполняется в цикле до тех пор, пока условие продолжения цикла (<логическое выражение>) истинно. Если же <логическое выражение> становится ложным, то цикл прекращает функционировать и выполняется оператор, следующий за оператором while. Если условие продолжения цикла ложно с самого начала, то внутренний оператор не выполняется ни разу. Условие продолжения цикла вычисляется и анализируется перед каждым шагом выполнения цикла, отсюда и термин «предусловие». Если в теле цикла необходимо выполнять несколько операторов, то эту группу следует объединить в один составной оператор с помощью операторных скобок begin и end.

Оператор цикла с постусловием имеет следующую структуру:

Repeat

<оператор 1>;

<оператор 2>;

…….

<оператор N>;

until < логическое выражение>

Этот цикл будет выполняться, пока логическое выражение после слова until (до тех пор пока) ЛОЖНО. Как только результат выражения станет истинным, произойдет выход из цикла. Вычисление выражения выполняется в конце каждой итерации цикла.

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

program DemoRepeat;

var

X: integer;

Sum: real;

begin

 Sum:=0;                                                   

 repeat                             {Повторять}

Write('Значение X= '); {Начало тела цикла}

Readln(X); {Считать очередное значение Х с клавиатуры}

if X <> 999 then

Sum:= Sum+X;

 until X = 999; {Условие окончания цикла (пока Х не станет равным 999)}

Writeln('Сумма введенных чисел= ',Sum);

end.

 


12. Дайте определение понятий «массив», «элемент массива», «размерность массива». Опишите структуру объявления одномерного массива в языке программирования Паскаль (Delphi). Приведите пример ввода-вывода одномерного массива на экран.

Разработать программу нахождения произведения элементов массива A, состоящего из n элементов

Массив. Одномерные массивы

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

Элемент массива – отдельная переменная, входящая в массив.

Размерность массива – количество элементов, которое содержит массив.

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

1. Общая форма (явный способ) описания массива имеет следующий вид:

Var

< идентификатор >: array [ < тип индексов > ] of < тип элементов >;

Примеры объявления массивов:

A: array [1..31] of real;

B: array [0..100] of integer;

2. Неявный способ.

Type

<имя типа> = ARRAY [<тип индекса> ] OF <тип элементов >

VAR <имя переменной>:<имя типа>;

При таком способе описания в разделе Type описывается тип массива, который будет использоваться в программе, то есть его размер и тип элементов. Далее в разделе VAR для переменных которые будут содержать массив указывается новый тип. Если необходимо создать массивы разных типов или разных размеров, то для них создаются отдельные типы, а после объявляются переменные этих типов/

Пример:

Type

Mass1 = ARRAY [1..10] OF integer;

Mass2 = ARRAY [1..10] OF char;

Mass3 = ARRAY [1..10] OF real;

Mass4 = ARRAY [1..10] OF string;

 

VAR A,B: Mass1;

С:Mass2; d: Mass3; e: Mass4;

Одномерные массивы

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

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора Read или Read l n с использованием оператора организации цикла for:

Ввод элементов одномерного массива А:

for I:=1 to 4 do

Readln(A[I]);

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Write l n:

Вывод элементов одномерного массива А:

for I:= 1 to 4 do

Writeln (A[I]);

Program mas;

Uses Crt;

Var

n,i:integer;

p:longint;

a:array[1..100] of integer;

begin

writeln(‘Введите размерность массива’);

readln(n);

for i:=1 to n do

 begin

write(‘Введите значение элемента A[‘,i,’] ’);

readln(a[i]);

 end;

p:=1;

for i:=1 to n do

p:=p*a[i];

writeln(‘Произведение элементов равно ’,p);

readln

end.

 


13. Дайте определение понятия «массив». Опишите структуру объявления двумерного массива в языке программирования Паскаль (Delphi). Приведите пример объявления двумерного массива целого типа. Приведите пример ввода-вывода двумерного массива на экран.

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

 

Массив. Многомерные (двумерные) массивы

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

Двумерные массивы

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

Каждый элемент двумерного массива характеризуется номером строки и номером столбца. Например: А[3,8] – элемент из массива А находящийся в 3 строке и 8 столбце.

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

1. Общая форма (явный способ) описания двумерного массива имеет следующий вид:

Var

< идентификатор >: array [ < тип индекса строки >, <тип индекса столбца>] of < тип элементов >;

Пример:

VAR

a: ARRAY [1..10,1..20] OF integer;

2. Неявный способ.

Type

<имя типа> = ARRAY [<тип индекса строки>, <тип индексов столбца> ] OF <тип элементов >

VAR <имя переменной>:<имя типа>;

При таком способе описания в разделе Type описывается тип массива, который будет использоваться в программе, то есть его размер и тип элементов. Далее в разделе VAR для переменных, которые будут содержать массив, указывается новый тип. Если необходимо создать массивы разных типов или разных размеров, то для них создаются отдельные типы, а после объявляются переменные этих типов.

Пример:

Type

Mass1 = ARRAY [1..10,1..20] OF integer;

 

VAR A: Mass1;

Ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора Read или Read l n с использованием оператора организации цикла for:

Ввод элементов двумерного массива В:

for I:= 1 to 10 do

for J:= 1 to 15 do

Readln (B[I,J]);

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Write l n:

Вывод элементов двумерного массива В:

for I:= 1 to 10 do

for J:= 1 to 15 do

Write l n (B[I,J]);

 

program my;

var

a: array [1..5, 1..5] of real;

i, j: byte;

s: real;

begin

s:=0;

for i:=1 to 5 do

for j:=1 to 5 do

begin

write('Введитечисло [',i,’,’,j,']: ');

readln(a[i,j]);

if a[i,j]>0 then s:=s+a[i,j];

end;

writeln('s = ', s:0:2);

readln;

end.

 


14. Опишите общую структуру процедуры в языке программирования Паскаль (Delphi). Запишите общий вид вызова процедуры. Перечислите варианты формальных параметров.

Оформите в виде процедуры алгоритм вычисления степени y=xn с натуральным показателем.

 

Процедуры

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

В языке Pascal для организации подпрограмм используются процедуры и функции.

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

Описание процедуры:

Procedure <имя> [(<список формальных параметров>)];

[<раздел описаний>];

Begin

<оператор-1>;

<оператор-2>;

<оперaтop-N>

End;

 

где Procedure - служебное слово, определяющее заголовок процедуры; <имя> - имя процедуры (идентификатор); <список формальных параметров> - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типа (имени типа), допускается описание процедуры без параметров; <раздел описаний> - раздел локальных описаний используемых в процедуре меток, констант, типов, переменных, процедур и функций; Begin, End - служебные слова, ограничивающие содержательную часть процедуры (раздел операторов). Заканчивается блок процедуры точкой с запятой.

Вызывается процедура по её имени, например:

PRIM(Список_ фактических параметров);

Параметры

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

Существует 2 вида параметров:

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

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

Формальные параметры указываются рядом с именем процедуры в круглых скобках. Список параметров формально определяет количество переменных, которое необходимо для обмена информацией, и их тип. При этом, как и в разделе описания переменных, указывается имя переменной и через двоеточие её тип. Этого достаточно для их объявления.

Параметры-переменные (результат работы процедуры) отличаются от параметров-значений тем, что перед ними стоит служебное слово Var.

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

Фактические параметры — это параметры (данные), которые передаются процедуре при ее вызове.

Количество, порядок и тип формальных и фактических параметров должны в точности совпадать.

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

Procedure Step1(n:integer, х:real; Var у: real);

 Var

i: integer;

Begin {Stepl}

y:=1

for i:= 1 to n do

у:= y*x

End; {Stepl}

 


15. Опишите общую структуру функции в языке программирования Паскаль (Delphi). Запишите общий вид вызова функции. Перечислите основные отличия процедуры от функции.

Оформите в виде функции алгоритм вычисления степени y=xn с натуральным показателем.

Функция

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

В языке Pascal для организации подпрограмм используются процедуры и функции.

Если подпрограмма имеет только один выводимый параметр (результат), то её можно оформить в виде функции.

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

Описание функции:

Function <имя>[(<список формальных параметров>)]:<имя-типа>;

 [<раздел описаний>]

 Begin

...

<имя>:= <выражение>

End;

где Function - служебное слово, определяющее заголовок подпрограммы-функции; <имя> - имя функции; <список формальных параметров> - перечень имен для обозначения аргументов функции с указанием их типа; <имя-типа> - определение типа (скалярного) возвращаемого значения; <раздел описаний> - раздел локальных описаний, используемых в функции; Begin, End - служебные слова, ограничивающие содержательную часть функции.

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

Function Step2(n: integer, х: real): real;

 Var

i: integer;

у: real;

Begin {Step2}

 y:=1;

for i:= 1 to n do

у:= y*x;

Step2:= у

End; {Step2}

 


16. Дайте определение понятия «модуль» (unit). Опишите структуру Unit-a (разделы interface, implementation).

Разработайте программу для вычисления произведения всех элементов матрицы 10x10. Целые числа генерируются случайным образом.

 

Модули

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

Структура модуля

Рассмотрим общую структуру модуля:

Unit <имя>; {Заголовок модуля}

Interface {Интерфейсная секция}

Uses <список_модулей>; {необязателен} <открытые_описания>

Implementation {Исполняемая часть}

Uses <список_модулей>; {необязателен} <закрытые_описания>

<процедуры_и_функции>

 Begin {Секция инициализации}

<код_инициализации>

 End.

Здесь

UNIT - зарезервированное слово (единица); начинает заголовок модуля;

<имя> - имя модуля (правильный идентификатор);

INTERFACE - зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;

IMPLEMENTATION - зарезервированное слово (выполнение); начинает исполняемую часть; 

BEGIN - зарезервированное слово; начинает инициализирующую часть модуля;

конструкция BEGIN <секция инициализации> необязательна;

END - зарезервированное слово - признак конца модуля.

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


Поделиться с друзьями:

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.094 с.