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!!
1. obliczanie średniej z danych na standardowym wejściu
#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
#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
#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
#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; }
Offline
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ą:/
Offline
No to gratulacje!! Wez go wrzuc na forum - moze masz jakies fajne rozwiazania?
BTW: Teraz Masz duzo fajniejsza fotke, tzn tamta nie byla niefajna, tylko ta jest jeszcze fajniejsza :-) <<----- o!! i to sie nazywa sztuka dyplomacji :-P
Offline
Na prezydenta? Po kaczynskim to kazdy wybadlby blado. A poza tym to szczeble kariery trzeba przechodzic po kolei - ja przeciez nie jestem starosta nawet...
Aha - wrzuc to co ci sie udalo napisac w C.
Offline
bardzo PROSTY PROśCIUTEńKI programik nr 8 chba
#include<stdio.h>
int main(void)
{
int a, b;
printf("Podaj liczbe a = \n");
scanf("%d", &a);
printf("Podaj liczbe b = \n");
scanf("%d", &b);
if ((a %b !=0) && (b %a !=0))
printf("Liczby a i b sa wzglednie pierwsze \n");
else
printf("Liczby a i b nie sa wzglednie pierwsze \n");
return 0;
}
Offline
a to nr 9
#include<stdio.h>
int main(void)
{
float a, b, c, d, M, N;
printf("Podaj wspolczynnik kierunkowy pierwszej prostej a i jej wyraz wolny b \n");
scanf("%f %f", &a, &b);
printf("Podaj wspolczynnik kierunkowy drugiej prostej c i jej wyraz wolny d \n");
scanf("%f %f", &c, &d);
M=(b-d)/(c-a);
N=(a*M)+b;
printf("Punkt przeciecia podanych prostych to (%.2f, %.2f) \n", M, N);
return 0;
}
a to 7
#include <stdio.h>
int main(void)
{
int a ,b ,c;
printf("Podaj liczbe a = \n");
scanf("%d", &a);
for (b=1, c=0; a>=b; b++)
{
if (a %b ==0)
c++;
}
if (c==2)
printf("Podana liczba jest liczba pierwsza \n");
else
printf("Podana liczba nie jest liczba pierwsza\n");
return 0;
}
Offline
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ę).
/*liczy średnią wprowadzonych liczb*/
#include <stdio.h>
int main(void)
{
float liczba, suma, srednia;
int licznik;
char odp;
printf("\nProgram oblicza srednia wprowadzonych liczb\n");
printf("Po kazdej podanej liczbie wcisnij ENTER; 0 konczy wprowadzanie.\n");
printf("Dane, ktore nie rozpoczynaja sie od liczby beda ingnorowane.\n");
do {
fflush(stdin);
liczba = 1;
suma = 0;
licznik = 0;
printf("Podaj liczby:\n\n");
while(liczba!=0)
{
if(scanf("%f",&liczba))
{
suma += liczba;
licznik++;
}
fflush(stdin);
}
if(!(licznik-1))
printf("Nie wprowadziles zadnych liczb.");
else
{
srednia = suma/(licznik-1);
printf("Srednia wprowadzonych liczb wynosi: %.2f\n",srednia);
}
printf("Nacisnij t jesli chcesz zaczac od poczatku "); scanf("%c",&odp);
}
while(odp=='t');
}
Offline
Trochę szybsza wersja 7. Dla liczb ~= 2000000000. Szybsza ale za to jaka paskudna.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int isPrime(int number, int certainty) {
int temp;
int i;
srand((unsigned)time(0));
for(i = 0;i < certainty;++i) {
while((temp = rand()) > 2);
if(modPow(temp, number, number) != temp) {
return 0;
}
}
return 1;
}
int modPow(long number, int exponent, int modulo) {
long result = 1;
while(exponent > 0) {
if(exponent & 1) {
result = (result * number) % modulo;
}
exponent >>= 1;
number = (number * number) % modulo;
}
return (int)result;
}
int main(void) {
int number;
const int certainty = 100;
puts("Podaj liczbe");
scanf("%d", &number);
if(isPrime(number, certainty)) {
printf("Liczba jest pierwsza z prawdopodobienstem 1 / (2 ^ %d)\n", certainty);
} else {
puts("Liczba nie jest pierwsza");
}
getchar();
return 0;
}
Offline
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
Offline
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int x1=0,x2=0,y1=0, y2=0;
float odl=0;
printf("Podaj x1: \n");
scanf("%d", &x1);
printf("Podaj y1: \n");
scanf("%d", &y1);
printf("Podaj x2: \n");
scanf("%d", &x2);
printf("Podaj y2: \n");
scanf("%d", &y2);
odl=sqrt((x1 - x2)*(x1 - x2)+(y1 - y2)*(y1 - y2));
printf("Odleglosc = %f\n", odl);
system("Pause");
}
program nr 12
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int a=0,b=0,c=0;
float delta, minmax=0;
printf("Podaj a: \n");
scanf("%d", &a);
printf("Podaj b: \n");
scanf("%d", &b);
printf("Podaj c: \n");
scanf("%d", &c);
delta = b*b - 4*a*c;
minmax = -delta/4*a;
if (a<0)
printf("Rownaie ma minimum rowne = %g\n", minmax);
else if (a>0)
printf("Rownanie ma maximum rowne = %g\n", minmax);
else
printf("To nie jest rownanie kwadratowe!!!\n");
system("Pause");
}
Offline
No to jest chyba juz dobry programik na te liczby wzglednie pierwsze!
#include <stdio.h>
int main()
{
int lb1=0,lb2=0,wynik=0,reszta=0,NWD=0,temp;;
printf("Program sprawdzi czy liczby sa wzglednie pierwsze");
printf("Podaj dowolne dwie liczby\n");
printf("Podaj pierwsza liczbe\nLiczba: ");
scanf("%d",&lb1);
printf("\n\nPodaj druga liczbe\nLiczba: ");
scanf("%d",&lb2);
do
{
temp=lb2;
lb2=lb1%lb2;
lb1=temp;
if (lb2==0)
{
printf("Liczby nie sa wzglednie pierwsze\n");
break;
}
else if (lb2!=0)
{
printf("Liczby sa wzglednie pierwsze");
break;
}
}
while(lb1%lb2!=0);
getch();
return 0;
}
Offline
Poprawiony program numer 9. Dodały my warunek coby wyrzucało jak proste są równoległe...
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
float a, b, c, d, M, N;
printf("Podaj wspolczynnik kierunkowy pierwszej prostej a i jej wyraz wolny b \n");
scanf("%f %f", &a, &b);
printf("Podaj wspolczynnik kierunkowy drugiej prostej c i jej wyraz wolny d \n");
scanf("%f %f", &c, &d);
if (c==a)
if (b==d)
printf("proste nakladaja sie na siebie-maja nieskonczenie wiele rozwiazan\n");
else
printf("proste sa rownolegle i nie maja punktow przeciecia\n");
else
{
M=(b-d)/(c-a);
N=(a*M)+b;
printf("Punkt przeciecia podanych prostych to (%.2f, %.2f) \n", M, N);
}
system ("pause");
return 0;
}
Offline
a tutej macie taki jajcarski program....podopowiem że działa...konia z rzędem temu kto zczai jak
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int n,i;
double w;
printf("podaj liczbe wymiarow\n");
scanf("%d",&n);
int tab[n],tab1[n];
int j =0;
for (i=0;i<n;i++)
{
printf("podaj %d zmienna %d wymiaru\n",j+1,i+1);
scanf("%d",&tab[i]) ;
printf("podaj %d zmienna %d wymiaru\n",j+2,i+1);
scanf("%d",&tab1[i]);
}
w=0;
for (i=0;i<n;i++)
{
printf("i= %d\n",i);
printf("tab[i]=%d\n",tab[i]);
printf("tab1[i]=%d\n",tab1[i]);
}
for (i=0;i<n;i++)
{
w += ((tab1[i]-tab[i])*(tab1[i]-tab[i]));
printf("w=%f\n",w);
}
printf("wyr = %f", sqrt(w));
system("Pause");
}
Offline