Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung C und C++

Palindrom Programm

Mitglied: Shankx

Shankx (Level 1) - Jetzt verbinden

21.04.2010, aktualisiert 23:05 Uhr, 7132 Aufrufe, 5 Kommentare

Hey Leute,
lerne grade für ne C++ Klausur morgen und bin jetzt an dem letzten zu überprüfenden und zu verstehenden Programm angelangt. Thema ist Paldindrom. Also ob das Wort vorne genauso auch von hinten lesbar ist. Finde leider keinen Ansatz wie ich dran gehen soll. Sehe nämlich nur Felder, Felder, Felder^^.

Wäre nett wenn mir jmd. helfen könnte.

Hier das Programm:

 
#include <cstdlib> 
 
#include <iostream> 
 
 
 
using namespace std; 
 
 
 
int main(int argc, char *argv[]) 
 
 
     
 
    char meinwort[50]; 
 
    int palindrom, i, laenge, k; 
 
 
 
    cout<<"Bitte geben Sie ein Wort ein \n"; 
 
    cin>>meinwort; 
 
    i=0; 
 
     
 
    while (meinwort[i]!='\0') { 
 
          i++;} 
 
           
 
    laenge = i-1; 
 
    palindrom = 1; 
 
    k = 0; 
 
     
 
    do { 
 
        if (meinwort[k]==meinwort[laenge-k]){ 
 
 
        else { 
 
        palindrom = 0;} 
 
        k++; 
 
    while (k<=laenge/2 && palindrom != 0); 
 
         
 
         
 
    if (palindrom == 0) { 
 
       cout<<"Das Wort ist kein Palindrom \n";} 
 
    else { 
 
       cout<<"Das Wort "<<meinwort<<" ist ein Palindrom \n";} 
 
 
 
 
 
system("PAUSE"); 
 
}     
 

Vielen Dank schonmal im Vorraus
Mitglied: gijoe
22.04.2010 um 00:42 Uhr
Sorry, aber was genau ist jetzt die Frage? Verstehst du das Programm nicht oder hat es allenfalls fehler, die du suchen musst?
Bitte warten ..
Mitglied: Shankx
22.04.2010 um 00:48 Uhr
hey,

ne das programm is richtig. verstehe es nur nicht.

Gruß Shankx
Bitte warten ..
Mitglied: gijoe
22.04.2010 um 00:59 Uhr
Ok, bin kein C++ Crack, aber ich denke erklären kann ichs dir:
#include <cstdlib>

#include <iostream>



using namespace std;



int main(int argc, char *argv[])

{



char meinwort[50];

int palindrom, i, laenge, k;



cout<<"Bitte geben Sie ein Wort ein \n";

cin>>meinwort;

i=0;

Bis hierhin sollte alles klar sein, es werden nur Variablen initialisiert und der String eingelesen

while (meinwort[i]!='\0') { Hier wird die Länge des eingelesenen Wortes ermittelt und in i gespeichert

i++;}



laenge = i-1; Die Länge ist i-1, weil der Array bei 0 beginnt, ist nacher wichtig
palindrom = 1; Palindrom wird auf true gesetzt

k = 0;



do { Hier wird geschaut, ob der erste Charakter des Wortes und der letzte charakter des Wortes derselbe sind, falls ja passiert nichts und die while-schleife läuft weiter bis alle Charakter des Wortes verglichen sind, logischerweise ist die ANzahl vergleiche so gross wie die hälfte der Charakter des Wortes. Falls der vergleich scheitert, wird Palindrom auf 0, also false gesetzt
Beispiel: hallo: meinwort[k] wäre = h und meinwort[laenge-k] wäre = o

if (meinwort[k]==meinwort[laenge-k]){

}

else {

palindrom = 0;}

k++;

while (k<=laenge/2 && palindrom != 0); Wie bereits gesagt muss nur bis zur Mitte des Wortes getestet werden (es wird ja die eine Hälfte mit der anderen Hälfte des Wortes verglichen)





if (palindrom == 0) { Das wars schon, hier wird nur noch gefragt, ob es ein Palindrom ist oder nicht....

cout<<"Das Wort ist kein Palindrom \n";}

else {

cout<<"Das Wort "<<meinwort<<" ist ein Palindrom \n";}





system("PAUSE");

}
Bitte warten ..
Mitglied: Shankx
22.04.2010 um 01:35 Uhr
Danke für die schnelle Antwort. Der untere Teil is jetzt klar. nur mit dem oberen Teil komm ich nicht klar. Also wo die Länge des Wortes ermittelt wird. Und was bedeutet !=\0 ?
Bitte warten ..
Mitglied: gijoe
22.04.2010 um 01:45 Uhr
Und was bedeutet !=\0 ? Das '\0' ist das Ende eines Strings, es ist also das Ende deines Wortes. Du hast ja denn Char-Array ( char meinwort[50]; ), und wenn du das Wort "HALLO" einliest, dann sieht dein Array so aus:
meinwort[0] = 'H'
meinwort[1] = 'A'
meinwort[2] = 'L'
meinwort[3] = 'L'
meinwort[4] = 'O'
meinwort[5] = '\0'


Und die länge des Wortes wird so ermittelt:
i=0;
while (meinwort[i]!='\0') { ### Während kein '\0' erscheint, wird i hochgezählt, und sobald H A L L O gezählt wurde und '/0' erscheint, bricht die while-Schleife ab, i ist dann = 5 (da Hallo 5 Charakter hat)
i++; Bedeutet dasselbe wie i = i + 1;
}

Für das Wort "HALLO" macht die while-Schleife folgendes:
- meinwort[i] != '\0' ## meinwort[i] ist = meinwort[0] = 'H' , also wird i um eins hochgezählt (i++), i = 1
- meinwort[i] != '\0'
## meinwort[i] ist = meinwort[1] = 'A' , also wird i um eins hochgezählt (i++), i = 2
- meinwort[i] != '\0' ## meinwort[i] ist = meinwort[2] = 'L' , also wird i um eins hochgezählt (i++), i = 3
- meinwort[i] != '\0'
## meinwort[i] ist = meinwort[3] = 'L' , also wird i um eins hochgezählt (i++), i = 4
- meinwort[i] != '\0' ## meinwort[i] ist = meinwort[4] = 'O' , also wird i um eins hochgezählt (i++), i = 5
- meinwort[i] != '\0'
## meinwort[i] ist = meinwort[5] = '\0' , die Bedingung ist nicht mehr erfüllt, die Schleife wird also abgebrochen, i ist = 5
Bitte warten ..
Ähnliche Inhalte
Java
Palindrom-Untersuchung in Java
gelöst Frage von TodybearJava10 Kommentare

Hallo liebe Administratoren, Ich bin frischgebackener Azubi für SI und habe jetzt schon ein großes Problem in AWE (Anwendungsentwicklung), ...

Festplatten, SSD, Raid
Welches Programm für eine Formatierung?
gelöst Frage von Stefan007Festplatten, SSD, Raid5 Kommentare

Hallo Leute, ich bin auf der Suche nach einem guten Programm zum Formatieren von S-ATA Platten. Ich meine damit ...

Multimedia
Diashow Programm
gelöst Frage von Thor01Multimedia6 Kommentare

Hallo, ich suche eine Software zum Diashow erstellen. Möchte gerne Videoclips und Bilder hinzufügen können und das Ganze mit ...

Batch & Shell
Programm beenden
gelöst Frage von garciamBatch & Shell4 Kommentare

Hallo zusammen Ich habe ein Problem, bei dem ich nicht weiterkomme Ich muss ein Programm zu einer bestimmten Zeit ...

Neue Wissensbeiträge
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 StundeDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 6 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
Frage von a-za-zNetzwerkmanagement13 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk10 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Router & Routing
Firewall Homeoffice
Frage von leon123Router & Routing6 Kommentare

Hallo zusammen, ich möchte meine beiden Rechner von der Firma vom Heimbereich abtrennen. Die Fritzbox kann leider nur den ...