Садржај
3 Променљиве, подаци, типови
3.5 Текстуални подаци (стрингови, ниске)
4 Гранања
4.7 Гранања - разни задаци
5 Петље
5.1 Врсте петљи
5.2 Наредбе break и continue
6 Статички методи
6.4 Корист од метода
7 Низови
7.2 Низови - вежбање
8 Матрице
9 Кориснички дефинисани типови
10 Фајлови

Агрегатне функције

Код рачунања свих набројаних фунција карактеристично је да користимо једну променљиву, која ће на крају поступка садржати резултат. Променљивој додељујемо неку почетну вредност, а затим ту вредност поправљамо (ажурирамо) користећи један по један елемент серије.

Почетна вредност коју додељујемо променљивој зависи од тога коју агрегатну функцију желимо да израчунамо. На пример, ако рачунамо збир, почетна вредност је 0, а ако рачунамо производ почетна вредност је 1 (зашто?). У случају рачунања минимума почетна вредност треба да буде неки веома велики број од кога елементи серије не могу да буду већи. Слично томе, када рачунамо максимум, почетна вредност треба да буде неки веома мали број.

Пример - минимум

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

Овај задатак се може решити на више начина. Ми ћемо употребити један, који се потпуно уклапа у општи опис оваквих поступака (иницијализација, а затим поправка резултата за сваки елемент серије).

Пошто за елементе серије бројева користимо променљиву типа int, онда резултат можемо да иницијализујемо као int.MaxValue. Ово је највећа вредност која може да стане у променљиву типа int, па је немогуће да елементи серије буду већи од те вредности. То значи или да ће се у if наредби бар једном поставити вредност резултата на неки од елемената серије, или су сви елементи серије једнаки овој максималној вредности.

Веома сличан поступак доводи до израчунавања максимума и других агрегатних функција. Ово је општи облик програма за рачунање разних агрегатних функција.

using System;

class Program
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());
        int rezultat = A;
        for (int i = 0; i < n; i++)
        {
            int x = int.Parse(Console.ReadLine());
            B
        }
        Console.WriteLine(rezultat);
    }
}
    Q-75: У програму облика датог горе, упари оно што се израчунава са одговарајућим A и B Покушајте поново!
  • максимум
  • A: int.MinValue;
    B: if (rezultat < x) rezultat = x;
  • збир
  • A: 0;
    B: rezultat += x;
  • производ
  • A: 1;
    B: rezultat *= x;
  • конјункција
    (са 0 и 1 уместо true и false)
  • A: 1;
    B: if (x == 0) rezultat = x;
  • дисјункција
    (са 0 и 1 уместо true и false)
  • A: 0;
    B: if (x == 1) rezultat = x;

Још неке агрегатне функције се могу израчунати на скоро исти овај начин, с тим да се резултат након петље још мало доради. На пример, за рачунање геометријске средине n позитивних бројева потребно је израчунати њихов производ, а у завршном кораку израчунати n-ти корен тог производа.

У наставку можете наћи задатке за увежбавање израчунавања агрегатних функција над елементима серије.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+