Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/75: Рейтинг темы: голосов - 75, средняя оценка - 4.92
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
1

Как в Паскале делать цикл FOR с шагом, например, 3, 5

04.07.2017, 08:28. Показов 14052. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Для примера такая программа:
Pascal
1
2
3
4
5
6
7
8
uses Crt;
var i: integer;
begin    
 ClrScr;                                 
foe i:= 1 to 15 do
   write('  ', i);                                    
readln
end.
На выходе:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15



Ваш ответ на эту тему был дан в виде программы со строками 7 – 12. Остальные я добавил и на выходе получил непонятное. Вот такая оказалась программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses Crt;
var i, y, n: Integer;
begin
  ClrScr;
  Write(' Ввести число: ');
  ReadLn(n);
  i:= 1;
  while i <= n do begin
    y:= i * i:  {или что-то делаем}
    WriteLn(y);
    i:= i + 5;
  end;
  ReadLn
end.
На выходе получили:
Ввести число: 2
1
И что этот выход означает?

И ещё вопрос:
Нумерация строк в Паскале делается или нет. У меня нумерацию строк программа
отказала выполнить.
(Как оказалось, в моей книге нет ни одной программы с нумерацией).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2017, 08:28
Ответы с готовыми решениями:

В Паскале цикл for исполняется с шагом 1 (-1). А как выполнить любой другой шаг?
В Паскале цикл for исполняется с шагом 1 (-1). А как выполнить любой другой шаг?

Как описать в ассемблере переменную с шагом (например, Х меняется от Х0 до Хк с шагом h)?
Как описать в ассемблере переменную с шагом ( например Х меняется от Х0 до Хк с шагом h?

Как вывести через цикл с FOR строку, например, из 61-ной точки?
Как записать циклом FOR строку из, например, 61 точки? На выходе нужно, чтобы была строка из 61...

Задача в паскале, кто знает как делать
Хочу решить задачу

10
13 / 14 / 4
Регистрация: 10.10.2014
Сообщений: 109
04.07.2017, 08:41 2
Что вам надо конкретно? Описать, что программа делает?
Табуляцию поправьте и что у вас с переменными, почему где-то большая I, где-то маленькая i
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
04.07.2017, 09:52 3
Цикл for с шагом 5.
Pascal
1
2
for i:=1 to n do
write((i-1)*5+1,' ')
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
04.07.2017, 11:02 4
Цитата Сообщение от Petro29 Посмотреть сообщение
И что этот выход означает?
Собирались организовать цикл от 1 с шагом 5 до тех пор, пока i <= n. Естественно, когда n=2, это цикл выполнится только один раз для i=1, а следующее значение i=1+5=6 окажется меньше 2 и цикл благополучно завершится.
Что вы и пронаблюдали.

Добавлено через 4 минуты
Нумерацию строк делают в книгах (и у нас на форуме), чтобы можно было легко ссылаться в тексте сообщений на те или иные строки кода.
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
23.07.2017, 10:47  [ТС] 5
Для примера такая программа:
Pascal
1
2
3
4
5
6
7
8
uses Crt;
var i: integer;
begin                                           
ClrScr;                                 
foe i:= 1 to 15 do
   write('  ', i);                                    
readln
end.
На выходе:
Pascal
1
1   2   3   4   5   6   7   8   9   10   11   12   13   14   15
Как сделать эту программу с шагом 3 или 5?

Ваш ответ на эту тему был дан в виде программы со строками 7 – 12. Остальные я добавил и на выходе получил непонятное. Вот такая оказалась программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.  uses Crt;
2.  var I, y, n: integer;
3.  begin
4.  ClrScr;
 5.    write(' Ввести число: ');
 6.          readln(n);
  7.           i:= 1;
  8.  while I <= n do begin
   9.    y:= I * i:  {или что-то делаем}
  10.        writeln(y);
  11.             i:= I + 5;
   12.           end;
   13.    readln
   14  end.
На выходе получили:
Pascal
1
2
Ввести число:  2
1
И что этот выход означает?

И ещё вопрос:
Нумерация строк в Паскале делается или нет? У меня нумерацию строк программа отказала выполнить. (Как оказалось, в моей книге нет ни одной программы с нумерацией).
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
23.07.2017, 11:55 6
Цитата Сообщение от Petro29 Посмотреть сообщение
Ввести число: *2
Если Вы хотите получить числа с шагом 5, то какого лешего Вы вводите число меньше 6?
Вы и получаете число 1, первое число ряда 1,6,11,16...
0
7 / 7 / 5
Регистрация: 30.12.2016
Сообщений: 100
03.09.2017, 14:35 7
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
 program fff;
   uses crt;
    var
     k:integer;
   begin
     k:=1;
     writreln(k);
     repeat
      k:=k+2;
      writeln(k);
     until k>=15;
   end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
03.09.2017, 15:42 8
Comrade2017,
2 это 3 или 5?
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 733
03.09.2017, 18:30  [ТС] 9
Вы дали ответ в виде двух строк:
Pascal
1
2
 1. for i:= 1 to n do 
 2. write ( (i – 1) * 5 + 1, '   ') ;
Вот программа с вставленным вашим ответом (строка 6):
Pascal
1
2
3
4
5
6
7
8
1. uses Crt;
2. var i: integer;
3. begin
4. ClrScr;;
5. for i:= 1 to 16 do
6. write((i – 1) * 5 + 1, '   ');
7. readln
8. end.
На выходе имеем:
Pascal
1
1  6  11  16  21  26  31  36  41  46  51  56  61  66  71  76
Результат не годится. Здесь исполняются все 16 циклов с увеличением
каждого цикла на 5 (или на любой другой шаг).
А надо, чтобы значения циклов выдавались при шаге 1, 6, 11, 16.
Как в QBasic,e.
QBasic/QuickBASIC
1
2
3
4
CLS
FOR I = 1 TO 16 STEP 5
    PRINT I;
NEXT i
На выходе:
QBasic/QuickBASIC
1
1   6   11   16
Ждём окончательный ответ.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
03.09.2017, 18:53 10
Цитата Сообщение от Petro29 Посмотреть сообщение
надо, чтобы значения циклов выдавались при шаге 1, 6, 11, 16
Pascal
1
2
3
4
5
  i:=1;
  while i<=16 do begin
    Write(' ',i);
    Inc(i,5);
  end;
Pascal
1
  for i:=0 to 3 do Write(' ',1+i*5);
0
7 / 7 / 5
Регистрация: 30.12.2016
Сообщений: 100
04.09.2017, 09:48 11
Comrade2017,
2 это 3 или 5?


1,3,5
0
04.09.2017, 09:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2017, 09:48
Помогаю со студенческими работами здесь

как приостановить цикл в паскале?
как приостановить цикл в паскале????

Подскажите как сделать, например "для продолжения нажмите клавишу х" и дальше выводится результат с шагом заданым пользователем
Подскажите как сделать, например &quot;для продолжения нажмите клавишу х&quot; и дальше выводится результат с...

Знаю как делать в паскале . а как в С ?
Для записи текста использованы большие и малые латинские буквы, цифры и разделители. Заменить...

Написать в турбо паскале, Цикл с параметром, Цикл, с постусловием, и с предусловием пожалуйста


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru