Poczatki z funkcjami ( usprawnienie kodu oraz porady dla żółtodzioba )

0

Witam
Miałem do wykonania takie zadanie:

Zdefiniuj funkcję podpis, która po wywołaniu wyświetli twoje dane, tzn. imię nazwisko klasę i grupę na sprawdzianie. Zdefiniuj funkcje potega, która posiada dwa argumenty (np. a,b). Funkcja oblicza wartość ab. Napisz program, który na początku wyświetla twoje dane za pomocą funkcji oraz pobiera od użytkownika 2 liczby całkowite (podstawę i wykładnik), obie muszą być większe od zera i za pomocą zdefiniowanej funkcji oblicza ich potęgę.>

Niżej w kleje kod który napisałem ale że przygodę z funkcjami dopiero zaczynam powiedzcie mi co mógłbym w nim zmienić
aby go usprawnić i zrobić go jeszcze bardziej czytelnym:

#include <iostream>
#include <cmath>
using namespace std;
int dane,licz1,licz2,fu3,fu4;

void podpis(int p);
int potega(int liczba1, int liczba2);
void funkcja3(int a, int b);

int main()
{
    podpis(dane);

    cout<<endl;

    cout<<"Podaj pierwsza liczbe: ";
    cin>>licz1;
    cout<<"Podaj druga liczbe: ";
    cin>>licz2;
    cout<<potega(licz1,licz2)<<endl;;

    cout<<endl;

    funkcja3(fu3,fu4);
}

void podpis(int p)
{
    cout<<"Marcin"<<endl;
    cout<<"Wucke"<<endl;
    cout<<"2cTI 1/2"<<endl;
}

int potega(int liczba1, int liczba2)
{
    int liczba3;

    liczba3=pow(liczba1,liczba2);

    return liczba3;
}

void funkcja3(int a, int b)
{
    int c;
    podpis(dane);

    cout<<endl;

    cout<<"Podaj pierwsza liczbe: ";
    cin>>a;
    cout<<"Podaj druga liczbe: ";
    cin>>b;

    if(a>0 & b>0)
    {
        c=pow(a,b);
        cout<< c;
    }
    else cout<<"Bledne liczby: ";
}

0

Zdefiniuj funkcję podpis, która po wywołaniu wyświetli twoje dane,

Nie jest to jasno napisane, ale to ma być funkcja nieprzyjmująca żadnych argumentów.

using namespace std;
int dane,licz1,licz2,fu3,fu4;

Nie używaj zmiennych globalnych. Ograniczaj using namespace.

void funkcja3(int a, int b);

po co to?

0

A no w sumie to mogę podać int a,b,c; wewnątrz funkcji;
Zmienne globalne zaraz się tym zajmę.

void funkcja3()
{
    int a,b,c;
    podpis(dane);

    cout<<endl;

    cout<<"Podaj pierwsza liczbe: ";
    cin>>a;
    cout<<"Podaj druga liczbe: ";
    cin>>b;

    if(a>0 & b>0)
    {
        c=pow(a,b);
        cout<< c;
    }
    else cout<<"Bledne liczby: ";
}
0
if(a>0 & b>0)

Użyj &&.

0

Tak wygląda kod po drobnych poprawach.
Napiszcie co bym jeszcze mógł zmienić dla przejrzystości kodu.

#include <iostream>
#include <cmath>
using namespace std;

void podpis(int p);
int potega(int liczba1, int liczba2);
void funkcja3();

int main()
{
    int liczba1,liczba2,dane;
    podpis(dane);

    cout<<endl;

    cout<<"Podaj pierwsza liczbe: ";
    cin>>liczba1;
    cout<<"Podaj druga liczbe: ";
    cin>>liczba2;
    cout<<potega(liczba1,liczba2)<<endl;;

    cout<<endl;

    funkcja3();
}

void podpis(int p)
{
    cout<<"Marcin"<<endl;
    cout<<"Wucke"<<endl;
    cout<<"2cTI 1/2"<<endl;
}

int potega(int liczba1, int liczba2)
{
    int liczba3;

    liczba3=pow(liczba1,liczba2);

    return liczba3;
}

void funkcja3()
{
    int a,b,c,dane;
    podpis(dane);

    cout<<endl;

    cout<<"Podaj pierwsza liczbe: ";
    cin>>a;
    cout<<"Podaj druga liczbe: ";
    cin>>b;

    if(a>0 & b>0)
    {
        c=pow(a,b);
        cout<< c;
    }
    else cout<<"Bledne liczby: ";
}

0

Po co jest funkcja3?

0

Źle przeczytałem zadanie ...
Myślałem że mam stworzyć 3 funkcje która łączy te 2 wcześniejsze funkcje :/
A więc jest ona po nic.

1

Taka funkcja już istnieje i nazywa się main() ;​)

0

Potrzebował bym jeszcze jednej porady, napisałem program który ma wyświetlać szlaczek o danej długości lecz zabezpieczenie
przed wpisaniem liczby ujemnej lub 0 nie chce mi działać :/

#include <iostream>

using namespace std;
void szlaczek(int dlugosc, char znak);
int zabezpieczenie(int dlugosc);

int main()
{
    int dlugosc;
    char znak;

    cout<<"Podaj dlugosc: ";
    cin>>dlugosc;
    cout<<"Podaj znak z ktorego bedzie skladac sie szlaczek: ";
    cin>>znak;

    zabezpieczenie(dlugosc);
    szlaczek(dlugosc,znak);

    return 0;
}

void szlaczek(int dlugosc, char znak)
{
    int i=1;
    while(i<=dlugosc)
    {
        cout<< znak;
        i++;
    }
}

int zabezpieczenie(int dlugosc)
{
    if(dlugosc>0)
    {
        return dlugosc;
    }
    else
    {
        do
        {
            cout<<"Podales bledna liczbe, sprobuj ponownie: ";
            cin>>dlugosc;
        }
        while(dlugosc<1);

        return dlugosc;
    }
}

0

Czaje teraz już działa, wielkie dzięki za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1