- WEiTI M3 - 2007 http://www.m3.pun.pl/index.php - PRM http://www.m3.pun.pl/viewforum.php?id=15 - Programy na laborke 3 http://www.m3.pun.pl/viewtopic.php?id=9 |
omel - 2007-03-22 19:54:38 |
Jako, ze niektorzy (albo i niektorE ;-)) nie bawili sie w programowanie, to jako wskazowke/sciage umieszczam to co napisalem (nie rozumiem cwiczenia 4, wiec sobie odpuscilem) - jak dokoncze reszte to moge zamiescic jakby ktos byl zainteresowany. Powinno byc poprawnie, bo sprawdzalem dla paru przykladowych danych. Kawalek system("PAUSE"); jest po to, zeby nie zamykalo sie okienko w windowsie (to z konsola). Aha - ja to pisalem w programie Dev C++ http://sourceforge.net/project/download … ror=puzzle - plik zajmuje cos okolo 9 mega. Milego pisania!! Kod:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int liczba = 0, suma = 0, i = -1; do { printf("Podaj liczbe (lub 0, aby zakonczyc): "); scanf("%d", &liczba); suma += liczba; i ++; } while(liczba); if(i) printf("Srednia wynosi %g\n", (float)suma/i); system("PAUSE"); return 0; } 2. program - echo standardowego wejścia na standardowe wyjście Kod:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; for(i = 1; i < argc; i ++) printf("%s ", argv[i]); printf("\n"); system("PAUSE"); return 0; } 3. obliczanie pierwiatsków rzcywistych równania kwadratowego Kod:#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { int a, b, c; signed int delta; printf("Podaj wspolczynnik a: "); scanf("%d", &a); printf("Podaj wspolczynnik b: "); scanf("%d", &b); printf("Podaj wspolczynnik c: "); scanf("%d", &c); printf("%dx^2+%dx+%d\n", a, b, c); delta = b*b - 4*a*c; if(delta < 0) printf("Rownanie nie ma pierwiastkow rzeczywistych\n"); else if(delta == 0) printf("Rownanie ma jeden pierwiastek rzeczywisty: x = %g\n", (float)-b/2*a); else { float x1 = (-b-sqrt(delta)) / 2*a; float x2 = (-b+sqrt(delta)) / 2*a; printf("Rownanie ma dwa pierwiastki rzeczywiste:\n"); printf("x1 = %g\n", x1); printf("x2 = %g\n", x2); } system("PAUSE"); return 0; } 5. program hello world witający się z użytkownikiem; nazwa użytkownika jako 6. argument funkcji main lub podawana ze std. wejścia Kod:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char nazwa[21]; if(argc < 7) { printf("Podaj nazwe uzytkownika[do 20 znakow]: "); scanf("%20s", nazwa); printf("Witaj %s!\n", nazwa); } else { printf("Witaj %s!\n", argv[6]); } system("PAUSE"); return 0; } |
martus - 2007-03-22 22:51:14 |
A ja się pochwalę!! zdołałam napisać swój własny program:D ten z liczeniem pierwiastków- działa nawet:D teraz trzeba się brać za następne. Niestety nie zmienia to faktu, że wydymy pozostają nadal czarną magią:/ |
omel - 2007-03-23 15:51:12 |
No to gratulacje!! Wez go wrzuc na forum - moze masz jakies fajne rozwiazania? |
martus - 2007-03-23 18:39:25 |
Jutro wrzucę, to, co mam. Za zdjęcie dzięki (sama je sobie zrobiłam:]) a skoro juz doceniamy Twoja dyplomację to pozostało już tylko rzucić hasło: "Omel na prezydenta!" :PP |
omel - 2007-03-25 23:11:56 |
Na prezydenta? Po kaczynskim to kazdy wybadlby blado. A poza tym to szczeble kariery trzeba przechodzic po kolei - ja przeciez nie jestem starosta nawet... :D |
martus - 2007-03-25 23:51:06 |
bardzo PROSTY PROśCIUTEńKI programik nr 8 chba |
martus - 2007-03-25 23:53:51 |
a to nr 9 |
wmichal - 2007-03-26 01:20:06 |
A ja mam pewne rozwinięcie pierwszego. Przydałoby się jeszcze tylko dodać warunek sprawdzający czy liczba nie wychodzi poza zakres (to już chyba jutro po pomiarach sobie spokojnie zrobię). |
lukasz - 2007-03-26 02:51:20 |
Trochę szybsza wersja 7. Dla liczb ~= 2000000000. Szybsza ale za to jaka paskudna. |
zordon - 2007-03-26 23:00:45 |
Marta ale ten program sprawdzajacy czy liczby sa wzglednie pierwsze jest troche nie taki! Bo np dla liczb a i b rownych a=6 i b=4 program wskaze ze liczby sa wzglednie pierwsze bo 6/4=1 r 2 i 4/6 =0 r 4 (reszty rozne od zera) czyli wedlug kodu zrodlowego sa one wzglednie pierwsze a nie sa bo dziela sie obie przez 2 |
martus - 2007-03-26 23:07:33 |
wiem wiem;/ //////////// zaraz sprobuje cos z tym zrobic:/ |
_Aragorn_ - 2007-03-26 23:08:19 |
#include <stdio.h> |
zordon - 2007-03-27 00:09:02 |
No to jest chyba juz dobry programik na te liczby wzglednie pierwsze! |
szaku - 2007-03-27 00:15:24 |
Poprawiony program numer 9. Dodały my warunek coby wyrzucało jak proste są równoległe... |
szaku - 2007-03-27 01:25:33 |
a tutej macie taki jajcarski program....podopowiem że działa...konia z rzędem temu kto zczai jak :P |
zordon - 2007-03-27 01:28:02 |
Sorry poprawka to jest dobry programik dla liczb wzglednych: |
szaku - 2007-03-27 01:32:20 |
wersja beta...(na licencji gpl 2.0) |
omel - 2007-03-27 15:52:37 |
To jest program z dzisiejszych laborek. Dostalem za niego 4 punkty (ach!!! :-P), wiec powinien byc dobrze. Kod:#include <stdio.h> int main() { int a = 0; int max = 0, min = 0; int i_max = 0, i_min = 0; int i = 1; printf("Wprowadz liczbe(k aby zakonczyc): "); if(!scanf("%d", &a)) return 0; max = min = a; i_max = i_min = 1; while(1) { printf("Wprowadz liczbe(k aby zakonczyc): "); if(!scanf("%d", &a)) break; i ++; if(a > max) { max = a; i_max = i; } if(a < min) { min = a; i_min = i; } } printf("Maksymalna wartosc = %d numer: %d\n", max, i_max); printf("Minimalna wartosc = %d numer: %d\n", min, i_min); return 0; } |
mr.salpo - 2007-03-27 20:36:45 |
Ale to kończy program po wpisaniu czegokolwiek co nie jest liczbą, a nie konkretnie "k" (lub "K")... Więc w gruncie rzeczy nie zrobiłeś do końca tego co miałeś zrobić... Po prostu miałeś fuksa... :p |
martus - 2007-03-27 21:18:05 |
Fuks to też coś;> |
omel - 2007-03-27 23:38:11 |
Ekhem ;-) Kod:#include <stdio.h> int main() { int a = 0; int max = 0, min = 0; int i_max = 0, i_min = 0; int i = 1; printf("Wprowadz liczbe(k aby zakonczyc): "); if(!scanf("%d", &a)) { /* [ZMIENIONE] */ if(getchar() != 'k') printf("BLAD!!!\nMozesz wprowadzac tylko liczby calkowite lub litere 'k'!\n"); /* [/ZMIENIONE] */ return 0; } max = min = a; i_max = i_min = 1; while(1) { printf("Wprowadz liczbe(k aby zakonczyc): "); if(!scanf("%d", &a)) { /* [ZMIENIONE] */ if(getchar() != 'k') { printf("BLAD!!!\nMozesz wprowadzac tylko liczby calkowite lub litere 'k'!\n"); return 0; } else break; /* [/ZMIENIONE] */ } i ++; if(a > max) { max = a; i_max = i; } if(a < min) { min = a; i_min = i; } } printf("Maksymalna wartosc = %d numer: %d\n", max, i_max); printf("Minimalna wartosc = %d numer: %d\n", min, i_min); return 0; } |