Język C zajęcia nr 5

Podobne dokumenty
Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Podstawy Programowania Podstawowa składnia języka C++

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

Instrukcje sterujące

Język C, instrukcje sterujące (laboratorium)

Instrukcje sterujące. Programowanie Proceduralne 1

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

WHILE (wyrażenie) instrukcja;

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

WHILE (wyrażenie) instrukcja;

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Proste programy w C++ zadania

1 Wielokrotne powtarzanie tych samych operacji

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Podstawy Programowania C++

Język C zajęcia nr 11. Funkcje

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Konstrukcje warunkowe Pętle

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Kontrola przebiegu programu

do instrukcja while(wyrażenie);

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

lekcja 8a Gry komputerowe MasterMind

Wstęp do informatyki- wykład 6

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Struktura pliku projektu Console Application

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ

1 Podstawy c++ w pigułce.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

dr inż. Jarosław Forenc

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Wprowadzenie do programowania w języku C

2.8. Algorytmy, schematy, programy

Programowanie - instrukcje sterujące

Wstęp do programowania

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Autor: mgr inż. Sławomir Samolej. Zagadnienie 1. (instrukcja wyboru: switch)

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Podstawy programowania w języku C

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Materiały do zajęć III

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Podstawy Programowania C 02

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Warsztaty dla nauczycieli

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

INSTRUKCJE REPETYCYJNE PĘTLE

Wstęp do informatyki- wykład 7

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Java Podstawy. Michał Bereta

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

KURS C/C++ WYKŁAD 1. Pierwszy program

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Część 4 pętla FOR. Instrukcja pętli iteracyjnej FOR. Postać pętli for jest następująca: a)dla jednej instrukcji wykonywanej przez pętlę.

Priorytety operatorów. Łączność operatorów. Operatory - podsumowanie. Sterowanie wykonaniem programu

Wstęp do Informatyki

Podstawy programowania w języku C i C++

Programowanie w języku C++ Grażyna Koba

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie obiektowe - zadania

INSTRUKCJE REPETYCYJNE PĘTLE

Zmienne, stałe i operatory

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie strukturalne i obiektowe

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

do instrukcja while (wyrażenie);

Ćwiczenia podstawowe, zestaw 5, część 1

1 Podstawy c++ w pigułce.

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Podstawy programowania skrót z wykładów:

Podstawowe elementy programowania strukturalnego. Wbudowane typy danych w C++

Transkrypt:

Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego wyrażenia. Pełne wykorzystanie możliwości instrukcji switch następuje, gdy instrukcja inst jest instrukcją złożoną. Każda z instrukcji składających się na instrukcję złożoną może posiadać etykietę mającą formę: case wyr_stałe : gdzie wyr_stałe jest stałym wyrażeniem, które dla różnych etykiet (przypadków case) ma różne wartości. Jedna z instrukcji w instrukcji złożonej może mieć etykietę: default : Wykonanie instrukcji switch polega na wyznaczeniu wartości wyrażenia wyr, a następnie na porównywaniu tej wartości z wartościami wyr_stałe kolejnych etykiet case. Jeżeli wartość stałego wyrażenia pewnej etykiety jest równa wartości wyrażenia wyr, to od instrukcji związanej z tą etykietą rozpoczyna się sekwencyjne wykonywanie instrukcji składających się na instrukcję złożoną. Jeżeli wartości stałych wyrażeń wszystkich etykiet są różne od wartości wyrażenia wyr, to sekwencyjne wykonywanie instrukcji składających się na instrukcję złożoną rozpoczyna się od instrukcji z etykietą default, a gdy brak jest takiej etykiety, to żadna instrukcja zawarta w instrukcji switch nie jest wykonywana. Sekwencyjne wykonywanie instrukcji zawartych w instrukcji switch zostaje zakończone po osiągnięciu końca bloku lub wykonaniu instrukcji break.

Wprowadź i uruchom program: #include <stdio.h> main() int n; printf("\npodaj liczbe calkowita z zakresu 1..9: "); scanf("%d",&n); switch (n) case 1: printf(" jeden"); case 2: printf(" dwa"); case 3: printf(" trzy"); case 4: printf(" cztery"); case 5: printf(" piec"); case 6: printf(" szesc"); case 7: printf(" siedem"); case 8: printf(" osiem"); case 9: printf(" dziewiec"); default: printf(" Nie rozpoznana liczba"); return 0;

Uwaga: Instrukcja w bloku instrukcji switch może być poprzedzona wieloma etykietami, co pozwala na tworzenie złożonych warunków rozgałęzienia wykonania programu. #include <stdio.h> main() char c; printf("\npodaj jeden znak ASCII: "); scanf("%c",&c); printf("wczytany znak to "); switch (c) case 'a': case 'e': case 'i': case 'o': case 'u': case 'y': printf("mala samogloska"); case 'A': case 'E': case 'I': case 'O': case 'U': case 'Y': printf("wielka samogloska"); case 'b': case 'c': case 'd':

case 'f': case 'g': case 'h': case 'j': case 'k': case 'l': case 'm': case 'n': case 'p': case 'q': case 'r': case 's': case 't': case 'v': case 'w': case 'x': case 'z': printf("mala spolgloska"); case 'B': case 'C': case 'D': case 'F': case 'G': case 'H': case 'J': case 'K': case 'L': case 'M': case 'N': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'V': case 'W': case 'X': case 'Z': printf("wielka spolgloska"); case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': printf("cyfra"); default: printf("nie litera i nie cyfra"); return 0;

Instrukcja break break ; Instrukcja może występować w instrukcji złożonej należącej do instrukcji switch, for, while lub do-while. Wykonanie instrukcji break powoduje natychmiastowe przerwanie wykonywania instrukcji switch, for, while lub do-while, w której ta instrukcja break występuje. Uwaga: Jeżeli instrukcja złożona, w której występuje break, jest zagnieżdżona w innej instrukcji switch, for, while lub do-while, to przerwanie wykonania dotyczy najbardziej wewnętrznej instrukcji switch, for, while lub do-while. Algorytmy iteracyjne Iteracja (pętla) - konstrukcja umożliwiająca wykonanie pewnej części algorytmu więcej niż jeden raz. Algorytm, w którym występuje pętla określa się mianem algorytmu iteracyjnego. Dwa podstawowe rodzaje pętli: a) pętla z licznikiem, b) pętla warunkowa ze sprawdzaniem wartości warunku na początku pętli, ze sprawdzaniem wartości warunku na koocu pętli.

Pętla warunkowa ze sprawdzaniem warunku na początku pętli Instrukcja iteracji while while ( wyr ) inst Instrukcja umożliwia organizowanie pętli poprzez powtarzanie wykonania instrukcji inst. Wykonywane są czynności: 1. Wyliczana jest wartość wyrażenia wyr. 2. Jeżeli jego wartość jest różna od zera, to wykonywana jest instrukcja inst. W przeciwnym przypadku wykonywanie instrukcji while zostaje zakończone. 3. Czynności powtarzane są od kroku 1. Uwaga: Jeżeli instrukcja inst jest instrukcją złożoną, to występująca wewnątrz instrukcja break lub return może zakończyć wykonywanie instrukcji while.

Algorytm Euklidesa: Dla uzyskania największego wspólnego dzielnika nwd dwóch niezerowych liczb naturalnych m oraz n, należy postępować następująco: 1. Jeżeli m jest równe n, to jako nwd przyjąć wartość n i zatrzymać wykonanie algorytmu, w przeciwnym przypadku wykonać krok 2. 2. Jeżeli wartość m jest większa od n, to zastąpić m przez różnicę m-n i wykonać krok 1, w przeciwnym przypadku zastąpić n przez różnicę n-m i wykonać krok 1. Wprowadź i uruchom program realizujący algorytm Euklidesa: #include <stdio.h> main() int k1,k2,p; printf("podaj dwie liczby naturalne: "); scanf("%d%d",&k1,&k2); while(k1!=k2) p= k1>k2? k1-k2 : k2-k1; if(k1>k2) k1=p; else k2=p; printf("najwiekszym wspolnym podzielnikiem jest %d",k1); return 0; KLAWIATURA 432 810 Podaj dwie liczby naturalne: 432 810 Najwiekszym wspolnym podzielnikiem jest 54

Zadania napisz i uruchom programy: 1. Wczytaj z klawiatury dwie liczby całkowite a i b, a następnie znak reprezentujący jeden z dwuargumentowych operatorów arytmetycznych opr. Wypisz wynik operacji a opr b. W przypadku gdy znak nie reprezentuje operatora arytmetycznego, zgłoś komunikat Bledny operator. Sprawdź także, czy w przypadku operatorów / i % nie zachodzi dzielenie przez 0, jeśli tak wypisz odpowiedni komunikat. Wskazówka: zastosuj instrukcje switch i if. 2. Zmodyfikuj program 1 tak, aby działał w pętli obliczając wyniki operacji dla kolejnych par liczb dopóty, dopóki użytkownik zamiast znaku operatora wprowadzi znak q. Wskazówka: zastosuj instrukcję while. Ulepsz program tak, aby nie trzeba było podawać ostatniej pary liczb. 3. Zmodyfikuj program 4 (zajęcia C04) tak, aby funkcjonował dla dowolnych liczb całkowitych typu unsigned long int, wczytując badaną liczbę x z klawiatury w systemie dziesiętnym i podając liczbę cyfr znaczących w zapisie binarnym danej liczby x. Sprawdź zakres liczb typu unsigned long int (materiały C02). Wskazówka: zastosuj instrukcję while.