In de opleiding van mijn zoon zit ook een stukje JAVA programmeren. Nu heeft hij de eindtoets wel gehaald met zelfstudie en heel veel google en natuurlijk zijn oude vaar om tot een resultaat te komen. Toch heeft hij besloten om dit jaar klassikaal mee te lopen. Dit, omdat de lesstof veel beter is dan vorig jaar en dat je een beetje bijblijft omtrent de programmeertaal.
Zo heeft hij besloten om een extra opdracht vanuit het boek te maken. Deze opdracht heeft de volgende kenmerken:
- vul via een loop getal(len) in
- kijk naar de langste reeks en geef daar de lengte van op het scherm weer alsmede om welk getal het gaat.
Heeft hij aardig in zijn eentje op de rit gezet, al is het op een omslachtige manier.
Nu werd ik zelf wel nieuwsgierig naar die opdracht en heb deze gemaakt. Maar ik wilde het niet alleen in JAVA, maar ook in pascal.
Dit is het resultaat:
Delphi Code:
program reeksvangetallen;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, system.types;
var invoer : string;
totaal : string;
getal : integer;
index : integer;
subindex: integer;
ttlreeks: integer;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
totaal := '';
ttlreeks := 0;
repeat
write('Geef een nummer op : ');
readln(invoer);
if invoer > '' then
totaal := totaal + invoer;
until invoer = '';
index := 1;
subindex := 1;
while index <= length(totaal) do
begin
if totaal[index] = totaal[index + subindex] then
begin
//een reeks te pakken met twee gelijken
subindex := subindex + 1;
//zoek nu naar een reeks van he volgende nummer
while (totaal[index] = totaal[index + subindex]) and ((index + subindex) <= length(totaal)) do
subindex := subindex + 1;
if ttlreeks < subindex then
begin
ttlreeks := subindex;
getal := StrToInt(totaal[index]);
end;
index := index + subindex;
end else
begin
index := index + 1;
subindex := 1;
end;
end;
writeln(totaal);
writeln('lengte van de reeks : ',ttlreeks, ', getal : ', getal );
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Ik vind het wel geslaagd en best wel klein qua code.
Nu ben ik benieuwd of er andere zijn, die dit qua code nog kleiner kan krijgen dan het hier bovenstaande. Je mag geen gebruik maken van externe libraries of third parties.
Wie durft het aan?
Bookmarks