Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Свидетельство о публикации

Автоматическая выдача свидетельства о публикации в официальном СМИ сразу после добавления материала на сайт - Бесплатно

Добавить свой материал

За каждый опубликованный материал Вы получите бесплатное свидетельство о публикации от проекта «Инфоурок»

(Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01.2015)

Инфоурок / Информатика / Конспекты / Циклы в паскаль: repeat until for
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 28 июня.

Подать заявку на курс
  • Информатика

Циклы в паскаль: repeat until for

библиотека
материалов

Циклы языка программирования Pascal

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

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

Цикл for

Часто цикл 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

Цикл 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.

Цикл repeat

Цикл 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.


В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

Задачи к данной теме

Возведение числа в степень

Вывод на экран таблицы ASCII

Вычисление суммы ряда чисел

Заполнение массива и вычисление суммы элементов

Заполнение массива и его вывод на экран

Перевод римских чисел в арабские. Пример автоматного распознавателя

Программа "Угадай число"

Таблица умножения на Паскале

Фильтр строки

Функции вычисления площади геометрических фигур

Функция, вычисляющая наибольший общий делитель

Вложенные конструкции if-elseВверхОператоры goto, break, continue и прекращения программы ›

 

Комментарии

чт, 12/19/2013 - 14:40 — Гость

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

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

program variant4;

uses crt;

var n:integer;{ввод переменных}

t,v,s:real;

begin

ClrScr;

writeln('1.Вычислить расстояние.');

writeln('2.Вычислить скорость.');

writeln('3.Вычислить время.');

readln(n);

case n of

1:begin

write('Введите скорость:');readln(v);

write('Введите время:');readln(t);

S:=t*v;

writeln('Расстояние = ',s:5:2);

end;

2:begin

write('Введите расстояние:');readln(s);

write('Введите время:');readln(t);

v:=s/t;

writeln('Скорость = ',v:5:2);

end;

3:begin

write('Введите расстояние:');readln(s);

write('Введите скорость:');readln(v);

t:=s/v;

writeln('Время = ',t:5:2);

end;

end;

readln;

end.

Пнд, 12/17/2012 - 19:13 — Гость

У основания столбика высотой

У основания столбика высотой L см сидит улитка.
Днем (с 7:00 до 20:00) она проползает вверх К см. Ночью - улитка спит, поэтому сползает вниз на Н см.
Определите и выведите на экран на какие сутки улитка доберется до вершины столбика, при условии, что полностью восстановить силы за ночь ей не удается, и каждые новые сутки ее продвижение вверх уменьшается на М см. А может это ей и вовсе не удасться?
Значения L, К, Н и М - целые числа, которые вводятся с клавиатуры и лежат в пределах от 0 до 1000 включительно.

ср, 09/04/2013 - 15:22 — Гость

Решение

var

L, K, H, M, S, i: integer;

 

begin

S:=0;

write ('Введите высоту столба: ');

readln (L);

write ('Введите сколько за день проползет улитка: ');

readln (K);

write ('Введите на сколько за ночь сползет улитка: ');

readln (H);

write (Введите на сколько улитка будет уставать каждый день: ');

readln (M);

begin

i := 0;

repeat

S:=S+K-H-M*(i);

i := i + 1

until (S >= L) or (S<0);

end;

If S >= L then

write ('Улитке нужно', i,' дней что бы добраться до верха')

Else

write ('Улитка через', i,' дней сползет до земли');

readln

end.

Втр, 11/27/2012 - 20:08 — Гость

Построить таблицу

Построить таблицу соответствий между мерами, используя цикл с постусловием (repeat....until). Начальное и конечное значения меры, шаг изменение этого значения задать самостоятельно в режиме диалога. Оформить таблицу применяя форматы вывода. Количество строк в таблице (10-15).

1 чейн строительный = 30.48м. =100 футов

ср, 11/14/2012 - 22:09 — Гость

чашке находится n микробы их

чашке находится n микробы их количество с каждой минутой удваивается составить программу нахождения количества микробов за время t

вс, 05/13/2012 - 14:36 — Гость

старинная задача

дано 100 рублей на эти 100 рублей мужику надо купить 100 голов скота теленок стоит 0.5 рубля корова 5 рублей бык 10 рублей. решить надо с помощью цикла

ср, 11/28/2012 - 11:16 — Гость

uses crt;var b,k,t,s:

uses crt;

var b,k,t,s: integer;

zb,zk,zt: real;

begin

zb:=10; zk:=5; zt:=0.5;

for b:=0 to 100 do

for k:=0 to 100 do

for t:=0 to 100 do

if ((b*zb)+(k*zk)+(t*zt)=100) and

(b+t+k=100) then writeln(b,' быков, ',k,' коров, ',t,' телят');

end.

пт, 01/24/2014 - 07:11 — Гость

s: integer;

s - для чего?

ср, 03/28/2012 - 18:23 — Гость

Задачи нужно решить тремя способами (циклы)

Все задачи нужно решить тремя способами:
1)счетчик (for to do)
2)предпроверка условия (while do)
3)постпроверка условия (repeat until)

Задача№1
В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка работала m часов, а каждая следующая на 10 минут больше, чем предыдущая. Сколько часов проработала вся бригада?

Задача№2
На воду опущен шар радиуса r, изготовленный из вещества плотности p (p<1). Найти расстояние от центра шара до поверхности воды. Указание. При составлении программы воспользоваться формулой объема шарового сегмента высоты h: V = пи*h^2 (3r - h)/3, где r - радиус шара, h - высота шарового сегмента.

В первой задачке нужно узнать время всей бригады - это время первой сенокосилки + время второй: м1+м2+м3.....+мn например всего 3 косилки, время 1-ой косилки 5 часов + время второй 5 часов 10 минут + время третьей 5 часов 20 минут=15 часов 30 минут.

у меня есть 2 варианта решения но у меня не получается сложить время каждой неправильно высчитывает пробовал и в 1-ый и во второй вариант решения добавить сложение

begin

Writeln('Vvedite kollichestvo senokosilok:');

readln(n);

Writeln('Vvedite vremya raboti 1-oy senokosilki:');

readln(m);

m:=m*60;

for i:=2 to n do

m:=m+10;

m:=m/60;

Writeln('Vremya raboti vsey brigadi=',m,' chasa(ov)');

readln;

end.

и

begin

Writeln('Vvedite kollichestvo senokosilok:');

readln(n);

Writeln('Vvedite vremya raboti 1-oy senokosilki:');

readln(m);

 

t:=m;

for i:=2 to n do

t:=t+1/6+i+i;

 

Writeln('Vremya raboti vsey brigadi=',t:0:2,' chasa(ov)');

 

 

readln;

end.

10 мин это 1/6 часа

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

ср, 11/20/2013 - 16:49 — Гость

program z1;var

program z1;

var n,m,i:integer;

begin

writeln('введите N');

readln(N);

writeln('введите m в минутах');

readln(m);

i:=1;

repeat

m:=m+10;

i:=i + 1

until (i=N);

writeln (m);

end.

вс, 05/20/2012 - 23:32 — Гость

В первой задаче ты просто

В первой задаче ты просто добавляешь по 10 минут с каждой итерацией. Если внимательно прочесть задачу, то можно заметить, что каждая следующая работала НА 10 минут больше предыдущей.
Мой вариант программы без перевода в часы:

program seno;

var a,n,b,i:integer; m:real;

begin

write('kosilok:');

readln(a);

write('1 rabotala:');

readln(b);

n:=a*60;

for i:=1 to a-1 do

begin

n:=n+10;

m:=n+m;

end;

write('otvet:',m:3:2,' minut');

end.

чт, 05/03/2012 - 15:19 — Гость

for i:=2 to n do

for i:=2 to n do BEGIN

m:=m+10;

m:=m/60; END;

ср, 04/04/2012 - 19:31 — Гость

вот 3

program tech;

var n,i: integer; m,j: real;

begin

writeln('Vvedite kollichestvo senokosilok');

readln(n);

writeln('Vvedite vremya raboti 1-oy senokosilki');

readln(m);

j:=0;

for i:=1 to n do

begin m:=m+j;

j:=j+(1/10);

end;

writeln('Vremya raboti vsey brigadi=',t:0:2,' chasa(ov)');

readln;

end.

ср, 04/04/2012 - 19:29 — Гость

Вот еще вариант

program tech;

var n,j: integer; m,k: real;

begin

writeln('Vvedite vremya raboti 1-oy senokosilki:');

readln(n);

writeln('Vvedite vremya raboti 1-oy senokosilki:');

readln(m);

k:=0;

j:=0;

while Jdo

begin

m:=m+k;

k:=k+(1/10);

j:=j+1;

end;

writeln('Vremya raboti vsey brigadi=',m:2:2,' chasa');

readln;

end.

вс, 04/22/2012 - 15:35 — Гость

Вот вариант у мня работает может кому пригодится.

program senokos;

uses crt;

var n, m, i :integer;

begin

writeln('Введите количество сенокосилок n ');

readln(n);

writeln('Введите время работы первой сенокосилки m ');

readln(m);

m:=m*60;

 

for i:=1 to n-1 do

m:=m+10;

 

writeln('Общее время работы бригады= ',m);

readln

end.



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


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Краткое описание документа:

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

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

Цикл for

Часто цикл 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

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, еслиfalse – то нет.

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

var

    i, n:integer;

 

begin

    write('Количествознаков: ');

    readln(n);

 

    i :=1;

    while i <= n dobegin

        write('(*) ');

        i := i + 1

    end;

 

readln

end.

Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение

Автор
Дата добавления 10.02.2015
Раздел Информатика
Подраздел Конспекты
Просмотров1036
Номер материала 377411
Получить свидетельство о публикации
Похожие материалы

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