Предмет: Информатика, автор: anastasiyayeranova

Что здесь не так? 7 строчка: Форматное выражение может использоваться только внутри write, writeln и str.

Сама программа:
program n_1;
var x1, x2, y1, y2, x, y: integer;
a: Boolean;
begin
writeln ('Введите значения координат');
readln (x1, x2, y1, y2, x, y);
a:= (x>x1)and(x<2)and(y>y2)and(y<y1);
writeln ('x=a');
writeln ('y=a');
writeln ('Точка с координатами принадлежит прямоугольнику', a);
end.


Deniva1: что не робит?
anastasiyayeranova: 7 строчка, пишет про форматное выражение
Deniva1: попробуй онлайн компилятор, в нем робит
Deniva1: и х2 у тебя ни где не исп
Giammy: Сказать честно, здесь много чего "не так"
anastasiyayeranova: Например?
Giammy: Я так понимаю, должно быть ветвление
Giammy: Проверяющее равность
Giammy: Впринципе, программа рабочая но
Giammy: Ща напишу как бы я сделал

Ответы

Автор ответа: elenaklon
1
program n_1;
var x1, x2, y1, y2, x, y: integer;
a: Boolean;
begin
writeln ('Введите значения координат');
readln (x1, x2, y1, y2, x, y);
a:= (x>x1)and(x<x2)and(y>y1)and (y<y2);
writeln ('Точка с координатами принадлежит прямоугольнику ', a);
end.

И мне кажется, что было бы удобнее вводить сначала одни координаты (x1,y1), а затем другие (x2,y2)...

Giammy: (y>y2)and(y<y1) тут все было верно
elenaklon: Я думала. Точка принадлежит прямоугольнику, если (x1<x<x2) и (y1<y<y2). Пойду почитаю матчасть... )))
Giammy: Хотя может и мне нужно мат.часть учить :/
Giammy: А зависит с какой стороны на вершины смотреть
Giammy: Если брать за вершины верх левый и низ правый то будет правильно (y>y2)and(y<y1)
Giammy: Если брать за вершины низ левый и верх правый то будет правильно (y>y1)and (y<y2)
elenaklon: Что-то я туплю... Тогда разве x не должны тоже меняться?
Giammy: х местами не меняется он как был справа и с лева так и остался, он поменял свое положение сверху вниз и наоборот
Giammy: Если не понимаете могу графически объяснить)
Автор ответа: Giammy
1
Как бы написал я:

program n_1;
var x1, x2, y1, y2, x, y: integer;
begin
writeln ('Введите значения координат(x1,x2,y1,y2,x,y):');
readln (x1, x2, y1, y2, x, y);
if (x>x1) and (x<x2) and (y>y2) and (y<y1) then writeln('Точка с координатами (',x,';',y,') пренадлежит прямоугольнику')
     else writeln('Точка с координатами (',x,';',y,') не пренадлежит прямоугольнику');
end.

Булевой переменной не нужно, она же 1 раз используется.
Далее, ошибка была  (x<2) нужно было

Ну или если только без ошибки, то вот:

program n_1;
var x1, x2, y1, y2, x, y: integer;
a: Boolean;
begin
writeln ('Введите значения координат');
readln (x1, x2, y1, y2, x, y);
a:= (x>x1)and(x<x2)and(y>y2)and(y<y1);
writeln ('Точка с координатами принадлежит прямоугольнику ', a);
end.


anastasiyayeranova: Паскаль пишет, мол, неожиданный символ ''' в 7 строчке: с координатами (',x,';',y,')
anastasiyayeranova: Тут нормально же всё
Giammy: program n_1;
var x1, x2, y1, y2, x, y: integer;
a: Boolean;
begin
writeln ('Введите значения координат');
readln (x1, x2, y1, y2, x, y);
a:= (x>x1)and(x<x2)and(y>y2)and(y<y1);
writeln ('Точка с координатами принадлежит прямоугольнику ', a);
end.
Giammy: Это попробуйте скопировать
anastasiyayeranova: Воооот
anastasiyayeranova: Спасибо большое!
anastasiyayeranova: :)
Giammy: Сделайте рисунок и проверьте
Giammy: За вершины прямоугольника берите верх левый и низ правый
Giammy: Должно работать)
Похожие вопросы
Предмет: Математика, автор: sveta24041969