Как составить программу с оператором цикла

Вы конечно заметили, что наш «квадрат» не совсем квадратный — он больше прямоугольник из-за того, что по вертикали строки больше. Но будем называть его квадратом, т.к. количество символов по вертикали и горизонтали одинаковое.
Как я только что говорил, наша программа в обоих вариантах не самая удачная. Первый вариант длинный и обладает следующим недостатком — если мы захотим сделать квадрат например 7×7, то нам придется добавлять много строк.
Второй вариант конечно короче. Но у него есть тот же недостаток — для рисования квадрата другого размера нам придется все равно менять программу. Да и код выглядит пока страшненько.
Думаю, достаточно очевидно, что требуется конструкция цикла. Для большинства языков программирования таких конструкций бывает несколько. Давайте их и рассмотрим.

Операторы циклов

В Java существует три способа организации цикла.

1. Цикл for

Цикл for использует следующую форму записи

Давайте сразу рассмотрим в качестве примера использования цикла for нашу задачу — нарисовать квадрат.

Python с нуля. Урок 4 | Циклы (for, while)

public class LoopForOne
public static void main ( String [ ] arg ) <
for ( int i = 0 ; i < 10 ; i ++ )
System . out . println ( «**********» ) ;

Внутри скобок у слова for мы видим три разделенных точкой с запятой части.
int i=0 — этот оператор не должен нас удивить — мы объявили переменную «i» целого типа и присвоили ей значение 0. Этот оператор будет выполняться ТОЛЬКО ОДИН раз в начале цикла.
i i++ — этот оператор выполняется ПОСЛЕ КАЖДОГО цикла.

Все достаточно очевидно — мы выводим квадрат со стороной в 10 символов. Переменная «i» в данном случае исполняет роль счетчика — при каждом проходе цикла она увеличивается на 1, сравнивается со значением 10 и если меньше — выполняется операция печати строки из 10 символов.
Как видим, наша программа все-таки не так хороша. При желании вывести квадрат со стороной в 20 символов, нам придется менять значение 10 на 20 и еще изменить строку в печатью — заменить 10 символов «*» на 20.
Давайте сначала попробуем написать программу, которая выводит в ряд столько «звездочек», сколько мы захотим. Это несложно. Вот так:

public class LoopForTwo
public static void main ( String [ ] arg ) <
int count = 10 ;
for ( int i = 0 ; i < count ; i ++ )
System . out . print ( «*» ) ;
System . out . println ( ) ;

Обратите внимание — мы ввели новую переменную «count» и используем ее в цикле. Сейчас этот шаг может показаться не совсем понятным и нужным, но на самом деле чуть позже мы увидим, почему это удобно. Давайте разберем наш код по шагам. Итак:

Этот оператор вводит переменную «count» и присваивает ей значение 10. Именно столько символов мы хотим напечатать. Если потребуется изменить количество символов, то будет достаточно просто поменять 10 на что-то другое.

for ( int i = 0 ; i < count ; i ++ )
System . out . print ( «*» ) ;

Этот цикл напечатает 10 символов «*» в одну строку. Есть отличие между командами System.out.print и System.out.println. Первая выводит символы и не переходит на следующую строку, вторая — напечатает символы и курсор перейдет на следующую строку.
В нашем случае мы напечатаем 10 символов и курсор останется на этой же строке. Если мы захотим напечатать что-то еще, то печать начнется на той же строке. И наконец:

Эта команда просто переводит курсор на следующую строку

Если собрать наши программы LoopForOne и LoopForTwo вместе, то мы увидим, что в них есть все, что нам нужно — первая умеет печатать нужной количество строк, вторая — нужную нам строку.
Давайте попробуем провернуть это действие. Но сначала нам надо познакомиться еще с одним видом оператора — составной оператор. В другой литературе он может называться как-то иначе — я не могу точно сказать, как он должен называться по науке.
Его идея очень проста — заключив несколько операций в фигурные скобки, их можно рассматривать как один. Давайте опять посмотрим пример.

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

Источник: java-course.ru

Правила применения оператора цикла For

1. Тело цикла – всегда один оператор. Если нужно, чтобы тело цикла состояло из нескольких операторов, то их объединяют в один составной оператор с помощью операторных скобок begin, end.

Операторы, взятые в операторные скобки begin – end, считаются одним составным оператором.

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

3. В теле цикла параметр цикла не должен изменяться.

4. Нельзя с помощью оператора перехода goto войти в тело цикла, минуя заголовок.

5. Выйти из тела цикла в программу можно по if..goto, не дожидаясь полного перебора параметров цикла.

Оператор Repeat

Repeat – оператор цикла с постусловием.

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

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

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

1. Тело оператора repeat выполняется по меньшей мере один раз. Оператор repeat еще называют циклом с постусловием.

2. Перед until ‘;’ не ставится.

Пример: найти сумму четных чисел в интервале от 0 до 100.

Оператор While

While – оператор цикла с предусловием.

Общий вид оператора: While do тело цикла.

Работа оператора. Вначале вычисляется булевское выражение, и если оно истинно, то выполняется тело цикла; если оно ложно, то происходит выход из цикла.

Тело цикла – один оператор, как правило, составной. Мы должны позаботиться о том, чтобы булевское выражение в теле цикла на каком-то этапе стало ложным, иначе цикл никогда не закончится. Цикл можно сделать умышленно бесконечным, написав: while true do оператор;

Пример: найти сумму четных чисел в интервале от 0 до 100.

Begin i:=i+2; s:=s+i; end;

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

for j:=20 to 23 do

телом цикла является

begin for j:=20 to 23 do

write(‘ i= ‘, i, ‘, j = ‘, j);

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

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

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

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

Читайте также:
Программы для обновления иконок

Линейные массивы. Описание типа

Дли описания массива предназначено словосочетание

Array [нач.индекс.. конечный индекс ] of < Типкомпонент>

Формат:

Массив может быть описан и без представления типа в разделе описания типов данных:

Туре Znak = array[1.. 255] of char;

Var alf: array[1.. 255] of char;

Многомерные массивы. Двухмерные массивы – матрицы.

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

Пример.

Vector = array[l.. 4] of integer;

Massiv = array[1..4] of Vector;

Trmer: array[1..6] of Massiv;

Ту же структуру можно получить, используя другую форму записи:

Matr: array [1..4,1..4] of integer; Trmer: array [1..6, 1..4, 1..4].

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

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

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

MasY: array[1.. G1, 1.. G2] of real;

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

А: array[l..5,1..5] of integer;

то в памяти элементы массива будут размещены по возрастанию адресов:

С массивами в целом можно выполнять только присваивание. Работают операции отношения =, <>. При этом массивы должны быть одного типа, например:

Все остальные действия выполняются с отдельными элементами массива. Для обращения к элементу массива после имени массива указывается номер элемента в квадратных скобках:

С элементом массива можно делать все, что допустимо для переменных того же типа.

Для заполнения массива случайными числами можно использовать функцию Random.

Random – генерирует значение случайного числа из диапазона 0..0.99. Тип результата – Real.

Writeln (Random:8:4) _ _ 0.7853

Sl:= Random; Writeln(Sl:6:3) _0.047

Random(N) – генерирует значение случайного числа из диапазона 0.. N-1. Тип результата – Integer.

Writeln (Random(10):3 _ _ 5;

Sl:= Random(10); Writeln(Sl:3) _ _8

Функцию Random(N) можно использовать для получения случайных чисел из нескольких заданных диапазонов. Например, пусть требуется получить и вывести на экран 11 случайных чисел, причем первое число должно принадлежать диапазону 0..10, второе – 11..20 и т.д.:

For i:=0 to 10 do write(i*10+Random(10):4)

Чтобы случайные числа были более случайными, необходимо периодически менять базу генерации. Для этого используется процедура Randomize.

Пример

Упорядочивание по возрастанию элементов массива из 20 целых величин.

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

var a: array [1.. n] of integer;

i, j, nmin, buf: integer;

writeln(‘Введите ‘, n, ‘ элементов массива’);

for i:= 1 to n do

for i:= 1 to n — 1 do begin

for j:= i + 1 to n do

for i:= 1 to n do write(a[i]:5)

ТЕМА 10. расчет отметок проектной линии на вертикальной выпуклой или вогнутой кривой

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

Составить программу (с использованием массивов) по расчету отметок проектной линии на вертикальной выпуклой или вогнутой кривой и вывести результаты в табличной форме.

Читайте также:
Программа для проверки номера телефона как записан в телефоне у других людей

Дано: пикетное положение (РКВ и PS) и отметка вершины кривой (НВ), вид кривой «выпуклая» или «вогнутая», шаг разбивки (S) и число рассматриваемых точек (N) вправо или влево от вершины, радиус кривой (R). Требуется вычислить пикетное положение этих точек и их отметки, округлив их до 0,01 (рис.9.1).

ВЫПУКЛАЯ КРИВАЯ

Формулы для расчета

РКB, PS – пикет и плюс вершины кривой;

Y [i] – превышение точки; R – радиус кривой;

Н [i] – отметка i-ой точки; НВ – отметка вершины кривой;

6) РК1 [I]:=Trunc(PK[i]/100);

10.1. Индивидуальные задания

Варианты заданий (Таблица «Исходные данные»)

№ ва-риан-та Местоположение вершины Радиус R Вид кривой Направ-ление расчета Отметка верши-ны Коли-чество точек Шаг разбив-ки, м
ПК +
12.45 выпукл. влево 96.33
98.75 вогнут. вправо 103.58
67.34 выпукл. вправо 125.56
59.21 вогнут. влево 89.46
98.62 выпукл. влево 234.46
78.53 вогнут. вправо 111.49
87.44 выпукл. влево 134.12
66.55 вогнут. вправо 156.09
23.57 выпукл. влево 135.67
69.33 вогнут. вправо 78.56
03.40 выпукл. влево 99.01
69.56 вогнут. вправо 198.87

Выводная таблица выглядит следующим образом.

Таблица расчета отметок проектной линии на вертикальной кривой РК1 (ПК), PS1(+), Н

Номер п/п Пикетное положение Отметка точки H(i)
ПК +
N

ТЕМА 11. Процедуры и функции, определенные пользователем. Параметры процедур и функций

Цель лабораторной работы: познакомиться с понятиями «процедура» и «функция» в языке программирования Pascal, рассмотреть их сходства и различия, закрепить практические навыки работы с системой PascalABC на примере разработки структурированных программ, реализации алгоритмов при помощи процедур и функций, правильно применять параметы-значения и параметры-переменные при написании процедур и функций.

Источник: infopedia.su

#7 – Циклы и операторы в них (For, While, Do while)

#7 – Циклы и операторы в них (For, While, Do while)

Циклы позволяют выполнить некий код несколько раз подряд. В ходе урока мы научимся использовать циклы в языке Java. Мы изучим работу с циклами: for, while и do while. Дополнительно мы изучим использование операторов внутри циклов.

Видеоурок

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

Цикл For

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

for (int i = 0; i < 10; i++) System.out.println(i);

В объявлении цикла записывается следующее: переменная цикла, её начальное значение и диапазон. В примере выше будут выведены числа от 0 до 10.

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

Цикл While

Суть цикла while не особо отличается от цикла for . Единственное отличие заключается в способе записи цикла. В while необходимо прописать лишь условие, а все остальные параметры записываются вне цикла:

int i = 1; // Создание переменной while (i

Цикл Do While

Цикл схож с циклом while по форме написания, но при этом работает немного по-другому. Цикл do..while будет выполнен один раз сто процентов, а дальше проверит условие и если оно верно, то цикл будет выполняться дальше:

int x = 13; do < x—; System.out.println(x); >while (x > 10);

Как видно из примера, цикл изначально неверный, но это не мешает ему сработать один раз.

Операторы для работы в циклах

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

  • Оператор break — служит для выхода из цикла полностью;
  • Оператор return — выполняет ту же функцию, что и оператор break, но для циклов лучше использовать break;
  • Оператор continue — пропускает лишь одну итерацию и не выходит из цикла.

Весь код будет доступен после подписки на проект!

Задание к уроку

Квадраты чисел

Составьте программу, выводящую на экран квадраты чисел от 10 до 20 включительно

Источник: itproger.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru