AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Latein] Verben-Konjugations-Unit + Programm
Thema durchsuchen
Ansicht
Themen-Optionen

[Latein] Verben-Konjugations-Unit + Programm

Ein Thema von Nicolai1234 · begonnen am 14. Feb 2006 · letzter Beitrag vom 8. Okt 2008
Antwort Antwort
Seite 2 von 4     12 34      
Nicolai1234
Registriert seit: 21. Feb 2004
Hallo,
ich habe mich in den letzten Tagen ein wenig intensiver mit den verschiedenen lateinischen Konjugationen beschäftigt. Herausgekommen ist eine Unit, die ein bestimmtes Verb in allen Zeiten, Modi, Leideformen und Personen bilden kann.
Wie ihr alle wisst sieht ein lateinisches Wort i.d.R. so angegeben. Beispiel:
Code:
capere                       capo                      cepi                       captum
Infinitiv Präsens aktiv  -   1.P.Sg.Präs.Ind.akt.  -   1.P.Sg.Perf.Ind.aktiv  -   Partizip Perfekt Passiv (PPP)
Um ein Verb richtig konjugieren zu konnen, sind - je nach Zeit - alle vier Formen notwenig.

Version [Beta]

daraus entstand folgendes record:
Delphi-Quellcode:
type TWort = record
    Infinitiv, Praesens, Perfekt, PPP: string;
    end;
Ich hoffe die Funktion des records ist eindeutig

Enstanden sind nun also folgende 12 Funktionen:
Delphi-Quellcode:
function FuturII_Indikativ_aktiv(w:TWort;Person:integer): string;
function FuturII_Indikativ_passiv(w:TWort;Person:integer): string;

function FuturI_Indikativ_aktiv(w:TWort;Person:integer): string;
function FuturI_Indikativ_passiv(w:TWort;Person:integer): string;

function Praesens_Indikativ_aktiv(w:TWort;Person:integer): string;
function Praesens_Indikativ_passiv(w:TWort;Person:integer): string;
function Praesens_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Praesens_Konjunktiv_passiv(w:TWort;Person:integer): string;

function Imperfekt_Indikativ_aktiv(w:TWort;Person:integer): string;
function Imperfekt_Indikativ_passiv(w:TWort;Person:integer): string;
function Imperfekt_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Imperfekt_Konjunktiv_passiv(w:TWort;Person:integer): string;

function Perfekt_Indikativ_aktiv(w:TWort;Person:integer): string;
function Perfekt_Indikativ_passiv(w:TWort;Person:integer): string;
function Perfekt_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Perfekt_Konjunktiv_passiv(w:TWort;Person:integer): string;

function Plusquamperfekt_Indikativ_aktiv(w:TWort;Person:integer): string;
function Plusquamperfekt_Indikativ_passiv(w:TWort;Person:integer): string;
function Plusquamperfekt_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Plusquamperfekt_Konjunktiv_passiv(w:TWort;Person:integer): string;
Neben dem eigentlich Verb (TWort), benötigen sie auch die Person, für die das Verb gebildet werden soll. Dies erfolgt über ein Integer:
Code:
1 - 1.P.Sg
2 - 2.P.Sg
3 - 3.P.Sg
4 - 1.P.Pl
5 - 2.P.Pl
6 - 3.P.Pl
So kann man nun relativ einfach Verformen bilden:
Delphi-Quellcode:
[...]
var verb: TWort;

[...]

with verb do
  begin
  infinitiv := 'capere';
  praesens := 'capo';
  perfekt := 'cepi';
  ppp := 'captum';
  end;
Perfekt_Indikativ_Passiv(Verb, 4); gibt also den Wert "capti sumus" zurück.

Neben der a-/e-/i-/gemischt kons.- und der kononsantischen-Konjugation, beherrscht die Unit auf das unregelmäßige Verb "esse". Andere unregelmäßige Verben werden folgen.

So, das wars erstmal, ich wäre über weitere Anregungen sehr froh.

Version [1.0]
So, hier mal ein paar Änderungen, die mir spontan möglich erschienen Very Happy
function wort(InfinitivPraesensAktiv,PraesensAktiv,PerfektAktiv,PPP:string):twort; Das sollte eigentlich selbsterklärend sein. Wie unten erwäht wurde ist es eben wie funtion point(x,y):tpoint.

Dann kommt die "Management-Funktion" Konjugiere:

function konjugiere(Person:integer;Zeit:string;Indikativ,Aktiv: boolean;Verb: TWort): string; Parameter 1:
Code:
Person: (Eingabe als Integer von 1 bis 6)
1 - 1.P.Sg
2 - 2.P.Sg
3 - 3.P.Sg
4 - 1.P.Pl
5 - 2.P.Pl
6 - 3.P.Pl
Parameter 2:
Code:
Zeit: (Eingabe erfolgt über einen String, der wie folgt aussehen kann)
"FuturII"
"FuturI"
"Praesens"
"Imperfekt"
"Perfekt"
"Plusquamperfekt"
Parameter 3:
Code:
true = Indikativ
false = Konjunktiv
Parameter 4:
Code:
true = Aktiv
false = Passiv
Parameter 5:
Code:
Verb = TWort - eben das Verb, dass Konjugiert werden soll!
TWort, wie oben erklärt
So gibt der Aufruf konjugiere(4,'FuturII',true,false,wort('amare','amo','amavi','amatum')) "amati erimus" zurück.

Ich hoffe, so konnte ich den umgang ein wenig einfacher machen.
Das PPP beispielsweise kann man dieser "Masterfunktion" nicht gebildet werden. Es wird später bei den Deklinationen folgen, da ich denke, dass es da mehr benötigt wird, als bei den Konjunktionen.

Version [1.0b]
Fehler behoben (gemeldet am 26.02 siehe unten)

Beispielanwendung
Im Anhang ist noch eine Beispielanwenung, sodass man die Funktionen der Unit einfach testen kann. (und natürlich ein Screenshot dazu).


Vielen Dank
Miniaturansicht angehängter Grafiken
lateinformen_947.jpg  
Angehängte Dateien
Dateityp: pas konjugationen_177.pas (15,7 KB, 48x aufgerufen)
Dateityp: zip beispiel_394.zip (214,9 KB, 64x aufgerufen)
 
Nils_13
 
#11
  Alt 14. Feb 2006, 16:50
Aber was bringt ein Konjugationsprogramm, wenn es keine Deklinationen hat, der eine findet die Konjugationen schwerer und der andere die Deklinationen.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

 
Delphi 2006 Professional
 
#12
  Alt 14. Feb 2006, 16:56
Das wurde ja mal Zeit das jemand sowas macht.

Vorschläge:
1)
Zitat von ichbins:
[/delphi]
... dann würde ich noch ne "Management-Funktion" schreiben, etwa so:
function konjugiere(wort:twort;zeit,person:integer;aktiv,indikativ:boolean); ...
... diese Function sollte dann auch Deponenzien erkennen.

2) Bildung der Infinitive.
3) Bildung der weiteren Partizipformen (PPA & PFA).
4) Bildung des Gerundiums und des Gerundivums.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#13
  Alt 14. Feb 2006, 17:06
Zitat von Nils_13:
Die Sprache ist voll von Ausnahmen, in jeder Konjunktion.
Ich bin zwar vom Latinum noch weit entfernt, aber soweit ich weiß, sind die einzige Ausnahmen die unregelmäßigen Verben und die Deponentien, die ich ja schon erwähnt hatte. Bei Verba defectiva und Semideponentien muss der User selbst aufpassen, wie Nicolai schon sagte.
@Nicolai: Deponentien liegen allerdings nicht in der Hand des Users, diese könntest du noch unterstützen. Man könnte zwar einfach die Aktivendungen dranpacken, aber "verere - vereo" klingt doch schrecklich .
Sebastian
  Mit Zitat antworten Zitat
Nils_13
 
#14
  Alt 14. Feb 2006, 17:13
Die gesamte Sprache klingt komisch. Es gibt lustige Kombinationen aus verschiedenen Zeiten.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo
 
#15
  Alt 14. Feb 2006, 17:14
Zitat von Nils_13:
Aber was bringt ein Konjugationsprogramm, wenn es keine Deklinationen hat, der eine findet die Konjugationen schwerer und der andere die Deklinationen.
Wenn du Deklinationen üben willst, solltest du ein Deklinations-Programm nutzen
  Mit Zitat antworten Zitat
Nils_13
 
#16
  Alt 14. Feb 2006, 17:15
Zitat von malo:
Zitat von Nils_13:
Aber was bringt ein Konjugationsprogramm, wenn es keine Deklinationen hat, der eine findet die Konjugationen schwerer und der andere die Deklinationen.
Wenn du Deklinationen üben willst, solltest du ein Deklinations-Programm nutzen
gleich mal zurück, das war wirklich nur mal ein kleiner Vorschlag, um das Programm noch um einiges zu verbessern.

P.S.: Irgendwann überles ich deine Beiträge einfach ... .
  Mit Zitat antworten Zitat
Daniel G
 
#17
  Alt 14. Feb 2006, 17:27
Hrmpf... Zwei Jahre früher... Da hätte ich sie noch gebrauchen können...

Aber trotzdem ganz nett.
  Mit Zitat antworten Zitat
Neotracer64

 
Delphi 7 Professional
 
#18
  Alt 14. Feb 2006, 17:34
Zitat:
gleich mal zurück, das war wirklich nur mal ein kleiner Vorschlag, um das Programm noch um einiges zu verbessern.
OT:
Nur ein ganz neutraler Kommentar: Deine ganzen Beiträge hören sich allesamt so an, als würdest du das Programm schlecht machen wollen. Ich seh keinen Lob noch irgendwelche kontruktiven Vorschläge. Wie würdest du dich fühlen, wenn man bei deiner Kompo, das Graphen zeichnen kann, die ganze Zeit bemängelt, dass es nicht in 3D ginge?

Ich finde die Komponente wunderbar. Hätte nie gedacht, dass man soetwas bewerkstelligen könnte und, dass dafür komplizierte Sprachwissenschaftliche Parser und Logiken angewendet werden müssen. Schon ein hilfrecihes Ding. Ich freu mich schon auf die Demo, die die Unit voll ausreizt.
  Mit Zitat antworten Zitat
Nils_13
 
#19
  Alt 14. Feb 2006, 17:41
Falls es den Eindruck hinterlassen hat, dass ich dieses Programm nur schlecht machen will: Das habe ich wörtlich nie gesagt, ich habe nur einen Vorschlag gemacht, aber da mehrere darauf geantwortet haben, habe ich weitergeschrieben. Die Unit ist wirklich gut
  Mit Zitat antworten Zitat
Nicolai1234

 
Turbo Delphi für Win32
 
#20
  Alt 14. Feb 2006, 18:01
Zitat von Nils_13:
Falls es den Eindruck hinterlassen hat, dass ich dieses Programm nur schlecht machen will: Das habe ich wörtlich nie gesagt, ich habe nur einen Vorschlag gemacht, aber da mehrere darauf geantwortet haben, habe ich weitergeschrieben. Die Unit ist wirklich gut
Hey, kein Streit!
Ich finde es durchaus gut, wenn soetwas wie die Deklinitionen berücksichtigt werden soll! Konstruktive Vorschläge sind - finde ich - immer zu gebrauchen.

Edit:
Es gibt ein paar kleine Änderungen, sowie ein Beispielprogramm zum Testen. Alles im ersten Beitrag!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 05:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz