Исправьте пожалуйста ошибку сам я не в силах понять где она
{x & 29 ≠ 0 → (x & 17 = 0 → x & А ≠ 0)}
var a,x,flag:integer;
begin
flag:=0; for a:=1 to 1000 do begin
for x:=1 to 1000 do begin
if((x and 29 <>0)=((x and 17 = 0) =( x and a <>0)))=false then begin
flag:=1;
break;
end;
end;
if flag=0 then write(a);
end;
end.
Другие языки программирования и технологии
Помогите с программированием на pascal (конъюнкции)
1. Битовый and на Паскале выглядит как &, то есть будет что-то типа if (x & 29 <> 0) ...остальные битовые здесь:
https://www.tutorialspoint.com/pascal/pascal_bit_operators.htm
2. Импликация реализуется через if then ...а не через сравнение пучка условий, т. е.
if (x & 29 <> 0) then
if (x & 17 ...
3. Не указано собственно условие задачи. Это основная ошибка. Поэтому приходится гадать, что именно требуется вывести.
4. flag:=1;
break; {Здесь произойдет выход только из вложенного цикла, верхний продолжит крутится и портить значение a. Для двойного выхода нужно убрать for, заменив их на while с проверкой флага}
5. if flag=0 then write(a); - почти наверняка по условию нужно было выводить значение a, при котором условие справедливо, т. е. флаг надо сравнивать с 1
https://www.tutorialspoint.com/pascal/pascal_bit_operators.htm
2. Импликация реализуется через if then ...а не через сравнение пучка условий, т. е.
if (x & 29 <> 0) then
if (x & 17 ...
3. Не указано собственно условие задачи. Это основная ошибка. Поэтому приходится гадать, что именно требуется вывести.
4. flag:=1;
break; {Здесь произойдет выход только из вложенного цикла, верхний продолжит крутится и портить значение a. Для двойного выхода нужно убрать for, заменив их на while с проверкой флага}
5. if flag=0 then write(a); - почти наверняка по условию нужно было выводить значение a, при котором условие справедливо, т. е. флаг надо сравнивать с 1
Мишаня Отставнов
вроде исправил ошибки, компиляция прошла успешно, но ответа в окне вывода нет, о чем это вообще говорит
Дмитрий Екамасов
что такой пары в диапазоне 1 ...1000 нет
Дмитрий Екамасов
Либо что по прежнему некорректно записано условие
у меня после небольшой правки нет ошибок
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
{ TODO -oUser -cConsole Main : Insert code here }
{ x & 29? 0 > (x & 17 = 0 > x & А? 0) }
var a,x,flag:integer;
begin
flag:=0; for a:=1 to 1000 do begin
for x:=1 to 1000 do begin
if((x and 29 <>0)=((x and 17 = 0) =( x and a <>0)))=false then begin
flag:=1;
break;
end;
end;
if flag=0 then write(a);
end;
end.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
{ TODO -oUser -cConsole Main : Insert code here }
{ x & 29? 0 > (x & 17 = 0 > x & А? 0) }
var a,x,flag:integer;
begin
flag:=0; for a:=1 to 1000 do begin
for x:=1 to 1000 do begin
if((x and 29 <>0)=((x and 17 = 0) =( x and a <>0)))=false then begin
flag:=1;
break;
end;
end;
if flag=0 then write(a);
end;
end.
Александр Морозов
Вы как-то отличаете ошибки компиляции от логических ошибок в решении задачи?
Похожие вопросы
- Помогите с программированием на Pascal ABC
- Здравствуйте! помогите пожалуйста выполнить зачётные задания по программированию на Pascal
- Программирование на pascal
- Олимпиадная задача по программированию в Pascal (Free, ABC.net) 10 класс! Помогите решить?)
- Помогите с программированием С++. Заранее спасибо.
- Программирование на PASCAL
- 1.Рекурсия в языке программирования Borland Pascal 7.0. 2.Понятие и виды информации. Ее свойства.
- Программирование. Матрицы. Pascal.
- программирование в pascal. Даны 3 числа. Определить сколько среди них нулей
- С чего лучше начать изучение программирования? С Pascal или можно сразу с Java?