C

Für alle Themen, die nichts mit Laser zu tun haben.

Moderator: Gooseman

Antworten
Benutzeravatar
random
Beiträge: 2160
Registriert: Fr 03 Aug, 2001 12:00 pm
Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light.
Wohnort: München - 85540 Haar
Kontaktdaten:

C

Beitrag von random » So 16 Sep, 2007 10:57 pm

Oh man, wer hat sich nur C ausgedacht *geil*
Mal in ner halben Abendstunde langeweile gehabt...
Das hier läuft :twisted: :twisted: :twisted:

N thp(J *s, ... K P VL g;N i=0; J*p=0; M N t=0;VS(
tag, s);D S s K P C'%'H P S L Z K K P C'i'H P t=VA
(g, N);I t<0 K P F'-'XX t=-t; Q p=L J*K t; I!t K F
48 XX E O i=MAX_NUM_DEC;i; i/=10 K P I(N K p/i K P
F L t/i K+48 XX t%=i; Q Q Q Q B C'c'H P F L J K VA
(g,N)XX Q B C's'H P p=VA(g, J*);D F*p XX Q W*p++ G
Q B Q Q B C'\\'H P S L Z K K P C'n':F'\n'XX B C't'
:F'\t'XX B Q Q B Y F*s XX Q Q W*L Z K G VE(g);R 0 G Q

Wenn ich das verfeinert hab, mach ich glaub ich mal bei diesem OCC mit ;-)

Aber ich finde es schon lustig, wie man auf diese Weise ein Programm __völlig__ unlesbar machen kann *grins*


Greetz,
/r.


PS: natürlich läufts nicht ohne die #defines:
#define VL va_list
#define VS va_start
#define VA va_arg
#define VE va_end
#define X stdout);
#define F fputc(
#define S switch(*
#define K )
#define L (
#define D do{
#define I if(
#define Y default:
#define C case
#define B break;
#define Z ++s
#define W while(
#define J char
#define N int
#define R return(
#define M signed
#define E else{
#define g tag
#define O for(
#define P {
#define Q }
#define G );
#define H :
#define XX ,X



spätestens wenn man in seinem sourcecode solche sachen macht, sollte man sich mal Gedanken machen 8)

led_out(1<<(i=i<7?i++:0));


C macht Spass !!!


Axxo:

aufruf:
thp( printf formatstring );

also:
thp("Hello, World");
thp("\nString %s = Number: %i on char %c", string, number, c);
Grün ist blauer als Rot...
NetLase-LC Firmware.

Benutzeravatar
gento
Beiträge: 3973
Registriert: Fr 17 Nov, 2000 12:00 pm
Do you already have Laser-Equipment?: Apollo 4a + 4b , Turbotrack 2 , Minisax +++ G120DT +++ G138DT +++
Raytrack 40 ,CT 6210 , CT 6800 , K12
Pangolin , LDS Dynamics ,Phoenix Premium , LDS 2010 ,LDS 2008 , HE
Gas RGB 2W , 800 mW , ALC60
RGB >1W +++
Wohnort: D / NRW / Hamm

Beitrag von gento » So 16 Sep, 2007 11:42 pm

10 Gründe, warum Pascal besser ist als C

1. Pascal wurde als vornehme Sprache nach einem berühmten französischen Mathematiker und Philosph, Blaise Pascal, benannt. C wurde nach einem Darsteller in der Sesamstraße benannt.

2. Pascals Erfinder, Niklaus Wirth, und Konventionen, Parameter zu übergeben, erlauben ein geschicktes Wortspiel: Man kann seinen Namen aussprechen als Referenz: Wirth, oder als Wert: Worth. C wurde in den Bell-Labs erfunden, wo man bestimmt keinen Witz von einem Transistor kennt.

3. Es gibt nur ein Pascal, das von Wirth definiert wurde, während C (sollen wir es sagen?) mehrere Väter hat: Kerninghan & Ritchie, Harbison & Steele, Barnum & Bailey und Laurel & Hardy.

4. In C sind die folgenden Variablen alle verschieden: thesame, TheSame, theSame und THESAME. Das sagt alles.

5. Wenn man in Pascal mit einem Zeiger oder einem Handle spielt, weiß man, dass man mit einem Zeiger oder einem Handle spielt. In C könnte man mit allem spielen. C ist die ultimative Sprache für häufigen Computerwechsel.

6. In Pascal *wissen* wir, wie groß ein Integer ist.

7. C wird von Liberalen, Demokraten und Programmierertypen wie Mike Dukakis verwendet. Pascal ist ein Favorit der Konservativen. Hey, wir wissen, welches die große Programmiersprache in Berkeley ist, oder?

8. C ist die einzige Sprache in der zivilisierten Welt, die es immer noch ablehnt, das Dollarzeichen für hexadezimale Konstanten anzuerkenen, und fortfährt dafür zu werben, dass diese Basis Anspruch auf den Thron hat: 0x00.

9. Pascal hat gut definierte Regeln für Scope*, während es scheint, dass C Listerine* verwendet. Das erklärt den medizinisch-alkoholischen Atem vieler C-Programmierer.
* Scope und Listerine sind zwei Marken von Mundwasser in den USA; in einer Werbekampagne verbreitete Scope, dass Listerine-Nutzer "medicine breath" hätten.

10. In C kann man dieses tun:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
In Pascal kann man dieses NICHT tun:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

Gento

Quelle :www.dsdt.info
Bild

Benutzeravatar
random
Beiträge: 2160
Registriert: Fr 03 Aug, 2001 12:00 pm
Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light.
Wohnort: München - 85540 Haar
Kontaktdaten:

Beitrag von random » Mo 17 Sep, 2007 9:12 am

Gut recherchiert!

Letztere Zeilen stammen wohl vom http://www.ioccc.org/ oder von der Scherzeinführung, wie C entstanden ist.

Man sagt ja nicht umsonst, lerne Pascal, bevor du C lernst. Weil Pascal einfach eine der saubersten Programmiersprachen ist.

Das mit dem Integer ist aber gar nicht so schlecht, man muss nur bei seiner Architektur drauf achten.
(int) ist immer mind. 16Bit gross, bei >8Bit Architekturen die Wortbreite (also 32Bit bei ARM).
Mit #ifdef und typedef kann man sich da flexibel halten.


Wenn man des C mächtig ist, kann man soo viele schöne Sachen machen ;-)
Das oben ist nur mal ein kranker Zeitvertreib :twisted:


Greetz,
/r.
Grün ist blauer als Rot...
NetLase-LC Firmware.

Benutzeravatar
deadeye5589
Beiträge: 138
Registriert: Di 04 Sep, 2007 6:19 am
Wohnort: Oberhausen (NRW)
Kontaktdaten:

Beitrag von deadeye5589 » Mo 17 Sep, 2007 11:09 am

C hat den Vorteil, daß es die einzige Programmiersprache ist, mit der man auch Hardware anstelle von Assambler programmieren kann. Ansonsten bin ich klar für Brainfuck als Programmiersprache. Da zeigt sich, wer Pointer beherscht :P
Auf Dauer hilft nur Power

mackel

Beitrag von mackel » Mo 17 Sep, 2007 11:30 am

Achja,

die Programmiersprachen-Streiterei hat auch dieses Forum endgültig erreicht. :-P

Also ich bevorzuge Java, C# danach kommt dann C(++) und VB(.net)

Hab früher mit VB angefangen, bin dann wegen der Beschränkungen die VB hat, mit C++ angefangen, um mir kleine Librarys für VB zu schreiben, mit denen ich dann "Systemnah" arbeiten konnte. In C++ hab ich eigendlich immer nur Consolenprogramme oder Librarys gebaut. Mit GUIs unter C++ konnt ich nie was anfangen....

Dann hab ich in der Ausbildung Java gelernt ! Das war erstmal richtig geil. GUIs schnell selberbeisteln. Eine gute Syntax und super für OOP. Dazu noch recht easy. Irgendwann hab ich .net kennen gelernt. Erst noch so ein bisschen VB.net aber da mir die Syntax nicht mehr gefiel, hab ich mich c# genähert, und jetzt programmier ich mit c# und wenn nicht vermeidbar c++.

Jeder macht so seine Entwicklung durch bis er dann die Sprache seiner Wahl gefunden hat...

Und ... Ordnung gehört zum Programmieren wie auch in jede Werkstatt.:roll:
Keine Ordnung: Findste nix wieder. Alles versinkt so langsam im Chaos!

Inlines sollte man vermeiden, da leidet meistens die Struktur drunter. Und das Gerücht das es schneller ist, ist auch nicht wahr.
Manchmal mach ich das auch und ist bei kleinen Sachen auch Vorteilhaft.

Aber dieses "angeberisch" hingeschriebenen "Mordszeilen" sind echt "harakiri". Schau in so einen Code mal nach 1 oder 2 Jahren rein. Bahnhof ? :P

Mackel

Benutzeravatar
deadeye5589
Beiträge: 138
Registriert: Di 04 Sep, 2007 6:19 am
Wohnort: Oberhausen (NRW)
Kontaktdaten:

Beitrag von deadeye5589 » Mo 17 Sep, 2007 11:49 am

Schau dir Brainfuck an, da ist nach 30 Sekunden schon der Bahnhof erreicht. Es gibt zwar nur 8 Befehle die reichen aber aus.

http://de.wikipedia.org/wiki/Brainfuck
Auf Dauer hilft nur Power

Benutzeravatar
random
Beiträge: 2160
Registriert: Fr 03 Aug, 2001 12:00 pm
Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light.
Wohnort: München - 85540 Haar
Kontaktdaten:

Beitrag von random » Mo 17 Sep, 2007 1:07 pm

schon mal gesehen, das macht einen echt konfus in den windungen ;-)

Ich finde das bei C gerade gut, dass man alles selber machen muss.

Nimmt man die interpretierten (basic), oder auch Java, bekommt man bereits sehr mächtige codeblöcke mitgeliefert -> klarer vorteil!

Nur, was die meisten vergessen:
Letztenendes beruhen diese programmiersprachen auch wieder auf code, der in C (ok, vllt einige wenige in asm) geschrieben wurde ... einen basic interpreter oder eine java vm kann man nicht in basic oder java schreiben ;-)

Vor allem kann man in C schlanken code schreiben, der bei heutigen compilern (z.B. der armcc) pure asm konkurenz macht!

Das oben sind übrigends 200+4 Byte asm-code!


btw: basic kommt mir genausowenig aufn µC wie java (arm9...J einmal ausgenommen) :twisted:

Aber es kommt halt drauf an, was man machen will.
Hardwarenah asm oder C,
abstrakt (z.B. GUI): Java, (V)B, etc...


Ich für meinen Geschmakk betrachte die Basic-derivate ja als spielkram (*sorry* wenn ich damit jemandem auf die füsse trete).
Das originale Basic (C64, QBasic, ...) sowie die Visual-aufsätze ist ja fast wie ein englischer text lesbar ;-)
Heisst ja auch nicht umsonst: Beginner’s All-Purpose Symbolic Instruction Code, was soviel bedeutet, dass mit kleiner einarbeitung jeder *** so was "programmieren" kann :twisted:
Ich finds immer wieder lustig, wenn die Exel/Word-bediener mich fragen, wie man doch das eine oder andere als formel hinbekommt.
Und obwohl ich nur wenig ahnung von exel/word habe (I prefer TeX), kann ich doch immer wieder helfen ;-) Ich möcht's nu nicht als "Tippsenprogrammiersprache" abstempeln, weil ich selbst damit aufm C64 angefangen habe..., aber so war's mal gedacht! Hinführung der Leute an eine richtige Programmiersprache.

Erst später gabs dann ja die Basic-"Compiler", die schon mal etwas schnelleren Code erzeugten... Genaugenommen ist Basic ja nichts viel anderes als die heutigen scriptsprachen...



Greetz,
/r.

(ohoh, das gibt nu wieder haue :twisted: )
Grün ist blauer als Rot...
NetLase-LC Firmware.

mackel

Beitrag von mackel » Mo 17 Sep, 2007 1:31 pm

Hi,

jo, Brainfuck macht seinem Namen da alle Ehre. Kannte es selber noch nicht.
Hab bei wikipedia nachgeschaut.
Also schon das Hello-World Dingen hat mich ein wenig verwirrt. :P

Aber das Ziel war ja auch wohl einen Compiler unter 200 Byte zu schreiben, was er dann ja auch schaffte.

Aber das Resultat ist aber eher Dürftig. :-P

Zu C:
Es ist klar, das C für viele Sachen einen Basis darstellt, und es ist mit Ausnahme von ASM das Systemnahste was du haben kannst. Doch du hast es nicht so konfortable wie bei anderen Sprachen. Viel wird dir da schon bereitgestellt, und du kannst dien Projekt sehr viel schneller durchziehen. Deshalb greife ich ja nur wenn's heikel wird auf C zurück. (Microcontroller, I/O, ...)

Mackel

Benutzeravatar
deadeye5589
Beiträge: 138
Registriert: Di 04 Sep, 2007 6:19 am
Wohnort: Oberhausen (NRW)
Kontaktdaten:

Beitrag von deadeye5589 » Mo 17 Sep, 2007 4:01 pm

Eigentlich ist bei sicherheitsrelevanter Hardware ASM sogar dem C vor zu ziehen. Man weiß ja leider nicht, wie der Compiler den C Code in Assambler übersetzt und da ändert sich schon mal gerne was von Version zu Version. Da hat man dann keine Idee, wo dieser eine Fehler herkommt und sucht sich tagelang einen Wolf, bis man merkt das Version b zwei Zeilen anders übersetzt als Version a mit der das Programm ursprünglich getestet wurde.

Ansonsten kriegt man mit den .NET MFC Klassen auch recht schnell graphische Oberflächen hin und mit nem bissel mehr Aufwand ist man dann auch schnell bei DirectX.

Java ist dafür schön Plattformunabhänig. Und man muss sich nicht mit den Pointer quälen. Aber wie schon mein Informatikprof sagte: "Java ist für Maschbauer, die großen Jungs spielen lieber mit C"
Auf Dauer hilft nur Power

Benutzeravatar
netdiver
Beiträge: 1832
Registriert: Do 08 Jun, 2000 12:00 pm
Do you already have Laser-Equipment?: RGB Laser
Wohnort: Berlin
Kontaktdaten:

Beitrag von netdiver » Mi 19 Sep, 2007 7:41 pm

Also die Mutter aller Programmiersprachen ist ja immer noch Vatical

C++heckt mal das hier

.. und noch ein paar Varianten über Google.
-=| Life is a lesson, you learn it when you're through |=-

Benutzeravatar
sanaia
Beiträge: 812
Registriert: So 20 Jun, 2004 5:49 pm

Beitrag von sanaia » Mi 19 Sep, 2007 9:49 pm

ist das zufällig ein april-release ... ?

Und ich dachte schon 'rgscript' mit seinen 12 MAC-registern, die ausschließlich über nummern indiziert werden, wäre der supergau ...
* godsh # ERROR 406: file corrupt: config.earth --- reboot universe? (Y/N) *

Benutzeravatar
floh
Beiträge: 2406
Registriert: Mo 04 Feb, 2002 12:00 pm
Do you already have Laser-Equipment?: Lexel 88, Compass 315, diverse HeNe und eine Menge Kleinkram.
Wohnort: Ostschweiz
Kontaktdaten:

Beitrag von floh » Mi 19 Sep, 2007 10:08 pm

C ist Meister darin in einem Programm das aus 5 Zeilen Code besteht hunderte Fehler anzuzeigen nur weil ein einziges Semikolon fehlt :wink:

Da lobe ich mir den alten Basic Befehl ON ERROR RESUME der damals bei meinen Programmen stets zuoberst stand :twisted:

Ich habe übrigens meine ersten Programmierschritte im Alter von etwa acht Jahren in HyperCard getätigt. Das war schon objektorientiert als die meisten Hobbyprogrammierer noch nicht mal wussten wie man das schreibt.

Benutzeravatar
deadeye5589
Beiträge: 138
Registriert: Di 04 Sep, 2007 6:19 am
Wohnort: Oberhausen (NRW)
Kontaktdaten:

Beitrag von deadeye5589 » Mi 19 Sep, 2007 10:20 pm

hmm vatical ist so ählich wie chef oder shakespeare

Hallo-Welt-Soufflee

Ingredients.
72 g haricot beans
101 eggs
108 g lard
111 cups oil
32 zucchinis
119 ml water
114 g red salmon
100 g dijon mustard
33 potatoes

Method.
Put potatoes into the mixing bowl.
Put dijon mustard into the mixing bowl.
Put lard into the mixing bowl.
Put red salmon into the mixing bowl.
Put oil into the mixing bowl.
Put water into the mixing bowl.
Put zucchinis into the mixing bowl.
Put oil into the mixing bowl.
Put lard into the mixing bowl.
Put lard into the mixing bowl.
Put eggs into the mixing bowl.
Put haricot beans into the mixing bowl.
Liquefy contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.

Serves 1.
Auf Dauer hilft nur Power

Benutzeravatar
sanaia
Beiträge: 812
Registriert: So 20 Jun, 2004 5:49 pm

Beitrag von sanaia » Do 20 Sep, 2007 8:33 am

floh hat geschrieben:Da lobe ich mir den alten Basic Befehl ON ERROR RESUME
Wer immer diesen befehl erfunden hat, war zu faul zum fehler suchen ... ;)
Man denke nur an sowas:

Code: Alles auswählen

circle_diameter = 1 / blablabla;
WriteCircleToLaser(circle_diameter);
Das ergäbe mit 'blablabla=0' anstelle der "welcher idiot hat das programmiert ?" fehlermeldung eine fette photonenramme ins auge des betrachters.
* godsh # ERROR 406: file corrupt: config.earth --- reboot universe? (Y/N) *

mackel

Beitrag von mackel » Do 20 Sep, 2007 3:23 pm

So welche faulen Leute giebts aber auch bei c#,Java und c++ !!

Code: Alles auswählen

try{
float circle_diameter = 1 / blablabla;
WriteCircleToLaser(circle_diameter);
}catch(...){
PointLaserToProgrammersEye();
}
Nur mit dem Unterschied das hier Konsequenzen folgen. :twisted:

Benutzeravatar
sanaia
Beiträge: 812
Registriert: So 20 Jun, 2004 5:49 pm

Beitrag von sanaia » Do 20 Sep, 2007 3:57 pm

BTW: ICC v10 ist raus und kostenlos für linux-codende privatanwender. Ein muss, wenn man alle kerne beschäftigen will.
* godsh # ERROR 406: file corrupt: config.earth --- reboot universe? (Y/N) *

Antworten

Zurück zu „Off-Topic“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste