уторак, 16 априла, 2024
Како да...?

Увод у програмски језик C (3. део)

Аутор: Стефан Ножинић

У прошлом делу смо се дотакли типова података, оних променљивих над којима се могу извршити неке операције. У овом делу ћемо дискутовати о условном гранању и контролама тока програма и показаћемо неке занимљиве примере.

Условно гранање

Иако смо до сада научили основне ствари о C-у, нисмо били у могућности да напишемо неке занимљиве програме. Нисмо могли да напишемо програм чији ток зависи од вредности неке променљиве, односно од његовог улаза. Прва ствар коју ћемо у овом тексту објаснити, јесте if наредба која прима одређени услов и на основу тога да ли је услов испуњен, извршава неки одређен код. Овај услов јесте релација две променљиве или променљиве и неке константне вредности. Погледајмо синтаксу if наредбе:

if (uslov)
{
	/* .... naredbe koje će biti izvršene ako je uslov ispunjen */
}

Као што смо и рекли, услов је релација па су неки примери услова:

  • a == b – поређење једнакости две променљиве типа int
  • a != b – тачно у случају да су две променљиве различите вредности
  • a > 0 – тачно ако је променљива a (типа /int) већа од нуле

Исто тако постоје и „додаци” за ову наредбу, а то су else if и else. Прво се ставља једна if наредба, затим неколико else if наредби и потом једна else наредба. Наредба else if задаје други услов у случају да онај пре њега није испуњен, док else обухвата све што није обухваћено у горњим случајевима.

Пример: програм који исписује да ли је број позитиван, негативан или нула:

#include <stdio.h>

int main()
{
	int n; // broj u koji unosimo vrednost
	scanf(" %d", &n); // učitavamo broj
	if (n>0) 
	{
		printf("Broj je pozitivan\n");
	}
	else if (n < 0)
	{
		printf("Broj je negativan\n");
	}
	else
	{
		printf("Broj je nula\n");
	}
	return 0;
}

Петље

Сада је време да покажемо како се нека одређена секвенца наредби у нашем програму може понављати, односно извршавати у круг. За то служе петље и најчешће се користе for и while петље.

Петља for се користи у случајевима када знамо тачан број понављања и ту имамо једну променљиву као бројач, она добија почетну вредност, услов који треба да буде испуњен како би се петља извршавала у наредбу која се извршава после сваког извршавања петље, односно итерације. Уколико услов потребан за извршавање више није испуњен, петља се зауставља и наставља се даље извршавање програма.

Синтакса for петље је:

for (inicijalizacija promenljive; uslov; naredba posle svake iteracije)
{
	/* ... naredbe u petlji koje se izvršavaju tokom svake iteracije ... */
}

Ево пример програма који исписује „0 1 2 3 4 5 6 7 8 9”:

#include <stdio.h>

int main()
{
	int brojac;
	for (brojac = 0; brojac < 10; brojac++) // brojac++ je isto što i brojac = brojac + 1
	{
		printf("%d ", brojac);
	}
	return 0;
}

За разлику од for петље, while петље се извршавају све док је један одређен услов испуњен. Нема бројача па се тако не може унапред знати колико ће се пута одредити, односно то није лако разазнати. Код ове петље се често дешава да се програм „заглави” јер је неки услов стално испуњен па се тако петља непрекидно извршава.

Синтакса:

while (uslov)
{
	/* ... naredbe ... */
}

Ево и примера како се горе написани код са for петљом могао написати коришћењем while петље:

#include <stdio.h>

int main()
{
	int brojac = 0;
	while (brojac < 10)
	{
		printf("%d ", brojac);
		brojac++;
	}
	return 0;
}

За крај

За крај овог дела можемо само да вам препоручимо да покушате сами да откуцате нешто и да видите како раде петље јер ћете тако ући у „шему”.

Наредни део овог серијала можете прочитати овде.

Претходни део овог серијала можете прочитати овде.