Pierwsze programy
Aplikacje konsolowe Strumień Strumień wejściowy wyjściowy Aplikacja Przekierowanie strumienia na drukarkę
Pierwszy program
Składniki programu Słowa kluczowe: Zmienne (własności) Operatory main, for, while, if, else.. Zmienne (własności) Liczby całkowite, rzeczywiste, litery (znaki)… Operatory +, -, *, /, <, &, |, ~, !… Funkcje (Metody) ANSI C, funkcje użytkownika
Wielkość liter, instrukcje, średniki C, C++, Java rozróżniają wielkości liter terminEgzaminu TerminEgzaminu – to różne identyfikatory w Uwaga: w Pascalu i np. Basic-u to takie same identyfikatory. Języki te nie rozróżniają wielkości liter Każda instrukcja kończy się średnikiem printf(”ALA” ); X = Y + 123; if (x == y) z = x + y;
Instrukcje złożone, komentarze Instrukcja złożona, to jedna lub kilka instrukcji prostych zgrupowanych poprzez nawiasy klamrowe. { instrukcja1; instrukcja2; instrukcja3; } Komentarz w jednej linii: printf(”To jest instrukcja”); // a to komentarz Komentarz w kilku liniach /* … */ : /* to jest komentarz w kilku liniach */ Komentarze są pomijane przez kompilator.
Włączanie plików #include Dyrektywa #include włącza tekst z pliku do strumienia kompilacji. Jest używana zwykle w celu włączania informacji o deklaracjach zmiennych oraz definicjach stałych. Pliki nagłówkowe standardowych bibliotek są włączane z wykorzystaniem nawiasów <> #include <stdio.h> Można włączać tekst z dowolnego pliku tekstowego: #include ” mojplik.h”
Typy danych – wstęp int x; Dane, którymi będziemy posługiwać się w programie muszą być zadeklarowane. C (C++) i Pascal są językami z tzw. ścisłą typizacją. Oznacza to między innymi, że każda zadeklarowana zmienna lub stała musi mieć podany typ. int x; Odwzorowanie danych w pamięci Typ określa ogólny kształt, wielkość i własności danych. Dzięki określeniu typu kompilator Może: określić i ewentualnie zarezerwować miejsce w pamięci sprawdzać poprawność przypisań dokonywać niezbędnych konwersji danych
Kilka typów podstawowych Liczby całkowite: char short int Liczby rzeczywiste (zmiennoprzecinkowe): float double
printf() Funkcja: printf() <stdio.h> wysyła sformatowane dane do standardowego strumienia wyjściowego int printf ( tekst_sterujący , argument_1 , argument_2 , . . . ) ; tekst sterujący stała łańcuchowa zawierająca: - zwykłe znaki (które są kopiowane na ekran) - kody formatujące kolejnych argumentów: %c - pojedynczy znak %s - łańcuch znaków %d - liczba dziesiętna ze znakiem %f - liczba zmiennoprzecinkowa (notacja dziesiętna) %e - liczba zmiennoprzecinkowa (notacja wykładnicza) %g - liczba zmiennoprzecinkowa (krótszy z formatów %f %e) %u - liczba dziesiętna bez znaku
Funkcja: scanf() <stdio.h> odczytuje dane ze standardowego strumienia wejściowego w/g zadanego formatu i zapamiętuje je pod zadanymi adresami pamięci int scanf ( tekst_sterujący , adres_1 , adres_2 , . . . ) ; tekst sterujący jest to stała łańcuchowa (w podwójnych cudzysłowach) zawierająca instrukcję jak traktować kolejne dane wczytywane ze strumienia (jakie typy zmiennych są pod adresami adres_1, adres_2, ... ) Kody formatujące (podobne jak dla printf() ): %c - pojedynczy znak %s - łańcuch znaków %d - liczba dziesiętna ze znakiem %f lub %e - liczba zmiennoprzecinkowa %u - liczba dziesiętna bez znaku %x - liczba w kodzie szesnastkowym (bez znaku) %o - liczba w kodzie ósemkowym (bez znaku) l - przedrostek stosowany przed: d u x o (long int) l - przedrostek stosowany przed: f e (double) L - przedrostek stosowany przed: f e (long double) & - operator adresowania (zwraca adres zmiennej podanej po operatorze)