99 Bottles of Beer/Pascal: Difference between revisions
m (→{{header|Pascal}}: the special case really should be second) |
Thundergnat (talk | contribs) m (Avoid miscounting task entries twice) |
||
Line 10: | Line 10: | ||
--> |
--> |
||
<span style='font-family: "Linux Libertine",Georgia,Times,serif;font-size:150%;'>[[Component Pascal]]</span><hr> |
|||
=={{header|Component Pascal}}== |
|||
BlackBox Component Builder |
BlackBox Component Builder |
||
<lang oberon2> |
<lang oberon2> |
||
Line 64: | Line 64: | ||
<span style='font-family: "Linux Libertine",Georgia,Times,serif;font-size:150%;'>[[Delphi]]</span><hr> |
|||
=={{header|Delphi}}== |
|||
:''See [[#Pascal|Pascal]]'' |
:''See [[#Pascal|Pascal]]'' |
||
Line 98: | Line 98: | ||
<span style='font-family: "Linux Libertine",Georgia,Times,serif;font-size:150%;'>[[Pascal]]</span><hr> |
|||
=={{header|Pascal}}== |
|||
<lang pascal>program BottlesOfBeer; |
<lang pascal>program BottlesOfBeer; |
||
Revision as of 16:34, 18 January 2020
99 Bottles of Beer done in Pascal-languages
BlackBox Component Builder <lang oberon2> MODULE BottlesOfBeer; IMPORT StdLog; CONST bottles = 99;
PROCEDURE Part(i: INTEGER); BEGIN StdLog.Int(i);StdLog.String(" bottles of beer on the wall");StdLog.Ln; StdLog.Int(i);StdLog.String(" bottles of beer");StdLog.Ln; StdLog.String("Take one down, pass it around");StdLog.Ln; StdLog.Int(i - 1);StdLog.String(" bottles of beer on the wall.");StdLog.Ln; StdLog.Ln END Part;
PROCEDURE Sing*;
VAR
i: INTEGER;
BEGIN
FOR i := bottles TO 1 BY -1 DO
Part(i)
END
END Sing;
END BottlesOfBeer.
</lang>
Execute: ^Q BottlesOfBeer.Sing
Output:
99 bottles of beer on the wall 99 bottles of beer Take one down, pass it around 98 bottles of beer on the wall. 98 bottles of beer on the wall 98 bottles of beer Take one down, pass it around 97 bottles of beer on the wall. 97 bottles of beer on the wall 97 bottles of beer Take one down, pass it around 96 bottles of beer on the wall. ... 1 bottles of beer on the wall 1 bottles of beer Take one down, pass it around 0 bottles of beer on the wall.
- See Pascal
- Or
<lang Delphi>program Hundred_Bottles;
{$APPTYPE CONSOLE}
uses SysUtils;
const C_1_Down = 'Take one down, pass it around' ;
Var i : Integer ;
// As requested, some fun : examples of Delphi basic techniques. Just to make it a bit complex
procedure WriteABottle( BottleNr : Integer ) ; begin
Writeln(BottleNr, ' bottles of beer on the wall' ) ;
end ;
begin
for i := 99 Downto 1 do begin WriteABottle(i); Writeln( Format('%d bottles of beer' , [i] ) ) ; Writeln( C_1_Down ) ; WriteABottle(i-1); Writeln ;
End ;
end.</lang>
<lang pascal>program BottlesOfBeer;
var
i: integer;
begin
for i := 99 downto 1 do if i <> 1 then begin writeln(i, ' bottles of beer on the wall'); writeln(i, ' bottles of beer'); writeln('Take one down, pass it around'); if i = 2 then writeln('One bottle of beer on the wall') else writeln(i - 1, ' bottles of beer on the wall'); writeln; end else begin writeln('One bottle of beer on the wall'); writeln('One bottle of beer'); writeln('Take one down, pass it around'); writeln('No more bottles of beer on the wall'); end
end.</lang>