Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » programm + pointer

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 <
000
15.11.2005, 09:38 Uhr
~freezedSoul
Gast


also...ich brauch für die schule ein programm ...in dem ein pointer vorkommt...jez hab ich mal das grundgerüst..u das programm funkt auch...aba das ganze is ja jez mit aarays gshcirbn und ich bräucht das mit pointer...u da ch eine absolute null in programmiern bin hoff ich das mir hier jemand helfen kann!!

Hier das Programm:


C++:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <time.h>
#include <math.h>

void main()
{

int i,Feld[2][35];
float m,s;
s=0;
cout<<"Dieses Programm gibt die Noten der Schueler aus,berechnet den Notendurchschnitt und gibt eine Notenstatistik aus!\n";
for(i=0;i<=32;i++)
   {Feld[0][i]=rand()%5+1;
    Feld[1][i]=i+1;


    cout<<"\nKat.Nr:"<<Feld[1][i]<<"="<<Feld[0][i];
    cout<<'\n';
    s=s+Feld[0][i];
   }
   m=s/32;
   cout<<"\nDer Notendurchschnitt betraegt:";
   cout<<m;
   cout<<"\n";
   cout<<"\nNotenstatistik:";
   cout<<""<<endl<<"Sehr Gut:\n";
   for(i=0;i<=34;i++)
   {if(Feld[0][i]==1)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Gut:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==2)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Befriedigend:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==3)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Genuegend:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==4)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Nicht Genuegend:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==5)
    {cout<<" *";
    }
   }
   cout<<"\n\nBeenden mit beliebiger Taste";


   getch();
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.11.2005, 11:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

also...ich brauch für die schule ein programm ...in dem ein pointer vorkommt...




Zitat:


C++:
int i,Feld[2][35];




Feld selbst ist mehr oder weniger schon ein "pointer" also ist die aufgabe bereits gelöst...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.11.2005, 11:30 Uhr
~freezedSoul
Gast


hmm...bedeuten die [ ] klammern nciht arrays??wir haben in der shcule mal so ein programm geschieben bei dem man zahlen eingibt u er die sofort wieder geordnet ausgibt....u da haben wir auch eines mit arrays u eines mit pointer...u der unterschied bei den beiden war das eben beim array programm nur eine bestimmte anzahl von werten geordnet werden konnte u beim pointer unendlich viele....u das is das was mich so irritiert...weil wir sollten eben ein programm schreiben das ungefähr au dem niveau von eben diesem misch-programm is u halt pointer....

hier mal die beiden programme:

mit array:

C++:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <time.h>
#include <math.h>

void main()
{

int i,Feld[2][35];
float m,s;
s=0;
cout<<"Dieses Programm gibt die Noten der Schueler aus,berechnet den Notendurchschnitt und gibt eine Notenstatistik aus!\n";
for(i=0;i<=32;i++)
   {Feld[0][i]=rand()%5+1;
    Feld[1][i]=i+1;


    cout<<"\nKat.Nr:"<<Feld[1][i]<<"="<<Feld[0][i];
    cout<<'\n';
    s=s+Feld[0][i];
   }
   m=s/32;
   cout<<"\nDer Notendurchschnitt betraegt:";
   cout<<m;
   cout<<"\n";
   cout<<"\nNotenstatistik:";
   cout<<""<<endl<<"Sehr Gut:\n";
   for(i=0;i<=34;i++)
   {if(Feld[0][i]==1)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Gut:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==2)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Befriedigend:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==3)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Genuegend:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==4)
    {cout<<" *";
    }
   }

     cout<<""<<endl<<"Nicht Genuegend:\n";
   for(i=0;i<=32;i++)
   {if(Feld[0][i]==5)
    {cout<<" *";
    }
   }
   cout<<"\n\nBeenden mit beliebiger Taste";


   getch();
}




mit pointer:


C++:
#include <stdio.h>
#include <stdlib.h>
#define ENDE_WERT  999

struct FELD{
       int wert;
       struct FELD* p_naechste;
} feld;

// Ausgabe der aktuellen Liste
// mit aufsteigenden Werten
void ausgabe(struct FELD *start);

// Einfügen des neuen Wertes
// in die vorhandene Liste
struct FELD *mischen(struct FELD *start, struct FELD *neu);

int main(int argc, char *argv[])
{
  int i,zahl;
  char warten;
  struct  FELD *p_erste_zahl=NULL,*p=NULL;

  printf("\n Willkommen zu Sortieren während der Eingabe!");
  printf("\n Abbruch mit %d!",ENDE_WERT);


  i=0;
  do {i++;
     printf("\n Bitte den %d. Wert eingeben: ",i);
     scanf("%d",&zahl);
     if (zahl!=ENDE_WERT){
     // Speicher anfordern und mit dem neuen Wert befüllen
        p= (struct FELD *) malloc(sizeof(struct FELD));
        p->wert=zahl;
        p->p_naechste=NULL;
     // Falls erste Wert speichern
     // ansonsten in die Liste einfügen
        if (i==1)
           p_erste_zahl=p;
        else
           p_erste_zahl=mischen(p_erste_zahl,p);
     // Aktuelle Liste ausgeben
        ausgabe(p_erste_zahl);
     }

  } while (zahl!=ENDE_WERT);
  // alle Werte wurden eingegeben
  system("pause");
  return 0;
}

struct FELD  *mischen(struct FELD *start, struct FELD *neu)
{
FELD *p, *voriger;

for (voriger=p=start;p!=NULL;p=p->p_naechste) {
    if(p->wert > neu->wert) {

    // entweder an erster stelle
    // oder nach dem vorigen wert einfügen
       if (p==start) start=neu;
       else voriger->p_naechste=neu;
    // verweisen auf den aktuellen
       neu->p_naechste=p;
    // die restliche Schleife wird übersprungen
       return start;
    }
    else
    // Der aktuelle Wert war nicht größer
    // also weitersuchen und den vorigen Listeneintrag
    // speichern
       voriger=p;
}
// Höchster Wert wird am Ende angefügt!
    voriger->p_naechste=neu;
return start;
}

void ausgabe(struct FELD *start)
{
  struct FELD *p;
  int i=1;
  printf("\n Folgende Werte sind vorhanden:");

for (p=start;p!=NULL;p=p->p_naechste) {
      printf("\n An der Stelle %d  %d",i++,p->wert);
}
  printf("\n-------------------------------");
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.11.2005, 11:32 Uhr
~Freezedsoul
Gast


ah sry das mit den arrays is natürlcih:

C++:
#include <stdio.h>
#include <stdlib.h>
#define MAX_WERT  10

void ausgabe(int feld[MAX_WERT], int maximal);
void mischen(int feld[MAX_WERT], int maximal);

int main(int argc, char *argv[])
{
  int feld[MAX_WERT];
  int i,maximal;
  char warten;

  printf("\n Willkommen zu Sortieren während der Eingabe!");
  do {
     printf("\n Bitte die Anzahl der Werte eingeben (2 bis 10):");
     scanf("%d",&maximal);
     }
  while (maximal<2 || maximal>10);

  for (i=0;i<maximal;i++) {
     printf("\n Bitte den %d. von %d Werten eingeben",i+1,maximal);
     scanf("%d",&feld[i]);
     mischen(feld,i);
     ausgabe(feld,i);
  }
  // alle Werte wurden eingegeben
  system("pause");
  return 0;
}

void mischen(int feld[MAX_WERT], int maximal)
{
int i,buffer;
for (i=maximal;i>0;i--) {
    if(feld[i]<feld[i-1]) {
       buffer=feld[i];
       feld[i]=feld[i-1];
       feld[i-1]=buffer;
    }
}
}

void ausgabe(int feld[MAX_WERT], int maximal)
{
int i;
  printf("\n Folgende Werte sind vorhanden:");
  for (i=0;i<=maximal;i++) {
     printf("\n An der Stelle %d  %d",i+1,feld[i]);
  }
  printf("\n-------------------------------");
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: