Меню

Составить программу для счетчика

Составить программу для счетчика

Цикл — это набор команд, которые многократно выполняются до тех пор, пока выполняется (или не выполняется) некоторое условие.

В паскале существуют 3 способа организации цикла (типа):

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

2) Цикл с постусловием

3) Цикл с предусловием

Рассмотрим первый тип — цикл со счетчиком.

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

где i — переменная-счетчик; a — начальное значение переменной i; b — конечное значение переменной i.
Набор команд, которые выполняются в цикле называют телом цикла.

Переменная i изменяется от 1 до 4 (с шагом 1). Пока i будет изменятся — будет выполняться команда writeln(‘Привет’).

На экране мы увидим:

Привет
Привет
Привет
Привет

Количество повторений в цикле со счетчиком можно по формуле (b-a)+1 . (В нашем случае: (4-1)+1 = 4. Все верно!)

Если цикл будет выглядеть так:

Мы увидим тот же результат, что и в предыдущем примере. Убедимся, используя формулу: (105-102)+1 = 4. Цикл выполнится 4 раза.

Вопрос! Что мы увидим после выполнения следующего кода программы?

Привет
Пока
Привет
Пока

НЕТ! На экране мы увидим следующее:

Привет
Привет
Привет
Привет
Пока

В цикле будет выполнятся только одно действие writeln(‘Привет’). только оно относится к телу цикла. Команда writeln(‘Пока’) — вне тела цикла.

Как сделать так, чтобы обе команды входили в тело цикла?

Необходимо использовать ОПЕРАТОРНЫЕ СКОБКИ!

Теперь тело цикла состоит из двух команд.

Рассмотрим несколько классических примеров использования цикла со счетчиком.

Задача 1.

Посчитать сумму чисел от 1 до 100. (1+2+3+…+100) (не используя формулу суммы членов арифметической прогрессии)

Задача, как вы уже поняли, решается с помощью цикла со счетчиком. Мы можем изменять переменную-счетчик в цикле от 1 до 100. Это даст нам ряд чисел, которые нужно сложить:

Объявим дополнительно переменную S. В эту переменную будем записывать сумму на каждом шаге цикла. До выполнения цикла S=0.

i S=0
1 0+1=1
2 1+2=3
3 3+3=6
4 6+4=10
5 10+5=15
6 15+6=21

На каждом шаге цикла переменная S будет изменяться с прибавлением текущего значения переменной i

(Новое значение S:= текущее значение S + текущее значение i)

Программа будет иметь вид:

Задача 2.

Посчитать сумму пяти введенных с клавиатуры чисел

Результат представить в виде:

Введите 1-е число
5
Введите 2-е число
6
Введите 3-е число
7
Введите 4-е число
10
Введите 5-е число
10
Сумма равна 38

Начнем наши рассуждения.

Нам необходимо ввести 5 чисел, следовательно можем использовать цикл со счетчиком

Что же должно выполняться в цикле?

1) Вывод на экран диалогового сообщения для пользователя («Введите 1-е число и т.д.)
2) Ввод числа а
3) Сложение числа а к некоторой переменной S (аналогично Задаче 1)

Задача 3.

Найти сумму нечетных чисел от 1 до 1000.

Задача аналогична задаче 1. Отличие в том, что на числа накладывается условие: числа должны быть нечетными.

Определить четность можно, используя оператор MOD — остаток от деления.

Читайте также:  Счетчик света день ночь как работает

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

если бы условие было сложным, например: найти сумму нечетных чисел и чисел, которые делятся на 10 — мы бы использовали запись:

Т.е. помимо нечетных чисел в сумме будут участвовать числа, которые делятся на 10 (использовали OR для объединения двух множеств).

Источник

Pascal: Занятие №3. Часть 3: Паскаль цикл for

Цикл со счетчиком в Паскаль (цикл for)

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

Блок-схема, соответствующая циклу For:

Ну или если на простом примере:

Паскаль цикл For: синтаксис:

Прямое направление цикла (от меньшего значения к большему):

Обратное направление (от большего к меньшему):

Решение на Паскале:

Оператор в теле конструкции может быть одиночным или составным оператором.

Счетчик цикла или параметр цикла — это обычная переменная, которая может быть только порядкового (целочисленного, символьного, логического) или перечислимого типа.

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

Рассмотрим на решенном примере, как используется в Паскаль цикл for:

var i,n:integer; begin write (‘количество раз’); readln(n); for i:=1 to n do write(0); end.

Более детально цикл со счетчиком в Паскале рассмотрен в видеоуроке:

Решение в виде блок-схемы:

Решение на Паскале:

Вариант 1 Вариант 2

Решение:

Pascal: выход из цикла

Break и Continue

Для выхода из цикла предусмотрена процедура break в Паскале. Break досрочно прекращает выполнение циклов while , repeat и for .

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

Рассмотрим использование процедур выхода из цикла Continue и Break в Паскале (будем использовать цикл while ):

var a:integer; begin a:=1; while a a=64 происходит выход из текущей итерации ( continue ) и число не выводится на экран, а при a=256 выполнение цикла прерывается окончательно ( break ), так и не распечатав число 256.

Табулирование функции на отрезке с заданным шагом

* Следует учесть, что эта тема не обязательна для школьного курса информатики, в основном предполагается ознакомление студентами.

Алгоритм:
Для решения задачи в области определения функции вводится сетка – совокупность точек:

Тогда задача сводится к вычислению функции f в точках xi, то есть нужно вычислить:

var x, a, b, f, h: real; begin writeln(‘отрезок от . и до . ‘); readln(a, b); writeln(‘шаг’); readln(h); x := a; while x

var x, a, y, h: real; i:integer; begin writeln(‘ведите x’); readln(x); h:=0.22; a := 0.14*x; for i:=1 to 7 do begin y := (0.15*x + a)/(sqr(a)+sqr(x)); writeln(‘a =’, a, ‘ y = ‘, y); a := a + h; end end.

var xn, xk, yn, yk, f, hx, hy,x,y: real; begin writeln(‘отрезок для x от . и до . ‘); readln(xn, xk); writeln(‘отрезок для y от . и до . ‘); readln(yn, yk); writeln(‘шаг для x’); readln(hx); writeln(‘шаг для y’); readln(hy); x := xn; y := yn; while x Exit и Halt

Процедура Pascal Exit служит для завершения работы того программного блока, в котором она используется (условный оператор, цикл, процедура…). Если Exit вызывается внутри процедуры или функции, то завершается работа данной процедуры/функции. Если процедура Exit находится в основном блоке программы, то это приводит к ее завершению.

Процедура halt в pascal завершает работу программы.

Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

Источник



Цикл со счётчиком for

Пожалуйста, приостановите работу AdBlock на этом сайте.

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

Пример: Равномерность случайных чисел

Числа, генерируемые функцией rand() , имеют равномерное распределение. Это значит, что если запускать функцию rand очень много раз и каждый раз записывать, какое число выпало, то различные числа выпадут примерно одинаковое число раз.
Например, если генерировать только числа 0 и 1, то через 100 запусков примерно 50 раз выпадет ноль и 50 раз единичка. Обратите внимание, что я говорю примерно. Может быть, например, 49 и 51, или 53 и 47.
Если рассматривать отношение этих чисел к общему количеству генераций, получим 49/100 и 51/100 или 53/100 и 47/100. Но чем больше экспериментов мы проведём, тем отношение количества единичек к количеству испытаний будет ближе к 1/2.
Проведите самостоятельно эксперимент с 10, 50 и 100 запусками. Это муторно и долго, если делать руками, но что поделать? В будущем мы напишем программу, чтобы проверить свойство равномерности распределения этих псевдослучайных чисел.

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

Если вам непонятно, как работает данная программа, то проработайте уроки «Приручаем случайность» и «Оператор выбора».
Программа получилась объемной, но довольно простой. При этом легко видеть, что одни и те же операции (генерация случайного числа и оператор выбора) повторяются буквально без изменений. Результат работы этой программы на рисунке ниже.

Рис.1 Пример работы программы Листинг 1

Как видите, пока что-то не очень похоже на то, что все цифры выпадают одинаковое количество раз. Запустите программу у себя, возможно, у вас получится более хороший результат. Ну, а мы продолжим. Давайте увеличим количество опытов до 100. Можно было бы, конечно, ещё 90 раз скопировать эту конструкцию или запустить программу ещё 9 раз и вручную складывать результаты, но это не дело. Лучше воспользуемся циклической конструкцией for .

Общий шаблон цикла for

Цикл for состоит из двух частей: заголовок цикла (первая строка) и тело цикла (вторая строка).

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

В нашем случае тело цикла for будет выглядеть так:

Так как в теле цикла две команды (присваивание, оператор выбора), то пришлось использовать составной оператор.

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

Первое выражение – инициализация счетчика.

В этой части нам нужно завести переменную-счетчик и присвоить ей какое-нибудь начальное значение. Например:

Второе выражение – условие.

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

И последняя третья часть – изменение счетчика.

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

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

Гораздо понятнее и нагляднее, не так ли? Вот-вот. Опишем подробно алгоритм работы цикла for .

  1. Программа встречает ключевое слово for , а значит дальше идёт циклическая конструкция.
  2. Сначала создаётся переменная счетчик (выражение 1).
  3. Проверяется условие выполнение цикла (выражение 2).
  4. Если условие ЛОЖЬ , то программа выходит из цикла for и продолжает свое выполнение.
  5. Если условие ИСТИНА , то выполняется тело цикла.
  6. Когда тело цикла выполнится, программа возвращается к заголовку и выполняет инструкции из третьей части заголовка. Изменяется значение переменной-счетчика (выражение 3).
  7. Возвращаемся к пункту три.

А теперь то же самое для нашей программы. Встречаем цикл for .

  • Инициализируем переменную счётчик i = 0 ;
  • Проверяем условие i . Т.к. i = 0 , то условие ИСТИНА ;
  • Выполняем тело цикла. Генерируем число от 0 до 2. В операторе switch определяем, какое число было сгенерировано, и увеличиваем соответствующий счётчик;
  • Т.к. тело цикла закончено, то выполняем Выражение 3. Теперь i = 1 .
  • Возвращаемся к условию;
  • Проверяем условие i . Т.к. i = 1 , то условие ИСТИНА
  • Выполняем тело цикла. Генерируем число от 0 до 2. В операторе switch определяем, какое число было сгенерировано, и увеличиваем соответствующий счётчик;
  • Изменяем счётчик. Теперь i = 2 . Возвращаемся к условию.

И так далее, пока i не станет равным 100 . В этом случае при проверке условия получим ЛОЖЬ . Выполнение цикла прекратится. Программа продолжит выполнять инструкции, расположенные за циклом.

Давайте посмотрим ещё на один пример.

Напишем программу, которая выводит на экран сумму натуральных чисел из промежутка [A;B] . Числа A и B (B>A) вводятся пользователем.

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

Практика

Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим

Источник

Выключатель провод счетчик © 2021
Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению.

Вариант 1
неэффективное решение
Вариант 2
эффективное решение
Вариант 3
эффективное решение