Hej ! En litet förslag. Kanske det ska flyttas till ngn annan tråd.
För att jämföra olika programspråk skulle jag vilja ha ett mer allsidigt program än det vanliga som bara skriver "hello world".
Jag skulle vilja se ett program som gör de elementära sakerna
så att man kan jämföra vilken syntax som är mest kompakt och mest lättförståelig.
Man borde först definiera vad ett program ska göra:
Alla programexempel ska vara exekverbara och göra samma sak så att man kan jämföra dem.
(Eventuellt kan man kommentera om ej möjligt i detta program)
I början av programmet kan man ha en kommentar hur man kompilerar och exekverar.
Sen har man lite program kod.
Eventuellt kan man ha någon kortfattad kommentar om programspråkets styrka och svaghet
samt någon referens.
Om de som kan något språk kan hjälpa till och skriva programmet i det språk de kan.
Kanske man kan göra detta som någon typ av Wiki, kanske i ett annat forum ?
------------------------------------------------------
Förslag på Mall för ett typprogram:
-----------------------------------
Hur kompilera kod:
Hur exekvera programmet:
Lite kommentarer till kod och syntax om det behövs
Definition av variabel
En utskrift tex av aktuellt datum och tid: 2008-03-13 22:15:23
En fördröjning
For-loop
if else sats
(case sats)
En funktion eller metod
Ett funktionsanrop
Hur skapa och skriva till fil
Hur läsa från fil och ta bort fil
Eventuellt någon kommentar Språkets fördelar och nackdelar och någon referens
==================================================================================
Python
------
I Python skulle det då bli ungefär:
#! /usr/bin/env python # rad 1 i pythonkoden
# This Python file uses the following encoding: utf-8 # talar om att utf-8 används i filen.
# Hur Kompilera: Behövs ej för Python
# Hur exekvera:
# utan 1:a raden måste man starta filen med Linux> python filnamn.py
# med 1:a raden räcker det med "dubbelklick" på filikonen eller på terminalen "Linux> filnamn.py"
# (om filen exekverbar)
# Definition av variabel - behövs ej i python (men man kan omvandla till olika typer)
# är en radkommentar
"""
Flerraderskommenterat
Referens:
http://www.python.org/
"""
# Note: The indentation is important in Python. Blocks in conditional execution
# (and loops and function definitions — see below) must be indented (and indented
# by the same amount of whitespace; a tab counts as 8 spaces) so that the interpreter
# can tell where they begin and end. It also makes the program more readable to humans.
# Blocks are indicated through indentation, and only through indentation.
import os # behövs för att os.remove ska fungera nedan
import time # behövs för att sleep ska fungera nedan
# En utskrift
print “Hello, world!”
# Skriv ut tid
print time.strftime("%Y-%m-%d %H:%M")
# Definiera en funktion som skriver ut aktuell tid
def t(): # En funktion som printar aktuellt datum och tid.
return time.strftime("%Y-%m-%d %H:%M:%S") # tex 2008-03-13 22:41:24
#Anropa funktionen
print t()
# Wait 1s
sleep(1)
#Anropa funktionen
print t()
# Skapa en fil och skriv data till den.
f=open('pytfil.txt','w') # skapar fil att write to.
f.write('97') # Skriver 97 i filen
f.close()
# Kolla om fil finns
finns=os.path.exists('pytfil.txt')
print 'finns =', finns # Skriver ut "finns = True" om filen finns
# Läs data från fil och ta sen bort filen
fr=open('pytfil.txt','r') # "create" file to read from.
data=fr.read() # Läser in data från filen
fr.close() # Stänger filen
# Ta bort filen ?
os.remove('pytfil.txt') # Removes the file
print 'data är', data # Skriver ut datan som fans i filen
================================================================================
// C-kod
--------
// att göra färdigt, denna kod gör bara en bråkdel av vad pythonkoden gör ovan
// = radkommentar
/* Fleraderskommentar
Fleraderskommentar
Fleraderskommentar */
// Kompilera: Linux> gcc program.c -o program.o
# Kompilerar C-koden i program.c. program.o är den kompilerade koden
Linux> ./program.o # Exekverar C-programmet.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
// Funktionsdeklarationer
int skriv2textfil(char[], int) ;
void wait ( int seconds ) ; //
void skrivTid() ;
void skrivDatum() ;
// Main function ---------------------------------------------------------------
//int main(int argc, char *argv[])
int main()
{
printf("Programkod © C-Program, Version 2008-01-26\n");
printf("SimC simulator modelled in C\n");
// datum och tid:
skrivTid();
wait(1); // väntar 1 s
skrivTid();
void skrivTid() // Funktionsdefinition för att skriva ut aktuell tid
{
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
time ( &rawtime );
timeinfo = localtime ( &rawtime );
strftime (buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo);
puts (buffer); // skriver till stdout.
}
// Den här funktionen behövs för att man ska kunna göra wait(1) se ovan.
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
// Läs data från fil
FILE *pFile;
pFile=fopen(inFilNamn, "r");
fscanf(pFile,"%d",&inData); // indata läggs i inData.
fclose(pFile); // Obs! stäng bara om fil fanns.
remove(inFilNamn); // Ta bort den inlästa filen
fclose(pFileF); // Stäng Flag-filen.
remove(inFilNamnF); // Ta bort Flag-filen.
================================================================================================
Java
----
Exempel på hur delar av kod ser ut i Java: ...att göra klart.........
// Kompilera: Linux> javac program.java
// Exekvera: Linux> java klassnamnet // som beror på klassnamnet i pprogramfilen
// Fördröjning 1s
Thread.sleep (1000); // 1 s paus/fördröjning återupprepas tills filen finns.
fil = "filnamnet"
File inFil = new File ("dir", fil ); // Skapar ett filobjekt ( "dir", "fil" )
while (inFil.exists() ) // sant om filen finns
// Läs in data från dir/fil
java.io.FileReader fr2 = new java.io.FileReader (inFil);
// Ger exception om inFil ej finns.
java.io.BufferedReader br2 = new java.io.BufferedReader(fr2);
String instring = br2.readLine();
indata = Integer.parseInt(instring) ;
System.out.println ("Data from filen " + fil + " = " + instring );
br2.close();
inFil.delete(); // Tar bort filen när den är inläst.
... osv.....
================================================================================================
1. Steg 1 bör vara att man/vi/någon moderator definierar en programmall.
2. Sen kan de som vill skriva ett program i det språk de tycker är bra.
Tex (C, C++, Java, Python, Ruby,....osv
0. En fördel med sådana här programexempel är att om man vill lära sig ett nytt programspråk
kan man kopiera den koden och ha som förlaga som man sen modifierar och skriver ett eget program.
Jag har skrivit program i C och Java och börjat lite smått med Python så de språken skulle jag kunna
hjälpa till med om ni tycke rdet är en bra ide.