Как зациклить программу в паскале
Перейти к содержимому

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

  • автор:

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

Author24 — интернет-сервис помощи студентам

Нужно, чтобы выполнилось это действие и затем выводилось на экран «Вы хотите продолжить? «Да» или «Нет»». Если «Да», то действие снова должно выполняться, если «Нет», то программа завершается. Через repeat надо. Помогите)

1 2 3 4 5 6 7 8 9 10
var a,b,i:integer; begin write('Введите целое число A:'); readln(a); write('Введите целое число B:'); readln(b); for i:=1 to min(a,b) do if(a mod i=0)and(b mod i=0)then writeln(i: 2); end.

Добавлено через 1 час 3 минуты
Я уже решил, вот программа, кому интересно

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
var slovo, proverka: string; var a,b,i:integer; procedure od(a,b,i:integer); begin for i:=1 to min(a,b) do if(a mod i=0)and(b mod i=0)then writeln(i: 2); end; begin proverka :=('Да'); repeat write('Введите целое число A:'); readln(a); write('Введите целое число B:'); readln(b); od(a,b,i); write('Вы хотите продолжить? Введите "Да" или "Нет": '); readln(proverka); until proverka= ('Нет'); end.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как зациклить программу!
Program ff; type fq=record name:string; Radios:real; Temperature:real; R_do_sun:real; end;.

Как зациклить программу?
Написал пример в C++ но не понимаю как сделать цикличность чтобы решало несколько действий помогите.

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

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как зациклить всю программу
Пишу программу, на данном моменте все ок, но не могу понять как зациклить всю программу, т.е.

Как зациклить программу на многократное использование?
Есть код програмы калькулятора, надо с помощю цикла или при нажатии определенной клавиши(как умога.

Как правильно зациклить программу для фильтрации ввода?
Доброго времени суток! Хотелось бы узнать как вернее всего зациклить программу, если условие.

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

Или воспользуйтесь поиском по форуму:

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

Зацикливание

Зацикливание

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

Итак зацикливание в программировании — это ситуация, когда цикл написан таким образом, что условия выхода из него не выполняется. Рассмотрим зацикливание в операторах цикла for,while и repeat. Справедливости ради все варианты будут рассмотрены в Turbo Pascal и PascalABC. Также будет добавлен оператор write для вывода результатов.

Зацикливание в for

Вообще идея зацикливания проста: необходимо всего-то в каждом шаге цикла уменьшать оператор шага на 1 (i:=i-1;). Однако именно такая реализация возможна не везде. Рассмотрим простой пример.

Казалось бы все просто,да не тут то было.В то время как в Turbo Pascal все проходит на ура,в PascalABC такое не возможно и для зацикливания необходимо использовать оператор goto.

label m;
var i:integer;
begin
m:
for i:=1 to 5 do begin
write(i);
if i=2 then goto m;
end;
end.

Зацикливание в while

Напомню, что в операторе while шаг цикла необходимо добавлять самостоятельно. Поэтому произвести зацикливание проще всего: нужно только убрать шаг цикла

Оба компилятора адекватно реагируют на пропуск шага.

Зацикливание в repeat

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

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

Добавить комментарий Отменить ответ

Рубрики

  • C++ (27)
    • STL (2)
    • Арифметические операции (1)
    • Ввод-вывод (1)
    • Дополнительная информация (1)
    • Задачи (2)
    • Массивы (1)
    • Сортировки (2)
    • Типы данных (1)
    • Условные операторы (1)
    • Циклы (1)
    • Begin (2)
    • Задачи читателей (6)
    • Одномерные массивы (2)
    • Простые операции (10)
    • Символьные строки (1)
    • Сортировка (3)
    • Типы данных (1)
    • Условные операторы (3)
    • Циклы (5)
    • Поисковая оптимизация для интернет-магазинов (25)

    Общество с ограниченной ответственностью Программное обеспечение и юридическое споровождение маркетплейсов (ПОЮСМ)
    ИНН 0275927174, ОГРН 1220200002582
    2014 © Copyright Все права защищены

    Циклы в Паскале

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

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

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

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

    Блок-схемы циклов

    Цикл for

    Часто цикл for называют циклом со счетчиком. В Pascal этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. То есть количество повторений известно заранее.

    В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла for не должно содержать выражений, изменяющих счетчик.

    Цикл 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('*'); writeln; end.

    Примеры выполнения кода:

    Количество знаков: 5 *****
    Количество знаков: 13 *************

    Цикл while

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

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

    var sum, n: integer; begin sum := 0; while sum < 100 do begin readln(n); sum := sum + n; end; writeln('Сумма: ', sum); end.

    Примеры выполнения кода:

    45 23 12 31 Сумма: 111
    50 91 Сумма: 141

    Цикл repeat

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

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

    var sum, n: integer; begin sum := 0; repeat readln(n); sum := sum + n; until sum > 100; writeln('Сумма: ', sum); end.
    35 71 Сумма: 106

    Зациклить программу

    Author24 — интернет-сервис помощи студентам

    Требуется найти такое число (только одно, после чего завершить программу) Х, что Х, 2*Х, 3*Х, 4*Х, 5*Х и 6*Х состояли из одинаковых цифр.
    То, что на сейчас я имею:

    const y=7;
    type ma=array [0..9] of integer;
    var a,b:ma; mas:array [1..y] of integer; i:integer; x:longint;

    Процедура, определяющая цифры числа

    1 2 3 4 5 6 7 8 9 10
    procedure raz(x:longint;var a:ma); begin for i:=1 to 10 do a[i]:=0; while x>0 do begin inc(a[x mod 10]); x:=x div 10; end; end;

    Функция, сравнивающая цифры двух чисел

    1 2 3 4 5 6 7 8 9
    function sr(a,b:ma):boolean; var t:boolean; begin t:=true; for i:=1 to 10 do if a[i]<>b[i] then t:=false; sr:=t; end;

    И тело программы (проблема с тем, как его зациклить(()

    1 2 3 4 5 6 7 8
    x:=1; for i:=1 to y do mas[i]:=i; raz(x,a); for i:=2 to y do begin raz(x*i,b); if sr(a,b)=true then. 

    Добавлено через 2 часа 45 минут
    Попыталась дописать тело, получилось

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
    begin x:=1; for i:=1 to y do mas[i]:=i; l:=true; while (l=true) do begin raz(x,a); for i:=2 to y do begin raz(x*i,b); if sr(a,b)=false then begin x:=x+1; writeln(x,' failed'); break; end; end; if i=y then l:=false; end; write(x); end.

    Но работает неправильно( И долго((
    94731 / 64177 / 26122
    Регистрация: 12.04.2006
    Сообщений: 116,782
    Ответы с готовыми решениями:

    Анимация: как зациклить картинку?
    Нужна помощь! Я не знаю как зациклить картинку чтоб она заходила в одну сторону и выходила с другой.

    Как зациклить программу!
    Program ff; type fq=record name:string; Radios:real; Temperature:real; R_do_sun:real; end;.

    Зациклить программу, пока не нажат пробел
    Не могу сообразить, как реализовать такую вещь, как ожидание нажатия клавиши, например SPACE.

    Эксперт С++

    3646 / 1378 / 243
    Регистрация: 16.04.2009
    Сообщений: 4,526

    while true do

    Добавлено через 14 секунд
    бесконечный цикл
    87844 / 49110 / 22898
    Регистрация: 17.06.2006
    Сообщений: 92,604
    Помогаю со студенческими работами здесь

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

    зациклить код.
    Задача вот какая: Даны номерные знаки 4 автомашин. Определить, имеются ли среди них одинаковые.

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

    как так зациклить, чтобы.
    как решить задачу. Пример входных данных 3 1 2 3 4 5 6 7 8 9 Пример выходных данных.

    Как зациклить воспроизведение mp3?
    Всем доброго времени суток! Не могу заставить воспроизводиться по кругу звуковой файл mp3. На.

    Как зациклить рисунок? Графика PascalABC
    Может я из ума выжила, ну никак не лезет в голову, как продолжить этот рисунок, чтобы получился.

    Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *