IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @325
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Kedy sa oplatí prerobiť auto

na plyn? Nemusíte nevyhnutne hľadať kalkulačku a papier, aby ste si autoviny.zoznam.sk

Aktuálna novinka

Zisti pravdu o stravovaní! Vyšetrovanie odhalilo tajomstvo dokonalého tela. www.news2channel.net

Každé ráno jablko.

A tri ďalšie veľmi jednoduché tipy pre rýchle a zdravé chudnutie bez diét! www.news2channel.net

Zarobiť 50 EUR za hodinu

Unikátny návod, ktorý vám zarobí. Zarobte ešte dnes! Zarobit-Peniaze.sk

Vaše dáta sú v oblakoch

Virtuálny desktop lacno, spoľahlivo, bez kompromisov. www.ts.avnet.com

zaciatocnicky problem - C (hodnoty a pointre)

Zaslať odpoveď
AutorSpráva
math-ew
Užívateľ
Užívateľ

Založený: 14.01.2012
Príspevky: 20

PríspevokZaslal: Po 23.01.12 2:23Odpovedať s citátomNávrat hore

Zdravím, riesim logisticky prepoctovy programik a viaznem zrejme na banalite .. no skratka mam vytvorenu funkciu ktora po jej vlozeni pomocou pointrov vzajomne prehodi hodnoty dvoch premennych ..z troch. podla toho ktore urcim v hlavicke funkcie..ide o prieskum vsetkych kombinacii z troch prvkov. cize vlozim fciu a zadam prvy vzorec ..malo by nasledovat dalsich 7 inych vzorcov..nasledne zas vlozim tu istu funkciu, cize mam novu komb. a zas zvazok tych istych vzorcov..ale problem je ze aj ked kombinacna fcia je funkcna..zo vzorcov mi tlaci stale 0.Viete mi povedat preco ?Dakujem za kazdu radu...vkladam zjednoduseny kod len s podstatou.Dakujem

kód:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Dmj1r, Smj1r, Vmj1r, Hmj1r, Qmj1r, Dpal, Spal, pk1v;

void kombi(float *a, float *b);


main() {
       float Dmj1r, Smj1r, Vmj1r, Hmj1r, Qmj1r, Dpal, Spal, pk1v;
       printf("zadaj DLZKU mj1r v <m>: \n"); scanf("%f",&Dmj1r);
       printf("zadaj SIRKU mj1r v <m>: \n"); scanf("%f",&Smj1r);
       printf("zadaj VYSKU mj1r v <m>: \n"); scanf("%f",&Vmj1r);
       printf("zadaj HMOTNOST mj1r v <kg>: \n"); scanf("%f",&Hmj1r);
       printf("zadaj POCET mj1r v <ks>: \n"); scanf("%f",&Qmj1r);
          
                       
       kombi(&Dmj1r, &Smj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
       printf("\n %.0f \n", pk1v);
       
       kombi(&Smj1r, &Vmj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
       printf("\n %.0f \n", pk1v);
       
       kombi(&Dmj1r, &Smj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
       printf("\n %.0f \n", pk1v);
       
       kombi(&Smj1r, &Vmj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
       printf("\n %.0f \n", pk1v);
     
       kombi(&Dmj1r, &Smj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
       printf("\n %.0f \n", pk1v);
     
       kombi(&Smj1r, &Vmj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
       printf("\n %.0f \n", pk1v);
       
       system("pause");
}

/* FUNCTIONS */
void kombi(float *a, float *b){
     float p;
           p=*a;
          *a=*b;
          *b=p;
         
                               }


// pridané po 50 minútach od posledného príspevku

vlastne potrebujem vysledky tych vzorcov ktore nasledne budem vyhodnocovat v dalsich castiach prog.
Zobraziť informácie o autoroviOdoslať súkromnú správu
BX
Užívateľ
Užívateľ

Založený: 17.07.2011
Príspevky: 94

PríspevokZaslal: Po 23.01.12 10:50Odpovedať s citátomNávrat hore

To môžeš byť celkom rád, že ti tam chodia aspoň nuly.

kód:
pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r))

Premenné Dpal a Spal majú akú hodnotu?
A čo tam robia tie globálky s rovnakými menami? Dúfam, že to tam nie je naschvál...
Zobraziť informácie o autoroviOdoslať súkromnú správuZobraziť autorove WWW stránky
math-ew
Užívateľ
Užívateľ

Založený: 14.01.2012
Príspevky: 20

PríspevokZaslal: Po 23.01.12 14:31Odpovedať s citátomNávrat hore

spravne postrehy a pekne povedane (: ale to su len preklepy.. samozrejme ze Dpal a Spal idu tiez z klavesy a tie globalne bol omyl ale po odstraneni sa nic nezmenilo..moze byt problem ze to robim v devc++ ? ak som spravne postrehol podpora c by mala fungovat. no prenikam do tychto veci len pomaly .. vdaka
Zobraziť informácie o autoroviOdoslať súkromnú správu
BX
Užívateľ
Užívateľ

Založený: 17.07.2011
Príspevky: 94

PríspevokZaslal: Po 23.01.12 15:32Odpovedať s citátomNávrat hore

Tak som to vyskúšal (A v DevCpp aby sa nepovedalo) a akonáhle inicializujem Dpal a Spal, všetko ide a nuly nevidím.

Skúšam to s hodnotami:
Dpal = 1000;
Spal = 500;

Vstup:
100
60
40
30
3
Zobraziť informácie o autoroviOdoslať súkromnú správuZobraziť autorove WWW stránky
math-ew
Užívateľ
Užívateľ

Založený: 14.01.2012
Príspevky: 20

PríspevokZaslal: Po 23.01.12 17:42Odpovedať s citátomNávrat hore

spravne, nasledovny zaver som totiz necakal..Pri normalej priamej inicializacii Dpal a Spal to slape. ale problem zrejme robia fcie pre Dpal a Spal ktore som najprv neuviedol kvoli adminmi odporucanej strucnosti. Ide o fcie osetrujuce presiahnutie rozmerovych limit. Cize bez nich to ide..po ich vlozeni prebieha inicializacia Dpal a Spal nepriamo cez fcie a tak mi to hadze nuly.(a po tychto fciach nasleduje este priama inicializacia dalsich premennych..to len mimochodom) tak vkladam este raz kod aj s tymi fciami...ak by si sa nato nahodou mohol este mrknut..alebo niekto ... fakt diks.

kód:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float dlzkap(float Dpal, float Dmj1r);
float sirkap(float Spal, float Smj1r);
void kombi(float *a, float *b);


main() {
       float Dmj1r, Smj1r, Vmj1r, Hmj1r, Qmj1r, Dpal, Spal, Vpal, Hpal, Dlp, Slp, Vlp, Nlp,
             pk1v, H1v, pv, Vmj2r, Hmj2r, pkNaPal, PPP, PPMpo, PPMpr;
       printf("zadaj DLZKU mj1r v <m>: \n"); scanf("%f",&Dmj1r);
       printf("zadaj SIRKU mj1r v <m>: \n"); scanf("%f",&Smj1r);
       printf("zadaj VYSKU mj1r v <m>: \n"); scanf("%f",&Vmj1r);
       printf("zadaj HMOTNOST mj1r v <kg>: \n"); scanf("%f",&Hmj1r);
       printf("zadaj POCET mj1r v <ks>: \n"); scanf("%f",&Qmj1r);
          
           dlzkap(Dpal, Dmj1r);  /* tieto dve fcie zrejme robia problem */
       sirkap(Spal, Smj1r);
            
       printf("zadaj VYSKU pal. v <m>: \n"); scanf("%f",&Vpal);
       printf("zadaj VAHU pal. v <m>: \n"); scanf("%f",&Hpal);
       printf("\nzadaj DLZKU loznej plochy v <m>: \n"); scanf("%f",&Dlp);
       printf("zadaj SIRKU loznej plochy v <m>: \n"); scanf("%f",&Slp);
      printf("zadaj VYSKU loznej plochy v <m>: \n"); scanf("%f",&Vlp);
       printf("zadaj NOSNOST loznej plochy v <kg>: \n"); scanf("%f",&Nlp);
       
       
       kombi(&Dmj1r, &Smj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
        printf("\n %.0f \n", pk1v);
       
       kombi(&Smj1r, &Vmj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
        printf("\n %.0f \n", pk1v);
       
       kombi(&Dmj1r, &Smj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
        printf("\n %.0f \n", pk1v);
       
       kombi(&Smj1r, &Vmj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
        printf("\n %.0f \n", pk1v);
     
       kombi(&Dmj1r, &Smj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
        printf("\n %.0f \n", pk1v);
     
       kombi(&Smj1r, &Vmj1r);
       printf("\n %.3f %.3f %.3f \n", Dmj1r, Smj1r, Vmj1r);
       pk1v=(floor(Dpal/Dmj1r))*(floor(Spal/Smj1r));
        printf("\n %.0f \n", pk1v);
       
       
system("pause");
}

/* FUNCTIONS */

float dlzkap(float Dpal, float Dmj1r){
           do{
            printf("\nzadaj DLZKU pal. v <m>: \n"); scanf("%f",&Dpal);
              if(Dpal<Dmj1r)
              printf("\nDlzka mj1r je vacsia ako dlzka pal.\n");
            }
            while(Dpal<Dmj1r);
                                     }
                                 
float sirkap(float Spal, float Smj1r){
           do{ 
           printf("zadaj SIRKU pal. v <m>: \n"); scanf("%f",&Spal);
             if(Spal<Smj1r)
              printf("\nSirka mj1r je vacsia ako sirka pal.\n");
            }
            while(Spal<Smj1r);
                                    }
                                    
void kombi(float *a, float *b){
     float p;
           p=*a;
          *a=*b;
          *b=p;
         
                               }
                               



Zobraziť informácie o autoroviOdoslať súkromnú správu
BX
Užívateľ
Užívateľ

Založený: 17.07.2011
Príspevky: 94

PríspevokZaslal: Po 23.01.12 21:10Odpovedať s citátomNávrat hore

Nevidím, že by si ich nastavoval.
Vidím funkciu, ktorej predáš ako parameter neinicialozovanú premennú a práve načítanú premennú, niečo s nimi urobíš a toť vše. Ak chceš načítať premennú vo funkcii, predaj funkcii len ukazateľ na ňu tak, ako to robíš v kombi()
Zobraziť informácie o autoroviOdoslať súkromnú správuZobraziť autorove WWW stránky
math-ew
Užívateľ
Užívateľ

Založený: 14.01.2012
Príspevky: 20

PríspevokZaslal: Po 23.01.12 22:22Odpovedať s citátomNávrat hore

Dakujem.
Zobraziť informácie o autoroviOdoslať súkromnú správu
BX
Užívateľ
Užívateľ

Založený: 17.07.2011
Príspevky: 94

PríspevokZaslal: Ut 24.01.12 10:49Odpovedať s citátomNávrat hore

Niet za čo
Zobraziť informácie o autoroviOdoslať súkromnú správuZobraziť autorove WWW stránky
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd