18
ШКОЛА РАЈАК ПРОГРАМЕРСКА РАДИОНИЦА ПОКАЗИВАЧИ И СТРИНГОВИ Предавач: Себастиан Новак Техничка подршка: Илија Рајак, Ким Новак www.rajak.rs

Школа Рајак Програмерска радионица

  • Upload
    luigi

  • View
    37

  • Download
    4

Embed Size (px)

DESCRIPTION

Школа Рајак Програмерска радионица. ПОКАЗИВАЧИ И СТРИНГОВИ Предавач: Себастиан Новак Техничка подршка: Илија Рајак, Ким Новак www.rajak.rs. “ Bubble sort ” Алгоритам. ПОЧЕТАК. Целобројни х [4] = { 6 , 5, 1 , 3 } Целобројни i,j , temp. i=n. T. Сортиран низ. i>0. КРАЈ. T. j=1. T. - PowerPoint PPT Presentation

Citation preview

Page 1: Школа Рајак Програмерска радионица

ШКОЛА РАЈАКПРОГРАМЕРСКА

РАДИОНИЦА

ПОКАЗИВАЧИ И СТРИНГОВИПредавач: Себастиан Новак

Техничка подршка: Илија Рајак, Ким Новак

www.rajak.rs

Page 2: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

“BUBBLE SORT” АЛГОРИТАМПОЧЕТАК

Целобројни х[4] = { 6 , 5, 1, 3}Целобројни i,j, temp

i=n

j=1

x[j-1] >x[j]

temp=x[j-1]

x[j-1]=x[j]x[j] = temp

T

T

i>0

j<=i

T

T

j++

T

i- -

КРАЈСортиран низ

T

Page 3: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

“BUBBLE SORT” АНИМАЦИЈА

6 5 3 1

Укључи / Искључи Wikipedia анимације

j

i

Page 4: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

НИЗОВИ И ПОКАЗИВАЧИ

Име низа је показивач на нулти члан низа. Пример:Доказ да је име низа показивач на нулти члан:

Page 5: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

НИЗОВИ У МЕМОРИЈИ РАЧУНАРАСИСТЕМСКИ ДЕО МЕМОРИЈЕЈЕЗГРО ОПЕРАТИВНОГ СИСТЕМА, НИЈЕ НАМ ДОСТУПНА ЗА УПОТРЕБУ

МЕМОРИЈСКА ЛОКАЦИЈА 1 X[0]

МЕМОРИЈСКА ЛОКАЦИЈА 2 X[1]

МЕМОРИЈСКА ЛОКАЦИЈА 3 X[2]

МЕМОРИЈСКА ЛОКАЦИЈА 4 X[3]

МЕМОРИЈСКА ЛОКАЦИЈА 5

МЕМОРИЈСКА ЛОКАЦИЈА 6

МЕМОРИЈСКА ЛОКАЦИЈА 7

МЕМОРИЈСКА ЛОКАЦИЈА 1337 pokazivac

...

МЕМОРИЈСКА ЛОКАЦИЈА 9001

....

Page 6: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

НИЗОВИ У МЕМОРИЈИ РАЧУНАРА Низови, када је реч о програмском језику C, се

заузимају као један непрекидан блок дела меморије.

На пример низ целих бројева од 10 елемената се заузима као 10 промељивих целобројног типа, са једном разликом. Код низа су сви елементи један поред другог у меморији. 10 различитих променљивих могу да буду било где у меморији, на 10 различитих локација, нимало близу једна другој.

Оператор индексирања [ ] даје приступ елементу тако увећава адресу нултог члана за индекс елемента кога тражимо. &X[1] = &X[0] +1

Зашто је ово важно? Због ове чињенице се низови преко функција обрађују исто као и у главном потпрограму.

Page 7: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 1: ИСПИС НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА

ПОЧЕТАК

Целобројни Х[10] Целобројни rez

ispisNiza(X,10)

КРАЈ

rez

rez == 0

Успешно извршен програм

Неуспешно извршен програм

T

T

Целобројни ispisNiza( Целобројни* P, Целобројни brEle)

Целобројни i

i=0;

i<brEle

P[i]

i++T

T

Врати 0

Помери слику кода

Page 8: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 1: ИСПИС НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА

Page 9: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 2: ИЗМЕНА НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА

Сви подаци испод 20 су грешке при преносу, или грешка уређаја.Санирају се постављањем вредности тих елемената на 0.

Page 10: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 2: ИЗМЕНА НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА

ПОЧЕТАК

Целобројни iЦелобројни X[4]

preuzmiPodatke(X, 4)

i=0

i<n

P[i]<100

obradiPodatke(X, 4)

obradiPodatke(Целобројни* P, Целобрoјни n)

ispisNiza(X,4)

Обрађени подаци

КРАЈ

Целобројни i

P[i]=0

i++

Врати се одакле си

позван

Т Т

Т

Т

Page 11: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 2: ИЗМЕНА НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА

Page 12: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ASCII ТАБЕЛА

Page 13: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 3: ИГРАЊЕ СА НАЧИНОМ КОНВЕРТОВАЊА ЈЕДИНИЦА И НУЛА ИЗ МЕМОРИЈЕ У ВРЕДНОСТИ ПРОМЕНЉИВИХ

Page 14: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 3: ИГРАЊЕ СА НАЧИНОМ КОНВЕРТОВАЊА ЈЕДИНИЦА И НУЛА ИЗ МЕМОРИЈЕ У ВРЕДНОСТИ ПРОМЕНЉИВИХ

Page 15: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

СТРИНГОВИ

Стрингови су само обичан низ типа char. Са једном битном особином. Последњи елемент мора да буде знак NULL односно ‘\0’.

Знак NULL даје смисао обичном низу знакова и говори је у питању стринг.

NULL је неопходан, да би функције које обрађују стрингове знале где је његов крај.

Примери неких стрингова:

Page 16: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

УНОС СТРИНГА

Strings.h Stdio.h

Page 17: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

GETS / PUTS

#include <stdio.h>#include <strings.h>

int main(){char str [10];scanf(“%s”, str);printf(“%s”, str);

gets(str);puts(str);

return 0;}

Page 18: Школа Рајак Програмерска радионица

ww

w.ra

jak.rs

ПРИМЕР 4: БРОЈАЊЕ САМОГЛАСНИКА У СТРИНГУ

ПОЧЕТАК

Знаковни str[10]Целобројни brSmgls

str

prebrojSamoglasnike(str)

brSmgls

brSmgls

КРАЈ

prebrojSamoglasnika(Знаковни* S)

Целобројни i,n,brSm=0

i=0

i<nT

T

S[i] samoglasnik

?

brSm++

i++Врати brSm

T

T