Wirtschaftsinformatik I



Ähnliche Dokumente
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Programmierkurs Java

Übungen Programmieren 1 Felix Rohrer. Übungen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1 Vom Problem zum Programm

Überblick. Lineares Suchen

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Professionelle Seminare im Bereich MS-Office

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Erwin Grüner

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Anleitung über den Umgang mit Schildern

Das Leitbild vom Verein WIR

Grundlagen der Theoretischen Informatik, SoSe 2008

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

1 topologisches Sortieren

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Campus Management (CM)

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

WAS finde ich WO im Beipackzettel

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Veranstaltungsbelegung in QIS/LSF -- Leitfaden für BW-Studierende --

Was meinen die Leute eigentlich mit: Grexit?

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

Abschnitt: Algorithmendesign und Laufzeitanalyse

Primzahlen und RSA-Verschlüsselung

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Dow Jones am im 1-min Chat

C++ Tutorial: Timer 1

Übungsaufgaben Tilgungsrechnung

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

4 Aufzählungen und Listen erstellen

Das Persönliche Budget in verständlicher Sprache

Meet the Germans. Lerntipp zur Schulung der Fertigkeit des Sprechens. Lerntipp und Redemittel zur Präsentation oder einen Vortrag halten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

1. Was ihr in dieser Anleitung

Netzwerk einrichten unter Windows

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Wie halte ich Ordnung auf meiner Festplatte?

Studentische Lösung zum Übungsblatt Nr. 7

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Einführung in die Java- Programmierung

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Fotostammtisch-Schaumburg

Technische Analyse der Zukunft

Toolbeschreibung: EVERNOTE

Programmieren I. Kapitel 7. Sortieren und Suchen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Bauteilattribute als Sachdaten anzeigen

teamsync Kurzanleitung

5. Tutorium zu Programmieren

So erstellen Sie nützliche Beschreibungen zu Ihren Tradingdaten

Leichte-Sprache-Bilder

Wichtige Info szum Lehrabschluss!

Objektorientierte Programmierung

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN)

Einführung in die Java- Programmierung

Wir machen uns stark! Parlament der Ausgegrenzten

Fotografin für alles, was bleiben soll.

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Software- und Druckerzuweisung Selbstlernmaterialien

ARCO Software - Anleitung zur Umstellung der MWSt

Catherina Lange, Heimbeiräte und Werkstatträte-Tagung, November

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Enigmail Konfiguration

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

! " # $ " % & Nicki Wruck worldwidewruck

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Startseite, wenn Sie auf unseren Online-Shop gehen

Vermögen sichern - Finanzierung optimieren

Übersicht Programmablaufsteuerung

Kapitalerhöhung - Verbuchung

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Zählen von Objekten einer bestimmten Klasse

Schritt 1. Anmelden. Klicken Sie auf die Schaltfläche Anmelden

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Menü auf zwei Module verteilt (Joomla 3.4.0)

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Info-Veranstaltung zur Erstellung von Zertifikaten

Das Gewissen Sekundarstufe 1 2 Std.

Vorkurs Informatik WiSe 15/16

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Erfahrungen mit Hartz IV- Empfängern

GeoPilot (Android) die App

Was ist Sozial-Raum-Orientierung?

EasyWk DAS Schwimmwettkampfprogramm

Transkript:

Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation wurde von keiner wissenschaftlich geprüften akademischen Hilfkraft erstellt und sämtliche Informationen dienen ausschließlich zu Informationszwecken und erheben keinen Anspruch auf Richtigkeit

Nachtrag zum 6.Tutorium Info zur Aufgabe 2) Auf der Spielwiese gibt es unter Freigabe Aufgaben Blatt6_Aufgabe2.cs ein Gerüst, dieses gibt aktuell nur -1 aus, aber hier könnt ihr das Wissen des Algorithmenschreibens gerne testen 2

Nachtrag zum 6.Tutorium Lösung der Aufgabe Wie aber schon im Tutorium besprochen wenden wir uns einer ganz bestimmten Struktur zu. 1) Prüfen der Mitte des Arrays 2) Auswahl der richtigen Hälfte des Arrays 3) und wie besprochen weiter verfahren => eine super Lösung hierzu wird euch auf dem nächsten Slide präsentiert Das letzte -1 des Algrithmus return -1; //dieses Return wird nur erreicht, wenn eine Zahl kleiner dem größten Array Wert (10) gesucht wird, die aber NICHT im Array enthalten ist Bsp. wenn man aus der 10 eine 11 macht und nach der 10 suchen lässt => Im Tutorium war dieser letzte Befehl jedoch auch sehr wichtig, weil wir mit if else if else if... gearbeitet hatten, wenn man sich hier jedoch vorstellt, dass der Compiler den Algorithmus testet, dann braucht man zur Sicherheit eine Bedingung die immer passt, das war unser -1, da theoretisch alle if, else if, usw. Abschnitte die Prüfung nicht bestehen könnten. 3

Nachtrag zum 6.Tutorium Lösung eines Studenten (inklusive der Auskommentierung ) herzlichen Dank hierfür Bitte kopiert den unten stehenden Text in die Spiewiese und analysiert anschließend die einzelnen Prozessschritte, bei Problemen können wir den Algorithmenablauf gerne nochmal kurz besprechen. Solche Fragen und weitere Fragen zu Algorithmen auch zur Rekursion gerne auch in den Ausweichtutorien dienstags Abends public int binarysearchrec(int[] listnum, int numtofind, int low, int high) { int mid = (low + high) / 2; if(listnum[high] < numtofind) { return -1; //Abfrage muss enthalten sein, um eine Endlosschleife zu umgehen (wäre diese Abfrage nicht enthalten würde es bei einer Zahl, die NICHT im Array steht wie z.b. 11 ab dem vierten Schleifendurchlauf immer wieder die 9 als mid ausgeben und sich somit immer wieder auf den Wert 10 beziehen) --> es wird mit dieser Abfrage bezweckt zu schauen, ob ein Wert gesucht wird, der GRÖßER als der größte im Array befindliche Wert ist; falls ja gibt es -1 zurück if(listnum[mid] == numtofind) { return mid; if(listnum[mid] > numtofind) { high = mid - 1; //die Zahl ist kleiner als die mid des listnum Arrays, deshalb verschieben wir die End-Adresse des Arrays (eigentlich 9) auf die mid - 1 return binarysearchrec(listnum, numtofind, low, high); //Rekursionsaufruf der Funktion (ACHTUNG: Alle Variablen werden durch den Rekursionsaufruf überschrieben; man könnte also auch direkt im Rekursionsaufruf binarysearchrec(listnum, numtofind, low, mid - 1); schreiben if(listnum[mid] < numtofind) { low = mid + 1; //die Zahl ist größer als die mid des listnum Arrays, deshalb verschieben wir die Anfangs-Adresse des Arrays (eigentlich 0) auf die mid + 1 return binarysearchrec(listnum, numtofind, low, high); return -1; //dieses Return wird nur erreicht, wenn eine Zahl kleiner dem größten Array Wert (10) gesucht wird, die aber NICHT im Arrayenthalten ist Bsp. wenn man aus der 10 eine 11 macht und nach der 10 suchen lässt public void resultingmethod() { int[] entrylist = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10; //Deklaration und Initialisierung des Arrays Array.Sort(entryList); //Array sortieren, falls doch eine Zahl unsortiert wäre int find = 10; //Zahl die im Array gesucht werden soll int lowest = 0; //Startwert des Arrays (ist immer 0, da die Adresse eines Arrays von 0 hochgezählt wird; für entrylist wäre das 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 int highest = entrylist.length - 1; //muss bei Länge - 1 bleiben, da es sonst die Adresse (Position im Array) nicht richtig interpretieren kann int resulting = binarysearchrec(entrylist, find, lowest, highest); if(resulting == -1) { //durch diese Abfrage erzeugen wir eine separate Ausgabe, falls die gesuchte Zahl nicht gefunden wurde Console.WriteLine ("Der Wert " + find + " wurde nicht gefunden!"); //Ausgabe, wenn Wert im Array nicht gefunden wurde else { Console.WriteLine ("Der Wert " + find + " steht im Array entrylist an der Stelle " + resulting); //Ausgabe des Wertes mit Position im Array (falls er gefunden wurde) 4

Nachtrag zum 6.Tutorium Aufgabe 3 Terminierung: Die Lösungen der Algorithmen mit den Rekursionen Wenn wir speziell das Schreiben von Algorithmen mit Rekursionen, bzw. die Analyse wie sich Rekursionen auf die Laufzeit verhalten nochmal analysieren sollten, dann bitte ich um Rückmeldung. Es wird von jedem Student, der das Modul Wifo I besucht erwartet, dass er solche Algorithmen versteht und ggf. Algorithmen mit Rekursionen schreiben kann. 5

Nachtrag zum 7.Tutorium Aufgabe 2a: Der Algorithmus vergleicht paarweise alle Elemente des als Parameter übergebenen Arrays ar. Dabei wird zuerst das letzte Element mit allen anderen Elementen verglichen (von hinten nach vorne). Wann immer ein Element kleiner ist als das aktuell letzte Element, werden die beiden Elemente getauscht. Als nächstes wird das vorletzte Element mit allen voranliegenden Elementen verglichen. Dabei wird auf die gleiche Weise wie zuvor vorgegangen. Am Ende sind die Werte im Array der Größe nach sortiert. Wobei der größte Wert vorne und der kleinste Wert hinten steht. 6

Nachtrag zum 7.Tutorium Aufgabe 3: Warum liegt die Laufzeit in O(n²)? Zu dieser Lösung nur ein paar Hinweise, wir haben es ja ausführlich besprochen Wir denken an ein worst-case-scenario (komplett unsortiert - kleinstes Element an letzter Position) Wir finden zwei Schleifen while & for Schleife Jede Schleife kann n mal laufen. Durch die Verschachtelung Schleifen liegen ineinander kommt es zu einer Multiplikation der Laufzeiten n -Tauschvorgänge innerhalb der while - Schleife, die selbst n mal laufen kann. (Konstanten +1 / -1 unberücksichtigt) Wir analysieren den Unterschied zu Aufgabe 2 dieses Tutoriums Bei Bubble Sort werden nicht einzelne Elemente mit den gesamten Array- Elementen vergleichen, vielmehr werden jeweils Paare vergleichen, d.h. benachbarte Elemente werden ggf. getauscht. - Bis das kleinste Element, das durch Zufall zu Beginn am Array-Ende stand, an den Array- Anfang gewandert ist sind n(=anzahl der Array-Elemente) Schleifendurchläufe der while - Schleife notwendig. In jeder dieser Schleife werden alle benachbarten Zahlenpaare vergleichen, was erneut bis zu n-vorgänge bedeuten kann. Durch diesen Vorgang kommt die Laufzeit n² zustande 7

Nachtrag zum 7.Tutorium => Terminierung, wenn for-schleifendurchlauf ohne Tauschvorgang, dann wird numberofswaps in keinem Durchlauf der for-schleife erhöht und somit gleich 0. Die if-bedingung setzt issortet auf true und die while-schleife terminiert. Wir kommen zu return und der sortierte Array wird ausgegeben 8

Wochen mit Feiertagen (donnerstags) Ausweichtermine: dienstags B7 (19:00 20:30 Uhr) im Schloß, Raum O129 Wir treffen uns in den Wochen, die am Donnerstag einen Feiertag besitzen jeweils dienstags in unserem regulären Tutoriums-Raum. Ich bitte alle Studenten zu Beginn des Blocks (um 19:00 Uhr) anwesend zu sein. Wir werden in 45 Minuten wie gewohnt das Tutorium durchsprechen. Anschließend können wir uns Fragen von Studenten zuwenden oder ggf. noch weiter zusätzliche Übungsaufgaben ansprechen, wenn Bedarf besteht (bitte meldet diesen Bedarf per Email an mich an: jdaum@mai.uni-mannheim.de). INFO: Wer an diesem Termin nicht teilnehmen kann, der suche sich ein anderes Tutorium in diesen zwei Wochen (mit Feiertag am Donnerstag) und schicke mir eine Email mit der Info, dass er dienstags nicht anwesend sein kann. 9

Informationsbeschaffung Danke für eure Aufmerksamkeit nächstes Tutorium: diese Woche, Donnerstag 06.05.2010 10