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

Podobne dokumenty
Tablicę 2-wymiarową można przedstawić jako pewien zestaw tablic 1-wymiarowych np.:

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

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

Język C, tablice i funkcje (laboratorium)

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

tablica: dane_liczbowe

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 1

Tablice, funkcje - wprowadzenie

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

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

Podstawy programowania

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

Argumenty wywołania programu, operacje na plikach

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

Język C zajęcia nr 11. Funkcje

Podstawy programowania w języku C++

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

2 Przygotował: mgr inż. Maciej Lasota

Podstawy programowania w języku C++

Podstawy programowania

Algorytmy sortowania w języku C. Autor: mgr inż. Sławomir Samolej. Zagadnienie 1. (Sortowanie)

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

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

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

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

Tablice deklaracja, reprezentacja wewnętrzna

Programowanie strukturalne język C

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

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

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

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

Zmienne, stałe i operatory

Wprowadzenie do programowania w języku C

Lab 9 Podstawy Programowania

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

Tablice, funkcje, wskaźniki - wprowadzenie

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

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

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

Podstawy programowania w języku C++

Autor: mgr inż. Sławomir Samolej. Zagadnienie 1. (instrukcja wyboru: switch)

IX. Wskaźniki.(3 godz.)

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

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

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

Programowanie komputerowe. Zajęcia 4

Stałe, tablice dynamiczne i wielowymiarowe

Przeciążanie funkcji. Przykład 1: #include <iostream> using namespace std; double srednia(double n1, double n2) { return ((n1 + n2)/2.

Inicjacja tablicy jednowymiarowej

Podstawy Programowania C++

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

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

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

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

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

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

4. Tablica dwuwymiarowa to jednowymiarowa tablica wskaźników do jednowymiarowych tablic danego typu.

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

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

//zmienne globalne int *pa, *pb; //wskaźniki globalne void main(void) { clrscr(); printf("\n podaj wartosc liczby a\n"); scanf("%d",&a); pa=&a;

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Programowanie komputerowe. Zajęcia 3

Programowanie obiektowe 2005/2006. Laboratorium 1. Przeciążanie funkcji

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.

Zmienne i struktury dynamiczne

do instrukcja while(wyrażenie);

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

while(wyrażenie) instrukcja

Wstęp do programowania

Laboratorium 5: Tablice. Wyszukiwanie binarne

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

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

6 Przygotował: mgr inż. Maciej Lasota

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

- - Ocena wykonaniu zad3. Brak zad3

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

1 Podstawy c++ w pigułce.

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

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

Języki i techniki programowania Ćwiczenia 2

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

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

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

Wstęp do programowania

Wstęp do programowania

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

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

Podstawy programowania w języku C i C++

Programowanie Proceduralne

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

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

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:

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

Programowanie w języku C++

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

1 Podstawy c++ w pigułce.

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

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

Proste programy w C++ zadania

Transkrypt:

emat zajęć: ablice jednowymiarowe w języku C Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (ablice liczbowe jednowymiarowe) ablica jest ciągiem identycznych elementów znajdujących się jeden za drugim w pamięci. Podstawowe informacje o tablicy to jej długość i typ danych jej elementów, np.: int tab1[30]; // 30-elementowa tablica elementów typu int char tekst[10]; // 10-elementowa tablica elementów typu char (tablica tekstowa) Odwołać się do elementu tablicy można przez indeks do tego elementu np.: int tab2[4]=2,5,6,7; int a, b; a=tab2[0]; // zmiennej a przypisz zawartość pierwszego elementu tablicy tab2 b=tab2[3]; // zmiennej b przypisz zawartość ostatniego elementu tablicy tab2 tab2[2]=45; // elementowi tablicy o indeksie 2 nadaj wartość 45 Uwaga: Indeksowanie tablicy odbywa się zawsze od 0! Ostatni element ma indeks równy (rozmiar tablicy) 1! Zadania: Zadanie 1. #define DL_AB 10 // definicja stałej DL_AB int tab[dl_ab]; // globalna tablica typu int o dlugosci DL_AB int max(int t[],int dl_tab); int max_el,i; printf("podaj 10 liczb stalopozycyjnych:\n"); for(i=0;i<dl_ab;) printf("tab[%d]=",i); scanf("%d",&tab[i]); printf("zawartosc tablicy:\n");

for(i=0;i<dl_ab;) printf("tab[%d]=%d\n",i,tab[i]); max_el=max(tab,dl_ab); printf("ajwiekszy element tablicy wynosi: %d\n",max_el); int max(int t[],int dl_tab) int i, max_el=t[0]; return max_el; Uzupełnić funkcję max w taki sposób, aby przeszukała ona tablicę t o rozmiarze dl_tab, znalazła największy element tej tablicy, a następnie zwróciła go. Proponowany algorytm działania funkcji: t,dl_tab max_el=t[0] i=1 i<dl_tab max_el SOP t[i]>max_el max_el=t[i]

Zadanie 2. #define DL_AB 5 int tab[dl_ab]; // definicja stałej DL_AB // globalna tablica typu int o dlugosci DL_AB float sr(int t[],int dl_tab); float srednia; int i; printf("podaj 5 liczb stalopozycyjnych:\n"); for(i=0;i<dl_ab;) printf("tab[%d]=",i); scanf("%d",&tab[i]); printf("zawartosc tablicy:\n"); for(i=0;i<dl_ab;) printf("tab[%d]=%d\n",i,tab[i]); srednia=sr(tab,dl_ab); printf("srednia z wszystkich elementow tablicy wynosi: %f\n",srednia); float sr(int t[],int dl_tab) int i; float srednia; return srednia; Uzupełnić funkcję sr w taki sposób, aby wyliczyła i zwróciła średnią arytmetyczną z wartości zawartych w tablicy t o długości dl_tab.

Zadanie 3. int t1[6]=1,-3,4,-5,3,2; int t2[10]; void kopiuj( int dane_zrodlowe[],int rozmiar1, int dane_docelowe[],int rozmiar2 ); int i; printf("dane zrodlowe (przed przetwarzaniem):\n"); for(i=0;i<6;) printf("dane_zrodlowe[%d]=%d\n",i,t1[i]); printf("dane docelowe (przed przetwarzaniem):\n"); for(i=0;i<10;) printf("dane_docelowe[%d]=%d\n",i,t2[i]); kopiuj(t1,6,t2,10); printf("dane zrodlowe (po przetwarzaniu):\n"); for(i=0;i<6;) printf("dane_zrodlowe[%d]=%d\n",i,t1[i]); printf("dane docelowe (po przetwarzaniu):\n"); for(i=0;i<10;) printf("dane_docelowe[%d]=%d\n",i,t2[i]); void kopiuj( int dane_zrodlowe[],int rozmiar1, int dane_docelowe[],int rozmiar2) Uzupełnić funkcję kopiuj. Zadaniem funkcji jest przeniesienie wszystkich dodatnich elementów z tablicy dane_zrodlowe o rozmiarze rozmiar1 na kolejne miejsca w tablicy dane_docelowe o rozmiarze rozmiar2. Ewentualne wolne miejsca w tablicy dane_docelowe mają zostać wypełnione 0. Przykład: Przed przetworzeniem tablice mają postać: int t1[6]=1,-3,4,-5,3,2; int t2[10]=; Po wykonaniu funkcji kopiuj tablice powinny mieć postać: int t1[6]=1,-3,4,-5,3,2; int t2[10]=1,4,3,2,0,0,0,0,0,0; Poniżej podano algorytm rozwiązania zadania:

dane_zrodlowe[], dane_docelowe[], rozmiar1, rozmiar2 i=0 i<rozmiar2 dane_docelowe[i]=0 i=0, j=0 i<rozmiar1 SOP dane_zrodlowe[i]>0 dane_docelowe[j]=dane_zrodlowe[i] j++

Zagadnienie 2. (ablice tekstowe) ablice o elementach typu char mogą przechowywać teksty. ekst w języku C jest ciągiem znaków (typu char) zakończonych liczbą 0. Liczbę 0 w tablicach tekstowych często koduje się przy pomocy specjalnego znaku: \0. Jeśli chcemy zachować w tablicy o elementach typu char pewien tekst, możemy zainicjalizować tablicę w pamięci, a następnie przypisać jej stałą tekstową, np.: char tekst1[100]= o jest tekst ; W pamięci w poszczególnych elementach tablicy zapisane zostaną kolejne znaki tekstu, a na koniec \0 : tekst1[0]==, tekst1[1]== o, tekst1[2]==,..., tekst1[12]= t, tekst1[13]== \0, Przy inicjalizacji tablicy należy zwrócić uwagę na rozmiar tablicy. Rozmiar powinien być wystarczający do przechowania tekstu. W przykładowej tablicy tekst1 o rozmiarze 100 elementów, zapamiętany został tekst o długości 13 znaków (w długości tekstu nie uwzględnia się znaku \0 na końcu każdego tekstu). Podczas przetwarzania tekstów z reguły nie uwzględnia się faktycznej długości tablicy, a raczej długość tekstu w niej zawartego. Zadanie 4. char tekst[100]; int str_len(char txt[]); int len; printf("podaj dowolny tekst (do 80 znakow):\n"); gets(tekst); // funkcja pobierajaca jedna linie tekstu len=str_len(tekst); printf("ekst: \"%s\" \nma dlugosc: %d\n",tekst,len); int str_len(char txt[]) Uzupełnić funkcję str_len w taki sposób, aby obliczała i zwracała długość tekstu zawartego w tablicy tekstowej przekazanej przez parametr txt. Poniżej podano propozycję algorytmu:

txt[] i=0 len=0 txt[i]!= \0 len len++ SOP Zadanie 5. char tekst1[100]="o jest tekst do kopiowania"; char tekst2[100]; int str_cpy(char zr[], char cel[]); int len; printf("zawartosc tablicy zrodlowej (przed przetwarzaniem):\n"); printf("%s\n",tekst1); printf("zawartosc tablicy docelowej (przed przetwarzaniem):\n"); printf("%s\n",tekst2); // Przetwarzanie: len=str_cpy(tekst1,tekst2); printf("zawartosc tablicy zrodlowej (po przetwarzaniu):\n"); printf("%s\n",tekst1); printf("zawartosc tablicy docelowej (po przetwarzaniu):\n"); printf("%s\n",tekst2); int str_cpy(char zr[], char cel[])

Uzupełnić funkcję str_copy w taki sposób, aby dokonywała kopiowania tekstu z tablicy źródłowej (zr) do tablicy docelowej (cel). Dodatkowo funkcja powinna zwracać ilość przekopiowanych znaków. Poniżej podano propozycję algorytmu funkcji: zr[], cel[] i=0 zr[i]!= \0 cel[i]= \0 i cel[i]=zr[i] SOP Zadanie 6. char tab[60]; int atoi(char s[]); int liczba; printf("podaj liczbe calkowitą nieujemna:\n"); gets(tab);

printf("wczytana liczba w postaci tablicy znakow: %s\n",tab); liczba=atoi(tab); printf("wczytana liczba w postaci liczby calkowitej: %d\n",liczba); int atoi(char s[]) apisać funkcję atoi, która przekształca liczbę zapisaną w postaci tablicy tekstowej na liczbę zapisaną jako dana typu całkowitego. Poniżej zaproponowano algorytm funkcji: s[] i=0 n=0 s[i]>= 0 && s[i]<= 9 n SOP n=10*n+(s[i]- 0 )