basic

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: matt

Post on 23-Feb-2016

58 views

Category:

Documents


0 download

DESCRIPTION

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 Implementations. Computer Science, Education, Scripting, Games. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Basic

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

BasicFOR A=1 TO 100IF A MOD 15 = 0 THENPRINT “FizzBuzz”ELSE IF A MOD 3 = 0 THENPRINT “Fizz”ELSE IF A MOD 5 = 0 THENPRINT “Buzz”ELSEPRINT AEND IFNEXT A

1964Simple,Many

Implementations

Computer Science, Education,

Scripting, Games

Imperative, Object Oriented

(some variations)

Page 2: Basic

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

Page 3: Basic

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

Page 4: Basic

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Pythonfor 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

Page 5: Basic

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

Page 6: Basic

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

Page 7: Basic

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

Page 8: Basic

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/

Page 9: Basic

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

Page 10: Basic

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

Page 11: Basic

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Visual Basic.net

For a = 1 To 100If a Mod 15 = 0 ThenConsole.WriteLine("FizzBuzz")ElseIf a Mod 5 = 0 ThenConsole.WriteLine("Buzz")ElseIf a Mod 3 = 0 ThenConsole.WriteLine("Fizz")ElseConsole.WriteLine(a)End If

Next

2001Intuative forms

designer.Simple syntax.

Flexible.

General purpose.Office applications

and tools.Gaming.

Structured,Imperative,

Object Oriented,Declarative

Page 12: Basic

First appeared FeaturesMain paradigmsPopular uses

COMPUTING

Pascalprogram fizzbuzz(output);var

a: integer;begin

for a := 1 to 100 doif a mod 15 = 0 thenwriteln('FizzBuzz')else if a mod 3 = 0 thenwriteln('Fizz')else if a mod 5 = 0 thenwriteln('Buzz')elsewriteln(a)

end.

1968Easy to learn.

Encourages good style.

Education Imperative,Structured

Page 13: Basic

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

Page 14: Basic

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

Page 15: Basic

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

Page 16: Basic

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"ELSEaFI))OD)

1958No easy

input/outputResearch

Publishing Algorithms

Procedural,Imperative,Structured