Sprawdz prosty kod

Sprawdz prosty kod
AW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 3 lata
  • Postów:19
0

Witam,
Jestem tu nowy oraz początkującą osobą uczącą się programowania. Mam prośbę czy może ktoś sprawdzić prosty kod do zamiany cali na cm. Program działa ale czy na pewno jest dobrze napisany czy nie wymaga jakiś udoskonaleń.

Kopiuj
#include <iostream>

using namespace std;
float liczbaCali,cm,cal;

int main()
{
    cal=2.54;

    cout<< "***** Autor: xxxxxx xxxxxxx *****\n";
    cout<< "**** Data prod.:18.01.2016r. ****\n";
    
    cout<<"\nPodaj dlugosc wyrazona w Calach: ";
    cin>> liczbaCali;
    cm = (liczbaCali*cal);

    cout<< "\nDlugosc cali zamieniona na centymetry: "<<cm<<endl;
    return 0;
}

edytowany 1x, ostatnio: awium
KA
to ma coś wspólnego z tymi manifestacjami KOD - komitet ochrony demokracji?
AW
hehe nie pomyślałem nawet w ten sposób
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
  • Lokalizacja:Szczecin
4

Nie używaj zmiennych globalnych jeśli nie musisz (nie musisz). Deklaruj je jak najbliżej miejsca użycia, w jak najmniejszym zakresie. cal jest dość mało deskryptywną nazwą, a samo w sobie powinno być stałą (najlepiej constexpr, jeśli kompilator pozwala). Poza tym wygląda ok, ale kod jest szalenie krótki ;)


edytowany 1x, ostatnio: kq
pingwindyktator
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Kraków
  • Postów:1055
4
  1. Nie używaj zmiennych globalnych. Za to używaj const tam, gdzie const powinno być.
  2. Sugerowałbym raczej double, float jest głupi, ma słabą precyzje i nie jest w stanie reprezentować wszystkich liczb. Mówię tu o prostych, krótkich liczbach. Zaraz sobie przypomne.
    EDIT: o, patrzcie
    http://melpon.org/wandbox/permlink/FqGJ7Z6kBb2Hxxyt

do not code, write prose
edytowany 1x, ostatnio: pingwindyktator
ER
Dzięki za info, ciekawy przykład.
Azarien
float ma dokładność około 7 cyfr (z przecinkiem w dowolnym miejscu), a to są 8-cyfrowe liczby.
pingwindyktator
@Azarien jasne, to jest oczywiste dla kogoś, kto zna background reprezentacji liczby float. Ale może być bardzo mylące dla początkującego, skoro http://melpon.org/wandbox/permlink/VvhksvlwVX4T0xkd
AW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 3 lata
  • Postów:19
0

Szalenie krótki ale to chyba dobrze? Dziękuje za cenne uwagi

kq
Po prostu nie bardzo jest gdzie się przyczepić. Jak na wykonywane operacje jest adekwatnej długości.
_13th_Dragon
Tak, tylko jakieś 50% więcej od niezbędnego rozmiaru w wierszach.
AW
co masz na mysli?
_13th_Dragon
Ze masz 19 wierszy a można to samo napisać w 13 wierszy 13*150%=19.5, zaokrąglenia wg C/C++ :D
M3
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Postów:23
0

To ja tez się o coś zapytam

Kopiuj
#include <iostream>

using namespace std;

void generuj(int tab[], int n)
{
	for (int i = 0; i < n; i++)
	{
		cin >> tab[i];
		
	}
}

void wyswietl(int tab[], int n)
{
	for (int i = 0; i < n; i++)
	{
		cout << tab[i] << "  ";
	}
}
int main()
{
	const int N = 25;
	int tab[N], n;
	cout << "Podaj liczbe elementow do generowania: " << endl;
	cin >> n;
	generuj(tab, n);
	wyswietl(tab, n);

	getchar();
} 

Dlaczego to nie śmiga?

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
  • Lokalizacja:Szczecin
1

M3
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Postów:23
0

U mnie w Visual Studio wykonuje się część kodu, czyli cout << "Podaj liczbe elementow do generowania". Potem gdy wpisuje jakąś liczbę, nic się nie dzieje.

twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
3

A brałeś pod uwagę fakt, że po wpisaniu jakiejś liczby (powiedzmy 5) trzeba wpisać też 5 kolejnych liczb?

kq
Jeśli masz rację to ciężko go podejrzewać o bycie autorem kodu :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.