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

Podobne dokumenty
tablica: dane_liczbowe

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

METODY I JĘZYKI PROGRAMOWANIA. Programowanie w języku C notatki z wykładów

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

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

4) Operacje na tablicy dwuwymiarowej bez wykorzystywania indeksów liczbowych:

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

INSTRUKCJE REPETYCYJNE PĘTLE

Języki programowania - podstawy

Podstawy Programowania C++

Język C, tablice i funkcje (laboratorium)

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

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

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

INSTRUKCJE REPETYCYJNE PĘTLE

struct Student { char nazwisko[30]; int wiek; float ocena; }; #define MAX_ROZMIAR 3 Student lista_studentow[max_rozmiar];

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

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

Stałe, tablice dynamiczne i wielowymiarowe

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

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

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

( wykł. dr Marek Piasecki )

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

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

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

Tablice, funkcje - wprowadzenie

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

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

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

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

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

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

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

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

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

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

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Język C zajęcia nr 11. Funkcje

Programowanie strukturalne i obiektowe

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Tablice deklaracja, reprezentacja wewnętrzna

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

2 Przygotował: mgr inż. Maciej Lasota

Podstawy programowania C. dr. Krystyna Łapin

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

1. Wprowadzanie danych z klawiatury funkcja scanf

Funkcja (podprogram) void

KURS C/C++ WYKŁAD 6. Wskaźniki

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Część 4 życie programu

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

Biblioteka standardowa - operacje wejścia/wyjścia

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

Wskaźniki w C. Anna Gogolińska

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

Elementarne wiadomości o języku C

1 Podstawy c++ w pigułce.

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

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

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

IX. Wskaźniki.(3 godz.)

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

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Język C zajęcia nr 12. Struktury i unie

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Zmienne i struktury dynamiczne

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

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

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

int tab_a [ 2 ] [ 3 ];

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

KURS C/C++ WYKŁAD 1. Pierwszy program

Podstawy Programowania. Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki

Funkcje zawarte w bibliotece < io.h >

Podstawy programowania 1

Zmienne, stałe i operatory

DYNAMICZNE PRZYDZIELANIE PAMIECI

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

ECLIPSE wnioski z dwóch pierwszych laboratoriów

Tablice są typem pochodnym. Poniżej mamy przykłady deklaracji różnych tablic:

Lab 9 Podstawy Programowania

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

Funkcje zawarte w bibliotece < io.h >

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

Operacje wejścia/wyjścia odsłona pierwsza

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

1 Podstawy c++ w pigułce.

C-struktury wykład. Dorota Pylak

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Transkrypt:

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 [ 255 ]; // 255-cio elementowa tablica znaków float macierz [ 5 ] [ 2 ]; // dwuwymiarowa tablica: 5 wierszy po 2 kolumny, UWAGA: w języku C tablice są zawsze indeksowane od zera np. pierwszym elementem tablicy «macierz» jest: macierz[ 0 ][ 0 ] a ostatnim elementem jest:macierz[ wymiar_1 1 ][wymiar_2 1] tzn. macierz[ 4 ][ 1 ] w języku C nie jest sprawdzana zgodność indeksu z wymiarami tablicy!!! często jest to przyczyną trudnych do wykrycia błędów. np. odwołanie: macierz[ 1 ][ 2 ] zwróci w rzeczywistości wartość pierwszego elementu z trzeciego wiersza tzn. macierz[ 2 ][ 0 ] 0, 0 0, 1 1, 0 1, 1 1, 2 2, 0 2, 1 3, 0 3, 1 4, 0 4, 1 reprezentacja tej macierzy w pamięci komputera 0, 0 0, 1 1, 0 1, 1 2, 0 2, 1 3, 0 3, 1 4, 0 4, 1 macierz[ 1 ][ 2 ] Obszar pamięci zajmowany przez tablicę musi być mniejszy od 64 kb W implementacji C++ firmy Borland to ograniczenie można obejść używając przy definicji tablicy słowo kluczowe huge. np. definicja: long double huge tab[ 20000 ]; jest poprawna, chociaż tablica «tab» zajmuje 200 000 bajtów 196 kb M.Piasecki: INFORMATYKA 1 1 (W4) Tablice w języku C/C++

Definicję tablicy można połączyć z inicjacją jej zawartości: int tab[ 10 ]; // sama definicja bez inicjacji int tab_inicjowana[ 10 ] = 20, -3, 12, 1, 0, 7, -5, 100, 2, 5 ; char tab_znakow[ 5 ] = a, B, \n, 1, \0 ; float macierz_a[ 3 ][ 2 ] = 1,1, 3.5,7.0, -15,100 ; float macierz_b[ 3 ][ 2 ] = 1, 1, 3.5, 7.0, -15, 100 ; Kolejne inicjatory zawsze wstawiane są do kolejnych komórek tablicy (w związku z tym można pominąć wewnętrzne nawiasy klamrowe). Jeżeli lista inicjatorów jest krótsza niż ilość elementów tablicy to pozostałe elementy są uzupełniane zerami lub wskaźnikami NULL np. definicja: int tab[ 10 ] = 20, -3, 12, 1 ; jest równoważna: int tab[ 10 ] = 20, -3, 12, 1, 0, 0, 0, 0, 0, 0 ; a definicja: float macierz[ 3 ][ 2 ] = 1, 3.5,7.0 ; jest równoważna: float macierz[ 3 ][ 2 ] = 1,0, 3.5,7.0, 0,0 ; lub: float macierz[ 3 ][ 2 ] = 1, 0, 3.5, 7.0, 0, 0 ; W języku C inicjatorami muszą być stałe, natomiast w języku C++ inicjatorami mogą być zarówno stałe jak i zmienne. Wykorzystanie stałych do definiowania ilości elementów tablicy: int tablica [ 100 ] ; #define ROZMIAR 100 int tablica [ ROZMIAR ] ; // rozmiar zadany bezpośrednio // definicja stałej w stylu języka C const ROZMIAR_2 = 100 ; // definicja stałej w stylu języka C++ int tablica_2 [ ROZMIAR_2 ] ; for( int i=0 ; i < ROZMIAR ; i++ ) printf ( %d, tablica[ i ] ); // przykład dalszego wykorzystania stałej M.Piasecki: INFORMATYKA 1 2 (W4) Tablice w języku C/C++

Przypisywanie / odczytywanie wartości elementów tablicy void main( ) const ROZM = 4 ; int Tab [ ROZM ] ; // bezpośrednie przypisanie wartości Tab[ 0 ] = 0 ; Tab[ 1 ] = 10 ; Tab[ 2 ] = - 20 ; Tab[ 3 ] = 3 ; // wczytanie zawartości z klawiatury scanf( %d, &Tab[ 0 ] ) ; scanf( %d %d, &Tab[ 1 ], &Tab[ 2 ] ) ; printf( Podaj 4 element tablicy = ); scanf( %d, &Tab[ 3 ] ) ; // wykorzystywanie i wyświetlanie zawartości elementów tablicy long suma = Tab[0] + Tab[1] + Tab[2] + Tab[3] ; printf( Tab[1] = %5d, Tab[0] ); printf( Tab[2] = %5d, Tab[1] ); printf( Tab[3] = %5d, Tab[2] ); printf( Tab[4] = %5d, Tab[3] ); // pośrednie zadawanie wartości indeksu za pomocą zmiennej pomocniczej int i = 2 ; Tab[ i ] = 10; // równoważne poleceniu: Tab[ 2 ] = 10; // zadawanie indeksu elementu z klawiatury printf( Podaj indeks elementu którego wartość chcesz wczytać ); scanf( %d, &i ); printf( Podaj nową wartość Tab[ %d ] =, i ); scanf( %d, &Tab[ i ] ); printf( Nowa wartość Tab[ %d ] wynosi %d, i, Tab[ i ] ); M.Piasecki: INFORMATYKA 1 3 (W4) Tablice w języku C/C++

Zastosowanie instrukcji repetycyjnej for do operacji na tablicach #include <stdio.h> void main( void ) #define ROZMIAR 10 float tablica[ ROZMIAR ]; int i ; // definicja tablicy liczb rzeczywistych // inicjowanie zawartości tablicy liczbami parzystymi: 0, 2, 4, 6,... tablica[ i ] = 2 i ; // wczytanie zawartości elementów tablicy z klawiatury printf( Podaj Tab[%2d] =, i+1 ); scanf( %f, &tablica[ i ] ); // wyświetlenie zawartości elementów tablicy printf( Tab[%2d] = %10.3f, i+1, tablica[ i ] ); // zsumowanie wartości elementów tablicy float suma = 0 ; suma = suma + tablica[ i ]; // suma += tablica[ i ]; printf( Suma wartości elementów tablicy wynosi: %.2f, suma ); // zliczenie ilości elementów o dodatnich wartościach int ilosc = 0 ; if( tablica[ i ] > 0 ) ilosc = ilosc + 1 ; // ilość += 1; lub ilość++; if( ilość>0 ) printf( Ilość dodatnich elementów = %d, ilosc ); else printf( W tablicy nie ma ani jednego dodatniego elementu ); M.Piasecki: INFORMATYKA 1 4 (W4) Tablice w języku C/C++

Przykłady prostych algorytmów tablicowych #include <stdio.h> void main( void ) #define ROZMIAR 10 int tab[ ROZMIAR ]; int i, ilosc, max, poz; long suma; double srednia; printf( Tab[%2d] =, i+1 ); scanf( %d, &tablica[ i ] ); //--------- wczytanie liczb z klawiatury i=0; //--------------------------- zliczenie elementów niezerowych ilosc=0; while( ROZMIAR i ) if( tab[i++] ) ilosc++; suma=0; //----------- wyznaczenie średniej z elementów niezerowych ilosc=0; i=0; do if( tab[ i ]!= 0 ) suma += tab[ i ]; ilosc++; while( ++i < ROZMIAR ); if( ilosc ) srednia = (double)suma / ilosc; printf( "\nsrednia niezerowych = %.2f", srednia ); else printf( "\nnie ma elementow niezerowych" ); max=tab[0]; //----------- wyznaczenie wartości i pozycji maksimum poz=0; for( i=1; i<rozmiar ; i++ ) if( max<tab[ i ] ) max = tab[ i ]; poz = i ; printf( "\nnajwieksza wartosc jest rowna %d", max ); printf( "i wystapila na pozycji %d", poz+1 ); M.Piasecki: JĘZYK «C» (III) 5 Definiowanie własnych funkcji

#include <stdio.h> #include <conio.h> #define ROZMIAR 10 Przykłady funkcji operujących na tablicach void WczytajTablice( double tablica[ ] ) clrscr(); printf( Podaj wartości elementów tablicy \n ); for( int i = 0 ; i < ROZMIAR ; i++ ) printf( Tab[%2d] =, i+1 ); scanf( %lf, &tablica[ i ] ); //------------------------------------------------------------ funkcja WczytajTablicę void WyswietlTablice( double tablica[ ] ) clrscr(); printf( Wartości elementów tablicy są równe: \n ); for( int i = 0 ; i < ROZMIAR ; i++ ) printf( Tab[%2d] = %f, i+1, tablica[ i ] ); printf( Nacisnij dowolny klawisz ); getch(); //------------------------------------------------------------ funkcja WyswietlTablicę void DodajTablice( double wejscie_1[ ], double wejscie_1[ ], double wynik [ ] ) for( int i = 0 ; i < ROZMIAR ; i++ ) wynik[ i ] = wejscie_1[ i ] + wejscie_2[ i ] ; //------------------------------------------------------------ funkcja DodajTablice void main( void ) double A[ ROZMIAR ] ; double B[ ROZMIAR ], C[ ROZMIAR ] ; WczytajTablice( A ); WyswietlTablice( A ); WczytajTablice( B ); DodajTablice( A, B, C ); WyswietlTablice( C ); M.Piasecki: JĘZYK «C» (III) 6 Definiowanie własnych funkcji