Циклус са предусловом – while циклус

Код циклуса са предусловом није унапред познат број понављања. Пре сваког проласка кроз петљу израчунава се вредност логичког израза uslov. Уколико је вредност израза uslov true извршава се тело циклуса. Овај поступак се понавља све док је вредност израза uslov true. Услов који се испитује поставља се испред тела циклуса, зато се оваква структура и назива – циклус са предусловом. Унутар циклуса мора да постоји наредба која мења вредност израза uslov тако да након одређеног броја понављања добије вредност false. Алгоритамски облик ове програмске структуре представљен је на слици:


uslov – логички израз који као вредност даје true или false
naredba1, naredba2 … naredbaN – представљају наредбе у телу циклуса. Наредба у телу циклуса може бити било која од наредби програмског језика C

Начин извршавања је следећи:
– проверава се вредност услова
– када је услов тачан улази се у тело циклуса и извршавају се наредбе
– када је услов нетачан прескаче се тело циклуса и извршава се прва следећа наредба која се налази ван тела циклуса
Овакав начин извршења указује на то да је могуће да се деси да се тело циклуса не изврши ни једном. Оваква структура се извршава док је услов испуњен!

У програмском језику C циклус са предусловом описује се помоћу while структуре:

while (uslov)
 {
      naredba1;
      naredba2;
      …
      naredbaN;
 }

Уколико у телу циклуса постоји само једна наредба структура може имати следећи облик:

 while (uslov) naredba

Пример:

Нацртати алгоритам и написати програм којим се израчунава средња вредност низа реалних бројева различитих од нуле, чија дужина није позната.
Решење
– од корисника затражити да унесе први број, поставити вредност суме и бројача на 0 – припремни кораци за улазак у циклус
– проверити вредност унетог броја. У тексту је речено да се рачуна средња вредност низа бројева различитих од нуле. Из тога можемо закључити да је услов који се проверава „да ли је унети број различит од нуле
– ако „унети број јесте различит од нуле“ увећати суму за дати број, повећати бројач за 1 и затражити од корисника да унесе следећи број – тело циклуса
– ако „унети број није различит од нуле“ изаћи из циклуса (прекинути извршавање циклуса), израчунати тражену средњу вредност и приказати резултат.

#include<stdio.h>
main()
{
     float sum=0,broj,prosek;
     int brojac=0;
     printf("unesi broj");scanf("%f",&broj);
     while(broj!=0)
     {
          sum=sum+broj;
          brojac++;
          printf("unesi broj");scanf("%f",&broj);
     }
     prosek=sum/brojac;
     printf("srednja vrednost unetih brojeva je %f",prosek);
}
Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s