С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
akon93
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 16
1

Ошибка при компилировании

31.05.2012, 02:19. Просмотров 529. Ответов 4
Метки нет (Все метки)

при компиляции выдало ошибки
error: illegal expression
syntax error: ; expected but identifier Max found

Исходный код
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
uses crt;
const m=16;
      n=15;
type mtr=array[1..m,1..n] of real;
{функция нахождения среднего в центральном секторе}
function Sred(a:mtr):real;
var i,j,k,p:byte;
    s:real;
begin
s:=0;{сумма}
k:=0;{кол. эл-тов}
p:=0;{расст. от среднего столбца}
i:=3;{с 3 строки}
while i<=m-2 do{до минус 2 снизу}
 begin
  for j:=n div 2+1-p to n div 2+1+p do{от слева до справа}
   begin
    s:=s+a[i,j];{считаем сумму и количество}
    k:=k+1;
   end;
  if i mod 2=0 then{если четная строка}
   begin
    if i<m div 2 then p:=p+1{до середины увеличиваем расст.}
    else p:=p-1;{ниже середины убавляем}
   end;
  i:=i+1;{след. строка}
 end;
Sred:=s/k;{значение функции}
end;
{функция нахождения максимального}
function Max(a:mtr):real;
var i,j:byte;
    mx:real;
begin
mx:=a[1,1];
for i:=1 to m do
for j:=1 to n do
if a[i,j]>mx then mx:=a[i,j];
Max:=mx;
end;
{процедура замены элементов, входные параметры макс и сред, на что менять}
procedure Zamena(var a:mtr;mx,sr:real);
var i,j,p1,p2,p3,p4:byte;
begin
p1:=1;{первая позиция в строке, пока=1}
p2:=n div 2+1;{вторая, в середине}
p3:=n div 2+1;{третья там же}
p4:=n;{четвертая в конце строки}
i:=1;{от первой строки}
while i<=m do{до последней}
 begin
  for j:=1 to n do
  if (j=p1)or(j=p4) then a[i,j]:=1{если первая или последняя, пишем 1}
  else if(j=p2)or(j=p3) then a[i,j]:=0 {вторая и 3, пишем 0}
  {в рлмбе между 1,2,3 и 4 пишем среднее}
  else if(j>p1)and(j<p4)and(j>p2)and(j<p3) then a[i,j]:=sr
  else a[i,j]:=mx;{остальное пишем макс.}
  if i mod 2=0 then{на четных строках изменяем значения позиций}
   begin
    inc(p1);{вправо}
    dec(p2);{влево}
    inc(p3);
    dec(p4);
   end;
  i:=i+1;{след. строка}
 end;
end;
 
var a:mtr;
    i,j:integer;
    mx,sr:real;
begin
clrscr;
randomize;
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=10*random+10.5;{заполним матрицу числами от 10.5}
    write(a[i,j]:5:1); {до 20.5, чтобы отличались визуально от 0.0 и 1.0}
   end;
  writeln;
 end;
writeln;
mx:=Max(a);
writeln('Максимальный элемент матрицы=',mx:0:1);
sr:=Sred(a);
writeln('Среднее арифметическое центрального сектора=',sr:0:1);
write('Нажмите Enter для продолжения');
readln;
Zamena(a,mx,sr);
writeln('Матрица после замены:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:5:1);
  writeln;
 end;
write('Нажмите Enter для выхода');
readln
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 02:19
Ответы с готовыми решениями:

Ошибка при переводе числа из десятичной в двоичную и при сложении двоичных чисел
Добрый вечер. Написал код, но в нем ошибка при переводе числа из десятичной в двоичную и при...

Ошибка при компиляции
Помогите исправить ошибку ввода при компиляции, программа на составление уравнения методом итераций...

Ошибка при делении
Здравствуйте, уважаемые форумчане. Имеется вопрос Во фрагменте кода (см. ниже) выдается ошибка...

Ошибка при компиляции
Надо что б считало етот пример,вот что у меня получилось,но выдает ошибку,перед етим выхзодила...

Ошибка при компиляции
Помогите понят что нужно добавить в код, чтоб не было ошибки при компиляции. USES Graph; VAR...

4
DaskOFF
112 / 112 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
31.05.2012, 03:17 2
все в порядке, у меня компилировалась
1
Миниатюры
Ошибка при компилировании  
akon93
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 16
31.05.2012, 13:58  [ТС] 3
Теперь почему-то вылетает ошибка program ... exited with exitcode = 201
В чем может быть проблема?
0
DaskOFF
112 / 112 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
31.05.2012, 14:12 4
если код меняли выложите с изменениями
0
akon93
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 16
31.05.2012, 14:59  [ТС] 5
да вроде не менял, вот он еще раз
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
uses crt;
const m=16;
      n=15;
type mtr=array[1..m,1..n] of real;
{функция нахождения среднего в центральном секторе}
function Sred(a:mtr):real;
var i,j,k,p:byte;
    s:real;
begin
s:=0;{сумма}
k:=0;{кол. эл-тов}
p:=0;{расст. от среднего столбца}
i:=3;{с 3 строки}
while i<=m-2 do{до минус 2 снизу}
 begin
  for j:=n div 2+1-p to n div 2+1+p do{от слева до справа}
   begin
    s:=s+a[i,j];{считаем сумму и количество}
    k:=k+1;
   end;
  if i mod 2=0 then{если четная строка}
   begin
    if i<m div 2 then p:=p+1{до середины увеличиваем расст.}
    else p:=p-1;{ниже середины убавляем}
   end;
  i:=i+1;{след. строка}
 end;
Sred:=s/k;{значение функции}
end;
{функция нахождения максимального}
function Max(a:mtr):real;
var i,j:byte;
    mx:real;
begin
mx:=a[1,1];
for i:=1 to m do
for j:=1 to n do
if a[i,j]>mx then mx:=a[i,j];
Max:=mx;
end;
{процедура замены элементов, входные параметры макс и сред, на что менять}
procedure Zamena(var a:mtr;mx,sr:real);
var i,j,p1,p2,p3,p4:byte;
begin
p1:=1;{первая позиция в строке, пока=1}
p2:=n div 2+1;{вторая, в середине}
p3:=n div 2+1;{третья там же}
p4:=n;{четвертая в конце строки}
i:=1;{от первой строки}
while i<=m do{до последней}
 begin
  for j:=1 to n do
  if (j=p1)or(j=p4) then a[i,j]:=1{если первая или последняя, пишем 1}
  else if(j=p2)or(j=p3) then a[i,j]:=0 {вторая и 3, пишем 0}
  {в рлмбе между 1,2,3 и 4 пишем среднее}
  else if(j>p1)and(j<p4)and(j>p2)and(j<p3) then a[i,j]:=sr
  else a[i,j]:=mx;{остальное пишем макс.}
  if i mod 2=0 then{на четных строках изменяем значения позиций}
   begin
    inc(p1);{вправо}
    dec(p2);{влево}
    inc(p3);
    dec(p4);
   end;
  i:=i+1;{след. строка}
 end;
end;
 
var a:mtr;
    i,j:integer;
    mx,sr:real;
begin
clrscr;
randomize;
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=10*random+10.5;{заполним матрицу числами от 10.5}
    write(a[i,j]:5:1); {до 20.5, чтобы отличались визуально от 0.0 и 1.0}
   end;
  writeln;
 end;
writeln;
mx:=Max(a);
writeln('Максимальный элемент матрицы=',mx:0:1);
sr:=Sred(a);
writeln('Среднее арифметическое центрального сектора=',sr:0:1);
write('Нажмите Enter для продолжения');
readln;
Zamena(a,mx,sr);
writeln('Матрица после замены:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:5:1);
  writeln;
 end;
write('Нажмите Enter для выхода');
readln
end.
Добавлено через 46 минут
Проблема решена, спасибо Puporev и DaskOFF за помощь
0
31.05.2012, 14:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 14:59

Ошибка при выполнии
Народ подскажите пожалусто как решить,написал что то неполучается вот что у меня вышло program...

Ошибка в при компиляции.
program summa_ab; uses crt; var a, b, rezult : integer; BEGIN clrscr

Ошибка при компиляции
Подскажите что делать. Текст ошибки: &quot;Error: Compiler exited with error 101 at addr 004DC724&quot; И...


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

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

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