Пишет вот «Program1.pas(21) : Встречено ‘else’, а ожидался оператор»
program test;
var
sum: real;
percent: real;
period: integer;
profit: real;
result: real;
begin
writeln('Вычисление дохода по в кладу в банке');
writeln;
write('Сумма (руб.) ->');
readln(sum);
write('Срок вклада (дней) ->');
readln(period);
if sum > 5000 then
percent := 0.95;
else
pecent := 0.08;
profit := sum * percent/365 * period;
result := sum +profit;
writeln('Сумма в конце срока вклады: ',
result:6:2, руб.');
writeln('Доход: ', profit:6:2, ' руб.');
write('Для завершения работы нажмите <Enter>');
readln;
end.
почему?
-
Вопрос заданболее трёх лет назад
-
4287 просмотров
Пригласить эксперта
Как вы определили, что не работает?
У вас не Else не работает, а грамматических ошибок полно.
Не нужно ставить точку с запятой после первого
percent := 0.95
во втором pecent := 0.08; нужно писать percent а не pecent
в строке
writeln(‘Сумма в конце срока вклады: ‘,
result:6:2, руб.’);
у вас перед руб не хватает одинарной кавычки.
Неужели так сложно внимательнее быть?
if sum > 5000 then
percent := 0.95;
else
перед ‘else’ ‘;’ не ставится
-
Показать ещё
Загружается…
10 февр. 2023, в 02:20
3000 руб./за проект
10 февр. 2023, в 01:33
1500 руб./за проект
10 февр. 2023, в 00:54
2000 руб./в час
Минуточку внимания
program ideal; uses crt; var k, n, m, t, p, x, y, z, s, l, q, a, b, c, e, i, TTT:real; d:char; soglasie, sogl, formuly, zzz:integer; function FF(a,l:real):real; Begin l:=t*100; a:=p/l; k:=a*2; FF:=k; end; Begin Write('Ваше имя и фамилия: '); readln(d); // Приветствие Writeln('Здравствуйте! Уважаемая ', d); writeln('Считаю нужным заострить ваше внимание на том, что все данные, которые вы получите при использовании этой программы являются примерными.'); Writeln('Если вы хотите пройти тест введите 1, если нет, то 0.'); write('Ваш ответ: '); readln(soglasie); if soglasie=0 then writeln('Тогда я вынужден попрощаться!'); if soglasie=1 then Write('Ваш возраст: '); readln(e); write('Обхват бюста: '); readln(k); write('Обхват талии: '); readln(n); write('Обхват бедер: '); readln(m); write('Рост: '); readln(t); write('Вес: '); readln(p); write('Размер груди: '); readln(s); write('Длинна ног: '); readln(l); write('Размер ноги: '); readln(q); x:=k*m*t; y:=n*n*p; z:=x/y; a:=s*k*p; b:=l*q; c:=a/b; i:=z/c*100; writeln('Оценка красоты: ', round(i)); write('Хотите ли узнать, какой вес и рост нормален в вашем возрасте? да = 1, нет = 0'); readln(sogl); if sogl=0 then writeln(' '); if sogl=1 then writeln('Каким способом подсчета вы хотите воспользоваться?'); writeln('"Индекс массы тела" = 1'); writeln('"При помощи таблиц" = 2'); writeln('"Рост+возраст" = 3'); writeln('Все варианты последовательно = 0'); writeln('Ваш ответ: '); readln(formuly); if formuly=1 then write('Введите данное (', k, ') число еще раз: '); readln(TTT); if TTT<=18 then writeln('Ваш вес является недостаточным.'); if (TTT>18) and (k<=25) then writeln('Ваш вес вполне нормальный. Это значит, что нет смысла его сбрасывать, но и набирать не нужно. Держите показатель на одном и том же <уровне>.'); if (TTT>25) and (k<35) then writeln('Пора уже поработать с фигуркой, так как возрастает риск появления ожирения. Худейте, но делайте это без особого фанатизма!'); if TTT>=35 then writeln('Очень жаль, но у вас:. Ожирение! Необходима помощь и консультация специалистов.'); //нормальный рост при данном возрасте writeln('Нормальный рост в вашем возрасте (', e, ') составляет: '); if e=0 then writeln('до 74 см'); if e=1 then writeln('до 86.4 см'); if e=2 then writeln('до 98 см'); if e=3 then writeln('до 101 см'); if e=4 then writeln('до 104 см'); if e=5 then writeln('до 110.5 см'); if e=6 then writeln('до 118 см'); if e=7 then writeln('до 125 см'); if e=8 then writeln('до 131.6 см'); if e=9 then writeln('до 136.5 см'); if e=10 then writeln('до 142.5 см'); if e=11 then writeln('до 148.6 см'); if e=12 then writeln('до 155 см'); if e=13 then writeln('до 160.5 см'); if e=14 then writeln('до 164 см'); if e=15 then writeln('до 167 см'); if e=16 then writeln('до 169 см'); if e=17 then writeln('до 170 см'); // Нормальный вес при данном возрасте writeln('Нормальный вес, при вашем возрасте (', e, ') '); if e=0 then writeln('до 7.9 кг'); if e=1 then writeln('до 10.2 кг'); if e=2 then writeln('до 12.2 кг'); if e=3 then writeln('до 14 кг'); if e=4 then writeln('до 18.2 кг'); if e=5 then writeln('до 20.2 кг'); if e=6 then writeln('до 22.4 кг'); if e=7 then writeln('до 25 кг'); if e=8 then writeln('до 28.2 кг'); if e=9 then writeln('до 31.9 кг'); if e=10 then writeln('до 34.9 кг'); if e=11 then writeln('до 38.9 кг'); if e=12 then writeln('до 45.4 кг'); if e=13 then writeln('до 52.5 кг'); if e=14 then writeln('до 58 кг'); if e=15 then writeln('до 60.4 кг'); if e=16 then writeln('до 61.3 кг'); if e=17 then writeln('до 61.9 кг'); // Прощание writeln('На этом вынужден проститься, в следующих версиях программы вы сможете получать советы по корректировке фигуры.'); writeln(''); writeln(' '); writeln('<br>'); writeln('Все данные не являются исключительно точными'); end.
program kvadratn;
var A,B,C,x1,x2,D:integer;
begin;
Writeln(‘Дано уравнение вида Ax^2+Bx+C=0’);
Writeln(‘Задайте коэффициент A’);
Readln(A);
Writeln(‘Задайте коэффициент B’);
Readln(B);
Writeln(‘Задайте коэффициент C’);
Readln(C);
D:=B*B-4*A*C;
Write(‘Дискриминант равен: ‘);
Writeln(D);
x1:=((-B+sqrt(D))/2*A);
x2:=((-B-sqrt(D))/2*A);
Writeln(‘Корни: ‘);
if (D>=0) then writeln(x1); Writeln(x2);
else writeln(‘Корней нет’);
end.
Написал вот такую программку которая должна вычислять корни квадратного уравнения.
Но при запуске её, выдаёт ошибку и пишет что ожидался оператор и подчёркивает строчку «else writeln(‘корней нет’)
пожалуйста подскажите в чём проблема
Здесь легко и интересно общаться. Присоединяйся!
Ошибок море.
После begin и перед else точка с занятой недопустима.
Недопустимо присвоение целочисленным переменным чисел с плавающей запятой, а извлечение квадратного корня возвращает действительное значение.
Неверно написаны формулы вычисления корней x1 и x2.
Если дискриминант меньше нуля, то всё равно будет выполняться извлечение корня из этого отрицательного значения, что вызовет runtime ошибку.
program kvadratn;
var A,B,C,x1,x2,D:real;
begin
Writeln(‘Дано уравнение вида Ax^2+Bx+C=0’);
Writeln(‘Задайте коэффициент A’);
Readln(A);
Writeln(‘Задайте коэффициент B’);
Readln(B);
Writeln(‘Задайте коэффициент C’);
Readln(C);
D:=B*B-4*A*C;
Write(‘Дискриминант равен: ‘);
Writeln(D);
if D 0 then Writeln(x2);
end;
end.
1000лет и один день не программировал на паскале!
Посмотри третью строку снизу: после тhen два writeln, это допускается? Попробуй сделать один writeln или если тебе очень надо, составной оператор.
if (D>=0) then
begin
writeln(x1); Writeln(x2);
end;
else writeln(‘Корней нет’);
if D=0 then writeln(x1)
else if D>0
begin
Writeln(x1) ;
Writeln(x2) ;
end
else writeln(‘Корней нет’);
так правильнее будет . зачем тебе при D=0 выводить оба значения (они ведь одинаковые)
Пишет вот «Program1.pas(21) : Встречено ‘else’, а ожидался оператор»
- Вопрос задан более трёх лет назад
- 2665 просмотров
Как вы определили, что не работает?
У вас не Else не работает, а грамматических ошибок полно.
Не нужно ставить точку с запятой после первого
percent := 0.95
во втором pecent := 0.08; нужно писать percent а не pecent
в строке
writeln(‘Сумма в конце срока вклады: ‘,
result:6:2, руб.’);
у вас перед руб не хватает одинарной кавычки.
В прошлом, первом уроке о паскале мы обсудили структуру программы и самые первые операторы, а также служебные слова. Сегодня я расскажу про основные операторы, с помощью которых уже можно написать первую программу.
Первым, что мы рассмотрим — это оператор присваивания. Без этого оператора мы не сможем обойтись дальше.
Его функция — это присваивания значения переменной после каких либо действий или значения другой переменной.
X-это переменная, пусть она будет равна 2, в программе это будет выглядеть так:
Я думаю, что Вы уже заметили, что на деле она выглядит, как двоеточие со знаком равно (:=).
Операторы сложения, вычитания и умножения
На второе у нас пойдут операторы сложения, вычитания и умножения.
Сложение
С помощью данного оператора мы можем сложить два числа, в программе он пишется, как «+» без кавычек:
Тут мы переменной X присвоили 11, полученное сложением 5 и 6.
Вычитание
В этом операторе тоже ничего сложного нет, он выполняет вычитание двух чисел. В программе обозначается, как «-» без кавычек:
Выше мы x присвоили 3, полученное действием вычитания чисел 7 и 4.
Умножение
Данный оператор умножает два числа друг на друга, обозначается, как «*» также без кавычек:
В примере мы нашей переменной X присвоили число 16, полученное умножением восьми на два.
Вы уже заметили, что я написал не оператор деления, а операторы. Это связано с тем, что операторов деления — три, и все они работают по разному и выполняют разные действия.
1. Простое деление
Простое деление выполняется с помощью оператора вида /, он просто делит одно число на другое. Данный оператор работает только с типом real!
В примере мы x присвоили 9,6, посредством деления 48 на 5.
2. Целочисленное деление
Данное делит число только на цело, то есть при таком способе деления невозможно получить десятичную или периодическую дробь. В программе пишется, как «div» без кавычек. Данный оператор работает только с типом integer!
В данном примере x у нас будет равно в итоге 9, а не 9,6, как это должно получиться при нормальном обычном делении.
3. Получение остатка
Данный способ позволяет получить не само число, которое должно получится, а остаток. Допустим при делении 48 на 5 мы получим 3 при таком способе деления. В программе обозначается, как «mod» без кавычек:
Теперь давайте попробуем написать простейший калькулятор, который выполняет с нашими двумя числами все действия сразу.
Итак, сегодня мы познакомились с операторами сложения, вычитания, умножения, тремя операторами деления, а также оператором присваивания. После сегодняшнего урока вы уже можете создавать свои простейшие программы на счёт.
- Распечатать
Оцените статью:
- 5
- 4
- 3
- 2
- 1
(0 голосов, среднее: 0 из 5)
Поделитесь с друзьями!
Сообщение компилятора об ошибках
Если
ошибка возникает при компиляции внутри
TP,
Турбо Паскаль активизирует окно
редактирования и помещает курсор на
место ошибки в исходной программе.
Если
ошибка возникает при использовании
командно-строчного компилятора, Турбо
Паскаль выдает сообщение об ошибке,
выводит на экран исходную строку
программы с ошибкой и ее номер; символ
^ в выдаваемой исходной строке указывает
местоположение ошибки. Ошибки
подразделяются на:
-
ошибки
при компилировании программы; -
ошибки
на уровне DOS; -
ошибки
ввода-вывода.
Ошибки при компилировании
1
Out of memory (Выход за пределы памяти)
Данная
ошибка появляется, если компилятор
израсходовал всю доступную ему память.
Возможно, ваша программа или программный
модуль слишком велики, чтобы компилировать
их в таком объеме памяти. В этом случае
программу или программный модуль
необходимо разбить на два или более
программных модуля.
2
Identifier expected (Ожидается идентификатор)
В этом месте должен
находиться идентификатор.
3
Unknown Identifier (Неизвестный идентификатор)
Этот идентификатор
не был описан.
4
Duplicate Identifier (Повторение идентификатора)
5
Syntax error (Синтаксическая ошибка)
В исходном тексте
найден недопустимый символ. Возможно,
не заключена в кавычки строковая
константа.
6
Error in real constant (Ошибка в константе
вещественного типа)
Ошибка в синтаксисе
константы вещественного типа.
7
Error In Integer constant (Ошибка
в
константе
целого
типа)
Ошибка
в синтаксисе константы целого типа
(Учтите, что после чисел, превышающих
диапазон представления целых чисел,
должны ставиться точка и нуль, например
12345678912.0.).
8
String constant exceeds line (Строковая константа
превышает размеры строки)
Вероятно, после
строковой константы отсутствует символ
кавычка.
9
Too many nested files (Слишком много вложенных
файлов)
Компилятор допускает
не более 15 вложенных исходных файлов и
не более 4 включаемых файлов.
10
Unexpected end of file (Неожиданный
конец
файла)
Данное сообщение
может появиться по одной из следующих
причин:
В Вашей программе,
вероятнее всего, неодинаковое количество
операторов BEGIN и END.
Включаемый
файл заканчивается в середине раздела
операторов (Каждый раздел операторов
должен целиком помещаться в одном
файле).
В Вашем файле не
закрыты скобки комментария.
11
Line too long (Строка слишком длинная)
Максимальная длина
строки не может превышать 127 символов.
12
Type Identifier expected (Ожидается идентификатор
типа)
В определенном
месте не указан тип идентификатора.
13
Too many open files (Слишком много открытых
файлов)
В
файле CONFIG.SYS не установлен параметр
FILES = N, где N — представляет собой целое
число без знака. Установите в файле
CONFIG.SYS значение параметра FILES = N >= 30.
14
Invalid file name (Недопустимое имя файла)
Имя файла неверно
или указан несуществующий путь.
15
File not found (Файл
не
найден)
Файл
не найден ни в одном из каталогов,
предназначенных для хранения файлов
данного типа.
16
Disk full (Диск заполнен)
Удалите
с диска ненужные Вам файлы (например
файлы с расширением .ВАК или .ТМР) или
попробуйте сохранить текст программы
на другом диске, который имеет достаточный
объем свободной памяти.
17
Invalid compiler directive (Недопустимая директива
компилятора)
Неверная
буква в директиве компилятора, один из
параметров директивы компилятора
неверный или Вы пользуетесь глобальной
директивой компилятора, когда компиляция
тела программы уже началась.
18
Too many files (Слишком много файлов)
В
компиляции программы или программного
модуля участвует слишком много файлов.
Попытайтесь не использовать так много
файлов, например, объединяя включаемые
файлы.
19
Undefined type la pointer definition (Неопределенный
тип в описании указателя)
Вы
пытаетесь объявить типизированный
указатель, связанный с ранее необъявленным
типом данных.
20
Variable Identifier expected (Ожидается идентификатор
переменной)
В указанном курсором
месте ожидается идентификатор переменной.
21
Error in type (Ошибка в определения типа)
Определение типа
не может начинаться с этого символа.
22
Structure too large (Слишком длинная структура)
Максимально
допустимый размер любого структурированного
типа — 65520 байтов.
23
Set base type of range (Количество элементов в
множестве превышает допустимое значение)
Базовый
тип множества должен представлять собой
интервальный или перечисляемый тип
данных с не более чем 256 значениями.
24
File components may not be files or objects (Компоненты
файла
не
могут
быть
файлами
или
объектами)
Тип
компонентов файла не может быть объектным
типом, файловым типом или любым другим
структурированным типом, содержащим
компоненты типа файла или объекта.
25Invalid
string length (Неверная длина строки)
Длина описываемой
строки должна находиться в пределах
от 1 до 255.
26
Type mismatch (Несоответствие типов)
Причины, вызвавшие
появление данного сообщения, могут быть
следующими:
Несовместимы типы
переменной и выражения в операторе
присваивания.
Несовместимые
типы фактического и формального
параметров в обращении к процедуре или
функции.
Тип выражения
несовместимый с типом индекса при
индексировании массива.
Несовместимые
типы операндов в выражении.
27
Invalid subrange base type (Неправильный базовый
тип для интервала)
28Lower
bound greater than upper bound (Нижний
граница
превышает
верхнюю)
При
описании интервального типа данных Вы
объявили нижнюю границу диапазона
больше верхней.
29
Ordinal type expected (Ожидается перечисляемый
тип)
Вещественные,
строковые, структурные и ссылочные типы
в данном случае не допускаются.
30
Integer constant expected (Ожидается константа
целого типа)
31
Constant expected (Ожидается константа)
32
Integer or real constant expected (Ожидается константа
целого или вещественного типа)
33Pointer
type Identifier expected (Ожидается идентификатор
типа указатель)
Указанный курсором
идентификатор не является указателем.
34
Invalid function result type (Недопустимый тип
результата функция)
Правильными типами
результата функции являются все простые,
строковые и ссылочные типы.
35
Label Identifier expected (Ожидается идентификатор
метки)
Обнаружена ссылка
на метку, не описанную в разделе LABEL.
36
BEGIN expected (Ожидается оператор BEGIN)
37
END expected (Ожидается оператор END)
38
Integer expression expected (Ожидается выражение
целого типа)
39
Ordinal expression expected (Ожидается выражение
перечисляемого типа)
40
Boolean expression expected (Ожидается выражение
логического типа)
41
Operand types do not match operator (Несоответствие
типов
операнду)
Данная
операция не может применяться к операндам
этого типа. Такое сообщение будет
вызвано, например, при попытке выполнить
следующую операцию:’ 9′ DIV ‘G’ .
42
Error in expression (Ошибка
в
выражении)
Данный
идентификатор не может участвовать в
выражении указанным образом.
Возможно, вы забыли
указать операцию между двумя операндами.
43
Illegal assignment (Запрещенное присваивание)
Это сообщение
может появиться по следующим причинам:
-
файлам
и нетипизированным переменным нельзя
присваивать значения; -
идентификатору
функции можно присваивать значения
только внутри раздела операторов данной
функции.
44
Field Identifier expected (Ожидается идентификатор
поля)
Данный идентификатор
не соответствует полю предшествующей
переменной типа RECORD или OBJECT.
45
Object file too large (Объектный файл слишком
большой)
Турбо Паскаль не
может компоновать OBJ-файлы размером
больше чем 64 Кбайта.
46
Undefined external (Не определена внешняя
процедура)
Внешняя процедура
или функция не имеет соответствующего
определения PUBLIC в объектном файле.
Убедитесь, что вы указали все объектные
файлы в директивах {$L <имя ОВJ-файла>),
и проверьте написание идентификаторов
процедуры или функции в файле .ASM.
47
Invalid object file record
(Недопустимая
запись объектного файла)
Файл .OBJ содержит
неверную объектную запись. Убедитесь
в том, что данный файл является
действительно OBJ-файлом.
48
Code segment too large (Сегмент кода слишком
большой)
Максимально
допустимый размер кода программы или
программного модуля ранен 65520 байтам.
Разбейте Вашу программу или программный
модуль на несколько частей.
49
Data segment too large (Сегмент данных слишком
большой)
Максимальный
размер сегмента данных программы равен
65520 байтам, включая данные, описываемые
используемыми программными модулями.
Если нужно большее количество глобальных
данных, опишите большие структуры с
помощью указателей и выделяйте для них
память динамически с помощью процедуры
New.
50
DO expected (Ожидается оператор DO)
51
Invalid PUBLIC definition (Недопустимое
определение
PUBLIC)
Появление этого
сообщения возможно но следующим причинам:
-
Данный
идентификатор получил тип PUBLIC с помощью
соответствующей директивы языка
ассемблер, но не соответствует описанию
EXTERNAL в программе или программном модуле. -
Две
или более директивы PUBLIC на языке
ассемблера определяют один и тот же
идентификатор. -
OBJ-файл
определяет идентификатор PUBLIC вне
сегмента CODE.
52
Invalid EXTRN definition (Неправильное определение
EXTRN)
Появление этого
сообщения возможно по следующим причинам:
Из Ассемблера была
осуществлена ссылка с помощью директивы
EXTRN на идентификатор, который не был
описан в тексте Паскаль-программы.
Идентификатор
обозначает абсолютную переменную.
Идентификатор
обозначает процедуру или функцию типа
INLINE.
53
Too many EXTRN definition (Слишком много определений
типа EXTRN)
Турбо
Паскаль не может обрабатывать файлы
.OBJ при более чем 256 определениях EXTRN.
54
OF expected (Ожидается
оператор
OF)
55
INTERFACE expected (Ожидается
оператор
INTERFACE)
56
Invalid relocatable reference (Недопустимая
перемещаемая
ссылка)
Появление этого
сообщения возможно по следующим причинам:
-
OBJ-файл
содержит данные и перемещаемые ссылки
в сегментах, отличных от CODE, например,
при попытке описать инициализированные
переменные в сегменте DATA. -
ORJ-файл
содержит ссылки с размерами в байтах
на перемещаемые символы. Такая ошибка
происходит в случае использования
операторов HIGH и DOWN с перемещаемыми
символами или, если Вы ссылаетесь в
директивах DB на перемещаемые символы. -
Операнд
ссылается на перемещаемый символ,
который не был определен в сегментах
CODE или DATA. -
Операнд
ссылается на процедуру EXTRN или функцию
EXTRN со смещением, например CALL SortProc+8.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
1
Error 1: Out of memory
Нехватка памяти
Это сообщение выводится, когда компилятору не хватает памяти
2
Error 2: Identifier expected
Ожидался идентификатор
Возможно, имя вашего идентификатора совпадает со служебным словом
3
Error 3: Unknown identifier
Неизвестный идентификатор
Этот идентификатор не был описан
4
Error 4: Duplicate identifier
Идентификатор продублирован
Этот идентификатор уже исполь-зовался в текущем блоке программы
5
Error 5: Syntax error
Синтаксическая ошибка
В тексте найден неправильный символ
6
Error 6: Error in real constant
Ошибка в константе действительного типа
Возможно, вы поставили десятичную запятую вместо десятичной точки
7
Error 7: Error in integer constant
Ошибка в константе целого типа
Константы, выходящие за пределы диапазона типа longint описы-ваются как действительные числа
8
Error 10: Unexpec—ted end of file
Неожиданный конец файла
Количество операторов Begin и End не сбалансирована
9
Error 11: Line too long
Строка слишком длинная
Длина строки не должна превышать 127 символов
10
Error 12: Type identifier expected
Ожидается иденти-фикатор типа
Этот идентификатор не обозначает тип, как это должно быть
11
Error 15: File not found
Файл не найден
Файл не был найден ни в текущем каталоге, ни в других каталогах
12
Error 20: Variable identifier expected
Ожидается идентификатор переменной
Этот идентификатор не обозначает переменной, как должен был
13
Error 21: Error in type
Ошибка в типе
Этот символ не может начинать описание типа
14
Error 25: Invalid string length
Неправильная длина строки
Описанная максимальная длина строки должна быть в диапазоне 1…255
15
Error 26: Type mismatch
Несоответствие типов
Несовместимые типы переменной и выражения в операторе присваива-ния, несовместимые типы операн-дов в выражении, несовместимые типы формальных и фактических параметров в вызванной подпрограмме
16
Error 31: Constant expected
Ожидается константа
17
Error 32: Integer or real constant expected
Ожидается целая или действительная константа
18
Error 34: Invalid function result type
Неправильный тип результата функции
Правильными типами результата функции являются все простые типы
19
Error 36: BEGIN expected
Ожидается оператор Begin
20
Error 37: END expected
Ожидается оператор End
21
Error 38: Integer expression expected
Ожидается целое выражение
Предыдущее выражение должно быть целого типа
22
Error 41: Operand types do not match operator
Типы операндов не отвечают оператору
Оператор не может быть применён к операндам указанного типа
23
Error 42: Error in expression
Ошибка в выражении
Этот символ не может присутствовать в выражении
24
Error 50: DO expected
Ожидается служебное слово do
25
Error 54: Of expected
Ожидается служебное слово of
26
Error 57: THEN expected
Ожидается служеб-ное слово Then
27
Error 58: TO or DOWNTO expected
Ожидается служеб-ное слово to или downto
28
Error 62: Division by zero
Деление на нуль
Предыдущая операция пытается выполнить деление на нуль
29
Error 92: «[» or «(.» expected
Тут должна быть открывающая квадратная скобка
Вместо открывающей квадратной скобки можно использовать «(.»
30
Error 93: «]» or «).» expected
Квадратные скобки не закрыты
Вместо закрывающей квадратной скобки можно использовать «).»
31
Error 98: Integer variable expected
Ожидается переменная целого типа
32
Error 103: Integer or real variable expected
Ожидается пере-менная целого или вещественного типа
33
Error 108: Over—flow in arithmetic operation
Переполнение в арифметической операции
Результат предыдущей операции выходит за пределы использованного типа данных.
34
Error 113: Error in statement
Ошибка в операторе
Оператор не может начинаться с этого символа
Прочтите прежде чем задавать вопрос!
1. Заголовок темы должен быть информативным. В противном случае тема удаляется …
2. Все тексты программ должны помещаться в теги [code=pas] … [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. «FAQ«, если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение — только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы — на PM!
6. Одна тема — один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
|
Сообщение |
||||
Группа: Пользователи
Репутация: |
Помогите пожалуйста разобраться, задание на рисунке, вот что у меня получилось Var x,x1,y,y1,y2:real;T:Boolean; Что мне нужно написать в строке if?
Сообщение отредактировано: Lapp — 12.04.2010 7:35 |
|||
|
|
|||
Lapp |
Сообщение |
Уникум
Группа: Пользователи
Репутация: |
Цитата(cruising @ 11.04.2010 23:28) If x>0 then writeln('')else … А зачем там что-то писать? Она вообще не нужна. Я не знаю, что у вас там подразумевается под «системой тестов», но твое данное выражение вычислимо всегда, поэтому никаких ограничений на x вообще не нужно. Можешь вывести фразу типа: «выражение … определено при любом значении аргумента x». Добавлено через 3 мин. ——————— я — ветер, я северный холодный ветер |
|
|
TarasBer |
Сообщение |
Злостный любитель
Группа: Пользователи
Репутация: |
> Или, может, имются в виду вычислительные возможности компьютера?.. Вы имели в виду ограничения стандартных вещественных типов? А то возможности компьютера по умножению чисел — они значительно превосходят то, что может понадобиться обычному пользователю. > y:=exp(1/3*ln(x-x*x))+exp(5*ln(x)); Такой записью вы себя ограничиваете. Возводить в целую степень и извлекать нечётные корни можно и из отрицательных чисел. И из нуля. ——————— |
|
|
cruising |
Сообщение |
Группа: Пользователи
Репутация: |
Если я убираю строку с оператором if, запускаю программу, вставляю числло, у меня выдает: ошибка! вещественное деление на 0. А когда в формуле y:=exp(1/3*ln(x-x*x))+exp(5*ln(x)) меняю минус на плюс y:=exp(1/3*ln(x+x*x))+exp(5*ln(x)), всё считает верно, а с минусом ни как не хочет работать. |
|
|
TarasBer |
Сообщение |
Злостный любитель
Группа: Пользователи
Репутация: |
Для извлечения кубического корня надо разбирать два случая (больше нуля или меньше). Даже три.
——————— |
|
|
cruising |
Сообщение |
Группа: Пользователи
Репутация: |
Цитата(TarasBer @ 12.04.2010 15:50) Для извлечения кубического корня надо разбирать два случая (больше нуля или меньше). Даже три.
После function выдаёт ошибка! ожидался оператор |
|
|
Ozzя |
Сообщение |
Гуру
Группа: Пользователи
Репутация: |
Цитата После function выдаёт ошибка! ожидался оператор Наверняка ошибка до, а не после. Проверь, стоит ли ; после оператора, стоящего перед function |
|
|
cruising |
Сообщение |
|||
Группа: Пользователи
Репутация: |
Цитата(TarasBer @ 12.04.2010 16:03) Мой код надо вставить перед первым begin. вот что получилось, но сейчас выдает ошибка: неизвестное имя типа extended Var x,x1,y,y1,y2:real;T:Boolean;
|
|||
|
|
|||
TarasBer |
Сообщение |
Злостный любитель
Группа: Пользователи
Репутация: |
1. Вы эту функцию вставили в код, но никак не используете. ——————— |
|
|
cruising |
Сообщение |
Группа: Пользователи
Репутация: |
Цитата(TarasBer @ 12.04.2010 17:02) 1. Вы эту функцию вставили в код, но никак не используете. да я не в турбопаскале делаю, а в pascal abc, может в этом ещё причина |
|
|
Ozzя |
Сообщение |
Гуру
Группа: Пользователи
Репутация: |
Цитата да я не в турбопаскале делаю, а в pascal abc, может в этом ещё причина Да. |
|
|
cruising |
Сообщение |
Группа: Пользователи
Репутация: |
Цитата(Ozzя @ 12.04.2010 17:55) Да. Да я не волоку вообще в этом, я заочник, разбираться надо долго с этим, времени нет! Добавлено через 2 мин. |
|
|
TarasBer |
Сообщение |
Злостный любитель
Группа: Пользователи
Репутация: |
> Да я не волоку вообще в этом, я заочник, разбираться надо долго с этим, времени нет! Плохо. > Главное когда под корнем минус меняю на плюс, всё прекрасно работает, а с минусом ошибка и всё тут Да потому что ты тупо добавил в код новую функцию, но ваще её не используешь, ты считаешь по-старому (y:=exp(1/3*ln(x-x*x))+exp(5*ln(x));). Программа по-прежнему пытается делать то, что тут написано, то есть взять логарифм от отрицательного числа (ты, надеюсь, в курсе, что у отрицательного числа нельзя взять вещественный логарифм?). Как использовать функцию — вообще интуитивно очевидно должно быть, но раз ты не «волочешь» и не хочешь разбираться, то толку тебе помогать. ——————— |
|
|
cruising |
Сообщение |
Группа: Пользователи
Репутация: |
TarasBer, ну да так то, руки дойдут, разбирусь как-нибудь, спасибо зо то что, хотя бы попытался мне помочь. |
|
|
Гость |
Сообщение |
Гость |
program khorolets8; выбивает 26ой error, ошибка в строчке с if… в паскале я мало грамотен, помогите, а? |
|
|
volvo |
Сообщение |
Гость |
Ah — двумерный массив, значит для обращения к нему требуется 2 индекса. В той строчке везде по два, как положено, но последнее обращение — с одним индексом. Куда второй потерялся? |
|
|
Гость |
Сообщение |
Гость |
В блок схеме я писал в том месте …Аh[1,n-1] |
|
|
Tau |
Сообщение |
Гость |
Цитата(TarasBer @ 12.04.2010 15:50) Для извлечения кубического корня надо разбирать два случая (больше нуля или меньше). Даже три.
По правилам структурирования программ, функция должна иметь один выход, а у вас 3. |
|
|
volvo |
Сообщение |
Гость |
Цитата функция должна иметь один выход, а у вас 3 Научитесь сначала читать код, потом возьметесь за критику. Где 3 выхода? Я вижу только один выход из подпрограммы. Перед последним End-ом. Все остальное — не более чем запоминание результата, который функция может вернуть (а может и НЕ вернуть, как повезет). Кстати, ссылку на «правила структурирования программ» можно получить? (с указанием автора, желательно — не Васи Пупкина)… И заодно объяснение, чем подобная функция нарушает правила структурирования… Иначе — все, что я вижу в этом посте — это поднятие старой темы, причем необоснованное. Если ответа не последует в течении 12 часов — пост №18 будет просто удален. Как и все последующие. |
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Связь с администрацией: bu_gen в домене octagram.name