Lab 06

background image

Laboratorium nr 6

Temat: Definiowanie i wykorzystanie funkcji oraz wst p do wska ników.

1)

Definiowanie funkcji

# include <stdio.h>
# include <conio.h>

char znak(void) {
char zmienna;
printf("Podaj znak=");
scanf("%c",&zmienna);
return zmienna;
}

main() {
char zmienna;
zmienna=znak();
printf("Wpisales
znak=%c\n",zmienna);
getch();
return (0);
}

# include <stdio.h>
# include <conio.h>

float liczba(void) {
float zmienna;
printf("Podaj liczbe=");
scanf("%f",&zmienna);
return zmienna;
}

main() {
float zmienna;
zmienna=liczba();
printf("Wpisales
liczbe=%f\n",zmienna);
getch();
return (0);
}

Uwaga:

Istniej dwa sposoby przekazywania parametrów do funkcji:

• przez warto – przesyłana warto parametru

• przez referencj (adres) – przesyłany adres parametru

J zyk C i C++ przesyła parametry przez warto , z jednym wyj tkiem – tj. tablice. W przypadku tablic przesyłany

jest adres pierwszego elementu tablicy.

2)

Przekazywanie parametrów do funkcji poprzez warto

# include <stdio.h>
# include <conio.h>

float kwadrat(float a, float b) {
float wartosc;
wartosc=a*b;
return wartosc;
}

main() {
float a,b,zmienna;
printf("Podaj pierwsza liczbe=");
scanf("%f",&a);
printf("Podaj druga liczbe=");
scanf("%f",&b);
zmienna=kwadrat(a,b);
printf("Kwadrat liczb=%f\n",zmienna);
getch();
return (0);
}

3)

Wst p do wska ników

AD.1. Podstawowe informacje o wska nikach

Mówi c potocznie, wska nik to po prostu zmienna zawieraj ca adres miejsca w pami ci, w którym

znajduj si jakie dane. Jednym z najlepszych sposobów zrozumienia wska ników jest ich wizualizacja na

diagramach. Zamiast w diagramach pokazywa konkretne adresy, zwykle u ywa si strzałek, które mówi , co

wska nik wskazuje. Kiedy wska nik nie wskazuje niczego, czyli kiedy zostanie mu przypisana warto NULL

W j zyku C dla ka dego typu T mo na okre li odpowiedzialny mu typ zmiennych zawieraj cy adres

miejsc pami ci, w których znajduj si obiekty typu T. Zmienne takie mo na traktowa jako wskazuj ce

obiekty – st d nazwa wska niki.

background image

zaznacza si to kresk zako czon podwójn kresk poprzeczn . Deklaracja wska nika jest tym samym, co

zadeklarowanie ka dej innej zmiennej, jednak wymaga to dodatkowo u ycia odpowiedniego operatora.

Operatory wska ników:

* Operator wska nika lub inaczej wskazania po redniego; ułatwieniem b dzie odczytanie tego operatora jako

"warto znajduj ca si pod adresem"

& Operator adresu; ułatwieniem b dzie odczytanie tego operatora jako "adres zmiennej"

Przykładowy diagram – niektóre operacje na wska nikach

main() {

int a, *wsk_i, *wsk_j, *wsk_k;

(1) a=10;

(2) wsk_i=&a;

(3) wsk_j=wsk_i;

(4) *wsk_j=100;

(5) wsk_k=NULL;

…}

(1)

a

10

wsk_i

wsk_j

wsk_k

(2)

a

10

wsk_i

wsk_j

wsk_k

(3)

a

10

wsk_i

wsk_j

wsk_k

(4)

a

100

wsk_i

wsk_j

wsk_k

(5)

a

100

wsk_i

wsk_j

wsk_k

Materiał do opanowania:

1.

Podstawowe informacje o wska nikach

2.

Alokacja pami ci

3.

Agregaty i arytmetyka wska ników

4.

Wska niki jako parametry funkcji

5.

Wska niki do wska ników

6.

Wska niki ogólne i rzutowanie

7.

Wska niki do funkcji

4)

Przekazywanie warto ci do funkcji poprzez referencj

# include <stdio.h>
# include <conio.h>

int kwadrat(float a, float b, float *wartosc) {
if((a<0||a>9)||(b<0||b>9)) return (1);
else *wartosc=a*b;
return (0);
}

main() {
float a,b,wartosc;
printf("Podaj pierwsza liczbe=");
scanf("%f",&a);
printf("Podaj druga liczbe=");
scanf("%f",&b);
if (!kwadrat(a,b,&wartosc)) printf("Kwadrat liczb=%f\n",wartosc);
else printf("Niewlasciwe liczby\n");
getch();
return (0);
}

5)

Zadanie: Opracuj prosty kalkulator wykonuj cy podstawowe operacje matematyczne, np. dodawania,

odejmowanie, mno enie, dzielenie, pot gowanie itp. Program powinien posiada nast puj ce elementy:

1.

krótkie "menu" wyboru,

2.

obliczenia w oparciu o funkcje,

3.

zabezpieczenia poprawno ci wprowadzanych danych oparte na operatorach relacji,

4.

odwołanie do zmiennych poprzez referencje/wska niki.

Uwaga: działania matematyczne nale y wprowadza w jednej linii, np. a+b, a-b, a*b, a/b tzn.

Podaj dzialanie:
2+2
Wynik:
4.00


Wyszukiwarka

Podobne podstrony:
Lab 06 2011 2012
Lab 06 2011 2012 NWD
Lab 06 Instrukcje sterujace id Nieznany
lab 06
lab 06
Test z Lab 3 06 07
2011 Lab 06 estymacja IRid 27451
Lab 06
CMS Lab 06 Podstawy PHP
lab 06 Projektowanie filtrow
MP Lab 06 Rotametr, 6
lab 06 id 257535 Nieznany
bd lab 06 id 81969 Nieznany (2)
fiz lab 06
Lab 06
Lab 06 Obliczenia w C
lab 2 06 badanie prostownikow
Lab 06 2011 2012

więcej podobnych podstron