first appearedfeaturesmain paradigmspopular uses computing basic for a=1 to 100 if a mod 15 = 0 then...

16
First appeared Features Main paradigms Popular uses COMPUTING Basic FOR A=1 TO 100 IF A MOD 15 = 0 THEN PRINT “FizzBuzz” ELSE IF A MOD 3 = 0 THEN PRINT “Fizz” ELSE IF A MOD 5 = 0 THEN PRINT “Buzz” ELSE PRINT A END IF NEXT A 1964 Simple, Many Implementati ons Computer Science, Education, Scripting, Games Imperative, Object Oriented (some variations)

Upload: andrew-powers

Post on 25-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

BasicFOR A=1 TO 100

IF A MOD 15 = 0 THENPRINT “FizzBuzz”

ELSE IF A MOD 3 = 0 THENPRINT “Fizz”

ELSE IF A MOD 5 = 0 THENPRINT “Buzz”

ELSEPRINT A

END IFNEXT A

1964Simple,Many

Implementations

Computer Science, Education,

Scripting, Games

Imperative, Object Oriented

(some variations)

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

C#include <stdio.h>int main (int argc, char** argv){ int i;

for (i = 1; i <= 100; i++) { if (!(i % 15)) printf("FizzBuzz\n"); else if (!(i % 3)) printf("Fizz\n"); else if (!(i % 5)) printf("Buzz\n"); else printf("%d\n", i); } return 0;}

1972High Performance,

Low Level, Pervasive

Operating Systems, Compilers,

Interpreters, Embedded

Processors, Games

Imperative, Static Typing

http://www.cprogramming.com/tutorial.html

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Scheme(define (fizzify i)

(cond((= (modulo i 15) 0) "FizzBuzz")((= (modulo i 3) 0) "Fizz")((= (modulo i 5) 0) "Buzz")(#t i)

))(define (fizzbuzz i)

(if (<= i 100)(begin(display (fizzify i)) (display "\n")(fizzbuzz (+ i 1)))

))(fizzbuzz 1)

1975Homoiconic,Minimalistic,

Cross Platform

Computer ScienceEducation, Scripting,

Academic Research

Functional,Tail Call Recursion,

Dynamic Typing

http://www.schemers.org

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Python

for i in range(1, 101):if i % 15 == 0:

print "FizzBuzz"elif i % 3 == 0:

print "Fizz"elif i % 5 == 0:

print "Buzz"else:print( i )

1991Cross Platform,

Duck Typing,Indentation

Syntax,Interpreter

Computer ScienceEducation, Scripting,

Internet, Games

Imperative,Object Oriented,Dynamic Typing

http://www.python.org

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Javapublic class FizzBuzz{

public static void main (String[] args){

for (int i = 1; i <= 100; i++){if (i % 15 == 0) {System.out.println("FizzBuzz");} else if (i % 3 == 0) {System.out.println("Fizz");} else if (i % 5 == 0) {System.out.println("Buzz");} else {System.out.println(i);}}

}}

1995Interoperability,

Standardised,Cross Platform

Applications, Mobile Devices,

Compilers,Interpreters,

Games

Imperative,Object Oriented,

Static Typing,Generics

http://www.java.com

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Ruby

1.upto(100) do |n|print "Fizz" if a = (n % 3).zero?print "Buzz" if b = (n %

5).zero?print n unless (a || b)print "\n"

end

1995Cross Platform,

Duck TypingInternet, Scripting Imperative,

Object Oriented,Dynamic Typing,

Functional

http://www.ruby-lang.org

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

C#using System;namespace FizzBuzz{

class Program{

static void Main(string[] args){for (int i = 1; i <= 100; i++){string output = "";if (i % 3 == 0) output += "Fizz";if (i % 5 == 0) output += "Buzz";if (String.IsNullOrEmpty(output))output = i.ToString();Console.WriteLine(output);}}

}}

2001Standardised,

Common LanguageRuntime

Applications, Internet,

Business, Games

Imperative,Object Oriented,

Static Typing

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Scratch

2007Rich Media,

Online Collaboration,

Animation,Cross Platform

Computer ScienceEducation

Fixed Function,Imperative,

Visual Programming

http://scratch.mit.edu/

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

PHP<?phpfor(a = 1; a <= 100; a++) {

if(a % 15 == 0)echo “FizzBuzz”;

elsif(a % 3 == 0)echo “Fizz”;

elsif(a % 5 == 0)echo “Buzz”;

}?>

1995Cross Platform,

InterpreterComputer Science, Education, Internet,

Scripting

Imperative, Object Oriented, Dynamic Typing

http://www.php.net

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Java Scriptfor (a=1; a<=100; a++)

if(a%15 ===0){console.log("FizzBuzz");

} else if ( a % 3 === 0 ) {console.log("Fizz");

} else if (a % 5 === 0 ) {console.log("Buzz");

} else {console.log(a);

}}

1995Weakly Typed,Cross Platform

Web Pages,PDF,

Widgets

Scripting, Object Oriented,

Imperative,Functional

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Visual Basic.net

For a = 1 To 100If a Mod 15 = 0 Then

Console.WriteLine("FizzBuzz")ElseIf a Mod 5 = 0 Then

Console.WriteLine("Buzz")ElseIf a Mod 3 = 0 Then

Console.WriteLine("Fizz")Else

Console.WriteLine(a)End If

Next

2001Intuative forms

designer.Simple syntax.

Flexible.

General purpose.Office applications

and tools.Gaming.

Structured,Imperative,

Object Oriented,Declarative

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Pascalprogram fizzbuzz(output);var

a: integer;begin

for a := 1 to 100 doif a mod 15 = 0 then

writeln('FizzBuzz')else if a mod 3 = 0 then

writeln('Fizz')else if a mod 5 = 0 then

writeln('Buzz')else

writeln(a)end.

1968Easy to learn.

Encourages good style.

Education Imperative,Structured

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

COBOLIDENTIFICATION DIVISION.PROGRAM-ID. fizzbuzz.DATA DIVISION.WORKING-STORAGE SECTION01 CNT PIC 9(03) VALUE 1.01 REM PIC 9(03) VALUE 0.01 QUOTIENT PIC 9(03) VALUE 0.PROCEDURE DIVISION.*PERFORM UNTIL CNT > 100

DIVIDE 15 INTO CNT GIVING QUOTIENT REMAINDER REMIF REM = 0

THENDISPLAY "FizzBuzz " WITH NO ADVANCING

ELSEDIVIDE 3 INTO CNT GIVING QUOTIENT REMAINDER REMIF REM = 0

THENDISPLAY "Fizz " WITH NO ADVANCING

ELSEDIVIDE 5 INTO CNT GIVING QUOTIENT

REMAINDER REMIF REM = 0

THENDISPLAY "Buzz "

WITH NO ADVANCINGELSE

DISPLAY CNT " " WITH NO ADVANCING

END-IFEND-IF

END-IFADD 1 TO CNT

END-PERFORMDISPLAY "“STOP RUN.

1959Verbose so more

like a natural language

Business ProcessesBatch Programming

Procedural,Object Oriented

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Perlforeach (1 .. 100) {

if (0 == $_ % 15) {print "FizzBuzz\n";

} elsif (0 == $_ % 3) {print "Fizz\n";

} elsif (0 == $_ % 5) {print "Buzz\n";

} else {print "$_\n";

};};

1987Reusable Modules

Dynamic Conversion

Text ProcessingScriptingGraphics

Networking

Functional, Imperative,

Object Oriented, Procedural

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

BBC Basic

FOR a% = 1 TO 100CASE TRUE OF

WHEN a% MOD 15 = 0: PRINT "FizzBuzz"WHEN a% MOD 3 = 0: PRINT "Fizz"WHEN a% MOD 5 = 0: PRINT "Buzz"OTHERWISE: PRINT ; a%

ENDCASENEXT a%

1981Weakly typed

Widely supportedEducationGaming

Procedural

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Algolmain:(

FOR a TO 100 DOprintf(($gl$,IF a %* 15 = 0 THEN

"FizzBuzz"ELIF a %* 3 = 0 THEN

"Fizz"ELIF a %* 5 = 0 THEN

"Buzz"ELSE

aFI))

OD)

1958No easy

input/outputResearch

Publishing Algorithms

Procedural,Imperative,Structured