Jerzy F. Kotowski1 Informatyka I Wykład 7 STEROWANIE c.d. n switch n Pętle.

Slides:



Advertisements
Podobne prezentacje
Ćwiczenie (1) Dostosuj poniższy program do potrzeb zdefiniowanych w treści programu zaliczeniowego: #include void dodaj(){}; void edytuj(){}; void usun(){};
Advertisements

Podstawy informatyki Informatyka Stosowana Zajęcia nr 2
Programowanie obiektowe
Algorytmy – zapis struktur programowania
Programowanie I Rekurencja.
Języki programowania C++
27/09/ Języki programowania 1 Piotr Górczyński Pętle.
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
formatowanie kodu źródłowego
Instrukcje warunkowe Zajęcia 5.
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Instrukcje Instrukcja : definicja obliczenia i określenie sposobu wykonania tego obliczenia. Program : ciąg instrukcji wykonywanych kolejno od pierwszej.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Podstawy informatyki Wirtotechnologia Grupa: 1A Wydział Inżynierii Metali i Informatyki Przemysłowej Wydział Odlewnictwa Akademia Górniczo – Hutnicza im.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Sprawy organizacyjne 1. Zasady zaliczenia przedmiotu
Instrukcje 1 Definicje wstępne Formalny opis akcji wykonywanej przez komputer nazywamy instrukcją ( statement), Każda instrukcja kończona jest średnikiem.
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
PASCAL (2) dr Anna Kwiatkowska.
Programowanie obiektowe W2
Podstawy programowania
Jerzy F. Kotowski1 Informatyka I Wykład 9 TABLICE PREPROCESOR OPERATORY c.d. (nie tylko binarne)
Podstawy programowania
Podstawy informatyki 2013/2014
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Podstawy informatyki 2013/2014
Podstawy programowania
Podstawy programowania w języku C i C++
Instrukcje sterujące część 2
GOSPODARKA PAMIĘCIĄ, STRUMIENIE (i nie tylko)
Algorytmy i struktury danych
Jerzy F. Kotowski1 Informatyka I Wykład 11 STRUKTURY I UNIE.
PHP: warunki, pętle, switch, break, continue
Pętla do ... While C++ Źródło:
Jerzy F. Kotowski1 Informatyka I Wykład 8 STRUKTURA PROGRAMU n Funkcje n Klasy zmiennych n Projekt.
Programowanie strukturalne i obiektowe
Jerzy F. Kotowski1 Informatyka I Wykład 15 PIERWSZE KROKI.
STEROWANIE Ale nie tylko
C# Platforma .NET CZ.3 Kuba Ostrowski.
Edytor tesktu i skrypty
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
Podstawy języka Instrukcje - wprowadzenie
Wykład 6 Informatyka MPDI 3 semestr JavaScript cd.
Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Temat 8: Pętle.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
Pętle Zajęcia 6.
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Język C/C++ Instrukcje
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Podstawy informatyki Zmienne, stałe Instrukcje sterujące Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Switch. Instrukcja switch Składnia instrukcji: switch (wyrażenie){ case wyrażenie_stałe1: ciąg instrukcji dla wariantu 1; break; case wyrażenie_stałe2:
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
PODSTAWY INFORMATYKI Wykład 3.
Dane, zmienne, instrukcje
Zapis prezentacji:

Jerzy F. Kotowski1 Informatyka I Wykład 7 STEROWANIE c.d. n switch n Pętle

Jerzy F. Kotowski2 KONSTRUKCJA KONSTRUKCJA switch switch switch(zmienna) { case case wyrażenie_stałe1: instrukcja1 break break; case case wyrażenie_stałe2: ……….. default default: break break; } n Zawsze można podstawić do pomocniczej zmiennej n Wyrażenie stałe oblicza kompilator (definicja) n Wyjście poza konstrukcję n Dowolna kolejność n Wszystkie różne n Powinno być n Czasami tu jest najciekawiej

Jerzy F. Kotowski3 przykład 1 switch - przykład 1 x = a % 2; switch(x){ case 0: printf(\nLiczba a jest parzysta); break; case 1: printf(\nLiczba a jest nieparzysta); break;default: printf(\nRatunku! Popsułem się!!); break;} 7_1

Jerzy F. Kotowski4 przykład 2 switch - przykład 2 x = a % 3; switch(x){ case 0: printf(\nLiczba a dzieli się przez 3); break; case 1: case 2: printf(\nLiczba a nie dzieli się przez 3); break;default:break;} 7_2

Jerzy F. Kotowski5 przykład 3 switch - przykład 3 printf(\nCzy masz już dość na dzisiaj?); c = getch();// Wczytanie znaku z klawiatury bez echa switch(c){ case t: case T: printf(\nNo to pa!); getch(); exit(0); // WYJŚCIE case n: case N: printf(\nNo to gramy jeszcze raz!!); getch(); break; default: printf(\n\aChyba jednak masz już dość...);break; } 7_3

Jerzy F. Kotowski6 przykład 4 switch - przykład 4 y = x % 3; switch(y){ case 0: x++; break; case 1: x = 0; y = 1; case 2: x++; y--; default: printf(\nZnowu ja?); break;} n x = 7; n x?, y? n x: 1, y: 0 Zobaczymy napis n x = 8; n x?, y? n x: 9, y: 1 Zobaczymy napis 7_4

Jerzy F. Kotowski7 PĘTLA PĘTLA while while() while(Wyrażenie) Instrukcja n Krok 1 Wyznaczamy wartość wyrażenia Wyrażenie n Krok 2 Jeżeli Wyrażenie jest prawdą sterowanie przechodzi do Kroku 3 a w przeciwnym przypadku wychodzi poza konstrukcję Krok 3 Wykonywana jest Instrukcja. Powrót do Kroku 1 Krok 3 Wykonywana jest Instrukcja. Powrót do Kroku 1

Jerzy F. Kotowski8 PĘTLA przykład 1 PĘTLA while - przykład 1 int n; // wczytanie wartości n printf(\nPodaj n = ); scanf(%d, &n); while(n--)printf(\n%d,n);printf(\n%d,n); n n & w funkcji scanf n n Drugie printf poza pętlą n n Podaliśmy n = 4. Co zobaczymy na ekranie? Podaj n = n n Wniosek: Pętla while(n--) chodzi n razy. Po pętli n: -1 7_5

Jerzy F. Kotowski9 PĘTLA przykład 2 PĘTLA while - przykład 2 int n; // wczytanie wartości n printf(\nPodaj n = ); scanf(%d, &n); while(n--);printf(\n%d,n);printf(\n%d,n); n n Pojawił się średnik n n Podaliśmy n = 4. Co zobaczymy na ekranie? Podaj n = n n Ten przykład to bliskie spotkanie z instrukcją pustą Kilka instrukcji pustych n = 5;;;;; 7_6

Jerzy F. Kotowski10 PĘTLA przykład 3 PĘTLA while - przykład 3 int n; // wczytanie wartości n printf(\nPodaj n = ); scanf(%d, &n); while(--n)printf(\n%d,n);printf(\n%d,n); n n while(--n) n n Podaliśmy n = 4. Co zobaczymy na ekranie? Podaj n = n n Wniosek: Pętla while(--n) chodzi n-1 razy. Po pętli n: 0 7_7

Jerzy F. Kotowski11 PĘTLA przykład 4 PĘTLA while - przykład 4 // obliczanie wartości n! int n, n_silnia; printf(\nPodaj n = ); scanf(%d, &n); n_silnia = n; while(--n) n_silnia *=n; n n_silnia *= n; n_silnia = n_silnia * n; n n_silnia *= n; to samo co n_silnia = n_silnia * n; Niedługo będzie... n n Uwaga!! n się zmieniło!! n n Można tak: int n, n_s, i; printf(\nPodaj n = ); scanf(%d, &n); i = n_s = n; while(--i) n_s *= i; printf(\n%d! = %d, n, n_s); 7_9 7_8

Jerzy F. Kotowski12 PĘTLA PĘTLA do - while do Instrukcja while(); while(Wyrażenie); n Krok 1 Wykonywana jest Instrukcja n Krok 2 Wyznaczamy wartość wyrażenia Wyrażenie Krok 3 Jeżeli Wyrażenie jest prawdą powracamy do Kroku 1. W przeciwnym przypadku wychodzimy poza konstrukcję Krok 3 Jeżeli Wyrażenie jest prawdą powracamy do Kroku 1. W przeciwnym przypadku wychodzimy poza konstrukcję n Wniosek: Pętla while może nie pójść ani razu a pętla do - while pójdzie zawsze przynajmniej raz

Jerzy F. Kotowski13 PĘTLA PĘTLA for for(wyr1; wyr2; wyr3) Instrukcja n Średniki muszą być n - część inicjująca, wykonywana raz n wyr1 - część inicjująca, wykonywana raz n - warunek n wyr2 - warunek n - część modyfiku- jąca n wyr3 - część modyfiku- jąca n - może nie być wykonana ani razu n Instrukcja - może nie być wykonana ani razu n Od tłumaczenia jest jeden wyjątek wyr1;while(wyr2){Instrukcja;wyr3;}

Jerzy F. Kotowski14 PĘTLA przykłady PĘTLA for - przykłady // inicjalizacja tablicy int i, a[10]; for(i=0; i<10; i++) a[i] = i; // inicjalizacja tablicy int i, a[10]; for(i=0; i<10; a[i++] = i); // inicjalizacja tablicy int i, a[10]; i=0;for(;i<10;) a[i++] = i; int i = 0, a[10]; for(;;){ if(i >= 10) break; a[i++] = i; }

Jerzy F. Kotowski15 PĘTLA przykłady PĘTLA for - przykłady // odwracanie tablicy int i, j; float tab[20], kolega; for(i=0, j=19; i<j; i++, j--) { kolega = tab[i]; tab[i] = tab[j]; tab[j] = kolega; } n W przykładzie wystąpił gościnnie (2 x) słynny operator przecinkowy // wyznaczanie wartości n nad k int n, k, n_k, min, i; printf(\nn = ); scanf(%d, &n); printf(k = ); scanf(%d, &k); min = k; // min = min(k,n-k) if (n-k < min) min = n-k; n_k = n; for(i=1; i < min; i++) n_k = n_k * (n - i) / (i + 1); // *** printf(%d nad %d = %d,n,k,n_k); n W instrukcji *** wykorzystano lewostronną łączność mnoże- nia i dzielenia 7_b7_a

Jerzy F. Kotowski16 PĘTLA przykład 6A PĘTLA for - przykład 6A n Alternatywna postać do pętli z przykładu 6 n Alternatywna postać do pętli for z przykładu 6 int r, s; // pomocnicze zmienne n_k = n; r = n - 1; s = 2; while(--min) n_k = n_k * r-- / s++; 7_c

Jerzy F. Kotowski17 SŁOWA KLUCZOWE oraz SŁOWA KLUCZOWE break oraz continue n pozwala na wyskoczenie z wszystkich konstrukcji sterujących n break pozwala na wyskoczenie z wszystkich konstrukcji sterujących n jest używane w kontekście z pętlami. Przerywa bieżacy obieg i zaczyna nowy uprzednio sprawdzając warunek. W pętli wpierw przejście do części modyfikującej. n continue jest używane w kontekście z pętlami. Przerywa bieżacy obieg i zaczyna nowy uprzednio sprawdzając warunek. W pętli for wpierw przejście do części modyfikującej. // sumowanie dodatnich // elementów N elemen- // towej tablicy tab int i, sumator; for(i=0, i<N; i++) { if(tab[i] <= 0) continue; sumator += tab[i]; }

Jerzy F. Kotowski18 KONSTRUKCJA STERUJĄCA i etykiety KONSTRUKCJA STERUJĄCA goto i etykiety n Dobra praktyka dotycząca pisania programów w ję- zyku C polega na unikaniu konstrukcji n Dobra praktyka dotycząca pisania programów w ję- zyku C polega na unikaniu konstrukcji goto n Konstrukcja przydaje się w wyjątkowych sytuac- jach (np. obsługa błędów). n Konstrukcja goto przydaje się w wyjątkowych sytuac- jach (np. obsługa błędów). n W C++ służy do tego spec- jalny mechanizm nazywa- ny obsługą wyjątków. // Przykład wykorzystania // konstrukcji goto if(niepowodzenie) goto error; …………… error: n n dwukropek, średnik n n error - etykieta