Dark`Elf Публикувано Юни 7, 2006 Report Share Публикувано Юни 7, 2006 Значи, брат ми има да пише програма на Паскал за Петък и не може да се сети как да я напише. Значи задачата е следната: Да се напише програма, която намира всички естествени числа от интервала [n;m], които се делят на всяка своя цифра (n и m са дадени естествени числа; n<m). Благодарим предварително (сигурно е нещо просто ) Цитирай Link to comment Сподели другаде More sharing options...
danina Публикувано Юни 8, 2006 Report Share Публикувано Юни 8, 2006 Здравей Dark`Elf! Нищо не разбирам от Паскал, но намерих няколко урока. Дано свършат работа! Заповядай! Решена задача/ да се взаймства нещо / Структура на програма в Паскал, елементи, примери и др. Цитирай Link to comment Сподели другаде More sharing options...
melmak Публикувано Юни 8, 2006 Report Share Публикувано Юни 8, 2006 (Редактиран) Струва ми се че вникнах в същността на проблема .Мисля че ще мога да я напиша скоро.Program V100; var a:byte;i,b,m,n:word;f:boolean; Beginwriteln; repeat writeln('Please Enter two N numbers ,n<m '); readln(n,m); if not (n<m) then write ('Invalid input ! ') until n<m;writeln('OK ,n=',n,' m=',m);writeln;f:=true; for i:=n to m do begin b:=i; repeat a:= b mod 10; if a=0 then f:=false else if (i mod a)<>0 then f:=false; {writeln('A=',a,' B=',b,' i=',i);} b:=b div 10; until (b=0) or (f=false); if f=true then writeln(i) else f:=true end;readln;End.В тази задача трудното е да се извлекат цифрите от числото ,това става с a:= b mod 10 ,където в а остава последната цифра след извършеното делене с остатък mod .После с B извършваме целочислено делене на 10 за да може да намалим числото с една цифра b:=b div 10 - която вече не ни трябва.Вторият цикъл repeat until служи за да провери дали числото се дели на всички свои цифри.Ако е така във флаговата променлива f остава true.Брoйният цикъл FOR служи да смени всички числа от интервала [m,n].А първият цикъл repeat until се използва за защита на входа. Едит:Съжалявам за лошото форматиране на програмата но изглежда форумната система ми подравнява кода какато си намери за добре :( .Програмата съм я изпробвал и работи. Редактиран Юни 8, 2006 от Melmak ® Цитирай Link to comment Сподели другаде More sharing options...
danina Публикувано Юни 8, 2006 Report Share Публикувано Юни 8, 2006 Браво Melmak ®!Това, което направи е достойно за уважение. Не само материалното може да стимулира човек и даже си мисля, че удовлетворението от това, че си помогнал на някого е най- големия стимул. Цитирай Link to comment Сподели другаде More sharing options...
Tragedy Публикувано Юни 8, 2006 Report Share Публикувано Юни 8, 2006 Едит:Съжалявам за лошото форматиране на програмата но изглежда форумната система ми подравнява кода какато си намери за добре :( .Програмата съм я изпробвал и работи.Използвай тага CODE (код) и няма да имаш проблеми. Цитирай Link to comment Сподели другаде More sharing options...
Dark`Elf Публикувано Юни 8, 2006 Author Report Share Публикувано Юни 8, 2006 благодарско от мен и от брат ми Цитирай Link to comment Сподели другаде More sharing options...
melmak Публикувано Юни 8, 2006 Report Share Публикувано Юни 8, 2006 Мерси ,мерси от толкова благодарности ще взема да се възгордея .Всъщност задачката ми беше интересна ,а и къса ,така че не съм направил кой знае какво. Tragedy,видях я тази опция и мислех да я използвам.Само че code има недостатък ,че не мога да подчертавам или променям цвета на части от кода ,за да ги обясня.След това реших че е по-добре да не се правя на преподавател от ТУ София ,така че стана нито риба ,нито рак . Dark`Elf,забравих да кажа че този ред {writeln('A=',a,' B=',b,' i=',i);} съм го оставил като коментар и не е задължителен.Оригиналната идея беше да показва как действа програмата като махне тези {} скобки ,но не би следвало да присъства в домашно.Така че може да го изтрие. Цитирай Link to comment Сподели другаде More sharing options...
Препоръчан пост
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.