[C] Pomóżcie mi poprawić "stylistykę" programu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
witcher23
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 22 paź 2008, 17:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

[C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: witcher23 »

Witam, napisałem program obliczający moduł, oraz argument liczby zespolonej. Oto i on:

Kod: Zaznacz cały

#include <stdio.h>
#include <math.h>
#define PI 3.14

/* z - moduł liczby zespolonej */
/* k - argument główny */
int main(void)
{
float x, y;



printf("Wprowadz pierwsza zmienna: ");
printf("\n");
scanf("%f", &x);

printf("Wprowadz drug zmienna: ");
printf("\n");
scanf("%f", &y);

float z=sqrt((x*x) + (y*y));

printf("Modul‚ liczby zespolonej to %.2f", z);
printf("\n");



float k;
if (z!=0)
{
if (y > 0 && y != 0)
	{
	k = asin((x/z));
	printf("Argument liczby zespolonej wynosi: %f", k);
	printf("\n");
return(0);
	}
if (y < 0 && y!= 0)
		{
		k = (-asin((x/z)) + 2*PI);
		printf("Argument liczby zespolonej wynosi: %f", k);
		printf("\n");
return(0);
		}

if (y = 0, x > 0)
			{
			k = 0;
			printf("Argument liczby zespolonej wynosi: %.2f", k);
			printf("\n");
return(0);
			}
if (y = 0, x < 0)
				{
				k = PI;
				printf("Argument liczby zespolonej wynosi: %.2f", k);
				printf("\n");
return(0);
				}					


}



}

Nie jestem jednak zadowolony ze stylu mojego kodu. Proszę poradźcie mi co zmienić.
Chciałbym również dodać element, który będzie wyświetlał komunikat o braku wartości argumentu, gdy moduł liczby zespolonej wynosi 0. Próbowałem to zrobić na kilka sposobów, choćby za pomocą "else", jednak nie działa mi to w programie.


Pozdrawiam.
adrian5632
Przyjaciel
Przyjaciel
Posty: 259
Rejestracja: 17 gru 2006, 16:07
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: adrian5632 »

Nie jestem jednak zadowolony ze stylu mojego kodu.
A wystarczyło wrzucić w pierwszy lepszy edytor w jakimś IDE...

Kod: Zaznacz cały

#include <stdio.h>
#include <math.h>

#define PI 3.14

/* z - moduł‚ liczby zespolonej */
/* k - argument główny */
int main(void)
{
    float x, y;

    printf("Wprowadz pierwsza zmienna: ");
    printf("\n");
    scanf("%f", &x);
    
    printf("Wprowadz drug zmienna: ");
    printf("\n");
    scanf("%f", &y);
    
    float z=sqrt((x*x) + (y*y));
    
    printf("Modul‚ liczby zespolonej to %.2f", z);
    printf("\n");

    float k;
    if (z!=0)
    {
        if (y > 0 && y != 0)
        {
            k = asin((x/z));
            printf("Argument liczby zespolonej wynosi: %f", k);
            printf("\n");
            return(0);
        }
        if (y < 0 && y!= 0)
        {
            k = (-asin((x/z)) + 2*PI);
            printf("Argument liczby zespolonej wynosi: %f", k);
            printf("\n");
            return(0);
        }
        
        if (y = 0, x > 0)
        {
            k = 0;
            printf("Argument liczby zespolonej wynosi: %.2f", k);
            printf("\n");
            return(0);
        }
        if (y = 0, x < 0)
        {
            k = PI;
            printf("Argument liczby zespolonej wynosi: %.2f", k);
            printf("\n");
            return(0);
        }					
    }
}
Poza tym jestem ciekawy, o co ci chodziło w warunkach typu: if (y = 0, x < 0), bo raczej to nie jest normalne (nie czaję, o co biega z tym przecinkiem)...
[IMG]http://www.ubudsl.com/media/UbuDSL.png[/IMG]
Masz problem z UbuDSL? Nie zapomnij wygenerować i załączyć loga do postu!
Awatar użytkownika
Althorion
Przyjaciel
Przyjaciel
Posty: 191
Rejestracja: 15 lis 2007, 14:16
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: Althorion »

Program wchodzi do warunku, przypisuje zmiennej y wartość 0, sprawdza czy x > 0 po czym, jeżeli to jest prawda, wykonuje polecenia z klamry.

Jeśli chodziło o warunek podwójny, tzn. y ma być równe 0 i x od zera większy, to trzeba było to napisać tak:

Kod: Zaznacz cały

if ( (y == 0) && (x > 0) ) {
blablabla }
Awatar użytkownika
Struchu
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 116
Rejestracja: 23 mar 2008, 19:58
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: Struchu »

adrian5632 pisze:Poza tym jestem ciekawy, o co ci chodziło w warunkach typu: if (y = 0, x < 0), bo raczej to nie jest normalne (nie czaję, o co biega z tym przecinkiem)...
Ot, operator przecinkowy: wykonywane są po kolei wszystkie wyrażenia (może ich być więcej niż 2), a wartością zwracaną jest wartość ostatniego z nich.

Jeśli miałbym od siebie coś dodać, to ja bym nie rozdzielał napisów wyświetlanych printf'em od znaków nowej linii:

Kod: Zaznacz cały

printf("Wprowadz pierwsza zmienna:\n");
Ma zielone, kocie oczy...
witcher23
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 22 paź 2008, 17:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: witcher23 »

adrian5632, chodziło mi dokładnie o to, o czym pisze Althorion, bardzo wam dziękuję. Jak tylko poprawie kod, dam znać w tym wątku, czy jest już wszystko ok.


Struchu, dzięki za radę.
gril
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 09 lis 2008, 00:47
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: gril »

Poczytaj o standardach kodowania.

Tu masz linka do zbioru różnych opisów i dyskusji na ten temat: http://viable.pl/tutorial/12/preview/ (choć nie wiedzę stylu Kernigan i Richie...).

Osobiście proponuję wzorować się na standardzie kodowania javy (http://java.sun.com/docs/codeconv/html/ ... C.doc.html). Jest on bardzo dobrze opracowany i choć nie jest to C, to można spokojnie większość zastosować.
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: el.pescado »

Do formatowania kodu służy program indent - posiada on kilka schematów formatowania, można też tworzyć własne style. A co do wyboru stylu - ot, kwestia gustu. Ciężko mi zrozumieć dlaczego jeden miałby być lepszym od drugiego. Ważne, by się trzymać jednego, wybranego, stylu.
witcher23
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 22 paź 2008, 17:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [C] Pomóżcie mi poprawić "stylistykę" programu

Post autor: witcher23 »

Dziękuję wszystkim ponownie za zainteresowanie i pomoc.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości