Программирование. Циклы с параметром. Массивы. Операторы цикла с параметром (for) Цикл с параметром описание

В большинстве программ встречается необходимость многократного выполнения некоторого оператора (или блока операторов). Для организации подобного рода конструкций могут использоваться операторы цикла. В языке программирования Паскаль используются следующие виды операторов цикла: for, while, repeat (в PascalABC.NET используется также оператор цикла foreach ).

Блок операторов, который необходимо выполнить многократно называется телом цикла.

Оператор for в Паскаль

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

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

В зависимости от направления изменения параметра цикла (возрастание - to или убывание - downto ) в языке Паскаль оператор цикла for может быть записан в одной из двух форм:

  • for параметр := нач_знач to кон_знач do
  • оператор;
  • for параметр := нач_знач downto кон_знач do
  • оператор;

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

Рассмотрим работу цикла for .

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

  1. Сравнивается текущее значение параметра с конечным значением.
  2. Если условие параметр кон_знач истинно, то выполняется тело цикла, в противном случае оператор for завершает работу и управление передается оператору, следующему за циклом.

Внимание: в языке Паскаль параметр цикла, вне зависимости от возрастания или убывания, всякий раз изменяется на единицу.

Задача. Вывести на экран список квадратов целых чисел от 10 до 1.

Решение. В поставленной задаче параметр цикла убывает.

{Фрагмент кода программы}

  • for i:= 10 downto 1 do
  • writeln(i:2, " ", i * i);

Внимание: если в теле цикла необходимо использовать более одного оператора, то применяется составной оператор (операторные скобки begin и end ).

Пример 2. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.

Задача. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.

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

{Фрагмент кода программы}

  • s:= 0;
  • for i:= 1 to 4 do
  • begin
  • readln(mark);
  • s:= s + mark;
  • writeln(s);

выражение1 и выражение2 - начальное и конечное значение параметра цикла.

Действие оператора цикла типа to (прямой счет):

2. проверяется условие: значение переменной больше значения выражения2?

3. если да, то цикл прекращается; если нет, то выполняется оператор, значение переменной увеличивается на единицу и далее действие повторяется, начиная с пункта2.

Действие оператора цикла типа downto (обратный счет):

1. переменной присваивается значение выражения1;

2. проверяется условие: значение переменной меньше значения выражения2?

3. если да, то цикл прекращается; если нет, то выполняется оператор, значение переменной уменьшается на единицу и далее действие повторяется, начиная с пункта 2.

Правила:

1. Параметром цикла может быть только целая переменная.

2. Параметр цикла не может явным образом меняться в теле цикла.

Например:

for i:=1 to 10 do

i:=i+1; {неверно}

3. Шаг цикла может быть равен только +1 (цикл с to) или –1 (цикл с downto).

4. В соответствии с общим видом тело цикла должно состоять из одного оператора, если операторов несколько, используем составной оператор и операторные скобки begin..end;.

5. Цикл может не выполниться ни одного раза.

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

var i,n: integer; x,s: real;

write(‘Введите кол-во чисел’);

for i:=1 to n do

write(‘Введите число номер’,i);

writeln(‘Среднее значение =’,s/n);

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

Оператор цикл while – это оператор цикла с заранее неизвестным числом повторений.

Общий вид:

while логическое выражение do оператор;

логическое выражение - это условие продолжения цикла.

оператор

Действие оператора:

1. вычисляется логическое выражение;

2. если оно истинно, то выполняется оператор, после чего все действия повторяются, начиная с пункта 1;

3. eсли логическое выражение - ложно, то цикл прекращается.

Правила:

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

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

3. Для того, чтобы цикл не стал бесконечным, в теле цикла должны изменяться величины, входящие в логическое выражение.

Например:

while a<100 do

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

var x,xn,xk,y,h: real;

writeln("Введите начальное, конечное значение х и шаг изменения х");

writeln("| x | y |");

while x<=xk do

writeln("|",x:7:2,"|",y:7:2,"|");

Оператор цикла с постусловием (цикл repeat..until).

Оператор цикла repeat..until - это оператор цикла с заранее неизвестным количеством повторений.

Общий вид:

операторы;

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


Действие оператора цикла repeat..until:

Операторы в теле цикла выполняются до тех пор, пока значение логического выражения FALSE; как только логическое выражение принимает значение TRUE, выполнение оператора цикла прекращается.

Правила:

1. Тело цикла всегда выполняется хотя бы один раз, так как условие стоит в конце цикла.

2. В этом операторе цикла нет надобности в составном операторе, все операторы в теле цикла ограничиваются ключевыми словами repeat..until.

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

program rep_unt;

var n,k,s: integer;

write("Введите k");

write("Суммаравна ",s);

Массивы данных

Массив – это совокупность упорядоченных данных, имеющих одинаковое имя и тип, и отличающихся друг от друга номером (индексом). Массивы бывают одномерные и многомерные. Примеры массивов:

2 5 –15 10 20 – массив целого типа из 6 элементов;

2.3 9 2.45 4.78 5.32 – массив вещественного типа из 5 элементов;

Иванов Иван Иванович – массив символов из 20 элементов;

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

var имя массива: array[начальное значение индекса.. конечное значение индекса] of тип;

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

Например:

var vector: array of real;

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

var имя массива: array[начальное значение индекса.. конечное значение индекса, ... , ...] of<тип>;

Например:

varmatrix: array ofinteger; - описание матрицы размером 3´5.

Доступ к элементам массива.

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

В качестве таких индексов могут использоваться только целые значения-константы.

Например:

a[i], b, v1, a

БАЗЫ ДАННЫХ

Понятие базы данных

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

Такого рода информационная система требует создания в памяти ЭВМ динамически обновляемой модели рассматриваемой предметной области с использованием единого хранилища – базы данных (БД). Предметная область – часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации. В состав каждой предметной области входит совокупность каких-либо объектов . Группы этих объектов , объединенных по какому-либо группировочному признаку , принято называть сущностями . Например, если речь идет об учете продукции на складе, то можно выделить сущности "товар ", "покупатель ", "накладная ". Объектами будут их конкретные представители, например, сахар , ОАО "Гефест" , накладная №252 .

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

Хранилищами информации в базе данных являются таблицы , каждая из которых содержит сведения об однотипных объектах (объединенных группировочным признаком ), образующих сущность . Каждая строка таблицы включает данные об одном объекте , экземпляре сущности (например, товаре , покупателе , накладной ), а столбцы таблицы содержат различные характеристики этих объектов – атрибуты (например, наименования товаров , имена покупателей и номера накладных ).

В терминах баз данных строки таблицы называются записями , а ее столбцы полями . Все записи имеют одинаковую структуру - они состоят из одинаковых полей , в которых хранятся различные значения атрибутов объекта. Каждое полезаписи содержит одну характеристику объекта и имеет строго определенный тип данных (например, текстовая строка, число, дата). Все записи одной таблицы имеют одни и те же поля , только в них содержатся разные значения атрибутов .

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

Структура таблицы "Покупатель".

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

Такие базы данных называются реляционными (от relation – связь, отношение). Реляционная база данных представляет собой множество взаимосвязанных таблиц , каждая из которых содержит информацию об объектах определенного типа.

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

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

Отношение один-ко-многим устанавливается между таблицами в том случае, когда одной записи в родительской дочерней таблице. В приведенном примере, между таблицами "Покупатель" и "Отпуск товаров" установлена связь этого типа.

Отношение один-к-одному имеет место, когда одной записи в родительской табли­це соответствует не более одной записи в дочерней таблице.

В случае отношения многие-ко-многим одной записи в родительской табли­це может соответствовать любое количество записей в дочерней таблице и наоборот.

Связанные отношениями таблицы взаимодействуют по принципу главная (master) – подчиненная (detail). В нашем примере таблица "Покупатель" – главная , а таблица "Отпущено товаров" – подчиненная . Главную таблицу также часто называют родительской , а подчиненную дочерней . Одна и та же таблица может быть главной по отношению к одной таблице базы данных и дочерней по отношению к другой.

Системы управления базами данных (СУДБ). Классификация

Для работы с данными используются системы управления базами данных (СУБД) . СУБД – это программные средства, предназначенные для определения данных (описания структуры баз данных – таблиц, связей), обработки и управления данными. ПримерыСУБД – FoxPro, Oracle, SQL-Server, Delphi, dBase, Clipper, MS Access идр.

Различают три основных вида СУБД: промышленные универсального назначения , промышлен­ные специального назначения и разрабатываемые для конкретного заказчика (заказные) .

Специа­лизированныеСУБД создаются для управления базами данных конкретного назначе­ния – бухгалтерские, складские, банковские и т.д.

УниверсальныеСУБД не имеют четко очерченных рамок применения, они рассчитаны "на все случаи жизни" и, как следствие, достаточно сложны и требуют от пользователя специальных знаний.

В отличие от промышленныхСУБДзаказные в максимальной степени учиты­вают специфику работы заказчика (того или иного предприятия), их интерфейс обыч­но интуитивно понятен пользователям и не требует от них специальных знаний. С другой стороны, специализированные и универсальныепромышленныеСУБД относительно деше­вы, достаточно надежны (отлажены) и готовы к немедленной работе, в то время как заказныеСУБД требуют существенных затрат, а их подготовка к работе и отладка занимают значительный период времени (от нескольких месяцев до нескольких лет).

В зависимости от расположения СУБД различают локальные и распределенные (клиент-серверные ) СУБД. Все части локальной СУБД размещаются на компьютере пользо­вателя базы данных. Если к одной БД по компьютерной сети обращаются несколько пользователей одновре­менно, каждый пользовательский компьютер должен иметь свою копию локальной СУБД. В отличие от этого значительная часть программно-аппаратных средств рас­пределенной СУБД централизована и находится на одном достаточно мощном ком­пьютере (сервере), в то время как компьютеры пользователей несут относительно небольшую часть СУБД, которая называется клиентом. Локальные СУБД могут рабо­тать в сети, но могут и не использовать ее, в то время как распределенные СУБД обязательно работают в компьютерной сети .

Заметим, что местона­хождение собственно базы данных никак не влияет на специфику СУБД: в локальных СУБД сама база данных может располагаться как на компьютере пользователя, так и на уда­ленном сетевом компьютере (файл-сервере).

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

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

Основные функции, выполняемые СУБД:

Управление данными во внешней памяти (на дисках);

Управление данными в оперативной памяти ;

- журнализация изменений и восстановлениебазы данных после сбоев;

Поддержание языков баз данных (язык определения данных – язык SDL, язык манипулирования данными – язык DML, или единый интегрированный язык, содержащий все необходимые средства для работы с БД – язык структурированных запросов SQL).

Инструкция цикла for реализует алгоритмическую структуру цикл с параметром (или цикл со счетчиком). Цикл for применяется в том случае, когда в программе, прежде выполнения инструкций цикла, становится известным (или заранее определено) количество шагов этого цикла. В блок-схеме инструкция for изображается следующим образом:

Синтаксис:

For (инициализация ; условие ; модификация ) { Инструкции тела цикла; }

Если в теле цикла одна инструкция, то { } можно опустить. Переменная-параметр цикла (счетчик) может быть любого числового типа. Это делает цикл for C++ таким же универсальным, как и цикл типа while . В разделе модификации чаще всего используется операция постфиксного или префиксного инкремента (или декремента), но может использоваться любое выражение с присваиванием, изменяющее значение параметра цикла. Цикл работает следующим образом:

  • В начале происходит описание и инициализация переменной-счетчика
  • Далее проверка условия: если выражение имеет значение true , произойдет итерация
  • После выполнения инструкций тела цикла производится модификация величины счетчика

Примечание : в C++ является правилом делать описание переменной-счетчика в заголовке цикла. Но это не обязательно, тем более, если планируется инициализировать несколько переменных в разделе инициализации так, как это реализовано в программе 9.2. Однако, использование описания переменной-счетчика в заголовке цикла приводит к описанию локальной переменной, уничтожаемой автоматически при завершении работы цикла. Поэтому, без крайней необходимости, описание переменной-счетчика вне цикла for производить не следует.
В процессе работы цикла for не рекомендуется изменять операнды в выражениях заголовка цикла – это приведет к разного рода ошибкам! Но сами значения переменных (или констант), в том числе изменяемые значения (счетчик), использовать можно. Рассмотрим классический пример.

Программа 9.1 Дано натуральное число N. Вывести все делители этого числа.

#include << "N = "; cin >> N; for (int i = 2; i < N / 2; i++) { if (N % i == 0) cout << i << " "; } return 0; } N = 16000 2 4 5 8 10 16 20 25 32 40 50 64 80 100 125 128 160 200 250 320 400 500 640 800 1000 1600 2000 3200 4000

Использование инструкции continue в цикле for

При использовании инструкции continue в цикле for необходимо учитывать особенности работы этого цикла:

  • Инструкции, следующие после continue , будут пропущены
  • Затем происходит модификация счетчика
  • Переход к выполнению следующей итерации (иначе, проверки условия)

Покажем это на примере: int main() { for (int i = 1; i < 20; i++) { if (i % 2 == 0) continue; cout << i << " "; } 1 3 5 7 9 11 13 15 17 19

Примечание . Обратите внимание: хотя вывод чисел по условию пропущен, но инкрементация счетчика выполняется. Этот пример приведен всего-лишь для иллюстрации, программировать цикл так не следует! Эту задачу лучше решить следующим образом:

Int main() { for (int i = 1; i < 20; i += 2) cout << i << " ";

Несколько выражений в разделе инициализации и модификации

Как мы уже отметили ранее в заголовке инструкции for должно быть три раздела. Выражения, находящееся в этих разделах, можно опускать, но нельзя опускать ";" . В конце концов, можно оставить только; . Заголовок в виде:

For (;;) { ... }

является заголовком “бесконечного” цикла. (Выход из цикла должен программироваться внутри тела цикла).
C++ поддерживает несколько выражений в разделах инициализации и модификации в заголовке инструкции for . При этом условие продолжения цикла должно быть одно!
Например. Постановка задачи: Вычислить факториал числа, не превосходящий 20.
Программа 9.2

#include using namespace std; int main() { unsigned long long n; int i, k; cout << "k = "; cin >> k; // 0 <= k <= 20 for(n = 1, i = 1; i <= k; n *= i, ++i); cout << k << "! = " << n << endl; return 0; } k = 20 20! = 2432902008176640000

Примечание : обратите внимание, что поток вывода в строке 12 не относится к телу цикла! (В конце заголовка – ;). Таким образом, данный цикл в теле имеет пустую инструкцию, а все выражения вычисляются в заголовке. Программа 9.2 правильно вычисляет факториал числа от 0 до 20 .

Цикл for основанный на диапазоне (range-based for)

Для перебора элементов массива или контейнера приходится выполнять однотипные действия, при этом использовать громоздкий код. Для упрощения работы с контейнерами в C++ существует специальная форма цикла for – range-based for (цикл for основанный на диапазоне или диапазонный for).
Синтаксис :

For (объявление : имя_последовательности ) loop_statement

Использование range-based for на примере C-массива:
Программа 9.3

#include using namespace std; int main() { int x { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (auto &s: x) { cout << s << " "; } return 0; }

Чтобы элементы массива можно было изменять – переменная s должна быть ссылочной переменной (как в примере выше). Если переменная не является ссылкой, то данные будут копироваться. Для автоматического выведения типа в этом цикле используется спецификатор auto . range-based for имеет ограничение на работу с динамическими массивами: он не поддерживает изменение размера массива, так как содержит фиксированный указатель конца массива. При работе с массивами, имеющими фиксированный размер, диапазонный for является прекрасной и безопасной альтернативой обычному for .

Вложенные циклы for

Так же, как и другие инструкции циклов, for поддерживает структуру вложенных циклов. Применение вложенных циклов for для организации ввода и вывода двумерных массивов выглядит гораздо компактнее, чем при использовании цикла while .
Однако, при решении задач обхода таких массивов, необходимо избегать применение условной инструкции if . Зачастую, задачу можно реализовать более рационально, путем манипуляции индексами (переменными цикла i и j). То есть, поставить в зависимость изменение одного индекса, от значения величины другого. Рассмотрим два примера.
Программа 9.4 Дана квадратная матрица размера n, элементы которой равны 0. Заполнить элементы, лежащие ниже и на самой главной диагонали единицами.

#include using namespace std; int main() { int n; cout << "n = "; cin >> n; int mas[n][n]; // Заполняем нулями for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) mas[i][j] = 0; // Реализация for(int i = 0; i < n; i++) for(int j = 0; j <= i; j++) mas[i][j] = 1; // Вывод for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cout.width(2); cout << mas[i][j]; } cout << "\n"; } return 0; } n = 10 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

Программа 9.5 Составить программу заполнения массива числами треугольника Паскаля и вывода этого массива. Треугольник паскаля имеет вид:


В этом треугольнике на вершине и по бокам стоят единицы (в программе 9.5 треугольник “положен на бок” – стороны треугольника: первый столбец и главная диагональ). Каждое число равно сумме двух чисел, расположенных над ним. Строки треугольника симметричны относительно вертикальной оси и содержат биноминальные коэффициенты.

#include using namespace std; int main() { int n; cout << "n = "; cin >> n; int pas[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) pas[i][j] = 0; pas = 1; for (int i = 1; i < n; i++) { pas[i] = 1; for (int j = 1; j <= i; j++) { pas[i][j] = pas + pas[j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { cout.width(4); cout << pas[i][j]; } cout << "\n"; } return 0; } n = 12 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 1 11 55 165 330 462 462 330 165 55 11 1

Вопросы
  1. Может ли быть заменена в программе инструкция цикла for на инструкцию цикла while? Всегда ли это можно сделать?
  2. Когда удобнее применять для организации циклов инструкцию for? while?
  3. Возможны ли в заголовке инструкции for следующие выражения: a) for (;a > b && !(a % 2);) b) for (a > b;;) c) for (;;i = 0) d) for (;i = 0;) e) for (;;i++, --b) f) for (--i;;) g) for (b = 0; b != a;) ?
  4. Переменная i – параметр внешнего цикла, а j – вложенного. Доступна ли будет переменная j во внешнем цикле? i во вложенном цикле?
Учебник
Домашняя работа
  1. Зад. 29. Напишите программу, в которой вводятся натуральные числа a и b , а на дисплей выводятся все простые числа в диапазоне от a до b (идея алгоритма Программа 8.5)
  2. Зад. 30. Совершенным называется число, равное сумме всех своих делителей, меньших его самого (например, число 6 = 1 + 2 + 3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным.
  3. Напишите программу, которая выводит на экран квадратную числовую таблицу размера n x n , имеющую следующий вид при n = 10: 1 * * * * * * * * * * 2 * * * * * * * * * * 3 * * * * * * * * * * 4 * * * * * * * * * * 5 * * * * * * * * * * 6 * * * * * * * * * * 7 * * * * * * * * * * 8 * * * * * * * * * * 9 * * * * * * * * * * 10
Литература
  1. Лафоре Р. Объектно-ориентированное программирование в C++ (4-е изд.). Питер: 2004
  2. Прата, Стивен. Язык программирования C++. Лекции и упражнения, 6-е изд.: Пер. с англ. - М.: ООО «И.Д. Вильяме», 2012
  3. Липпман Б. Стенли, Жози Лажойе, Барбара Э. Му. Язык программирования С++. Базовый курс. Изд. 5-е. М: ООО “И. Д. Вильямс”, 2014
  4. Эллайн А. C++. От ламера до программера. СПб.: Питер, 2015
  5. Шилдт Г. С++: Базовый курс, 3-изд. М.: Вильямс, 2010



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

for <параметр_цикла>:=<начальное_знач> to <конечное_знач> do <оператор>;

for <параметр_цикла>:=<конечное_знач> downto <начальное_зна.> do <оператор>;

Оператор, представляющий собой тело цикла, может быть простым или составным.

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

Параметр описывается совместно с другими переменными.

Шаг цикла for всегда постоянный и равен "1" или "-1".

Вывести на экран первые десять положительных целых чисел

var i: integer; //вводится счетчик

fori:=1to10do//пока значение счетчика от 1 до 10 выполнять следующее

writeln(i); //вывод значения счетчика

vari,sum:integer;

sum:=0; //обнуление значения переменной

fori:=10to99do//перебор двузначных положительных чисел

if i mod 3=0 then //кратность 3

sum:=sum+i; //сумма предыдущего значения переменной и числа, соответствующего условию

Вывести на экран произведение десяти первых четных положительных чисел

vari,pr:integer;

pr:=1; //при нахождении произведения начальное значение переменной не 0, а 1

for i:=1 to 10 do

if i mod 2=0 then //определение четности

Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (в том числе A и B), a также количество N этих чисел .

var i,pr: integer;

k:=0; //обнуляем значение переменной, означающей количество

fori:=AtoBdo//перебор чисел из заданного диапазона

writeln(i); //вывод в чисел порядке возрастания

k:=k+1; //подсчет количества чисел

writeln(k); //вывод количества происходит вне цикла т.к. выводится один раз

Ввести N различных чисел. Найти среднее арифметическое всех чисел.

Var n,i,a:integer;

For i:=1 to N do

Writeln("среднее арифметическое= ",s/n:4:2);

Оператор цикла с предусловием while ... Do (пока…)

Оператор while ... do предназначен для реализации циклов с предусловием.

Условие выполнения тела цикла while проверяется до начала каждого шага. Поэтому если условие сразу не выполняется, то тело цикла игнорируется, и управление передается оператору, стоящему сразу за телом цикла.

Обращение к оператору while ... do переводится как «пока... делать» и выглядит так:

while <условие> do <оператор>

В цикле while подразумевается такой алгоритм: пока условие истинно, выполняются операторы тела цикла.

Само условие может быть логической константой, переменной или логическим выражением.

При написании циклов с предусловием следует помнить следующее.

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

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

Если условие цикла ложно цикл не выполнится ни разу!