Как исправить ошибку в pascal abc

Добавил:

Upload

Опубликованный материал нарушает ваши авторские права? Сообщите нам.

Вуз:

Предмет:

Файл:

Pascal.doc

Скачиваний:

26

Добавлен:

12.03.2016

Размер:

3.29 Mб

Скачать

Сообщения
об ошибках.
Ошибки в
программах делятся на те, которые
Паскаль замечает, и на те, что не замечает
и в принципе заметить не может. К первым
относятся все синтаксические погрешности,
например,BIGINвместоBEGIN.
Их Паскаль замечает еще на стадии
компиляции. На стадии выполнения он
замечает такие ошибки, какSqrt(-25),
то есть квадратный корень из ‑25. Но
вот, если вы, желая возвести числоa
в куб, вместоa*a*aпишетеa*a,
то этого не заметит ни один язык в мире.

Обнаружив
грамматическую ошибку, Паскаль выдает
золотыми буквами на красном фоне краткое
описание ошибки и ставит курсор в то
место программы, где, по его мнению, она
находится.

Обнаружив ошибку
на стадии выполнения, Паскаль выдает
белыми буквами на черном фоне окна
пользователя сообщение Runtime
error
и иногда золотыми буквами
на красном фоне краткое описание ошибки
и ставит курсор в то место программы,
где, по его мнению, она находится.

Вот наиболее
типичные для начинающих сообщения об
ошибках того и другого рода:

Сообщение

Перевод

Вероятная
причина ошибки

Unexpected end of file

Неожиданный
конец файла

Вы забыли
поставить точку после последнего
END.
Или не совпадает количествоbeginи количествоend

“;” expected

Ждал точку с
запятой

Вы забыли
поставить точку с запятой после
предыдущего оператора

“,” expected

Ждал запятую

Вы указали
слишком мало параметров в обращении
к подпрограмме

“)” expected

Ждал скобку “)”

Вы указали
слишком много параметров в обращении
к подпрограмме

Unknown identifier

Неизвестное
имя

Вы забыли описать
это имя в разделе описаний

Неправильно
записали стандартное имя, например,
ReedLnвместоReadLn

Type mismatch

Несовпадение
типов

В вашей программе
встречаются примерно такие «сладкие
парочки»: VAR c:String; … c:=1+2илиVAR
h:Integer; … h:=9/7

Duplicate identifier

Дубль имени

Одно и то же имя
описано два раза. Например,
VAR a, c, a :String;

Syntax error

Синтаксическая
ошибка

Паскаль
затрудняется назвать причину ошибки.
Часто причина в том, что вы забыли
взять строковую константу в кавычки

BEGIN
expected

Ждал BEGIN

Возможно, не
совпадает количество beginи количествоend

END
expected

Ждал
END

Возможно, не
совпадает количество beginи количествоend

String
constant exeeds line

Строковая
константа превышает допустимую длину

Вы забыли закрыть
кавычки в строковой константе

Line too long

Строчка слишком
длинна

Слишком длинная
строчка в программе (не путать со
строковой константой, которую нужно
брать в кавычки). Не рекомендую
залезать программным текстом за
правый край экрана

Disk full

Диск заполнен

На вашем диске
не осталось места. Надо что-то стереть

Lower bound greater than
upper bound

Нижняя граница
диапазона больше верхней

Например, вы
вместо array[2..5]написалиarray[5..2].

Invalid floating point
operation

Неправильная
операция с вещественным результатом

Sqrt(-25)илиa/0или что-нибудь в этом роде

Ordinal expression
expected

Ждал выражение
порядкового типа

Например, вы
вместо for
i:=1
to
8
написали
for
i:=1
to
8.5

Error in expression

Ошибка в выражении

Например, вы
вместо k:=а*8написалиk:=а**8

Range check error

Ошибка проверки
диапазона

Переменная
в процессе выполнения программы
вышла за пределы допустимого диапазона,
как например, в 1.9

Constant out of range

Константа не в
диапазоне

Величина
константы в программе превосходит
допустимый диапазон

Invalid numeric format

Неправильный
числовой формат

Если, например,
вы по оператору ReadLn(k)в программеVAR
k:Integer; …. ReadLn(k) …
пытаетесь
ввести число 25.3

Более подробное
описание некоторых ошибок вы найдете
в 0.3.

Понять смысл
многих других сообщений об ошибках вам
поможет перевод некоторых часто
встречающихся в сообщениях слов:

expected
ждал

identifier
имя

invalid
неправильный

operation операция

error
ошибка

variable переменная

Невозможно создать
компилятор, который бы всегда точно
находил место и причину ошибки. Поэтому
приготовьтесь к тому, что некоторые
сообщения вы будете долго разглядывать
в недоумении. Считайте их не реальными
ошибками, а намеками на реальные ошибки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

FunduxYura

1 / 1 / 0

Регистрация: 31.07.2012

Сообщений: 32

1

14.09.2012, 09:10. Показов 10655. Ответов 11

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Помогите! Не могу завершить прогу на Pascal ABC (да-да, тот самый). Делаю что-то вроде клавиатурного тренажёра…

Код Паскаля АВС

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
uses Timers,Events;
var tickers: real;
 
function GiveErrorBad(lolikon:Boolean):boolean;
begin
writeLn('-----------------');
writeLn('Íåñîâïàäåíèå ñ òåêñòîì! Âîçìîæíûå ïðè÷èíû:');
writeLn(' - Åñòü ãðàììàòè÷åñêèå, ïóíêòóàöèîííûå îøèáêè (òîãäà âàø IQ íå âûøå êàìíÿ, èáî òåêñò áûë ïîä ãëàçàìè...)');
writeLn(' - Åñòü ëèøíèå ïðîáåëû (ñ êåì íå áûâàåò...)');
writeLn(' - Áûëà ïîïûòêà ïîñòàâèòü àáçàö. Ýòî íå àâòîð íåãðàìîòíûé, ýòî îñîáåííîñòü Pascal ABC...');
writeLn(' - Âû íå ââîäèëè íè÷åãî, èëè ââîäèëè, íî ñîâñåì íå òî');
writeLn('Çàêðîéòå ïðîãðàììó è íà÷èíàéòå ñíà÷àëà... :(');
readLn();
end;
 
procedure f;
begin
tickers:=tickers+0.5
end;
 
var t: Timer;
 
const
  tekst='не волнует';
var
 whaticrar:Text;
 
begin
  writeLn('Ââåäè òåêñò áåç îøèáîê!');
  writeLn('Òåêñò íàõîäèòñÿ â ðàñïå÷àòàííîì âèäå ïîä âàøèì íîñîì...');
  writeLn('Ïîåõàëè? Íàæìè Enter');
  readLn();
  writeLn('Âðåìÿ ïîøëî!');
  writeLn('--------------');
  t:=Timer.Create(500,f);
  readLn(whaticrar);
  t.Stop();
  
if whaticrar=tekst then
  writeLn('-----------------');
  writeLn('Âû ïðîøëè òåñò!');
  writeLn('------------------');
  writeLn('Âðåìÿ ïðîõîæäåíèÿ:');
  writeLn(tickers + ' ñåêóíä');
else GiveErrorBad();
end.

Те символы-кракозябры — результат копирования Win1251 в UTF-8 форму, которые пропали на предварительном просмотре
Компилятор PABC.NET(решил прогнать код через него) ругается:

Код

Program1.pas(46,1): Ожидался оператор

Помогите, пожалуйста!



0



4 / 4 / 2

Регистрация: 27.07.2012

Сообщений: 59

14.09.2012, 09:20

2

Поставь ; после закрытой скобки.



0



1 / 1 / 0

Регистрация: 31.07.2012

Сообщений: 32

14.09.2012, 10:09

 [ТС]

3

Цитата
Сообщение от vi fail
Посмотреть сообщение

Поставь ; после закрытой скобки.

Строчку в исправленном виде покажи, а то я тебя не понял



0



vi fail

4 / 4 / 2

Регистрация: 27.07.2012

Сообщений: 59

14.09.2012, 10:44

4

Pascal
1
Program1.pas(46,1);



0



Фрилансер

3417 / 2814 / 3000

Регистрация: 08.02.2012

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 13:03

5

FunduxYura, до else убери ;



0



FunduxYura

1 / 1 / 0

Регистрация: 31.07.2012

Сообщений: 32

14.09.2012, 15:19

 [ТС]

6

Цитата
Сообщение от Artem7
Посмотреть сообщение

FunduxYura, до else убери ;

Убрал, теперь этот кусок выглядит так:

Pascal
1
2
3
4
5
6
7
8
if whaticrar=tekst then
  writeLn('-----------------');
  writeLn('Вы прошли тест!');
  writeLn('------------------');
  writeLn('Время прохождения:');
  writeLn(tickers + ' секунд')
else GiveErrorBad()
end.

Ошибка та же — 1 символ, строка 45, ожидается ;

Добавлено через 5 минут

Цитата
Сообщение от vi fail
Посмотреть сообщение

Pascal
1
Program1.pas(46,1);

Это сама ошибка, так что — nice joke



0



CodeR

Фрилансер

3417 / 2814 / 3000

Регистрация: 08.02.2012

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 15:19

7

FunduxYura, Да потому что если вы хотите использовать в условие больше одного оператора то надо использовать операторные скобки Begin End

Pascal
1
2
3
4
5
6
7
8
9
10
if whaticrar=tekst then
 Begin
  writeLn('-----------------');
  writeLn('Вы прошли тест!');
  writeLn('------------------');
  writeLn('Время прохождения:');
  writeLn(tickers + ' секунд');
 End
else GiveErrorBad()
end.



0



FunduxYura

1 / 1 / 0

Регистрация: 31.07.2012

Сообщений: 32

14.09.2012, 15:27

 [ТС]

8

Цитата
Сообщение от Artem7
Посмотреть сообщение

FunduxYura, Да потому что если вы хотите использовать в условие больше одного оператора то надо использовать операторные скобки Begin End

Ой, совсем забыл про них, я просто раньше кодил на AS, JS, VB .NET, а с паскалем впервые встретился, вот и тупанул…

Но теперь ругается на

Pascal
1
2
3
4
5
6
7
8
9
10
if whaticrar=tekst then
begin
  writeLn('-----------------');
  writeLn('Вы прошли тест!');
  writeLn('------------------');
  writeLn('Время прохождения:');
  writeLn(tickers + ' секунд');
end;
else GiveErrorBad();
end.

Говорит, что ожидался оператор, но ругань идёт в самое начало строчки с else…

Код функции, которая не должна ничего возвращать, и нужна для удобства

Pascal
1
2
3
4
5
6
7
8
9
10
11
function GiveErrorBad(lolikon:Boolean):boolean;
begin
writeLn('-----------------');
writeLn('Несовпадение с текстом! Возможные причины:');
writeLn(' - Есть грамматические, пунктуационные ошибки (тогда ваш IQ не выше камня, ибо текст был под глазами...)');
writeLn(' - Есть лишние пробелы (с кем не бывает...)');
writeLn(' - Была попытка поставить абзац. Это не автор неграмотный, это особенность Pascal ABC...');
writeLn(' - Вы не вводили ничего, или вводили, но совсем не то');
writeLn('Закройте программу и начинайте сначала... :(');
readLn();
end;



0



Фрилансер

3417 / 2814 / 3000

Регистрация: 08.02.2012

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 15:29

9

FunduxYura, ты посмотри на мой код а теперь на свой…



0



FunduxYura

1 / 1 / 0

Регистрация: 31.07.2012

Сообщений: 32

14.09.2012, 15:42

 [ТС]

10

Цитата
Сообщение от Artem7
Посмотреть сообщение

FunduxYura, ты посмотри на мой код а теперь на свой…

Спасибо, просто я уже жестоко туплю, теперь у меня ещё одна проблема…

Не по теме:

Я безнадёжен, да?

Pascal
1
2
3
if whaticrar=tekst then
 Begin
  writeLn('-----------------');

говорит, что = нельзя юзать с Text и string, но как мне ещё сравнивать?



0



Фрилансер

3417 / 2814 / 3000

Регистрация: 08.02.2012

Сообщений: 8,551

Записей в блоге: 1

14.09.2012, 16:03

11

FunduxYura, так потому что ты пытаешься переменную типа текстовый файл сравнить с типом string а чтобы понять как сравнивать надо понимать что ты хочешь сделать в проге…



0



1 / 1 / 0

Регистрация: 31.07.2012

Сообщений: 32

21.09.2012, 17:47

 [ТС]

12

Хм… Я решил проблему, но почему-то код работает ПОЛНОСТЬЮ только на PascalABC не .NET… В NET версии таймер не считает ничего…



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.09.2012, 17:47

Помогаю со студенческими работами здесь

Ошибка в строке 97: «incompatible types», а в 99 ошибка: «identifier expected but ‘^’ found», как исправить?
var
tmp,tmp1,tmp2:point;
begin
tmp:=head;
while tmp <> nil do
begin
tmp1:=…

Вывести нечётные числа. Ошибка: оператор «%» невозможно применить к операнду типа «string» и «int»
Я новичок в программировании, поэтому не судите строго если тут всё говно. Нужно сделать, чтобы код…

Поиск в массиве. Ошибка «Оператор «&&» не может применяться к операндам типа «bool» и «double»»
Найти номер последнего минимального элемента среди положительных четных элементов, лежащих правее…

Ошибка в коде «Ожидался оператор»
Program gKKMMf;
var b,s,x,h:real;
begin
repeat
Write(‘Vvedite konez otrezka b’);
Read(b);…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

PascalABC.NET как исправить ошибку?

    uses Arrays;
var 
  a: array of integer;
  N: integer;
  i1,i2:integer;
begin
  N := 50;
  a := CreateRandomIntegerArray(50);
  for var i:=1 to N do begin
    if a[i]>0 then
    i1+=1;
    if a[i]<0 then
    i2+=1;
   end;
write(i1);
write(i2);
end.

задан 6 дек 2017 в 6:19

Ярослав's user avatar

Динамические массивы нумеруются с нуля. Цикл for var i:=1 to N do begin должен выглядеть хотя бы так for var i:=0 to N-1 do begin

А вообще стоит оперировать такими функциями работы с массивами, как length, High и т.п.

ответ дан 6 дек 2017 в 6:27

Viktor Tomilov's user avatar

Viktor TomilovViktor Tomilov

8,0174 золотых знака24 серебряных знака61 бронзовый знак

Автор материалов — Лада Борисовна Есакова.
Самая распространенная ошибка, которую нужно найти и исправить – это неправильное использование вложенных условных операторов. Для усложнения поиска возможно неправильное форматирование текста (неправильно поставленные отступы).

Для того, чтобы найти ошибку, нужно поставить в соответствие друг другу все части условного оператора if и else.

Помним, что часть else относится к ближайшему if. При этом наличие части else не обязательно.

Кроме того, часто присутствует ошибка при вводе или выводе. Обязательно нужно проверить, та ли информация выводится на экран.

Особого внимания требует инициализация переменных.

Формат книги не позволяет рассмотреть все основные типы задач 2 части, рассмотрим лишь те, которые встречались на проверочных и экзаменационных работах последних двух лет.

Пример 1.

На об­ра­бот­ку по­сту­па­ет по­ло­жи­тель­ное целое число, не пре­вы­ша­ю­щее 109. Нужно на­пи­сать про­грам­му, ко­то­рая вы­во­дит на экран сумму цифр этого числа, мень­ших 7. Если в числе нет цифр, мень­ших 7, тре­бу­ет­ся на экран вы­ве­сти 0. Про­грам­мист на­пи­сал про­грам­му не­пра­виль­но. Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.

 Бей­сик

Python

DIM N, DIGIT, SUM AS LONG

INPUT N

SUM = 0

WHILE N > 0

DIGIT = N MOD 10

IF DIGIT < 7 THEN

SUM = SUM + 1

END IF

N = N 10

WEND

PRINT DIGIT

N = int(input())

sum = 0

while N > 0:

digit = N % 10

if digit < 7:

sum = sum + 1

N = N // 10

print(digit)

Пас­каль

Ал­го­рит­ми­че­ский язык

var N, digit, sum: longint;

begin

readln(N);

sum := 0;

while N > 0 do

begin

digit := N mod 10;

if digit < 7 then

sum := sum + 1;

N := N div 10;

end;

writeln(digit)

end.

алг

нач

цел N, digit, sum

ввод N

sum := 0

нц пока N > 0

digit := mod(N,10)

если digit < 7 то

sum := sum + 1

все

N := div(N,10)

кц

вывод digit

кон

Си

#include

int main()

{

int N, digit, sum;

scanf(«%d», &N);

sum = 0;

while (N > 0)

{

digit = N % 10;

if (digit < 7)

sum = sum + 1;

N = N / 10;

}

printf(«%d»,digit);

return0;

}

По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.

1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 456.

2. При­ве­ди­те при­мер та­ко­го трёхзнач­но­го числа, при вводе ко­то­ро­го про­грам­ма выдаёт вер­ный ответ.

3. Най­ди­те все ошиб­ки в этой про­грам­ме (их может быть одна или не­сколь­ко). Из­вест­но, что каж­дая ошиб­ка за­тра­ги­ва­ет толь­ко одну стро­ку и может быть ис­прав­ле­на без из­ме­не­ния дру­гих строк. Для каж­дой ошиб­ки:

1) вы­пи­ши­те стро­ку, в ко­то­рой сде­ла­на ошиб­ка;

2) ука­жи­те, как ис­пра­вить ошиб­ку, т.е. при­ве­ди­те пра­виль­ный ва­ри­ант стро­ки.

До­ста­точ­но ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка про­грам­ми­ро­ва­ния. Об­ра­ти­те вни­ма­ние, что тре­бу­ет­ся найти ошиб­ки в име­ю­щей­ся про­грам­ме, а не на­пи­сать свою, воз­мож­но, ис­поль­зу­ю­щую дру­гой ал­го­ритм ре­ше­ния. Ис­прав­ле­ние ошиб­ки долж­но за­тра­ги­вать толь­ко стро­ку, в ко­то­рой на­хо­дит­ся ошиб­ка.

Решение:

Ре­ше­ние ис­поль­зу­ет за­пись про­грам­мы на Пас­ка­ле. До­пус­ка­ет­ся ис­поль­зо­ва­ние про­грам­мы на любом из четырёх дру­гих язы­ков.

1. Про­грам­ма вы­ве­дет число 4.

2. При­мер числа, при вводе ко­то­ро­го про­грам­ма выдаёт вер­ный ответ: 835.

Про­грам­ма ра­бо­та­ет не­пра­виль­но из-за не­вер­ной вы­во­ди­мой на экран пе­ре­мен­ной и не­вер­но­го уве­ли­че­ния суммы. Со­от­вет­ствен­но, про­грам­ма будет ра­бо­тать верно, если в числе стар­шая цифра (край­няя левая) равна сумме цифр, мень­ших 7.

3. В про­грам­ме есть две ошиб­ки.

Пер­вая ошиб­ка. Не­вер­ное уве­ли­че­ние суммы.

Стро­ка с ошиб­кой:

sum := sum + 1;

Вер­ное ис­прав­ле­ние:

sum := sum + digit;

Вто­рая ошиб­ка. Не­вер­ный вывод от­ве­та на экран.

Стро­ка с ошиб­кой:

writeln(digit)

Вер­ное ис­прав­ле­ние:

writeln(sum)

Пример 2.

Для за­дан­но­го по­ло­жи­тель­но­го ве­ще­ствен­но­го числа A не­об­хо­ди­мо найти мак­си­маль­ное целое число K, при ко­то­ром вы­пол­ня­ет­ся не­ра­вен­ство

(при K = 0 сумма счи­та­ет­ся рав­ной 0).

Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал такую про­грам­му.

 Бей­сик

Python

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 1

S = 1

WHILE S < A

S = S + 1.0/K

K = K + 1

WEND

PRINT K

END

a = float(input())

k = 1

s = 1

while s < a:

s = s + 1.0/k

k = k + 1

print(k)

Ал­го­рит­ми­че­ский язык

Пас­каль

алг

нач

вещ a, s

цел k

ввод a

k := 1

s := 1

нц пока s<a

s := s + 1.0/k

k := k + 1

кц

вывод k

кон

var a, s: real;

k: integer;

begin

read(a);

k := 1;

s := 1;

while s<a do begin

s := s + 1.0/k;

k := k + 1;

end;

write(k);

end.

Си

#include <stdio.h>

int main(){

double a, s;

int k;

scanf(«%lf»,&a);

k = 1;

s = 1;

while (s<a) {

s = s + 1.0/k;

k = k + 1;

}

printf(«%d», k);

return 0;

}

По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.

1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 1.2.

2. При­ве­ди­те при­мер числа, при вводе ко­то­ро­го про­грам­ма даст вер­ный ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или не­сколь­ко).

Для каж­дой ошиб­ки вы­пи­ши­те стро­ку, в ко­то­рой она до­пу­ще­на, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде.

Об­ра­ти­те вни­ма­ние: вам нужно ис­пра­вить при­ведённую про­грам­му, а не на­пи­сать свою. Вы мо­же­те толь­ко ис­прав­лять оши­боч­ные стро­ки; уда­лять стро­ки или до­бав­лять новые стро­ки нель­зя. По­ста­рай­тесь также не вне­сти новые ошиб­ки – за это оцен­ка сни­жа­ет­ся.

Решение:

Ре­ше­ние ис­поль­зу­ет за­пись про­грам­мы на Пас­ка­ле. До­пус­ка­ет­ся ис­поль­зо­ва­ние про­грам­мы на дру­гих язы­ках.

1. При вводе числа 1.2 про­грам­ма вы­ве­дет число 2.

2. При­ме­ры чисел, при вводе ко­то­рых про­грам­ма вы­во­дит вер­ный ответ: 1.6, 2.05.

Про­грам­ма со­дер­жит две ошиб­ки, одна из ко­то­рых при­во­дит к уве­ли­че­нию от­ве­та, дру­гая – к умень­ше­нию.

В не­ко­то­рых слу­ча­ях эти ошиб­ки ком­пен­си­ру­ют друг друга, и ответ ока­зы­ва­ет­ся пра­виль­ным. Это про­ис­хо­дит, если зна­че­ние A по­па­да­ет в один из сле­ду­ю­щих диа­па­зо­нов: 1.5 < A < 1.83, 2 < A < 2.08.

3. Про­грам­ма со­дер­жит две ошиб­ки.

1) Не­вер­ная ини­ци­а­ли­за­ция. На­чаль­ное зна­че­ние S долж­но быть равно нулю.

В при­ведённом ва­ри­ан­те вы­чис­лен­ная сумма ока­зы­ва­ет­ся на 1 боль­ше пра­виль­но­го зна­че­ния.

Стро­ка с ошиб­кой:

s := 1;

Пра­виль­ная стро­ка:

s := 0;

2) Не­вер­ное опре­де­ле­ние от­ве­та. При­ведённая про­грам­ма на­хо­дит не мак­си­маль­ное K, при ко­то­ром вы­пол­ня­ет­ся не­ра­вен­ство, а ми­ни­маль­ное, при ко­то­ром оно не вы­пол­ня­ет­ся, то есть уве­ли­чи­ва­ет вер­ное зна­че­ние на 1.

Кроме того, ис­поль­зо­ван­ный по­ря­док дей­ствий в цикле (уве­ли­че­ние K после уве­ли­че­ния S) при­во­дит к уве­ли­че­нию ещё на 1. Это можно было бы ис­пра­вить, из­ме­нив по­ря­док дей­ствий в цикле и умень­шив K после за­вер­ше­ния цикла, но эти дей­ствия не раз­ре­ше­ны по усло­вию за­да­чи.

По­это­му для ис­прав­ле­ния ошиб­ки можно про­сто скор­рек­ти­ро­вать зна­че­ние при вы­во­де.

Стро­ка с ошиб­кой:

write(k);

Пра­виль­ная стро­ка:

write(k-2);

Спасибо за то, что пользуйтесь нашими материалами.
Информация на странице «Задача №24. Исправление ошибок в программе.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
Чтобы успешно сдать нужные и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
Также вы можете воспользоваться другими статьями из разделов нашего сайта.

Публикация обновлена:
07.06.2023

Содержание

  1. Ошибка «Необрабатываемое исключение в приложении»: как исправить
  2. Причины ошибки «Необрабатываемое исключение в приложении»
  3. Решение ошибки «Необрабатываемое исключение в приложении»
  4. Метод №1 Удаление антивируса
  5. Метод №2 Выполнение чистого запуска
  6. Метод №3 Установка последней версии .NET Framework
  7. Метод №4 Использование утилиты SFC
  8. Ошибка «В вашем приложении возникло необработанное исключение» — как исправить?
  9. В чем причина ошибки «Unhandled exception has occurred in your application» в Windows и что делать?
  10. Установка или устранение неисправностей в Microsoft.NET Framework
  11. Какие действия нужно выполнить для установки или восстановления Microsoft.NET Framework:
  12. Как выполнить безопасную загрузку?
  13. Выполните поиск неисправностей аппаратного обеспечения
  14. Как исправить ошибку «Необрабатываемое исключение в приложении .NET Framework»
  15. Чем вызвана ошибка?
  16. Замена антивирусной программы
  17. Запуск в режиме чистой загрузки
  18. Установка последней версии .NET Framework
  19. Восстановление системных файлов

Ошибка «Необрабатываемое исключение в приложении»: как исправить

Ошибка «Необрабатываемое исключение в приложении» обычно возникает в тот момент, когда Windows была полностью загружена после запуска компьютера. В сообщении ошибки, как правило, указывается следующая информация:

Необрабатываемое исключение в приложении. При нажатии кнопки «Продолжить» приложение проигнорирует ошибку и попытается продолжить работу. При нажатии кнопки «Выход» приложение немедленно завершит работу.

[нижняя часть сообщения может отличаться в зависимости от причины ошибки]

Компьютер пользователей также иногда могут полностью зависать при появлении данной ошибки. А иногда вместе с ошибкой могут возникать и другие проблемы, нехарактерные для стабильной работы системы. Что же вызывает эту неполадку?

Причины ошибки «Необрабатываемое исключение в приложении»

Существует несколько причин для появления этой ошибки, которую можно довольно просто исправить, как только вы поймете, что ее вызывает. Давайте посмотрим, какими могут быть причины.

  • Некорректно работающий антивирус. Как известно, некоторые бесплатные антивирусы, например, Panda Antivirus, могут стать причиной появления подобных проблем. Замена антивируса помогает в таком случае.
  • Определенные приложения и вредоносное ПО. Некоторые программы, работающие на компьютере, могут вызывать ошибку «Необрабатываемое исключение в приложении». Вредоносное ПО также не стоит исключать из списка подозреваемых. Проверка антивирусом и чистый запуск помогут разрешить ситуацию.
  • Поврежденные файлы Microsoft .NET Framework. Если важные файлы этой программной платформы были повреждены, то появление рассматриваемой ошибки практически неизбежно. Вы можете попытаться восстановить их, установить новую версию либо провести сканирование программной SFC.

Решение ошибки «Необрабатываемое исключение в приложении»

Метод №1 Удаление антивируса

Бесплатные антивирусы могут достаточно полезны в качестве защитника вашей системы, однако они также могут вызывать множество проблем на компьютере. Попробуйте заменить антивирус, который вы используйте в данный момент, на другой. Вот что вам потребуется сделать, чтобы удалить антивирус:

  1. нажмите правой кнопкой мыши на Пуск;
  2. кликните на пункт «Приложения и возможности»;
  3. найдите в списке установленных приложений ваш антивирус и выберите его;
  4. нажмите на кнопку «Удалить»;
  5. проследуйте инструкциям на экране для удаления антивируса;
  6. перезагрузите компьютер.

Проверьте, появляется ли ошибка «Необрабатываемое исключение в приложении» теперь, когда старого антивируса больше нет. Если проблема решена, то дело действительно заключалось в антивирусе, препятствующим нормальной работе вашей системы.

Метод №2 Выполнение чистого запуска

Различные программы и службы могут вызывать неполадки в работе Microsoft .NET Framework. Первый делом — убедитесь, что это не вина антивирусной программы. Если он не виноват, то стоит попробовать кое-что другое: чистый запуск системы. Выполняется он следующим образом:

  1. нажмите комбинацию Windows+R;
  2. впишите команду «msconfig» и нажмите Enter;
  3. перейдите во вкладку «Загрузка» и уберите галочку с пункта «Безопасный режим»;
  4. пройдите в «Общие», выберите «Выборочный запуск» и уберите галочку с пункта «Загружать элементы автозагрузки»;
  5. перейдите во вкладку «Службы», поставьте галочку возле «Не отображать службы Майкрософт» и нажмите кнопку «Отключить все»;
  6. во вкладке «Автозагрузка» нажмите на пункт «Открыть диспетчер задач»;
  7. во вкладке «Автозагрузка» диспетчера задач нажмите правой кнопкой мыши на каждую из программ и выберите «Отключить»;
  8. перезагрузите компьютер, а затем активируйте каждый из отключенных элементов поочередно, чтобы понять, в чем заключалась проблема.

Возможно, именно одна из отключенных проблем и вызывала ошибку «Необрабатываемое исключение в приложении».

Метод №3 Установка последней версии .NET Framework

На каждом компьютере должны быть установлены библиотеки .NET Framework различных версий. Они крайне важны как для корректной работы операционной системы Windows, так и для запуска современных программ и видеоигр.

  1. Воспользуйтесь данной ссылкой для загрузки установщика .NET Framework последней версии;
  2. после установки нажмите комбинацию Windows+R;
  3. в пустую строку впишите значение «control.exe» и нажмите Enter;
  4. нажмите на пункт «Удаление программы»;
  5. кликните на пункт «Включение или отключение компонентов Windows»;
  6. убедитесь, что все версии .NET Framework активированы в этом списке; активируйте, если какие-то из них не помечены;
  7. перезагрузите компьютер и проверьте, была ли решена проблема.

Метод №4 Использование утилиты SFC

Ошибка «Необрабатываемое исключение в приложении» могла появиться из-за повреждения некоторых системных файлов, включая и файлов .NET Framework. Чтобы это исправить, вы можете попробовать воспользоваться такой полезной системной программой, как System File Checker. Вот как ее запустить:

  1. нажмите Windows+R;
  2. напишите в пустую строчку «cmd» и нажмите Enter;
  3. впишите в вызванную командную строку «sfc /scannow» и нажмите Enter;
  4. по окончанию работы программы перезагрузите компьютер.

Использовав предложенные методы, вы обязательно устраните ошибку «Необрабатываемое исключение в приложении».

Источник

Ошибка «В вашем приложении возникло необработанное исключение» — как исправить?

Случается, что при запуске компьютера с операционной системой Windows появляется такая проблема, как необрабатываемое исключение в приложении net framework. Само сообщение об ошибке выглядит так и отображается в окне платформы microsoft.NET Framework:

Необрабатываемое исключение в приложении. При нажатии кнопки «Продолжить» приложение проигнорирует ошибку и попытаеться продолжить работу. При нажатии кнопки «выход» приложение немедленно завершит работу.

Ниже, тоже сообщение, но на английском языке

В чем причина ошибки «Unhandled exception has occurred in your application» в Windows и что делать?

Существует несколько простых причин из-за которых возникает эта проблема и устранить их достаточно легко, если правильно их выявить. Посмотрите список ниже:

Дело в антивирусе. Некоторые антивирусные программы, такие как Panda Antivirus, могут вызывать такую ошибку. Для того, чтобы проверить в антивирусе ли дело, временно отключите его или установите другой.

На компьютере могут быть установлены некоторые вредоносные программы или вирусы. Проверьте ваш компьютер и, если есть вирусы, удалите их.

Microsoft.NET Framework был неправильно установлен. Например из-за того, что файлы установщика содержали ошибку. В этом случае можно попробовать установить программу еще раз, скачать более новую версию с официального сайта Майкрософт.

Если это не поможет, выполните сканирование SFC (проверка и восстановление целостности системных файлов Windows).

Для этого в меню «Пуск»-«Выполнить» наберите cmd, а затем в командной строке команду: sfc /scannow. Система начнет сканировать файлы и через некоторое время выдаст результат.

Установка или устранение неисправностей в Microsoft.NET Framework

Нужно проверить состояние Microsoft.NET Framework — установлен ли он на компьютере? После чего, его можно либо установить (если установка не была проведена) или восстановить («отремонтировать»)

Какие действия нужно выполнить для установки или восстановления Microsoft.NET Framework:

Закройте все открытые программы.

Нажмите кнопку «Пуск» и выберите пункт «Выполнить». (Если у вас Windows10, используйте комбинацию клавиш на клавиатуре Win+R, где Win — клавиша с эмблемой Windows )

Наберите команду «control» в окне «Открыть» и нажмите кнопку «ОК». Откроется «Панель управления».

Выберите пункт «Программы и компоненты»

Просмотрите список программ, найдите Microsoft.NET Framework (на картинке ниже Microsoft.NET Framework установлен):

Если вы не нашли программу в списке, значит Microsoft.NET Framework у вас не установлен. Нажмите ]]> здесь ]]> , чтобы загрузить последнюю версию Microsoft .NET Framework с веб-сайта Microsoft. После чего проведите установку.

Если вы видите программу в списке (как на рисунке выше) и она не работает (работает неправильно, с ошибкой «необрабатываемое исключение в приложении net framework»), то нужно ее исправить (переустановить). Для этого:

Выберите Microsoft.NET Framework, а затем кликните правой кнопкой мыши и выберите «Изменить/Удалить».

В отрывшемся окне выберите команду «Восстановить исходное состояние .NET Framework», а затем нажмите «Далее».

Следуйте инструкциям, и потом перезагрузите компьютер

Если проблема не решена, попробуйте безопасную загрузку Windows.

Как выполнить безопасную загрузку?


Чтобы воспользоваться параметром безопасной загрузки, выполните следующие действия.

Нажмите перезагрузить и во время перезагрузки нажимайте клавишу F8 на клавиатуре.

Выберите опцию с помощью клавиш со стрелками на клавиатуре, когда появится меню дополнительных параметров Windows, а затем нажмите клавишу ENTER.

Мы рекомендуем запустить Windows в чистой среде загрузки, чтобы убедиться, что эта проблема не вызвана фоновой программой (выберите параметры как на рисунке выше).

После запуска компьютера проверьте, решена ли проблема с установкой Microsoft.NET Framework

Выполните поиск неисправностей аппаратного обеспечения

Любые аппаратные проблемы также могут быть причиной ошибки. Поэтому очень важно выполнить анализ аппаратных средств и устройств, чтобы исключить возможность того, что аппарат или устройство могут влиять на работу программы.

  1. Чтобы определить это оборудование, введите в окне запуска (Пуск -> Выполнить или WIN+R) следующую команду: «%systemroot%system32msdt.exe -id DeviceDiagnostic» и нажмите клавишу Enter или нажмите кнопку OK
  2. Следуйте инструкциям на экране, чтобы определить неисправное оборудование.
  3. Вы также можете исправить аппаратные проблемы на странице настроек, как показано на рисунке ниже.

Зайдите «Панель управления», кликните кнопкой мышки на стрелочку возле надписи и выберите «Все элементы панели управления», далее нажмите «Устранение неполадок» и следуйте инструкциям.

Источник

Как исправить ошибку «Необрабатываемое исключение в приложении .NET Framework»

После установки программы ее запуск может прерваться ошибкой «Необрабатываемое исключение в приложении», которая указывает на неполадки платформы Microsoft .NET Framework. Если и удастся ее запустить, нажатием на кнопку «Продолжить», то, скорее всего, будет работать некорректно. Сбой также может возникнуть при запуске игры, загруженной из Магазина Майкрософт, или после входа в Windows. В некоторых случаях в сообщении указывается конкретная причина ее возникновения.

Чем вызвана ошибка?

С ошибкой необрабатываемого исключения при запуске приложения можно столкнуться по ряду причин:

  1. В ходе установки некоторые компоненты ПО были перемещены антивирусом на карантин. Поэтому требуется временное отключение защиты в реальном времени или его замена другим антивирусным пакетом.
  2. Повреждены компоненты платформы .NET Framework.
  3. В системе присутствуют вредоносное ПО. Требуется полная проверка системы на вирусы.
  4. Запуску приложения препятствует фоновый процесс. Исключить его причастность можно в режиме чистой загрузки.

Замена антивирусной программы

Для проверки причастности антивируса к этой ошибке, во время установки приложения отключите защиту в реальном времени. Но это действие не всегда решает проблему, особенно, когда используете бесплатный антивирус. Поэтому попробуйте его удалить. Если выяснится, что он был причиной сбоя, замените другим антивирусным пакетом или активируйте Защитника Windows.

Откройте Панель управления с помощью системного поиска или командой control , запущенной из окна «Выполнить» (Win + R).

Переключите просмотр на категории в правом верхнем углу и кликните на вкладку «Удалить программы».

Найдите в списке антивирус, щелкните по нему правой кнопкой мыши и выберите «Удалить». Следуйте инструкциям на экране до завершения удаления.

После перезагрузки компьютера попробуйте открыть приложение, которое вызвало ошибку о необрабатываемом исключении.

Запуск в режиме чистой загрузки

Программы и службы сторонних разработчиков, работающие в фоновом режиме, могут повлиять на правильную работу пакета Microsoft .NET Framework. Чтобы исключить вмешательство фоновых процессов в запуск приложения, рекомендуется выполнить чистую загрузку, которая отключит все стороннее программное обеспечение. В этом режиме можно выяснить, какая программа вызывает ошибку.

Перейдите в конфигурацию системы командой msconfig , запущенной из окна командного интерпретатора (Win + R).

В меню Службы отметьте флажком опцию «Не отображать службы Майкрософт» и кликните на кнопку «Отключить все».

В меню Автозагрузка нажмите на «Открыть диспетчер задач». Отключите все программы, которые присутствуют в списке, и перезагрузите компьютер.

Если в режиме чистой загрузки удалось открыть приложение без ошибки необрабатываемого исключения, то причина в стороннем программном обеспечении. Чтобы обнаружить проблемное ПО, включите несколько программ и служб, перезагрузите компьютер и запустите приложение. Повторяйте это действие до тех пор, пока при запуске приложения не появится ошибка. После выявления проблемного ПО, переустановите его или удалите. Если это служба, обновите ту программу, которая ее запускает, или остановите ее.

Установка последней версии .NET Framework

Ошибку необрабатываемого исключения можно решить путем установки последней версии платформы. Для этого с сайта Microsoft, на который можно перейти по запросу «download net framework», загрузите последнюю версию пакета.

Запустите загруженный файл и следуйте инструкциям на экране. Если после этого продолжаете сталкиваться с проблемой, выполните следующие шаги.

Откройте раздел Компоненты и программы командой appwiz.cpl из окна «Выполнить».

В левой панели щелкните на «Включение или отключение компонентов Windows».

Найдите версии.NET Framework и проверьте, отмечены ли они флажком. Если нет, после установки флажков сохраните изменения на «ОК», и перезагрузите компьютер.

Если флажки были установлены, попробуйте повторно инициализировать платформу. Для этого снимите их и перезагрузите ПК, затем снова активируйте.

Также исправить повреждения установленных пакетов можно с помощью инструмента восстановления. Загрузите его из сайта, который доступен по запросу «средство восстановления .NET Framework».

После загрузки запустите диагностику и следуйте инструкциям до ее завершения.

Восстановление системных файлов

Если продолжаете сталкиваться с ошибкой необрабатываемого исключения, то, скорее всего, она произошла из-за повреждения dll библиотек, к которым обращается приложение при запуске. Для их восстановления проверьте Windows на наличие повреждений командами SFC и DISM.

Откройте командную строку с правами администратора с помощью поиска Windows или из меню Win + X.

Проверьте систему командой sfc /scannow .

После ее завершения перезагрузите компьютер и выполните следующую:

DISM /Online /Cleanup-Image /RestoreHealth

После завершения перезапустите систему. Попробуйте открыть приложение, которое прерывалось сообщением о необрабатываемом исключении.

Источник

Ошибку «Необрабатываемые исключения в приложении» пользователь может встретить при запуске программы или игры. При этом, причин возникновения проблем может быть несколько. Стоит попробовать разные способы решения, чтобы устранить ошибку.

Что за ошибка, почему возникает?

При запуске приложения, пользователь может обнаружить ошибку «Необрабатываемое исключение в приложении» (an unhandled exception has occurred). При этом будет предложено два пути решения. Можно нажать на «Продолжить», тогда система попробует проигнорировать проблему, но это редко срабатывает. При нажатии на «Выход», программа будет закрыта.

Неисправность «Необрабатываемые исключения в приложении» связана с очень важным компонентом в системе Microsoft .NET Framework. Это небольшое приложение, в котором прописаны готовые части кода. При создании софта для компьютера, программист обращается к данному пакету для вызова уже готовых решений, например, для прорисовки окон.

Прежде чем начинать исправление, рекомендуется выяснить, по какой причине она возникает. Их может быть несколько. Так, если антивирусное ПО некорректно работает, то оно может вызывать проблему. Особенно, это касается бесплатных антивирусов.

Пользователь может наблюдать данное сообщение, если компьютер заражен вирусами. Также, могут быть повреждены файлы Microsoft .NET Framework, которые и вызывают проблему.Что за ошибка

Как исправить ошибку?

Пользователь должен выяснить, почему возникла ошибка платформы Microsoft .NET Framework «Необрабатываемое исключение в приложении», прежде чем ее исправлять. Это позволит сэкономить время. К тому же так получится решить проблему намного быстрее. Если же установить причину не получается, рекомендуется попробовать несколько способов.

Проверка требований нового приложения

Если сообщение появилось после установки новой программы или игры, значит проблема именно в ней. В таком случае, следует проверить требования. Иногда, системе необходима установка дополнительных компонентов для правильной работы. К ним относятся DirectX или различные библиотеки.

Обычно такие компоненты устанавливаются вместе с игрой, но пользователь может отменить данное действие. Если дистрибутивов не хватает, то их требуется загрузить, но только с официального сайта. После установки, приложение должно работать стабильно.

Удаляем или отключаем антивирус

Причина ошибки «Необрабатываемые исключения в приложении» может заключаться в некорректно работающей антивирусной программе. Или же, если при установке антивирус нужно отключать. В редких случаях, бывает, что антивирус определяет часть кода, как вирусную и блокирует установку приложения. Или разрешает установку, но удаляет один из файлов.

Для начала необходимо попробовать отключить антивирус, кликнув правой кнопкой мыши по специальному значку и выбрав соответствующую команду. После этого, нужно снова запустить программу.

Внимание! Подобные действия стоит проводить, если пользователь уверен в безопасности запускаемого приложения!

Также, можно переустановить антивирусное ПО. Рекомендуется устанавливать надежные средства, которые будут защищать компьютер, а не препятствовать его работе.

Чистый запуск системы

Если антивирус не является причиной, то можно попробовать другой способ. Запущенные службы могут мешать выполнению программы. Тогда, их следует отключить. Для этого необходимо соблюдать инструкцию:

  1. Нажать на сочетание клавиш «Win+R» и ввести «msconfig».Окно Выполнить
  2. В открытом окне «Конфигурация системы», перейти во вкладку «Загрузка».Конфигурация системы
  3. Убрать флажок с пункта «Безопасный режим».Безопасный режим
  4. Перейти во вкладку «Общие».Общие
  5. Снять флажок с пункта «Загружать элементы автозагрузки», который находится в разделе «Выборочный запуск».Загружать элементы автозагрузки
  6. Открыть вкладку «Службы».Службы
  7. Установить галочку в пункте «Не отображать службы Майкрософт», затем кликнуть на «Отключить все».Отключить все
  8. Перейти в раздел «Автозагрузка».Автозагрузка
  9. Кликнуть на «Отрыть диспетчер задач».Отрыть диспетчер задач
  10. Отключить все службы, кликнув правой кнопкой мыши и выбрав соответствующую команду.Отключить все службы

После этого, необходимо перезагрузить компьютер и включать каждую службу по очереди. Таким образом получится проверить, что именно влияет на возникновения ошибки.

Устанавливаем последнюю версию NET Framework

На компьютере должны быть установлен NET Framework. При установке новой программы, система проверяет наличие библиотек или устанавливает их. Но в некоторых случаях, они не обновляются. Это может стать причиной возникновения неисправности.

Чтобы исправить ошибку «Необрабатываемые исключения в приложении», нужно переустановить NET Framework. Скачивать программу следует только с официального сайта. После установки, необходимо перезагрузить компьютер и попробовать загрузить приложение, которое выдавало ошибку ранее.

Проверка целостности

Сообщение с ошибкой часто отображается на экране в том случае, когда некоторые системные файлы повреждены. В том числе, это может быть и NET Framework. Пользователь может проверить важные файлы на целостность при помощи системной утилиты System File Checker (sfc).

Для запуска проверки пользователю нужно запустить командную строку от имени администратора. Найти ее можно в Пуске или с помощью поиска. Также, можно нажать на сочетание клавиш «Win+R» и ввести в поле «cmd».Запуск консоли

В окне командной строки, нужно ввести «sfc /scannow» и нажать на Enter. Как только сканирование будет завершено, пользователю нужно перезагрузить компьютер. Затем, следует запустить программу и проверить, не исчезла ли ошибка.Проверка ошибок

Переустановка программы вызывающей ошибки

Если неисправность возникла сразу после установки приложения, возможно не загрузились нужные компоненты или они были повреждены в процессе. В таком случае, следует переустановить программу.

Скачивать ее лучше с официального сайта, чтобы избежать ошибок при запуске. После завершения установки, следует проверить, была исправлена ошибка или нет.

Проверка пути установки приложения

Существует большое количество программ и игр, которые не воспринимают кириллицу. Но пользователи часто указывают название папок на русском. Это может стать причиной возникновения сбоя.

Чтобы решить проблему, необходимо проверить путь к файлу. Если в нем присутствует кириллица, рекомендуется изменить местонахождение файла. Так, можно переименовать все папки, которые находятся на пути к файлу или переместить саму программу.Путь к программе

Стоит заметить, что это правило не касается системных папок. Например, такие папки, как загрузка, мои документы, рабочий стол и т.п., видятся системой, как documents, downloads, desktop. А вот имя компьютера и папки устанавливаемых пользователем приложений будут отображаться на том языке, на котором задано название.

Обновление драйверов

Проблема также может заключаться в устаревших или неправильно настроенных драйверах. Чтобы это проверить, следует перейти в «Диспетчер устройств», открыв свойства компьютера. Здесь следует проверить все драйвера на работоспособность.Свойства устройства

При необходимости, драйвера нужно обновить. Загружать их рекомендуется только с официального сайта. В противном случае, могут возникать различные сбои и ошибки, компьютер не будет работать стабильно.

Понравилась статья? Поделить с друзьями:
  • Как исправить ошибку в league of legends
  • Как исправить ошибку в outlast
  • Как исправить ошибку в icloud
  • Как исправить ошибку в openiv
  • Как исправить ошибку в hosts