Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
sergei3ru
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 798
1

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

16.10.2012, 13:11. Просмотров 4070. Ответов 6
Метки нет (Все метки)

Есть такая задача...

Пройдет ли кирпич со сторонами а, b и с сквозь прямоугольное отверстие со сторонами r и s? Стороны отверстия должны быть параллельны граням кирпича.

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
program z1;
var
a, b, c, x, y : integer;
procedure Swap(var z1, z2 : integer);
var
tmp : integer;
begin
tmp := z1;
z1 := z2;
z2 := tmp;
end;
begin
Write('Введите размеры кирпича (a, b, c): ');
ReadLn(a, b, c);
Write('Введите размеры отверстия (x, y): ');
ReadLn(x, y);
if a > b then
Swap(a, B);
if b > c then
Swap(b, c);
if a > b then
Swap(a, B);
if x > y then
Swap(x, y);
if (x >= a) and (y >= B) then
Write('Кирпич пройдет через отверстие')
else
Write('Кирпич не пройдет через отверстие');
ReadLn;
end.

Так вот, поясните, пожалуйста, зачем в данном случае мы используем пере присваивание tmp := z1;
z1 := z2;
z2 := tmp;

и процедура эта зачем procedure Swap(var z1, z2 : integer);
Учусь...вот и спрашиваю, как все грамотно сделать!Помогите, пожалуйста!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 13:11
Ответы с готовыми решениями:

Пройдет ли кирпич со сторонами a и b в прямоугольное отверстие с сторонами х и у
1) Пройдет ли кирпич со сторонами a и b в прямоугольное отверстие с сторонами х и у?

Определите, пройдет ли кирпич с рёбрами a,b,c в прямоугольное отверстие со сторонами x и y.
Определите, пройдет ли кирпич с рёбрами a,b,c в прямоугольное отверстие со сторонами x и y....

Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x, y
107. Даны действительные положительные числа a, b, c, x, y.Выяснить, пройдет ли кирпич с ребрами a,...

Выяснить, пройдет ли кирпич с ребрами a, b,c в прямоугольное отверстие со сторонами x, y
Даны действительные положительные числа a, b, c, x, y.Выяснить, пройдет ли кирпич с ребрами a, b,c...

Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x и y
на 1. не могу сообразить, что именно сделать надо((, а 2ая требует разнообразия... 1. Даны...

6
MayaNash
1291 / 460 / 151
Регистрация: 24.08.2011
Сообщений: 2,248
16.10.2012, 13:34 2
sergei3ru, эта процедура меняет местами числа. т.е. допустим у нас a = 5, b = 3. после swap(a,b) будет a = 3, b = 5.

переприсваивание - смотрите что получается. допустим z1 = 3, z2 = 5. после z1 := z2 z1 = 5. и все. мы уже не можем поменять местами. поэтому мы запоминаем что было в z1, z1 присваиваем z2, и z2 присваиваем то, что мы запомнили.
0
sergei3ru
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 798
16.10.2012, 14:01  [ТС] 3
Ясно!А в данной задаче зачем это вообще надо делать?

Добавлено через 20 минут
Зачем нам тут перестановка значений, если нам просто надо узнать, входит кирпич в отверстие или нет?Вот это я пока не понимаю!
0
MayaNash
1291 / 460 / 151
Регистрация: 24.08.2011
Сообщений: 2,248
16.10.2012, 14:09 4
sergei3ru, я тоже не знаю зачем это надо. вернее, здесь это действительно не надо. достаточно будет одного условия.
0
sergei3ru
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 798
16.10.2012, 14:12  [ТС] 5
Значит можно без процедуры все прописать?через and или or?
0
MayaNash
1291 / 460 / 151
Регистрация: 24.08.2011
Сообщений: 2,248
16.10.2012, 14:39 6
sergei3ru, ага
0
sergei3ru
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 798
16.10.2012, 15:06  [ТС] 7
А если вот так...но там а else не получается...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
program z1;
var
a,b,c,x,y:integer;
begin
writeln('vvedite storonu kirpicha');
readln(a,b,c);
writeln('vvedite storonu otverstia');
readln(x,y);
if ((a<=x) and (b<=y)) or ((a<=y) and (b<=x)) then writeln('kirpich projdet ploschinoj a=',a,' i b=',b);
if ((a<=x) and (c<=y)) or ((a<=y) and (c<=x)) then writeln('kirpich projdet ploschinoj a=',a,' i c=',c);
if ((b<=x) and (c<=y)) or ((b<=y) and (c<=x)) then writeln('kirpich projdet ploschinoj b=',b,' i c=',c)
else writeln ('Кирпич не пройдет');
end.
Добавлено через 11 минут
Это если еще и перпендикулярно можно вставлять кирпич, а если только параллельно граням, то этот код подойдет?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program z1;
var a,b,x,y,z:integer;
begin
writeln('ГђГ*çìåðû îòâåðñòèÿ, a,b:');
readln(a,b);
writeln('ГђГ*çìåðû êèðïè÷Г* x,y,z:');
readln(x,y,z);
if ((x<a)and(y<b))
 or((x<b)and(y<a))
 or((x<a)and(z<b))
 or((z<b)and(x<a))
 or((y<a)and(z<b))
 or((z<b)and(y<a))
 then write('Yes!') else write('No!');
readln
end.
0
16.10.2012, 15:06
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 15:06

Использование сложных условий. Выяснить, пройдет ли кирпич с ребрами а, b, с в прямоугольное отверстие со сторонами х и у
Даны вещественные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами а, b, с...

Пройдет ли кирпич в прямоугольное отверстие
Даны действительные положительные числа а, b, с, х, у. Выяснить, пройдет ли кирпич с ребрами а, b,...

Выяснить, пройдет ли кирпич в прямоугольное отверстие
Даны вещественные положительные числа a, b, c, x, y. Выяснить пройдет ли кирпич с ребрами a, b, c в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru