3 Przygotował: mgr inż. Maciej Lasota



Podobne dokumenty
Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n", RAND_MAX); return 0; }

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 4

Programowanie w C Wartości pseudolosowe i pomiar czasu

2 Przygotował: mgr inż. Maciej Lasota

INSTRUKCJE REPETYCYJNE PĘTLE

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

Wstęp do Informatyki

Wstęp do Programowania, laboratorium 02

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce.

5 Przygotował: mgr inż. Maciej Lasota

Laboratorium 2: Pętle i instrukcje warunkowe. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

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

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

Instrukcje sterujące. Programowanie Proceduralne 1

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Część 4 życie programu

Niezależne i sterowane źródła napięciowe i prądowe

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

Programowanie strukturalne i obiektowe

Wstęp do programowania

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

lekcja 8a Gry komputerowe MasterMind

Język C - podstawowe informacje

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

INSTRUKCJE REPETYCYJNE PĘTLE

Instrukcje sterujące

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Język C zajęcia nr 5

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

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

I - Microsoft Visual Studio C++

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

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

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

PROGRAMOWANIE w C prolog

Funkcja (podprogram) void

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wstęp do programowania

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); }

Liczby losowe i pętla while w języku Python

Przykłady: x = f( ) + g( ); printf("%d %f\n", ++n, pow(2,n)); a[ i ] = i++; 87. while (wyrażenie) instrukcja

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

Języki programowania wysokiego poziomu. PHP cz.2.

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

Wstęp do programowania

Języki programowania obiektowego Nieobiektowe elementy języka C++

Sieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych

#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 ); }

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

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

Konstrukcje warunkowe Pętle

Spis treści JĘZYK C - TABLICE JEDNOWYMIAROWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05Z

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

Podstawy programowania C. dr. Krystyna Łapin

Programowanie Generowanie danych. Uwagi ogólne

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Programowanie komputerowe. Zajęcia 3

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

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

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Co nie powinno być umieszczane w plikach nagłówkowych:

6 Przygotował: mgr inż. Maciej Lasota

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

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

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

#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 ); }

Język ludzki kod maszynowy

Programowanie w języku. Dla początkujących oraz średnio zaawansowanych programistów wersja: 1.0 ( )

Kontrola przebiegu programu

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

Klasyfikacja typów w C++

Struktura pliku projektu Console Application

Operatory arytmetyczne

Podstawy Programowania C++

1 Funkcje elementarne

Wstęp do programowania

Algorytm. a programowanie -

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Programowanie komputerowe. Zajęcia 1

Język C zajęcia nr 11. Funkcje

Transkrypt:

Laboratorium nr 3 1/8 Język C Instrukcja laboratoryjna Temat: Instrukcje warunkowe, pętle. 3 Przygotował: mgr inż. Maciej Lasota 1) Instrukcje warunkowe. Instrukcje warunkowe pozwalają zdefiniować warianty wykonywania określonego bloku instrukcji programu. W języku C wyróżniamy kilka rodzajów instrukcji warunkowych: IF, IF-ELSE, IF-ELSE-IF, SWITCH (nazywana też instrukcją wyboru). Instrukcja warunkowa IF : if(warunek) Instrukcja warunkowa IF-ELSE : if(warunek) instrukcja1; else instrukcja2; void main() int a; printf("podaj liczbe a: "); scanf("%d",&a);

Laboratorium nr 3 2/8 if (a < 0) printf("liczba a jest liczba ujemna!\n"); exit(0); if ( a > 0) printf("liczba a jest liczba dodatnia!\n"); exit(0); printf("liczba a jest rowna 0 lub nie podales liczby\n"); Instrukcja warunkowa IF-ELSE-IF : if(warunek1) instrukcja1; else if(warunek2) instrukcja2; else if(warunek3) instrukcja3; char c; printf("podaj litere A,B lub C: "); c = getchar(); if (c == 'a') printf("a\n"); else if (c == 'b') printf("b\n");

Laboratorium nr 3 3/8 else if (c == 'c') printf("c\n"); else printf("podales zla litere\n"); return (0); Instrukcja wyboru SWITCH : switch(wyrażenie) case stala1: case stala2: default: char c; printf("podaj znak: "); switch(c = getchar()) case 'a': printf("a\n"); case 'b': printf("b\n");

Laboratorium nr 3 4/8 default: printf("blad\n"); return (0); 2) Instrukcje pętli. Instrukcje pętli umożliwiają powtarzanie określonego bloku instrukcji dowolną ilość razy lub do momentu wystąpienia (spełnienia) określonego warunku. Instrukcja pętli WHILE : while(warunek) Instrukcja pętli DO-WHILE : do while(warunek); Instrukcja pętli FOR : for (wyrażenie początkowe; warunek; inkrementacja)

Laboratorium nr 3 5/8 #include <unistd.h> int licznik=1; while(licznik <= 10) printf("licznik wynosi: %d\n",licznik); licznik++; sleep(2); licznik=1; //licznik=licznik+1 //sleep przyjmuje jako parametr //czas w sekundach while(1) printf("licznik wynosi: %d\n",licznik); if (licznik == 10) licznik++; sleep(2); //licznik=licznik+1 //sleep przyjmuje jako parametr //czas w sekundach return (0);

Laboratorium nr 3 6/8 #include <unistd.h> int licznik=1; int i; while(licznik <= 10) printf("licznik wynosi: %d\n",licznik); licznik++; sleep(2); //licznik=licznik+1 //sleep przyjmuje jako parametr //czas w sekundach for(i=1; i<=10; i++) printf("licznik wynosi: %d\n",i); sleep(2); return(0); //sleep przyjmuje jako parametr //czas w sekundach 3) Funkcje matematyczne. Standardowa biblioteka języka C, zawiera szereg gotowych funkcji służących do wykonywania obliczeń matematycznych. Plik nagłówkowy, w którym znajdują się deklaracje funkcji oraz makr matematycznych to <math.h>. Funkcje matematyczne dostępne w standardowej bibliotece języka C: sin(x); cos(x); tan(x); asin(x); acos(x); atan(x); atan2(x,y); sinh(x); cos(x); tanh(x); sinus x cosinus x tangens x arcus sinus x arcus cos x arcus tangens x arcus tangens x/y sinus hiperboliczny cosinus hiperboliczny tangens hiperboliczny

Laboratorium nr 3 7/8 exp(x); funkcja wykładnicza e^x log(x); logarytm naturalny log10(x); logarytm o podstawie 10 pow(x,y); sqrt(x); ceil(x); floor(x,y); fabs(x); podniesienie x^y pierwiastek z x, x>=0 najmniejsza liczba całkowita nie mniejsza niż x największa liczba całkowita nie większa niż x wartość bezwzględna z x Aby skompilować plik źródłowy, w którym wykorzystujemy funkcje matematyczne należy do kompilatora GCC dodać przełącznik - lm np. gcc -lm -o test test.c 4) Generator liczba pseudolosowych. Generator liczb pseudolosowych (Pseudo-Random Number Generator, lub PRNG) to program lub biblioteka, która na podstawie niewielkiej ilości informacji (ziarno, zarodek, ang. seed) generuje deterministycznie ciąg bitów, który pod pewnymi względami jest nieodróżnialny od ciągu uzyskanego z prawdziwie losowego źródła. Generatory liczb pseudolosowych nie generują ciągów prawdziwie losowych generator inicjowany ziarnem, które może przyjąć k różnych wartości, jest w stanie wyprodukować co najwyżej k różnych ciągów liczb. Przykłady bibliotek napisanych w C/C++ do generowania liczb pseudolosowych: Hasard (C) Boost (C++) GSL (C) http://haypo.hachoir.org/trac/wiki/hasard http://www.boost.org/ http://www.gnu.org/software/gsl/ Standardowa biblioteka języka C w pliku nagłówkowym <stdlib.h> posiada zadeklarowane dwie funkcje służące do generowania liczb pseudolosowych. srand(seed); rand(void);

Laboratorium nr 3 8/8 Funkcja srand() jako parametr przyjmuje seed, czyli tzw. ziarno/zarodek jest to zmienna liczba (unsigned int) na podstawie, której inicjowany jest generator liczb dla nowego ciągu liczb pseudolosowych. Funkcja rand() służy do losowania liczb pseudolosowych, zwraca ona liczbę całkowitą (int) z przedziału między 0 a stałą RAND_MAX. RAND_MAX jest to stała zadeklarowana w pliku nagłówkowym <stdlib.h> wynosi ona co najmniej 32767. #include <time.h> int i,c; /* Uruchamiamy generator liczb pseudolosowych jako parametr podajemy funkcje time(null) zwraca ona czas w sekundach liczony do 1970 roku */ srand(time(null)); for(i=0; i<=9; i++) c = (rand() % 25) + 65; //losowanie liczb //z przedzialu 65 90 // czyli kody ASCII A-Z printf("wylosowana liczba nr [%d]: %d odpowiada jej znak ASCII %c\n",i,c,c); return (0); Aby wygenerować liczbę z dowolnego przedziału wynik funkcji rand() poddajemy operacji modulo np. rand() % 10 - losuje liczby z przedziału od 0 do 9.