99 Bottles of Beer/Pascal: Difference between revisions
Content added Content deleted
m (→{{header|Pascal}}: oops, forgot a writeln at the end of the verse) |
m (Fixed syntax highlighting.) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- |
<!-- |
||
=Pascal= |
===Pascal=== |
||
--> |
--> |
||
{{collection|99 Bottles of Beer}} |
{{collection|99 Bottles of Beer}} |
||
Line 6: | Line 6: | ||
__toc__ |
__toc__ |
||
<!-- |
|||
See [[99 Bottles of Beer/Pascal]] |
|||
--> |
|||
<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 |
||
< |
<syntaxhighlight lang="oberon2"> |
||
MODULE BottlesOfBeer; |
MODULE BottlesOfBeer; |
||
IMPORT StdLog; |
IMPORT StdLog; |
||
Line 35: | Line 32: | ||
END Sing; |
END Sing; |
||
END BottlesOfBeer. |
END BottlesOfBeer. |
||
</syntaxhighlight> |
|||
</lang> |
|||
Execute: ^Q BottlesOfBeer.Sing<br/> |
Execute: ^Q BottlesOfBeer.Sing<br/> |
||
Output: |
Output: |
||
Line 64: | Line 61: | ||
<span style='font-family: "Linux Libertine",Georgia,Times,serif;font-size:150%;'>[[Delphi]]</span><hr> |
|||
=={{header|Delphi}}== |
|||
:''See [[#Pascal|Pascal]]'' |
:''See [[#Pascal|Pascal]]'' |
||
:''Or |
:''Or |
||
< |
<syntaxhighlight lang="delphi">program Hundred_Bottles; |
||
{$APPTYPE CONSOLE} |
{$APPTYPE CONSOLE} |
||
Line 95: | Line 92: | ||
End ; |
End ; |
||
end.</ |
end.</syntaxhighlight> |
||
<span style='font-family: "Linux Libertine",Georgia,Times,serif;font-size:150%;'>[[Pascal]]</span><hr> |
|||
=={{header|Pascal}}== |
|||
< |
<syntaxhighlight lang="pascal">program BottlesOfBeer; |
||
var |
var |
||
i: |
i: integer; |
||
begin |
begin |
||
for i := 99 downto 1 do |
for i := 99 downto 1 do |
||
if i |
if i <> 1 then |
||
begin |
|||
writeln(' |
writeln(i, ' bottles of beer on the wall'); |
||
writeln(i, ' bottles of beer'); |
|||
writeln(' |
writeln('Take one down, pass it around'); |
||
if i = 2 then |
|||
writeln( |
writeln('One bottle of beer on the wall') |
||
else |
|||
writeln( |
writeln(i - 1, ' bottles of beer on the wall'); |
||
writeln; |
|||
end |
|||
else |
|||
⚫ | |||
⚫ | |||
writeln; |
writeln('One bottle of beer on the wall'); |
||
writeln('One bottle of beer'); |
|||
⚫ | |||
writeln('Take one down, pass it around'); |
|||
end. </lang> |
|||
⚫ | |||
end |
|||
end.</syntaxhighlight> |
Latest revision as of 20:36, 1 September 2022
99 Bottles of Beer/Pascal is part of 99 Bottles of Beer. You may find other members of 99 Bottles of Beer at Category:99 Bottles of Beer.
99 Bottles of Beer done in Pascal-languages
BlackBox Component Builder
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.
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
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.
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.