diagram

___ qstntxt ___

Ich muss in C ein kurzes Programm erstellen, das Strings manipuliert, aber ich stoße immer auf seltsame Zeigerfehler. Während K & amp; R ist eine große Referenz auf die Sprache, und ich sehe es oft, wenn ich verwirrt bin, nimmt es bereits an, Sie sind ein angemessener Programmierer.

Der Dozent, der uns das Programmieren beibringt, sagte, dass gute Programmierer schöne Diagramme über diese Sachen machen, aber ich habe keine Ahnung, wie ich das machen soll. Kannst du ein gutes Buch oder Vorträge dazu empfehlen?

Danke, ich werde jede Antwort, die ich bekomme, schätzen.

    
___ qstnhdr ___ Wie machen Sie Diagramme von Speicher- und Datenstrukturen? ___ answer694972 ___

Eines der nützlichsten Dinge, die ich einmal getan habe, war meine Anwendung Zeichnen Sie die Graphen ...

In einer Anwendung, die eine komplizierte Datenstruktur hatte, die auf den Job spezialisiert war (Standard-Hashtabelle hat in diesem Fall nicht getan ;-) Ich hatte meine Anwendung ein ".dot" -Skript ausgeben, das Punktwerkzeug von graphviz könnte analysieren.

Dies geschah, indem eine Dump-Routine (okay, Methode, es war C ++) den .dot-Header

ausgab %Vor%

ging dann meine Datenstruktur und schrieb dann die Fußzeile

%Vor%

In der Struktur walk hat er jeden Zeiger mit

geschrieben %Vor%

Dabei war Quelle die Speicheradresse des mit O (O213435354) vorbereiteten Referenzierungsobjekts, und Ziel war das Objekt, auf das im selben Format verwiesen wurde.

Am Anfang jedes Objekts schrieb es auch

%Vor%

mit ... als Objektdaten.

Immer wenn die Anwendung in einem "interessanten" Zustand war, habe ich den Graph gelöscht und dann das Punktwerkzeug von graphviz verwendet, um es zu visualisieren. Ich habe sehr viel Zeigerfehler ziemlich leicht auf diese Weise gefunden, das Auge wird gebaut, um regelmäßige Strukturen in Linien zu sehen ...

Übrigens verwende ich immer noch graphviz , da es ziemlich nett ist, & amp; editieren Sie Graphen mit dem Texteditor und lassen Sie das Werkzeug danach visualisieren. Wenn ich Grafiken für ein Powerpoint-verwöhntes Publikum verkleiden muss, lade ich sie auf meinen Mac in OmniGraffle . (Und meine PC-Mitarbeiter glauben, dass ich einige Superhelden-Kräfte habe, weil ich mit dieser Kombination Graphen 10-mal schneller produziere, wenn sie Visio verwenden)

    
___ answer695033 ___

Ich stimme dem Vorschlag zu, sie zuerst auf Papier zu zeichnen und dann, wenn Sie das Bedürfnis haben, können Sie eine ASCII-Version davon in den Code einfügen.

Normalerweise verwende ich diese drei Formate:

um über das Gedächtnis nachzudenken:

%Vor%

um über Strings nachzudenken:

%Vor%

um über Bits in einem Wort nachzudenken:

%Vor%

Ich habe auch für endliche Automaten etwas Ähnliches gemacht, aber sie waren tendenziell zu komplex (und zeitaufwändig), weshalb ich den Graphviz-Code jetzt direkt in einen Kommentar einbettete. Selbst wenn man nicht über GraphViz Bescheid weiß, sollte es leicht zu erraten sein, wie man das FSM-Diagramm zeichnet.

%Vor%

Diese decken die meisten Diagramme ab, die ich brauche. Für komplexere verwende ich GraphViz oder OpenOffice Draw.

    
___ answer694943 ___

Das typische Speichermodell für C ist, dass Speicher eine Menge von Boxen ist; Jede Box ist 1 Byte breit. Jede Box hat eine Adresse in hexadezimaler Schreibweise. Ein Zeiger ist eine Variable, die eine Adresse enthält.

In Bezug auf Bücher / Vorträge suchen Sie nach einem grundlegenden Computer-Organisation und Architekturbuch.

Ich habe diese drei Bücher benutzt; Ich ordne sie durch "abnehmende Verständlichkeit" an. Der Klassiker ist der letzte von Patterson und Hennessy, aber ich finde ihn am wenigsten lesbar. YMMV.

Ссылка

Ссылка

Ссылка

    
___ answer694926 ___

Fragen Sie nach Werkzeugen, die Ihnen beim Zeichnen von Diagrammen helfen oder was die Diagramme darstellen sollen? Ich würde empfehlen, nur ein Stück Papier und Bleistift für alles zu verwenden, was Sie tun, um zu versuchen, dies selbst zu verstehen; Sie brauchen keine ausgefallenen Werkzeuge.

Wenn Sie wissen möchten, wie Zeiger funktionieren und was die Diagramme bedeuten, habe ich gefunden dieses Handout nach dem Googlen, das wie ein anständiges Tutorial aussieht.

    
___ answer694934 ___

Gute Programmierer machen keine "netten" Diagramme - sie machen ungepflegte, unleserliche, die ihren Zwecken dienen. Kritzeln Sie einfach, was Sie brauchen, auf jeder verfügbaren Oberfläche. Und wage es nicht, die "richtigen" Formen zu zeichnen - ein Ex-Kollege von mir hat einmal gesagt, dass eine Diagrammmethodik nicht wert wäre, wenn man die Diagramme nicht auf der Rückseite einer Kippe zeichnen könnte UK Leute) Paket.

    
___ answer695013 ___

Ein einfacher Weg ist es, die Erinnerung als eine riesige "Leiter" zu zeichnen. Jede Box in der Ladder repräsentiert eine Adresse im Speicher. In das Feld tippen Sie die Daten ein und daneben tippen Sie die Adresse ein. Etwas wie das:

Ссылка

Erfahren Sie auch, wie der Debugger funktioniert, er kann Ihnen oft den Inhalt von Zeigern, Variablen usw. zeigen.

    
___ answer695068 ___

Dies trifft nur auf diejenigen zu, die mit dem Inneren der Maschine vertraut sind, aber ein Trick ist, eine "falsche" Speicheradresse in meine Diagramme zu schreiben, damit sie realistisch aussieht. Was ich meine, ist dies:

%Vor%

Erraten Sie, welche Variable den Zeiger hat, und welcher hat den Wert? Eigentlich schreibe ich normalerweise die Adresse unter (oder über) B's Box, um zu zeigen, wo es ist. Und dann werde ich eine andere (sehr unterschiedliche) gefälschte Nummer aufstellen, um zu zeigen, dass A auch irgendwo liegt. Dies ist hilfreich, wenn Sie gerade erst anfangen. Später gewöhnt man sich an all diese Zeiger Zeug.

    
___ answer695005 ___

Verwenden Sie einen quadratischen Karton (Quadrille anstelle von Graphen) und einen anständigen Stift *, wenn Sie möchten, dass Ihre Diagramme schön aussehen. Auch nützlich für die Darstellung von Speicherzellen, Buchstaben in Strings und so weiter. Sie können Quadrille Moleskine sogar erhalten, wenn Sie gleichzeitig hip und quadratisch sein möchten.

*** Ich mag uni shalaku dx 0.5, da es den Feeder-Knopf an der Seite hat, so dass du deinen Griff nicht verschieben musst, um mehr Blei zu bekommen.

    
___ tag123memory ___ Verwenden Sie dieses Tag für die Speicherverwaltung oder Probleme beim Programmieren. Bei Fragen zu Speicherhardwareproblemen oder Fehlern in allgemeiner Software rufen Sie https://superuser.com oder https://serverfault.com auf, wenn dies mit Hardware oder Software auf Unternehmensebene zu tun hat. ___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ answer695123 ___

Der beste Weg, Ihr Problem zu visualisieren, besteht darin, Ihren Code zu debuggen. und konzentriere dich auf deine Variable. Es wird Ihnen nicht nur einen Einblick in Ihren Code geben, sondern Sie können auch ein exaktes Diagramm des Codes erstellen, den Ihr Dozent Ihnen gesagt hat.

    
___ tag123diagramm ___ Ein Diagramm ist eine zweidimensionale geometrische symbolische Darstellung von Informationen gemäß einer Visualisierungstechnik. ___ answer694935 ___

Vielleicht möchten Sie Gustave Duartes Blog hier sehen. In seinen Posts zeichnet er oft Diagramme von Erinnerungen und dergleichen. Dafür verwendet er Visio und ich finde die Ergebnisse ziemlich ordentlich.

    
___ answer694939 ___

Es gibt nicht viele Werkzeuge, die den Stil von Speicherkarten zeichnen, auf die sich Ihr Professor bezieht.

Die Idee, die er zu vermitteln versucht, ist, dass wenn Sie Anfänger in C sind, die Verwendung von Zeigern und Arrays Sie sehr verwirrt. Was zielt auf was? Zeigen diese beiden Zeiger auf dasselbe? Auf welche Zellen des String-Arrays bezieht sich jeder Index usw.?

Erfahrene Programmierer haben ein geistiges Bild davon. Mit Erfahrung, wirst du es auch tun. Bis dahin ist die Idee, dass Sie etwas auf Papier zeichnen könnten, um diese Dinge zu verstehen, anstatt alles in Ihrem Kopf zu haben.

Ich stimme zu, dass K & amp; R nicht als ein Lehrbuch gedacht ist und daher diese Visuals nicht hat.

Sie können ein Beispiel für diese Diagramme in Folien sehen, die ich ' für ein C-Tutorial gemacht

    
___
3
Antworten

So visualisieren Sie einen Erlang gen_fsm [geschlossen]

Kennen Sie ein vorhandenes Werkzeug, um das Diagramm eines Erlang gen_fsm ausgehend vom Quellcode grafisch darzustellen?     
08.02.2010, 10:25
2
Antworten

Korrekte Möglichkeit, benutzerdefinierte Ereignismodelle im DOM zu dokumentieren oder zu zeichnen

Stellen Sie sich vor, Sie haben eine Reihe von Komponenten und Unterkomponenten in Ihrer Webanwendung. Sie möchten verfolgen, wie sich alle hinzugefügten benutzerdefinierten Ereignisse verhalten. Gibt es etablierte Möglichkeiten, diese Verhalten...
16.05.2009, 01:00
3
Antworten

Anwendungsfalldiagramm und Aktivitätsdiagramm, Huhn und Ei?

Ok, ich möchte die Denkschule über UML-Verhaltensdiagramme in Frage stellen und / oder vielleicht herausfordern. Ich denke zuerst möchte ich fragen, was zuerst kommt: Use Case oder Activity Mir wurde beigebracht, dass Use Case-Diagramme zu...
30.09.2013, 13:19
7
Antworten

Richtung des Assoziationspfeils in UML-Klassendiagrammen

Warum zeigt der Pfeil für die Zuordnung auf dieser Webseite, die zeigt, wie ein Klassendiagramm gezeichnet wird, von Auftrag zu Kunde und nicht von Kunde zu Auftrag? UML-Tutorial - Klassendiagramme     
15.12.2009, 10:08
1
Antwort

Sichtbarkeit in Argo UML anzeigen

Wie bekomme ich Argo UML, um die Sichtbarkeit von Eigenschaften und Methoden in einem Klassendiagramm anzuzeigen?     
27.09.2009, 00:34
2
Antworten

matplotlib.pyplot Wie benennt man verschiedene Zeilen im selben Plot?

Denken Sie darüber nach: %Vor% Wie würden Sie beiden Zeilen unterschiedliche Namen geben, wie Microsoft Excel es tun würde?     
18.06.2012, 12:25
1
Antwort

Ist es möglich, in Visio 2007 zu zeigen, dass eine Methode / Operation ein Array von Objekten (und nicht nur ein einzelnes Objekt) zurückgibt?

Ich beziehe mich besonders auf die Herstellung einer statischen Struktur (Klassendiagramm). Ich bemerke, dass Sie den Rückgabetyp auf ein bestimmtes Objekt einstellen können, aber es scheint keine Möglichkeit zu geben, diese Sammlung von Objekte...
13.02.2011, 19:20
2
Antworten

Wie zeichne ich die JMS-Queue?

Gibt es ein Symbol für die JMS-Warteschlange? Ich weiß z.B. Datenbanken, Dateien, Klassen sollten auf die gleiche Weise gezeichnet werden, aber was ist mit JMS-Elementen?     
01.08.2012, 08:22
4
Antworten

Gibt es einen guten WPF-Diagrammer / Toolkit / Provider? [geschlossen]

Grundsätzlich benötigen wir eine benutzerdefinierte Diagrammkomponente in unserer neuen WPF-basierten Anwendung. Needs zum Anzeigen von Text / Linien, verknüpften 2D-Knoten und benutzerdefinierten Bildern abgesehen von den anderen Diagrammfun...
04.09.2008, 12:37
3
Antworten

Javascript DOM Objektdiagramm

Ich habe nach einem guten DOM-Objektdiagramm gesucht, das von Javascript verwendet werden kann. Ich weiß, dass eine Suche nach javascript DOM object diagram eine Menge von ihnen gibt, wie diese, die sehr klar erscheint: Jeder von euch...
27.11.2011, 13:28