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
ШКОЛА РАЈАКПРОГРАМЕРСКА
РАДИОНИЦА
ПОКАЗИВАЧИ И СТРИНГОВИПредавач: Себастиан Новак
Техничка подршка: Илија Рајак, Ким Новак
www.rajak.rs
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
ww
w.ra
jak.rs
“BUBBLE SORT” АНИМАЦИЈА
6 5 3 1
Укључи / Искључи Wikipedia анимације
j
i
ww
w.ra
jak.rs
НИЗОВИ И ПОКАЗИВАЧИ
Име низа је показивач на нулти члан низа. Пример:Доказ да је име низа показивач на нулти члан:
ww
w.ra
jak.rs
НИЗОВИ У МЕМОРИЈИ РАЧУНАРАСИСТЕМСКИ ДЕО МЕМОРИЈЕЈЕЗГРО ОПЕРАТИВНОГ СИСТЕМА, НИЈЕ НАМ ДОСТУПНА ЗА УПОТРЕБУ
МЕМОРИЈСКА ЛОКАЦИЈА 1 X[0]
МЕМОРИЈСКА ЛОКАЦИЈА 2 X[1]
МЕМОРИЈСКА ЛОКАЦИЈА 3 X[2]
МЕМОРИЈСКА ЛОКАЦИЈА 4 X[3]
МЕМОРИЈСКА ЛОКАЦИЈА 5
МЕМОРИЈСКА ЛОКАЦИЈА 6
МЕМОРИЈСКА ЛОКАЦИЈА 7
…
МЕМОРИЈСКА ЛОКАЦИЈА 1337 pokazivac
...
МЕМОРИЈСКА ЛОКАЦИЈА 9001
....
ww
w.ra
jak.rs
НИЗОВИ У МЕМОРИЈИ РАЧУНАРА Низови, када је реч о програмском језику C, се
заузимају као један непрекидан блок дела меморије.
На пример низ целих бројева од 10 елемената се заузима као 10 промељивих целобројног типа, са једном разликом. Код низа су сви елементи један поред другог у меморији. 10 различитих променљивих могу да буду било где у меморији, на 10 различитих локација, нимало близу једна другој.
Оператор индексирања [ ] даје приступ елементу тако увећава адресу нултог члана за индекс елемента кога тражимо. &X[1] = &X[0] +1
Зашто је ово важно? Због ове чињенице се низови преко функција обрађују исто као и у главном потпрограму.
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
Помери слику кода
ww
w.ra
jak.rs
ПРИМЕР 1: ИСПИС НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА
ww
w.ra
jak.rs
ПРИМЕР 2: ИЗМЕНА НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА
Сви подаци испод 20 су грешке при преносу, или грешка уређаја.Санирају се постављањем вредности тих елемената на 0.
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++
Врати се одакле си
позван
Т Т
Т
Т
ww
w.ra
jak.rs
ПРИМЕР 2: ИЗМЕНА НИЗА УПОТРЕБОМ ФУНКЦИЈЕ И ПОКАЗИВАЧА
ww
w.ra
jak.rs
ASCII ТАБЕЛА
ww
w.ra
jak.rs
ПРИМЕР 3: ИГРАЊЕ СА НАЧИНОМ КОНВЕРТОВАЊА ЈЕДИНИЦА И НУЛА ИЗ МЕМОРИЈЕ У ВРЕДНОСТИ ПРОМЕНЉИВИХ
ww
w.ra
jak.rs
ПРИМЕР 3: ИГРАЊЕ СА НАЧИНОМ КОНВЕРТОВАЊА ЈЕДИНИЦА И НУЛА ИЗ МЕМОРИЈЕ У ВРЕДНОСТИ ПРОМЕНЉИВИХ
ww
w.ra
jak.rs
СТРИНГОВИ
Стрингови су само обичан низ типа char. Са једном битном особином. Последњи елемент мора да буде знак NULL односно ‘\0’.
Знак NULL даје смисао обичном низу знакова и говори је у питању стринг.
NULL је неопходан, да би функције које обрађују стрингове знале где је његов крај.
Примери неких стрингова:
ww
w.ra
jak.rs
УНОС СТРИНГА
Strings.h Stdio.h
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;}
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