Aplikacja z własnymi funkcjami

0

Witam. Mam pytanie bo nie ma żadnego błędu wypisanego a w oknie nic nie wyświetla co jest źle?

/*napisz program w c++
wypisujący nazwisko i adres autora*/
#include <iostream>
using namespace std;
void podajdane(string, string);
int main()
{
    void podajdane(string nazwisko, string adres);
}
void podajdane(string na, string ad)
{
    cout << "podaj nazwisko\n";
    cin >> na;
    cout << "podaj adres\n";
    cin >> ad;
    cout << "nazwisko" << endl;
    cout << na << endl;
    cout << "adres\n";
    cout << ad;
}
1

Ten program nie powinien się kompilować. W czym programujesz? Jaki edytor, jaki kompilator?

0
enedil napisał(a):

Ten program nie powinien się kompilować. W czym programujesz? Jaki edytor, jaki kompilator?

w Dev-C++ w języku C++

3
int main()
{
    void podajdane(string nazwisko, string adres);
}

Tu masz niezłe burdello. Zobacz jak się wywołuje funkcję deklaruje zmienne.

0
S4t napisał(a):
int main()
{
    void podajdane(string nazwisko, string adres);
}

Tu masz niezłe burdello. Zobacz jak się wywołuje funkcję deklaruje zmienne.

to jest tak wartość zwracana następnie nazwa parametry i średnik nie wiem co mam źle a dlaczego nie wyskakuje mi żaden błąd?

2

Pomijając fakt, że źle wywołujesz funkcję (nie musisz pisać przy wywołaniu jej typu), to wywołujesz ją z dwoma parametrami, a gdzie są zadeklarowane te parametry, które jej przekazujesz?

0
amateur napisał(a):

Pomijając fakt, że źle wywołujesz funkcję (nie musisz pisać przy wywołaniu jej typu), to wywołujesz ją z dwoma parametrami, a gdzie są zadeklarowane te parametry, które jej przekazujesz?

czyli powinno być bez void i zaddeklarowane parametry? możesz napisać jak ma wyglądać kod?

4
/*napisz program w c++
wypisujący nazwisko i adres autora*/
#include <iostream>
using namespace std;
void podajdane(string, string);
int main()
{
    string nazwisko;
    string adres;
    podajdane(nazwisko, adres);
}
void podajdane(string na, string ad)
{
    cout << "podaj nazwisko\n";
    cin >> na;
    cout << "podaj adres\n";
    cin >> ad;
    cout << "nazwisko" << endl;
    cout << na << endl;
    cout << "adres\n";
    cout << ad;
}

Cała zabawę rozwala ten void na przed wywołaniem funkcji. Jak to usuniesz to przestaje się kompilować.

2
Nikto0 napisał(a):

Witam. Mam pytanie bo nie ma żadnego błędu wypisanego a w oknie nic nie wyświetla co jest źle?

    void podajdane(string nazwisko, string adres);

To nie jest wywołanie funkcji. To jest deklaracja.

2

wróć po przeczytaniu ze zrozumieniem kilku pierwszych rozdziałów dowolnego kursu C++

1
Nikto0 napisał(a):
enedil napisał(a):

Ten program nie powinien się kompilować. W czym programujesz? Jaki edytor, jaki kompilator?

w Dev-C++ w języku C++

To jak wnioskujesz, że nie ma żadnego błędu wypisanego? Bo absolutnie powinien być. Wrzuć screena całego okna Dev-C++.
https://stackoverflow.com/questions/7658487/the-use-of-declaring-function-inside-a-function
jednak można...

6

Zamiast czytać przekombinowane odpowiedzi powyżej radzę wrócić do jakiejś dobrej książki na temat C++, bo zdecydowanie masz braki w podstawach podstaw.
Ja preferowałem Grębosza i Mayers'a.

Ponaprawiane wszystkie twoje kwiatki:
https://godbolt.org/z/MbfW4e6d6

#include <iostream>

void readData(std::string& lastName, std::string& address);

int main()
{
    std::string lastName, address;
    readData(lastName, address);
    std::cout << address << '\n';
    std::cout << lastName << '\n';
}

void readData(std::string& lastName, std::string& address)
{
    std::cout << "podaj nazwisko\n";
    getline(std::cin, lastName);
    std::cout << "podaj adres\n";
    getline(std::cin, address);
}
0
MarekR22 napisał(a):

Zamiast czytać przekombinowane odpowiedzi powyżej radzę wrócić do jakiejś dobrej książki na temat C++, bo zdecydowanie masz braki w podstawach podstaw.
Ja preferowałem Grębosza i Mayers'a.

Ponaprawiane wszystkie twoje kwiatki:
https://godbolt.org/z/MbfW4e6d6

#include <iostream>

void readData(std::string& lastName, std::string& address);

int main()
{
    std::string lastName, address;
    readData(lastName, address);
    std::cout << address << '\n';
    std::cout << lastName << '\n';
}

void readData(std::string& lastName, std::string& address)
{
    std::cout << "podaj nazwisko\n";
    getline(std::cin, lastName);
    std::cout << "podaj adres\n";
    getline(std::cin, address);
}

A można to zrobić tak jak tutaj https://exannarest.wordpress.com/2018/03/20/zadania-z-rozdzialu-ii-jezyk-c-szkola-programowania/ ten sam program tutaj ten pierwszy?

0
Nikto0 napisał(a):
MarekR22 napisał(a):

Zamiast czytać przekombinowane odpowiedzi powyżej radzę wrócić do jakiejś dobrej książki na temat C++, bo zdecydowanie masz braki w podstawach podstaw.
[...]
A można to zrobić tak jak tutaj https://exannarest.wordpress.com/2018/03/20/zadania-z-rozdzialu-ii-jezyk-c-szkola-programowania/ ten sam program tutaj ten pierwszy?

Oczywiście że można... Ale sprawdź co się stanie, gdy na pytanie "Gdzie mieszkasz" odpowiesz
Ulica Kwiatowa 10

Poza tym - funkcja podajdane to taka "funkcja-zabawka". Coś robi, ale nie jesteś w stanie z tego w żaden sposób skorzystać.

Zastanów się, jak na przykład zrealizować taką funkcjonalność

int main()
{
  // zapytaj o dane
  podajDane();
  
  // jeśli użytkownik jest z Warszawy, to wszystkie ceny w sklepie podnieś o 10% 
  // ...
}
0
Bartłomiej Golenko napisał(a):
Nikto0 napisał(a):
MarekR22 napisał(a):

Zamiast czytać przekombinowane odpowiedzi powyżej radzę wrócić do jakiejś dobrej książki na temat C++, bo zdecydowanie masz braki w podstawach podstaw.
[...]
A można to zrobić tak jak tutaj https://exannarest.wordpress.com/2018/03/20/zadania-z-rozdzialu-ii-jezyk-c-szkola-programowania/ ten sam program tutaj ten pierwszy?

Oczywiście że można... Ale sprawdź co się stanie, gdy na pytanie "Gdzie mieszkasz" odpowiesz
Ulica Kwiatowa 10

Poza tym - funkcja podajdane to taka "funkcja-zabawka". Coś robi, ale nie jesteś w stanie z tego w żaden sposób skorzystać.

Zastanów się, jak na przykład zrealizować taką funkcjonalność

int main()
{
  // zapytaj o dane
  podajDane();
  
  // jeśli użytkownik jest z Warszawy, to wszystkie ceny w sklepie podnieś o 10% 
  // ...
}
/*napisz program w c++
wypisujący nazwisko i adres autora*/
#include <iostream>
using namespace std;
void dane(string, string);
int main()
{
    string nazwisko;
    string adres;
    cout << "podaj nazwisko i adres\n";
    cin >> nazwisko;
    cin >> adres;

    dane(nazwisko, adres);
}
void dane(string naz, string ad)
{
    cout << "nazwisko i adres autora" << endl;
    cout << naz << endl;
    cout << ad;
}

to jest mój kod i pojawia się ten sam problem nie da się wpisać takiego adresu jak to zrobić a na twoje pytanie nie znam odpowiedzi

1
Nikto0 napisał(a):
MarekR22 napisał(a):

Zamiast czytać przekombinowane odpowiedzi powyżej radzę wrócić do jakiejś dobrej książki na temat C++, bo zdecydowanie masz braki w podstawach podstaw.
Ja preferowałem Grębosza i Mayers'a.
A można to zrobić tak jak tutaj https://exannarest.wordpress.com/2018/03/20/zadania-z-rozdzialu-ii-jezyk-c-szkola-programowania/ ten sam program tutaj ten pierwszy?

Nie wszystko złoto co się świeci ... w internecie.
To jest doskonały przykład prawa Sturgeon'a (pierwszego i drugiego).

Problem z internetem jest taki, młodziak nauczy się podstaw popiszę troszkę po swojemu, odniesie troszkę sukcesów i ...
I już myśli że jest wielki koder i ma zdolności żeby uczyć innych, więc szybko zakłada stronę, kanał na YouTube lub TickTock i propaguje soje zdolności.
Co gorsza C++ uczył się z podobnego źródła, ergo nie tylko wprowadza swoje złe praktyki, ale kopiuje złe praktyki od innych.
A nawet jak uczył się z dobrego źródła, to z takiego z lat 90tych z przestarzałymi wzorcami.

I tak o to po internecine krąży od groma kursów, które przyprawia o dreszcze ludzi z rzeczywistymi umiejętnościami.
To co wartościowe rzadko jest dostępne za darmo (chciałbym powiedzieć, że płatne rzeczy dają gwarancję jakości, ale nie jest wile lepiej).

Już ten pierwszy kodzik poprawiłem z bólem serca, a wskazane źródło rozpowszechnia też te złe wzorce.

1
MarekR22 napisał(a):

Zamiast czytać przekombinowane odpowiedzi powyżej radzę wrócić do jakiejś dobrej książki na temat C++, bo zdecydowanie masz braki w podstawach podstaw.

Żeby WRÓCIĆ, trzeba mieć do czego wracać ... a o to @Nikto0 nie podejrzewam.

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