Podstawy Programowania. Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki
|
|
- Daria Duda
- 7 lat temu
- Przeglądów:
Transkrypt
1 Podstawy Programowania Wykład IV Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki Robert Muszyński ZPCiR IIAiR PWr Zagadnienia: specyfikacja funkcji, operacje wejścia i wyjścia na plikach, formatowane wejście i wyjście, struktury sterujące, rekurencja, niebezpieczeństwa rekurencji, wskaźniki, tablice, funkcje operujące na tablicach, argumenty funkcji a wskaźniki, arytmetyka wskaźników, rzutowanie. Copyright c Robert Muszyński Niniejszy dokument zawiera materiały do wykładu na temat podstaw programowania w językach wysokiego poziomu. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może być kopiowany wyłącznie w całości, razem ze stroną tytułową. Skład FoilTEX
2 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 1 Specyfikacja funkcji Specyfikacja powinna zawierać komplet informacji, niezbędnych do napisania poprawnego wywołania funkcji. A wśród nich: (a) co dana funkcja robi, w tym również określenie wartości, którą wylicza i zwraca, (b) znaczenie wszystkich jej argumentów, (c) warunki, które muszą być spełnione, aby funkcja działała poprawnie, np. przedział dopuszczalnych wartości argumentów, oraz (d) opis trwałych zmian dokonywanych przez funkcję, takich jak: zmiana wartości zmiennych globalnych(!), stanu plików zewnętrznych, informacje wyświetlane na standardowe wyjście, itp.
3 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 2 Zapis specyfikacji warunki PRE i POST Specyfikacja często przybiera postać odpowiednich komentarzy. PRE określają wymagania, które muszą być spełnione, aby funkcja działała poprawnie. POST opisują zmiany, które nastąpiły w wyniku zadziałania funkcji. Przykładowo: PRE: program wymaga podania wartości w przedziale [0, 21] POST: program zwraca liczbę szczęśliwych dni do końca roku
4 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 3 Warunki PRE i POST PRE: wartość parametru N musi być zawarta w przedziale [0,100] PRE: parametry A, B, C muszą spełniać warunek istnienia rozwiązań rzeczywistych równania kwadratowego: B B - 4 A C >= 0 oraz A! = 0 PRE: parametr Oper musi mieć jedną z wartości: +, -, *, / PRE: stałe globalne MinWart i MaxWart muszą spełniać zależność MinWart <= MaxWart PRE: zmienna plikowa f1 musi być związana z przygotowanym do zapisu plikiem zewnętrznym (wykonane fopen w trybie append ) POST: parametry X1, X2 przyjmują wartości pierwiastków równania kwadratowego zadanego parametrami A, B, C POST: wartością funkcji jest wpisana przez użytkownika z klawiatury liczba z przedziału [0,N] lub liczba 1, jeśli użytkownik wpisał na klawiaturze liczbę spoza tego przedziału POST: na pliku zewnętrznym związanym ze zmienną plikową PLIK została zapisana linia zawierająca wartości parametrów X1, X2, X3
5 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 4 Operacje wejścia i wyjścia na plikach Do plików odwołujemy się poprzez zmienną wskaźnikową typu FILE FILE *plik; każdy wykorzystywany plik musi zostać otwarty w odpowiednim trybie funkcją fopen FILE *fopen(char *nazwa, char *tryb); która jest zdefiniwana w nagłówku stdio, w programie przykładowe wywołanie funkcji fopen może mieć postać plik = fopen("kubus.txt", "r"); możliwe tryby: "r" czytanie, "w" pisanie, "a" dopisywanie w przypadku błędu funkcja fopen zwraca wartość NULL, do wczytania znaku z pliku służy funkcja int getc(file *plik), która zwraca kolejny znak ze strumienia wskazywanego przez plik lub EOF, by zapisać znak do pliku wskazywanego przez plik należy użyć funkcji int putc(int znak, FILE *plik), która zwraca wartość tego znaku lub EOF jako sygnał wystąpienia błędu,
6 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 5 Operacje wejścia i wyjścia na plikach cd. jako plik można użyć standardowych stdin, stdout i stderr, by zamknąć otwarty strumień danych należy się posłużyć funkcją fclose int fclose(file *plik); która zwraca 0 w przypadku pomyślnego zamknięcia strumienia lub EOF w przeciwnym razie, większość systemów operacyjnych nakłada ograniczenie na liczbę jednocześnie otwartych plików w jednym programie, wszystkie operacje wejścia i wyjścia są buforowane, użycie funkcji fclose opróżnia bufor, funkcja fclose jest wywoływana automatycznie dla wszystkich jeszcze otwartych plików, gdy program kończy się normalnie.
7 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 6 Operacje wejścia i wyjścia na plikach przykład #include<stdio.h> int main(){ /* kopiowanie pliku na standardowe wyjscie */ FILE *plik; void kopiuj(file *, FILE *); if ((plik=fopen("kubus.txt", "r")) == NULL){ printf("kopiuj: nie moge otworzyc kubusia"); return 1; else { kopiuj(plik,stdout); fclose(plik); return 0; /* kopiuj: kopiuje zawartosc pliku wej do pliku wyj */ void kopiuj(file *wej, FILE *wyj){ int znak while ((znak = getc(wej))!= EOF) putc(znak, wyj);
8 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 7 Formatowane wejścia i wyjścia na plikach Przy formatowanym czytaniu z i pisaniu do plików możemy korzystać z funkcji fscanf i fprintf int fscanf(file *plik, char *format,...) int fprintf(file *plik, char *format,...) Wywołanie printf(...) jest równoznaczne z fprintf(stdout,...) Wywołanie scanf(...) jest równoznaczne z fscanf(stdin,...) By wysłać komunikat na stderr należy posłużyć się funkcją fprintf fprintf(stderr, "%s: blad pisania do stdout\n", program); fprintf(stderr, "%s: nie moge otworzyc %s\n", program, nazwa);
9 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 8 Struktury sterujące: Iteracje a rekurencja bezpośrednie następstwo, wybór warunkowy, iteracja ograniczona, iteracja nieograniczona (warunkowa). Inna metoda tworzenia powtórzeń rekurencja. Rodzaje rekurencji (rekursji): Rekurencja bezpośrednia zdolność funkcji do wywołania samej siebie. Rekurencja pośrednia wzajemne wywoływanie się dwóch lub większej liczby funkcji.
10 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 9 Rekurencja a iteracje int silnia(int n;) /* Funkcja wylicza rekurencyjnie */ /* wartosc silni. */ /* UWAGA: dla n <= 0 zwraca 1 */ { if (n <= 1) return 1; else return n * silnia(n-1); int silnia(int n;) /* Funkcja wylicza iteracyjnie */ /* wartosc silni. */ /* UWAGA: dla n <= 0 zwraca 1 */ { int wynik = 1; while (n > 1) { wynik *= n; n--; return wynik;
11 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 10 złożoność obliczeniowa Niebezpieczeństwa rekurencji int fib(int n;) /* Funkcja wylicza rekurencyjnie liczby */ /* Fibonacciego. UWAGA: n musi byc >= 0 */ { if (n == 0) return 0; else if (n == 1) return 1; else return fib(n-1) + fib(n-2); Diagram wywołań dla n=5: problem stopu
12 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 11 Wskaźniki Pamięć zorganizowana jest zazwyczaj w ciąg kolejno numerowanych komórek Adres obiektu (zmiennej) podaje jednoargumentowy operator adresu (referencji) & p = &c Teraz zmienna p wskazuje na zmienną c. Zmienna p jest wskaźnikiem. By odwołać się do wartości zmiennej wskazywanej przez wskaźnik p należy użyć operatora odwołania pośredniego (wyłuskania, dereferencji), oznaczanego symbolem * zm = *p /* rownowazne zm = c */ *p = cos if (*p == c)... /* zawsze prawdziwe */ By zadeklarować zmienną wskaźnikową również należy się posłużyć operatorem * int x = 1, y = 2; int *ip; /* ip jest wskaznikiem do obiektow typu int */ ip = &x; /* teraz ip wskazuje na x */ y = *ip; /* y ma teraz wartosc 1 */ *ip = 0; /* x ma teraz wartosc 0 */ ip = &y; /* teraz ip wskazuje na y */ *ip = 0; /* y ma teraz wartosc 0 */
13 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 12 Wskaźniki cd Gdy wskaźnik ip wskazuje na zmienną całkowitą x, to *ip może wystąpić wszędzie tam, gdzie może wystąpić x *ip = *ip +1; Jednoargumentowe operatory & i * wiążą silniej niż operatory arytmetyczne, tak więc, by zwiększyć zmienną wskazywaną przez ip można także napisać *ip += 1; ++*ip; (*ip)++ /* *ip++ zwiekszy wartosc wskaznika */ Wskaźniki są zwykłymi zmiennymi int x, *ip, *iq; ip = &x; /* teraz ip wskazuje na x */ iq = ip; /* teraz takze iq wskazuje na x */ Wiemy więc już, dlaczego w funkcji scanf używaliśmy konstrukcji z operatorem adresu &, postaci &zmienna
14 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 13 Tablice Tablica jednowymiarowa N elementowa tab[0] tab[1] tab[2] tab[n-1] Deklaracja tablicy ma postać tab[i] prosta zmienna int oceny[10]; /* dziesiecioelementowa tablica liczb int */ By odwołać się do elementu tablicy można napisać oceny[1] = 5; /* element 1 tablicy oceny ma wartosc 5 */ i = 5; oceny[i] = 3; /* element 5 tablicy oceny ma wartosc 3 */ oceny[i++] = 1; /* element 5 tablicy oceny ma wartosc 1 */ oceny[i] = 4; /* element 6 tablicy oceny ma wartosc 4 */ oceny[++i] = 0; /* element 7 tablicy oceny ma wartosc 0 */
15 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 14 #define NSTUDENTOW 200 /* calkowita liczba studentow */ int main() { int Grupa[NSTUDENTOW]: int stud, min, max, srednia, suma; /************************************************************/ suma = 0; min = 10; max = 0; for (stud = 0; stud < NSTUDENTOW; stud++) { printf("prosze podac zaliczenie dla studenta %d",stud); scanf("%d",&(grupa[stud])); /* mozna to zrobic ladniej */ suma += Grupa[stud]; if (Grupa[stud] > max) max = Grupa[stud]; if (Grupa[stud] < min) min = Grupa[stud]; srednia = suma / NStudentow;
16 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 15 Tablice jednowymiarowe a wskaźniki Nazwa tablicy reprezentuje położenie jej początkowego elementu jest wskaźnikiem na ten element: nazwa_tablicy &nazwa_tablicy[0] *oceny = 2; /* element 0 tablicy oceny ma wartosc 2 */ *(oceny+2) = 3; /* element 2 tablicy oceny ma wartosc 3 */ elementy tablicy mogą być wskazywane przez zmienne wskaźnikowe odpowiedniego typu int *ptr; /* ptr jest wskaznikiem do obiektow typu int */ ptr = &oceny[0]; /* ptr wskazuje na 0. element tablicy oceny */ ptr = oceny; /* jak powyzej tylko prosciej */ x = *ptr; /* zawartosc oceny[0] zostaje skopiowana do x */ x = *(ptr+1); /* zawartosc oceny[1] zostaje skopiowana do x */ x = *(++ptr); /* jw, tyle ze teraz ptr pokazuje na oceny[1] */ x = *ptr++; /* x ma wart. oceny[1], ptr pokazuje na oceny[2]*/
17 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 16 Proste operacje na tablicach Przy wykonywaniu operacji na tablicach należy pamiętać, że: pierwszy element tablicy w języku C ma indeks 0, nazwa tablicy reprezentuje położenie jej początkowego elementu, w języku C nie jest sprawdzana poprawność (zakres) indeksów! Zainicjowanie elementów tablicy #define ROZMIAR 100 /* Rozmiar tablicy danych */ int tablica[rozmiar], i;. for(i = 0; i < ROZMIAR; i++) tablica[i] = 0; Wypisanie wszystkich elementów tablicy for(i = 0; i < ROZMIAR; i++) printf("tablica[%2d] = %5d\n", i, tablica[i]);
18 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 17 Funkcje operujące na tablicach #define ROZMIAR 10 void WczytajTablice(double tablica[]){ int i; printf("podaj wartosci elementow tablicy \n"); for(i = 0; i < ROZMIAR; i++){ printf("tab[%2d] = ", i+1); scanf("%f", &tablica[i]); void WyswietlTablice(double tablica[]){... void DodajTablice(double wej_1[], double wej_2[], double wynik[]){ int i; for(i = 0; i < ROZMIAR; i++) wynik[i] = wej_1[i] + wej_2[i]; int main(void){ double A[ROZMIAR], B[ROZMIAR], C[ROZMIAR]; WczytajTablice(A); WyswietlTablice(A); WczytajTablice(B); DodajTablice(A, B, C); WyswietlTablice(C);
19 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 18 Funkcje operujące na tablicach cd. void KopiujNapis(char wej[], char wyj[]) { /* wersja z indeksowaniem tablic */ int i=0; while ((wyj[i] = wej[i])!= \0 ) i++; void KopiujNapis(char *wej, char *wyj) /* naglowki rownowazne! */ { /* wersja wskaznikowa 1 */ while ((*wyj = *wej)!= \0 ){ wej++; wyj++; void KopiujNapis(char *wej, char *wyj) { /* wersja wskaznikowa 2 */ while ((*wyj++ = *wej++)!= \0 );
20 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 19 Tablice a wskaźniki przydział pamięci Widzieliśmy, że w deklaracji nagłówka funkcji napisy char wej[] char *wej są równoważne. Jednakże, gdy zadeklarujemy char tab[] = "To jest string."; char *ptr = "Jak rowniez to."; tab jest tablicą, której zawartość jest zainicjalizowana określonymi znakami, której nie można zmienić jako zmiennej, ale której wszystkie pozycje znakowe mogą być dowolnie zmieniane. ptr jest zmienną wskaźnikową zainicjalizowaną wskaźnikiem na napis znakowy. Wartość tej zmiennej wskaźnikowej można zmieniać dowolnie, lecz zawartości pozycji znakowych nie (napis jest tablicą stałą, przydzieloną w pamięci stałych).
21 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 20 Tablice a wskaźniki przydział pamięci cd. Tak więc, przy rzeczonych deklaracjach char tab[] = "To jest string."; char *ptr = "Jak rowniez to."; mamy co następuje: tab[1] = ptr[1]; /* poprawne kopiowanie znakow */ *(tab+1) = *(ptr+1); /* rowniez poprawne */ ptr[1] = tab[1]; /* kopiowanie znakow NIEDOZWOLONE */ *(ptr+1) = *(tab+1); /* rowniez NIEDOZWOLONE */ tab = ptr; /* to przypisanie jest NIEDOZWOLONE */ ptr = tab; /* poprawne, choc gubi pamiec */
22 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 21 Wskaźniki a argumenty funkcji void zamien(int x, int y) /*!!!!!!!!! Z L E!!!!!!!!!!! */ { /* zamiana wartosci argumentow */ int tmp; tmp = x; x = y; y = tmp; void zamien(int *px, int *py) /*!!!!!! D O B R Z E!!!!!!!! */ { /* zamiana wartosci argumentow */ int tmp; tmp = *px; *px = *py; *py = tmp; Wywołanie: zamien(&a, &b); przy int a, b;
23 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 22 Arytmetyka wskaźników Wskaźniki stanowią dane typu wskaźnikowego, który jest podobny do typu liczb całkowitych. Pod wskaźnik można podstawić wartość, wartość wskaźnika można wyświetlić funkcją printf. char c, *cp; int i, *ip; ip = 0; /* inicjalizacja wartoscia 0 */ ip = &i; /* inicjalizacja poprawna wartoscia wskaznikowa */ printf("ip = %d\n", ip); Wartość wskaźników można powiększać lub zmniejszać, powodując, że wskaźnik wskazuje na następne/poprzednie elementy względem wskazywanego przed zmianą wartości cp = &c; cp += 1; /* cp wskazuje do nastepnego elementu po c */ ip += 1; /* ip wskazuje do nastepnego elementu po i */ Wartość liczbowa wskaźnika cp zwiększyła się o 1, natomiast wskaźnik ip zwiększył się być może o 4 (dokładniej: o liczbę bajtów przypadającą na zmienną typu int, która może być różna na różnych systemach (sizeof)).
24 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 23 Arytmetyka wskaźników cd. Do poprawnych operacji wskaźnikowych należą: przypisanie wskaźników do obiektów tego samego typu przypisanie wskaźnikowi wartości zero (NULL) przyrównanie wskaźnika do zera (NULL) dodawanie lub odejmowanie wskaźnika i liczby całkowitej odejmowanie bądź porównywanie dwóch wskaźników do elementów tej samej tablicy Wszystkie inne operacje na wskaźnikach są nielegalne dodawanie do siebie wskaźników ich mnożenie, dzielenie, przesuwanie, składanie z maskami dodawanie do nich liczby typu float lub double nie wolno nawet (z wyjątkiem typu void *) wskaźnikowi do obiektów jednego typu przypisywać bez rzutowania wskaźnika do obiektów innego typu
25 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 24 Rzutowanie Zadaniem rzutowania jest konwersja danej jednego typu na daną innego typu. Konwersja może być niejawna (domyślna konwersja przyjęta przez kompilator) lub jawna (podana explicite przez programistę). Przykłady konwersji niejawnej: int i = 42.7; /* konwersja z double do int */ float f = i; /* konwersja z int do float */ double d = f; /* konwersja z float do double */ unsigned u = i; /* konwersja z int do unsigned int */ Do jawnego wymuszenia konwersji służy jednoargumentowy operator rzutowania (typ), np.: double d = 3.14; int pi = (int) d; /* konwersja z double do int */ d = (double) pi; /* konwersja z int do double */ Nigdy nie należy stosować rzutowania by uciszyć kompilator.
26 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 25 Rzutowanie cd. Rzutowanie może prowadzić do utraty informacji: int i; char c; aczkolwiek nie zawsze: int i; char c; c = i; i = c; i = c; c = i; By poeksperymentować z rzutowaniem można posłużyć się konstrukcjami w rodzaju: int i = 17; float f = 22.5; printf ("i bez rzutowania jako float %f\n", i); printf ("i z rzutowaniem jako float %f\n", (float) i); printf ("f bez rzutowania jako int %d\n", f); printf ("f z rzutowaniem jako int %d\n", (int) f);
27 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki 26 Zagadnienia podstawowe Podsumowanie 1. Wskaż elementy, które powinna zawierać specyfikacja funkcji. 2. Czy wewnątrz warunków PRE i POST umieszcza się opis działania funkcji? 3. Czy w części PRE specyfikacji funkcji powinna być podana informacja o tym, jakiego typu funkcja zwraca wartość? 4. Czy warunek POST: wszystkie parametry funkcji musza byc dodatnie jest poprawny? 5. Jaka wartość zostanie zwrócona przez funkcję fopen, jeśli użytkownik nie ma prawa do odczytu wskazanego w jej argumencie pliku? 6. Jakie są konsekwencje nie zamknięcia funkcją fclose otwartego w programie strumienia danych? 7. W jaki sposób można sprawdzić wartość kolejnego znaku występującego w pliku tak, aby w dalszej części programu było możliwe jego ponowne odczytanie? 8. Wymień zalety iteracji i rekurencji. 9. Czy istnieje możliwość, aby dwie zmienne wskazywały na to samo miejsce w pamięci? 10. Czy zapis int &x; jest prawidłowy? 11. Czy dla #define LICZBA 10 możliwe jest przypisanie x = &LICZBA? 12. Czy odwołania do i-tego elementu tablicy jednowymiarowej t postaci t[i] oraz *(t+i) są zawsze równoważne?
28 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki Wskaż różnice pomiędzy przekazywaniem zmiennej jako argumentu do funkcji poprzez jej wartość a poprzez wskaźnik na nią. Podaj wady i zalety każdego z rozwiązań. Zagadnienia rozszerzające 1. W jaki sposób można podać ścieżkę do pliku w funkcji fopen (względną, bezwzględną)? 2. W jaki sposób sprawdzić, jaki błąd spowodowało niepowodzenie otwarcia pliku lub operacji wejściawyjścia? 3. Czy poprawna jest instrukcja fclose(stdout);? 4. Czy można dowolny algorytm iteracyjny zapisać w formie rekurencyjnej? A na odwrót? 5. Jakie trudności, poza określeniem warunku stopu, mogą się pojawić podczas wykorzystywania rekurencji? 6. Rozróżnia się rekurencje zwykłą i ogonową czym one się od siebie różnią? 7. Czy istnieje możliwość zdefiniowania wskaźnika na void? Jeśli tak, to w jakim celu można to wykorzystać? 8. Jakie mogą być skutki rzutowania zmiennej o mniejszym rozmiarze na zmienną o rozmiarze większym? A większej na mniejszą? Zadania 1. Napisz program, który we wskazanym pliku policzy liczbę znaków, słow (jednostki oddzielone od siebie białymi znakami) oraz linii.
29 Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki Napisz program, który we wskazanym pliku znajdzie linie, które zawierają podany wzorzec. 3. Napisz funkcję void UsunZnak(char *napis, char znak) usuwającą wszystkie znaki znak z napisu napis. 4. Stwórz iteracyjną i rekurencyjną wersję programu wyliczającego n-ty element ciągu arytmetycznego. 5. Wczytaj do tablicy n liczb. Korzystając ze wskaźników znajdź największą z nich. 6. Napisz program umożliwiający wczytanie stopnia wielomianu i współczynników stojących przy zmiennej, a następnie wyliczający wartości wielomianu dla wprowadzanych wartości tej zmiennej. Uwzględnij możliwość zapisywania wyników do pliku. 7. Dwuwymiarową tablicę można wykorzystać m.in. do zapisania planszy do gry w wilka i owce (takiej jak w warcabach). Napisz program, w którym użytkownicy (gracze) na przemian mogliby wykonywać ruchy pionków na takiej planszy, wpisując początkowe i końcowe numery wiersza i kolumny.
Podstawy 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
Podstawy Programowania
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
Biblioteka 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
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Język C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Argumenty wywołania programu, operacje na plikach
Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują
Tablice, 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
Wstę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()
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
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Wskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Wstę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,
Programowanie w językach wysokiego poziomu
Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie
TABLICE 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
Tablice, 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
tablica: 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
KURS 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
Funkcje i tablice. Elwira Wachowicz. 23 maja 2013
Funkcje i tablice Elwira Wachowicz elwira@ifd.uni.wroc.pl 23 maja 2013 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Funkcje i tablice 23 maja 2013 1 / 22 Największy wspólny dzielnik: algorytm Euklidesa Problem:
Wskaź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
> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017
> C++ wskaźniki Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 >??? Co to jest WSKAŹNIK? ++ wskaźniki 2 / 20 >??? Co to jest WSKAŹNIK? To po prostu ADRES
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
Wskaźniki. Programowanie Proceduralne 1
Wskaźniki Programowanie Proceduralne 1 Adresy zmiennych Sterta 1 #include 2 3 int a = 2 ; 4 5 int main ( ) 6 { 7 int b = 3 ; 8 9 printf ( " adres zmiennej a %p\n", &a ) ; 10 printf ( " adres
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
int 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,
Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
Rekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Operacje wejścia/wyjścia odsłona pierwsza
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Funkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Podstawy 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
Ję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.
Ghost 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
METODY 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ę
Język C, tablice i funkcje (laboratorium)
Język C, tablice i funkcje (laboratorium) 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.
Ję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
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Funkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/
Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura
Podstawy 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
utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
2 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
Podstawy 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
Podstawy 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
Temat: 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,
Ję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
Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
Pliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Laboratorium 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
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Wskaźniki, funkcje i tablice
, funkcje i tablice Zak lad Chemii Teoretycznej UJ 20 listopada 2008 wielowymiarowe 1 2 3 4 wielowymiarowe, funkcje i tablice Czym sa wskaźniki? Plan wielowymiarowe Zmienne wskaźnikowe wskazuja na inne
Pliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych. Może posiadać określone atrybuty, a odwołanie do niego odbywa się poprzez nazwę. Każdy plik ma skończoną
część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia
Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy
Podstawy Programowania. Składnia wyrażeń i instrukcji, złożoności obliczeniowej, operacje wejścia i wyjścia, definicja
Podstawy Programowania Wykład III Składnia wyrażeń i instrukcji, złożoność obliczeniowa, operacje wejścia i wyjścia, funkcje Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: składnia wyrażeń
Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,
ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Proste programy w C++ zadania
Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna
Języki programowania. Karolina Mikulska-Rumińska Pokój 573, tel Konsultacje wtorek 9-10.
Języki programowania Karolina Mikulska-Rumińska E-mail: karolamik@fizyka.umk.pl Pokój 573, tel. 3346 Konsultacje wtorek 9-10. Pliki Dwa rodzaje plików: Tekstowe, Binarne Aby otworzyć plik należy najpierw
WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
Wskaź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
ZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
IX. Wskaźniki.(3 godz.)
Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje
Tablice 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.
Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:
Rozdział 1 Obsługa plików W językach C pliki powiązane są ze strumieniami i pracuje się na nich podobnie jak na innych strumieniach. W języku C do operacji na plikach służą funkcje z biblioteki stdio.h,
Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje
Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w
Tablice 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).
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał
Pę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
Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:
Wskaźniki nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja
Techniki Programowania wskaźniki
Techniki Programowania wskaźniki Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Wskaźniki Dla typu T zapis T* oznacza
Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:
5 Tablice Tablica jest zestawem obiektów (zmiennych) tego samego typu, do których można się odwołać za pomocą wspólnej nazwy. Obiekty składowe tablicy noszą nazwę elementów tablicy. Dostęp do nich jest
Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim
Struktury, unie, formatowanie, wskaźniki
Struktury, unie, formatowanie, wskaźniki 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12, na rzecz swoich 143209 poddanych uchwalił dekret o 20 procentowej
Tablice 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
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok
Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Typy wyliczeniowe Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Służą do łatwiejszej kontroli nad stałymi Ustawianie parametrów o ściśle określonym zbiorze wartości
PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ
Zak lad Chemii Teoretycznej UJ 26 listopada 2007 wielowymiarowe 1 2 wielowymiarowe 3 Typ tablicowy Plan wielowymiarowe Tablica Zajmujacy spójny obszar w pamieci zestaw zmiennych (obiektów) tego samego
Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37
Programowanie w C++ Wykład 4 Katarzyna Grzelak 19 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Funkcje cd K.Grzelak (Wykład 1) Programowanie w C++ 2 / 37 Funkcja powtórzenie Funkcje == podprogramy
Informatyka 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
Wstę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
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Podstawy 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,
Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia
Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin
INFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Operacje wejścia/wyjścia (odsłona druga) - pliki
Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały
Podstawy programowania
Podstawy programowania I rok Automatyka i Robotyka Eka PWr Ćwiczenia Zestaw 4 Zakres materiału Analiza poprawności konstrukcji, wyliczanie wyrażeń z wskaźnikami i tablicami, ręczna symulacja, opracowywanie
Poprzedni wykład [ ] :
Poprzedni wykład [ 27.11.2018 ] : - Funkcje i struktura programu - Zasady podziału programu na pliki ( nagłówki, pliki źródłowe, kody pośrednie, plik wykonywalny ) - Polecenie make i pliki Makefile - Preprocesor
Stał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
۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]
1 Plik jest wydzielonym fragmentem pamięci (najczęściej dyskowej) posiadającym nazwę. Z punktu widzenia C plik jest ciągiem bajtów, z których każdy może zostać oddzielnie odczytany. Zgodnie ze standardem
Ję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