12
//Vorgehen 1.) Input / Output reInput: ---- Output: int oder int[] //Array 2.) Randbedingung Input:-----//Vorgehen Output: Zahl muss Algorithmus erfüllen { 3.) static int zahlSuche() 4.) ... 5.) Algorithmus entwerfen //1. Nachvollziehen / Skizzieren Zahl 12 12 / 2 = 6: 6 * 6 = 36; 36 != 21; //2. Skizze in Code übersetzen static int zahlSuche(){ int ergebnis = 0; for(int i = 10; i <= 99; i++) { int zahl = (i/2) *(i/2);

Programmierung I

Embed Size (px)

DESCRIPTION

Vorgehen ein Algorithmus zu lösen

Citation preview

Page 1: Programmierung I

//Vorgehen

1.) Input / Output

reInput: ----

Output: int oder int[] //Array

2.) Randbedingung

Input:-----//Vorgehen

Output: Zahl muss Algorithmus erfüllen

{

3.) static int zahlSuche()

4.) ...

5.) Algorithmus entwerfen

//1. Nachvollziehen / Skizzieren

Zahl 12

12 / 2 = 6:

6 * 6 = 36;

36 != 21;

//2. Skizze in Code übersetzen

static int zahlSuche(){

int ergebnis = 0;

for(int i = 10; i <= 99; i++)

{

int zahl = (i/2) *(i/2);

//Vergleich mit umgedrehten Zahl

int ziffer2 = i % 10; //12 mod 10 = 2

int ziffer1 = i / 10; // 12 div 10 = 1

Page 2: Programmierung I

int neueZahl = ziffer2*10 + ziffer1; //2 * 10 + 1;

if (neueZahl == zahl){

ergebnis = i;

}

}

return ergebnis;

}

//Aufgabe 2

1. Input /Output

Input: ----

Output: double

2.Randbedingung von Input / Output

nichts

3. Signatur erzeugen

Funktionssignatur:

static <Rückgabe-Datentyp:Output> <Funktionsbezeichner> (<Paramterliste:Input>)

static double Reihe(){

}

Page 3: Programmierung I

4. Randbedingung umsetzen

5. Algorithmus entwerfen:

//Skizze:

- Summe (Schleife)

- Potenz(Schleife)

- als 2er Potenz

//Skizze in Code überführen:

static double Reihe(){

double ergebnis = 1;

int potenz = 1,

double ergebnisNext = ergebnis; //....redundant

//Doppelschleife:

do

{

ergebnis = ergebnis

//mein Vorschlag:

do

{

ergebnis = ergebnisNext;

potenz = potenz << 1;

ergebnisNext +=1.0 / potenz;

Page 4: Programmierung I

}

while(ergebnis != ergebnisNext);

return ergebnis;

}

// 1,9459380

// 1,9459587

// 1,9459981

// 1,945998

Aufgabe 3

1.) Input / Output;

Input: int[]

Output: int

- Zurückgabe Index der ersten Zahl eines Vergleichpaars

2.) Randbedingung

.... // keine

3.) Signatur

static int DistanzBerechnen(int[] zahlen){ }

4.) ...

Page 5: Programmierung I

5.) Algorithmus

//Skizze

- Speichern Abstand

- Speichern Index

- vergleiche Abstände

- => Abstand mit der gerade gespeicherten Zahl

- wenn Abstand kleiner ist als Abstand des vorherigen Vergleichspaars dann speichern

//skizze in code umsetzen

//Tutorvorschlag:

static int distanzRechner(int[] array)

{

//Paarweise vergleichen

int vergleichAbstand;

int speichernPosition = 0;

int minWertAbstand = 100; //?

for (int i = 0; i < array.Length - 1; i++)

{

vergleichAbstand = Math.Abs(array[i] - array[i + 1]);

if (vergleichAbstand < minWertAbstand)

{

Page 6: Programmierung I

minWertAbstand = vergleichAbstand;

speichernPosition = i;

}

}

return speichernPosition;

}

static int DistanzBerechnen(int[] zahlen)

{

int abstand = 0;

int minabstand = 10000;

int speicher = 0;

for (int i = 0; i < zahlen.Length-1; i++)

{

abstand = Math.Abs(zahlen[i] - zahlen[i + 1]);

if (abstand< minabstand)

{

minabstand = abstand;

speicher = i;

}

}

return minabstand;

}

Page 7: Programmierung I

//Tutorvorschlag:

static void EANPruefen(string pfadLesen, string pfadSchreiben)

{

StreamReader reader = new StreamReader(pfadLesen);

StreamWriter writer = new StreamWriter(pfadSchreiben);

while(reader.Peek() > -1)

{

string pfad = reader.ReadLine();

writer.WriteLine(pfad+ " "+EanPruefziffer(pfad));

}

reader.Close();

writer.Close();

}

//

enum Jahreszeiten { Sommer, Winter, Ganzjahr};

class Reifen

{

int durchmesser;

Jahreszeiten reifenJahreszeit;

public int Durchmesser

{

get { return durchmesser; }

}

Page 8: Programmierung I

public Jahreszeiten ReifenJahreszeit

{

get { return reifenJahreszeit; }

}

public Reifen(int durchmesser, Jahreszeiten reifenJahreszeit)

{

this.durchmesser = durchmesser;

this.reifenJahreszeit = reifenJahreszeit;

}

public static Reifen Goesster(Reifen[] reifenArray)

{

int max = 0;

int position = -1;

for(int i = 0; i < reifenArray.Length; i++)

{

if(reifenArray[i].ReifenJahreszeit == Jahreszeiten.Sommer)

{

if(reifenArray[i].Durchmesser >= max)

{

position = i;

}

}

}

if(position == -1)

{

return null;

}

Page 9: Programmierung I

else

{

return reifenArray[position];

}

}

}

static void Main(string[] args)

{

Reifen reifen1 = new Reifen(3, Jahreszeiten.Sommer);

Reifen reifen2 = new Reifen(4, Jahreszeiten.Sommer);

Reifen reifen3 = new Reifen(2, Jahreszeiten.Winter);

Reifen[] rArray = { reifen1, reifen2, reifen3 };

//hier wird eine statische Methode

Reifen ergebnisReifen = Reifen.groesster(rArray);

}

Page 10: Programmierung I
Page 11: Programmierung I

}