IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Прямоугольник - колличество квадратов в нем
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Помогите пожалуйста с решением:
1)Заданы размеры прямоугольника (вводятся 2 целых числа), Найти и напечатать покрытие этого прямоугольника наименьшим колличеством квадратов(список длинн сторон)

Задается целое число(вводится с клавиатуры), вывести по одной цифре(с повторами), из которых состоит это число

Сообщение отредактировано: darkdrive -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


1 - такая реализация пойдет ? smile.gif
procedure kw (x,y:integer);
begin
if x=y then writeln (x,'x',x) else
begin
if x<y then begin
writeln (x,'x',x); kw (x,y-x);
end else begin
writeln (y,'x',y); kw (x-y,y);
end;
end;
end;

2- задача на div и mod, в факе есть куча примеров наверняка.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Можно по подробнее, дело в том что я в паскале никогда не работал, пишу на php,vb. С синтаксисом слабо знаком, попросили помочь с задачами, запустить эту так и не смог. Можно полноценно работающую программу, с вводом сторон с клавиатуры??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(darkdrive @ 19.12.2007 0:08) *

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

То, что было +:
var x,y:integer;
begin
write ('X='); readln (x);
write ('Y='); readln (y);
kw(x,y);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


угу, пасиб, работает, а если добавить условие - заполнить квадратами одинакого размера? smile.gif)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(darkdrive @ 19.12.2007 1:34) *

угу, пасиб, работает, а если добавить условие - заполнить квадратами одинакого размера? smile.gif)))

Тогда просто ищешь наибольший общий делитель - это и есть сторона крадрата.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


а реализацию на паскале можно?? )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
а реализацию на паскале можно??

конечно можно. не стесняйся, пиши.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


ну я серьезно, надо решить задачу, помогите плизз, хотяб формулу математическую... лучше конечно пример
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Пока ничего серьезного с твоей стороны не вижу.
ПОМОЧЬ можно только человеку, который сам что-то делает.
Можно, конечно, что-то сделать ВМЕСТО человека, но вряд ли это следует считать помощью.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(darkdrive @ 20.12.2007 23:29) *

хотяб формулу математическую...

Тут, мне кажется, можно помочь. Формулы, тут, правда, нету.

Как я понял, тебе нужно равными квадратами заполнять.
В самом простом варианте -
Проверяешь, не делится ли большее число на меньшее.
Если да - задача решена, меньшее число и есть сторона квадрата.
Если нет - проходишь диапазон от примерно половины меньшего числа до 1 и проверяешь, делятся ли стороны прямоугольника (обе) на это число. Если делится - это ответ.

Примеры:
1. 30х10. 30 делится на 10. Ответ: квадрат 10х10

2. 40х24. 40 не делится на 24. Проверяем, начиная с 12:
12 - 40 не делится
11 - оба не делятся
10 - 24 не делится
9 - оба не дел
8 - оба делятся.
Ответ: 8х8


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Да, но ведь квадраты не обезательно должны быть целыми числами, ну например,
прямоугольник 2,6 на 9,1
Квадраты понятное дело будут 1,3 если посмотреть внимательно... но прямоугольник может быть сколь угодно большим, ну например 13654,4564327 на 167654,4675632
И что тогда...
Но все равно, всем спасибо за ответы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


ты бы хоть читал что пишешь ...

Цитата(darkdrive)
1)Заданы размеры прямоугольника (вводятся 2 целых числа),


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


мда, пардон.... просто изначально задача была с целыми числами, и разных размеров квадраты...
А потом дали похожую на ту...


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

Сообщение отредактировано: darkdrive -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Все равно перебором, примерно так:

....
e:=false; n:=0;
repeat
inc (n);
if frac(y/(x/n))<0.0001 {сколько надо} then
begin
writeln (n, ' x ',round(y/(x/n)),'(', (x/n):0:5,')'); e:=true;
end;
until e;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 5:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name