PDA

Просмотр полной версии : Программа на паскале,нужна помощь



AlexS
29.05.2006, 16:04
Люди,мне тут задачку нужно на паскале написать.
Помогите плиз,очень нужно.

Только я на 2-ом курсе,так что по возможности без массивов,создания пользовательских функций и т.д.

Вот задачка:


Женщина шла на базар продавать яйца.Её случайно сбил с ног всадник,в результате чего все яйца разбились.Всадник предложил оплатить убытки и спросил,сколько у неё было яиц.Женщина сказала,что точного числа не помнит,но когда она брала яйца парами, то оставалось одно яйцо.Одно яйцо оставалось также когда она брала по 3,4,5 и 6 яиц,но когда она брала по 7 штук,то в остатке ничего не было.

Какое минимальное число яиц могло быть в корзине?

Помогите,а то я уже запарился http://img508.imageshack.us/img508/3301/sugarwarez1637rx.gif

Alexandr
29.05.2006, 16:45
Кратное 7, неделящееся на 3,4,5,6 без остатка, нечетное. Программа для 7 класса. И массив тут наф не нужен.

pEtr0
29.05.2006, 16:59
91 и без паскаля понятно :)

Надо найти минимальное число вида 30*х + 1 которое делится на 7... проверкой можешь убедится что х=3. А для программы напишешь один цикл, и все получится :)

Inky
29.05.2006, 17:14
DWORD i = 1;

for ( ; i<sizeof(DWORD); ++i )

if ( i%2 == 1 && i%3 == 1 && i%4 == 1 && i%5 == 1 && i%7 == 0) break;

cout << i;

В паскаль сам переводи.

AlexS
29.05.2006, 17:36
91 и без паскаля понятно

На другом форуме другой ответ,пока не знаю кто тут прав.


DWORD i = 1;

for ( ; i<sizeof(DWORD); ++i )

if ( i%2 == 1 && i%3 == 1 && i%4 == 1 && i%5 == 1 && i%7 == 0) break;

cout << i;

Переведите кто-нибудь,а то я только Бэйсик,да Паскаль...

!Vlad
29.05.2006, 20:58
У меня так получилось



i:=1;
while not( ((i-1) div 2 = (i-1)/2) and
((i-1) div 3 = (i-1)/3) and
((i-1) div 4 = (i-1)/4) and
((i-1) div 5 = (i-1)/5) and
((i-1) div 6 = (i-1)/6) and
((i) div 7 = (i)/7) ) do
begin
i:= i+1;
end;


(красивее как-то сделать с вложенными цыклами чтобы от 2 до 6 переменням бегала :-)

результат - 301
Вроде всем условиям удовлетворяет :-)






end.

!Vlad
29.05.2006, 21:05
+ архивчик

!Vlad
29.05.2006, 21:09
...

Inky
30.05.2006, 11:09
Перевожу в Turbo Pascal 5.0 и выше.

program shit;

uses crt;

var

i : word;

begin

for i:= 1 to 65535 do begin

if (i mod 2 = 1) and (i mod 3 = 1) and (i mod 4 = 1) and (i mod 5 = 1) and (i mod 7 = 0) then break;

end;

writeln ("the quantity of eggs is ",i);

readkey;

end.



------------------

Запустил у себя, вышло 301.

91 не подходит, потому как в остатке от деления на 4 получается 3, а не 1.

З.Ы. Деление по модулю на 6 не написал сознательно. Оно лишнее, сами догадывайтесь почему.

З.З.Ы. И вообще избегайте паскальности во всех проявлениях ))))

pEtr0
30.05.2006, 15:07
Перевожу в Turbo Pascal 5.0 и выше.
....

Запустил у себя, вышло 301.

91 не подходит, потому как в остатке от деления на 4 получается 3, а не 1.

Да я забыл про 4...
но можно все равно проще:



program shit;

uses crt;
var
i &#58; word;
begin

for i&#58;= 1 to 65535 do begin
if &#40;60*i mod 7 = 1&#41; then break;
end;

writeln &#40;"the quantity of eggs is ",i&#41;;
readkey;

end.

AlexS
30.05.2006, 21:26
Спасибо за помощь.