Ошибка неожиданный символ в паскале

Andrew_97, учите матчасть. Получилось так, что Вы написали совершенно не по теме.

Так как с пятой строкой проблемы, то нужно посмотреть дамп этой самой пятой строки:

Addr 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0000 a0 20 6e 2c 20 69 2c 20 73 3a 20 69 6e 74 65 67 . n, i, s: integ
0010 65 72 3b .. .. .. .. .. .. .. .. .. .. .. .. .. er;

Видите? первый символ в строке не символ пробела (код 020h), а символ неразрывного пробела (код 0a0h). Выглядит этот неразрывный пробел в точности как обычный пробел, но, так как он не входит в алфавит языка паскаль, то воспринимается средой программирования как ошибочный.

Откуда этот «не тот» пробел взялся в программе, вопрос к Dmitryow. Наверное, скопировал код из какого-нибудь «типографского» редактора, например, из Microsoft Word, или скопировал код откуда-нибудь из интернета. В пользу копирования говорит тот факт, что пятые строки приведённых Dmitryow программ полностью идентичны.

Для справки: символ неразрывного пробела используется во всех кодировках unicode и во многих ANSI-кодировках, в частности, в русскоязычной кодировке для Windows CP-1251. Отличается от обычного пробела тем, что при переносе по словам на месте неразрывного пробела запрещается перенос на следующую строку.

Dmitryow, при таких ошибках проще всего удалить строку целиком (чтобы не разбираться, где именно прячется недопустимый символ), и напечатать строку заново ВРУЧНУЮ.

Начал изучать программирование на паскале по видеоурокам с ютуба. Все абсолютно одинаково, но почему-то у автора программа запускается, а у меня выдает «Неожиданный символ» на последней строке (end.)

type 
  Human=class
    public
      Name:string;
      Age:integer;
      Height:integer;
  end;
  
var
  h:Human;
begin
  h:new Human;
  writeln('Привет! Я хочу немного узнать о тебе.');
  write('Как тебя зовут?');
  readln(h.Name);
  write('Прекрасно, ', h.Name, 'а теперь скажи, сколько тебе лет?');
  readln(h.Age);
  if (h.Age>17) then 
      writeln('Здорово! Ты уже совершеннолетний!') 
    else 
      writeln('Ой! Да ты еще совсем мал.');
  write('Ладно. А скажи-ка, какой у тебя рост?');
  readln(h.Height);
  writeln();
  writeln('Отлично. Мы собрали всю необходимую информацию:');
  writeln('Тебя зовут', h.Name, '. Тебе ', h.Age, ' лет. И твой рост ', h.Height);
  write('Ну вот и все. Всего хорошего', h.Name, '!');
end.

Что здесь не так?


7

<em>Помогите пожалуйста!!! Pascal ABC</em>
<em>В третей строчке выдает ошибку, пишет «Неожиданный символ». Что делать?</em><span>

<em>VAR P:integer;</em>
<em>begin</em>
<em>write(’введите пароль’);</em>
<em>read (P);</em>
<em>if p:=1998 then write (’Молодец’) else write (’Пароль не верен’);</em>
</span><em>end.</em><span>

</span>

2 ответа:



0



0

Исправленная:
VAR P:integer;
begin
write(‘введите пароль’);
read (P);
if p=1998 then write (‘Молодец’) else write (‘Пароль не верен’);
end.



0



0

Возможно нужно поставить кому после кавычек, перед дужкой
write(‘введите пароль’,);

Читайте также

Подключение пользователей к Интернету обеспечивают Интернет-провайдеры, серверы которых имеют высокоскоростные линии связи с Интернетом. Самая сложная задача в организации доступа — это обеспечение линии связи между вашим компьютером и провайдером. Есть несколько путей её решения: использовать существующие коммуникации (например, телефонные линии), прокладывать новые (выделенные линии), или пользоваться радиосвязью.

Таких чисел 400

Вот программа на паскале:

var i,x:integer;
begin
x:=0;
for i:=0 to 1000 do
begin
if (i mod 5<> 0)and(i mod 2 <> 0) then
x:=+x+1;
end;
write(x);
end.

Сайт на html работает без интернета по самому файлу, через сыллку на него не попасть, дашь другу файл он его откроет и будет эта страница, а хочешь через ссылку покупай хостинг и домен

5см*8см*1764точки*6бит/1024/8=51.68 Кбайт
Т.к. 1Кбайт=1024байт, 1байт=8бит

Все что инструкция, все что имеет в себе некую последовательность действий
а и в

Вылазиет «Неожиданный символ »’ » — Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Подскажите , вот программа.
При компиляции вылазиет неожиданный символ в строке 10.
В чем дело?

Код к задаче: «Вылазиет «Неожиданный символ »’ «»

textual

Листинг программы

writeln('Тест', test);

Полезно ли:

13   голосов , оценка 3.923 из 5

Похожие ответы

  1. В заданном слове произвести обмен первого и последнего символов
  2. Написать программу, которая сравнивает два текстовых файла посимвольно
  3. Повторяющиеся элементы массива символов
  4. Из текстового файла f переписать в файл g все строки, содержащие более 30 символов
  5. Выяснить, имеется ли среди символов, пара соседствующих одинаковых символов
  6. Написать программу выводящую на экран снежинку из символа «*»
  7. Ввод пароля с отображением звездочки вместо символа
  8. Написать программу для вывода последовательности символов
  9. Удалить в каждом слове повторяющиеся символы (проверьте правильность)
  10. После символа «:» вставить «*», если количество символов «=» равно 5
  11. Дана последовательность символов. Удалить словосочетание «ма»

На сайте решения олимпиадных задач acmp.ru есть несколько компиляторов Паскаля: PascalABC.NET 3.8, Free Pascal 3.2.2, Delphi 7.0.

Один и тот же код решения интерактивной задачи получает Accepted (принято) на Free Pascal и Delphi и Presentation Error 1 (ошибка представления на первом тесте) на PascalABC.NET. Судя по продолжительному статусу Running (исполняется) при сдаче, какая-то сторона не может дождаться данных от другой — или интерактор от решения, скомпилированного PascalABC.NET, или наоборот.

При замене чтения данных с readln(c); на c := Console.ReadLine()[1]; программа получает Accepted (принято). То есть есть основания предполагать, что readln пытается прочитать больше символов, чем сейчас доступно для чтения — и блокируется — а потом программу снимают по пределу времени.

Для версии PascalABC.NET 3.5.1 (которая была на сайте до 29.05.2020) есть решения интерактивных задач, которые используют readln. То есть проблемы в 3.5.1 точно нет. В 3.8 и актуальной 3.8.3 проблема есть.

Предположительно в какой-то версии PascalABC.NET после 3.5.1 происходило ускорение ввода — и это ускорение ввода читает слишком много символов вперёд — и это приводит к зависанию решений интерактивных задач. Альтернативно (но менее вероятно) flush(output); перестал выполнять свою функцию. Менее вероятно, потому что при чтении через Console.ReadLine() программа успешно работает без необходимости flush(output);.

Ссылка на условие интерактивной задачи и возможность сдать: https://acmp.ru/index.asp?main=task&id_task=1465

Полный код решения интерактивной задачи на классическом Паскале (принимается на Free Pascal и Delphi, не принимается на PascalABC.NET).

var
  mid, left, right: integer;
  c: char;
  
begin
  left := 0; // left < answer
  right := 1000 * 1000 * 1000 + 1; // right > answer
  while true do
  begin
    mid := (left + right) div 2;
    writeln(mid);
    flush(output);
    readln(c);
    if c = '<' then begin
      right := mid;
    end
    else if c = '>' then begin
      left := mid;
    end
    else if c = '=' then begin
      exit;
    end
    else begin
      writeln('неожиданный символ - >', c, '<');
      halt(1);
    end;
  end;
end.

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

var
  mid, left, right: integer;
  c: char;
  
begin
  left := 0; // left < answer
  right := 1000 * 1000 * 1000 + 1; // right > answer
  while true do
  begin
    mid := (left + right) div 2;
    writeln(mid);
    c := Console.ReadLine()[1];
    if c = '<' then begin
      right := mid;
    end
    else if c = '>' then begin
      left := mid;
    end
    else if c = '=' then begin
      exit;
    end
    else begin
      writeln('неожиданный символ - >', c, '<');
      halt(1);
    end;
  end;
end.

Понравилась статья? Поделить с друзьями:
  • Ошибка неожиданный отступ в питоне
  • Ошибка неоднозначная ссылка на столбец postgresql
  • Ошибка необработанное исключение в приложении
  • Ошибка необрабатываемое исключение в приложении при нажатии кнопки продолжить
  • Ошибка необрабатываемое исключение в приложении как исправить