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

Podobne dokumenty
Język C, tablice i funkcje (laboratorium)

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

tablica: dane_liczbowe

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

Język C zajęcia nr 11. Funkcje

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

1 Podstawy c++ w pigułce.

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

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

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

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

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 9 Funkcje

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

Lab 9 Podstawy Programowania

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

Programowanie strukturalne i obiektowe. Funkcje

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

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

ALGORYTMY I STRUKTURY DANYCH

2 Przygotował: mgr inż. Maciej Lasota

7. Pętle for. Przykłady

Rekurencja (rekursja)

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

Podstawy Programowania C++

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

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

1 Podstawy c++ w pigułce.

4. Funkcje. Przykłady

Warsztaty dla nauczycieli

Programowanie - wykład 4

Wstęp do programowania

Język C++ zajęcia nr 2

Wstęp do Programowania, laboratorium 02

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

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

Tablice, funkcje - wprowadzenie

Funkcje. Wprowadzenie. Mirosław Ochodek

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

Metody Metody, parametry, zwracanie wartości

Pytania sprawdzające wiedzę z programowania C++

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

C-struktury wykład. Dorota Pylak

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

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 5. autor: Grzegorz Smyk

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

Podstawy programowania skrót z wykładów:

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

5 Przygotował: mgr inż. Maciej Lasota

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.

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Część 4 życie programu

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

Stałe, tablice dynamiczne i wielowymiarowe

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

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Laboratorium nr 10. Temat: Funkcje cz.2.

Warunki logiczne instrukcja if

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 6. autor: Grzegorz Smyk

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

Język C, instrukcje sterujące (laboratorium)

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

1 Powtórzenie wiadomości

Programowanie komputerowe. Zajęcia 2

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

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

Wykład 4: Klasy i Metody

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

6. Pętle while. Przykłady

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Wskaźniki w C. Anna Gogolińska

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Funkcja (podprogram) void

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

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

#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 ); }

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

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

I. Podstawy języka C powtórka

Proste programy w C++ zadania

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

Programowanie strukturalne i obiektowe

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

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

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

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

Programowanie - instrukcje sterujące

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ

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

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

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

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

Transkrypt:

Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci. Tablica w języku C jest identyfikowana przez nazwę (identyfikator), a do konkretnych elementów można odwołać się poprzez indeks. Tablicę definiuje się w następujący sposób typ nazwa_tablicy[rozmiar_tablicy]; Typ jest typem (np. int, char, long) elementów przechowywanych w tablicy. Rozmiar tablicy to liczba całkowita określająca liczbę przechowywanych w tablicy elementów. Liczba ta musi być wartością stałą, znaną na etapie kompilacji. Przykłady definicji tablic int pomiary[10]; //10-elementowa tablica liczb calkowitych double fun[25]; //25-elementowa tablica liczb zmiennoprzecinkowych char imie[64]; //64-elementowa tablica znakow int wsp[3] = 34, 12, 99; //definicja tablicy z inicjalizacja - nadaniem //wartosci poczatkowych kolejnym elementom Do elementów tablicy odwołujemy się najczęściej poprzez operator indeksowania [], podając numer elementu: nazwa_tablicy[nr_elementu]; na przykład a = pomiary[0]; //podstawienie do zmiennej a wartości pierwszego //elementu tablicy printf("%d",pomiary[5]); //wypisanie piątego elementu tablicy pomiary[7] = 11; //przypisanie do siódmego elementu tablicy wartosci 11 UWAGA! Tablice w języku C są indeksowane od 0 (pierwszy element) do ROZMIAR_TABLICY-1 (ostatni element), np. tablica pomiary, której definicję podano powyżej, zawiera elementy o indeksach 0,1,2,3,4,5,6,7,8,9. Należy zwracać uwagę na nieprzekraczanie zakresu tablicy, gdyż może to spowodować otrzymanie dziwnych danych lub wystąpienie błędu naruszenia ochrony pamięci. Do wykonywania operacji na elementach tablicy często używa się pętli. Przykłady (tablice) Wczytywanie elementów tablicy int tab[10]; //definicja tablicy, elementy 0..9 for (i=0; i<10; i++)

scanf("%d",&tab[i]); Wczytywanie określonej (podanej przez użytkownika) liczby elementów tablicy W tym i kolejnych przykładach rozmiar tablicy definiowany jest jako stała ROZMIAR_TAB. Jeżeli okaże się, że konieczne jest np. zwiększenie rozmiaru, wystarczy dokonać zmiany tylko w jednym miejscu nie trzeba przeglądać wszystkich warunków w pętlach odwołujących się do tablicy itp.. //'stala' rozmiar tablicy #define ROZMIAR_TAB 10 int tab[rozmiar_tab]; //definicja tablicy, elementy 0..9 int N; //liczba elementow do wczytania podaje uzytkownik printf("ile elementow tablicy wczytac (max. 10): "); scanf("%d",&n); //sprawdzenie, czy N elementow zmiesci sie w tablicy if (N<=ROZMIAR_TAB) for (i=0; i<n; i++) printf("podaj element nr %d:",i); scanf("%d",&tab[i]); else printf("tablica może zawierac max. %d elementow!",rozmiar_tab); Dla zainteresowanych: #define NAZWA CZYM_ZASTAPIC jest dyrektywą preprocesora, tzw. makrodefinicją. Wystąpienie takiej dyrektywy powoduje, że przed kompilacją programu preprocesor podmienia w kodzie źródłowym (tym przekazywanym kompilatorowi, nie edytowanym przez programistę!) wszystkie wystąpienia NAZWA poprzez CZYM_ZASTAPIC. Obliczanie sumy elementów w tablicy liczb całkowitych //'stala' rozmiar tablicy #define ROZMIAR_TAB 5 //inicjalizacja tablicy przykladowymi wartosciami int tab[rozmiar_tab] = 1, 33, 66, 77, 21; int suma = 0; //suma elementow tablicy for (i=0; i<rozmiar_tab; i++) suma+=tab[i]; //odpowiednik suma=suma+tab[i]

printf("suma elementow tablicy wynosi %d", suma); Zadania (tablice) 1. Napisz program, który wczyta N liczb całkowitych do tablicy i obliczy sumę liczb dodatnich i ujemnych. Przykładowe działanie programu (wartości wpisywane z klawiatury zostały pogrubione): Ile elementow tablicy wczytac? 5 Podaj kolejne elementy: 2 3-5 -11 4 Suma dodatnich: 9 Suma ujemnych: -16 2. Napisz program, który wczyta N liczb całkowitych do tablicy i wyznaczy ich średnią, maksimum i minimum. Ile elementow tablicy wczytac: 4 Podaj kolejne elementy: 6 5 3 4 Średnia: 4.5 Max: 6 Min: 4 3. Napisz program, który wczyta N liczb, a następnie wypisze je na ekranie w odwrotnej kolejności. Ile elementow tablicy wczytac? 4 Podaj kolejne elementy: 11 52 45 23 W odwrotnej kolejności: 23 45 52 11 4. Napisz program, który wczyta N liczb do tablicy, zmodyfikuje tablicę tak, że i-ty element będzie zsumowany z sumą poprzedzających go elementów i wypisze zmodyfikowaną tablicę. Na przykład dla wczytanych liczb: 2, 4, 12, 3, 5 program powinien wypisać: 2, 6 (=2+4), 18 (=6+12), 21 (=18+3), 26 (=21+5) Ile elementow tablicy wczytac? 5 Podaj kolejne elementy: 1 2 3 4 5 Wynik: 1 3 6 10 15

Wstęp (funkcje) Funkcja (podprogram) jest wydzieloną częścią programu, wykonująca określone instrukcje. Może przyjmować argumenty (parametry) i zwracać w wyniku działania wartość. Funkcja może zostać wywołana z poziomu innej funkcji (np. z poziomu głównego programu - funkcji main) lub wywoływać samą siebie (rekurencja). Dzięki funkcjom unika się powielania kodu, a tworzony program łatwiej jest modyfikować. Ogólny schemat definicji funkcji: typ_zwracany nazwa_funkcji(typ1 argument1, typ2 argument2, typ_n argument_n) /* instrukcje */ Funkcja może nie zwracać żadnej wartości, wtedy jako typ_zwracany podaje się void. Jeżeli funkcja nie przyjmuje żadnych parametrów, jej definicja wygląda następująco: typ_zwracany nazwa_funkcji(void) /* instrukcje */ Ogólny schemat wywołania funkcji: nazwa_funkcji(argument1, argument2, argumentn); //przypisanie wartosci zwroconej przez funkcje do zmiennej zmienna=nazwa_funkcji(argument1, argument2, argumentn); //jeżeli funkcja nie przyjmuje żadnych argumentów puste nawiasy okragle nazwa_funkcji2(); Przykład definicji i wywołania funkcji //definicja funkcji suma //funkcja przyjmuje 2 parametry calkowitoliczbowe x i y //w wyniku jej dzialania zwracana jest liczba calkowita int suma(int x, int y) int s = x + y; //obliczenie sumy argumentow x i y return s; //i jej zwrocenie int x=1; int rezultat = suma(x,3); printf("rezultat funkcji: %d",rezultat); //mozna tez tak, bez dodatkowej zmiennej pomocniczej printf("rezultat funkcji: %d",suma(x,3)); Zdefiniowana została funkcja suma, przyjmująca 2 parametry całkowitoliczbowe x, y i zwracająca w wyniku działania liczbę całkowitą. Ciało funkcji (operacje które wykonuje) jest zawarte w nawiasach klamrowych. Instrukcja return w ciele powoduje zakończenie jej wykonywania ze zwróceniem wyrażenia podanego po return jako wyniku.

Wywołanie funkcji odbywa się poprzez podanie jej nazwy i argumentów oddzielonych przecinkami. Jeżeli funkcja zwraca wynik, można go np. przypisać do zmiennej, jak w przykładzie powyżej. Uwaga! W języku C argumenty funkcji są przekazywane przez wartość. Przy wywołaniu funkcji tworzone są lokalne kopie przekazywanych argumentów i wewnątrz funkcji operuje się na tych kopiach. Oznacza to, że przekazywane argumenty nie ulegają zmianie. Przykład: void dokwadratu(int x) printf("funkcja dokwadratu poczatek, x=%d",x); x*=x; //odpowiada x=x*x; printf("funkcja dokwadratu po wykonaniu operacji, x=%d",x); int liczba=5; printf("liczba przed wywolaniem dokwadratu: %d",liczba); //wywolanie funkcji dokwadratu, zmienna liczba jest kopiowana do argumentu x //funkcji! dokwadratu(liczba); //wartosc zmiennej liczba nie zostanie zmodyfikowana, funkcja pracuje na //kopii printf("liczba po wywolaniu dokwadratu: %d",liczba); Zadania (funkcje) 1. Napisz, a następnie wywołaj w programie funkcję wyznaczającą wartość bezwzględną liczby przekazanej jako parametr. 2. Napisz, a następnie wywołaj w programie funkcję wyznaczającą średnią dwóch liczb zmiennoprzecinkowych 3. Napisz, a następnie wywołaj w programie funkcję przyjmującą 2 parametry liczbowe (np. N i X), która obliczy N-tą potęgę liczby X (bez wykorzystania funkcji pow z biblioteki standardowej). 4. Wywołaj funkcję z punktu 2, podając jako argumenty wartości bezwzględne (obliczone przy pomocy funkcji z punktu 1) dwóch liczb wczytanych z klawiatury. Wywołanie takie zrealizuj jako jedną instrukcję. Przykładowe działanie programu: Podaj X: -4 Podaj Y: 6 'Srednia': 10 5. Napisz a następnie wywołaj w programie funkcję sprawdzającą, czy liczba podana jako parametr jest liczbą pierwszą. Podpowiedź: wykorzystaj operator reszty z dzielenia (%).