Informatyka I - Wykład ANSI C dr inż. Jerzy Kotowski Instytut Informatyki Automatyki i Robotyki I-6 Wydział Elektroniki W-4 Politechnika Wrocławska pok.

Download Report

Transcript Informatyka I - Wykład ANSI C dr inż. Jerzy Kotowski Instytut Informatyki Automatyki i Robotyki I-6 Wydział Elektroniki W-4 Politechnika Wrocławska pok.

Informatyka I - Wykład
ANSI C
dr inż. Jerzy Kotowski
Instytut Informatyki Automatyki i Robotyki I-6
Wydział Elektroniki W-4
Politechnika Wrocławska
pok. 219 C-3
tel. 071 320 38 52
[email protected]
http://diuna.ict.pwr.wroc.pl
Informatyka I
1
Literatura
• Brian W. Kernigham, Dennis M. Ritchie, Język C, WNT,
Warszawa 1988
• Brian W. Kernigham, Dennis M. Ritchie, Język ANSI C,
WNT 1994
• Claude Delennoy; Ćwiczenia z języka C, WNT 1993
Reguły zaliczenia przedmiotu
21100E
Semestr I
ECTS: 6
Egzamin: 01 luty 2006 godz. 0915-1100 s. 201-205 C-1
09 luty 2006 godz. 0915-1100 s. 201 C-1
Informatyka I
2
Dlaczego C?
•
•
1972, Dennis M. Ritchie, Bell Laboratories, New Jersey
Pierwsze opracowanie dla systemu UNIX na minikomputer DEC PDP-11
• Kryteria jakości języka programowania
•
•
•
•
•
•
- wysoki poziom
łatwość projektowania
- niski poziom
optymalność
- łatwość przenoszenia oprogramowania
uniezależnienie się od typu maszyny oraz środowiska (DOS, UNIX)
•
Problem wielokryterialny - najbliższy utopii (ideału) jest język C
W C pisze się systemy operacyjne, kompilatory innych języków (również
języka C)
Informatyka I
3
Podstawowe cechy języka C
- język ogólnego stosowania
- prostota wyrażeń
- nowoczesne sterowanie
- nowoczesne struktury danych
- bogaty zestaw operatorów
Informatyka I
4
Szczególne cechy języka C:
- wskaźniki
- przekazywanie argumentów funkcjom przez kopiowanie
- przekazywanie argumentów funkcjom przez referencję
- rekurencja (funkcja może wywołać samą siebie)
- słabo określone typy danych ( np. liczby typu char,
brak boolean itp.)
- brak kontroli indeksów tablic w czasie pracy programu
samochód wyścigowy bez hamulców
Informatyka I
5
Wady (zdaniem twórcy):
- źle określone priorytety operatorów
- istnienie różnych wersji języka
American National Standard Institute => ANSI
Microsoft
=>
Quick C, Microsoft C
Borland =>
Turbo C, Borland C
Sposób postępowania
- Napisać program źródłowy
- Skompilować (uzyskać kod maszynowy)
- Uruchomić program maszynowy
Informatyka I
6
#include <stdio.h>
void main(void)
{
printf("\nAla ma kota.\n");
}
Każdy program napiany w języku C składa się z segmentów
noszących nazwę funkcji, opisujących żądane operacje procesu obliczeniowego (
w przykładzie jest to funkcja main)
Nazwy funkcji są praktycznie dowolne (za wyjątkiem słów
zastrzeżonych)
Program rozpoczyna działanie od początku funkcji main
Początek i koniec segmentu {..} (odpowiednik begin i end w Pascalu)
Wywołanie każdej funkcji musi zawierać nawiasy (..). Nawiasy muszą
być nawet wtedy, gdy funkcja nie posiada argumentów
Słowo kluczowe void. Obsługa stosu.
"...." - stała tekstowa
\n - stała znakowa
Informatyka I
7
Przykład
int power(int x, int n)
/* podnies x do potegi n */
{
int i,p=1;
for(i=1;i<=n;i++)
p*=x;
return p;
}
void main(void)
/* testowanie funkcji power */
{
int i=0;
while(i<10)
{
printf("%d
%d",i,power(2,i));
i++;
}
}
Analiza funkcji main
1.
2.
3.
4.
5.
6.
7.
/* ... */ - komentarz
int i=0; - deklaracja typu zmiennej z
równoczesnym przypisaniem wartości
początkowej
Pętla while
Wydruk wartości poprzez funkcję printf
"%d %d" - format wydruku
i++; - operator inkrementacji
Każda instrukcja kończy się średnikiem
Analiza funkcji power
1.
2.
3.
4.
Funkcja zwraca wartość typu int
Funkcja ma dwa argumenty typu int
Funkcja ma dwie zmienne lokalne i,p zmienne i w funkcji main i w funkcji
power nie mają z sobą nic wspólnego!
Pętla for
Można napisać return(p);
Informatyka I
8