Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Hilfe! Klausuraufgabe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
20.06.2004, 13:20 Uhr
~iboT
Gast


Hehe *g* das Programm stammt 1:1 von meinem Prof, der wechselt in seinem Script auch immer zwischen ANSI und C++, gelegentlich bringt er dann noch Pascal oder Teile von Borland rein, dementsprechend sieht auch das Chaos in meinem Kopf aus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
20.06.2004, 13:46 Uhr
~iboT
Gast


ok, nächstes Beispiel..falls ich euch nerv meldet euch ;-)


C++:
#include<iostream>
#include<conio.h>
using namespace std;
#define max 26
void main()
{
    char werte[max];
    char *zz, i, x;
    for( i=0; i<max;i++) werte[i]=(char)i+'a';

    for(i=1;i<=7;i++)
    {
        if (i==1)    zz=&werte[1];
        else if (i==2)
        {
            x=*(zz+3);
            zz=&x;
        }
        else if (i==3) *zz='a'-'A';
        else if (i==4)
        {
            zz=werte+2;
            zz+3;
        }
        else if (i<6) zz=&werte['o'-'a'];

        else if (i==7)
        {
            zz=werte;
            x=*(zz++);
            x=*(&zz[i]+3);
            zz=&x;
        }
        printf("\n %d \t %c \n",i,*zz);
        cout<<werte;
    }
}



Die Frage ist hier mal wieder was ausgegeben wird. Ist eigentlich einfach, ich habs so nach einigen Versuchen rausgekriegt dass "be cool" rauskommt ;-)

Mal allgemeinere Fragen:
z.B.: else if (i==3) *zz='a'-'A';
Wird da der ASCII-Wert voneinander abgezogen?
Wie wird da gerechnet, bildet er den ASCII-Wert von 'a' , zieht davon dann den von 'A' ab und castet das Ergebnis wieder auf Char??
Hmmm

for( i=0; i<max;i++) werte[ i ]=(char)i+'a';
Im letzten Semester wurde mir eingetrichtert dass jede Char-Kette als abschlusszeichen ein /0 enthält und deshalb der Feldindex um 1 größer gewählt werden muss als geplant. Hier Hat das Feld 26 Elemente und enthält 26 Buchstaben?!? Warum geht das hier auf einmal?!

Dieser Post wurde am 20.06.2004 um 13:54 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
20.06.2004, 14:12 Uhr
typecast
aka loddab
(Operator)


1.) Ack

2.) Da kann ich leider nur raten: Vielleicht erkennt der Compiler das das Feld 26 Zeichen entält und cout stoppt dann nach der Ausgabe von 26 Zeichen automatisch wenn er davor \0 nicht findet.
Vielleicht wissen andere mehr.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
20.06.2004, 15:18 Uhr
0xdeadbeef
Gott
(Operator)


Igitt, das ist ja widerlicher Code. Er ist schlicht und ergreifend falsch. Wenn ich die Fehler, die mir der Compiler rausgibt (conio.h und void main) rausnehme, krieg ich folgnde Ausgabe:

Code:

1       b
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@
2       e
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@
3
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@
4       c
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@
5       o
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@
6       o
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@
7       l
abcdefghijklmnopqrstuvwxyz
                          @Œ^$@ d@äøÿ¿ø7@


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
20.06.2004, 15:29 Uhr
~iboT
Gast


Das cout<<werte; am Schluss hab ich eingefügt weil ich was testen wollte.
Wenn man das weglässt sieht die Ausgabe schöner aus. Aber der Rest stammt von jemand der's eigentlich drauf haben müsste ;-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
20.06.2004, 15:38 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Ochs Sie (ach ne Oxy schreibt man das ja )

da ja nicht definiert war, was der code macht, weiss man nicht ob er falsch oder richtig ist...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
20.06.2004, 15:40 Uhr
~iboT
Gast


Noch was..

C++ 6.0:

C++:
#include<iostream.h>



C++.NET:

C++:
#include<iostream>
using namespace std;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
20.06.2004, 15:47 Uhr
typecast
aka loddab
(Operator)


Nein. iostream.h is nicht mehr Teil des Standards. Es wird nur noch u kompabilitätszecken eingesetzt.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
20.06.2004, 16:13 Uhr
0xdeadbeef
Gott
(Operator)


Wenn ich mich recht entsinne, war iostream.h auch in MS VC++ 6.0 schon obsolet.

Oh, und übrigens - entgegen der landläufigen Meinung hat Microsoft die Programmiersprache C++ nicht erfunden, weswegen die Ausdrücke "C++ 6.0" und "C++ .NET" bestenfalls irreführend, schlimmstenfalls falsch sind. Genau genommen ist iostream.h Vor-Standard-C++, während iostream der Standard-Header aus ISO-C++ 98 ist.

Das hier erklärt es ganz gut: www.cplusplus.com/doc/ansi/hfiles.html
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.06.2004 um 16:16 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
20.06.2004, 17:17 Uhr
~iboT
Gast


Joa kenn mich da nicht so genau aus..weiss nur dass es so wie ich oben geschriebn hab bei mir funktioniert *lol*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: