Как исправить ошибку в паскале ожидался порядковый тип

damka_00

0 / 0 / 0

Регистрация: 29.03.2015

Сообщений: 94

1

Ошибка: ожидался порядковый тип

27.04.2016, 20:22. Показов 44826. Ответов 3

Метки нет (Все метки)


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

Помогите исправить

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
  program Hw;
const
    m = 3;
 
var
    A: array[1..3] of real;
    B: array[1..3] of real;
    C: array[1..3] of real;
    D: array[1..3] of real;
    S: real;
    W: real;
    O: real;
    R: real;
    summA:real;
    summB:real;
    summC:real;
    summD:real;
    i: real;
    srtA:real;
    srtB:real;
    srtC:real;
    srtD:real;
 
begin
    for i := 1 to m do begin
    S:=random(11);
    W:=random(13);
    while W = S do W:=random(13);
    O:=random(14);
    while O = S or W do O:=random(14);
    R:=random(10);
    while R = S or W or O do R:=random(10);
    
        A[i]:=-10+S;
        write (A[i]:4,'   ');
        B[i]:=-10+W;
        write (B[i]:4,'   ');
        C[i]:=-10+O;
        write (C[i]:4,'   ');
        D[i]:=-10+R;
        writeln (D[i]:4,'   ');
        
      
    end;
    for i := 1 to m do
    summA:=summA+A[i];
    srtA:=summA/4;
    write (' ',summA);
    summB:=summB+B[i];
    srtB:=summB/4;
    write ('     ',summB);
    summC:=summA+C[i];
    srtC:=summC/4;
    write ('     ',summC);
    summD:=summD+D[i];
    srtD:=summD/4;
    write ('     ',summD);
 
end.



0



Хитрая блондиночка $)

1471 / 986 / 399

Регистрация: 21.12.2015

Сообщений: 3,785

27.04.2016, 20:34

2

Цитата
Сообщение от damka_00
Посмотреть сообщение

for i := 1 to m do begin

В этот цикл нельзя счетчиком передавать вещественное число. Либо делай i целочисленным, либо не используй for.



0



damka_00

0 / 0 / 0

Регистрация: 29.03.2015

Сообщений: 94

27.04.2016, 20:55

 [ТС]

3

Я уже и сам додумался сделать i целочисленным ,но спасибо за ответ.И как закрыть тему?

Добавлено через 13 минут
Другая проблема,он вычисляет неверное среднее значение

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 program Hw;
const
    m = 3;
 
var
    A: array[1..3] of integer;
    B: array[1..3] of integer;
    C: array[1..3] of integer;
    D: array[1..3] of integer;
    S: integer;
    W: integer;
    O: integer;
    R: integer;
    summA:real;
    summB:real;
    summC:real;
    summD:real;
    i: integer;
    srtA:real;
    srtB:real;
    srtC:real;
    srtD:real;
 
begin
    for i := 1 to m do begin
    S:=random(12);
    W:=random(57);
    while W = S do W:=random(57);
    O:=random(14);
    while O = S or W do O:=random(14);
    R:=random(10);
    while R = S or W or O do R:=random(10);
    
        A[i]:=S;
        write (A[i]:4,'   ');
        B[i]:=W;
        write (B[i]:4,'   ');
        C[i]:=O;
        write (C[i]:4,'   ');
        D[i]:=R;
        writeln (D[i]:4,'   ');
        
      
    end;
    for i := 1 to m do
    summA:=summA+A[i];
    srtA:=summA/3;
    write (' ',srtA);
    summB:=summB+B[i];
    srtB:=summB/3;
    write ('     ',srtB);
    summC:=summA+C[i];
    srtC:=summC/3;
    write ('     ',srtC);
    summD:=summD+D[i];
    srtD:=summD/3;
    write ('     ',srtD);
 
end.
 
[size="1"][color="grey"][I]Добавлено через 24 секунды[/I][/color][/size]
Другая проблема,он вычисляет неверное среднее значение  
 
 
 
 program Hw;
const
    m = 3;
 
var
    A: array[1..3] of integer;
    B: array[1..3] of integer;
    C: array[1..3] of integer;
    D: array[1..3] of integer;
    S: integer;
    W: integer;
    O: integer;
    R: integer;
    summA:real;
    summB:real;
    summC:real;
    summD:real;
    i: integer;
    srtA:real;
    srtB:real;
    srtC:real;
    srtD:real;
 
begin
    for i := 1 to m do begin
    S:=random(12);
    W:=random(57);
    while W = S do W:=random(57);
    O:=random(14);
    while O = S or W do O:=random(14);
    R:=random(10);
    while R = S or W or O do R:=random(10);
    
        A[i]:=S;
        write (A[i]:4,'   ');
        B[i]:=W;
        write (B[i]:4,'   ');
        C[i]:=O;
        write (C[i]:4,'   ');
        D[i]:=R;
        writeln (D[i]:4,'   ');
        
      
    end;
    for i := 1 to m do
    summA:=summA+A[i];
    srtA:=summA/3;
    write (' ',srtA);
    summB:=summB+B[i];
    srtB:=summB/3;
    write ('     ',srtB);
    summC:=summA+C[i];
    srtC:=summC/3;
    write ('     ',srtC);
    summD:=summD+D[i];
    srtD:=summD/3;
    write ('     ',srtD);
 
end.



0



capricornus CF

318 / 208 / 162

Регистрация: 08.12.2015

Сообщений: 863

27.04.2016, 22:35

4

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
program Hw;
 
const
  m = 3;
 
var
  A, B, C, D: array[1..3] of integer;
  S, W, O, R, i: integer;   
  summA, summB, summC, summD, srtA, srtB, srtC, srtD: real;
 
begin
  for i := 1 to m do 
  begin
    S := random(12);
    W := random(57);
    while W = S do W := random(57);
    O := random(14);
    while O = S or W do O := random(14);
    R := random(10);
    while R = S or W or O do R := random(10);
    
    A[i] := S;
    write(A[i]:4, '   ');
    B[i] := W;
    write(B[i]:4, '   ');
    C[i] := O;
    write(C[i]:4, '   ');
    D[i] := R;
    writeln(D[i]:4, '   ');    
  end;
  
  for i := 1 to m do
  begin
    summA := summA + A[i];
    summB := summB + B[i];
    summC := summC + C[i];
    summD := summD + D[i];
  end;
  
  srtA := summA / 3;
  write(' ', srtA);  
  srtB := summB / 3;
  write('     ', srtB);  
  srtC := summC / 3;
  write('     ', srtC);  
  srtD := summD / 3;
  write('     ', srtD);
  
end.



0



ПАСКАЛЬ. Выдает ошибку в 10 строке «Ожидался порядковый тип». Как исправить?
.
.
.
program SOCHET;
var a, b, c, n, i, j, l: real;
var factorial, factorial1, factorial2: longint;
begin
writeln (‘Введите число, из которого высчитывается число сочетаний’);
readln (a);
writeln (‘Введите число, по которому высчитывается число сочетаний’);
readln (b);
factorial := 1;
for i:=2 to a do
factorial := factorial * i;
a:=factorial;
factorial1 := 1;
for j:=2 to b do
factorial1 := factorial1 * j;
b:= factorial1;
factorial2 := 1;
for l:=2 to (a-b) do
factorial2 := factorial2 * l;
c:=factorial2;
n:=a/b*c;
writeln (‘Число сочетаний равно ‘, n);
end.


vintt:
Хоть код бы кинул…

Ответы

Ответ:

В циклах не должно быть переменных с плавающей запятой (Типом real)

Меняй их на целое (integer;)

Объяснение:

Интересные вопросы

Предмет: Физика,
автор: celdrick123

Формулировка задачи:

Program1.pas(6) : Ожидался порядковый тип

program name;
var
y,x,k : real;
begin
var a:=1.45;
for x:=1 to x<=1.8 do
if (a<=x) then
begin 
for k:=1 to k<10 do
y:=exp(k*ln(a))*exp(k*ln(x));
Inc(k);
end;
x:=x+0.1;
end.

Как решить такую проблему? Срочно нужно решить. Спасибо заранее)

Код к задаче: «Ошибка: Ожидался порядковый тип»

textual

const a=1.45;
var y,x : real;
    k:integer;
begin
x:=1;
while x<=1.8 do
 begin
  if a<=x then
   begin
    for k:=1 to 10 do
    y:=exp(k*ln(a))*exp(k*ln(x));
   end;
  x:=x+0.1;
 end;
end.

Полезно ли:

5   голосов , оценка 4.400 из 5


5

шибку пожалуйста, я сам не могу понять, где она……..

program zadanie3;
var x:real;
begin
x:=0;
for x:=15 to 30 do
begin
x:=x+0.5;
end;
writeln(‘x=’,x);

end.

1 ответ:



0



0

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

Читайте также


Ваш Ответ На Вопрос

———————————

Сочинение «Мышь компьютерная – помощница»

Компьютерная мышка – маленький приборчик с «хвостиком-проводом», который значительно облегчает человеку работу на компьютере. Изначально мышка называлась не как-нибудь, а «манипулятором графической информации». Собственно, «манипулятором типа мышь» она и зовется по сей день.

Мышкой устройство зовется «потому что серая», потому что форма прибора напоминает мышиное тельце. Первая отечественная мышка, правда, была треугольной, а шарик внутри – цельнометаллическим! И напоминала эта штука по размерам больше не мышку, а крысу! Потому что была в три раза больше привычного нам сегодня прибора, «мышки на коврике».

Мышка в компьютере практически заменяет человеческую руку. Она открывает «окна», нажимает на кнопки, перетаскивает объекты, раскрашивает, рисует, сворачивает и разворачивает проигрыватели музыки и видео. Такова «умная мышь»!

Бывают мышки, встроенные в корпус компьютера. Например, нажимаешь кнопочку на боку ноутбука, а оттуда выскакивает на гибкой штанге маленькая встроенная мышка-зверушка! Просто шайтан-машина, как у нас в классе говорят!

Есть мышки беспроводные, есть специальные игровые, есть с дополнительными суперфункциями, а еще существуют рабочие для программистов. Наборщиков текстов и журналистов! Устаревшие мышки сейчас уже хранятся в музеях компьютерной техники. Казалось бы, только вчера компьютеры появились у нас, а уже ведь создаются их музеи! Один такой «Кибермузей» работает в подмосковном городе Муроме

———————————

<span><span>
Type
    
  Song = Record

  Naz : String [ 40 ];

  Stil : String [10];
  Dl : Real;
    
End;

</span></span><span><span>
Var

  Massiv : ARRAY   [ 1 . .10 ]   OF   Song;

</span></span>  i, N : Short;

 <span><span>- Тогда —

FOR   i := 1   TO   N    DO    WITH     Massiv [ i ]     DO
</span>
Begin

Write ( ‘ Введите название песни — ‘ );

<span>Readln ( Naz );
</span></span>Write ( ‘ Введите стиль песни — ‘ );
 
Readln ( Stil );<span>
Write ( ‘ Укажите длительность песни — ‘ );

Readln ( Dl );

End;

</span>

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

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

3. В цикле while условие ставится в начале, а в repeat в конце. То есть repeat 100% пройдет хотябы 1 раз, а while может и ни разу.

4. В заголовке ставится условие. Пока оно выдает true, цикл будет повторяться. На счёт предпочтительности сложнее. Я бы сказала, что практически всегда предпочтительнее while, тк за всю свою практику лично мне хорошо если раз 5 пришлось использовать repeat. В общем предпочтительнее всегда использовать while за исключением некоторых очень редких случаев, когда с его помощью невозможно решить поставленную задачу (т.е. необходимо хотябы одно повторение).

Хотя если сравнивать с циклом for, то for чаще всего используется при наращивании управляющей переменной численного типа. То есть while часто используется, когда управляющая переменная булева типа.

5. Описывается прямо в теле цикла.

6. Тут мне сложно ответить. Я так понимаю, у вас речь про Pascal, а я могу только в C++ и Java. В этом вопросе вроде есть различия.

Н16
1) 101010+1101=110111
2) 1010+1010=10100
3) 10101+111=11100

н17
1) 1010*11=11110
2) 111*101=100011
3) 1010*111=1000110

н19
1) (1111101(2)+AF(16))/36(8) = 125(10)+175(10)/30(10) = 10(10)
2) 125(8)+101(2)*2A(16)-141(8) =  85(10)+5(10)*42(10)-97(10) = 198(10)

//PascalABC.NET
//Версия 3.3, сборка 1634
begin
var n:=abs(ReadInteger);
var a:=n.ToString.Select(x->x.ToDigit).Where(t->t mod 3=0);
if a.Count=0 then write(‘нет’) else write(a.Aggregate(Real(1),(x,y)->x*y));
end.

строке перед х. Исправьте ошибку пожалуйста, я сам не могу понять, где она…….. program zadanie3; var x:real; begin x:=0; for x:=15 to 30 do begin x:=x+0.5; end; writeln(‘x=’,x); end.

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

Понравилась статья? Поделить с друзьями:
  • Как исправить ошибку в отчетности в пфр
  • Как исправить ошибку в паскале встречено var а ожидалось
  • Как исправить ошибку в отчете сзв тд в сбис
  • Как исправить ошибку в паскале writeln
  • Как исправить ошибку в отчете о движении капитала