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: #46
RE: Programma nestrada
Vai te vēl kāds ir? Smile Heh,nu tagad ir loti tuvu Very Happy Bet taja formula,kas nosaka ,vai ir savstarpeji aizvien kkas nestimme.

Kods:
#include<iostream>//nodrošina ievad-izvadierīču lietošanu
using namespace std;//tiks lietots vārdkopu apgabals std objektiem
void 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 ";
cout<<endl;
savstpirmsk(sk,arr); // šī funkcija izdrukā pati, jo tu viņai tā liki. Nav vajadzīgs viņas atgriezto vērtību kaut kādu vēl drukāt, jo drukāt vajag tikai pārus! Tev sapņos rādās, ka vēl kaut ko vajag drukāt?
cout <<endl;

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

}// main funkcijas beigas

void savstpirmsk(int sk,int arr[])
{for (int i=0;i<sk;i++)
    {for (int j=0;j<sk;j++)
      
       {
       if(arr[i]>=arr[j])
       {for(int k=2;k<arr[j];k++)
         if((arr[i]%k!=0)&&(arr[j]%k!=0))
        cout<<arr[i]<<" "<<arr[j]<<" "<<endl;
        }
        else
         {for(int k=2;k<arr[i];k++)
         if((arr[i]%k!=0)&&(arr[j]%k!=0))
        cout<<arr[i]<<" "<<arr[j]<<" "<<endl;
        }
        
      
    
       }
    }
}
02.12.2009 21:04
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: #47
RE: Programma nestrada
(Interesanti, kāpēc tu izdzēsi variantu ar GCD, kurš arī bija gandrīz pareizs, bet nu labi.)

Vai tu vari uzrakstīt vienreiz normālā tekstā, kas tieši tev lika secināt, ka neštimmē? Piemēram: "ievadīju to un to, sanāca tas un tas, bet vadzēja sanākt tirlimbambam, tāpēc, ka babam, un to programma suka nepamanīja". Vnk kad redzēsi to pašrocīgi formulētu, varbūt sāks darboties domāšana.

(Atbilde daļēji bija jau 19:22, bet tu veikli ignorēji.)
(Šo ziņojumu pēdējo reizi modificēja: 02.12.2009 21:28 ulzha.)
02.12.2009 21: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: #48
RE: Programma nestrada
Vnk neprotu apvienot 2 funkcijas viena programma,tapec velos uzrakstit kaut ka citadak.

Nesaprotu,kas te nojucis.Panemu 2 skaitlus,parbaudu kurs no tiem ir mazakais.Un tad tik dalu shos abus skaitlus saakot ar 2,katrreiz palielinot dalitaja vertibu par 1.Ja nav tada gadijuma,kad gan pirmais skaitlis,gan otrais dalas ar dalitaju bez atlikuma,tad drukaju abus skaitlus ara.


{for (int i=0;i<sk;i++)
{for (int j=0;j<sk;j++)

{
if(arr[i]>=arr[j])
{for(int k=2;k<arr[j];k++)
if((arr[i]%k!=0)&&(arr[j]%k!=0))
cout<<arr[i]<<" "<<arr[j]<<" "<<endl;
}
else
{for(int k=2;k<arr[i];k++)
if((arr[i]%k!=0)&&(arr[j]%k!=0))
cout<<arr[i]<<" "<<arr[j]<<" "<<endl;
}
}
}
}
02.12.2009 21:30
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: #49
RE: Programma nestrada
Vai tad kompilators tev bļāva "tu nepareizi apvieno funkcijas vienā programmā"? Very Happy Kaut ko citu bļāva gan, jel iedziļinājies būtu...

Ceri vien, ka kompilators uzminēs, ka tu domāji "nav tada gadijuma,kad gan pirmais skaitlis,gan otrais dalas ar dalitaju bez atlikuma" Very Happy Te tev nosacījums ir uzrakstījies "(arr[i]%k!=0)&&(arr[j]%k!=0)" - "šajā gadījumā ne pirmais, ne otrais nedalās bez atlikuma". Vot tādos gadījumos tu drukā, turklāt vienu un to pašu pāri drukā vairākas reizes. Nafig tu tā dari?

Iepriekš izrādīji kaut kādu kāri uz boolean mainīgajiem, šeit kā reiz vienu varētu ieviest. Kurš glabā, vai tad galu galā ir vai nav bijis kaut kāds gadījums, un tas tev ļautu izdarīt secinājumu un izdrukāt tikai vienu reizi. Vēl varētu ar break un vēl miljons dažādiem paņēmieniem
(Šo ziņojumu pēdējo reizi modificēja: 02.12.2009 21:50 ulzha.)
02.12.2009 21:43
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: #50
RE: Programma nestrada
(02.12.2009 21:43 )ulzha rakstīja:  Vai tad kompilators tev bļāva "tu nepareizi apvieno funkcijas vienā programmā"? Very Happy Kaut ko citu bļāva gan, jel iedziļinājies būtu...

Ceri vien, ka kompilators uzminēs, ka tu domāji "nav tada gadijuma,kad gan pirmais skaitlis,gan otrais dalas ar dalitaju bez atlikuma" Very Happy Te tev nosacījums ir uzrakstījies "(arr[i]%k!=0)&&(arr[j]%k!=0)" - "šajā gadījumā ne pirmais, ne otrais nedalās bez atlikuma". Vot tādos gadījumos tu drukā, turklāt vienu un to pašu pāri drukā vairākas reizes. Nafig tu tā dari?

Nu neesmu tik gudrs kā tu Wink
Ok,pierunaji meginat 2 funkcijas viena progaa Very Happy
2 funkcijas darbojas un tas nemaz nesapeja Very Happy nu tā,programma par 90% gatava.(beidzot..) tikai deretu zināt kā novērst to,ka izdrukā ne tikai 2 un 7 ,bet arī 7 un 2.

Kods:
#include<iostream>//nodrošina ievad-izvadierīču lietošanu
using namespace std;//tiks lietots vārdkopu apgabals std objektiem
void savstpirmsk(int sk,int arr[]);
int GCD(int a, int b)
{
    while( 1 )
    {
        a = a % b;
        if( a == 0 )
            return b;
        b = b % a;

        if( b == 0 )
            return a;
    }
}


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 ";
cout<<endl;
savstpirmsk(sk,arr); // šī funkcija izdrukā pati, jo tu viņai tā liki. Nav vajadzīgs viņas atgriezto vērtību kaut kādu vēl drukāt, jo drukāt vajag tikai pārus! Tev sapņos rādās, ka vēl kaut ko vajag drukāt?
cout <<endl;

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

}// main funkcijas beigas

void savstpirmsk(int sk,int arr[])
{for (int i=0;i<sk;i++)
    {for (int j=0;j<sk;j++)
      
    if(GCD(arr[i],arr[j])==1)
    {cout<<arr[i]<<" "<<arr[j]<<" "<<endl;}
        
      
    
       }
    }
(Šo ziņojumu pēdējo reizi modificēja: 02.12.2009 22:14 andrej.)
02.12.2009 21:47
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: #51
RE: Programma nestrada
O, kaut kas sāk klikšķēt? Very Happy

A man fantāzija izbeidzās, kā tevi patirdīt, lai tu to pats izdomā. Use the Force
02.12.2009 22:49
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
TomsBergmanis Atslēdzies
Junior Member
**

Ziņojumi: 34
Pievienojās: Jan 2009
Reputācija: 2
Ziņojums: #52
RE: Programma nestrada
Uldis ir ļauns viņš tev neteiks. Viņš grib, lai tu kaut ko iemācies. Very Happy

Labi, ja pieņem, ka nu jau Tev ir par vēlu labotu uzdevumu, vai esi to jau nodevis varu pateikt:
funkcijā void savstpirmsk(int sk,int arr[])

Tev līki ir uzkodēta rindiņa {for (int j=0;j<sk;j++)
j nav jāsākās no 0 bet gan no i
Padomāsi sapratīsi!

Un nu skrien uz veikalu pēc šokolādes Luckānam!
03.12.2009 10:33
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: #53
RE: Programma nestrada
Luckāns gan sen nav redzēts. Viņš kož šokolādi? Very Happy
03.12.2009 11:56
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