Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.pl. Tablice cz. II. Kopiowanie tablic, tablice wielowymiarowe

Podobne dokumenty
Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Metody Metody, parametry, zwracanie wartości

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

*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)

Podstawy i języki programowania

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

Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:

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

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

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

Podstawy programowania. Podstawy C# Tablice

Podstawy Programowania C++

Funkcje. Wprowadzenie. Mirosław Ochodek

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

Zmienne i struktury dynamiczne

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Rozdzia l 3. Laboratorium 3. danych zawierajac

Programowanie obiektowe W3

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

Wykład 3 Składnia języka C# (cz. 2)

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Klasy i obiekty cz II

Język C, tablice i funkcje (laboratorium)

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Warunki logiczne instrukcja if

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie, algorytmy i struktury danych

Programowanie - instrukcje sterujące

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ęść 4 życie programu

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 sterujące

7. Pętle for. Przykłady

Programowanie 2 - Tablice i łańcuchy

Inicjacja tablicy jednowymiarowej

tablica: dane_liczbowe

Java EE produkcja oprogramowania

W języku C/C++ pomiędzy wskaźnikami a tablicami istnieje bardzo ścisły związek. Do onumerowania elementów w tablicy służą tzw. INDEKSY.

Programowanie w języku Java

Lab 9 Podstawy Programowania

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Stałe, tablice dynamiczne i wielowymiarowe

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Zajęcia 4 procedury i funkcje

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

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Programowanie komputerowe. Zajęcia 3

Programowanie 3 - Funkcje, pliki i klasy

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Tablice. Jones Stygar na tropie zmiennych

1 Podstawy c++ w pigułce.

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

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

Programowanie - wykład 4

Wstęp do programowania

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

Programowanie komputerowe. Zajęcia 5

Proste programy w C++ zadania

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

O podstawowych operacjach na tablicach. Mateusz Ziółkowski, MBiU II

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY

Rekurencja (rekursja)

do instrukcja while (wyrażenie);

Podstawy Java. Część II. mgr inż.marcin Borkowski

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Programowanie komputerowe. Zajęcia 2

W dowolnym momencie można zmienić typ wskaźnika.

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

Programowanie strukturalne i obiektowe. Funkcje

4. Funkcje. Przykłady

1. Napisz program wypisujący w kolejnych wierszach standardowego wyjścia pojedyncze słowa następującego napisu Bardzo dlugi napis. 2.

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

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

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

Programowanie komputerowe. Zajęcia 1

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Deklaracja struktury w C++

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Wstęp do Programowania Lista 1

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

lekcja 8a Gry komputerowe MasterMind

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

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

Transkrypt:

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.pl Tablice cz. II Kopiowanie tablic, tablice wielowymiarowe

Kopiowanie tablic Wykonaj kod: int[] tablica1 = new int[10]; int[] tablica2 = tablica1; Zauważ, że najpierw skopiowaliśmy tablicę, a później wypeŀniliśmy tablicę tablica1 wartościami od 0 do 9 for (int i=0; i<tablica1.length; i++) tablica1[i]=i; System.out.print("Tablica1: "); for (int i : tablica1) System.out.print(i+" "); System.out.print("Tablica2: "); for (int i : tablica2) System.out.print(i+" "); Wynik: Tablica1: 0 1 2 3 4 5 6 7 8 9 Tablica2: 0 1 2 3 4 5 6 7 8 9 Tak naprawdę nie skopiowaliśmy wartości z jednej tablicy do drugiej, ale utworzyliśmy dwie referencje które wskazują na tą samą tablicę

Kopiowanie tablic Dodaj i wykonaj kod: tablica1[2] = 100; System.out.print("Tablica1: "); for (int i : tablica1) System.out.print(i+" "); System.out.print("Tablica2: "); for (int i : tablica2) System.out.print(i+" "); Wynik: Tablica1: 0 1 100 3 4 5 6 7 8 9 Tablica2: 0 1 100 3 4 5 6 7 8 9 Jak widać, kiedy zmieniliśmy wartość komórki w jednej tablicy, zmieniŀa się także wartość komórki w drugiej tablicy

Kopiowanie tablic Jak więc skopiować tablice? Można tak: int[] tablica3 = new int[10]; int[] tablica4 = new int[10]; for (int i=0; i<tablica3.length; i++) tablica3[i]=i; for (int i=0; i<tablica3.length; i++) tablica4[i]=tablica3[i]; tablica3[2]=100; Iterujemy obie tablice, pobieramy wartości z jednej i umieszczamy je w drugiej. System.out.print("Tablica3: "); for (int i : tablica3) System.out.print(i+" "); System.out.print("Tablica4: "); for (int i : tablica4) System.out.print(i+" "); Wynik: Tablica3: 0 1 100 3 4 5 6 7 8 9 Tablica4: 0 1 2 3 4 5 6 7 8 9 Sprawdzamy... I o to wŀaśnie chodzi

Kopiowanie tablic - inne sposoby Kopiowanie za pomocą Arrays.copyOf(); import java.util.arrays;... int[] tablicakopia = Arrays.copyOf(tablica, tablica.length); Kopiowanie za pomocą System.arraycopy(); int [] tablicakopia = new int[tablica.length]; Od którego elementu Ile elementów System.arraycopy( tablica, 0, tablicakopia, 0, tablica.length ); Kopiowanie za pomocą.clone(); int[] tablicakopia = (int []) tablica.clone;

Zadanie Napisz program który: Utworzy tablicę z liczbami typu double; Utworzy drugą tablicę, w której umieści wartości z tablicy pierwszej pomniejszone o średnią wszystkich liczb z tablicy pierwszej. Wypisze obliczone wartości.

Zadanie Plan: 1. Utworzyć tablicę z liczbami typu double (tablica1); 2. Utworzyć tablicę o takiej samej wielkości (tablica2). 3. Obliczyć sumę liczb z tablicy 1: iterować tablicę1, dodając do zmiennej (suma) poszczególne wartości 4. Obliczyć średnią: suma/długość_tablicy1 suma/tablica1.length 5. Wypełnić tablicę2 wartościami: iterujemy po obu tablicach w jednej pętli for(): pobieramy wartość z komórek z tablicy1 do tablicy2 wpisujemy do komórki o tym samym indeksie różnicę wartości z tablicy1 i obliczonej średniej 6. Wypisujemy wartości: suma, srednia i wartosci z tabicy2

Zadanie double[] tablica1 = {1.0,3.5,3.4,4.9,8.2,1.0,4.1,8.7,9.2,10.1; double[] tablica2 = new double[tablica1.length]; double suma = 0.0; double srednia = 0.0; // obliczamy sumę for (int i = 0; i < tablica1.length; i++) { suma=suma+tablica1[i]; // obliczamy średnią srednia = suma/tablica1.length; // wypełniamy tablicę2 róznicą wartości z tablicy1 i średniej for (int i = 0; i < tablica1.length; i++) { tablica2[i] = tablica1[i]-srednia; // Wypisujemy rezultaty System.out.println("Suma: "+suma); System.out.println("Srednia: "+srednia); for (int i = 0; i < tablica2.length; i++) { System.out.print(tablica2[i]+", ");

Tablice wielowymiarowe Tablice mogą mieć więcej niż 1 wymiar. Np. tablicę dwuwymiarową można zadeklarować i zainicjować w taki sposób: int[][] tablica = new int[10][10]; 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

Tablice wielowymiarowe Wypełnienie tablicy liczbami od 0 do 99: int[][] tablica = new int[10][10]; int wartosc = 0; for (int i=0; i<10; i++) { for (int j=0; j<10; j++ ) { tablica[i][j] = wartosc; wartosc++; 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71727373 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

Tablice wielowymiarowe Uzyskanie wartości określonej komórki: tablica[rząd][kolumna]; Np: Umownie - można by zapisać raczej: wymiar1, wymiar2... System.out.println(tablica[6][4]); 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71727373 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

Tablice wielowymiarowe Wypisanie zawartości tabeli w 10 rzędach po 10 liczb: for (int i=0; i<10; i++) { for (int j=0; j<10; j++ ) { System.out.print(tablica[i][j]+" "); 0 1 2 10 11 20 21 30 31 40 41 50 51 60 61 70 71 80 81 90 91 3 4 5 12 13 22 23 32 33 42 43 52 53 62 63 72 73 82 83 92 93 6 7 8 14 15 24 25 34 35 44 45 54 55 64 65 74 75 84 85 94 95 9 16 26 36 46 56 66 76 86 96 17 27 37 47 57 67 77 87 97 18 28 38 48 58 68 78 88 98 19 29 39 49 59 69 79 89 99

Wypełnianie tablic wielowymiarowych gotowymi wartościami Podobnie jak tablicę jednowymiarową, tablice wielowymiarowe można wypełnić wartościami od razu po deklaracji: Deklaracja, utworzenie i wypeŀnienie wartościami int[][] tab = {{1,2,3,4,5,{6,7,8,9,10,{11,12,13,14,15; for (int[] l : tab) { for (int m : l) System.out.print(m+" "); Sprawdzamy (drukujemy zawartość tablicy)

Wykorzystanie foreach w tablicy wielowymiarowej W pierwszej pętli pobierane są tablice 1 wymiarowe for (int[] t : tablica) { for (int l : t) { System.out.print(l+" "); W drugiej, zagnieżdżonej, pętli pobierane są kolejne wartości z tablicy t

Tablice wielowymiarowe Tablice mogą mieć 3, 4 i więcej wymiarów. Deklarujemy, tworzymy i pracujemy na nich analogicznie do tablic 2-wymiarowych. Np: int[][][] tablica3wymiarowa = new int[5][10][10]; for (int i=0; i<5; i++) { for (int j=0; j<10; j++ ) { for (int k=0; k<10; k++) tablica3wymiarowa[i][j][k] = i+j+k; for (int[][] t : tablica3wymiarowa) { for (int[] u : t) { for (int w : u) System.out.print(w+" ");

Zadanie Napisz program który znajdzie największą liczbę w tablicy 2 wymiarowej zawierającej liczby nieujemne.

Zadanie Napisz program który znajdzie największą liczbę w tablicy 2 wymiarowej zawierającej liczby nieujemne. int[][] tab = {{1,2,3,4,5, {6,7,8,9,10, {11,22,13,14,15; int najwiekszaliczba = 0; for (int[] l : tab) { for (int m : l) { if (najwiekszaliczba < m) najwiekszaliczba = m; System.out.println("Największa liczba to "+najwiekszaliczba);