Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов 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:44   #2
SuPeR XaKer
Форумчанин
 
Аватар для SuPeR XaKer
 
Регистрация: 23.09.2010
Сообщений: 4,853
Репутация: 2812 (1942)
Лучшие ответы: 11
Не знаю что ты пытаешься сделать но вот:
Код 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. Программирование с использованием языка Pascal (Паскаль). Помощь в решении задач.
строки Pascal
Сам пробывал ничего не получлось! 1.дана строка, изображающая целое число. Вывести сумму этого числа. 2.Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова (разделенные одним пробелом), но расположенные в алфавитном...
поиск и замена элементов матрицы Pascal
Доброго времени суток! задали в коледже контрольную из 12 задач все кроме последней решил. если кто может,пожалуйста подмагните решить: Если в столбцах, встретился элемент, равный сумме первых двух элементов текущего столбца, то удалите строки, в которых они находятся. Удалите столбцы, в...
Старый 08.11.2010, 02:23  [ТС]   #3
Oman
Новичок
 
Регистрация: 07.11.2010
Сообщений: 28
Репутация: 4 (4)
Цитата Сообщение от 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
Форумчанин
 
Аватар для Roof
 
Регистрация: 03.11.2010
Сообщений: 394
Репутация: 148 (148)
Лучшие ответы: 4
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
Google
Объявления
Error 39: Ordinal expression expected / Pascal (Паскаль)

Старый 08.11.2010, 10:15   #5
Mad_Dog
Фрилансер
 
Аватар для Mad_Dog
 
Регистрация: 01.06.2010
Сообщений: 1,315
Репутация: 435 (416)
Лучшие ответы: 1
А не проще ли вот все это

Код 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
Первая строка с названием программы кагбе намекает на то, что это лабораторка, скорее всего на использование case of, исходя из текста задачи.
Старый 30.12.2010, 20:19   #7
Blizzart
Новичок
 
Регистрация: 29.12.2010
Сообщений: 18
Репутация: 0 (0)
У меня такая же ошибка, только с 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
Форумчанин
 
Аватар для SuPeR XaKer
 
Регистрация: 23.09.2010
Сообщений: 4,853
Репутация: 2812 (1942)
Лучшие ответы: 11
Код 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)
Спасибо, что мне помогаете. Если говорить про книжку, то я читаю о php и js, а паскаль - это просто надо сделать и больше не возвращаться )) хотя 4 года назад я тоже так думал, а вот вернулся
Старый 23.11.2011, 22:11   #10
isq123
Новичок
 
Регистрация: 23.11.2011
Сообщений: 2
Репутация: 0 (0)
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
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
VBA Expected expression
здравствуйтек как записать в коде написать: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> то есть Selection.TypeText Text:="", что между кавычками? я знаю, что одни кавычки обрамляются ещё двумя кавычками а то меня преследует Expected...
Ципихович Эндрю
Free Pascal Error: Ordinal expression
procedure pr1(var mas:PTable; ns1,ns2:integer); var y,u:integer; c:TMas; begin for y:=1 to ns1 do c:=0;
RakhimBek
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);
J.sent
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;
voevodin
Pascal (Паскаль) Возникает ошибка: Ordinal type expected.
Доброе время суток :) Для решения одной из задач необходим массив размера {10}_{6} (миллион), тип элементов - longint. Возникает ошибка: Ordinal type expected. Есть выход, или необходимо придумать какой-либо другой метод хранения? Спасибо. Добавлено через 52 минуты Ап :-Добавлено через...
neske
Опции темы

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

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