• 23.08.2025, 18:06
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

gerzii

Newbie

c++ programme

mercredi 11 janvier 2006, 13:49

1. Beispiel
Schreiben Sie eine Funktion
int Search (char Text[], char Letterl, Letter2);
welche im übergebenen Text nach dem Vorkommen eines Musters welches aus Letter1 and Letter2 gebildet wird sucht. Die beiden Zeichen müssen unmittelbar hintereinander vorkommen. Der Index der gefundenen Position ist zu returnieren oder -1 falls dieses Muster nicht gefunden wurde.
Bsp.:
Search („BULME", 'U' , 'L')  1
Search („BULME", 'M' , 'E')  3
Search („BULME", 'B' , 'L')  -1

2. Beispiel
Schreiber sie jeweils den Prototyp für eine Funktion, die folgendes leistet:
a) den Größten Wert von 3 Ganzzahlen liefern
b) den Durchschnitt von 3 Zahlen liefern
c) einlesen von gefahrenen Km and Treibstoffverbrauch and Bestimmung des Treibstoffverbrauchs auf 100 km
d) Ausgabe von 2 Zeilenumbrüchen

3. Beispiel
Gegeben sei ein globales Feld:

char Word[MAX];

welches bereits ein gültiges Word enthält. Schreiben Sie eine Sequenz welche den Text im Feld umdreht


kann mir jemand mit diesem Problem helfen ??? Soll das bis heute Abend fertig haben :'( besser gesagt bis ca. 16:25 …. Wenn es später ist macht es nichts, wäre aber blöd *snief*
Ein Optimist ist jemand, der weiss, wie schlecht die Welt ist. Ein Pessimist findet es jeden Tag neu heraus (Sir Peter Ustinov)

Rotring

Full Member

Re: c++ programme

mercredi 11 janvier 2006, 14:03

2. Beispiel
Schreiber sie jeweils den Prototyp für eine Funktion, die folgendes leistet:
a) den Größten Wert von 3 Ganzzahlen liefern
int maxwert (int zahl 1, int zahl2, int zahl3);

b) den Durchschnitt von 3 Zahlen liefern
double avg(double zahl1, double zahl2, double zahl3);

c) einlesen von gefahrenen Km and Treibstoffverbrauch and Bestimmung des Treibstoffverbrauchs auf 100 km
double verbrauch(float km, float kraftstoffmenge);

d) Ausgabe von 2 Zeilenumbrüchen
void umbruch();

3. Beispiel
void turn()
{
char buffer[MAX];
for (int i= MAX; i >= 0; i--)
{
buffer = word[i];
}
word = buffer;
}

Y0Gi

God

Re: c++ programme

mercredi 11 janvier 2006, 15:04

zu 1. Beispiel: Du musst nur mit einer for-Schleife durch den String iterieren und in jedem Durchlauf, d.h. für jedes Zeichen dieses mit dem Suchbegriff vergleichen. Den Zähler der for-Schleife kannst du auch gleich (ggf. +-1) als Index der Fundstelle zurückliefern. Wird nichts gefunden, gibst du nach der Schleife -1 zurück.

Citation de "Rotring"

buffer = word[i];

sicher? ;)

gerzii

Newbie

Re: c++ programme

mercredi 11 janvier 2006, 15:33

vielen dank für die lösungen :)

magst du mir das erste beispiel auch noch lösen? :)

greetz

p.s.: gibt es ein gutes skriptum zum lernen oder kann ich mit wem von euch lernen?


Ein Optimist ist jemand, der weiss, wie schlecht die Welt ist. Ein Pessimist findet es jeden Tag neu heraus (Sir Peter Ustinov)

TheJoker

God

Re: c++ programme

mercredi 11 janvier 2006, 15:53

also y0gi hat dir quasi den gesamten algorithmus in textform geliefert, jetzt sollteste erstmal selbst anfangen das in die programmiersprache zu packen.
wenn dir alles vorgekaut wird lernste sicher nix.
C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!

Rotring

Full Member

Re: c++ programme

mercredi 11 janvier 2006, 17:38

@Yogi
ops...da ist mir wohl ein Mistgeschick unterlaufen...war im Stress...ganz so einfach isses wohl doch nich *g*

3. Beispiel
void turn()
{
char buffer[MAX];
int n = 0;
for (int i= MAX; i >= 0; i--)
{
buffer[n] = word;
n++;
}
word = buffer;
}

Clark

God

Re: c++ programme

mercredi 11 janvier 2006, 17:45

Citation de "Rotring"

@Yogi
ops...da ist mir wohl ein Mistgeschick unterlaufen...war im Stress...ganz so einfach isses wohl doch nich *g*

3. Beispiel  
void turn()
{
char buffer[MAX];
int n = 0;
for (int i= MAX; i >= 0; i--)  
{
buffer[n] = word;
n++;
}
word = buffer;
}


Also, man kann sich auch Probleme machen

Code source

1
2
3
4
for (int i=0; i<MAX; i++)
  buffer[i]=word[MAX-i-1];
for (int i=0; i<MAX; i++)
  word[i]=buffer[i];

PS: Deines würde mit einem Segfault abschmieren, da du auf word[MAX] zugreifen tust...:)
2.) du hast zwar den Wert in ein neues char_array kopiert und du setzt am ende auch den Zeiger um, soweit ist das ja richtig.
Dummerweise passiert da was sehr unangenehmes: Sobald die Funktion durch ist wird der speicherbereich auf den Buffer zeigte wieder freigegeben: word zeigt jetzt auf ungültigen Speicher...
d.h. du musst das alles kopieren...
c++: The power, elegance and simplicity of a hand grenade.

Clark

God

Re: c++ programme

mercredi 11 janvier 2006, 17:50

Citation de "gerzii"

1. Beispiel
Schreiben Sie eine Funktion
int Search (char Text[], char Letterl, Letter2);

Code source

1
2
3
4
5
6
7
8
9
#include <string>

int Search (char Text[], char Letter1, Letter2){
 std::string st = Text;
 std::string::size_type sz = st.search(std::string(Letterl)+std::string(Letter2));
  if (sz!=std::string::npos)
    return sz;
  return -1;
}

*scnr* ::)
c++: The power, elegance and simplicity of a hand grenade.