Arrays

Neue Frage »

Auf diesen Beitrag antworten »
SarahK Arrays

Meine Frage:
Hi Leute,

ich fange in der Vorlesung gerade mit Arrays an und hänge jetzt schon an der ersten Übungsaufgabe fest.

Die Aufgabe:

Schreiben Sie ein Programm, das für ein gegebenes Datum bestehend aus Tag und Monat ausrechnet,
in der wievielten Woche des Jahres das Datum liegt. (Nehmen Sie der Einfachheit halber an, dass
es sich um kein Schaltjahr handelt und das Jahr mit dem Tag anfängt, mit dem auch die Woche beginnt.
Es liegt also genau eine komplette Woche zu Beginn des Jahres.)
Anders als in einer vorherigen Übungsaufgabe sollen Sie die Lösung aber ohne switch-Anweisung,
dafür aber mit einem 12-elementigen Array, das Sie mit der Anzahl der Tage jeweils eines Monat initialisiert
haben, lösen:
int[] arr = {31,28,31,30,31,30,31,31,30,31,30,31};

Meine Ideen:
Soderle, ich habe mir natürlich so meine Gedanken über die Aufgabe gemacht und diese auch schon mit der switch-Anweisung gelöst. Aber wie schaffe ich es jetzt, dass diese Aufgabe läuft?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
{
	public static void main (String[]args)
	{
			
		int[] arr = new int [31];
		arr[0]= 31; 
		arr[1] = 28;
		arr[2]= 31; 
		arr[3] = 30;
		arr[4]= 31; 
		arr[5] = 30;
		arr[6]= 31; 
		arr[7] = 31;
		arr[8]= 30; 
		arr[9] = 31;
		arr[10]= 30; 
		arr[11] = 31;

	int sum = 0;
	for (int i = 0; i<arr.length; i++)
	sum += arr[i]; 
	System.out.println (sum);

	}
}


Ich weiß, dass das Programm nichts mit der Aufgabenstellung zu tun hat, allerdings wollte ich schon einmal erste Schritte mit Arrays wagen :-)



Vielen Dank für Eure Hilfe.
 
Auf diesen Beitrag antworten »
eulerscheZahl

Da du nur 12 Monate hast, reicht int[] arr = new int [12];.
Wie du das Array in einer Zeile initialisieren kannst, steht übrigens in der Aufgabenstellung.

Sollst du als Editor Proton verwenden? Wenn ja, bist du glaube ich mit michi in einem Kurs. Vielleicht hilft dir, was ich ihm geschrieben habe. Du musst eben noch über die vorangegangenen Monate summieren, da dein Array etwas anders aussieht, als ich es vorgeschlagen hatte.
Auf diesen Beitrag antworten »
123michi19

Hey Leute,

SarahK kenne ich leider nicht :-) Aber ich würde mich gerne zu diesem Thema einklinken.

Ist es eigentlich möglich nur einen Teil der Arrays anzusprechen?

Hier ein Beispiel wie ich es meine:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
/*Test*/
public class Test
{
public static void main (String[]args)
	{
	int [] zahlen = {2,3,4,5,6,7,8};
	
	}
}


Zum Beispiel, dass ich jetzt nur die ersten 3 Zahlen addieren kann?


Vielen Dank für Eure Hilfe :-)
Auf diesen Beitrag antworten »
eulerscheZahl

In Java kriegst du das nur hin, indem du die Werte einzeln ansprichst:
int sum = zahlen[0] + zahlen[1] + zahlen[2];
kann man auch mit einer Schleife kombinieren:
int sum = 0;
for(int i = 0; i < 3; i++)
sum += zahlen[i];

in C# hast du noch ein paar mehr Möglichkeiten:
int sum = zahlen.Take(3).Sum(); //ungetestet, wenn du nicht beim ersten Eintrag starten willst, gibt es noch Skip()
 
Auf diesen Beitrag antworten »
123michi19

Vielen Dank für die Antwort smile
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »