Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > Форум Форум программистов > Форум Pascal (Паскаль)
Восстановить пароль Регистрация

Ответ Создать новую тему
 
07.11.2010, 18:41   #1
Oman
Новичок
Регистрация: 07.11.2010
Сообщений: 28
Репутация: 4 (4)
Error 39: Ordinal expression expected / Pascal (Паскаль)

______________________________________________________
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
Program lr3var21;
Var x,y:real;
Begin
Writeln('vvedite argument');
Readln(x);
Case x of 1..9999: y:=sqrt(x);
                      0: y:=sqrt(x);
           -9999..-1: begin x:=-x;
                                  y:=sqrt(x);
                          end;
Writeln(y);
Readln;
End.
_________________________________________________________

Что не так??
Пишет:
Нужно выражение перечисляемого типа (Error 39: Ordinal expression expected.)

Что это значит?
07.11.2010, 18:41
AdAgent
Объявления
07.11.2010, 18:44   #2
SuPeR XaKer
Форумчанин
Регистрация: 23.09.2010
Сообщений: 4,886
Репутация: 2823 (1953)
Лучшие ответы: 13
Error 39: Ordinal expression expected

Не знаю что ты пытаешься сделать но вот:
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Program lr3var21;
Var y:real;
x:integer;
Begin
Writeln('vvedite argument');
Readln(x);
Case x of
1..9999: y:=sqrt(x);
0: y:=sqrt(x);
-9999..-1:
begin
x:=-x;
y:=sqrt(x);
end;
end;
Writeln(y);
Readln;
End.
Другие темы раздела
строки Pascal
Сам пробывал ничего не получлось! 1.дана строка, изображающая целое число. Вывести сумму этого числа. 2.Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова (разделенные одним пробелом), но расположенные в алфавитном...
поиск и замена элементов матрицы Pascal
Доброго времени суток! задали в коледже контрольную из 12 задач все кроме последней решил. если кто может,пожалуйста подмагните решить: Если в столбцах, встретился элемент, равный сумме первых двух элементов текущего столбца, то удалите строки, в которых они находятся. Удалите столбцы, в...
08.11.2010, 02:23  [ТС]   #3
Oman
Новичок
Регистрация: 07.11.2010
Сообщений: 28
Репутация: 4 (4)
Error 39: Ordinal expression expected

Цитата Сообщение от SuPeR XaKer Посмотреть сообщение
Не знаю что ты пытаешься сделать но вот:
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Program lr3var21;
Var y:real;
x:integer;
Begin
Writeln('vvedite argument');
Readln(x);
Case x of
1..9999: y:=sqrt(x);
0: y:=sqrt(x);
-9999..-1:
begin
x:=-x;
y:=sqrt(x);
end;
end;
Writeln(y);
Readln;
End.
Как же может быть ошибка в фразе, наскоко я знаю там можно писать что угодно =\
Курсор то мигает перед of
Не знаю что ты пытаешься сделать...
Напишите программу, которая выводит сообщение о том, какое значение у квадратного корня в зависимости от значения аргумента (при отрицательном значении аргумента результат – комплексное число, если аргумент равен 0 (или 1), то результат также 0 (или 1), при положительном значении – результат положительный). В начале программы необходимо вывести список с вариантами значений аргумента с соответствующими номерами (аргумент меньше, больше или равен 0). Если введено число, не соответствующее номеру из списка, выведите сообщение об ошибке (используйте ветвь else).
08.11.2010, 04:30   #4
Roof
Форумчанин
Регистрация: 03.11.2010
Сообщений: 394
Репутация: 148 (148)
Лучшие ответы: 4
Error 39: Ordinal expression expected

2 Oman:
1) погляди внимательно. x - может быть только целочисленного, если ты его используешь как case x of. И в примере, который дал SuPeR XaKer:
Код Pascal
1
2
3
...
x:integer;
...
2) после всего блока case - всегда ставится end; - у тебя end; только один, который завершает предыдущий begin, но не case.
08.11.2010, 04:30
AdAgent
Объявления
08.11.2010, 10:15   #5
Mad_Dog
Фрилансер
Регистрация: 01.06.2010
Сообщений: 1,315
Репутация: 437 (418)
Лучшие ответы: 1
Error 39: Ordinal expression expected

А не проще ли вот все это

Код Pascal
1
2
3
4
5
6
7
8
9
Case x of
1..9999: y:=sqrt(x);
0: y:=sqrt(x);
-9999..-1:
begin
x:=-x;
y:=sqrt(x);
end;
end;
написать так
Код Pascal
1
y:=sqrt(abs(x));
08.11.2010, 12:44   #6
Ignhotep
Форумчанин
Регистрация: 01.04.2010
Сообщений: 86
Репутация: 6 (6)
Лучшие ответы: 1
Error 39: Ordinal expression expected

Первая строка с названием программы кагбе намекает на то, что это лабораторка, скорее всего на использование case of, исходя из текста задачи.
30.12.2010, 20:19   #7
Blizzart
Новичок
Регистрация: 29.12.2010
Сообщений: 18
Репутация: 0 (0)
Error 39: Ordinal expression expected

У меня такая же ошибка, только с integer не прокатывает.
В общем нужно определить, в зависимости от введенного знака, какое действие выполнять:
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program lab6_2;
var s,x,y:integer; selektor,z:string;
begin
WriteLn('Введите первое число');
ReadLn (x);
WriteLn('Введите второе число');
ReadLn (y);
WriteLn(x,'?',y);
WriteLn('Введите один из знаков *,+,-');
ReadLn (z);
case selektor of
z:=*: s:=x*y;
z:=+: s:=x+y;
z:=-: s:=x-y;
    else WriteLn('Ошибка. Повторите еще раз.');
end;
WriteLn (s);
readln;
end. 
добавил кавычки к знакам- не помогло
30.12.2010, 20:43   #8
SuPeR XaKer
Форумчанин
Регистрация: 23.09.2010
Сообщений: 4,886
Репутация: 2823 (1953)
Лучшие ответы: 13
Error 39: Ordinal expression expected

Код Pascal
1
2
3
4
5
6
case selektor of
'*': s:=x*y;
'+': s:=x+y;
'-': s:=x-y;
    else WriteLn('Ошибка. Повторите еще раз.');
end;
Код Pascal
1
selector:char;
Может стоит книжку открыть?
WriteLn('Введите один из знаков *,+,-');
ReadLn (z);
на
Код Pascal
1
2
WriteLn('Введите один из знаков *,+,-');
ReadLn (selector);
30.12.2010, 21:21   #9
Blizzart
Новичок
Регистрация: 29.12.2010
Сообщений: 18
Репутация: 0 (0)
Error 39: Ordinal expression expected

Спасибо, что мне помогаете. Если говорить про книжку, то я читаю о php и js, а паскаль - это просто надо сделать и больше не возвращаться )) хотя 4 года назад я тоже так думал, а вот вернулся
23.11.2011, 22:11   #10
isq123
Гость
Сообщений: n/a
Error 39: Ordinal expression expected / Pascal (Паскаль)

у меня такая же ошибка
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
var s:string;i,a,b:integer;
begin
writeln('Введите формулу');
readln(s);
for i:=1 to length(s) do
 if not(s[i] in ['0'..'9','a'..'z','A'..'Z','/','*','+','-','(',')'])
  then begin writeln('error');readln;halt;end
 else
  if s[i]='(' then a:=a+1
   else
    if s[i]=')' then b:=b+1;
 if a<>b then begin writeln('error');readln;halt;end
  else
for i:=1 to length(s) do
if s[i] in ['+)','-)','*)','/)','(/','(*','(+','(-','-+']  
then begin writeln('error');
else writeln('Формула правильная',s)
end.
Задание: вводится формула нужно проверить её на правильность(количиство скобок правильность символов и т.п)
ошибку выбивает тут
Код Pascal
1
['+)',
на запятой
23.11.2011, 22:11
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
Pascal: Ошибка Ordinal expression expected
Найдите ошибку, данная функция расположена в модуле function perevod(Row:string):string; // перевод строчных букв в заглавные var i:byte; begin for i:=1 to length(Row) do begin if Row in then Row:=UpCase(Row); if Row in then begin if ord(Row)<176 then Row:=chr(ord(Row)-32)...
Pascal (Паскаль) Sergey5318 09.12.2013 11:05
Free Pascal: ordinal expression expected
Нужно вычислить сколько высокосных лет было в ХХ ст, если значения высокосного года делиться на 4, не делиться на 100, и делиться на 400. Программу написал выдает ошибку: ordinal expression expected в строке 5,5 program goda; var i,k:real; begin k:=0; for i:= 1900 to 2000 do if (1 div 4)...
Free Pascal prog-hak 16.06.2013 14:10
Lazarus: Оператор Case. Error: Ordinal expression expected
Столкнулась с проблемой, суть которой не пойму. Почему одна и та же процедура, одного и того же проекта в одном случае проходит компилятор, а в другом нет. Когда я собираю проект для платформы Windows (компилирую в Windows версии лазаруса), то компиляция проходит без всяких проблем, когда Собираю...
Lazarus dilloYa 31.01.2013 22:16
Turbo Pascal: Ordinal expression expected
Main.pas(7,5) Error: Ordinal expression expected Program zadacha340; var x,s,n:real; begin read(N); s:=0; for x:=1 to N do s:=s+(x/2); writeln(s);
Turbo Pascal J.sent 18.03.2012 22:30
Pascal: Ordinal expression expected
Здравствуйте. Программа - это задача суть которой в кодировании текста из input.txt Ошибку Ordinal expression expected устранить не могу. Помогите, пожалуйста program project1; Type mnog=set of char; procedure russian(n:integer;s:string); var mnr1,mnr2,mnr3,mnr4:mnog; i,k,p:integer;
Pascal (Паскаль) voevodin 18.12.2011 21:17
Опции темы

Текущее время: 09:36. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.