Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal ABC

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.67
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
#1

Ошибка: Нельзя изменять значение переменной цикла внутри этого цикла - Pascal ABC

20.10.2011, 08:59. Просмотров 4936. Ответов 2
Метки нет (Все метки)

при запуске в цикле while в строке x:=x div 10; выдает ошибку "Нельзя изменять значение переменной цикла внутри этого цикла", объясните пожалуйста, и по возможности исправьте..... буду оч благодарна. вот текст программы
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
{Подсчитать количество четных натуральных чисел, принадлежащих интервалу
 [ a , b ), у которых количество четных цифр больше количества нечетных цифр.}
 
 var a,b,d,x,y,j,k : integer; {j - количество четных цифр, k - нечетных, d - 
                             количество натуральных чисел}
 BEGIN
    writeln('Введите число а > ');
    readln(a);
    writeln('Введите число b > ');
    readln(b);
    j:=0;
    k:=0;
    d:=0;
    if ((a<0) or (b<0) or (a>b)) then  
       writeln('Числа a и b должны быть натуральными, причем a<b!')
       else begin
             for x:=a to b-1 do begin
                if (x mod 2 = 0) then begin
                      while x>0 do begin
                            y:=x mod 10;
                            if (y mod 2 =0) then
                               j:=J+1
                               else k:=k+1;
                            x:=x div 10;
                      end;
                end; 
                if j>k then 
                   d:=d+1;
             end; 
             writeln('Количество четных натуральных чисел, принадлежащих интервалу');
             writeln('[',a,';',b,'), у которых количество четных цифр больше количества');
             writeln('нечетных, равно ', d, ' ');
       end;
END.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 08:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка: Нельзя изменять значение переменной цикла внутри этого цикла (Pascal ABC):

Ошибка: Нельзя изменять значение переменной цикла внутри этого цикла - Pascal ABC
при запуске в строке If i=k Then i:=i+1; выдает ошибку &quot;Нельзя изменять значение переменной цикла внутри этого цикла&quot;. Объясните почему...

Что означает "Нельзя изменять значение переменной цикла внутри этого цикла"? - Pascal ABC
Собственно, сама программа. {Дана целочисленная матрица Aij i=1..n,j=1..m (n,m&lt;=100). Найти наибольший и наименьший по абсолютной...

Ошибка "нельзя изменять значение переменной цикла внутри цикла" - Pascal ABC
пишет, что &quot;нельзя изменять значение переменной цикла внутри этого цикла&quot; var a,c:array of integer; i,j:integer; min:integer; begin ...

Ошибка: "Нельзя изменять значение переменной цикла внутри этого цикла" - Pascal
&quot;Нельзя изменять значение переменной цикла внутри этого цикла&quot;. Выдает вот такую ошибку в 37 строчке. Помогите исправить Program...

Как прервать работу цикла for, если значение переменной достигло определенного значения? - Pascal ABC
В php знаю как остановить цикл, а в pascal нет. Подскажите.

Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла - Pascal ABC
program Khamkov8; const Z=5; M=6; var f,f1:text; c:array of integer; n:array of integer; j,i,jm,max:integer; begin ...

2
Puporev
Модератор
53021 / 40832 / 14075
Регистрация: 18.05.2008
Сообщений: 94,978
20.10.2011, 09:12 #2
{Подсчитать количество четных натуральных чисел, принадлежащих интервалу
[ a , b ), у которых количество четных цифр больше количества нечетных цифр.}
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
uses crt;
 var a,b,d,x,x1,y,j,k : integer; {j - количество четных цифр, k - нечетных, d -
                             количество натуральных чисел}
 BEGIN
    writeln('Введите число а > ');
    readln(a);
    writeln('Введите число b > ');
    readln(b);
    if ((a<0) or (a>b)) then
    writeln('Числа a и b должны быть натуральными, причем a<b!')
    else
     begin
      d:=0;
      for x:=a to b-1 do
      if (x mod 2 = 0) then
       begin
        x1:=x;//нельзя издеваться над счетчиком цикла...
        j:=0;
        k:=0;
        while x1>0 do
         begin
          y:=x1 mod 10;
          if y mod 2 =0 then j:=J+1
          else k:=k+1;
          x1:=x1 div 10;
         end;
        if j>k then d:=d+1;
       end;
      writeln('Количество четных натуральных чисел, принадлежащих интервалу');
      writeln('[',a,';',b,'), у которых количество четных цифр больше количества');
      writeln('нечетных, равно ', d, ' ');
    end;
END.
1
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
20.10.2011, 12:34  [ТС] #3
спасибо большое)))) с этой ошибкой все понятно))) осталось найти где я еще намудрила))))))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2011, 12:34
Привет! Вот еще темы с ответами:

Вывод результата в теле цикла и за пределами цикла??? - Pascal
Вывод результата в теле цикла и за его пределами: 1. как это влияет на результат? 2. где про это можна почитать? Спасибо:)

Используя оператор цикла с предусловием вычислить значения переменной S при n=4 - Pascal ABC
Используя оператор цикла с предусловием, вычислить значения переменной S при n=4. Начальное значение переменной S=0, параметр цикла i...

Вычислить выражения,используя для организации цикла операторы FOR (значения переменной n задавать с клавиатур - Pascal ABC
вычислить выражения,используя для организации цикла операторы FOR (значения переменной n задавать с клавиатуры) y:=summ((2+i))/(i!)

Ошибка цикла for - Pascal
Объясните, что здесь неправильно. В чем ошибка? Подправьте меня, если несложно... uses crt; const m=2; n=5; type ar=array of...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru