Rakstīt ziņojumu 
 
Pavediena vērtējums:
  • 0 balsis - 0 vidējais
  • 1
  • 2
  • 3
  • 4
  • 5
Programma nestrada
Autors Ziņa
andrej Atslēdzies
Junior Member
**

Ziņojumi: 26
Pievienojās: Dec 2009
Reputācija: 0
Ziņojums: #1
Programma nestrada
Programmai butu jaizvada sasvtarpeji pirmskaitlu paar,bet nevaru saprast,kur kluuda Sad

Kods:
#include<iostream>//nodrošina ievad-izvadierīču lietošanu
using namespace std;//tiks lietots vārdkopu apgabals std objektiem
int savstpirmsk(int sk);

int main()
{
  
int sk;
int *arr;
cout << "LD3" << endl;
cout << "Programma lauj ievadit skaitlu virkni un izvada visus virknes skaitlus,"<<endl;
cout << "kuri ir savstarpeji pirmskaitli"<<endl;
cout << endl;

cout<<"Cik skaitlus velies ievadit?"<<endl;
cin>>sk;
arr = new int[sk];

for (int i=0;i<sk;i++)
{
    cout<<"Ievadi "<<i+1<<". skaitli "<<endl;
    cin>>arr[i];//skaitļu ievade
    cout<<endl;
}
cout<<"Savstarpeji pirmskaitlu pari ir "<<savstpirmsk(sk)<<endl;

delete[] arr;
cout<<endl;
system("pause");
return 0;

}// main funkcijas beigas

int savstpirmsk(int sk)
{for (int i=0;i<sk-1;i++)
    {for (int j=i+1;j<sk-1;j++)
       {int arr[i];
       int arr2[j];
        
      
       if ((arr[i]*2%arr2[j]!=0)||(arr2[j]*2%arr[i]!=0))
       return arr[i];
       }
    }
}
01.12.2009 21:58
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
101111 Atslēdzies
Junior Member
**

Ziņojumi: 34
Pievienojās: Aug 2009
Reputācija: -1
Ziņojums: #2
RE: Programma nestrada
to masiivu ar skaitļiem arii nodod funkcijai. citāti tev pašlaik sanāk, ka katrā cikla iterācija tiek nodefinēti divi jauni masīvi.
(Šo ziņojumu pēdējo reizi modificēja: 01.12.2009 22:10 101111.)
01.12.2009 22:09
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
andrej Atslēdzies
Junior Member
**

Ziņojumi: 26
Pievienojās: Dec 2009
Reputācija: 0
Ziņojums: #3
RE: Programma nestrada
(01.12.2009 22:09 )101111 rakstīja:  to masiivu ar skaitļiem arii nodod funkcijai.

Hmm,ka tas notiekas?Smile
01.12.2009 22:10
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
101111 Atslēdzies
Junior Member
**

Ziņojumi: 34
Pievienojās: Aug 2009
Reputācija: -1
Ziņojums: #4
RE: Programma nestrada
definējot funkciju
int savstpirmsk(int sk, int arr[]){
//funkcijas kods

}

izsaucot funkciju
savstpirmsk(int sk, arr);

un tev tur vēl bija funkcijas prototips
int savstpirmsk(int sk, int arr[]);
(Šo ziņojumu pēdējo reizi modificēja: 01.12.2009 22:18 101111.)
01.12.2009 22:17
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Dr. evel Atslēdzies
pasaule buus mana!!!
****

Ziņojumi: 566
Pievienojās: Dec 2008
Reputācija: 1
Ziņojums: #5
RE: Programma nestrada
vigls uzdevums, doma pats
01.12.2009 22:19
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
andrej Atslēdzies
Junior Member
**

Ziņojumi: 26
Pievienojās: Dec 2009
Reputācija: 0
Ziņojums: #6
RE: Programma nestrada
(01.12.2009 22:19 )Dr. evel rakstīja:  vigls uzdevums, doma pats

Izdariju,cik zinaju/vareju.Citadi jau te neverstos.
palaboju,bet neka-debilus skaitlus met ara Sad
Kods:
#include<iostream>//nodrošina ievad-izvadierīču lietošanu
using namespace std;//tiks lietots vārdkopu apgabals std objektiem
int savstpirmsk(int sk,int arr[]);

int main()
{
  
int sk;
int *arr;
cout << "LD3" << endl;
cout << "Programma lauj ievadit skaitlu virkni un izvada visus virknes skaitlus,"<<endl;
cout << "kuri ir savstarpeji pirmskaitli"<<endl;
cout << endl;

cout<<"Cik skaitlus velies ievadit?"<<endl;
cin>>sk;
arr = new int[sk];

for (int i=0;i<sk;i++)
{
    cout<<"Ievadi "<<i+1<<". skaitli "<<endl;
    cin>>arr[i];//skaitļu ievade
    cout<<endl;
}
cout<<"Savstarpeji pirmskaitlu pari ir "<<savstpirmsk(sk,arr)<<endl;

delete[] arr;
cout<<endl;
system("pause");
return 0;

}// main funkcijas beigas

int savstpirmsk(int sk,int arr[])
{for (int i=0;i<sk-1;i++)
    {for (int j=1;j<sk-1;j++)
       {int arr[i];
       int arr2[j];
        
      
       if ((arr[i]*2%arr2[j]!=0)||(arr2[j]*2%arr[i]!=0))
       return arr[i];
       }
    }
}
(Šo ziņojumu pēdējo reizi modificēja: 01.12.2009 22:33 andrej.)
01.12.2009 22:30
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
101111 Atslēdzies
Junior Member
**

Ziņojumi: 34
Pievienojās: Aug 2009
Reputācija: -1
Ziņojums: #7
RE: Programma nestrada
tak paskaties kas tev tajaa funkcijaa notiek. kapeec visu laiku tiek defineeti divi masiivi int arr[i] un int arr2[j]? ja gribi piekļūt masīva i-tajiem un j-tajiem elementiem, tad to var izdarīt arr[i] un arr[j]
(Šo ziņojumu pēdējo reizi modificēja: 01.12.2009 22:40 101111.)
01.12.2009 22:39
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
andrej Atslēdzies
Junior Member
**

Ziņojumi: 26
Pievienojās: Dec 2009
Reputācija: 0
Ziņojums: #8
RE: Programma nestrada
(01.12.2009 22:39 )101111 rakstīja:  tak paskaties kas tev tajaa funkcijaa notiek. kapeec visu laiku tiek defineeti divi masiivi int arr[i] un int arr2[j]? ja gribi piekļūt masīva i-tajiem un j-tajiem elementiem, tad to var izdarīt arr[i] un arr[j]

nodeklarejot arr[i],arr[j] proga vispar nekompilejas..
01.12.2009 22:43
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
101111 Atslēdzies
Junior Member
**

Ziņojumi: 34
Pievienojās: Aug 2009
Reputācija: -1
Ziņojums: #9
RE: Programma nestrada
priekš kam kaut kas jādeklarē, ja jau tev ir skaitļu masīvs, kuru nodevi funkcijai?
(Šo ziņojumu pēdējo reizi modificēja: 01.12.2009 22:47 101111.)
01.12.2009 22:47
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
andrej Atslēdzies
Junior Member
**

Ziņojumi: 26
Pievienojās: Dec 2009
Reputācija: 0
Ziņojums: #10
RE: Programma nestrada
(01.12.2009 22:47 )101111 rakstīja:  priekš kam kaut kas jādeklarē, ja jau tev ir skaitļu masīvs, kuru nodevi funkcijai?
Nu jau kkas labaks,bet cipari vienalga neistie.Auns esmu Rolling Eyes
Kods:
#include<iostream>//nodrošina ievad-izvadierīču lietošanu
using namespace std;//tiks lietots vārdkopu apgabals std objektiem
int savstpirmsk(int sk,int arr[]);

int main()
{
  
int sk;
int *arr;
cout << "LD3" << endl;
cout << "Programma lauj ievadit skaitlu virkni un izvada visus virknes skaitlus,"<<endl;
cout << "kuri ir savstarpeji pirmskaitli"<<endl;
cout << endl;

cout<<"Cik skaitlus velies ievadit?"<<endl;
cin>>sk;
arr = new int[sk];

for (int i=0;i<sk;i++)
{
    cout<<"Ievadi "<<i+1<<". skaitli "<<endl;
    cin>>arr[i];//skaitļu ievade
    cout<<endl;
}
cout<<"Savstarpeji pirmskaitlu pari ir "<<savstpirmsk(sk,arr)<<endl;

delete[] arr;
cout<<endl;
system("pause");
return 0;

}// main funkcijas beigas

int savstpirmsk(int sk,int arr[])
{for (int i=0;i<sk-1;i++)
    {for (int j=0;j<sk-1;j++)
       {
      
      
       if ((arr[i]*2%arr[j]!=0)||(arr[j]*2%arr[i]!=0))
       return arr[i]&&arr[j];
    
       }
    }
}
01.12.2009 23:01
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
ulzha Atslēdzies
Koto Member
****

Ziņojumi: 683
Pievienojās: May 2006
Reputācija: 16
Ziņojums: #11
RE: Programma nestrada
C++ ir ļauns, visādas dumības kompilē un, ja tu nezini, ko dara &&, tad labāk uzzini Smile

Nu nebūs tā, ka return šitas && tas tev saveidos gatavu sarakstu, ko cout drukās ārā Very Happy Izpildot return, funkcijas izpilde tajā pašā brīdī tiek pārtraukta. Un vispār, ja funkcija atgriež int, tad tā neatgriež sarakstu - nekādu cerību (nope)

Tā kā tu negribi, lai funkcija beigtos pie pirmā atrasto skaitļu pāra, bet gan, lai pildās cikli, līdz atrod visus, tad tev tur nav jādara return, bet gan kas cits.

&& vispār ir loģiskais UN, viņš pārbauda, ja pa kreisi ir true (nenulles skaitlis ir true) un pa labi ir true, tad atgriež true (true par int pārvēršas kā 1), un neko citu uz svilpiena nedara.

Savstarpēju pirmskaitļu kritērijs tev arī būtu jāuzzina, sagudrojis esi nepareizu.
(Šo ziņojumu pēdējo reizi modificēja: 02.12.2009 00:45 ulzha.)
02.12.2009 00:40
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
andrej Atslēdzies
Junior Member
**

Ziņojumi: 26
Pievienojās: Dec 2009
Reputācija: 0
Ziņojums: #12
RE: Programma nestrada
(02.12.2009 00:40 )ulzha rakstīja:  C++ ir ļauns, visādas dumības kompilē un, ja tu nezini, ko dara &&, tad labāk uzzini Smile

Nu nebūs tā, ka return šitas && tas tev saveidos gatavu sarakstu, ko cout drukās ārā Very Happy Izpildot return, funkcijas izpilde tajā pašā brīdī tiek pārtraukta. Un vispār, ja funkcija atgriež int, tad tā neatgriež sarakstu - nekādu cerību (nope)

Tā kā tu negribi, lai funkcija beigtos pie pirmā atrasto skaitļu pāra, bet gan, lai pildās cikli, līdz atrod visus, tad tev tur nav jādara return, bet gan kas cits.

&& vispār ir loģiskais UN, viņš pārbauda, ja pa kreisi ir true (nenulles skaitlis ir true) un pa labi ir true, tad atgriež true (true par int pārvēršas kā 1), un neko citu uz svilpiena nedara.

Savstarpēju pirmskaitļu kritērijs tev arī būtu jāuzzina, sagudrojis esi nepareizu.

Ceturtdien janodod proga-izklausas bezcerigi..
02.12.2009 02:26
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
ulzha Atslēdzies
Koto Member
****

Ziņojumi: 683
Pievienojās: May 2006
Reputācija: 16
Ziņojums: #13
RE: Programma nestrada
Beidz gvelzt! Ar "jādara kas cits" nav jāsaprot raķešzinātne, pilnīgi pietiek ar tavā kodā jau redzamajām prasmēm, un vairāk par 10 rindiņām klāt nevajadzēs.

C++ darbojas tā, kā darbojas - un nedarīs neko citu tāpēc vien, ka tev gribas. Jāatrod veids, kā salikt iespējamās darbības tā, lai tās veiktu tev vajadzīgo! To sauc par domāšanu. Un tas, ka ar pirmo vai desmito reizi nav pareizi, ir pilnīgi normāli - jādomā vēl. Lielākā daļa apkārtējo cilvēku to dara un nemīž kedā.

Teica tev - <<savstpirmsk(sk,arr)<< neizdrukās sarakstu. Tu nezini tādu metodi, kas no funkcijas atgrieztu izdrukājamu sarakstu. Nu tātad? Tātad jāpārkārto arī drukāšana būs noteikti.

Noskaidroji, kas ir savstarpēji pirmskaitļi?
(Šo ziņojumu pēdējo reizi modificēja: 02.12.2009 11:20 ulzha.)
02.12.2009 11:19
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Dr. evel Atslēdzies
pasaule buus mana!!!
****

Ziņojumi: 566
Pievienojās: Dec 2008
Reputācija: 1
Ziņojums: #14
RE: Programma nestrada
neesmu jau tajaa kodaa iedziljinaajies kas tur tika dariits, bet nebuutu vienkaarshaak uzrakstiit bool p(int x,int y), tad vnk paarbaudiit vai skaitliem shii f-cija ir terue ja jaa tad vnk tos izdrukaat
02.12.2009 13:02
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
ulzha Atslēdzies
Koto Member
****

Ziņojumi: 683
Pievienojās: May 2006
Reputācija: 16
Ziņojums: #15
RE: Programma nestrada
Protams, ka būtu. Pārbaude ta viņam vienā vietā vajadzīga, varētu vispār funkcijas nelietot, jo ar tām cilvēkam jau grūti. Bet kā panākt, lai cilvēks patstāvīgi aizdomājas, ka viņš var ielikt jebko, arī drukāšanu turpat, kur pāri tiek noskaidroti?... Nevis blenž uz kodu ar "bēdu manu lielu bēdu" izteiksmi
02.12.2009 13:42
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Rakstīt ziņojumu 


Lēciens uz forumu:



Kontaktifizmati.lvAtgriezties uz augšuAtgriezties pie saturaArhīva skatsRSS sindikācija