Guest User

Untitled

a guest
Jan 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. /*
  2. Vytvořte program s podprogramem pro zjištění
  3. celkové hodnoty (součtu) z pole celých čísel.
  4. */ // Nevim jestli je treba delat hlavicky
  5.  
  6. #include <stdio.h> // Nacteni knihoven do naseho programu
  7. #include <stdlib.h> // Nacteni knihoven do naseho programu
  8.  
  9. #define POCET 100 //Dame si nejakej pocet aby jsme vedeli kolik prave prvku vyuziva nase pole (pokud ho nemame tak nemame zadnou informaci
  10. // jak je velke pole a nemuzeme ho prochazet )
  11.  
  12. 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()
  13. int Soucet(int* pole,int pocet); // Funkce nam bude vracet soucet vsech tech cisel z pole tedy celych cisel int
  14.  
  15.  
  16. int main()
  17. {
  18. int* pole; //Deklarace dynamickeho pole celych cisel
  19. int soucet; // Deklarace promenne soucet do ni budeme pak ukladat soucet tech cisel z pole
  20. 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
  21. 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
  22. 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
  23. printf("soucet cisel z pole je:%d",soucet);
  24.  
  25. return 0;
  26. }
  27.  
  28. 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
  29. {
  30. int i; //Deklarace promenne i pouzijeme ji dole na interacni cyklus
  31. 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
  32. {
  33. 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
  34. }
  35. //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
  36. // 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!
  37. }
  38.  
  39. 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
  40. {
  41. int i; //Deklarace promenne i pouzijeme ji dole na interacni cyklus
  42. 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 :)
  43. 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
  44. {
  45. 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
  46. }
  47. 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
  48. }
  49.  
  50. //Jsem ze SIS2!! :D
Add Comment
Please, Sign In to add comment