![]() |
Re: Positive Zahlen in negative umwandeln
Ja und? Das sind Menschen wie Du und ich, meine Frau ist Lehrerin an einer Schule für geistig und körperlich Behinderte und hat täglich mit solchen Menschen zu tun. Die, die ich davon kenne, sind absolut liebenswürdige Personen.
|
Re: Positive Zahlen in negative umwandeln
Wenn Du mal einer Gruppe von behinderten zuhörst, die ziehen sich ständig deswegen auf.
Und außerdem wollen die nicht bevorzugt werden, sondern auch als Mensch betrachtet werden. Und mehr macht das Bild nun nicht. |
Re: Positive Zahlen in negative umwandeln
is ja gut ...
beruhigt euch mal wieder! :) *smile* |
Re: Positive Zahlen in negative umwandeln
Ich bin doch ruhig, nur wenn Dieter Bohlen auf dem Foto den Preis übergeben hätte, wäre ich jetzt stocksauer ;)
|
Re: Positive Zahlen in negative umwandeln
Dann wäre sein Einwand wenigstens berechtigt gewesen :lol:
|
Re: Positive Zahlen in negative umwandeln
Zitat:
Und nun keep on working at OP's question. @ST: Erwischt. :mrgreen: |
Re: Positive Zahlen in negative umwandeln
Also lieber Larsi
Hier ne nützliche Klasse, die diese Superfunktion beinhaltet
Delphi-Quellcode:
Und so kann sie verwendet werden:
interface
type TNeg = Class private FNumber: pInteger; procedure SetNumber(const Value: pInteger); public constructor Create(var Number: Integer ); property Number: pInteger Read FNumber Write SetNumber; procedure Neg; End; implementation constructor TNeg.Create(var Number: Integer ); begin FNumber := @Number; Neg; Free; end; procedure TNeg.Neg; begin Number^ := -Round(((sqrt(Power(Number^, 2)) * (-6)) / 6) - 2*Succ(Number^ xor (1 shl Pred(SizeOf(Integer) shl 3) + MAXINT)) ); end; procedure TNeg.SetNumber(const Value: pInteger); begin FNumber := Value; end;
Delphi-Quellcode:
EDIT:
var X: IntegeR;
begin X:= 10; TNeg.Create(X); ShowMessage( IntToStr( x ) ); end; Credits go to DeddyH & Melfin Thanks for ur help :) [edit=SirThornberry]Code-Tags durch Delphi-Tags ersetzt - nächstes mal bitte die richtigen Tags verwenden - Mfg, SirThornberry[/edit] |
Re: Positive Zahlen in negative umwandeln
Delphi-Quellcode:
(Autor ist jemand anders, nicht ich, will aber anonym bleiben, gell Mike)
Zahl := round(SinH(ln(1/(x+sqrt(sqr(x)+1)))));
|
Re: Positive Zahlen in negative umwandeln
Delphi-Quellcode:
:mrgreen:
PByte(Integer(@Zahl))^ := PByte(Integer(@Zahl))^ or 128;
|
Re: Positive Zahlen in negative umwandeln
Dieser Thread erinnert mich in Grundzügen an das hier:
![]() |
Re: Positive Zahlen in negative umwandeln
Rekursiv? :cheer: Hat hier noch niemand an Rekusivität gedacht?
Delphi-Quellcode:
Vielleicht könnte man das noch in die Klasse einbauen... Ansonsten könnte man vielleicht noch einen Webservice implementieren und der Allgemeinheit zur Verfügung stellen.
Function MakeNegative (Const aNumber : Integer) : Integer;
Begin If aNumber>0 Then Result := MakeNegative (aNumber-1)-1 Else Result := 0; End; |
Re: Positive Zahlen in negative umwandeln
Zitat:
Erinnert mich an ![]() |
Re: Positive Zahlen in negative umwandeln
Zitat:
|
Re: Positive Zahlen in negative umwandeln
Zitat:
|
Re: Positive Zahlen in negative umwandeln
Ja so geht das aber nicht, das ist ja gar nicht Thread-Safe ...
Zitat:
Code:
cu
interface
type TNeg = Class private FCS : TCriticalSection; FNumber: pInteger; function GetNumber : pInteger; procedure SetNumber(const Value: pInteger); public constructor Create(var Number: Integer ); property Number: pInteger Read GetNumber Write SetNumber; procedure Neg; End; implementation constructor TNeg.Create(var Number: Integer ); begin FCS := TCriticalSection.Create; FNumber := @Number; Neg; Free; end; procedure TNeg.Neg; begin Number^ := -Round(((sqrt(Power(Number^, 2)) * (-6)) / 6) - 2*Succ(Number^ xor (1 shl Pred(SizeOf(Integer) shl 3) + MAXINT)) ); end; function TNeg.GetNumber : pInteger; begin FCS.Enter; try RESULT := FNumber; finally FCS.Leave; end; end; procedure TNeg.SetNumber(const Value: pInteger); begin FCS.Enter; try FNumber := Value; finally FCS.Leave; end; end; Oliver P.S.: Hat einer den Larsi schon mal wieder gesehen ... |
Re: Positive Zahlen in negative umwandeln
Hallo,
ob das alles wirklich hilft? Larsi sucht offenbar eine Multimedia-Lösung für sein Problem :wink: Gruß Hawkeye |
Re: Positive Zahlen in negative umwandeln
Ich habe zwar keine Ahung warum über 50 Beiträge nötig sind obwohl die Frage schon nach den ersten 3 Beiträgen geklärt wäre aber wenns euch Spaß macht. :gruebel: :-D :)
|
Re: Positive Zahlen in negative umwandeln
Zitat:
cu Oliver P.S.: Wer ist denn jetzt für eine Aufnahme des Threads in der CodeLib? |
Re: Positive Zahlen in negative umwandeln
Zitat:
TNeg ist übrigens nicht gerade so optimiert.. Warum eine Public Property "Number" wenn man eh nie darauf zugreifen kann? Und ein Free; im constructor ist ja wohl auch alles andere als schön ;) :stupid: |
Re: Positive Zahlen in negative umwandeln
Er greift doch darauf zu.
|
Re: Positive Zahlen in negative umwandeln
Es gibt eben Probleme, die einer genauen Analyse bedürfen :mrgreen:
|
Re: Positive Zahlen in negative umwandeln
Eine Zahl negativ machen, prüfen, ob eine Zahl negativ ist... Alles hochwichtige und -komplexe Probleme ;)
|
Re: Positive Zahlen in negative umwandeln
Lange nicht mehr so gelacht,
das ist filmreif! Könnte als Sketch auf den nächsten Delphi-Tagen aufgeführt werden :cheer: |
Re: Positive Zahlen in negative umwandeln
Zitat:
@Larsi: ...wer den Schaden hat braucht für den Spott nicht sorgen. ...trage es uns nicht nach...wir sind nicht ausgelastet 8) |
Re: Positive Zahlen in negative umwandeln
Wir können nichts dafür... diese Stimmen... *huuuu*
|
Re: Positive Zahlen in negative umwandeln
Zitat:
|
Re: Positive Zahlen in negative umwandeln
Hier ist nochwas mit MultiMedia: funktioniert zwar noch nicht ganz perfekt und es gibt einige Einschränkungen, aber immerhin kommt eine Negative Zahl raus (schwankung: +- 5) - aber immerhin ist sie negativ :mrgreen: und Multimedia :mrgreen:
Systemvorrausetzungen: OpenGl 2.0 fähige Grafikkarte mit ShaderSupport :mrgreen: Erstellungsdauer: ca. 10 min Benötige Units: dglOpenGl;
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, dglOpenGL, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } public { Public-Deklarationen } FDC : HDC; FRC : THandle; FNumber : cardinal; FProgram : GLuint; FVertex : string; FFragment : string; procedure DoRender; end; var Form1: TForm1; implementation const SBadPC = 'Dein PC kann keine Zahlen negieren :P'; {$R *.dfm} function CheckForErrors(glObject: GLHandleARB): String; var blen, slen: GLInt; InfoLog : PGLCharARB; begin glGetObjectParameterivARB(glObject, GL_OBJECT_INFO_LOG_LENGTH_ARB, @blen); if blen > 1 then begin GetMem(InfoLog, blen*SizeOf(GLCharARB)); glGetInfoLogARB(glObject, blen , slen, InfoLog); Result:= PChar(InfoLog); Dispose(InfoLog); end; end; function LoadFragmentandVertexShader(FShaderText: string; VShaderText: string): GLHandleARB; var ProgramObject, FragmentShaderObject, VertexShaderObject: GLHandleARB; FShaderLength: Integer; VShaderLength: Integer; begin ProgramObject:= glCreateProgramObjectARB; FragmentShaderObject:= glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB); VertexShaderObject:= glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB); FShaderLength:= Length(FShaderText); VShaderLength:= Length(VShaderText); glShaderSourceARB(VertexShaderObject, 1, @VShaderText, @VShaderLength); glShaderSourceARB(FragmentShaderObject, 1, @FShaderText, @FShaderLength); glCompileShaderARB(FragmentShaderObject); glCompileShaderARB(VertexShaderObject); //ShowMessage(CheckForErrors(VertexShaderObject)); glAttachObjectARB(ProgramObject, FragmentShaderObject); glAttachObjectARB(ProgramObject, VertexShaderObject); glDeleteObjectARB(FragmentShaderObject); glDeleteObjectARB(VertexShaderObject); glLinkProgramARB(ProgramObject); Result:= ProgramObject; end; procedure TForm1.FormCreate(Sender: TObject); begin FFragment := 'void main(void)'+#13#10+ '{'+#13#10+ ' vec4 aColor = gl_Color;'+#13#10+ ' aColor.x = 1.0;'+#13#10+ ' gl_FragColor = aColor;'+#13#10+ '}'+#13#10; FVertex := 'void main(void)'+#13#10+ '{'+#13#10+ ' gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;'+#13#10+ ' gl_FrontColor = gl_Color;'+#13#10+ '}'+#13#10; if not InitOpenGL() then raise Exception.Create(SBadPC); FDC := GetDC(Handle); FRC := CreateRenderingContext(FDC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0); ActivateRenderingContext(FDC, FRC); if not GL_VERSION_2_0 then raise Exception.Create(SBadPC); if not GL_ARB_shading_language_100 then raise Exception.Create(SBadPC); FProgram := LoadFragmentandVertexShader(FFragment, FVertex); if FProgram = 0 then raise Exception.Create(SBadPC); end; procedure TForm1.Timer1Timer(Sender: TObject); begin DoRender; end; procedure TForm1.DoRender; var aNumber : integer; bBool : boolean; begin glClearColor(0, 0, 0, 0); glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity; glViewPort(0, 0, ClientWidth, ClientHeight); gluPerspective(90, ClientWidth/ClientHeight, 1, 128); glMatrixMode(GL_MODELVIEW); glLoadIdentity; glDisable(GL_TEXTURE_2D); glDisable(GL_LIGHTING); glDisable(GL_CULL_FACE); glTranslatef(0, 0, -1); //FNumber := (RGB(0, 126, 255) shl 8) or $FF; //FNumber := $00ABCDEF; Caption := IntToStr(FNumber and $FFFFFF); glColor4ubv(@FNumber); //Caption := IntToStr(glGetError); glUseProgramObjectARB(FProgram); //Caption := IntToStr(glGetError); //glColor4f(1, 1, 1, 1); glBegin(GL_QUADS); glVertex3f(-1, 1, 0); glVertex3f(-1,-1, 0); glVertex3f( 1,-1, 0); glVertex3f( 1, 1, 0); glEnd(); aNumber := 0; glReadPixels(ClientWidth div 2, ClientHeight div 2, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, @aNumber); bBool := aNumber and $FF000000 > 0; aNumber := aNumber and $FFFFFF; if bBool then aNumber := -aNumber; Caption := Caption + ' ' + IntToStr(aNumber); glGetError; SwapBuffers(FDC) end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin FNumber := random($FFFFFF); end; end. |
Re: Positive Zahlen in negative umwandeln
Da fehlt jetzt nur noch ein CaseModding-Modul und die Sache ist perfekt :mrgreen:
|
Re: Positive Zahlen in negative umwandeln
Liste der Anhänge anzeigen (Anzahl: 1)
Ach so: um mal etwas rumzuspielen, hab ich die OGL-Variante mal kompiliert angehängt
die Zahl wird bei jedem Mause-Move geändert. Danke an Matze für den Hinweis |
Re: Positive Zahlen in negative umwandeln
|
Re: Positive Zahlen in negative umwandeln
Ich lieg am Boden! :lol:
|
Re: Positive Zahlen in negative umwandeln
wie geil :coder2:
wie hast du das gemacht ? :D |
Re: Positive Zahlen in negative umwandeln
Zitat:
|
Re: Positive Zahlen in negative umwandeln
So, jetzt habt ihr es geschafft. Ich brech mir hier einen ab, poste eine endgeniale rekursive Lösung für das vermutlich NP-Komplette Problem der Zahlennegierung, das eben nicht mit irgendwelche billigen und zweitklassigen maschinen- implementierungs- und sonstwasabhängigen Eigenheiten auskommt, aber nee, neee, nee, ein grenzdebiler und altersschwacher Semiausländer wird ignoriert, in die Ecke gepackt, links liegengelassen, 'A waste of space' entgegengeschmettert, so tyyyypisch, wollt ihr das ich mich gleich erhänge oder soll ich mich vorher noch komplett zum Deppen machen oder wie oder was, hä?
Ich kündige. Oder geh schlafen. (Jeh nachdem, was zuerst eintritt) |
Re: Positive Zahlen in negative umwandeln
Deine rekursieve Lösung ist zwar ganz nett, aber weder objektorientiert, noch mit einem UML-Diagramm versehen :mrgreen:
|
Re: Positive Zahlen in negative umwandeln
Ich find die Idee mit dem Webservice von alzaimar richtig gut!!!! : :cheer: :cheer: - jedoch müsste dann jemand den Thread ins Internet / LAN / ASP.NET - Forum verschieben :stupid:
|
Re: Positive Zahlen in negative umwandeln
Wurde schon eine Thread-basierte Lösung vorgeschlagen? Eine Zahl zu negieren schreit doch, gerade wegen der Komplexität dieses Prozesses, geradezu nach verteilten Rechnen; wenn nicht auf Rechner-Clustern, dann sollte man doch zumindest den Performancezuwachs von MultiCores noch mitnehmen. Leider habe ich auf diesem Rechner kein Delphi installiert, zum blind runtertippen ist es zu spät. :stupid:
|
Re: Positive Zahlen in negative umwandeln
Verteiltes Rechnen? Keine schlechte Idee, wenn man sich an das SETI-Projekt anlehnt, käme dann Larsi@home bei heraus :stupid:
|
Re: Positive Zahlen in negative umwandeln
Zitat:
|
Re: Positive Zahlen in negative umwandeln
Ihr seit genial! Selten so gelacht :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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