www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "C/C++" - Arrays
Arrays < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:33 Di 05.01.2010
Autor: az118

Aufgabe
Schreiben Sie C-Funktionen zur Berechnung

a.) des größten Wertes max(x1,...,xn)

eines Eingabearrays aus Integern x1,...,xn, deren Betrag jeweils kleiner als [mm] 10^{9} [/mm] ist.

Hallo,habe das mal versucht, aber die Ausgabe ist falsch.
Nur wo liegt der Fehler?

#include <stdio.h>

int max(int array[],int laenge){
int i,max=1000000000;

for(i=0;i<laenge;i++){
if (array[i]>max)
max=array[i];
}
return max;
}

int main(){
int array[5]={3,2,2,1,4};

printf("Der groesste Wert lautet: %i",max(array,5));

[mm] while(getchar()!='\n'); [/mm]
}

        
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 15:41 Di 05.01.2010
Autor: fencheltee


> Schreiben Sie C-Funktionen zur Berechnung
>
> a.) des größten Wertes max(x1,...,xn)
>  
> eines Eingabearrays aus Integern x1,...,xn, deren Betrag
> jeweils kleiner als [mm]10^{9}[/mm]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

ist.

>  Hallo,habe das mal versucht, aber die Ausgabe ist falsch.
>  Nur wo liegt der Fehler?
>  
> #include <stdio.h>
>  
> int max(int array[],int laenge){
>   int i,max=1000000000;

du setzt hier max auf 10^9

>  
> for(i=0;i<laenge;i++){
>   if (array>max)

hier schaust du, ob die zahl im array größer als max ist, was alle 100% nicht sein werden

> max=array;
> }
> return max;
> }
>
> int main(){
> int array[5]={3,2,2,1,4};
>
> printf("Der groesste Wert lautet: %i",max(array,5));
>
> [mm] while(getchar()!='\n');[/mm]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)


> }

du könntest max auf 0 setzen (wenn keine negativen zahlen vorkommen), ansonsten versteh ich den hinweis auf die 10^9 zahlen nicht. gibts da noch mehr infos?

gruß tee

Bezug
                
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:45 Di 05.01.2010
Autor: az118

Nein, mehr Infos gibt es zu der Aufgabe leider nicht. Versteh das mit der [mm] 10^9 [/mm] auch nicht so.

Ok,die Ausgabe stimmt wenn ich max=0 setze,aber die [mm] 10^9 [/mm] muss ich sicher irgendwo unterbringen?

Bezug
                        
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 16:14 Di 05.01.2010
Autor: fencheltee


> Nein, mehr Infos gibt es zu der Aufgabe leider nicht.
> Versteh das mit der [mm]10^9[/mm] auch nicht so.
>  
> Ok,die Ausgabe stimmt wenn ich max=0 setze,aber die [mm]10^9[/mm]
> muss ich sicher irgendwo unterbringen?

is mir grad aufgefallen.. es heisst ja der betrag sei kleiner als [mm] 10^9 [/mm] sei... also nimmst du als maximum [mm] -10^9 [/mm] und fertig ;-)

gruß tee

Bezug
                                
Bezug
Arrays: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:15 Di 05.01.2010
Autor: az118

Super danke.

Bezug
        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:19 Di 05.01.2010
Autor: az118

Aufgabe
Schreiben Sie C-Funktionen zur Berechnung

b.) der mittleren Abweichung e=((x1-x)+...+(xn-x))/n

eines Eingabearrays aus Integern x1,...,xn, deren Betrag jeweils kleiner als [mm] 10^9 [/mm] ist.

Habe noch die Aufgabe b versucht, weiß da allerdings gar kein Anfang.
Könnte mir da jemand helfen?

Bezug
                
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 16:31 Di 05.01.2010
Autor: fencheltee


> Schreiben Sie C-Funktionen zur Berechnung
>
> b.) der mittleren Abweichung e=((x1-x)+...+(xn-x))/n

kann es sein dass hier betragsstriche in der aufgabe angegeben sind?

>  
> eines Eingabearrays aus Integern x1,...,xn, deren Betrag
> jeweils kleiner als [mm]10^9[/mm] ist.
>  Habe noch die Aufgabe b versucht, weiß da allerdings gar
> kein Anfang.
>  Könnte mir da jemand helfen?

kannst du denn mit worten beschreiben was da passiert?

gruß tee

Bezug
                        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:43 Di 05.01.2010
Autor: az118

Ja das sollten Betragsstriche sein.
Also x wäre der Mittelwert der Zahlen.Und ich soll nun den Mittelwert von jeder einzelnen Zahl subtrahieren,dann alles aufsummieren und durch die Anzahl der angegebenen Zahlen dividieren?

Bezug
                                
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 16:46 Di 05.01.2010
Autor: fencheltee


> Ja das sollten Betragsstriche sein.
>  Also x wäre der Mittelwert der Zahlen.Und ich soll nun
> den Mittelwert von jeder einzelnen Zahl subtrahieren,dann
> alles aufsummieren und durch die Anzahl der angegebenen
> Zahlen dividieren?

ja im ersten durchgang den mittelwert bilden aus den elementen des array (forschleife, aufsummieren, teilen durch anzahl der elemente)
in der nächsten forschleife dann den mittelwert von den einzelnen elementen abziehen (betrag nicht vergessen. siehe abs(..) mit ner math.h include), alles aufsummieren und wieder durch die anzahl der elemente teilen

so dann mal ran ans coden

gruß tee

Bezug
                                        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:33 Di 05.01.2010
Autor: az118

Ok,habe jetzt nur mal ein Programm zur Berechnung des Mittelwertes geschrieben,um zu testen,ob es soweit stimmt. Allerdings muss da wieder ein Fehler sein,da die Ausgabe nicht stimmt?

#include <stdio.h>
#include <math.h>

double average(int array[], int laenge){
int i,sum=0;
double l=laenge;

for(i=0;i<laenge;i++){
sum+=array[i];
}
return sum/l;
}

int main(){
int array[5]={2,3,1,4,2};

printf("Der Mittelwert lautet: %i",average(array,5));

while(getchar()!=' \ n ');
}

Bezug
                                                
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 17:39 Di 05.01.2010
Autor: fencheltee

du hast nur nen winzigen fehler.. der mittelwert wird in einer double gespeichert, im printf versuchst du jedoch den double als integer auszugeben:
...%i muss zu %f werden
dann klappt das programm auch wunderbar

gruß tee

Bezug
                                                        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:10 Di 05.01.2010
Autor: az118

Ja klar,klappt jetzt.
Ok,die nächste forschleife hätte ich jetzt so geschrieben:

for(i=0;i<laenge;i++){
e=abs(array[i]-sum/l);
sumend+=e;
}
return sumend/l;             ???

Bezug
                                                                
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 18:14 Di 05.01.2010
Autor: fencheltee


> Ja klar,klappt jetzt.
>  Ok,die nächste forschleife hätte ich jetzt so
> geschrieben:
>  
> for(i=0;i<laenge;i++){
>   e=abs(array-sum/l);
> sumend+=e;
> }
> return sumend/l;             ???

wenn sum die summe der einzelelemente ist und l die anzahl der elemente siehts richtig aus

gruß tee

Bezug
                                                                        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:21 Di 05.01.2010
Autor: az118

Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

Und wie verknüpfe ich die beiden forschleifen?wenn ich die einfach untereinander schreibe,wird nur die erste schleife berechnet.

#include <stdio.h>
#include <math.h>

double average(int array[], int laenge){
int i,sum=0;
double l=laenge;
double e,sumend=0;

for(i=0;i<laenge;i++){
sum+=array[i];
}
return sum/l;
}

for(i=0;i<laenge;i++){
e=abs(array[i]-sum/l);
sumend+=e;
}
return sumend/l;
}

int main(){
int array[5]={2,3,1,4,2};

printf("Der Mittelwert lautet: %f",average(array,5));

while(getchar()!='\n');
}

Bezug
                                                                                
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 18:51 Di 05.01.2010
Autor: fencheltee

Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

#include <stdio.h>
#include <math.h>
double average(int array[], int laenge){
int i;
double sum=0;
double l=laenge;
double e,sumend=0;

for(i=0;i<laenge;i++){
sum+=array[i];
}
//return sum/l;
//} die 2 zeilen sind rauszunehmen, die return sonst sofort ausgegeben wird, du willst aber ja noch mit der sum weiterrechnen
printf("summe gesamt:%f, elemente: %f\n",sum,l);
for(i=0;i<laenge;i++){
e=abs(array[i]-(sum/l));
printf("e: %f= %d - %f\n",e,array[i],sum/l);
sumend+=e;
}
return sumend/l;
}

int main(){
int array[7]={4,5,6,7,5,4,3};

printf("\nDer Mittelwert lautet: %f",average(array,7));

while(getchar()!='\n');
}

hab oben 2 zeilen reinkommentiert

gruß tee

ps. erstaunlich dass mit dem gleichen code bei 2 verschiedenen compilern was unterschiedliches rauskommt

Bezug
                                                                                        
Bezug
Arrays: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:59 Di 05.01.2010
Autor: az118

Ok,danke.
hab das jetzt mit nen paar werten probiert,klappt alles.

Bezug
                                                                                        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:01 Di 05.01.2010
Autor: az118

Achso,mir fällt gerade auf,dass ich die [mm] 10^9 [/mm] gar nicht benutzt habe?

Bezug
                                                                                                
Bezug
Arrays: Antwort (nicht fertig)
Status: (Antwort) noch nicht fertig Status 
Datum: 19:23 Di 05.01.2010
Autor: fencheltee


> Achso,mir fällt gerade auf,dass ich die [mm]10^9[/mm] gar nicht
> benutzt habe?

war das für die gesamte überschrift oder stand das bei jeder teilaufgabe nochmal explizit dran?
ansonsten ist das vielleicht noch von "früher" auf 16 bit rechnern, wo ein int nur 2^16 zu stände hatte und man daher den datentyp long nutzen musste?! oder wurde evtl noch was anderes übersehen?

gruß tee

Bezug
                                                                                                        
Bezug
Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:02 Di 05.01.2010
Autor: az118

Ja das stand über beide Aufgaben,also a und b.
Also muss ich das noch irgendwie in die aufgabe einbauen?

Bezug
                                                                                                                
Bezug
Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 20:10 Di 05.01.2010
Autor: fencheltee


> Ja das stand über beide Aufgaben,also a und b.
>  Also muss ich das noch irgendwie in die aufgabe einbauen?

sinnvoll ist die verwendung nur beim maximum, also teil a.
evtl sinnvoll ist es noch falls du es auf ner alten kiste benutzt die nen int mit 16 bit anlegt, statt 32, dann würdest du nur zahlen von -32767 .. 32767 darstellen können statt -2147483647 .. 2147483647. aber auf den heutigen 32 bit rechnen ist int32 glaube standard? von daher..

gruß tee


Bezug
                                                                                                                        
Bezug
Arrays: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:16 Di 05.01.2010
Autor: az118

Gut,dann werde ich da auch nichts mehr verändern.
Danke

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


^ Seitenanfang ^
www.vorhilfe.de