Wprowadzenie do programowania w języku C
|
|
- Zdzisław Wójcik
- 8 lat temu
- Przeglądów:
Transkrypt
1 Wprowadzenie do programowania w języku C Część piąta Tablice koncepcja, reprezentacja, przetwarzanie Autor Roman Simiński Kontakt siminski@us.edu.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa. Opracowanie to jest chronione prawem autorskim. Wykorzystywanie jakiegokolwiek fragmentu w celach innych niż nauka własna jest nielegalne. Dystrybuowanie tego opracowania lub jakiejkolwiek jego części oraz wykorzystywanie zarobkowe bez zgody autora jest zabronione.
2 Tablice deklaracja, reprezentacja wewnętrzna Co to jest tablica? Tablica jest zmienną złożoną z elementów tego samego typu. Obejmuje ona ciągły obszar pamięci operacyjnej dokładnie tak duży, aby zmieścić wszystkie jej elementy. Termin tablica w języku potocznym jest zmiennikiem sformułowania zmienna tablicowa. Po co się stosuje tablice? Tablice stosuje się wtedy, gdy trzeba zgromadzić wiele obiektów tego samego typu w jednej strukturze danych, i w sposób wygodny przetwarzać je według jednorodnego schematu. Dwie istotne własności tablic (wg. standardu C89): tablica zawsze składa się z ustalonej, i znanej na etapie kompilacji, liczby elementów, liczba elementów tablicy nie ulega zmianie w trakcie działania programu tablice są statyczne. Copyright Roman Simiński Strona : 2
3 Tablice deklaracja, reprezentacja wewnętrzna Deklaracja zmiennych tablicowych Ogólna postać deklaracji tablicy zmiennej tablicowej: typ_elemetu nazwa_tablicy[ <wyraż enie_ stałe> ] wyrażenie_ stałe wyrażenie określające liczbę elementów tablicy, wartość tego wyrażenia musi być znana na etapie kompilacji. Dziesięcioelementowa tablica liczb całkowitych Różne warianty deklaracji C C++ int tab[ 10 ]; poprawne poprawne #define N 10 int tab[ N ]; poprawne poprawne const int N = 10; niepoprawne poprawne int tab[ N ] Kwalifikator typu const może wystąpić z każdą specyfikacją typu. Zmienna z const powinna być zainicjowana ale potem nie może zmieniać wartości. Zmienna z kwalifikatorem const w języku C nie jest traktowana jako stała i nie może być wykorzystywana do określania rozmiaru tablicy. Copyright Roman Simiński Strona : 3
4 Tablice deklaracja, reprezentacja wewnętrzna Reprezentacja tablicy w pamięci operacyjnej Elementy tablicy numerowane są zawsze od 0. Zatem jeżeli N oznacza liczbę elementów tablicy, to ostatni jej element ma numer N - 1. #define N 10 int tab[ N ]; tab Dowoływanie się do elementów tablicy 10 elementów tab[ 0 ] = 1; tab[ N - 1 ] = 5; a = 2 * tab[ 3 ]; int i = 0, j = N 1; a = tab[ i ] + tab [ j ]; W języku C i C++ nie ma żadnych wbudowanych mechanizmów zabezpieczających przed odwoływaniem się do elementów leżących poza zakresem indeksowym tablic! tab[ 12 ] = 10; tab ?? Obszar poza zakresem tablicy! Copyright Roman Simiński Strona : 4
5 Tablice deklaracja, reprezentacja wewnętrzna Tablice wolno inicjalizować na etapie deklaracji: Jeżeli inicjalizowana tablica nie posiada określonego rozmiaru, ostanie on określony na podstawie liczby elementów inicjalizujących. Jeżeli liczba wartości początkowych jest mniejsza od rozmiaru tablicy, to elementy o brakujących wartościach początkowych otrzymują wartość zero (zmienne zewnętrzne, statyczne i automatyczne). Podanie zbyt wielu wartości początkowych jest błędem. Nie ma sposobu na zainicjowanie środkowego elementu bez podania wszystkich wartości pośrednich. Typowa inicjalizacja int tab[ 10 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Rozmiar określony liczbą wartości początkowych int dni_miesiecy[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };` Zbyt mało warości początkowych float przychody[ 12 ] = { 0, 0, 0 }; /* Za mało wartości początkowych */ Copyright Roman Simiński Strona : 5
6 Tablice przetwarzanie Typowe operacje na tablicach Przetwarzanie tablic realizowane jest zwykle z wykorzystaniem instrukcji iteracyjnych. Do przetwarzania tablic najczęściej wykorzystuje się iterację for. #define N 10 int tab[ N ]; int i; Ustawianie wartości wszystkich elementów tablicy, np. zerowanie: Wersja pierwsza: for( i = 0; i < N; i++ ) tab[ i ] = 0; Wersja druga: for( i = 0; i < N; tab[ i++ ] = 0 ) ; Ogólnie, wypełnianie pewnym wzorcem pattern: int pattern = -1; for( i = 0; i < N; tab[ i++ ] = pattern ) ; Copyright Roman Simiński Strona : 6
7 Tablice przetwarzanie Typowe operacje na tablicach, cd.... #define N 10 int tab[ N ]; int i; Wczytywanie danych ze strumienia stdin do tablicy: Wersja pierwsza: char linia[ 80 ]; for( i = 0; i < N; i++ ) { printf( "\n>" ); fgets( linia, 80, stdin ); tab[ i ] = atoi( linia ); } Copyright Roman Simiński Strona : 7
8 Tablice przetwarzanie Typowe operacje na tablicach, cd.... #define N 10 int tab[ N ]; int i; Wczytywanie danych ze strumienia stdin do tablicy: Wersja druga, z wykorzystaniem funkcji wczytaj_liczbe_int: for( i = 0; i < N; i++ ) tab[ i ] = wczytaj_liczbe_int( "\n>" ); Przykładowa realizacja funkcji wczytaj_liczbe_int: int wczytaj_liczbe_int( char komunikat[] ) { char bufor_tekstowy[ 80 ]; } printf( komunikat ); fgets( bufor_tekstowy, 80, stdin ); return atoi( bufor_tekstowy ); Copyright Roman Simiński Strona : 8
9 Tablice przetwarzanie Typowe operacje na tablicach, cd.... #define N 10 int tab[ N ]; int i; Wyprowadzanie danych z tablicy do strumienia stdout: Wersja pierwsza: for( i = 0; i < N; i++ ) printf( "\n%d", tab[ i ] ); Wersja druga: for( i = 0; i < N; printf( "\n%d", tab[ i++ ] ) ) ; Na marginesie... Uwaga na takie konstrukcje: x = tab[ ++i ] + tab[ i ]; tab[ ++i ] = a * ++i; Copyright Roman Simiński Strona : 9
10 Tablice przetwarzanie Typowe operacje na tablicach, cd.... #define N 10 int tab[ N ]; int i; Sumowanie liczb zapisanych w tablicy: Wersja pierwsza: int suma = 0; for( i = 0; i < N; i++ ) suma = suma + tab[ i ]; Wersja druga: int suma; for( i = 0, suma = 0; i < N; suma += tab[ i++ ] ) ; Copyright Roman Simiński Strona : 10
11 Tablice przetwarzanie Typowe operacje na tablicach, cd.... #define N 10 int tab[ N ]; int i; Przykładowe dziwactwo : Wyznaczanie sumy co drugiego, dodatniego elementu tablicy, podzielnego przez 3: int suma; for( i = 0, suma = 0; i < N; i+= 2 ) if( tab[ i ] > 0 ) if( tab[ i ] % 3 == 0 ) suma += tab[ i ]; Ponieważ wyrażenia logiczne w języku C nie są wartościowane kompletnie : int suma; for( i = 0, suma = 0; i < N; i+= 2 ) if( tab[ i ] > 0 && tab[ i ] % 3 == 0 ) suma += tab[ i ]; Copyright Roman Simiński Strona : 11
12 Tablice przetwarzanie Kopiowanie zawartości tablic #define N 5 int a[] = { 1, 2, 3, 4, 5 }; int b[ N ]; int i; Tak w języku C nie wolno: b = a; /* Nie wolno przypisywać do siebie tablic */ Trzeba: for( i = 0; i < N; i++ ) b[ i ] = a[ i ]; Uwaga na niejednakowe rozmiary tablic #define SIZE_A 30 #define SIZE_B 20 int a[ SIZE_A ]; int b[ SIZE_B ]; for( i = 0; i < SIZE_B; i++ ) b[ i ] = a[ i ]; Copyright Roman Simiński Strona : 12
13 Tablice przetwarzanie Kopiowanie zawartości tablic, cd.... Czasem warto napisać funkcję do kopiowania zawartości tablic: void copy_int_table( int d[], int s[], int n ) { int i = 0; for( i = 0; i < n; i++ ) d[ i ] = s[ i ]; } Lub krócej: void copy_int_table( int d[], int s[], int n ) { while( --n >= 0 ) d[ n ] = s[ n ]; } Z tymi parametrami formalnymi to coś nie gra... W języku C nazwy tablic są traktowane w specyficzny sposób. O tym już niedługo. Z tego powody wolno definiować tablicowe parametry formalne bez rozmiaru. Taki parametr przyjmuje do siebie tablicę o dowolnym rozmiarze. Tablice pozornie zachowują się tak, jakby były przekazywane przez zmienną. Copyright Roman Simiński Strona : 13
14 Tablice przetwarzanie Kopiowanie zawartości tablic, rozwiązania alteratywne Ponieważ z definicji tablice to spójne obszary pamięci operacyjnej, można do ich kopiowania użyć funkcji memmove lub memcpy (nagłówek mem.h, zgodne z ANSI C): memmove( b, a, N * sizeof( int ) ); Lub sprytniej: memmove( b, a, N * sizeof( b[ 0 ] ) ); Alternatywnie: memcpy( b, a, N * sizeof( int ) ); Lub sprytniej: memcpy( b, a, N * sizeof( b[ 0 ] ) ); memmove( dest, src, n ); Kopiuje blok n bajtów z lokalizacji src do dest. Lokalizacje te mogą się nakładać. memcpy( dest, src, n ); Kopiuje blok n bajtów z lokalizacji src do dest. Gdy lokalizacje te się nakładają, działanie funkcji jest niezdefiniowane. Na marginesie,alternatywa dla iteracyjnego zerowania tablicy Można do tego wykorzystać funkcję memset : memset( b, 0, N * sizeof( b[ 0 ] ) ); memset( s, c, n ); Wypełnia n pierwszych bajtów obszaru s bajtem o wartości c. Copyright Roman Simiński Strona : 14
15 Łańcuchy znakowe koncepcja, reprezentacja wewnętrzna Łańcuchy znakowe jako tablice znaków ze znacznikiem końca Do reprezentacji łańcuchów znakowych w języku C wykorzystuje się zwykłe tablice znakowe. Tablice takie nie różnią się od innych tablic w języku C, wprowadzono jedynie kilka udogodnień czyniących łatwiejszym manipulowanie takimi tablicami. Podstawowy problem zmienna długość łańcuchów znakowych W języku C przyjęto koncepcję łańcuchów ze znacznikiem końca (ang. null terminated strings). To jest napis a to jego reprezentacja wewnętrzna: T o j e s t n a p i s \0 Fizyczna długość napisu = liczba znaków + 1 Znacznik końca napisu \0 to znak o kodzie 0 Copyright Roman Simiński Strona : 15
16 Łańcuchy znakowe koncepcja, reprezentacja wewnętrzna Deklarowanie i inicjowanie zmiennych łańcuchowych Tablice znakowe można inicjować w zwykły sposób, przewidziany dla tablic: #define N 80 char imie[ N ] = { A, g, a }; /* \0??? */ char imie[] = { A, g, a, \0 }; /* \0!!! */ choć można wykorzystywać wygodniejszą formę: char imie[ N ] = "Aga"; Uwaga powyższe przypisanie wystąpić może jedynie przy definicji zmiennej! Reprezentacja wewnętrzna Literał łańcuchowy : Zmienna imie : A g a \ A g a \ Copyright Roman Simiński Strona : 16
17 Łańcuchy znakowe koncepcja, reprezentacja wewnętrzna Deklaracja łańcucha zainicjowanego napisem pustym char imie[ N ] = { \0 }; char imie[ N ] = ""; Reprezentacja wewnętrzna łańcucha pustego: Zmienna imie: \0 Ustawianie łańcucha pustym w po deklaracji imie[ 0 ] = \0 ; imie = ""; /* Błąd,tak nie wolno */ Copyright Roman Simiński Strona : 17
18 Łańcuchy znakowe typowe operacje Ogólny schemat przetwarzania tablic znakowych Przetwarzanie tablic polega zwykle na przemaszerowaniu zmienna indeksową po tablicy, dopóki nie ma końca napisu oznaczanego znakiem \0 : int i; char s[ N ]; for( i = 0; s[ i ]!= \0 ; i++ ) < tu jakie ś operacje na każdym znaku s[ i ] > Wyprowadzanie napisu do stdout znak po znaku: int i; char s[ N ]; for( i = 0; s[ i ]!= \0 ; i++ ) putchar( s[ i ] ); Albo w krótszej postaci: int i; char s[ N ]; for( i = 0; s[ i ]!= \0 ; putchar( s[ i++ ] ) ) ; Copyright Roman Simiński Strona : 18
19 Łańcuchy znakowe typowe operacje Przetwarzanie z wykorzystaniem funkcji bibliotecznych string.h Do manipulowania tablicami znakowymi opracowano szereg funkcji bibliotecznych (plik nagłówkowy string.h),... większość z nich można łatwo napisać samemu! Funkcja strlen wyznaczanie długości łańucha Rezultatem funkcji strlen jest liczba znaków napisu, przekazanego tej funkcji parametrem. #define N 80 char napis[ N ] = ""; printf( "Liczba znaków w łańcuchu:%s wynosi:%d", napis, strlen( napis ) ); Liczba znaków w łańcuchu: wynosi:7 Alternatywny schemat przetwarzania napisów (z wykorzystaniem strlen): int i, len; char s[ N ]; Uwaga nigdy tak i < strlen( s ) for( i = 0, len = strlen( s ) ; i < len; putchar( s[ i++ ] ) ) ; Copyright Roman Simiński Strona : 19
20 Łańcuchy znakowe typowe operacje Funkcja strlen przykładowe realizacje Iteracja while int strlen( char s[] ) { int len = 0; while( s[ len ]!= '\0' ) len++; } return len; Iteracja for int strlen( char s[] ) { int len; for( len = 0; s[ len ]!= '\0'; len++ ) ; return len; } Copyright Roman Simiński Strona : 20
21 Łańcuchy znakowe typowe operacje Funkcje strupr i strlwr przykładowe realizacje Konwersja - małe litery na duże: strupr, duże litery na małe: strlwr. char a[] = "ALA"; char b[] = "ala"; strlwr( a ); /* Po wywołaniu strlwr zmienna a zawiera napis "ala" */ strupr( b ); /* Po wywołaniu strupr zmienna a zawiera napis "ALA" */ Funkcja strupr void strupr( char s[] ) { int i; for( i = 0; s[ i ]!= '\0'; i++ ) s[ i ] = toupper( s[ i ] ); } Konwersja elementu tablicy, toupper zamienia znak będący parametrem na literę dużą, o ile był literą małą. Funkcja strlwr void strlwr( char s[] ) { int i; for( i = 0; s[ i ]!= '\0'; i++ ) s[ i ] = tolower( s[ i ] ); } Konwersja elementu tablicy, tolower zamienia znak będący parametrem na literę małą, o ile był literą dużą. Copyright Roman Simiński Strona : 21
22 Łańcuchy znakowe typowe operacje Funkcja strcpy koncepcja kopiowania napisów Pamiętamy, że w języku nie można kopiować zawartości tablic wykorzystując operator przypisania. char s1[ 80 ] = ""; char s2[ 20 ]; s2 = s1; /* Tak nie wolno!!! */ Do kopiowania zawartości tablic znakowych używamy funkcji strcpy: strcpy( s2, s1 ); Funkcja strcpy kopiuje zawartość tablicy znakowej s1 do tablicy s2. Kopiowaniu podlegają wszystkie znaki łańcucha s1 (aż do \0), zakłada się, że tablica s2 ma rozmiar wystarczający na pomieszczenie kopiowanych znaków. Funkcja strcpy służy również do kopiowania literałów łańcuchowych: strcpy( s1, "Programowanie " ); strcpy( s2, "w języku C" ); Copyright Roman Simiński Strona : 22
23 Łańcuchy znakowe typowe operacje Funkcja strcpy przykładowe realizacje Funkcja strcpy wersja pierwsza, iteracja for char s1[ 80 ] = ""; char s2[ 20 ]; strcpy( s2, s1 ); s i++ s1 J ę z y k C \ d s2 J ę z y k C \ void strcpy( char d[], char s[] ) { int i; for( i = 0; s[ i ]!= '\0'; i++ ) d[ i ] = s[ i ]; d[ i ] = '\0'; } Ta wersja funkcji strcpy przepisuje znacznik końca napisu z tablicy s do d, jednak dzieje się to poza iteracją, tuż po jej zakończeniu: d[ i ] = '\0'; Copyright Roman Simiński Strona : 23
24 Łańcuchy znakowe typowe operacje Funkcja strcpy przykładowe realizacje, cd.... Funkcja strcpy wersja druga, iteracja for void strcpy( char d[], char s[] ) { int i = 0; while( ( d[ i ] = s[ i ] )!= '\0' ) i++; } Jak to działa? W języku C operator przypisania jest lewostronnie łączny. Pozwala to na pisanie następujących konstrukcji, np.: d[ 0 ] = d[ 1 ] = d[ 2 ] = 0; Konstrukcja: ( d[ i ] = s[ i ] )!= '\0' przypisuje i-ty element tablicy s do i-tego elementu tablicy d. Przypisana wartość jest następnie porównywana (operator!=) ze znacznikiem końca napisu '\0'. Ta wersja funkcji strcpy przepisuje znacznik końca napisu z tablicy s do d w iteracji while. Copyright Roman Simiński Strona : 24
25 Łańcuchy znakowe typowe operacje Co się stanie, gdy tablica docelowa jest za krótka? void main() { char s1[ 5 ] = "AAAA"; char c1 = 'A'; char c2 = 'B'; char s2[ 5 ] = "BBBB"; } strcpy( s2, "XXXXXXXXXXXXXXXXXXXX" ); printf( "\ns1 : %s\nc1 : %c\nc2 : %c\ns2 : %s", s1, c1, c2, s2 ); Gdzie oryginalna zawartość tablicy s1? Co się stało ze zmienną c2? Dlaczego zmienna c1 jest OK? Nigdy nie należy zakładać, że się uda, czyli że tablica docelowa jest wystarczająco długa. Należy szacować, przewidywać, jeszcze raz przewidywać programować defensywnie. Copyright Roman Simiński Strona : 25
26 Łańcuchy znakowe typowe operacje Funkcja strcat przykładowa realizacja Funkcja strcat dołącza zawartość tablicy znakowej s1 do tablicy s2. Kopiowaniu podlegają wszystkie znaki łańcucha s1 (aż do \0), zakłada się, że tablica s2 ma rozmiar wystarczający na pomieszczenie kopiowanych znaków. strcpy( s1, "Programowanie " ); strcpy( s2, "w języku C" ); strcat( s1, s2 ); puts( s1 ); Programowanie w języku C Jak to działa? void strcat( char d[], char s[] ) { int i = 0, j = 0; Znajdź znacznik końca napisu docelowego, zapamiętaj jego pozycje w zmiennej i. } while( d[ i ]!= \0 ) i++; while( ( d[ i++ ] = s[ j++ ] )!= \0 ) ; Przepisz elementy tablicy s do tablicy d. Maszeruj zmienną j od początku tablicy s, zmienną i od pozycji znalezionego wcześniej znacznika końca napisu. Copyright Roman Simiński Strona : 26
27 Łańcuchy znakowe typowe operacje Jak nie dopuszczać do przepełnienia bufora? Biblioteka funkcji operujących na tablicach znaków zawiera funkcje wykonujące operacje analogiczne do przedstawionych uprzednio, pozwalające na kontrolę liczby znaków biorących udział np. w kopiowaniu. Są to np. funkcje: strncpy, strncat, strnset. #define N 10 #define M 80 char s1[ N ]; char s2[ M ] = " jest świetny lecz pełen pułapek"; strncpy( s1, s2, N - 1 ); strncpy( s1, s2, sizeof( s1 ) - 1 ); s1[ N - 1 ] = '\0'; s1[ sizeof( s1 ) - 1 ] = '\0'; puts( s1 ); puts( s1 ); Ciekawostka Funkcja strncpy nie zawsze przekopiuje \0! Często rezultatem funkcji operujących na tablicach są one same. Rezultatem funkcji strncpy jest tablica będąca pierwszym parametrem a więc, w naszym przypadku, s1. strncpy( s1, s2, N - 1 ) [ N - 1 ] = '\0'; s1 Skrócona wersja kopiowania i dopisywania znacznika końca napisu Copyright Roman Simiński Strona : 27
28 Łańcuchy znakowe typowe operacje Funkcja strncpy przykładowa, bezpieczniejsza realizacja Wersja z iteracją while void strncpy_while( char d[], char s[], int n ) { int i = 0; while( ( d[ i ] = s[ i ] )!= '\0' && i < n ) i++; while( i <= n ) d[ i++ ] = '\0'; } Wersja z iteracją for void strncpy_for( char d[], char s[], int n ) { int i = 0; for( ; ( d[ i ] = s[ i ] )!= '\0' && i < n ; i++ ) ; for( ; i <= n ; d[ i++ ] = '\0' ) ; } Copyright Roman Simiński Strona : 28
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoTablice deklaracja, reprezentacja wewnętrzna
Tablice deklaracja, reprezentacja wewnętrzna Tablica jest zmienną złożoną z elementów tego samego typu. Obejmuje ona ciągły obszar pamięci operacyjnej dokładnie tak duży, aby zmieścić wszystkie jej elementy.
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoJęzyki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część druga Przetwarzanie tablic znaków Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim
Bardziej szczegółowoJęzyki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków
Bardziej szczegółowoPodstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część szósta Tablice koncepcja, reprezentacja, przetwarzanie Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoŁAŃCUCHY W JĘZYKU C/C++
ŁAŃCUCHY W JĘZYKU C/C++ Stała tekstowa / łańcuchowa jest tablicą znaków zakończoną znakiem o kodzie: 0 np. stała łańcuchowa: Jestem tekstem... 74 101 115 116 101 109 32 116 101 107 115 116 101 109 0......
Bardziej szczegółowoDANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE
DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE Stała tekstowa / łańcuchowa jest tablicą znaków zakończoną znakiem o kodzie: 0 np. stała łańcuchowa: Jestem tekstem ASCII... J e s t e m t e k s t e m \0...
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści
Bardziej szczegółowoPodstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoWprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część druga Instrukcje sterujące przebiegiem programu Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoWprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część szósta Zmienne wskaźnikowe koncepcja, zastosowania, sztuczki i triki Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoTablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera
Bardziej szczegółowo1 Przetwarzanie tablic znakowych
1 Przetwarzanie tablic znakowych Ćwiczenie to poświęcone jest poznaniu i przetrenowaniu metod przetwarzania tablic znakowych. Tablice znakowe w języku C i C++ umożliwiają przetwarzanie napisów. Umiejętność
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoint tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania
Rok akademicki 2013/2014, Pracownia nr 10 2/20 Informatyka 1 Tablica elementów ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu Politechnika Białostocka - Wydział Elektryczny Elektrotechnika,
Bardziej szczegółowoĆwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:
Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji
Bardziej szczegółowoJęzyki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część ósma Tablice struktur, pliki struktur Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w
Bardziej szczegółowoPodstawy programowania 1
Podstawy programowania 1 Krzysztof Grudzień kgrudzi@kis.p.lodz.pl Wykład nr 2 1 Plan spotkań Wskaźniki Tablice jednowymiarowe & wska źniki. Programowanie w C. Wikibooks 2 Co to jest wskaźnik?? Wskaźnik
Bardziej szczegółowoJęzyki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie
Bardziej szczegółowoOperacje na łańcuchach znaków
Operacje na łańcuchach znaków wer. 6 z drobnymi modyfikacjami Wojciech Myszka 2014-02-09 16:32:23 +0100 Łańcuch znaków 1. Z łańcuchów znaków korzystamy powszechnie. 2. Najprostszy przykład: p r i n t f
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część jedenasta Reprezentacja i przetwarzanie plików Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część dziewiąta Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoLaboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje
Bardziej szczegółowoTablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2
Tablice wielowymiarowe Przykład tablica 2-wymiarowa Tak naprawdę nie istnieją w C! Tak naprawdę C i Java dopuszczają tworzenie tablic tablic tablica 2-wymiarowa = tablica (zwykłych) tablic tablica 3-wymiarowa
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 05 1 / 15 Plan wykładu 1 Biblioteka
Bardziej szczegółowoStałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Bardziej szczegółowoTablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 9 - sem.iii Dr inż. M. Czyżak Język ANSI C tablice znaków Tablice znaków (łańcuchy) Tablice znaków stanowią specjalny rodzaj tablic o budowie ułatwiającej
Bardziej szczegółowoJęzyki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Tablice koncepcja, deklaracje, podstawowe zastosowania Tablice
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoJęzyki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Tablice a zmienne wskaźnikowe Nazwa tablicy jako wskaźnik na
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowoiii. b. Deklaracja zmiennej znakowej poprzez podanie znaku
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 5. Stałe i zmienne znakowe. Tablice. Wskaźniki do tablic. Operacje na wskaźnikach. Instrukcja switch, case. Wyrażenie przecinkowe. Funkcje
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 7 strlen size_t strlen(char const *s); Oblicza długość napisu wskazywanego przez s Przykładowy
Bardziej szczegółowoWprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część trzecia Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów
Bardziej szczegółowoWykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe
Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 7- sem.iii M. Czyżak Język C tablice znaków Tablice znaków (łańcuchy) Tablice znaków stanowią specjalny rodzaj tablic o budowie ułatwiającej przetwarzanie
Bardziej szczegółowoInformatyka 1. Plan dzisiejszych zajęć. zajęcia nr 11. Elektrotechnika, semestr II rok akademicki 2008/2009
Informatyka 1 zajęcia nr 11 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Łańcuchy znaków 2. Wprowadzanie i wyprowadzanie znaków w i łańcuchów
Bardziej szczegółowoLaboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania
Bardziej szczegółowotablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
Bardziej szczegółowowykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,
, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer
Bardziej szczegółowoInicjacja tablicy jednowymiarowej
TABLICE C++ Inicjacja tablicy jednowymiarowej typ_komórek_tablicy nazwa_tablicy [ ilość elementów tablicy ] ; np.: int tablica[1000]; czyli tablica, która może przechowywać tysiąc elementów typu całkowitego,
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami
Bardziej szczegółowoStruktury czyli rekordy w C/C++
Struktury czyli rekordy w C/C++ Wprowadzenie do programowania w języku C struktury. pola bitowe, unie Struktury (rekordy) są złożonymi zmiennymi, składającymi się z elementów różnych typów zwanych polami,
Bardziej szczegółowoTablice, funkcje, wskaźniki - wprowadzenie
Tablice, funkcje, wskaźniki - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 4 19 listopada 2018 (Wykład 4) Tablice, funkcje, wskaźniki - wprowadzenie 19 listopada 2018 1 / 37 Outline 1 Tablice
Bardziej szczegółowoWykład 6. Operacje na łańcuchach znakowych
Wykład 6. Operacje na łańcuchach znakowych 1. Łańcuch znaków jako tablica Do przechowania łańcucha znaków służy tablica znakowa. W kolejnych pozycjach tej tablicy są pamiętane kolejne znaki. Ostatnim znakiem
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami
Bardziej szczegółowoWstęp do wskaźników w języku ANSI C
Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoWskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
Bardziej szczegółowomain( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!
Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja
Bardziej szczegółowoTABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;
Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Pracownia nr 9 (20.01.2012) dr inż. Jarosław Forenc Rok
Bardziej szczegółowoSpis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1D300 017 (studia stacjonarne)
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoJęzyki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
Bardziej szczegółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
Bardziej szczegółowoTemat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Bardziej szczegółowoPętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Bardziej szczegółowoTablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119
Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek
Bardziej szczegółowoStruktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.
Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania
Bardziej szczegółowoPodstawy Programowania. Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki
Podstawy Programowania Wykład IV Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: specyfikacja
Bardziej szczegółowoTablice. int rozmiar; cout << Jaki ma być rozmiar tabeli? ; cin >> rozmiar; { int tablica[rozmiar]; /* TU JEST ŹLE */... }
Tablice grupa obiektów tego samego typu tablica tablica ciąg obiektów tego samego typu, zajmujący ciągły obszar w pamięci korzyść zamiast wielu definicji poszczególnych obiektów jedna wspólna; odniesienia
Bardziej szczegółowoKURS C/C++ WYKŁAD 6. Wskaźniki
Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można
Bardziej szczegółowoBiblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Bardziej szczegółowoGhost in the machine
Operacje na pami eci i odrobina I/O Zak lad Chemii Teoretycznej UJ 8 stycznia 2007 Funkcje operujace Wstep do operacji I/O na plikach 1 Operacje na pami eci 2 Funkcje operujace 3 Wst Funkcje operujace
Bardziej szczegółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
Bardziej szczegółowoWprowadzenie do programowanie obiektowego w języku C++
Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowo1 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
1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne
Bardziej szczegółowoPlik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF.
Pliki w C++ Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Z każdym strumieniem związany jest wskaźnik bieżącej
Bardziej szczegółowoTablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
Bardziej szczegółowoWskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Bardziej szczegółowoWyklad 7 Funkcje (c.d.). Tablice jednowymiarowe znaków
Wyklad 7 Funkcje (c.d.). Tablice jednowymiarowe znaków Nie wolno definicji funkcji zagniezdzac w ciele innej funkcji! Funkcje bez parametrów musza korzystac ze zmiennych globalnych, jesli zachodzi potrzeba
Bardziej szczegółowoProgramowanie w C Typ wskaźnikowy do typu znakowego i operacje na łańcuchach
Programowanie w C Typ wskaźnikowy do typu znakowego i operacje na łańcuchach Artur Opaliński (pokój E112) e-mail: (p. wykład administracyjny) URL: (p. wykład administracyjny) Treść wykładu Podstawowe funkcje
Bardziej szczegółowoPodstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
Bardziej szczegółowoWykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Bardziej szczegółowoLaboratorium 6: Dynamiczny przydział pamięci. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Dynamiczny przydział pamięci dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 15 maja 2015 1. Wprowadzenie Instrukcja poświęcona jest dynamicznemu przydziałowi i zwalnianiu pamięci w
Bardziej szczegółowoProgramowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako
Bardziej szczegółowoJęzyki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Bardziej szczegółowoSpis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 1 Kod przedmiotu: EZ1C200 010 (studia niestacjonarne)
Bardziej szczegółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Bardziej szczegółowoReprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1
Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1 ASCII The American Standard Code for Information Interchange, 1968 r. 7 bitów, liczby z zakresu 0-127
Bardziej szczegółowoSpis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowo