Programowanie Proceduralne

Podobne dokumenty
Programowanie Proceduralne

Wstęp do programowania 1

Programowanie Proceduralne

Programowanie Proceduralne

Wstęp do programowania 1

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

np. dla p=1 mamy T1(N) N/2 średni czas chybionego wyszukiwania z prawdopodobieństwem q:

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Programowanie Procedurale

ŁAŃCUCHY W JĘZYKU C/C++

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Wstęp do Informatyki

Wykład 1

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Funkcja (podprogram) void

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

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

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

Co nie powinno być umieszczane w plikach nagłówkowych:

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

EGZAMIN MATURALNY 2011 INFORMATYKA

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

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

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Podstawy programowania w języku C++

Wskaźniki. Programowanie Proceduralne 1

Etap 2 - Budowa interfejsu. typedef struct ELEMENT* stos; struct ELEMENT { dane Dane; stos Nastepny; }; struct kolejka { stos Poczatek, Koniec; };

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

Wykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych

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

Wskaźniki w C. Anna Gogolińska

Tablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

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.

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak

Tablice deklaracja, reprezentacja wewnętrzna

iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku

Podstawy Programowania.

tablica: dane_liczbowe

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

Wykład 2

Wstęp do wskaźników w języku ANSI C

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

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

Łańcuchy znaków. Agnieszka Nowak - Brzezińska

Wstęp do Programowania 2

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Ćwiczenie 5 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

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

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Proste algorytmy w języku C

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

Wartości domyślne, przeciażenia funkcji

Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe.

Podstawy Programowania

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Programowanie Proceduralne

Wyklad 7 Funkcje (c.d.). Tablice jednowymiarowe znaków

Podstawy programowania w języku C++

2 Przygotował: mgr inż. Maciej Lasota

Proste algorytmy w języku C

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

Wprowadzenie do programowania w języku C

Wykład Wskaźniki a tablice jednowymiarowe Arytmetyka wskaźników Dostęp do elementów tablic

dr inż. Jarosław Forenc

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

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

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

dr inż. Jarosław Forenc

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawy programowania 1

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

Podstawy programowania w języku C++

Uzupełnienie dot. przekazywania argumentów

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Wstęp do programowania

Dzisiejszy wykład. Klasa string. wersja prosta wersja ze zliczaniem odwołań. Wyjątki Specyfikator volatile Semafory

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Programowanie Proceduralne

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Podstawy programowania

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Kontrola przebiegu programu

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

Microsoft IT Academy kurs programowania

Wartości domyślne, przeciażenia funkcji

część 9 wskaźniki - c.d Jarosław Gramacki Instytut Informatyki i Elektroniki Przykłady podstawowych wyrażeń ze wskaźnikami

Wykład 3. Instrukcje powtarzające

Wprowadzenie do szablonów klas

Transkrypt:

Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6

Wskaźniki i tablice int a[10], b[10]; int* c; c = &a[0]; // c wskazuje na pierwszy element tablicy a c = a; // taki sam efekt jak poprzednia instrukcja b = a; // niepoprawne a = c;// niepoprawne Nazwa tablicy jest stałym wskaźnikiem do pierwszego elementu tej tablicy T tab[n]; // wyrażenie tab jest typu T* const

Wskaźniki i tablice int a[10]; Wyrażenia a[k] oraz *(a + k) sa równoważne. W szczególności równoważne sa wyrażenia: a[0] oraz *a

Wskaźniki i tablice int tab[10]; int* p = tab + 2; Jak przy pomocy tab napisać wyrażenia odpowiadające następujacym wyrażeniom z lewej kolumny tabeli? p tab + 2 *p tab[2] p[0] tab[2] p + 6 tab + 8 *p + 6 tab[2] + 6 *(p + 6) tab[8] &p p[-1] tab[1]

Wskaźniki i tablice int a[100], b[100]; int* p = a; int* q = a + 50; int* r = a + 100; int* s = b; W arytmetyce na wskaźnikach można posłużyć się adresem pierwszego miejsca po ostatnim elemencie tablicy Rozważmy wyrażenia p - q, q - p p < q, p <= q, p > q, p >= q, p == q, p!= q p - s, s - p, p < s,... NIEOKREŚLONE!!!

Typy stałe int const rozmiarbufora = 512; int const rozmiarbufora; // niepoprawne int const* p = &rozmiarbufora; int* p = &rozmiarbufora; // niepoprawne int a, b; p = &a; // poprawne a = 1024; *p = 2048; // niepoprawne int* const q = &a; q = &b; // niepoprawne int const* const r = &rozmiarbufora;

p07a kopiowanie tablicy przy pomocy wskaźników p07b kopiowanie tablicy przy pomocy wskaźników p08a obliczanie długości ciagu znaków p08b obliczanie długości ciagu znaków p09 funkcja biblioteczna strlen

p07a #include <stdio.h> #include <stdlib.h> void arraycopy(long* dest, long const* src, int n); void show(long const*, int); int main(void) long a[] = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; int const n = sizeof(a) / sizeof(a[0]); long b[n]; show(a, n); arraycopy(b, a, n); show(b, n); return 0;

p07a - cd. void arraycopy(long* dest, long const* src, int n) while (n > 0) *dest = *src; ++dest; ++src; --n; void show(long const* p, int n) long const* q = p + n; while (p < q) printf("%ld ", *p); ++p; printf("\n");

p07b #include <stdio.h> #include <stdlib.h> void arraycopy(long* dest, long const* src, int n); void show(long const*, int); int main(void) long a[] = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; int const n = sizeof(a) / sizeof(a[0]); long b[n]; show(a, n); arraycopy(b, a, n); show(b, n); return 0;

p07b - cd. void arraycopy(long* dest, long const* src, int n) while (n-- > 0) *dest++ = *src++; void show(long const* p, int n) long const* q = p + n; while (p < q) printf("%ld ", *p++); printf("\n");

p08a #include <stdio.h> #include <stdlib.h> int strlen(char const* s); int main(void) char* pmsg = "Linux is fun, Slackware more fun, so have fun!"; printf("%d : %s\n", strlen(pmsg), pmsg); char amsg[] = "Linux is fun, Slackware more fun, so have fun!"; printf("%d : %s\n", strlen(amsg), amsg); return 0; int strlen(char const* s) int n = 0; for (; *s!= \0 ; ++s) ++n; return n;

p08b #include <stdio.h> #include <stdlib.h> int strlen(char const* s); int main(void) char* pmsg = "Linux is fun, Slackware more fun, so have fun!"; printf("%d : %s\n", strlen(pmsg), pmsg); char amsg[] = "Linux is fun, Slackware more fun, so have fun!"; printf("%d : %s\n", strlen(amsg), amsg); return 0; int strlen(char const* s) char const* p = s; while (*p!= \0 ) ++p; return p - s;

p08b - niepoprawna. Dlaczego? #include <stdio.h> #include <stdlib.h> int strlen(char const* s); int main(void) char* pmsg = "Linux is fun, Slackware more fun, so have fun!"; printf("%d : %s\n", strlen(pmsg), pmsg); char amsg[] = "Linux is fun, Slackware more fun, so have fun!"; printf("%d : %s\n", strlen(amsg), amsg); return 0; int strlen(char const* s) char const* p = s; while (*p++!= \0 ) return p - s;

p09 #include<stdio.h> int main (void) char B[]="Agata noga zamiata"; puts(b); B[0]= a ; puts(b); char *C="Zima jest zimna"; puts(c); C[0]= z ; //Czy poprawne? return 0;