AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wenn man sich was wünschen dürfte...
Thema durchsuchen
Ansicht
Themen-Optionen

Wenn man sich was wünschen dürfte...

Ein Thema von stahli · begonnen am 17. Sep 2015 · letzter Beitrag vom 24. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.235 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Wenn man sich was wünschen dürfte...

  Alt 19. Sep 2015, 10:38
Wenn ein Kind seinen ersten (1) Geburtstag feiert, dann ist ein Jahr rum, das Leben fängt also bei 0 an.
Und wenn ich jetzt mir eine Auswahl zwischen zwei Äpfel gibt sag ich dann auch ich will den 0ten Apfel
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

AW: Wenn man sich was wünschen dürfte...

  Alt 19. Sep 2015, 11:18
Da hat Bernhard auch Recht. Aber : es gibt ein Binärsystem. Um 256 Zahlen darzustellen komme ich mit einem Byte aus, aber nur, sofern ich die 0 mitnehme.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.365 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wenn man sich was wünschen dürfte...

  Alt 19. Sep 2015, 11:53
Da hat Bernhard auch Recht. Aber : es gibt ein Binärsystem. Um 256 Zahlen darzustellen komme ich mit einem Byte aus, aber nur, sofern ich die 0 mitnehme.
Speicherbezogen hast Du Recht.
Wenn Du 256 Einträge in einer Liste speichern willst ist das erste natürlich auch am Speicherplatz[0] zu finden.

Aber das heißt ja nicht, dass eine Hochsprache dafür nicht die 1 vorsehen könnte.
Der tatsächliche Zugriff muss dann natürlich auf die Speicherstelle[0] erfolgen.

Statt for I := 0 to 255 schreibst Du dann halt for I := 1 to 256 .
Unterm Strich ändert sich nichts, weil der Maschinencode dann gleich aussieht.

Die einzige Frage ist, was für den Menschen das logischere ist. Offenbar gehen die Meinungen da auseinander.
Technische Überlegungen wie Binärsystem ab 0 sind aber m.E. kein wirkliches Argument für Listenzähler.


Label.Text := 'Text' ist ja auch nichts, was irgendeinen natürlichen Bedzug zum Speicheraufbau hat. Die Entwicklungsumgebung gaukelt uns das nur vor. Hier sagt ja auch niemand: Im Speicher gibt es keine Labels, deshalb sind die nicht sinnvoll.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
440 Beiträge
 
#4

AW: Wenn man sich was wünschen dürfte...

  Alt 19. Sep 2015, 12:25
Da es ja um quasi philosophische Überlegungen geht:

Offensichtlich hängt doch der sinnvolle Index von den Daten ab, die verwaltet werden. Wenn ich ein array von Farbintensitäten haben, formulieren ich irgendetwas wieFarbwerte: array [Farben] of Integer . Nicht umsonst wurde die Wahl des Index bei statischen Arrays dem Programmierer überlassen. Den Rest hat der Compiler erledigt. Bei den dynamischen Arrays wollte man sich diesen Aufwand sparen und hat sie schlicht als 0-Basiert definiert. Aus meiner Sicht wäre es konsequent gewesen, wenn man den Basiswert auch bei dynamischen Arrays umgesetzt hätte.

Wäre es nicht eigentlich viel besser, gleich auf arrays zu verzichten und diese statt dessen als Listen-Objekte zu implementieren? Und brauche ich dann Strings (AnsiStrings sind ja eh schon gestorben)? Sollte nicht einfach alles ein Objekt sein?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Wenn man sich was wünschen dürfte...

  Alt 19. Sep 2015, 12:34
Aber : es gibt ein Binärsystem. Um 256 Zahlen darzustellen komme ich mit einem Byte aus, aber nur, sofern ich die 0 mitnehme.
... und genau deshalb wird in Programmiersprachen in der Regel ab 0 indexiert ...
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#6

AW: Wenn man sich was wünschen dürfte...

  Alt 23. Sep 2015, 08:44
Mit Nullbasierten Listen habe ich kein Problem. @Sir Rufo erlärt das gut mit dem Geburtsproblem.

Wenn ich auf dem Bildschirm die X;Y Position adressieren will, mache ich das oft mit:

Line := Abslute_Position div XResolution;
Column := Abslute_Position mod XResolution;

Das klappt aber nur, wenn das erste Pixel des Bildschirmes an Position NULL liegt.

Jemans schrieb, das ein Byte 256 Werte annehmen kann, was nur geht, wenn die NULL berücksichtigt wird.

Zitat von Luckie:
Ich war glücklich, wenn sie das "Haus des Nikolaus" gezeichnet hat.
Das ist die kindgerechte Form des Salaesman Problems. Jeder Weg soll öglichst nur einmal gegangen werden.


Ich wüchsche mir vielmehr einen Compiler, der die Initialisierung und Freigabe der verwendeten Objekte automatisiert. Ich habe sehr oft EAccessViolations. Weil wohl irgendein Objekt nicht korrekt erzeigt worden ist. Dann geht die frustrierende Fehlersuche los.

Die Prozessoeren werden immer leistungsfähiger, da könnte doch der Compiler Konstruktorcode und Destruktorcode automatisch einfügen.

Für Abwärtskompatibilität könnte der im Quellcode formulierte Konstruktor und Destruktor noch zugelassen werden, fehlt das jedoch in der Klassendefinition muss der Compiler den passenden Code dafür erzeugen.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

AW: Wenn man sich was wünschen dürfte...

  Alt 23. Sep 2015, 20:01
Zitat:
Die Prozessoren werden immer leistungsfähiger, da könnte doch der Compiler Konstruktorcode und Destruktorcode automatisch einfügen.
Das ist in der Tat ein (in meinen Augen) wichtiger Punkt. Konstruktoren zu automatisieren finde ich unglücklich, weil dadurch wieder schwer zu findende Fehler passieren. Destruktoren finde ich inzwischen überflüssig/nervig.

Viele Sprachen (gerade junge) gehen ja stark in die Richtung. C# und Java machen es ja vor, da gibt es einen Garbage Collector. In Rust prüft (meines Wissens) der Compiler statisch (also beim compilieren) ob es sein könnte, dass du auf ein freigegebenes Objekt zugreift. Falls das sein kann, compiliert das Programm nicht.

Manche beschweren sich, dass moderne Programme immer mehr Bloatware sind, aber zu einem Teil ist das einfach nur ein Tradeoff von "Entwicklerzeit/kosten" gegen Laufzeitperformance/Größe. Und bei modernen CPUs finde ich, darf man den Kompromiss auch graduell Richtung Reduktion der Entwicklungszeit steuern.

Leider ist es sehr schwierig, eine Sprache, die von jeher auf manuelle Speicherverwaltung setzt, auf automatische Speicherverwaltung zu ändern. Sieht man ja bei C++ und den neuen Smart Pointern: http://stackoverflow.com/questions/5...oost-explained

Geändert von jfheins (23. Sep 2015 um 20:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Wenn man sich was wünschen dürfte...

  Alt 23. Sep 2015, 20:35
Garbage Collector. Ein Garage Collector wäre ein Autowerkstatt Sammler.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

AW: Wenn man sich was wünschen dürfte...

  Alt 23. Sep 2015, 20:45
Garbage Collector. Ein Garage Collector wäre ein Autowerkstatt Sammler.
Ach verdammt Mit der Rechtschreibprüfung im Browser wird man echt dazu verleitet, nur noch die rot unterstrichenen Sachen zu überprüfen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

AW: Wenn man sich was wünschen dürfte...

  Alt 23. Sep 2015, 20:49
..dass moderne Programme immer mehr Bloatware sind, aber zu einem Teil ist das einfach nur ein Tradeoff von ,,,
Da wird über Computersprachen diskutiert, ist ja auch richtig, aber erkläre mir mal (auf deutsch), was Bloatware ist, oder Tradeoff. Das ist (keine Angst : 9 Jahre Englisch dürften reichen) so nicht verständlich, nicht mal im Zusammenhang. Wenn in einem Team in solch einem Stil kommuniziert wird, tja, dann gute Nacht. Starke Erhöhung der Entwicklungszeit. Da ist man ja mehr damit beschäftigt, zu überlegen, was einer meint oder wälzt womöglich noch Wörterbücher. Es gibt eingedeutschtes. Ich sage auch gelegentlich "Klicke mal den geschickten Link an". Link ist schon kürzer als z.B. "Daten-Fernübertragungs-Darstellungs-Zugriffspunkt". In Deutsch neue halb-englische Wortschöpfungen zu erfinden, das ist imho allerdings wirklich überflüssig. "Handy" lässt grüssen, das versteht nicht mal ein Amerikaner.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz