SWITCH - Anweisung.

Slides:



Advertisements
Ähnliche Präsentationen
Programme in C++.
Advertisements

Forschungszentrum caesar
Verzweigung oder bedingte Anweisung Weiter mit PP.
Einführung in JavaScript II
SWITCH - Anweisung.
Verzweigung oder bedingte Anweisung Weiter mit PP.
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Java- Syntax.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Funktionen.
Dynamischer Speicher und Struktur
Konstruktoren.
WHILE - Anweisung.
FOR Anweisung.
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Fehler-Management.
DO...WHILE Anweisung.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Zusammenfassung Vorwoche
Das erste Programm (Folie 16)
DVG Ablaufsteuerung
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Verzweigung.
Einführung in die Programmiersprache C 1
Informatik 1 Übung 2.
Einführung in die Programmierung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Programmierung 1. Einführung Seite 1
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
3. Lineare Befehle 3.1 Die Ausgabefunktion
Heute und morgen Wochentage Heute und morgen Wochentage Paul Widergren
Gibt es ein …..? - - -/ Die Wochentage.
Hochschule Fulda – FB ET Sommersemester 2014
Deutsch ist super !.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Einführung in die Programmiersprache C 2
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Formulare Maya Kindler 6c. Allgemein Vom client zum Server form tag eröffnet ein Formular Input tag eröffnet ein Formularfeld.
Die Wochentage (der) Montag Dienstag Mittwoch Donnerstag Freitag
Guten Morgen, liebe Kinder! Wie geht es euch?
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tageszähler).Wenn.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Wochentag-was ist es auf deutsch? Wochentag-was ist es auf deutsch? Презентацию создала учитель немецкого языка МБОУ «школа №6 г.Прокопьевск Седова Оксана.
Temporale Präpositionen
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Inhalte der Übungen 1.Grundlagen, Ein- und Ausgabe 2.Kontrollstrukturen (Projekt 1) 3.Funktionen 4.Zeiger, Felder (Projekt 2) 5.Strings, Strukturen 6.Fileverarbeitung.
Подготовка к КР №4 Mein Schultag.
Hello World! Javakurs 2013 Arne Kappen
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Kalender 2004 String-Version
Januar 2018 MONTAG DIENSTAG MITTWOCH DONNERSTAG FREITAG SAMSTAG
Folien nach Wochentagen
Struktogramme.
Durchschnitt (verbal)
Unterschiedliche Kontrollstrukturen
Erstellt und bebildert von Nemo
JANUAR MONTAG DIENSTAG MITTWOCH
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
JANUAR MONTAG DIENSTAG MITTWOCH DONNERSTAG FREITAG SAMSTAG
Öffnungszeiten Montag bis Mittwoch: 11 Uhr bis 23 Uhr
Januar 2016 Montag Dienstag Mittwoch Donnerstag Freitag Samstag
forni a legna made in italy
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

SWITCH - Anweisung

Zur Nummer eines Tages soll der Wochentag ausgegeben werden. Beispiel: Aufgabe: Zur Nummer eines Tages soll der Wochentag ausgegeben werden. Beispiel: 2 --> Dienstag Schreiben Sie dazu ein C-Programm

Programmieren Sie den Eingabeteil.

int main(){ int i; printf("\nEingabe der Nummer: "); scanf("%d", &i); fflush(stdin);  // Wie geht es weiter ? Mit If – Else – If Kette

if (i==1) printf("Montag"); else if (i==2) printf("Dienstag"); else if (i==3) printf("Mittwoch"); else if (i==4) printf("Donnerstag"); else if (i==5) printf("Freitag"); else if (i==6) printf("Samstag"); else if (i==7) printf("Sonntag"); else printf("ungültige Eingabe"); Besser: printf(...) jeweils zwischen geschweifte Klammern setzen, also ...

if (i==1){ printf("Montag"); } else if (i==2){ printf("Dienstag"); } else if (i==3){ printf("Mittwoch"); } else if (i==4){ printf("Donnerstag"); } else if (i==5){ printf("Freitag"); } // gleich geht es weiter

else if (i==6){ printf("Samstag"); } else if (i==7){ printf("Sonntag"); } else{ printf("ungültige Eingabe"); }

Dies kann auch durch eine sogenannte SWITCH-Anweisung realisiert werden

switch (i){ case 1: printf("Montag\n"); break; // switch (i){ case 1: printf("Montag\n"); break; //... case 7: printf("Sonntag\n"); break; default: printf("ungültig\n"); break; } Ein switch ist ein Schalter, der verschiedene Zustände (wie bei einer Gangschaltung) haben kann. Hier sind die Zustände 1, 2, 3, 4, 5, 6, 7 Fragen: 1) Warum ist break am Ende überflüssig ?

Konstante switch (i){ case 1: printf("Montag\n"); break; //... case 7: printf("Sonntag\n"); break; default: printf("ungültig\n"); break; } ganzzahliger Ausdruck (char, int) Verlassen der switch-Anweisung Fragen: 1) Warum ist break am Ende überflüssig ? Wenn kein Wert passt Unnötig, aber guter Programmierstil

C-Syntax für SWITCH

case-Marken sind nicht abweisend switch (Ausdruck){ case Wert1: Anweisungen; break; //... case Wertn: Anweisungen; break; default: Anweisungen; break; } Was passiert, wenn dieses break fehlen würde ? Antwort: trifft es zu, dass der Ausdruck gleich dem Wert einer Konstanten ist, dann werden alle nachfolgenden Anweisungen bearbeitet (und zwar so lange, bis ein break kommt, oder das Ende der switch-Anweisung erreicht wird). Dies gilt auch dann, wenn vor diesen Anweisungen (so wie hier), wiederum "case Konstante" oder default steht. Man sagt: case-Marken sind nicht abweisend Mit case bezeichnete Stellen im Programm sind also keine Verzweiger sondern lediglich Einstiegsmarkierer und break ist der Ausstiegsmarkierer. default ist optional

Beispiel

scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); // ... scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); //... case 7: printf("Sonntag\n"); default: printf("ungültig\n"); break; } Was gibt das Programm aus, wenn 1 eingegeben wird? Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag ungültig Hier beginnt der Einstieg und das break unten bringt den Ausstieg.

scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); // ... scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); //... case 7: printf("Sonntag\n"); default: printf("ungültig\n"); break; } Was gibt das Programm aus, wenn 7 eingegeben wird? Sonntag ungültig Hier beginnt der Einstieg und das break unten bringt den Ausstieg.

Beispiel

Was gibt das Programm aus, wenn 1 eingegeben wird? ... scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); //... default: printf("ungültig\n"); case 7: printf("Sonntag\n"); } default muss nicht am Ende stehen. Aber: default am Ende ist der bessere Programmierstil !!!!!! Wenn kein break vorhanden ist, ist der Ausstieg am Ende der switch-Anweisung! Was gibt das Programm aus, wenn 1 eingegeben wird? Montag Dienstag Mittwoch Donnerstag Freitag Samstag ungültig Sonntag

Was gibt das Programm aus, wenn 7 eingegeben wird? ... scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); //... default: printf("ungültig\n"); case 7: printf("Sonntag\n"); } Was gibt das Programm aus, wenn 7 eingegeben wird? Sonntag

Was gibt das Programm aus, wenn 8 eingegeben wird? ... scanf("%d", &i); switch (i){ case 1: printf("Montag\n"); //... default: printf("ungültig\n"); case 7: printf("Sonntag\n"); } Was gibt das Programm aus, wenn 8 eingegeben wird? ungültig Sonntag

Beispiel

Was macht dieses Programm ... scanf("%d", &i); switch (i){ case 6: case 7: printf("Wochenende"); break; default: printf("werktags"); break; } break fehlt case Marken sind nicht abweisend Was macht dieses Programm Fragen: Was geschieht, wenn i = 6 ist ? Was geschieht, wenn default fehlt ? Wenn i den Wert 6 oder 7, Ausgabe: "Wochenende" sonst Ausgabe: "werktags"

SWITCH-Anweisung als Struktogramm

Ausdruck case Konst. 1 case Konst. 2 ... ... Anweis. n Anweis. 1 default ... ... Anweis. n Anweis. 1 Anweis. 2

Aufgabe: Auf dem Bildschirm erscheint diese Maske: Bei Eingabe einer Zahl 1, 2, 3, 4 wird der entsprechende Programmteil aufgerufen (z.B. Summe zweier Zahlen) Bei Eingabe einer anderen Zahl als 1, 2, 3, 4 wird das Programm beendet. Geben Sie eine Zahl ein. 1: berechnet die Summe zweier Zahlen, 2: berechnet die Differenz zweier Zahlen, 3: berechnet das Produkt zweier Zahlen, 4: berechnet den Quotienten zweier Zahlen. sonst: Programmende

int main(){ int e; double a,b,erg; // Eingabe printf("1: Summe\n"); printf("2: Differenz\n"); printf("3: Produkt\n"); printf("4: Quotient\n"); printf("sonst: Programmende\n"); scanf("%d", &e); fflush(stdin); if((e>=1)&&(e<=4)){ printf("1.Zahl eingeben\n"); scanf("%lf", &a); printf("2.Zahl eingeben\n"); scanf("%lf", &b); fflush(stdin); }

// Verarbeitung switch(e){ case 1: erg=a+b; break; case 2: erg=a-b; case 3: erg=a*b; case 4: erg=a/b; }

// Ausgabe switch(e){ case 1: case 2: case 3: case 4: printf("Ergebnis=%f\n",erg); break; default: printf("Programmende"); break; }

Aufgabe: Geben Sie ein Zeichen ein. Das Programm soll feststellen, welche Eigenschaft dieses Zeichen hat: - Selbstlaut (Vokal) - Mitlaut (Konsonant) - Ziffer - sonst

Was geschieht, wenn das break fehlt ? int main(){ char z; printf("Zeichen eingeben\n"); scanf("%c", &z); fflush(stdin); switch(z){ case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': printf("Selbstlaut\n"); break; Es wird an der zum nächsten case zugehörigen Anweisung weitergemacht. Was geschieht, wenn das break fehlt ?

case 'b': case 'B': case 'c': case 'C': case 'd': case 'D': case 'f': case 'F': case 'g': case 'G': case 'h': case 'H': case 'j': case 'J': case 'k': case 'K': case 'l': case 'L': case 'm':

case 'M': case 'n': case 'N': case 'p': case 'P': case 'q': case 'Q': case 'r': case 'R': case 's': case 'S': case 't': case 'T': case 'v': case 'V': case 'w': case 'W': case 'x': case 'X':

case 'y': case 'Y': case 'z': case 'Z': printf("Mitlaut\n"); break;

case '0': case '1': case '2': case '3': case '4': case '5': case '6': printf("Ziffer\n"); break; default: printf("sonst\n"); } return 0; Was würde bei Eingabe des Zeichens 'a' auf dem Bildschirm ausgegeben, wenn überall das break fehlen würde ? Selbstlaut Mitlaut Ziffer sonst

Alternative Lösung:

#include "stdafx.h" #include "stdio.h" int main(){ char c; int z; printf("Bitte ein Zeicheneingeben\n"); scanf("%c", &c); z = (int)c;

if(z==97||z==65||z==101||z==69|| printf("Dieses Zeichen ist ein Selbstlaut\n"); } else if(z>=65 && z<=90 || z>=97 && z<=122){ Mitlaut\n"); else if(z>=48 && z<=57){ printf("Dieses Zeichen ist eine Ziffer\n");

else{ printf("Dies ist sonst irgend ein Zeichen\n"); } return 0;