Jump to content

Word wrap: Difference between revisions

Added Scala
m (→‎version 1: added a link to the LINESIZE.REX program.)
(Added Scala)
Line 2,349:
print docOut$</lang>
 
=={{header|Scala}}==
===Intuitive approach===
[[Category:Scala Implementations]]{{libheader|Scala}}<lang scala>import java.util.StringTokenizer
 
object WordWrap extends App {
final val defaultLineWidth = 80
final val spaceWidth = 1
final val altLinewidth = 120
 
final def ewd = "Vijftig jaar geleden publiceerde Edsger Dijkstra zijn kortstepadalgoritme. Daarom een kleine ode" +
" aan de in 2002 overleden Dijkstra, iemand waar we als Nederlanders best wat trotser op mogen zijn. Dijkstra was" +
" een van de eerste programmeurs van Nederland. Toen hij in 1957 trouwde, werd het beroep computerprogrammeur door" +
" de burgerlijke stand nog niet erkend en uiteindelijk gaf hij maar `theoretische natuurkundige’ op.\nZijn" +
" beroemdste resultaat is het kortstepadalgoritme, dat de kortste verbinding vindt tussen twee knopen in een graaf" +
" (een verzameling punten waarvan sommigen verbonden zijn). Denk bijvoorbeeld aan het vinden van de kortste route" +
" tussen twee steden. Het slimme van Dijkstra’s algoritme is dat het niet alle mogelijke routes met elkaar" +
" vergelijkt, maar dat het stap voor stap de kortst mogelijke afstanden tot elk punt opbouwt. In de eerste stap" +
" kijk je naar alle punten die vanaf het beginpunt te bereiken zijn en markeer je al die punten met de afstand tot" +
" het beginpunt. Daarna kijk je steeds vanaf het punt dat op dat moment de kortste afstand heeft tot het beginpunt" +
" naar alle punten die je vanaf daar kunt bereiken. Als je een buurpunt via een nieuwe verbinding op een snellere" +
" manier kunt bereiken, schrijf je de nieuwe, kortere afstand tot het beginpunt bij zo’n punt. Zo ga je steeds een" +
" stukje verder tot je alle punten hebt gehad en je de kortste route tot het eindpunt hebt gevonden."
 
def minNumLinesWrap(text: String, LineWidth: Int = defaultLineWidth) {
val tokenizer = new StringTokenizer(text)
var SpaceLeft = LineWidth
while (tokenizer.hasMoreTokens) {
val word: String = tokenizer.nextToken
if ((word.length + spaceWidth) > SpaceLeft) {
print("\n" + word + " ")
SpaceLeft = LineWidth - word.length
}
else {
System.out.print(word + " ")
SpaceLeft -= (word.length + spaceWidth)
}
}
}
 
println(s"Wrapped at: $defaultLineWidth")
minNumLinesWrap(ewd)
println(s"\n\nWrapped at: $altLinewidth")
minNumLinesWrap(ewd, altLinewidth)
}</lang>{{out}}<pre>Wrapped at: 80
Vijftig jaar geleden publiceerde Edsger Dijkstra zijn kortstepadalgoritme.
Daarom een kleine ode aan de in 2002 overleden Dijkstra, iemand waar we als
Nederlanders best wat trotser op mogen zijn. Dijkstra was een van de eerste
programmeurs van Nederland. Toen hij in 1957 trouwde, werd het beroep
computerprogrammeur door de burgerlijke stand nog niet erkend en uiteindelijk
gaf hij maar `theoretische natuurkundige’ op. Zijn beroemdste resultaat is het
kortstepadalgoritme, dat de kortste verbinding vindt tussen twee knopen in een
graaf (een verzameling punten waarvan sommigen verbonden zijn). Denk
bijvoorbeeld aan het vinden van de kortste route tussen twee steden. Het slimme
van Dijkstra’s algoritme is dat het niet alle mogelijke routes met elkaar
vergelijkt, maar dat het stap voor stap de kortst mogelijke afstanden tot elk
punt opbouwt. In de eerste stap kijk je naar alle punten die vanaf het beginpunt
te bereiken zijn en markeer je al die punten met de afstand tot het beginpunt.
Daarna kijk je steeds vanaf het punt dat op dat moment de kortste afstand heeft
tot het beginpunt naar alle punten die je vanaf daar kunt bereiken. Als je een
buurpunt via een nieuwe verbinding op een snellere manier kunt bereiken, schrijf
je de nieuwe, kortere afstand tot het beginpunt bij zo’n punt. Zo ga je steeds
een stukje verder tot je alle punten hebt gehad en je de kortste route tot het
eindpunt hebt gevonden.
 
Wrapped at 72: 120
Vijftig jaar geleden publiceerde Edsger Dijkstra zijn kortstepadalgoritme. Daarom een kleine ode aan de in 2002
overleden Dijkstra, iemand waar we als Nederlanders best wat trotser op mogen zijn. Dijkstra was een van de eerste
programmeurs van Nederland. Toen hij in 1957 trouwde, werd het beroep computerprogrammeur door de burgerlijke stand nog
niet erkend en uiteindelijk gaf hij maar `theoretische natuurkundige’ op. Zijn beroemdste resultaat is het
kortstepadalgoritme, dat de kortste verbinding vindt tussen twee knopen in een graaf (een verzameling punten waarvan
sommigen verbonden zijn). Denk bijvoorbeeld aan het vinden van de kortste route tussen twee steden. Het slimme van
Dijkstra’s algoritme is dat het niet alle mogelijke routes met elkaar vergelijkt, maar dat het stap voor stap de kortst
mogelijke afstanden tot elk punt opbouwt. In de eerste stap kijk je naar alle punten die vanaf het beginpunt te bereiken
zijn en markeer je al die punten met de afstand tot het beginpunt. Daarna kijk je steeds vanaf het punt dat op dat
moment de kortste afstand heeft tot het beginpunt naar alle punten die je vanaf daar kunt bereiken. Als je een buurpunt
via een nieuwe verbinding op een snellere manier kunt bereiken, schrijf je de nieuwe, kortere afstand tot het beginpunt
bij zo’n punt. Zo ga je steeds een stukje verder tot je alle punten hebt gehad en je de kortste route tot het eindpunt
hebt gevonden.
Process finished with exit code 0</pre>
=={{header|Seed7}}==
{{incorrect|Seed7|In the last lines there is an empty line.}}
<lang seed7>$ include "seed7_05.s7i";
 
Line 2,393 ⟶ 2,473:
writeln(wrap(frog, width));
end for;
end func;</lang>{{out}}<pre>Wrapped at 72:
 
{{out}}
<pre>
Wrapped at 72:
In olden times when wishing still helped one, there lived a king whose
daughters were all beautiful, but the youngest was so beautiful that the
Line 2,407 ⟶ 2,483:
threw it up on high and caught it, and this ball was her favorite
plaything.
 
Wrapped at 80:
In olden times when wishing still helped one, there lived a king whose daughters
Line 2,415 ⟶ 2,492:
forest and sat down by the side of the cool fountain, and when she was bored she
took a golden ball, and threw it up on high and caught it, and this ball was her
favorite plaything.</pre>
</pre>
 
=={{header|Tcl}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.