http://zigloo.ch/index.php?title=Premier.pas&action=history&feed=atom
Premier.pas - Historique des versions
2024-03-28T17:17:36Z
Historique pour cette page sur le wiki
MediaWiki 1.11.0
http://zigloo.ch/index.php?title=Premier.pas&diff=203&oldid=prev
Ziglooadmin le 22 mars 2008 à 10:20
2008-03-22T10:20:02Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr>
<td colspan='2' style="background-color: white; color:black;">← Version précédente</td>
<td colspan='2' style="background-color: white; color:black;">Version du 22 mars 2008 à 10:20</td>
</tr>
<tr><td colspan="2" class="diff-lineno">Ligne 1 :</td>
<td colspan="2" class="diff-lineno">Ligne 1 :</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>[[Factorisation en nombres premiers]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><code pascal n></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><code pascal n></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>program premier;</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>program premier;</div></td></tr>
</table>
Ziglooadmin
http://zigloo.ch/index.php?title=Premier.pas&diff=139&oldid=prev
Ziglooadmin: Nouvelle page : <code pascal n> program premier; {$i PalmAPI2.pas} {$i Menu.pas} type plistint=^listint; listint=record val:integer; next:plistint; end; var premier,resultat:pl...
2008-03-16T10:27:41Z
<p>Nouvelle page : <code pascal n> program premier; {$i PalmAPI2.pas} {$i Menu.pas} type plistint=^listint; listint=record val:integer; next:plistint; end; var premier,resultat:pl...</p>
<p><b>Nouvelle page</b></p><div><code pascal n><br />
program premier;<br />
{$i PalmAPI2.pas}<br />
{$i Menu.pas}<br />
type plistint=^listint;<br />
listint=record<br />
val:integer;<br />
next:plistint;<br />
end;<br />
var premier,resultat:plistint;<br />
num,dummy:integer;<br />
function addint(plist:plistint;val:integer):plistint;<br />
var pactuel:plistint;<br />
begin<br />
pactuel:=plist;<br />
if (pactuel <> nil) then<br />
begin<br />
while (pactuel^.next <> nil)<br />
do<br />
pactuel:=pactuel^.next;<br />
new(pactuel^.next);<br />
pactuel^.next^.val:=val;<br />
pactuel^.next^.next:=nil;<br />
end<br />
else<br />
begin<br />
new(pactuel);<br />
pactuel^.val:=val;<br />
pactuel^.next:=nil;<br />
plist:=pactuel;<br />
end;<br />
addint:=plist;<br />
end;<br />
procedure viewlist(list:plistint);<br />
var pactuel:plistint;<br />
begin<br />
if (list <> nil) then<br />
begin<br />
pactuel:=list;<br />
while (pactuel^.next <> nil) do<br />
begin<br />
write(pactuel^.val,',');<br />
pactuel:=pactuel^.next;<br />
end;<br />
writeln(pactuel^.val); <br />
end<br />
else<br />
writeln('aucun');<br />
end;<br />
function nextprime:integer;<br />
var pactuel:plistint;<br />
candidat:integer;<br />
found,search:boolean;<br />
begin<br />
if (premier = nil) then<br />
begin<br />
premier:=addint(premier,2);<br />
premier:=addint(premier,3);<br />
end; <br />
pactuel:=premier;<br />
while (pactuel^.next <> nil) do<br />
pactuel:=pactuel^.next;<br />
candidat:=pactuel^.val;<br />
found:=false;<br />
while (not found) do<br />
begin<br />
candidat:=candidat+2;<br />
pactuel:=premier;<br />
search:=true;<br />
while (search) do<br />
begin<br />
if (candidat mod pactuel^.val = 0) then<br />
search:=false<br />
else<br />
begin<br />
if (pactuel^.next <> nil) then<br />
pactuel:=pactuel^.next<br />
else<br />
search:=false;<br />
if (pactuel^.val > sqrt(candidat)) then<br />
begin<br />
search:=false;<br />
found:=true;<br />
end;<br />
end;<br />
end;<br />
end;<br />
premier:=addint(premier,candidat);<br />
nextprime:=candidat;<br />
gotoxy(20,1);<br />
write(candidat:10);<br />
end;<br />
function factorise(val:integer):plistint;<br />
var pactuel,presultat:plistint;<br />
num,prime:integer;<br />
begin<br />
presultat:=nil;<br />
num:=val;<br />
if (num < 0) then<br />
num:=-num;<br />
if (num > 1) then<br />
begin<br />
pactuel:=premier;<br />
prime:=pactuel^.val;<br />
while (prime <= sqrt(num)) do<br />
begin<br />
while (num mod prime = 0) do<br />
begin<br />
presultat:=addint(presultat,prime);<br />
num:=num div prime;<br />
end;<br />
if (pactuel^.next = nil) then<br />
prime:=nextprime;<br />
if (pactuel^.next <> nil) then<br />
begin<br />
pactuel:=pactuel^.next;<br />
prime:=pactuel^.val;<br />
end;<br />
end;<br />
if (num <> 1) then<br />
begin<br />
presultat:=addint(presultat,num);<br />
end;<br />
end<br />
else<br />
presultat:=addint(presultat,num);<br />
factorise:=presultat;<br />
end;<br />
procedure menu2;<br />
var select,num:integer;<br />
resultat:plistint;<br />
s:string;<br />
m:menu;<br />
begin<br />
initmenu(m);<br />
titlemenu(m,'Menu');<br />
addmenuitem(m,'Nombre a factoriser');<br />
repeat<br />
select:=selectmenu(m);<br />
case select of<br />
1:begin<br />
write('Nombre : ');<br />
readln(s);<br />
num:=StrAtoI(s);<br />
resultat:=factorise(num);<br />
gotoxy(1,12);<br />
write(num,':');<br />
viewlist(resultat);<br />
read(s);<br />
end;<br />
end;<br />
until select = 0;<br />
clrscr;<br />
writeln;<br />
writeln;<br />
writeln;<br />
writeln(' ':5,'A bientot');<br />
end;<br />
begin<br />
premier:=nil;<br />
dummy:=nextprime;<br />
menu2;<br />
end.<br />
</code><br />
[[Category:Source]]<br />
[[Category:Logiciel]]<br />
[[Category:Pascal]]<br />
[[Category:Palm]]</div>
Ziglooadmin