![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
napisalem kod w php, i teraz chce to na C przelozyc, ile pamietalem zrobilem sam w C
kod jest taki
do was mam prosbe, zebyscie rzuciili na to okiem, czy nie ma bledow i ew. cos poprawili, no i powiedzciie mi jak ta funkcja sie nazywala ![]() Ten post edytował invx 5.02.2005, 20:40:24 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
to jest c ? kompilowałeś to ? jak nie to sprobuj
1. nazwy zmiennych bez $ to nie perl, php 2. nie /n a \n Cytat #kurcze tu mi uciekla z glowy funkccja zeby za $a podstawila wartosc z klawiatury wpisana 3. to jest w pierwszym lepszym 'kursie' c 4. zamiast main powinna byc void main(void) (chyba ![]() -------------------- |
|
|
![]()
Post
#3
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Bela z 4 to pewnie zalezy od kompilatora ale w c++ musi byc dane co funckja dana zwraca (tak sie ja "rejestruje")
Tylko imho zazwyczaj tjest int (return 1; ) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 0 Dołączył: 22.09.2002 Skąd: Gorzów Wlkp Ostrzeżenie: (0%) ![]() ![]() |
Hej.
Skoro piszesz o C, a przy nazwach zmienny jak wspomnial bella stawiasz znak $ to chyba sam do konca nie wiesz co robisz, szczerze mowiac zawsze mialem stycznosc z c++ i do obslugi danych wejsciowych uzywalem "cout" i "cin" pamietaj o dolaczaniu bibliotek niezbednych do dzialania programu. Moze taki prosty przyklad Ci pomoze: Kod #include <iostream.h> #include <conio.h> void main () { int a,b,c,przeciw,przy_1,przy_2; cout << "Wprowadz pierwszy bok trojkata: "; cin >> a; /* dalsza czesc kodu sprawdzajaca co tam chcesz i pobierajac dane*/ } Aby zlamac wiersz mozesz uzyc skladni cout << "Tekst \n" lub cout << "Tekst" << endl; pozdrawiam anas |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat(serafin @ 2005-02-06 00:12:41) sorry ale strumienie o ktorych mowisz sa straaaaaaasznie wolne (czyli ogolnie mowiac do d...) Lepiej dolaczyc stdio.h i uzywac strumieni poprzez scanf() i printf() ![]() Pokaż swoje wyliczenia tej różnicy prędkości ![]() -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#6
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Cytat(sf @ 2005-02-06 10:53:56) Cytat(serafin @ 2005-02-06 00:12:41) sorry ale strumienie o ktorych mowisz sa straaaaaaasznie wolne (czyli ogolnie mowiac do d...) Lepiej dolaczyc stdio.h i uzywac strumieni poprzez scanf() i printf() ![]() Pokaż swoje wyliczenia tej różnicy prędkości ![]() Ja tez czytalem ze tamte sa "gorsze" od tych za proponowanych przez Serafina... Sf wystarczy poczytac :-) |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
To, że są wolniejsze to oczywiste (mają większe możliwości niż printf), ale chciałbym zobaczyć różnice
![]() Ten post edytował sf 6.02.2005, 12:13:38 -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
dobrze, ale zobaczmy na temat. Pzekładamy do C, czyli problem odpada, trzeba użyć printf.
a teraz: - # nie oznacza w C komentarza (tylko instrukcje preprocesora) - nie ma takiej funkcji jak empty, w Twoim przypadku wystarczyłoby sprawdzić, czy a, b oraz c są większe od zera. - printf, puts itp. , a nie print - w C nie ma czegoś takiego jak elseif, musisz napisać if(){} else if(){} else{} - int main(void){return 0;} tak się definiuje funkcję, jeżeli nie przyjmuje ona argumentów A do wczytania inputu, polecam: - zrobić sobie bufor - zaalokować miejsce (malloc) - wczytać X znaków (określoną liczbę żeby uniknąć przeciążenia bufora) // fread albo for i to X getc - atoi lub strtol - zdealkować bufor lub - scanf (ale polecam pierwszą możliwość) Ten post edytował Jabol 6.02.2005, 14:06:35 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
Cytat A do wczytania inputu, polecam: - zrobić sobie bufor - zaalokować miejsce (malloc) - wczytać X znaków (określoną liczbę żeby uniknąć przeciążenia bufora) // fread albo for i to X getc - atoi lub strtol - zdealkować bufor a mogl bys to na kod przezucic, bo brzmi przerazliwie -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
zrob sobie tablice tylko, do ktorej wczytasz dane, nie trzeba alokowac dynamiecznie pamieci na taka bzdure ;]
no i w ogole przeczytaj sobie jakis kurs C -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
a w czym lepsza bedzie tablica od zwyklej zmiennej ?
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
E, sorry, tutaj masz same int wiec ok, myslalem, ze wprowadzasz str, a wtedy trzeba stworzyc tablice char
![]() -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
Hint: najstarsi górale piszą czasami int main(int argc, char *argv[])
![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Lekko OT: sugeruję zmienić temat wątku. Poziom zagadnień w dyskusji raczej nie pasuje do "ostatanie szlify kodu" - to raczej pierwsze odłupki.
-------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(hawk @ 2005-02-07 11:03:02) Hint: najstarsi górale piszą czasami int main(int argc, char *argv[]) ![]() ale ten program nie przyjmuje argumentów więc można spokojnie użyć `int main(void)` a teraz... tak, co do kodu Kod // kompilujemy: Tak wczytujemy bok!
// gcc -pedantic -std=gnu99 -o test test.c #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int bok=0, i=0, c=0; char buf[20]; memset((void *)buf, 0, 20); for(i=0; i<20; i++) if((c=getchar())!='\n') buf[i]=c; else break; bok=strtol(buf, (void*)((void *)NULL), 0); printf("%d\n", bok); return 0; } Ten post edytował Jabol 7.02.2005, 12:22:30 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 866 Pomógł: 32 Dołączył: 2.06.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To ponizej to jest dokladnie to co ty napisałes tyle że w c++, działa, jezeli źle to pomyliles cos z funkcjami warunkowymi IF ELSE (ja z nich usunałem tylko $). I wywalłem ostatniee ELSE bo nie bylo poprzedzone zadnym IF (każdy IF ma najwyzej jedno ELSE).
To link do skompilowanego programu w Dev-C++: www.sztosz.no-ip.org/trojkat/trojkat.exe Kod #include <cstdlib>
#include <iostream> using namespace std; int main() { //---------INICJACJA ZMIENNYCH-------------------- int a, b, c, przeciw, przy_1, przy_2; //---------INICJACJA ZMIENNYCH KONIEC------------- //---------WCZYTYWANIE DANYCH--------------------- //Muszą byc liczby całkowite wpisane, sprawdzanie //typu to juz inna para kaloszy cout << "Podaj 1 bok: "; cin >> a; cout << "Podaj 2 bok: "; cin >> b; cout << "Podaj 3 bok: "; cin >> c; //---------WCZYTYWANIE DANYCH KONIEC-------------- //---------DOPASOWYWANIE BOKOW I INFO NA EKRAN---- if ( a < b ) { przeciw = b; przy_1 = a; } else { przeciw = a; przy_1 = b; } if ( przeciw < c ) { przy_2 = przeciw; przeciw = c; } else { przy_2=c; } if ( (a == b) || (a == c) || (b == c) ) { if ( a == b && b == c ) { if ( (przy_1*przy_1 + przy_2*przy_2) == ( przeciw*przeciw) ) { cout << "Trójkąt jest równoramienny, prostokątny" << endl; } if ( a == b && b == c ) { cout << "Trójkąt jest równoboczny" << endl; } } else { cout << "Trójkąt jest równoramienny" << endl; } } else if ( (((przy_1*przy_1) + (przy_2*przy_2))) == (przeciw*przeciw) ) { cout << "Trójkąt jest prostokątny" << endl; } else { cout << "Trójkąt jest różnoboczny" << endl; } //--DOPASOWYWANIE BOKOW I INFO NA EKRAN KONIEC---- //----------"Press any key.." I EXIT-------------- system("PAUSE"); return EXIT_SUCCESS; //----------"Press any key.." I EXIT KONIEC------- } Ten post edytował sztosz 7.02.2005, 15:00:32 -------------------- |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
wielkie dzieki, wszytsim, za odpowiedzi, i przeedewszystkim pomoc
![]() ![]() ![]() -------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Hm, jak juz jestesmy przy C... zna ktos jakies IDE pod konsole? Chodzi o cos takiego co by odrazu tworzylo pliki umozliwiajace szybkie stworzenie plikow configure, by programy byly przenosne :} Kiedys szukalem jakiegos artykulu jak tworzyc configi za pomoca automake, autoconfig czy cos tam jeszcze, ale nie udalo mi sie znalezc.. ble.
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
info|man automake|autoconf
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 204 Pomógł: 0 Dołączył: 26.12.2003 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pokaż swoje wyliczenia tej różnicy prędkości Osobiście nie sprawdzałem, ale kolega twierdzi, że 14 razy wolniejsze. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:00 |