Zajęcia 6 wskaźniki i tablice dynamiczne

Podobne dokumenty
Zajęcia 6 wskaźniki i tablice dynamiczne

Lab 9 Podstawy Programowania

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

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

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

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

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

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

Struktury, unie, formatowanie, wskaźniki

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

Zmienne i struktury dynamiczne

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

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

Zajęcia 4 procedury i funkcje

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

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

Algorytmy i język C++

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

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

Programowanie w języku Java

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

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

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

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

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

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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.

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

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

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

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Rekurencja (rekursja)

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

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

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

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Podstawy programowania

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

Zajęcia 5 łańcuchy znaków (ciąg dalszy) i funkcje

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.

Lista 2. int porownaj_liczby_normalnie(const int a, const int b) { if(a==b) return 0; if(a>b)return1; return-1; }

Zadania z podstaw programowania obiektowego

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

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

Programowanie obiektowe W3

Języki i metodyka programowania. Wskaźniki i tablice.

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

Zasady programowania Dokumentacja

Programowanie komputerowe. Zajęcia 4

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Programowanie 3 - Funkcje, pliki i klasy

Wykład 1: Wskaźniki i zmienne dynamiczne

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

Programowanie komputerowe. Zajęcia 3

Inicjacja tablicy jednowymiarowej

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania w języku C++

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

Podstawy i języki programowania

Tablice jednowymiarowe

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

Stałe, tablice dynamiczne i wielowymiarowe

Programowanie - wykład 4

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

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

Metody numeryczne Laboratorium 2

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

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

tablica: dane_liczbowe

- - Ocena wykonaniu zad3. Brak zad3

Podstawy Programowania C++

do instrukcja while (wyrażenie);

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. Informatyka

Deklaracja struktury w C++

Część 4 życie programu

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

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

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

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

Język C++ zajęcia nr 2

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

DYNAMICZNE PRZYDZIELANIE PAMIECI

PARADYGMATY PROGRAMOWANIA Wykład 3

Programowanie komputerowe. Zajęcia 5

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

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

Podstawy obiektowości

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.

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

> C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia

Programowanie 2 - Tablice i łańcuchy

Strumienie, pliki. Sortowanie. Wyjątki.

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

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

Transkrypt:

Zajęcia 6 wskaźniki i tablice dynamiczne 1.NapiszfunkcjęvoidminMax(inttab[],intw,int*wmin,int*wmax),która szuka w podanym ciągu najmniejszego i największego elementu. Znalezione wartości mają zostać zapisane w zmiennych wskazywanych przez parametry (wskaźniki) wmin oraz wmax. Parametr dl określa liczbę elementów w ciągu(tablicy) tab. intt[]={3,-4,1,0,10,5; int min, max; minmax(t, sizeof(t)/ sizeof(t[0]),&min,&max); cout<<"najmniejszyinajwieksyelementciągu,to"<<min <<","<<max<<endl; 2. Zdefiniuj funkcję: void strsl(char s1[], char s2[], char*&dluzszy, char*&krotszy), któraprzyjmujejakoparametrydwałańcuchy(s1 oraz s2)idwawskaźniki ( dluzszy, krotszy). Funkcja ta ma przypisać wskaźnikom dluzszy i krotszy odpowiednio adres dłuższego oraz krótszego z podanych łańcuchów. W przypadku,gdysąonerównejdługościtowskaźnik dluzszy mawskazywaćna s1, natomiast wskaźnik krotszy na łańcuch s2. char s1[100]; char s2[100]; cout <<"Podaj pierwszy ciag:"; cin>>s1; cout<<"podajdrugiciag:"; 13

cin>>s2; char* krotszy; char* dluzszy; strls(s1, s2, dluzszy, krotszy); cout<<"dluzszyzpodanychlancuchowto:"<<dluzszy<<endl <<"Krotszyzpodanychlancuchowto:"<<krotszy<<endl; 3. Napisz funkcję void ptradv(int* wsk, int n), która wyświetla adres przechowywany we wskaźniku wsk oraz wartość zmiennej przez niego wskazywanej. Wkolejnymkrokufunkcjaprzesuwawskaźnik(wsk+=1)ipowtarzapowyższe czynności tyle razy ile wynosi wartość parametru n. Przykład: Adres: 0x12312320, wartość: 12 Adres: 0x12312324, wartość:-123 intt[]={1,3,-6,4; int* z; ptradv(t, 4); z=t; ptradv(z, 4); 4. Napisz funkcję int* odwroc(int*tab, int rozmiar), która tworzy kopię podanej tablicy, ale z elementami w odwrotnym porządku. Wynikiem funkcji jest adres utworzonej tablicy. Przykład programu korzystającego z tej funkcji: intliczby[]={1,2,3,4; int*odwrotnie = odwroc(liczby, 4); for(inti=0;i<4;++i){ cout<<odwrotnie[i]<<""; //powinnowyświetlić:4321 14

delete[] odwrotnie;// zwolnienie przydzielonej pamięci 5. Napisz funkcję void tabliczka(int r), która tworzy tabliczkę mnożenia o wielkości r x r. Następnie w pętli wyświetla wynik mnożenia wskazanych przez użytkownika liczb(dopóty, dopóki użytkownik nie zdecyduje, że już koniec). Następnie wyświetlona zostaje cała tabliczka mnożenia. Uwaga: Tabliczka mnożenia ma zostać zapisana w dwuwymiarowej tablicy dynamicznej, proszę więc pamiętać o przydziale i zwolnieniu pamięci. inti; cout<<"podaj wielkość tabliczki mnożenia:"; cin>>i; tabliczka(i); 6. Napisz funkcję string* podziel na slowa(char tekst[], int&ile slow), której zadaniem jest podzielenie ciągu tekst na słowa(słowo to niepusty ciąg znaków nie zawierający białego znaku). Wynikiem funkcji jest dynamiczna tablica słów(każde typu string), której długość przekazywana jest przez parametr (referencję) &ile slow. Przykładowy program korzystający z funkcji: chars[]=" Alamakota.\nKotmamysz. "; int ile_slow; string* slowa = podziel_na_slowa(s, ile_slow); for(inti=0;i<ile_slow;++i){ cout<<i<<""<<slowa[i]<<endl; delete[] slowa; Wydruk uzyskany w wyniku jego wykonania: 0Ala 1ma 15

2kota. 3Kot 4ma 5mysz. 7. Napisz funkcje void ilepamieci() która sprawdza jaką największą tablicę znaków można utworzyć dynamicznie, przy założeniu że rozmiar tablicy ma być potęgą liczby 2. Funkcja powinna generować wydruk podobny do poniższego: Proba przydzielenia: 2 bajtow, wynik: OK Proba przydzielenia: 4 bajtow, wynik: OK Proba przydzielenia: 8 bajtow, wynik: OK Proba przydzielenia: 16 bajtow, wynik: OK Proba przydzielenia: 32 bajtow, wynik: OK Proba przydzielenia: 64 bajtow, wynik: OK Proba przydzielenia: 128 bajtow, wynik: OK... Proba przydzielenia: 268435456 bajtow, wynik: OK Proba przydzielenia: 536870912 bajtow, wynik: OK Próba przydzielenia: 1073741824 bajtów, wynik: OK Próba przydzielenia: 2147483648 bajtów, wynik: Nie powiodla sie ilepamieci(); 8. Napisz funkcje, która jako parametr otrzymuje dwuwymiarową tablicę liczb całkowitych oraz liczbę całkowitą oznaczającą kolumnę. Funkcja nie zwraca wartości, ale sortuje wiersze w tabeli w kolejności rosnącej- zgodnie z kolumną, której indeks przekazany jest przez wspomniany, drugi parametr. W rzeczywistości należy zmieniać jedynie adresy tablic(odpowiadających za wiersze w tabeli). Przykładowa tablica przed wywołaniem funkcji 23510 21239 09414 92651 68027 16

Tasamatabelapowywołaniufukcjidlakolumnyoindeksie2: 68027 21239 09414 23510 92651 17