pixel0 0 / 0 / 0 Регистрация: 07.12.2012 Сообщений: 11 |
||||
1 |
||||
Ошибка Ожидался символ «точка»19.05.2013, 14:06. Показов 927. Ответов 2 Метки нет (Все метки)
Найдите пожалуйста ошибку
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
19.05.2013, 14:06 |
2 |
КонецСвета Почетный модератор 7966 / 3937 / 2464 Регистрация: 30.10.2011 Сообщений: 5,377 |
||||
19.05.2013, 14:16 |
2 |
|||
1 |
0 / 0 / 0 Регистрация: 07.12.2012 Сообщений: 11 |
|
19.05.2013, 14:22 [ТС] |
3 |
Большое спасибо!
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
19.05.2013, 14:22 |
Помогаю со студенческими работами здесь Поиск суммы положительных четных чисел и ошибка «Ожидался оператор» var q:real; Ошибка в коде «Ожидался оператор»
Ошибка «Ожидался оператор»
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 3 |
const max=7; var a:array [1..max, 1..max] of integer; c,j,i,q,n,m:integer; begin Randomize; writeln('Введите размер матрицы(n m): '); repeat read(n, m); until (n in [1..Max]) and (m in [1..Max]); writeln('матрица: '); for i:=1 to n do begin for j:=1 to m do begin a[i, j]:=random(20)-10; write(a[i, j]:4); end; writeln; end; writeln; writeln('Введите число q: '); readln(q); C:=0; writeln('Элементы превышающие по модулю число ', q, ': '); for i:=1 to n do for j:=1 to m do if abs(a[i, j]) > q then begin inc(C); write(a[i, j], ' '); end; writeln; writeln('их кол-во: ', C); end.
Среда программирования паскаль
Среда программирования
Для вызова среды программирования Pascal ABC необходимо запустить на выполнение файл PascalABC.exe или загрузить среду посредством ярлыка, если он существует на рабочем столе.
Для создания нового файла необходимо выполнить следующие действия: Файл/Новый. На экране откроется чистое окно с именем Program1.pas. , его при сохранении файла желательно изменить.
При вводе и редактировании текста программы используются такие же приемы, как и при работе в текстовом редакторе. С помощью команды Помощь — Содержание можно ознакомиться со справочной системой Pascal ABC.
Для сохранения программы необходимо выполнить команду Файл/Сохранить как…имя файла.
Для загрузки программы из файла необходимо выполнить команду Файл/Открыть выбрать файл..
Для выполнения программы необходимо выполнить команду Программа/Выполнить, либо нажать клавишу F9.
Если в программе отсутствуют ошибки, на экране монитора можно увидеть результат выполнения программы. При обнаружении ошибок курсор устанавливается в области ошибки, а в окне вывода выдается сообщение об ошибке. В этом случае следует исправить ошибки и снова выполнить программу.
Наиболее часто встречающиеся ошибки при работе в системе программирования Pascal ABC:
-
«неожиданный символ» — символ введен не с регистра английских букв;
-
«ожидался символ «точка», «точка с запятой», Begin и др.»- отсутствует необходимый символ или команда;
-
«неизвестное имя» — неправильно введена команда;
-
«ошибка ввода» — неверно указано имя файла;
-
«ожидался конец файла» — ошибки в команде end.
Структура программы
Программа, записанная на языке Pascal может содержать следующие разделы:
-
Заголовок (Program)
-
Раздел меток (Label)
-
Раздел констант (Const)
-
Раздел типов (Type)
-
Раздел переменных (Var)
-
Раздел процедур и функций (Procedure, Function).
-
Раздел операторов (Begin…End)
Все программы обязательно имеют раздел заголовка и раздел операторов, остальные составляющие могут отсутствовать. При отсутствии некоторых частей программы общий порядок их следования сохраняется. Разделы между собой разделяются знаком «;» Раздел операторов заключается в операторные скобки. Это зарезервированные слова Begin, End. Раздел операторов заканчивается точкой. Раздел «заголовок» начинается с зарезервированного слова program, за которым указывается имя программы. В качестве имени может использоваться любой набор символов алфавита с несколькими исключениями:
-
нельзя использовать зарезервированные слова;
-
нельзя начинать имя с цифры;
-
при использовании имени не используется пробел.
Программа на языке Pascal может иметь следующий вид:
Program <имя программы>;
<раздел описаний, в котором описываются данные>
Begin
<раздел команд (тело программы)>;
End.
Набрал в программе PascalABC программный код и при запуске получил ошибку ОЖИДАЛСЯ СИМВОЛ «ТОЧКА С ЗАПЯТОЙ» во второй строке после слова object
Но там она и не нужна. Помогите советом в чем ошибка?
Код:
Program primer;
Type tPredoc=object {В ЭТОЙ СТРОКЕ ОШИБКА}
Name:string; {поле данных объекта}
Procedure Declaration; {объявление методов объекта}
Procedure MyName;
End;
tуре tSon= оbject(tPredoc) {Тип, наследующий tPredoc }
procedure Declaration; {перекрытие методов предка}
procedure МуName(Predoc : tPredoc);
end ;
tуре tGrandSon=object(tSon) {Тип, наследующий tSon}
procedure Declaration ; {перекрытие методов предка}
end ;
const ded : tPredoc = ( Name : «Петров Николай Иванович»);
otec : tSon = ( Name : «Петров Сергей Николаевич»);
vnuk : tGrandSon = ( Name : «Петров Олег Сергеевич»);
{раздел описания процедур и функций, где обязательно должны быть написаны все объявленные в объектных типах методы}
Procedure tPredoc.Declaration ;
{реализация метода объекта}
begin
writeln (‘Я — предок!’);
end ;
Procedure tPredoc.MyName ;
{реализация метода объекта}
begin
writeln(‘Я -‘, Name);
end;
BEGIN
ded.Declaration ; {вызов методов общего предка}
ded.МуName;
writeln;
otec.Declaration;
otec.MyName(ded); { вызов методов объекта otec типа tSon}
writeln;
vnuk.Declaration; { вызов методов объекта vnuk типа tGrandSon}
vnuk.MyName ( otec );
END.
5 ответов
446
28 сентября 2014 года
Meander
487 / / 04.09.2011
Попробуйте поставить точку с запятой, что-бы отделить секцию объявления типов во второй строке.
1.9K
29 сентября 2014 года
alexandrv
39 / / 21.01.2010
Не прокатит такой трюк
20K
29 сентября 2014 года
ellor!
198 / / 24.05.2012
Лучше использовать class, а не object. object — наследие прошлого, формально должно поддерживаться, а по факту устарело.
Код:
type
TPredoc = class
Name : String; {поле данных объекта}
Procedure Declaration; virtual; {объявление методов объекта}
Procedure MyName;
end;
TSon = class(TPredoc)
procedure Declaration; override; {перекрытие методов предка}
end;
1.9K
15 октября 2014 года
alexandrv
39 / / 21.01.2010
Я упростил программу до такого программного кода. НО теперь возникает ошибка в типизированной константе:ОШИБКА ПРЕОБРАЗОВАНИЯ ТИПОВ. Не подскажете почему?
Код:
Program primer;
Type tPredoc=class
Name:string; {поле данных объекта}
Procedure Declaration; {объявление методов объекта}
Procedure MyName;
End;
const ded : tPredoc = ( Name : ‘Петров Николай Иванович’);
{раздел описания процедур и функций, где обязательно должны быть написаны все объявленные в объектных типах методы}
Procedure tPredoc.Declaration ;
{реализация метода объекта}
begin
writeln (‘Я — предок!’);
end ;
Procedure tPredoc.MyName ;
{реализация метода объекта}
begin
writeln(‘Я -‘, Name);
end;
BEGIN
ded.Declaration ; {вызов методов общего предка}
ded.МуName;
END.
20K
16 октября 2014 года
ellor!
198 / / 24.05.2012
Class не поддерживает объявления констант типа
Код:
const ded : tPredoc = ( Name : ‘Петров Николай Иванович’);
Объекты надо явно создавать и удалять.
Код:
var
ded : tPredoc;
begin
ded := tPredoc.Create;
try
ded.Name = ‘Петров Николай Иванович’;
ded.Declaration;
ded.MyName;
finally
ded.Free;
end;
end.
|
|
|
Массивы
, Ввести массив A(N) помощь
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Ввести массив A(N). Упорядочить четные элементы массива по убыванию, а не четные по возрастанию. Вывести на печать исходный и преобразованный массивы. |
Булат Шакиров |
|
Четные/нечетные — not(odd)/odd |
lena1992 |
|
procedure SelectionSort(var arr : array of Real; const N : Integer); var I : Integer; J : Integer; K : Integer; M : Real; begin for i:=1 to N do begin m:=Arr[i-1]; k:=i; for j:=i to n do begin if m>Arr[j-1] then begin m:=Arr[j-1]; k:=j; end; end; Arr[k-1]:=Arr[i-1]; Arr[i-1]:=m; end; end; мммм а как, т.е куда(место чего) нужно ввести значение not(odd)/odd в этой программе? |
volvo877 |
|
Moderator Рейтинг (т): 878 |
const n = 10; a : array[1 .. n] of integer = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ); var i, j, T : integer; b : boolean; begin writeln(‘before:’); for i := 1 to n do write(a[i]:4); writeln; for i := 1 to n — 1 do begin b := odd(a[i]); for j := i + 1 to n do if (odd(a[j]) = b) and (a[j] < a[i] = b) then begin T := a[i]; a[i] := a[j]; a[j] := T; end; end; writeln(‘after:’); for i := 1 to n do write(a[i]:4); writeln; end. before: 1 2 3 4 5 6 7 8 9 10 after: 1 10 3 8 5 6 7 4 9 2 Четные (2, 4, 6, 8, 10) отсортированы по убыванию, а нечетные (1, 3, 5, 7, 9) — по возрастанию… Идея — в том, что сравниваться (и обмениваться местами, разумеется) 2 элемента должны только тогда, когда они либо оба четные, либо оба — нечетные… Ну, а уж поменять направление сортировки в зависимости от четности/нечетности элементов — это вообще проще простого… |
lena1992 |
|
Сможете решить ее я что ни чего не поняла…… Добавлено 13.05.11, 14:24 |
lena1992 |
|
Я сдавала, проверяили, и мне сказали что не правильно. Вот что препод сказал: не может присвоить значение константе… Добавлено 16.05.11, 18:22 Цитата lena1992 @ 16.05.11, 18:19 препод сказал
Какой препод, блин сам паскаль говорит: |
volvo877 |
|
Moderator Рейтинг (т): 878 |
Если у тебя не Турбо-Паскаль, то добавь одно слово: const n = 10; var a : array[1 .. n] of integer = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ); |
lena1992 |
|
Сейчас запустила пишет: Ошибка: ожидался символ «точка с запятой»- Pascal ABC |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Pascal
- Следующая тема
[ Script execution time: 0,0758 ] [ 15 queries used ] [ Generated: 6.06.23, 01:18 GMT ]