Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 58

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

27.03.2015, 21:52. Показов 1535. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var x0,x1,x2,x3,x4,y0,y1,y2,y3,y4,dx0,dx1,dx2,dx3,dy0,dy1,dy2,dy3:integer;
 
begin
writeln('Введите значения x и y 5 раз начиная с x');
readln(x0,x1,x2,x3,x4,y0,y1,y2,y3,y4);
dx0:=x1-x0;
dx1:=x2-x1;
dx2:=x3-x2;
dx3:=x4-x1;
dy0:=y1-y0;
dy1:=y2-y1;
dy2:=y3-y2;
dy3:=y4-y3;
 
 
writeln('| x0= ',x0,'| x1= ',x1,'| x2= ',x2,'| x3= ',x3,'| x4= ',x4,' | ');
writeln('| y0= ',y0,'| y1= ',y1,'| y2= ',y2,'| y3= ',y3,'| y4= ',y4,' | ');
writeln('| dx0= ',dx0,'| dx1= ',dx1,'| dx2= ',dx2,'| dx3= ',dx3,' | ');
writeln('| dy0= ',dy0,'| dy1= ',dy1,'| dy2= ',dy2,'| dy3= ',dy3,' | ');
readln;
end.
Как мне сделать цикл чтобы каждый раз не вводить формулы от руки а оно само считала по аналогу? Желательно на этой рпогармме показать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2015, 21:52
Ответы с готовыми решениями:

Прошу прощения, как мне создать бесконечный цикл для моей программы?
Или как мне создать цикл, который будет прерываться только оператором while? #include <iostream> using namespace std; int...

Мне нужно в программе, метки заменить на цикл(программа реализации сжатия информации алгоритм RLE)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls,...

Создать цикл в программе
Здравствуйте. Есть код, нужно чтобы циклом выполнилось три раза. Виснет и в мемо вывод не на все выполнения. var I: Integer; L2:...

12
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 58
27.03.2015, 22:19  [ТС]
Просто потом нужно будет все эти значения просчитать по формулам что на картинке, а если все в рунчую забивать каждую формулу то выйдет кучу данных и запутатся легко, да и ответ надо дать в виде таблицы
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
28.03.2015, 02:22
Встроенная справочная система:
Оператор цикла for
Оператор цикла for имеет одну из двух форм:

for переменная := начальное значение to конечное значение do
оператор

или

for переменная := начальное значение downto конечное значение do
оператор


Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла. Значение параметра цикла после завершения цикла считается неопределенным.

Переменная-параметр цикла может иметь любой порядковый тип. При этом начальное и конечное значения должны быть совместимы по присваиванию с переменной-параметром цикла.

Например:

var en: (red,green,blue,white);
...
for en := red to blue do
write(Ord(en):2);
for var c := 'a' to 'z' do
write(c);

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

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

Изменение переменной-параметра цикла внутри цикла является логической ошибкой. Например, следующий фрагмент со вложенным оператором for является ошибочным:

for i := 1 to 10 do
for i := 1 to 5 do
write(i);
0
28.03.2015, 13:26

Не по теме:

Killer21, фотографии текста запрещены. Неоткуда скопировать текст - печатайте вручную. Формулы, по всем канонам, также являются текстом. Для ввода формул существует встроенный в форум редактор формул на основе LaTeX (ниже окна для ввода сообщения, формулу копировать из нижнего поля после просмотра).

0
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 58
28.03.2015, 14:28  [ТС]
Можете на примере моей програмы написать как ввести тут цикл!Плиз
0
Модератор
10422 / 5710 / 3401
Регистрация: 17.08.2012
Сообщений: 17,368
28.03.2015, 14:50
Killer21, Вы что, действительно не можете по книжке пример сделать, или это Вы так шутите? Поверить Вам, что Вы не можете написать программу с циклом, я не могу. Потому что не могу поверить в подобную сказочную лень. Хотя...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var x, y: array [0..4] of integer;
    dx, dy: array [0..3] of integer;
    i: integer;
begin
  writeln('Введите значения x и y:');
  for i := 0 to 4 do
    begin
      write('x[', i, '] = ');
      readln(x[i])
    end;
  for i := 0 to 4 do
    begin
      write('y[', i, '] = ');
      readln(y[i])
    end;
  for i := 0 to 3 do
    begin
      dx[i] := x[i + 1] - x[i];
      dy[i] := y[i + 1] - y[i]
    end;
  for i := 0 to 4 do write('|x[', i, '] = ', x[i]);
  writeln('|');
  for i := 0 to 4 do write('|y[', i, '] = ', y[i]);
  writeln('|');
  for i := 0 to 3 do write('|dx[', i, '] = ', dx[i]);
  writeln('|');
  for i := 0 to 4 do write('|dy[', i, '] = ', dy[i]);
  writeln('|');
  readln
end.

Не по теме:

Исповедь ленивого кота:
- "Слышали, я вчера пять часов орал?"
- "Ну да. И почему орал?"
- "На яйки себе наступил, а сойти лень было..."

0
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 58
28.03.2015, 18:39  [ТС]
Спасибо огромное, просто я реально не понял эту штуку, а теперь кажись доходит.

Добавлено через 23 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var x, y: array [0..4] of integer;
    dx, dy: array [0..3] of integer;
    d2x: array [0..2] of integer;
    i: integer;
begin
  writeln('Введите значения x и y:');
  for i := 0 to 4 do
    begin
      write('x[', i, '] = ');
      readln(x[i])
    end;
  for i := 0 to 4 do
    begin
      write('y[', i, '] = ');
      readln(y[i])
    end;
  for i := 0 to 3 do
    begin
      dx[i] := x[i + 1] - x[i];
      dy[i] := y[i + 1] - y[i];
      d2x[i]:= dx[i+1]-dx[i];
    end;
  for i := 0 to 4 do write('|x[', i, '] = ', x[i]);
  writeln('|');
  for i := 0 to 4 do write('|y[', i, '] = ', y[i]);
  writeln('|');
  for i := 0 to 3 do write('|dx[', i, '] = ', dx[i]);
  writeln('|');
  for i := 0 to 3 do write('|dy[', i, '] = ', dy[i]);
  writeln('|');
  for i := 0 to 2 do write('|d2x[', i, '] = ', d2x[i]);
  writeln('|');
  readln;
end.
Вот попробовал вкленить еще одну форумулу но пишет что индекс выходит за пределы массива, хотя вроде все правильно
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
28.03.2015, 18:46
Цитата Сообщение от Killer21 Посмотреть сообщение
Pascal
1
2
3
var x, y: array [0..4] of integer;
    dx, dy: array [0..3] of integer;
    d2x: array [0..2] of integer;
В этом разделе размер массива описываешь.
Цитата Сообщение от Killer21 Посмотреть сообщение
Pascal
17
18
19
20
21
22
for i := 0 to 3 do
    begin
      dx[i] := x[i + 1] - x[i];
      dy[i] := y[i + 1] - y[i];
      d2x[i]:= dx[i+1]-dx[i];
    end;
а здесь производишь вычисления. Угадай почему за размер массива уходишь?
0
Модератор
10422 / 5710 / 3401
Регистрация: 17.08.2012
Сообщений: 17,368
28.03.2015, 19:01
Ну, всё ж просто... Циклы:

for <от> to/downto <до> do для перебора вариантов подряд в прямом/обратном направлении, переменная цикла может быть только перечисляемого типа, переменную цикла внутри цикла менять нельзя.

while <логическое выражение> do - проверка невыхода из цикла в начале цикла, цикл будет выполняться, пока логическое выражение в заголовке истинно, может не выполниться ни разу, если условие при входе в цикл уже истинно.

repeat..until <логическое выражение> - проверка выхода из цикла в конце цикла, всегда выполняется хотя бы один раз, выход из цикла, если условие истинно.

Для немедленного продолжения цикла (то есть, цикл прерывается, управление передаётся в заголовок цикла) - оператор continue.

Для немедленного выхода из цикла (управление передаётся команде, следующей непосредственно за циклом) - оператор break.

Иногда, очень редко, для досрочного выхода из цикла применяется оператор goto. Это считается плохим тоном, и допустимо, если требуется досрочно прекратить выполнение сразу нескольких вложенных циклов.

Вот и весь ликбез по циклам.

Успехов.

Добавлено через 8 минут
Killer21, ну, это ж просто... d2x[0..2], а for i := 0 to 3. Ну и, куда ж деваться, вылет... d2x[3] нету.
Да ещё и d[i+1] не существует при i = 3, потому что dx[0..3], dx[4] - нет такого элемента в массиве. Для вычисления d2x организуйте отдельный цикл (после цикла с вычислением dx) for i := 0 to 2, и вся недолга. Ну, подозреваю, в этот же цикл будет вставлено вычисление массива d2y...

Добавлено через 3 минуты
Можно и одним циклом сделать, с помощью операторов if...
0
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 58
09.04.2015, 21:22  [ТС]
А как мне построить график теперь для этой программы, то что модуль crt надо подключить то понятно, а вот как его построить - вопрос.
0
Модератор
10422 / 5710 / 3401
Регистрация: 17.08.2012
Сообщений: 17,368
09.04.2015, 22:47
Цитата Сообщение от Killer21 Посмотреть сообщение
график
В смысле блок-схему?
Цитата Сообщение от Killer21 Посмотреть сообщение
модуль crt надо подключить
Не так уж и надо. В Вашей программе не используется ничего из модуля crt. Однако, в ABC его лучше подключить - чтобы результаты работы программы выводились в отдельное окно. Подключайте, с ним в ABC удобнее.
0
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 58
09.04.2015, 22:55  [ТС]
нет мне именно график надо, я программе задаю координаты точек х и у вот по ним над построить график
0
09.04.2015, 23:01

Не по теме:

Ясно. С графикой в ABC работать не умею. Не мой диалект паскаля.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2015, 23:01
Помогаю со студенческими работами здесь

Пытаюсь создать цикл, который поможет мне получить минимальное число членов ряда
factorial = lambda x: factorial(x-1)*x if x&gt;1 else 1 n=1 s= while for i in range(n): list.append(s,...

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

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Подскажите, как мне в программе общаться по сети?
Для общения по сети я выбрал стандартный компонент Билдера TServerSocket и TClientSocket, соединение серверной проги с клиентскими -...

Как мне нужно сделать ссылку на функцию в программе?
int test() { int i; double** A = calloc(N, sizeof(double*)); for (i = 0; i &lt; N; i++) { A = calloc(N,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru