Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

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

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

Język ludzki kod maszynowy

1 Podstawy c++ w pigułce.

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

Programowanie strukturalne i obiektowe

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

2 Przygotował: mgr inż. Maciej Lasota

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

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

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

1 Podstawy c++ w pigułce.

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

Programowanie strukturalne język C - wprowadzenie

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Języki i metody programowania. Omówienie języków C, C++ i Java

#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 C - podstawowe informacje

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

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Języki i metodyka programowania. Wprowadzenie do języka C

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

1. Wprowadzanie danych z klawiatury funkcja scanf

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wstęp do Programowania, laboratorium 02

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Zmienne, stałe i operatory

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

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

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

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

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

Wstęp do programowania. Wykład 1

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

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

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

( wykł. dr Marek Piasecki )

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

Wstęp do programowania

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

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

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Język C zajęcia nr 11. Funkcje

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Microsoft IT Academy kurs programowania

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Języki programowania - podstawy

Proces tworzenia programu:

Podstawy Programowania.

Biblioteka standardowa - operacje wejścia/wyjścia

Architektura komputerów

Pliki. Informacje ogólne. Obsługa plików w języku C

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

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

Podstawy programowania w języku C

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Część 4 życie programu

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

PROGRAMOWANIE w C prolog

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Pracownia Komputerowa wykład VI

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy Programowania. Wykład 1

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Podstawy Programowania

Podstawy programowania - 1

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

ROZDZIAŁ 2. Operatory

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Powtórka algorytmów. Wprowadzenie do języka Java.

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

dr inż. Jarosław Forenc

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Wstęp do programowania 1

MATERIAŁY DO ZAJĘĆ II

Podstawy programowania (1)

Podstawy programowania w języku C i C++

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Programowanie w języku C++

ECLIPSE wnioski z dwóch pierwszych laboratoriów

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

Transkrypt:

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia Krzysztof Banaś Podstawy programowania 1

Programowanie Programowanie typowe kroki zapis kodu źródłowego w pliku tekstowym kompilacja usuwanie błędów składniowych uruchomienie testowanie Wsparcie narzędzi, w tym systemu operacyjnego: edytor tekstu kompilator środowiska tworzenia oprogramowania debugger profiler Konwencje stosowane w różnych środowiskach Krzysztof Banaś Podstawy programowania 2

Pierwszy program w C /* korzystanie z biblioteki komentarze... */ #include <stdio.h> // USES // funkcja - "odpowiednik" algorytmu // funkcja "main" - punkt wejścia, obecny w każdym programie // konkretna funkcja main: // brak danych wejściowych, brak danych wyjściowych, // wszystko jest efektem ubocznym void main(void ) // nawiasy klamrowe wyróżniają grupy instrukcji - tutaj treść funkcji "main" { // wcięcie, konwencje zapisu // printf - interakcja z systemem operacyjnym // standardowe wejście, standardowe wyjście, napis, znak nowej linii printf("hello, world\n"); // średnik } Krzysztof Banaś Podstawy programowania 3

Wejście/wyjście Obsługa konkretnego urządzenia wejścia/wyjścia jest realizowana przez system operacyjny Na poziomie języka (C i innych) pojawiają się abstrakcje umożliwiające korzystanie z wejścia/wyjścia bez znajomości szczegółów technicznych urządzeń Powszechną i użyteczną abstrakcją jest traktowanie interakcji z urządzeniem wejścia/wyjścia jako przesyłania strumieni znaków podstawowy zestaw znaków (ASCII) nie obejmuje polskich liter rozszerzone zestawy znaków (np. UTF) są obsługiwane przez nowsze kompilatory pojedynczy znak UTF może zajmować więcej miejsca niż pojedynczy znak ASCII (jeden bajt) Krzysztof Banaś Podstawy programowania 4

Wejście/wyjście Język C posługuje się pojęciami standardowego wejścia i standardowego wyjścia standardowym urządzeniem wejścia jest zazwyczaj klawiatura standardowym urządzeniem wyjścia jest zazwyczaj terminal w ramach graficznych interfejsów wykonywany program jest powiązany z konkretnym terminalem brak terminala może zaburzać działanie programu podstawowe funkcje obsługi strumieni wejścia i wyjścia pozwalają odczytać lub zapisać pojedynczy znak: getchar() uruchamia procedurę systemu operacyjnego pobierającą pojedynczy znak ze standardowego wejścia putchar() uruchamia procedurę systemu operacyjnego wypisującą pojedynczy znak na ekranie (w okienku) terminala Krzysztof Banaś Podstawy programowania 5

Wejście/wyjście Oprócz pobierania i wypisywania pojedynczych znaków, standard C udostępnia szereg operacji na napisach (ciągach znaków) i liczbach printf(...) wypisuje ciąg znaków zgodnie z wzorcem formatowania przesyłanym jako jeden z argumentów (jedna z danych wejściowych) nazwa printf pochodzi od określenia (print formatted output) printf("...") wypisuje napis zawarty pomiędzy znakami cudzysłowu na ekranie terminala scanf(...) pobiera (odczytuje) ze standardowego wejścia dane zgodnie z wzorcem formatowania przesyłanym jako jeden z argumentów (jedna z danych wejściowych) i wiele innych Krzysztof Banaś Podstawy programowania 6

Wejście/wyjście Informacje o wykorzystywanych funkcjach bibliotecznych zawarte są w tzw. plikach nagłówkowych plikiem nagłówkowym zawierającym informacje o funkcjach wejścia/wyjścia jest plik stdio.h Informacje o realizowanych funkcjach zawarte w plikach nagłówkowych dołączane są do kodu źródłowego (formalnie wklejane) za pomocą dyrektywy #include Dzięki informacjom z plików nagłówkowych kompilator wie czy funkcje zostały poprawnie wykorzystane w programie Skompilowany kod źródłowy nie zawiera jeszcze skompilowanego kodu funkcji bibliotecznych Skompilowany kod funkcji bibliotecznych dołączany jest do ostatecznego programu na etapie linkowania Krzysztof Banaś Podstawy programowania 7

Proces programowania konsolidacja kod źródłowy > [ kod pośredni > ] kod binarny konsolidacja (linkowanie) łączenie różnych plików zawierających wstępnie skompilowany kod m.in. biblioteki, w tym systemowe możliwe rodzaje konsolidacji statyczna tworzony plik wykonywalny zawiera wszystkie potrzebne funkcje konsolidacja statyczna częściowo uniezależnia od detali systemu operacyjnego dając kod bardziej przenośny dynamiczna plik wykonywalny zawiera informację o wymaganych funkcjach, które są dołączane w trakcie działania programu konsolidacja dynamiczna produkuje kod o mniejszym rozmiarze Krzysztof Banaś Podstawy programowania 8

Tworzenie i wykonanie kodu Krzysztof Banaś Podstawy programowania 9

Programy = algorytmy + struktury danych Przebieg typowego programu: wczytanie danych wejściowych program rezerwuje miejsce na dane wczytanie odbywa się przez wywołanie funkcji, których działanie zależy od sprzętu i systemu operacyjnego realizacja przetwarzania realizacja algorytmu wyrażonego w kodzie źródłowym instrukcjami operującymi na danych w kodzie binarnym i języku asemblera instrukcje zamienione są na zestawy rozkazów procesora zwrócenie wyniku, danych wyjściowych poprzez wywołanie funkcji, których działanie zależy od sprzętu i systemu operacyjnego Istotna rola przechowywania danych (w pamięci operacyjnej) w trakcie wykonania programu Krzysztof Banaś Podstawy programowania 10

Programowanie Jak zapisać dane w pamięci operacyjnej? typy danych (1, 5, 123456789, 2.6, 1/3, 2,34*10 12, 1.9*10 15 )? Typ danych ujęcie abstrakcyjne zestaw możliwych wartości, reprezentacja zestaw możliwych operacji do wykonania na obiektach danego typu Typy danych ujęcie uproszczone wbudowane typy danych języka programowania, przykład C: znaki (char) jednobajtowe liczby całkowite liczby całkowite (int) rozmiar zależny od systemu (16, 32, 64 bity) liczby rzeczywiste (zmiennoprzecinkowe) pojedynczej precyzji (float) 32 bity, 4 bajty podwójnej precyzji (double) 64 bity, 8 bajtów wartości logiczne: true, false (od C99, wymaga stdbool.h) zapisywane jako wartości całkowite (false==0, true==1) Krzysztof Banaś Podstawy programowania 11

Tablica kodów ASCII (7 bitów) Krzysztof Banaś Podstawy programowania 12

Zapis binarny Pozycyjne systemy liczbowe: dziesiętny, dwójkowy, szesnastkowy Przekształcanie do postaci binarnej i z postaci binarnej Zapis liczb naturalnych kolejność bajtów (big endian, little endian) Zapis liczb całkowitych ujemnych i dodatnich ze znakiem (problem podwójnego zera) zakres ( 2 n 1 +1, 2 n 1 1) z zapisem od podstawy 2 n (zakres ( 2 n 1, 2 n 1 1) problem 0 (zapis stosowany dla wykładnika liczb zmiennoprzecinkowych) w systemie uzupełnień zakres ( 2 n 1, 2 n 1 1), 0 jako wszystkie bity zerowe Krzysztof Banaś Podstawy programowania 13

Zapis binarny Zapis liczb rzeczywistych zapis ułamków rozszerzenie systemu pozycyjnego dwójkowego np. liczba 1.38 i jej zapis dwójkowy z czterema bitami po przecinku: 1.0110 (zapis z obcięciem 1.38 = 1.0110 + 0.005) problem skończonej dokładności (np. liczba 1.0110 i brak liczb pomiędzy 1.3125, 1.375, 1.4375) pojecie cyfr znaczących przykład powyżej: jedna lub dwie zapis wielkich i małych liczb notacja wykładnicza ( naukowa ) liczba = znak * mantysa * podstawa wykładnik 2,34*10 12, 1.9*10 15 odpowiedniość przesuwania przecinka i zmiany wykładnika dokładność zależna od liczby bitów mantysy (ok. 10 bitów na 3 cyfry znaczące) Krzysztof Banaś Podstawy programowania 14

Zapis binarny Zapis liczb rzeczywistych formaty zmiennoprzecinkowe IEEE 754 pojedyncza precyzja, SP 32 bity (znak + 23 bity mantysy + 8 bitów wykładnika) podwójna precyzja, DP 64 bity (znak + 52 bity mantysy + 11 bitów wykładnika) mantysa znormalizowana (brak zapisu bitu przed przecinkiem) zakres dla liczb dodatnich: SP: od 1.2x10 38 do 3.4x10 38, DP: od 2.2x10 308 do 1.8x10 308 dokładność w cyfrach znaczących: SP 6 do 9, DP 15 do 17 operacje na liczbach zmiennoprzecinkowych IEEE 754 dodatkowa dokładność w trakcie realizacji operacji pułapki i wyjątki (nadmiary, niedomiary, błędy operacji) wartości specjalne (+/ 0, +/ nieskończoność, NaN) Krzysztof Banaś Podstawy programowania 15

Programowanie Dane: stałe (z nazwą lub bez) zmienne (na razie tylko z nazwą) Nazwy zmiennych (i stałych) mogą zawierać litery, cyfry, znak podkreślenia _ nie mogą być słowami kluczowymi języka nie mogą zaczynać się od cyfry duże litery są różne od małych powinny ułatwiać zrozumienie programu: np. rok_urodzenia, SredniaOcena itp. konwencje: od znaków _ często zaczynają się nazwy zmiennych w bibliotekach stałe często mają nazwy z samych dużych liter inne: np. rozróżnienie argumentów i zmiennych lokalnych Krzysztof Banaś Podstawy programowania 16

Nazwy zmiennych i słowa kluczowe C słowa kluczowe (keywords): auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while + słowa zaczynające się od _ (np. _Bool) nazwy w aplikacjach powinny stosować własne konwencje nazwy mogą składać się z różnych składników, z których np. pierwszy określa program: mpp_... (mój pierwszy program itd. np., mpp_liczba_obiektów) Krzysztof Banaś Podstawy programowania 17

Programowanie Kod źródłowy zawiera instrukcje Instrukcje mogą być wyrażeniami złożonymi z: stałych (1, 2.0, 'a', "napis", 037 (==31), 0x1f (==31)) nazw zmiennych i stałych, ale także funkcji operatorów Operator związany jest z jednym lub dwoma, rzadko z trzema argumentami produkuje wynik dla argumentów określonego typu wynik posiada ściśle określony typ zasady użycia operatorów określają możliwe typy argumentów i wyniku definicje typów określają możliwość stosowania konkretnych operatorów Krzysztof Banaś Podstawy programowania 18

Operatory Podstawowe operatory: przypisanie (też jest operatorem i zwraca wynik...: typ lewy argument wartość po przypisaniu a = 1; b = a+2; // wyrażenie po lewej stronie i obliczane wyrażenie jednoargumentowe operatory arytmetyczne: +,, ++, 3, a, c++, k operatory arytmetyczne: +,, *, /, % a+b, c h*k, 4*n, d/1.0, m%7; // zasady łączności operatory relacji: <, >, <=, >=, ==,!= (wynik jako liczba całkowita) a<b, c >= d, f==10, wartosc_logiczna!= false operatory logiczne: &&, (wynik jako liczba całkowita) a<b && c>=d, d==7 d <= 4 / /kolejność obliczania złożone operatory przypisania: +=, *=, (także dla innych operatorów) a += 2, d *= 4 // wyrażenie po lewej stronie i obliczane wyrażenie jednoargumentowe operatory logiczne:! (negacja) Krzysztof Banaś Podstawy programowania 19

Operatory Zasady języka określają priorytety operatorów (siłę wiązania z argumentami) kierunek odczytywania argumentów Kolejność wykonywania operacji w wyrażeniu wynika z: priorytetów operatorów użycia nawiasów Krzysztof Banaś Podstawy programowania 20

Operatory Konwersje typów: jawna konwersja ma postać: (nowy_typ) wartość: int a = (int) 3.5; float f = (float) d; // double d = 0.1; istnieje możliwość dokonywania przez kompilator niejawnej konwersji przy przypisaniu (a także dla innych operatorów) int a = 3.5; float f = 0.1; // 0.1 double, 0.1f float dla operatorów dwuargumentowych niejawna konwersja sprowadza oba do wspólnego typu, tak aby nie utracić precyzji zapis kodu może oznaczać konieczność konwersji tracącej dokładność kompilator może zgłosić ostrzeżenie taka konwersja nie stanowi błędu składni konwersja może oznaczać utratę dokładności (zaokrąglenia), czasem może także prowadzić do zupełnie błędnych wyników niejawne konwersje mogą zmniejszać czytelność kodu, ukrywać intencje programisty Krzysztof Banaś Podstawy programowania 21

Podstawowe typy zmiennych #include <stdio.h> // USES int main(void) // zwrot kodu błędu lub sukcesu (0) { // definicje (deklaracje informacje o nazwie i typie + rezerwacja int n; char c; // obszaru w pamięci) // inicjowanie n = 1/3; // instrukcja przypisania c = 'a'; // definicja z inicjowaniem float f = 1.0/3.0; double d = 1.0/3.0; // zapis // d = f; efekt? // możliwe notacje dla liczb zmiennoprzecinkowych printf("liczby i znaki: %c, %7d, %20.15f, %20.15lf\n", c, n, f, d); return(0); // obsługa błędów - temat rzeka } Krzysztof Banaś Podstawy programowania 22

Operacje na zmiennych Problemy dla notacji z ograniczoną dokładnością (przykłady dla 4 cyfr znaczących) problemy z dokładnością: ile bitów potrzeba żeby dokładnie zapisać liczbę 0.1? problemy z arytmetyką x * ( 1/x ) 1 dla 135 spośród pierwszego tysiąca liczb naturalnych przy zapisie z pojedynczą precyzją a + b = a (dla b>0 ale znacznie mniejszego od a) co z 1/((a+b) a)? 0.005+0.005+10 brak łączności i rozdzielności operacji przydatność poprawy dokładności w trakcie dokonywania obliczeń rozwiązanie niektórych problemów za pomocą zmiany algorytmu Krzysztof Banaś Podstawy programowania 23

Problem skończonej precyzji Przykładowe wskazówki postępowania z liczbami zmiennoprzecinkowymi, dla uniknięcia błędów wynikających ze zbyt małej precyzji: sumować najpierw małe, potem duże liczby najpierw mnożyć, potem dzielić nie porównywać liczb tylko ich różnicę z małą wartością double wartosc, wzorzec; // tak samo dla float // obliczanie wartości if( wartosc!= wzorzec ) {...} #define TOLERANCJA 1e-9 // tolerancja może być inna dla double i float if( fabs( wartosc wzorzec ) <= TOLERANCJA ) {...} Krzysztof Banaś Podstawy programowania 24

Formatowane wejście/wyjście Podstawy stosowania funkcji printf: pierwszy argument określa sposób formatowania kolejne argumenty podają dane do wydruku mogą to być zmienne lub stałe format to sposób konstruowania napisu zadany bezpośrednio napis (łańcuch znaków) znaki ASCII, znaki sterujące (\t, \n), znaki UTF (uwaga!) jak w programie "hello" symbolicznie definiujący reprezentację zmiennych typów liczbowych %d, %f, %lf, %c, %s %x.ylf x rozmiar napisu, y liczba miejsc po przecinku (np. %20.12lf) Krzysztof Banaś Podstawy programowania 25

Formatowane wejście/wyjście Podstawy użycia funkcji scanf argumenty podobne jak dla funkcji printf napis będący wzorcem formatowania lista argumentów pasujących do symboli określających wstawienie zmiennej określonego typu %d, %f, %lf, %c, %s i inne podobnie jak dla printf argumentami na liście są zawsze adresy, miejsca wstawienia odczytywanych wartości zmiennych scanf posiada precyzyjne zasady wczytywania wartości zmiennych zgodnie z wzorcem znaki odstępu, tabulacji, nowej linii są pomijane najprościej, najwygodniej i najbezpieczniej jest korzystać ze scanf wyłącznie do odczytania jednej wartości zmiennej zgodnie z najprostszym wzorcem: scanf("%d", &i); scanf("%lf", &a); Krzysztof Banaś Podstawy programowania 26