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

ilyashis

2 / 0 / 0

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

Сообщений: 137

1

Ошибка: ожидался идентификатор

13.12.2011, 20:11. Показов 45530. Ответов 16

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


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

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
var
  a:array of array of Integer;
  n,x,i,j:integer;
begin
   Write('N='); Readln(n);
   SetLength(a,n,n);
   x:=n;
 
   for i:=0 to n-1 do
    begin
      for j:=0 to n do
        begin
          if (x>n) then a[i,j]:=0
          else
           begin
            a[i,j]:=x;
            x:=x+1;
           end;
        end;
      x:=n-i-1;
    end;
   for i:=0 to n-1 do
   begin
     for j:=0 to n-1 do
     begin
       write(a[i,j],' ');
     end;
   Writeln;
   end;
Readln;
end.



0



Programming

Эксперт

94731 / 64177 / 26122

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

Сообщений: 116,782

13.12.2011, 20:11

Ответы с готовыми решениями:

Ошибка:Ожидался идентификатор
type
PTClient = ^TClient;
TClient = object;

constructor create(value: integer);

Ошибка «ожидался идентификатор»
Шифр состоит из двух частей: зашифрованного сообщения и ключа к нему. Зашифрованное сообщение и…

Встречено ‘for’, а ожидался идентификатор
Помогите пожалуйста найти и исправить ошибки в приведенном коде. Написанный от руки код мне дали,…

Ожидался идентификатор, но C не обнаружено
Program M;
Type
product=(milk,sugar,tea,salt,butter,eggs,marmalade,bacon);
mnprod=set of…

16

Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:16

2

a:array of array of Integer;

на сколько я понял вы хотите двумерный массив, то он задается вот так

Pascal
1
a:array[1..100,1..100] of integer;

а ваша запись является неверной, также неверна запись

Pascal
1
2
3
for i:=0 to n-1 do
    begin
      for j:=0 to n do

должно быть так, я думаю

Pascal
1
2
3
for i:=1 to n-1 do
    begin
      for j:=1 to n do



1



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:20

 [ТС]

3

да
но появилась ошиька — неверное количество фактических параметров (вот здесь) — SetLength(a,n,n);



0



13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:23

4

попробуйте удалить эту строчку



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:25

 [ТС]

5

»*Ошибка: 0 — выход за границы диапазона изменения индекса 1..1000 (p.pas, строка 27)



0



Почетный модератор

7966 / 3937 / 2464

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

Сообщений: 5,377

13.12.2011, 20:27

6

Steacher, отсчет элементов массива может быть и от 0, и даже от отрицательного числа, главное, чтобы индексы были целыми, хотя, конечно, традиционным считается отсчет от 1

Добавлено через 1 минуту
ilyashis, было бы легче, если бы выложили задание…



0



Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:31

7

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
  a:array[1..100,1..100] of Integer;
  n,x,i,j:integer;
begin
   Write('N='); Readln(n);
 
   x:=n;
 
   for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          if (x>n) then a[i,j]:=0
          else
           begin
            a[i,j]:=x;
            x:=x+1;
           end;
        end;
      x:=n-i-1;
    end;
   for i:=1 to n do
   begin
     for j:=1 to n do
     begin
       write(a[i,j],' ');
     end;
   Writeln;
   end;
end.

вам вот так нужно?

Добавлено через 1 минуту
КонецСвета, не знал, т.е если я буду задавать массив a:array[-10..10] of integer; он будет работать?



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:34

 [ТС]

8

сформировать квадратную матрицу n по заданному образцу

Изображения

 



0



13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:35

9

добавил решение в последнее сообщение.



0



Почетный модератор

7966 / 3937 / 2464

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

Сообщений: 5,377

13.12.2011, 20:35

10

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

КонецСвета, не знал, т.е если я буду задавать массив a:array[-10..10] of integer; он будет работать?

легко, это одно из типичных заданий, но не здесь, еще встретишь…



0



Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:35

11

подождите, там есть маленькая ошибочка, вот исправленный вариант

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
  a:array[1..100,1..100] of Integer;
  n,x,i,j:integer;
begin
   Write('N='); Readln(n);
 
   x:=n;
 
   for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          if (x>n) then a[i,j]:=0
          else
           begin
            a[i,j]:=x;
            x:=x+1;
           end;
        end;
      x:=n-i;
    end;
   for i:=1 to n do
   begin
     for j:=1 to n do
     begin
       write(a[i,j],' ');
     end;
   Writeln;
   end;
end.



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:42

 [ТС]

12

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

ну тогда решение, 2 сообщениями выше.

там же с 0 начинается

Добавлено через 3 минуты
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT.
Написать программу, которая:
1)выводит текст на экран дисплея;
2)определяет количество предложений текста и количество слов в каждом предложении;
3)по нажатию произвольной клавиши поочередно выделяет предложение текста, а в выделенном предложении — поочередно все слова.

Добавлено через 19 секунд
помогите вот с этим



0



КонецСвета

Почетный модератор

7966 / 3937 / 2464

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

Сообщений: 5,377

13.12.2011, 20:42

13

ilyashis, разреши предложить тебе другое решение первой задачи (а вот со второй не помогу…)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
var a: array [1..100,1..100] of integer;
   n,i,j: integer;
begin
write('n=');
readln(n);
a[1,1]:=n;
for i:=1 to n do
    begin
    for j:=1 to n do
        begin
        if i=j then a[i,j]:=n else
           if (i>1) and (i>j) then a[i,j]:=a[i-1,j]-1 else
              a[i,j]:=0;
        write(a[i,j]:3);
        end;
    writeln;
    end;
end.



1



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 20:44

 [ТС]

14

спасибо
почему со второй не поможешь?



0



КонецСвета

13.12.2011, 20:48

Не по теме:

файлы, как и прочая «высшая математика» пока за пределами моей компетенции…



0



Steacher

13 / 13 / 13

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

Сообщений: 35

13.12.2011, 20:51

16

Имя файла должно иметь расширение DAT.
Написать программу, которая:
1)выводит текст на экран дисплея;
2)определяет количество предложений текста и количество слов в каждом предложении;
3)по нажатию произвольной клавиши поочередно выделяет предложение текста, а в выделенном предложении — поочередно все слова.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt;
var f1:text; S:string;  i,c:integer;
begin
assign(f1,'D:Documents and SettingsAdminРабочий столТекстовый документ (2).txt'); // тут свой пусть к файлу
reset(f1);
readln(f1,s);
writeln(s);
writeln;
for i:=1 to length(s) do
  if s[i]='.' then c:=c+1;
close(f1);
write('В тексте ',c,' предложений');
 
end.

последний пункт что то не получается сделать.



0



2 / 0 / 0

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

Сообщений: 137

13.12.2011, 21:03

 [ТС]

17

спасибо

Добавлено через 4 минуты
было б круто если 3-й пункт была



0



Начало. Возможные ошибки

Все используемые переменные должны быть предварительно описаны с помощью ключевого слова var (внутри блока begin/end или, что обычно хуже, в разделе описаний вначале программы).

Отсутствующая ;

Очень частая ошибка у начинающих. Курсор, как правило, позиционируется в начале следующей строки.

Несовместимость типов при присваивании

Безболезненно можно присваивать только данные одного типа. Если данные — разных типов, то в редких случаях можно преобразовать данные одного типа в данные другого. Например, целое можно преобразовать в вещественное, а символ — в строку. Обратные преобразования не допускаются.

Чтобы не ошибаться в подобных простых случаях в Паскале есть следующая краткая форма объявления и инициализации переменной:

Отсутствие закрывающего апострофа литеральной строки

Закрыть апостроф надо на той же строке, где расположен открывающий апостроф

Ошибки расстановки запятых и апострофов при выводе строк и выражений

Слишком много запятых и апострофов рядом, потому начинающие часто путаются  :) Надо уяснить правила:

  • запятые разделяют разные элементы вывода
  • все, что находится в апострофах, будет выведено на экран без изменений

Ошибка ввода

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

Аналогичный фрагмент в более современном и предпочтительном синтаксисе:

Ошибка неинициализированной переменной

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

Деление на 0

Если во время выполнения программа выполнит деление на 0, то она завершится с ошибкой.

Ожидается идентификатор

Оператор в качестве своего операнда требует идентификатор какого-либо элемента (класса, интерфейса, переменной и т.п.).

Способ устранения

Необходимо указать распознаваемый идентификатор, а также проверить порядок следования операндов.

Пример

При компиляции указанного кода на строке «i := Integer.;» будет сгенерирована ошибка «Ожидается идентификатор». Для разрешения ошибки необходимо дописать допустимый идентификатор метода, например «Parse».

Что значит ожидался идентификатор в паскале

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск

Страница 1 из 3 1 2 3 Следующая >
psycho-coder
Посмотреть профиль
Найти ещё сообщения от psycho-coder

ЛЮДИ решите, плиз, а то я не совсем это понимаю

80. Дано действительное число x. Вычислить
3 5 7 9 11 13
x-x /3!+x /5!-x /7!+x /9!-x /11!+x /13!

Жека-старший
Посмотреть профиль
Найти ещё сообщения от Жека-старший

80. Дано действительное число x. Вычислить
3 5 7 9 11 13
x-x /3!+x /5!-x /7!+x /9!-x /11!+x /13!

Жека-старший
Посмотреть профиль
Найти ещё сообщения от Жека-старший

ещё 2
200. Даны целые числа a, n, x1. xn (n>0). Определить, каким
по счету идет в последовательности x1. xn член равный а. Если
такого члена нет, то ответом должно быть число 0.

201а. Даны натуральное число n, действительные числа а1. аn.
Получить max(a1. an).

паскаль выдаёт ошибку «ожидался идентификатор»…

program
var x1,y1,x2,y2,x3,y3,a,b,c,p,h,m,s:real;
begin
a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
b:=sqrt(sqr(x1-x3)+sqr(y1-y3));
c:=sqrt(sqr(x2-x3)+sqr(y2-y3));
p:=(a+b+c)/2;
h:=2*sqrt(p*(p-a)*(p-b)*p-c))/2;
m:=sqrt(2*sqr(b)+2*sqr(c)-sqr(a))/2;
s:=sqrt(p*(p-a)*(p-d)*(p-c));
end.

  • ошибка
  • паскаль

Ответ оставил Гость

Ну во-первых, после program должно идти название программы например program abc; и обязательно за последней буквой ; , во-вторых, после read всегда пишут переменные в скобках и ; после скобок, в -третьих ,где строка с с должен стоять знак присваивания : а не ;, в -четвёртых, после writeln опять скобки с указанием переменных и ; .
вроде всё

Оцени ответ

uses
  sysutils; 
var
  code, key : string;
  n : byte;
procedure Init;
var
  fin : text; tmp : string;
  y:integer;
begin
  Assign(fin, 'input3.txt'); reset(fin);
  readln(fin, n);
  for y := 1 to n do
    begin
      readln(fin, tmp);
      code := code + tmp;
    end;
  for y := 1 to n do
    begin
      readln(fin, tmp);
      key := key + tmp;
    end;
  close(fin);
end;
 
procedure Solve;
var
  res: string; fout: text;
  i:integer;
begin
  Setlength(res, n*n);
  for i := 1 to n*n do
    begin
      if key[i] in ['0'..'9'] then
        res[StrToInt(key[i])+1] := code[i];
      if key[i] in ['A'..'Z'] then
        res[ord(key[i])-ord('A')+11] := code[i];
    end;
  assign(fout, 'otput3.txt');ReWrite(fout);
  writeln(fout, res); Close(fout);
end;
 
BEGIN
  Init;Solve;
END.

Понравилась статья? Поделить с друзьями:
  • Как найти языковые настройки
  • Как найти биссектрису треугольника 7 класс геометрия
  • Как в виндовс 7 найти автозагрузку программ
  • Если ошибка в электронном билете ржд как исправить
  • Друзья xbox как найти друзей