Strumień wej/wyj – optymalizacja kodu

0

Dzień dobry Wszystkim.
Postanowiłem zacząć przygodę z programowaniem.
Zadanie jest banalne i wykonałem je.
Możektoś jednak zechce pomóc w optymalizacji poniższego:

#include <iostream>

using namespace std;

string imie1, imie2;
float wiek1, wzrost1, waga1, wiek2, wzrost2, waga2;
 
int main()
{
    cout << " Podaj imie pierwszej osoby: "; cin >> imie1;
    cout << " Podaj wiek pierwszej osoby: "; cin >> wiek1;
    cout << " Podaj wzrost w cm pierwszej osoby: "; cin >> wzrost1;
    cout << " Podaj wage pierwszej osoby: "; cin >> waga1;
    cout << " Podaj imie drugiej osoby: "; cin >> imie2;
    cout << " Podaj wiek drugiej osoby: "; cin >> wiek2;
    cout << " Podaj wzrost w cm drugiej osoby: "; cin >> wzrost2;
    cout << " Podaj wage drugiej osoby: "; cin >> waga2;
    cin.get();
    cout << "Dane\t\t Wiek\t Wzrost\t Waga"; cout << endl;
    cout << endl;
    cout << imie1;
    cout << "\t  "; cout << wiek1;
    cout << "\t";cout << wzrost1;
    cout << "\t";cout << waga1;
    cout << endl;
    cout << imie2;
    cout << "\t  "; cout << wiek2;
    cout << "\t";cout << wzrost2;
    cout << "\t";cout << waga2;
    cin.get();
 
    return 0;
}
#include <iostream>

using namespace std;
string stolica_1, stolica_2, stolica_3, stolica_4;
long double pow_1, pow_2, pow_3, pow_4, lm_1, lm_2, lm_3, lm_4;

int main()
{
    cout << " Witaj! "; cout << endl;
    cout << " Napewno znasz takie panstwa: Belize, Ekwador, Honduras czy RPA! "; cout << endl;
    cout << " Podaj nazwe stolicy Belize: "; cin >> stolica_1;
    cout << " Podaj powierzchnie Belize: "; cin >> pow_1;
    cout << " Podaj liczbe mieszkancow Belize : "; cin >> lm_1;
    cout << " Podaj nazwe stolicy Ekwadoru: "; cin >> stolica_2;
    cout << " Podaj powierzchnie Ekwadoru: "; cin >> pow_2;
    cout << " Podaj liczbe mieszkancow Ekwadoru : "; cin >> lm_2;
    cout << " Podaj nazwe stolicy Hodurasu: "; cin >> stolica_3;
    cout << " Podaj powierzchnie Hondurasu: "; cin >> pow_3;
    cout << " Podaj liczbe mieszkancow Hondurasu : "; cin >> lm_3;
    cout << " Podaj nazwe stolicy RPA: "; cin >> stolica_4;
    cout << " Podaj powierzchnie RPA: "; cin >> pow_4;
    cout << " Podaj liczbe mieszkancow RPA : "; cin >> lm_4;
    cin.get();
    cout << " Panstwo\t\t Stolica\t Powierzchnia\t Liczba mieszkancow"; cout << endl;
    cout << " Belize\t\t\t  " <<stolica_1<<"\t\t"<<pow_1<<"\t\t\t"<<lm_1<< endl;
    cout << " Ekwador\t\t  " <<stolica_2<<"\t\t"<<pow_2<<"\t\t"<<lm_2<< endl;
    cout << " Honduras\t\t  " <<stolica_3<<"\t\t"<<pow_3<<"\t\t"<<lm_3<< endl;
    cout << " RPA\t\t\t  " <<stolica_4<<"\t\t"<<pow_4<<"\t\t"<<lm_4<< endl;
    cin.get();

    return 0;
}

Z góry dziękuję

1

Ciężko tu cokolwiek optymalizować jak nic prawie nie ma, ale możesz pozbyć się zmiennych globalnych i wrzucić je do funkcji oraz przezwać je tak aby były po angielsku. Można byłoby opakować informacje typu stolica, powierzchnia oraz ilość mieszkańców w strukturę.

Możesz wyrzucić using namespace std; albo przenieść to do funkcji main. Dlaczego? Chodzi o zabezpieczenie się i jawne podawanie co skąd pochodzi.
Przykładowo, masz 2 przestrzenie nazw (namespace) - A, która ma funkcję Foo() oraz B która ma funkcję Bar() i dodajesz to:

using namespace A;
using namespace B;

Wszystko gra dopóki w namespace A nie pojawi się funkcja o tej samej nazwie jak w B - Bar(), próbujesz wywołać funkcję Bar() z namespace A a tu się okazuje że nie działa tak jak chciałeś. Wszystko dlatego że wywołujesz tą z przestrzeni nazw B a nie A tylko o tym nie wiesz.
Takiego problemu nigdy by nie było gdybyś pisał:

A::Foo();
B::Bar();
A::Bar();

Miałem pisać o przekazywaniu danych do funkcji ale nie wiem czy nie będzie to zbyt dużo jeżeli jesteś początkującym.

0

Właśnie jakiś czas temu wyczytałem, że używanie using namspace może prowadizć do pewnych powikłań, jednak nie znalazłem rozwinięcia tematu.
Co do przekazywania danych, to chyba jeszcze rzeczywiście za wcześnie.
Dzięki za pomoc.

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