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

Podobne dokumenty
dr inż. Jarosław Forenc

Spis treści JĘZYK C - TABLICE JEDNOWYMIAROWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05Z

Spis treści JĘZYK C - TABLICE JEDNOWYMIAROWE, ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z

Podstawy programowania 1

dr inż. Jarosław Forenc

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

JĘZYK C - TABLICE DWUWYMIAROWE,

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

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

Tablice deklaracja, reprezentacja wewnętrzna

Tablice, funkcje - wprowadzenie

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

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

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

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

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

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Spis treści JĘZYK C - TABLICE DWUWYMIAROWE, OPERACJE NA TABLICACH. Metodyki i techniki programowania

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

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

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

Podstawy programowania w języku C++

Podstawy programowania

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Spis treści JĘZYK C - WSKAŹNIKI, DYNAMICZNY PRZYDZIAŁ PAMIĘCI. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Języki programowania obiektowego Nieobiektowe elementy języka C++

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 11. Elektrotechnika, semestr II rok akademicki 2008/2009

6 Przygotował: mgr inż. Maciej Lasota

iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku

Język C, tablice i funkcje (laboratorium)

2 Przygotował: mgr inż. Maciej Lasota

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Język C, tablice i funkcje (laboratorium, EE1-DI)

Wprowadzenie do programowania w języku C

Tablice, funkcje, wskaźniki - wprowadzenie

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

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

int tab1[30]; // 30-elementowa tablica elementów typu int char tekst[10]; // 10-elementowa tablica elementów typu char (tablica tekstowa)

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Programowanie strukturalne i obiektowe

Spis treści JĘZYK C - TABLICE JEDNOWYMIAROWE, ŁAŃCUCHY ZNAKÓW. Metodyki i techniki programowania. Instrukcja do pracowni specjalistycznej z przedmiotu

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Spis treści JĘZYK C - TABLICE DWU- I WIELOWYMIAROWE, OPERACJE NA TABLICACH. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

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

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Spis treści JĘZYK C - TABLICE DWUWYMIAROWE, OPERACJE NA TABLICACH. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Wskaźniki w C. Anna Gogolińska

Podstawy informatyki. Wykład nr 1 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Podstawy Programowania C++

Stałe i zmienne znakowe. Stała znakowa: znak

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

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

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

dr inż. Jarosław Forenc

Programowanie w C Typ wskaźnikowy do typu znakowego i operacje na łańcuchach

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

lekcja 8a Gry komputerowe MasterMind

Spis treści JĘZYK C - PLIKI BINARNE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF30

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

Języki i metodyka programowania. Wprowadzenie do języka C

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

7 Przygotował: mgr inż. Maciej Lasota

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

scanf( %s,tekst); //znaki podane z klawiatury (do pierwszego białego znaku ) //s kopiowane do zmiennej tekst i dostawiany jest znak \0

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

Wykład 6. Operacje na łańcuchach znakowych

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Proces tworzenia programu:

Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

tablica: dane_liczbowe

Funkcja (podprogram) void

Laboratorium Podstaw Informatyki Strona 1. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 2. Funkcje, operatory i wyrażenia.

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Tablice. int rozmiar; cout << Jaki ma być rozmiar tabeli? ; cin >> rozmiar; { int tablica[rozmiar]; /* TU JEST ŹLE */... }

Wstęp do programowania

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

1. Typy zmiennych. 2. Typy podstawowe: char short int int long int float

PARADYGMATY PROGRAMOWANIA Wykład 3

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Podstawy Programowania

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

Wstęp do programowania

Powyższe wyrażenie alokuje 200 lub 400 w zależności od rozmiaru int w danym systemie. Wskaźnik wskazuje na adres pierwszego bajtu pamięci.

Inicjacja tablicy jednowymiarowej

Transkrypt:

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, semestr II, studia stacjonarne I stopnia Rok akademicki 2014/2015 Pracownia nr 10 (08/11.05.2015) dr inż. Jarosław Forenc wektor macierz 1.2 2.5 2.0 10.0-0.1 4.3 6.2-5.1 0.0 12.2 4.1-2.2 Rok akademicki 2013/2014, Pracownia nr 10 3/20 Rok akademicki 2013/2014, Pracownia nr 10 4/20 Deklaracja tablicy rozmiar nazwa typ elementów indeks rozmiar tablicy to wartość: całkowita, dodatnia znana na etapie kompilacji programu (stała liczbowa: 5, #define N 5, const int n = 5;) int tab[n]; int tab[n]; [ ] - dwuargumentowy operator indeksowania tab[1]; tab[0] tab[1] tab[2] tab[3] tab[4] indeks elementu (drugi argument operatora) nazwa tablicy (pierwszy argument operatora) indeks: stała liczbowa, np. 0, 1, 10 nazwa zmiennej, np. i, idx wyrażenie, np. i*j+5

Rok akademicki 2013/2014, Pracownia nr 10 5/20 Rok akademicki 2013/2014, Pracownia nr 10 6/20 Przykład int x, tab[5]; Liczba: 15, 15 tab[1] = 15; /* zapisanie wartości do tablicy */ x = tab[1]; /* odczytanie wartości z tablicy */ printf("liczba: %d, %d\n", x, tab[1]); return 0; przy odwołaniach do elementów tablicy kompilator nie sprawdza poprawności indeksów tab[5] = 10; tab[0] tab[1] tab[2] tab[3] tab[4] - błąd!!! - nie istnieje element tab[5] kompilator nie zasygnalizuje błędu i wykona operację Rok akademicki 2013/2014, Pracownia nr 10 7/20 Rok akademicki 2013/2014, Pracownia nr 10 8/20 zapisujemy do wszystkich elementów tablicy taką samą wartość: 10 int tab[5], i; tab[0] = 10; tab[1] = 10; tab[2] = 10; tab[3] = 10; tab[4] = 10; for (i=0; i<5; i++) tab[i] = 10; #define N 10 int tab[n]; int i; /* wczytanie elementów wektora */ printf("podaj liczbe nr %d: ",i+1); scanf("%d",&tab[i]);

Rok akademicki 2013/2014, Pracownia nr 10 9/20 Rok akademicki 2013/2014, Pracownia nr 10 10/20 #define N 10 int tab[n]; int i; /* wczytanie elementów wektora */ printf("podaj liczbe nr %d: ",i+1); scanf("%d",&tab[i]); Podaj liczbe nr 1: 15 Podaj liczbe nr 2: 38 Podaj liczbe nr 3: 23 Podaj liczbe nr 4: 96 Podaj liczbe nr 5: 12 Podaj liczbe nr 6: 40 Podaj liczbe nr 7: 33 Podaj liczbe nr 8: 67 Podaj liczbe nr 9: 92 Podaj liczbe nr 10: 12 /* wyświetlenie elementów wektora */ printf("elementy wektora:\n"); printf("%4d", tab[i]); printf("\n"); 15 38 23 96 12 Elementy wektora: 15 38 23 96 12 40 33 67 92 12 5 6 7 8 9 40 33 67 92 12 N = 10 Rok akademicki 2013/2014, Pracownia nr 10 11/20 Rok akademicki 2013/2014, Pracownia nr 10 12/20 /* suma i średnia arytmetyczna elementów wektora */ int suma = 0; float srednia; suma = suma + tab[i]; srednia = (float) suma/n; printf("suma: %d, srednia: %f\n", suma, srednia); /* generowanie pseudolosowe elementów wektora */ srand(time(null)); /* stdlib.h, time.h */ tab[i] = rand() % 100; /* stdlib.h */ 4 82 17 96 87 79 18 10 11 25 15 38 23 96 12 Suma: 428, srednia: 42.799999 5 6 7 8 9 40 33 67 92 12 N = 10 srand(time(null)); - inicjalizacja generatora rand() - zwraca liczbę pseudolosową z zakresu 0...32767 rand() % 100 - zwraca liczbę pseudolosową z zakresu 0...99

Rok akademicki 2013/2014, Pracownia nr 10 13/20 Rok akademicki 2013/2014, Pracownia nr 10 14/20 Inicjalizacja wektora int tab[5] = 1, 2, 3, 4, 5 ; int tab[5] = 1, 2, 3 ; Łańcuch znaków (ciąg znaków, napis, C-string) ciąg złożony z zera lub większej liczby znaków zawartych między znakami cudzysłowu "Pies" int tab[5] = 1, 2, 3, 4, 5, 6 ; - błąd kompilacji Implementacja - tablica, której elementami są pojedyncze znaki (typ char) int tab[] = 1, 2, 3, 4, 5 ; Ostatni znak (\0, liczba zero) oznacza koniec napisu Rok akademicki 2013/2014, Pracownia nr 10 15/20 Rok akademicki 2013/2014, Pracownia nr 10 16/20 W rzeczywistości w tablicy zamiast znaków przechowywane są odpowiadające im kody ASCII - deklaracja Deklaracja zmiennej przechowującej napis char nazwa_zmiennej[rozmiar]; Przykład: chat txt[10]; Tablica txt może przechowywać napisy o maksymalnej długości do 9 znaków

Rok akademicki 2013/2014, Pracownia nr 10 17/20 Rok akademicki 2013/2014, Pracownia nr 10 18/20 - inicjalizacja Inicjalizacja łańcucha znaków char txt1[10] = "Pies"; char txt2[10] = 'P','i','e','s'; char txt3[10] = 80,105,101,115; Pozostałe elementy tablicy otrzymują wartość zero char txt4[] = "Pies"; char *txt5 = "Pies"; Inicjalizacja możliwa jest tylko przy deklaracji char txt[10]; txt = Pies ; /* BŁĄD!!! */ Przypisanie zmiennej txt wartości Pies wymaga zastosowania funkcji strcpy() z pliku nagłówkowego string.h char txt[10]; strcpy(txt, Pies ); Rok akademicki 2013/2014, Pracownia nr 10 19/20 Rok akademicki 2013/2014, Pracownia nr 10 20/20 - string.h strcpy() - kopiuje jeden łańcuch znaków do drugiego strlen() - zwraca długość łańcucha znaków (bez \0 ) strcat() dołącza jeden łańcuch znaków do drugiego strcmp() porównuje dwa łańcuchy strcmpi() porównuje dwa łańcuchy (nie rozróżnia wielkość liter) strlwr() zamienia wielkie litery na małe strupr() zamienia małe litery na wielkie Wyświetlenie i wczytanie tekstu Wyświetlenie tekstu funkcją printf() wymaga specyfikatora formatu %s char napis[15] = Jan Kowalski ; printf( Osoba: %s\n, napis); Wczytanie tekstu funkcją scanf() char napis[15]; scanf( %s, napis); brak znaku &