Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Vytvořte program s podprogramem pro zjištění
- celkové hodnoty (součtu) z pole celých čísel.
- */ // Nevim jestli je treba delat hlavicky
- #include <stdio.h> // Nacteni knihoven do naseho programu
- #include <stdlib.h> // Nacteni knihoven do naseho programu
- #define POCET 100 //Dame si nejakej pocet aby jsme vedeli kolik prave prvku vyuziva nase pole (pokud ho nemame tak nemame zadnou informaci
- // jak je velke pole a nemuzeme ho prochazet )
- void Napln(int* pole,int pocet); // Procedura ktera nam pole naplni nahodnymi cisly toto je deklarace pise se vzdy nad hlavni program tedy nad int main()
- int Soucet(int* pole,int pocet); // Funkce nam bude vracet soucet vsech tech cisel z pole tedy celych cisel int
- int main()
- {
- int* pole; //Deklarace dynamickeho pole celych cisel
- int soucet; // Deklarace promenne soucet do ni budeme pak ukladat soucet tech cisel z pole
- pole=(int*)malloc(sizeof(int)*POCET); // Alokace pole o poctu prvku o nasi konstante a o velikosti adres INT tedy asi 4 bity 0,5 bajtu * volna adresa muže byt např 1024 * 4 * POCET takhle to asi vypada kde 1024 je volna adresa
- Napln(pole,POCET); // Zavolani procedury Napln() a predani parametru dyn.pole a pocet ... pocet proto abychom mohli to pole procházet o poctu prvku kolik ma a na kazdej prvek(pozici v poli) mohli tak ukladat nahodne cislo
- soucet=Soucet(pole,POCET); // Zavolani funkce Soucet() a predani parametru dyn.pole a pocet ... stejně jako nahoře akorát v interačním cyklu budeme každej prvek dávat do nějaké proměnné celého čísla a tu pak přičteme k poli
- printf("soucet cisel z pole je:%d",soucet);
- return 0;
- }
- void Napln(int* pole,int pocet) //Definice podprogramu obsahuje hlavicku tzn {} ty klapate zavorky identifikator,parametry musi byt totozne s deklaraci Napln() jakou mame nahore
- {
- int i; //Deklarace promenne i pouzijeme ji dole na interacni cyklus
- for(i=0;i<pocet;i++) // Interacni cykluse pocatek hodnoty 0 prochazime cyklus od nuly a v nasem pripade je ze pole zacina od nulteho prvku na nulte pozici
- {
- pole[i]=rand() % 100; //Knihovni funkce rand() nam naplni pseudo nahodna cisla do pole[i] v interacnim cyklu se i navysuje takze pozice se navysuje o jedno kde i je pozice
- }
- //return *pole // Nepotrebujeme vracet pole protoze pole je alokovane na adrese o velikosti int takze je primo zapsane v pameti pri behu programu! toto si zapamatuj
- // Pokud ale mame pole[50] tedy pole o 50ti prvcich tzn ze pole neni na zadne adrese ale jen ze ma 50 prvku ze je jen 50x velike a tu by se potom muselo vracet to pole!
- }
- int Soucet(int* pole,int pocet) //Definice podprogramu obsahuje hlavicku tzn {} ty klapate zavorky identifikator,parametry musi byt totozne s deklaraci Soucet() jakou mame nahore
- {
- int i; //Deklarace promenne i pouzijeme ji dole na interacni cyklus
- int soucet=0; // Deklarace promenne soucet kterou budeme potrebovat na soucet prvku v poli musi byt nastavena hodnota na 0! nebo ma nahodne cislo a nas soucet nebude vychazet :)
- for(i=0;i<pocet;i++) // Interacni cyklus zaciname na pozici 0 tedy na nultem prvku v poli da se vyuzit uplne na vsechno pokud mas napad v nasem pripade tento interacni cyklus bude do promenne soucet nahravat prvek z pole po prvku a bude ho scitat s tim prvkem co uz tam byl
- {
- soucet=soucet+pole[i]; // Zde mame ukazku kdyz napr i=5 tak na pole[i=5] bude prvek s hodnotou 8 no tak soucet ho prevezme a hodnota promenne soucet bude 8 a kdyz pak i bude 6 tedy i=6 a pole[i=6] tak potom kdyz uz mame v souctu neco tak soucet=soucet+pole[i=6] to znamena 8=8+pole[i=6] na pole[6] mame nejakej dalsi prvek s jinaci hodnotou
- }
- return soucet; // Vracime informaci o souctu tech cisel v poli muzeme vratit tera I a to bude i=pocet je jedno co vratime mi ted ale potrebujeme pocet tak proto spocitany soucet vratime
- }
- //Jsem ze SIS2!! :D
Add Comment
Please, Sign In to add comment