Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak ] NZD; Predaja parametara; iterativni postupak

[es] :: C/C++ programiranje :: [Zadatak ] NZD; Predaja parametara; iterativni postupak

[ Pregleda: 2613 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SuperC

Član broj: 120719
Poruke: 124
*.pri.univie.ac.at.



Profil

icon [Zadatak ] NZD; Predaja parametara; iterativni postupak13.11.2006. u 13:27 - pre 213 meseci
Citam ovaj forum. Kada ljudi traze da im se rijesi neki zadatak, svi povicu stavi kod, pa cemo ti pomoci, kada covjek stavi kod, opet im ne valja, sto kod ima gresaka, pa da je 'bezgresan' (kod mislim :)) ne bi ga niko ni postavljao.

No, uglavnom, uradih jos neke zadatke i greske ne pronalazim, sve je radjeno u C++, evo zadataka i koda, ako ko moze da pomogne da pronadjem greske hvala mu velika. Ostalima isto hvala. Nako.

zadatak1:

Napisati dvije funkcije, koje ce uvijek duzinu stringa, kojeg ce kao parametar predati Jedna funkcija moze koristi petlje, a druga ne. Ne smiju se koristiti externe rutine kao strlen.

Code:

#include <iostream>
using namespace std;
int Petlja (char *String)
{
int Zaehler = 0;
for (int i=0; String [i]!='\0'; i++)
{
String [i];
Zaehler +=1;
}
return Zaehler;
}
int BezPetlje (char *String, int i)
{
if (String [i] =='\0'smiley return 0;
else
{
BezPetlje (String [i+1], i+1);
}
}

int main ()
{
char String [20];
cout << " Bitte geben Sie einen Text ein : \n";
cin >> String;
cout << "Laenge:" << Petlja (String);
cout << "Laenge:" << BezPetlje (String, 0);
return 0;
}

====================================

zadatak 2:
Napisati funkciju int ggt (int a, int b) koja ce najveci zajednicki djelilac naci od oba unesena broja. I to da se uradi bez petlji.

Code:
#include <iostream>
using namespace std;

int ggt (int a, int b);
int main ()
{
float a,b;

// gleda da li je prirodan broj, sve dok uslovi nisu pogresni

do
{
cout << "Geben Sie bitte ein a:";
cin >> a;
cout << "Geben Sie bitte ein b:";
cin >> b;

if (a-(int)a! = 0 || b = (int)b=!0 || a <= 0 || b <= 0);
cout <<"Falsch, bitte probieren Sie noch einmal!"<< endl;
}

while (a-(int)a!=0 || b-(int)b!=0 ||a <= 0 || b<=0);
cout<<"GGD von zwei nummer a und b ist:" <<ggt (a,b)<< endl;
return 0;
}

{
if (a==b) return a;
else
{
if (a>b) a=(a-b);
else b=(b-a);
return ggt (a,b) //rekurzija
}

==================================================


zadatak 3
Ovdje je niz Fn predstavljen kao Fn=2*Fn-1+Fn-2*Fn-3 (ovdje je F od n, F od n-1, i F od n-2, ne nadjoh kako da to postavim matematicki ispravno) sa pocetnim vrijednostima F0-1, F1=1, F2=1. Napisati funkciju koja ce vrijednost Fn, za bilo koje n izracunati:


Code:

#include <iostream>
using namespace std;
float folge (float n);
int main ()
{
cout <<"\n Program zu Berechnung der Folge an der Position n"<< endl;
int n;
char ant='j';
while (ant=='j')
{
cout << "\n Waehlen Sie ein positives n:";
cin >>n;

while (n>0)
{
cout << "\n Positive Zahl eingeben, bitte!";
cin >>n;

cout <<"\n Das Ergebnis der Folge an der Stelle n="<< endl;
cout <<" lautet";
cout <<" Nocheinmal versuchen";
cin >> ant;
}
return 0;
float folge (float n)
{
if (n==0 || n==1 || n==2) return (1);        //vordefiniert;
else return (2*folge(n-1) + folge (n-2) * folge (n-3));
}
}

=====================================
 
Odgovor na temu

Xabre
Srđan Rajčić
Beograd

Član broj: 13192
Poruke: 34
*.internet.krstarica.net.

Jabber: Srdjan@elitesecurity.org
ICQ: 280236914


Profil

icon Re: [Zadatak ] NZD; Predaja parametara; iterativni postupak13.11.2006. u 17:40 - pre 213 meseci
Evo ti resenja za prva dva, a treci ni sam nisi nista uradio, tako da necu da ti radim ceo zadatak.

Code:

#include <iostream>
using namespace std;

int Petlja (char *pTekst)
{
    int iCnt = 0;

    if(!pTekst)
        return 0;

    for (int i = 0; pTekst[i] != '\0'; ++i)
    {
        pTekst[i];
        iCnt += 1;
    }
    return iCnt;
}

int BezPetlje (char *pTekst, int iCnt)
{
    if (!pTekst)
        return 0;
    else if(*pTekst != '\0')
        BezPetlje(++pTekst, ++iCnt);
    else
        return iCnt;
}

int main ()
{
    char strUl[20];
    cout << " Bitte geben Sie einen Text ein : \n";
    cin >> strUl;
    cout << "Laenge:" << Petlja(strUl) << endl;
    cout << "Laenge:" << BezPetlje(strUl, 0);
    return 0;
}


Code:

#include <iostream>
using namespace std;

int ggt (int a, int b);

int main ()
{
    float a,b;

    // gleda da li je prirodan broj, sve dok uslovi nisu pogresni
    do
    {
        cout << "Geben Sie bitte ein a:";
        cin >> a;
        cout << "Geben Sie bitte ein b:";
        cin >> b;

        if((a <= 0) && (b <= 0) && (a - (int)a != 0) && (b - (int)b != 0))
            cout <<"Falsch, bitte probieren Sie noch einmal!" << endl;
    }
    while((a <= 0) && (b <= 0) && (a - (int)a != 0) && (b - (int)b != 0));
    cout<<"GGD von zwei nummer a und b ist:" << ggt(a, b) << endl;

    return 0;
}

int ggt (int a, int b)
{
    if((a % b != 0) && (b % a != 0))
        return 0;
    else
    {
        if (a == b)
            return a;
        else if (a > b)
            a = (a - b);
        else
            b = (b - a);
    }
    return ggt(a, b);

}

 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.cs.univie.ac.at.



Profil

icon Re: [Zadatak ] NZD; Predaja parametara; iterativni postupak13.11.2006. u 18:02 - pre 213 meseci
Xabre
hvala ti puno, sad vidim gdje su greske, no javlja mi jos jednu gresku prilikom kompajliranja ovog tvog primjera. pogledaj:

Code:

h5b3.c: In function 'int main()':
h5b3.c:26: warning: passing 'float' for argument 1 to 'int ggt(int, int)'
h5b3.c:26: warning: passing 'float' for argument 2 to 'int ggt(int, int)'


 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.cs.univie.ac.at.



Profil

icon Re: [Zadatak ] NZD; Predaja parametara; iterativni postupak13.11.2006. u 18:07 - pre 213 meseci
mada se program pokrece i daje tacna rjesenja :))


a u vezi primjera za nizom Fn, ja ne znam sta bi jos tu trebalo, mada ti kazes da nisam nista uradio, valjda to malo koda nije nista (nisam ekspert kao ti, no zelim nauciti na svojim greskama)
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
85.187.163.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: [Zadatak ] NZD; Predaja parametara; iterativni postupak13.11.2006. u 18:54 - pre 213 meseci
Citat:
SuperC: pogledaj: ...

Pa kad su a i b već prirodni nakon izlaska iz while, možeš da ih sam pretvoriš u int pre nego što ih daš ggt, da računar ne bi to radio umesto tebe (o tome se radi u warnings koje si naveo).

Code:
ggt((int)a,(int)b);

Ipak se ++uje.
 
Odgovor na temu

Xabre
Srđan Rajčić
Beograd

Član broj: 13192
Poruke: 34
*.internet.krstarica.net.

Jabber: Srdjan@elitesecurity.org
ICQ: 280236914


Profil

icon Re: [Zadatak ] NZD; Predaja parametara; iterativni postupak13.11.2006. u 20:59 - pre 213 meseci
Kompajler sam vrsi konverziju kada moze, konkretno u ovom slucaju float u int tako sto odseca decimale. Uostalom sam si
u kodu koristio tip int (funkcija ggt), iako mi nije jasno zasto si napocetku deklarisao float. Ako bas hoces koristi konverziju tipa, ako sto ti je Misa odgovorio.
 
Odgovor na temu

[es] :: C/C++ programiranje :: [Zadatak ] NZD; Predaja parametara; iterativni postupak

[ Pregleda: 2613 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.