www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++Funktion schreiben
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "C/C++" - Funktion schreiben
Funktion schreiben < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:52 Sa 01.12.2012
Autor: Duckx

Aufgabe
Schreiben Sie eine C-Funktion "divide" zur ganzzahligen Division ohne den / Operator zu verwenden. (durch wiederholte Subtraktion)

Ich weiß ungefähr wie sich das realisieren lässt. Allerdings habe ich keine Ahnung wie ich soetwas in C schreiben soll.

int a;
int b;
i=0;
   while a > b
     a=a-b;
     i=i+1
return i;


Ist das so richtig vom groben Aufbau?
Wie schreibt man soetwas nun in C?

        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 20:04 Sa 01.12.2012
Autor: MathePower

Hallo Duckx,

> Schreiben Sie eine C-Funktion "divide" zur ganzzahligen
> Division ohne den / Operator zu verwenden. (durch
> wiederholte Subtraktion)
>  Ich weiß ungefähr wie sich das realisieren lässt.
> Allerdings habe ich keine Ahnung wie ich soetwas in C
> schreiben soll.
>  
> int a;
>  int b;
>  i=0;
>     while a > b

>       a=a-b;
>       i=i+1
>  return i;
>  
>
> Ist das so richtig vom groben Aufbau?


Vom groben Aufbau her ist das richtig.


>  Wie schreibt man soetwas nun in C?


Das kann man z.B. so realisieren:

1:
2: int divide()
3: {
4:   int i=0;
5:      while a > b
6:        a=a-b;
7:        i=i+1
8:   return i;
9: }


Wobei a,b globale Variablen sind.

Sollen der Funktion divide Parameter übergeben werden,
so sieht das etwas anders aus:

1:
2: int divide(int u,int v)
3: {
4:   int a=u;
5:   int b=v;
6:   i=0;
7:      while a > b
8:        a=a-b;
9:        i=i+1
10:   return i;
11: }



Gruss
MathePower

Bezug
                
Bezug
Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:13 Sa 01.12.2012
Autor: Duckx

Ok dankeschön :) Ich weiß nicht genau, was hier gefordert ist.
Aber ich soll als nächste Aufgabe die Funktion in ein Programm integrieren, dass 2 Zahlen einliest und dann die ganzzahlige Division berechnet und anschließend das ergebnis ausgibt.
Also denke ich eher die 2. variante?

Bezug
                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 20:16 Sa 01.12.2012
Autor: MathePower

Hallo Duckx,

> Ok dankeschön :) Ich weiß nicht genau, was hier gefordert
> ist.
>  Aber ich soll als nächste Aufgabe die Funktion in ein
> Programm integrieren, dass 2 Zahlen einliest und dann die
> ganzzahlige Division berechnet und anschließend das
> ergebnis ausgibt.
>  Also denke ich eher die 2. variante?


Ja, das ist dann die 2. Variante.


Gruss
MathePower

Bezug
                                
Bezug
Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:40 Sa 01.12.2012
Autor: Duckx

Und wie realisiere ich das ganze nun in einem richtigen programm? wie lasse ich die variable u und v einlesen?

Bezug
                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 21:49 Sa 01.12.2012
Autor: Valerie20


> Und wie realisiere ich das ganze nun in einem richtigen
> programm? wie lasse ich die variable u und v einlesen?

Du kannst mit "scanf" die beiden Werte einlesen.


Bezug
                                                
Bezug
Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:02 Sa 01.12.2012
Autor: Duckx

Ok danke
aber ich weiß nun nicht, wie ich das als Programm ausgeben soll:
ungefähr so?
int divide(int u,int v)
{
  int a=u;
  int b=v;
  i=0;
     while a > b
       a=a-b;
       i=i+1
  return i;
}

int main ()
{
  scanf ("%u%,&i);
  scanf ("%v",&i);
  printf (i);
  return 0;
}

Bezug
                                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 22:27 Sa 01.12.2012
Autor: Valerie20


> Ok danke
> aber ich weiß nun nicht, wie ich das als Programm ausgeben
> soll:
>   ungefähr so?
>   int divide(int u,int v)
>   {
>   int a=u;
>   int b=v;
>   i=0;
>   while a > b

>   a=a-b;
>   i=i+1
>   return i;
>   }
>
> int main ()
>  {
>    scanf ("%u%,&i);
>    scanf ("%v",&i);
>    printf (i);
>    return 0;
>  }

Nur mal zum allgemeinen Ablauf:
Du schreibst zuerst eine Funktion. Hier "divide". Um diese Funktion zu benutzen, musst du sie in der Main Funktion aufrufen. Deine Funktion hat zwei input parameter, u und v. Das heißt du musst die Funktion in der main auch mit zwei parametern aufrufen. Diese zwei parameter liest du ein über scanf. Das "int" vor "divide" sagt dir, dass die Funktion einen int Wert zurück liefert.
Was du da mit der scanf Funktion treibst, verstehe ich nicht.
Sieh bitte in deinem Skript nach (oder google's einfach) wie das funktioniert. Z.b hier wird ein für dich interessantes Beispiel erarbeitet:

[]scanf Funktionsweise

Valerie


Bezug
                                                                
Bezug
Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 00:44 So 02.12.2012
Autor: Duckx

ok hier ein neuer Versuch:
ich hoffe ich habe es verstanden

#include <stdio.h>

int divide(int u,int v)
{
  int a=u;
  int b=v;
  int i=0;
     while (a >= b){
       a=a-b;
   i=i+1;}
  return i;
}

int main() {
int h;
int u;
int v;
printf("Geben Sie einen Dividenden ein: [mm] \n"); [/mm]
scanf("%d",&u);
printf("Geben Sie einen Divisor ein: [mm] \n"); [/mm]
scanf("%d",&v);
h=divide(u,v);
printf("Der Quotient ist: [mm] %d\n",h); [/mm]
return 0;
}

Dieses Programm habe ich auch ausprobiert und es hat funktioniert. Allerdings weiß ich nicht, ob der Code so einwandfrei ist.

Bezug
                                                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 11:58 So 02.12.2012
Autor: Valerie20


Nur am Rande: Die Variablen in der main Funktion müssen nicht den gleichen Namen tragen wie die Variablen, die du bei deiner Funktion deklariert hast. Du könntest die Variablen deiner main Funktion beliebige Namen geben.

Ich würde noch eine Abbruch bedingung mit einbauen, für den Fall dass jemand durch Null teilen würde.

Valerie


Bezug
                                                                                
Bezug
Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:10 So 02.12.2012
Autor: Duckx

Wie bringe ich das in die divide funktion ein?
wenn ich da ne if funktion einbaue wird es trotzdem nicht ausgegeben weil ich es in der main funktion nicht habe oder?
Kann mir jemand eine Möglichkeit geben?


Bezug
                                                                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 12:24 So 02.12.2012
Autor: Valerie20


> Wie bringe ich das in die divide funktion ein?

gar nicht.

> wenn ich da ne if funktion einbaue wird es trotzdem nicht
> ausgegeben weil ich es in der main funktion nicht habe
> oder?

Genau. Es muss also in die Main. Du musst das abfangen, bevor die eingelesenen Variablen in deine Funktion gelangen. Mit einer If else Bedingung kannst du es machen.



Bezug
                                                                                                
Bezug
Funktion schreiben: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:27 So 02.12.2012
Autor: Duckx

Ok danke.
Aber in der divide Funktion kann man es garnicht abfangen?
das wäre doch besser falls man öfter was mit der Funktion in einem Programm macht. dann müsste man das nicht immer wieder abfangen sondern hat es kompakt?

Bezug
                                                                                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 17:56 So 02.12.2012
Autor: MathePower

Hallo Duckx,

> Ok danke.
>  Aber in der divide Funktion kann man es garnicht
> abfangen?


In der Funktion divide müßte dann der Fall abgefangen werden,
wenn b gleich Null ist. Dann ändert sich die Schleifenbedingung.


>  das wäre doch besser falls man öfter was mit der
> Funktion in einem Programm macht. dann müsste man das
> nicht immer wieder abfangen sondern hat es kompakt?

Gruss
MathePower

Bezug
                                                                                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 21:18 So 02.12.2012
Autor: Event_Horizon

Hallo!

Erstmal eine schelmische Frage: Was ist denn, wenn a und/oder  b negativ ist?


Zu dem Problem der Division duch 0:

Im Prinzip ist es korrekt, das in der Funktion divide() selbst zu prüfen, sonst läuft das Dingen ja bis in alle Ewigkeit.
Das Problem ist, was dann? Einfach irgendeine Zahl zurück geben ist nicht gut, denn dann weiß z.B. deine main() nicht, daß da was schief gegangen ist.

Es gibt da einige Lösungsmöglichkeiten für, allerdings würde das hier wohl über das Ziel hinaus schießen.

Bezug
                                                                                                        
Bezug
Funktion schreiben: Antwort
Status: (Antwort) fertig Status 
Datum: 21:19 So 02.12.2012
Autor: Valerie20

Hi!
> Ok danke.
>  Aber in der divide Funktion kann man es garnicht
> abfangen?
>  das wäre doch besser falls man öfter was mit der
> Funktion in einem Programm macht. dann müsste man das
> nicht immer wieder abfangen sondern hat es kompakt?

Doch, natürlich geht das auch.



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]