При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.
В языке программирования Паскаль существует три вида циклических конструкций.
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).
В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.
Цикл for существует в двух формах:
for счетчик:=значение to конечное_значение do тело_цикла;
for счетчик:=значение downto конечное_значение do тело_цикла;
Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.
Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.
var i, n: integer; begin write ('Количество знаков: '); readln (n); for i := 1 to n do write ('(*) '); readln end.
Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.
Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.
var i, n: integer; begin write ('Количество знаков: '); readln (n); i := 1; while i = n do begin write ('(*) '); i := i + 1 end; readln end.
Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.
В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.
var i, n: integer; begin write ('Количество знаков: '); readln (n); i := 1; repeat write ('(*) '); i := i + 1 until i > n; readln end.
Комментарии
Помогите решить
Помогите решить пожалуйста
Заданы 3 числа A, B, C, которые обозначают число, месяц, год.
Найти порядковый номер даты, начиная отсчет с начала года
Номер дня с начала года
Номер дня с начала года
написать программу
Помогите пожалуйста написать программу на паскале:
http://pixs.ru/showimage/Xq1ZuMGd8j_6400140_15048604.jpg
var s: real; x:
задача на циклы
y=1+1/x +1/x^2+1/x^3+....
пр х изменяющемся от -2 до 4 с шагом 0,2
Спасибо
помогите
петя круглый отличник учится в школе только на отлично. Поэтому он считает числа, содержащие только цифры 0 и 5 счастливыми. Последовательность счастливых Петиных чисел в порядке возрастания: 0 5 50 55 500 505 и так далее. Найти К-ое по порядку в этой последовательности счастливое число.
input.txt 8
output.txt 555
ПОМОГИТЕ!!!!
Найти число под заданным
Найти число под заданным номером в ряду чисел, состоящих из цифр 0 и 5
Условие задачи - как для
Условие задачи - как для нахождения таблицы значений функции
Но дана не функция, а сумма элементов ряда. Либо должно быть просто y=1+1/x +1/x^2+1/x^3 без троеточия, либо оговариваться сколько в этом ряду элементов.
спасибо
спасибо
Помогите пожалуйста решить.
1. Ввести производительности работы трёх труб, которые наполняют бассейн, и время их работы. Сколько воды набрано в бассейне?
2. Вычислить медиану ma и биссектрису Wa/
3. Циклы. Вычислить произведение всех значений функции у, для которых справедливо неравенство 1 4. Массивы. Есть ли в массиве два элемента среди отрицательных с максимальным значением?
Нужна помощь.....
Задача- для фигур: равностороннего треугольника, квадрата, правильных 5- угольника, 6- угольника,..,N-угольника дана длина стороны А(одна и та же). вычислить площади многоугольников.
Я текст программы написал, но не знаю как сделать чтоб программа считала площадь например для 10 многоугольников ( чтоб количество изменять можно было) и я подозреваю что написал чушь полную....
вот текст программы:
У меня получается бесконечный цикл.
var a,S: real; n, i:
PI не обязательно объявлять. Есть встроенная константа.
Спасибо вам большое)
Спасибо вам большое)
2 задачи
Помогите пожалуйста решить 2 задачи:
1. Составить программу, которая в двумерном массиве B, в таком, что состоит из M рядов и N солбцов, подсчитывает сумму столбцов и !!!столбец!!!, с наименьшей суммой элементов обнуляет!
2. Дан одномерный массив A, который состоит из N целых чисел. Составить программу, которая подсчитывает, наибольшее кол-во чисел, тех, которые идут в нём подряд.
1-я задача:const N = 5; M =
1-я задача:
2-я задача:
Сформулировать квадратную матрицу порядка n по данному образцу:
Добрый день! Дали такое задание ( оно после черты), но я впервые вижу такое и даже не понимаю что в нём нужно сделать и какой в нём смысл( помогите пожалуйста составить к нему код и по возможности объяснить что нужно сделать в нём)
___________________________________________________________
Сформулировать квадратную матрицу порядка n по данному образцу:
Я тоже не могу сделать вывод
Я тоже не могу сделать вывод по данному образцу. И не два ли здесь образца? ( над точками и под ними)
В образце над точками можно предположить, что квадратная матрица 3х3, все элементы нулевые. Потом ее меняют так, что в побочной диагонали сверху вниз пишутся номера строк. В таком случае замена нулей в побочной диагонали такая:
В образце под точками предположительно наоборот: сначала дана матрица, где побочная диагональ заполнена числами от 1 до n. Надо обнулить. Тогда:
Однако при заполнении самой матрицы:
Помогите пожалуйста написать программу!!!
Мне необходимо составить программу нахождения номера минимального из положительных чисел в последовательности произвольных чисел, вводимых с клавиатуры и при этом остановить обработку при вводе заказанного кол-ва чисел.
Очень нужна эта программа. Заранее спасибо.
программа с циклами
мне необходимо сделать эту программу без использования массивов. а лишь с использованием циклов. если вам не сложно помогите мне пожалуйста.
var i, k: byte;
const N = 15; var arr:
Задачи по массивам!
Извините, может не там пишу)
Помогите пожалуйста решить 2 задачи:
1) Вычислить кол-во инверсий (пара элементов, где левее - больше);
2) Найти самую длинную серию нулевых элементов!
Заранее спасибо!)
Задания непонятно
Задания непонятно сформулированы.
Массивы
Вот такое ДЗ дают в Политехе)
Попробую сформулировать как сам понимаю)
1)Задать одномерный массив от 1 до 20, где данные вводятся любым способом и подсчитать, сколько раз в нём встречаются пара элементов (1-й элемент сравнивают со 2, потом с 3 и так до конца; потом 2 элемент с 1, затем с 3 и так до конца и т.д), среди которых, тот что левее больше, например: пара рядом элементов: 20 и 21, если 20 (стоит слева) больше 21 (правого) то счетчик изменяется на 1 (в конце он выводится и это ответ), а если 20 и 15 то пропустить (левый меньше правого)...Фух... трудная вещь(
...
2) Найти самую длинную серию нулевых элементов! (Задать одномерный массив от 1 до 20, где данные вводятся любым способом и вывести на экран самую длинную серию 0 элементов, например: дан массив
1, 2,0,0,4,0,0,0,5,0,0,0,0 в нём самая длинная серия это 4 нуля (!!!нули должны идти друг за другом!!!) и в конце вывести ответ самую длинную серию нулей: 0,0,0,0 или просто: 4 нуля.
Как бы теперь всё это реализовать(
Первая задача решена не так
Первая задача решена не так как вы описали, а проще:
Пример вывода:
Здесь 21 > 7? да. увеличиваем счетчик
7 > 22? нет. пропускаем
22 > 16? да. увеличиваем счетчик
и т. д.
Вторая задача:
Если же надо вывести именно количество нулей, то делаете цикл от 1 до max, в теле которого выводится 1 ноль. Однако это не лучшее решение с точки зрения универсальности кода. Лучше запоминать индексы откуда последовательность начинается и где заканчивается. Это сложнее. Пример здесь: https://pas1.ru/id-range
Спасибо!
Спасибо огромное!
Помогите, пожалуйста :((
Помогите, пожалуйста. Требуется составить программу, вычисляющую произведение 10 целых двузначных чисел , введенных с клавиатуры. Здесь нужно как-то использовать счетчик, совсем ничего не понимаю :С
var i: byte; n:
Если перемножить 10 двузначных чисел, то получится слишком большое целое, которое не влезет ни в один целочисленный тип Паскаля. Либо задание составлено неграмотно, либо имеется в виду что-то другое.
помогите надо вывести на
помогите надо вывести на экран 56 символовc"&"
var i: integer; begin for
помогите написать программу
помогите написать программу y=5+x/2x + 10/x^2
var x, y: real; begin
Прошу помогите плииз
1) каждое задание переписывается, под ним пишется «Блок-схема» и «Программа:» и следуют блок-схема и текст программы, решающей задание, ответ;
2) каждая программа должна быть набрана в среде программирования QBasic
1)Дано число. Если оно нечетное, не кратное 7 и кратное 15, то увеличить его в 16 раз.
Как это сделать в visual basic 2010
Это на Basic-256. В остальном
Это на Basic-256. В остальном помочь не можем.
Для проверки работы программы можно ввести число 45.
напишите, пожалуйста,
напишите, пожалуйста, программу, которая находит сумму нечетных цифр в числе.
var n: longint; sum:
циклический алгоритм
помогите пожалуйста, не понимаю совсем. составить программу:
1) а(а-1)(а-2)(а-3)....(а-п)
2) 1/а + 1/(а+1)+ ....+1/(а+п)
var a,n,i: integer;
напечатайте таблице
напечатайте таблице соответствия между длиной в метрах и сантиметрах.
а*5=в*6
допоможіть розвязати
я точной формулировки не
я точной формулировки не помню. Вообщем нужно вести число а в цикл от 1 до 7 и вывести его квадрат в массиве. Как-то так)
Помогите пожалуйста решить задачу.
Подсчитать величину вклада в банке, если заданы
первоначальная сумма, процент по вкладу и количество лет, в
течение которых вклад хранится в банке. Определить, через
сколько лет вклад удвоится.
вклад
var
vklad, deposit, perc: real;
k, years: integer;
begin
writeln('введите сумму нчального вклада');readln(vklad);
writeln('введите процент годовых');readln(perc);
writeln('введите количество лет');readln(years);
writeln((vklad + years * vklad / 100 * perc):7:2, ' за ', years,' лет');
deposit := vklad;
while deposit begin
deposit := deposit + vklad / 100 * (perc / 12);
k := k + 1;
end;
writeln(trunc(k/12),' лет ',k mod 12, ' месяцев и составит ',deposit:7:2);
end.
Цикл со счетчиком
Мне нужна помощь. Программа нахождения скорости, времени и расстояния. Как использовать цикл со счетчиком чтобы программа завершалась не только при одном из выбранных действий но и после сразу трех т.е при нахождении скорости времени расстояния
Очень просто. Возми все в в
Очень просто.
Возми все в в цикл repeat until
Условие выхода нажатие какото клавиши
Решение
У основания столбика высотой
У основания столбика высотой L см сидит улитка.
Днем (с 7:00 до 20:00) она проползает вверх К см. Ночью - улитка спит, поэтому сползает вниз на Н см.
Определите и выведите на экран на какие сутки улитка доберется до вершины столбика, при условии, что полностью восстановить силы за ночь ей не удается, и каждые новые сутки ее продвижение вверх уменьшается на М см. А может это ей и вовсе не удасться?
Значения L, К, Н и М - целые числа, которые вводятся с клавиатуры и лежат в пределах от 0 до 1000 включительно.
Решение
Построить таблицу
Построить таблицу соответствий между мерами, используя цикл с постусловием (repeat....until). Начальное и конечное значения меры, шаг изменение этого значения задать самостоятельно в режиме диалога. Оформить таблицу применяя форматы вывода. Количество строк в таблице (10-15).
1 чейн строительный = 30.48м. =100 футов
чашке находится n микробы их
чашке находится n микробы их количество с каждой минутой удваивается составить программу нахождения количества микробов за время t