Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для DaraChernyshova
2 / 2 / 0
Регистрация: 06.03.2021
Сообщений: 248

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

27.10.2021, 22:50. Показов 1064. Ответов 3

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var x, a, b:longint; 
begin
  a:=0; 
  b :=0;
for var z:= 500 downto 1 do begin 
x:=z;
 
 
while x >0 do begin 
if x mod 2=0 then 
a:= a+x mod 3
else 
b:= b + x mod 5; 
x:= x div 3; 
end;
 if a=5 then
   if b=9 then
writeln(z);
end;
end.
Причём такие вылеты не зависят от значений z
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2021, 22:50
Ответы с готовыми решениями:

Программа вылетает при запуске
Писал игру. Выкладывал в группу вк бетки. Ненадолго забил. Решил вернуться и бац: при запуске из IDE всё работает, а при запуске из...

Программа вылетает при запуске
День всем добрый! Я недавно заметил такую особенность. Если размещать файл программы по директории, содержащей русские символы,...

Вылетает программа при ее запуске
Заданы две квадратные матрицы B и C порядка n. Вычислить матрицу А, каждый элемент которой определяется по формуле: ai,j {bi,j если...

3
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
28.10.2021, 04:29
Х/З что должна делать ваша программа, но она не вылетает.
Она тупо отрабатывает и благополучно завершается.
А то, что она ни чего не выводит, так потому, что не случается у неё так, чтобы а и b были сразу равны 5 и 9 соответственно…
При z=500 значение a=5, b=0 — т.е. проходит первое условие.
На следующем цикле при z=499 уже a=8, b=4 — всё уже первое условие никогда не сработает!
1
 Аватар для DaraChernyshova
2 / 2 / 0
Регистрация: 06.03.2021
Сообщений: 248
28.10.2021, 10:47  [ТС]
Ниже записан алгоритм. Получив на вход число `x`, этот алгоритм печатает два числа `a` и `b`. Укажите наименьшее из таких чисел `x`, при вводе которых алгоритм печатает сначала `5`, а потом `9`. Ответ обосновать.

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
var x, a, b:longint;
 
begin readln(x);
 
 a:=0;
 
b :=0;
 
while x >0 do begin
 
if x mod 2=0 then
 
a:= a+x mod 3
 
else
 
b:= b + x mod 5;
 
x:= x div 3;
 
end;
 
writeln(a);
 
write(b);
 
end.

Вот такое вот задание. Понимаю, что моя программа не универсальна (там ответ 627), но всё же не понимаю, почему с другими границами она не срабатывает

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var x, a, b:longint; 
begin
  a:=0; 
  b :=0;
for var z:= 800 downto 600 do begin 
x:=z;
 
 
while x >0 do begin 
if x mod 2=0 then 
a:= a+x mod 3
else 
b:= b + x mod 5; 
x:= x div 3; 
end;
 if a=5 then
   if b=9 then
writeln(z);
end;
end.
В чём ошибка?

А нужный ответ мне выдала:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
 x,a,b,n: longint;
begin
 n:=0;
 while (a<>5) or (b<>9) do begin
   a:=0;    b:=0;    x:=n;
   while x>0 do begin
     if x mod 2=0 then
       a:=a+x mod 3
     else
       b:=b+x mod 5;
     x:= x div 3
   end;
   inc(n); 
 end;
 writeln(n);
 
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
28.10.2021, 11:34
Лучший ответ Сообщение было отмечено DaraChernyshova как решение

Решение

Ваша программа вообще ни в какие…

Сначала привести код в „читабельное“ состояние:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var x, a, b:longint;
begin
  readln(x);
  a:=0;
  b :=0;
  while x >0 do
    begin
      if x mod 2=0 then
        a:= a+x mod 3
      else
        b:= b + x mod 5;
      x:= x div 3;
    end;
  writeln(a);
  write(b);
end.
Затем избавиться от ввода, организовав цикл с условием выхода из него:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var x, a, b, n:longint;
begin
  {readln(x);}
  n:=0;
  repeat
    inc(n);
    x:=n;
    a:=0;
    b :=0;
    while x >0 do
      begin
        if x mod 2=0 then
          a:= a+x mod 3
        else
          b:= b + x mod 5;
        x:= x div 3;
      end;
  until (a=5)and(b=9);
  writeln(a);
  writeln(b);
  WriteLn(n);
end.
После запуска получается 626

Можно добавить типа трассировки „как так получается“
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
var x, a, b, n:longint;
begin
  {readln(x);}
  n:=0;
  repeat
    inc(n);
    x:=n;
    a:=0;
    b :=0;
    while x >0 do
      begin
        if x mod 2=0 then
          a:= a+x mod 3
        else
          b:= b + x mod 5;
        x:= x div 3;
      end;
  until (a=5)and(b=9);
  writeln(a);
  writeln(b);
  WriteLn(n);
 
  WriteLn(' -- x -- a -- b --');  
    x:=n;
    a:=0;
    b :=0;
    while x >0 do
      begin
        if x mod 2=0 then
          a:= a+x mod 3
        else
          b:= b + x mod 5;
  WriteLn(x:5,a:5,b:5);
        x:= x div 3;
      end;
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2021, 11:34
Помогаю со студенческими работами здесь

Программа вылетает при запуске
День всем добрый! Я недавно заметил такую особенность. Если размещать файл программы по каталогу, содержащему русские символы,...

Программа вылетает при запуске. OutOfMemryError
Здравствуйте, уважаемые разработчики! Моя программа вылетает сразу при запуске. Вот код ошибки: ava.lang.OutOfMemoryError: Failed to...

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

Метод Ньютона, при запуске вылетает с ошибкой exitcode 207?В чем дело?
Program Equation; const eps=1e-6; var x,x_0:real; function f(x:real):real; begin ...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru