Funkcia s polom – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Funkcia s polom – C / C++ – Fórum – Programujte.comFunkcia s polom – C / C++ – Fórum – Programujte.com

 

lukas.balaz0
Super člen
18. 8. 2011   #1
-
0
-

C++

Ak napíšem funkciu ktorá má dva parametre, pričom jeden parameter je typu char a jeden int, ako mám volať funkciu.
hlavička funkcie je:

double pozdravy (double pocet[], int limit_pocet) 

Diki

Nahlásit jako SPAM
IP: 62.168.112.–
KIIV
~ Moderátor
+43
God of flame
18. 8. 2011   #2
-
0
-

#1 lukas.balaz
dost tezko, ceka to pole typu double

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
lukas.balaz0
Super člen
18. 8. 2011   #3
-
0
-

Nechápem, ale na začiatku som urobil chybu, namiesto char pole.

Nahlásit jako SPAM
IP: 62.168.112.–
KIIV
~ Moderátor
+43
God of flame
18. 8. 2011   #4
-
0
-

#3 lukas.balaz
jestli je to: ??? pozdravy (char pocet[], int limit_pocet) tak volas   pozdravy(retezec, strlen(retezec))  (napriklad)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
lukas.balaz0
Super člen
18. 8. 2011   #5
-
0
-

Prečo je tam ten retezec?

A ak je pole typu int alebo double?

Nahlásit jako SPAM
IP: 62.168.112.–
KIIV
~ Moderátor
+43
God of flame
18. 8. 2011   #6
-
0
-

#define N 5

double pole[N] = {1,2,3,4,5};

pozdravy(pole,N);

pripadne se da pres sizeof(pole)/sizeof(double) - aspon u statickeho pole

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
lukas.balaz0
Super člen
18. 8. 2011   #7
-
0
-

Nie je náhodou #define z C?

Mal by som ti povedať, prečo som toto vlákno vôbec založil:

http://programujte.com/clanek/2005041411-c-7-lekce/

Funkcia:

int pocpole(double pole[], int limit)
{
   double temp;
   int i;
   for (i=0 ; i<limit ; i++)
   {
      cout << "zadejte hodnotu #" << i+1 << ":";
      cin >> temp;
      if (temp < 0) 
      break; 
      pole[i] = temp;
   }
   return i;


}

Mohol by si my napísať program, kde by sa mi na c++ napísal program, kde je iba volanie funkcie. Na hodnotách začiatočných premenných nezáleží.

My slím, že tento zdroják nemá s char nič spoločné.

Nahlásit jako SPAM
IP: 62.168.112.–
crazy
~ Moderátor
+10
Grafoman
18. 8. 2011   #8
-
0
-

#7 lukas.balaz

const int limit = 2;
double pole[limit] = { 4.0, 2.0 };

pocpole(pole, limit);
Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
lukas.balaz0
Super člen
19. 8. 2011   #9
-
0
-

i#8 crazy


Prečo tam vytváraš premenné limit a pole, keď sú už vytvorené vo funkcii pocpole, veď funkcia je o tom, že pri volaní funkcie môžem zadať svoje hodnoty vytvoreným premenným vo funkcii.

Myslím, že ak vytvoríš funkciu s hlavičkou

int pocpole (int premenna1, int premenna2),

tak funkciu budem volať

pocpole (hodnota premennej premenna1, hodnota premennej premenna2);

ale ako mám pri volaní funkcie zadať hodnotu každej premennej s pola, pričom teda každá premenná môže byť iná pri každom volaní a mení sa aj hodnota premennej limit.

Nahlásit jako SPAM
IP: 62.168.112.–
lukas.balaz0
Super člen
19. 8. 2011   #10
-
0
-

Už som tomu troca pochopil, ale čo je zle na tomto zdrojáku:

#include <iostream>
using namespace std;
int sum_pole(int pole[], int n);
int main()
{
    int prvky;
    int prvky3 = 1; 
    int prvky4;
    cout << "Zadajte pocet prvkov pola: ";
    cin >> prvky;
     int prvky2[prvky];
    while (0<prvky)
    {
          cout << "Zadajte "<<prvky3<<". prvok: ";
          prvky3=prvky4;
          prvky4=prvky4-1;
          cin >>prvky2[prvky4];
    }        
    sum_pole(prvky2, prvky);
    cout <<celkem;
    cin.get();
    cin.get();
    return 0;
}
int sum_pole(int pole[], int n)    
{       
   int celkem = 0;       
   for (int i = 0; i<n ; i++)           
   celkem = celkem + pole[i];
   return celkem;
}
Nahlásit jako SPAM
IP: 62.168.112.–
liborb
~ Redaktor
+18
Guru
19. 8. 2011   #11
-
0
-

U staticky definovaného pole musí být délka známá v době překladu, což tady není:

int prvky2[prvky];

Tj. musíš to pole definovat a alokovat jinak (malloc, new ...)

Nahlásit jako SPAM
IP: 78.80.52.–
crazy
~ Moderátor
+10
Grafoman
19. 8. 2011   #12
-
0
-

#10 lukas.balaz
a také tam máš nekonečný cyklus

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
lukas.balaz0
Super člen
19. 8. 2011   #13
-
0
-

Kde je tam nekonečný cyklus?

Nahlásit jako SPAM
IP: 62.168.112.–
lukas.balaz0
Super člen
19. 8. 2011   #14
-
0
-

#11 liborb
Ten zdrojá funkcie v 7 príspevku je v 7.lekcii kategórie Kurz c++, kde sa o takýchto príkazoch vôbec nepíše.

Musí to ísť nejako lahšie.

Nahlásit jako SPAM
IP: 62.168.112.–
KIIV
~ Moderátor
+43
God of flame
19. 8. 2011   #15
-
0
-

#14 lukas.balaz
jde to - nadefinujes si nejakou rozumnou velikost statickeho pole - treba 1000 prvku maximalne a pres ne nesmis presmatnout

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
street punk+1
Návštěvník
19. 8. 2011   #16
-
-1
-
Mimo téma

šak tie lekcie sú nakomplet prepísané z knihy mistrovství c++

Nahlásit jako SPAM
IP: 188.112.101.–
crazy
~ Moderátor
+10
Grafoman
19. 8. 2011   #17
-
0
-

#13 lukas.balaz
ten cyklus:

while (0<prvky)
    {
          cout << "Zadajte "<<prvky3<<". prvok: ";
          prvky3=prvky4;
          prvky4=prvky4-1;
          cin >>prvky2[prvky4];
    }        
Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
lukas.balaz0
Super člen
20. 8. 2011   #18
-
0
-

#17 crazy
Nechápem, čo mi s tým chceš povedať

Nahlásit jako SPAM
IP: 62.168.112.–
KIIV
~ Moderátor
+43
God of flame
20. 8. 2011   #19
-
0
-

#18 lukas.balaz
neexistuje sance, ze vubec nekdy prestane platit podminka 0<prvky, kdyz "prvky" nikdy nikde nemenis

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 27 hostů

Podobná vlákna

Problém z polom štruktúr — založil me.name

Funkcia v JS — založil DuDo

Funkcia — založil ukulele

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý