![Forum ::BIOTECHNOLOGIA:: Strona Główna](http://picsrv.fora.pl/subSilver/images/logo_phpBB.gif) |
::BIOTECHNOLOGIA:: Forum studentów kierunku biotechnologia Politechniki Śląskiej
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kot-niepłot
Dołączył: 29 Lis 2005
Posty: 324
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Gliwice BioAut
|
Wysłany: Śro 14:36, 13 Gru 2006 Temat postu: Informatyka - zadania z listy nr 7 |
|
|
Macie:
1:
Kod: |
#include <stdio.h>
#include <stdlib.h>
/* | a b |
| c d |
*/
double def(a, b, c, d)
double a, b, c, d;
{
return (a*d-c*b);
}
/* C++ się różni sposobem deklarowania argumentów:
double def(double a, double b, double, c, double d)
{ ... }
*/
int main()
{
/*
_/ A1x + B1y = C1
\ A2x + B2y = C2
*/
double A1, B1, C1, A2, B2, C2;
double W, Wx, Wy;
printf("\tA1x + B1y = C1\n\tA2x + B2y = C2\n");
printf("Podaj kolejne wspolczynniki: A1, B1, C1, A2, B2, C2: \n");
scanf("%lf %lf %lf %lf %lf %lf", &A1, &B1, &C1, &A2, &B2, &C2);
W = def(A1, B1, A2, B2);
Wx = def(C1, B1, C2, B2);
Wy = def(A1, C1, A2, C2);
if(W==0)
{ if(Wx==0 && Wy==0)
printf("Uklad rownan nieoznaczony\n");
else printf("Uklad rownan sprzeczny\n");
}
else printf(" x = %g\n y = %g\n", Wx/W, Wy/W);
printf("\n");
system("PAUSE");
return (0);
}
|
2:
Kod: | #include <stdio.h>
#include <stdlib.h>
#include <math.h>
double f(x,y) int x, y;
{
if(x<y) return 2.0*x+2.0*y;
if(x==y) return 3.0;
if(x>y) return ((double)x*x - sin(y));
return 0.666; /* czyli jakiś błąd */
}
int main()
{
double y=0;
int dx, dy, Np, Nk, x0, y0, i;
printf("Np: "); scanf("%ud", &Np);
printf("Nk: "); scanf("%ud", &Nk);
printf("x0: "); scanf("%ud", &x0);
printf("y0: "); scanf("%ud", &y0);
printf("dx: "); scanf("%ud", &dx);
printf("dy: "); scanf("%ud", &dy);
for(i=Np; i<=Nk; i++)
y += f(x0+i*dx, y0-i*dy);
printf("y = %g\n", y);
printf("\n");
system("PAUSE");
return 0;
} |
3:
Kod: | #include <stdio.h>
#include <stdlib.h>
void wypisz(xp, xk, dx)
double xp, xk, dx;
{
while(xp <= xk+0.1*dx)
{
printf("%g\t", xp);
xp += dx;
}
return;
}
int main()
{
double xp, xk, dx;
printf("xp: "); scanf("%lf", &xp);
printf("xk: "); scanf("%lf", &xk);
printf("dx: "); scanf("%lf", &dx);
wypisz(xp, xk, dx);
/* Uwaga: te zmienne nazywają się przypadkowo tak samo jak w funkcji
* (bo tak mi wygodniej) - oczywiście nie muszą się tak samo nazywać, to są
* różne zmienne */
printf("\n");
system("PAUSE");
return 0;
} |
4:
Kod: | /* Dwa sposoby oddawania wielu parametrów
Trzeci (not included) to przez strukturę - to już dla smakoszy ;) */
#include <stdio.h>
#include <stdlib.h>
double p, q;
int pik_global(a,b,c)
double a,b,c;
{
if(a==0)
return 1;
p = -b/(2*a);
q = (b*b-4*a*c)/(4*a);
return 0;
}
int pik_pointer(a,b,c,p,q)
double a, b, c; /* zmienna globalna się zasłania */
double *p, *q; /* i z niej nie korzystamy */
{
if(a==0)
return 1; /* Nie parabola */
else
{ *p = -b/(2*a);
*q = (b*b-4*a*c)/(4*a);
}
return 0; /* Dobrze obliczone */
}
int main()
{
double a, b, c, pp, qp;
printf("a: "); scanf("%lf", &a);
printf("b: "); scanf("%lf", &b);
printf("c: "); scanf("%lf", &c);
if(pik_global(a,b,c)==1)
printf("To nie jest parabola\n");
else /* Mamy obliczone globalne p i g */
printf("Wierzcholek w (%g, %g)\n", p, q);
if(pik_pointer(a, b, c, &pp, &qp)==1)
printf("To nie jest parabola\n");
else /* Mamy p i q obliczone w pp i qp */
printf("Wierzcholek w (%g, %g)\n", pp, qp);
printf("\n");
system("PAUSE");
return 0;
} |
Resztę dopiszę trochę później.
To jest napisane w C i żeby się poprawnie skompilowało należy zapisać plik z rozszerzeniem .c
W zadaniu 1 opisałem w zasadzie jedyną istotną różnicę.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
aga86
Dołączył: 25 Lis 2005
Posty: 17
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Gliwice BioIS/1
|
Wysłany: Śro 20:42, 13 Gru 2006 Temat postu: |
|
|
czy w zad 2 zadeklarwane zmienne x0 y0 dx dy nie powinny byc jako float? przynajmniej tak przeczytalam w zadaniu... czy jednak to nie ma znaczenia
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kot-niepłot
Dołączył: 29 Lis 2005
Posty: 324
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Gliwice BioAut
|
Wysłany: Śro 21:57, 13 Gru 2006 Temat postu: |
|
|
faktycznie, nie dostrzegłem
W takim razie funkcja f() teżmusi przyjmować floata (albo double w moim przypadku)
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kot-niepłot
Dołączył: 29 Lis 2005
Posty: 324
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Gliwice BioAut
|
Wysłany: Śro 23:04, 13 Gru 2006 Temat postu: |
|
|
Reszta, tym razem po ludzku, jako c++
5:
Kod: | #include <stdio.h>
#include <stdlib.h>
double pot(double x, unsigned int p)
double x;
unsigned int p;
{
unsigned int i;
double new_x=1;
for(i=0; i<p; i++)
new_x *= x;
return new_x;
/* przypadku 0^0 nie rozpatrujemy */
}
int main()
{
double x;
unsigned int p;
puts("Jak chcesz zakonczyc, wpisz za p 0\n");
while(p!=0)
{ printf("rzeczywiste x:\t"); scanf("%lf", &x);
printf("naturalne p:\t"); scanf("%ud", &p);
printf("x^p = %g\n\n", pot(x, p));
}
return 0;
} |
6:
Kod: | /* silnia - sztandarowy przykład rekurencji */
/* Działa poprawnie dla max 20! */
#include <iostream>
#include <stdlib.h>
unsigned long long silnia(unsigned long long x)
{
return x<2 ? 1 : x*silnia(x-1);
}
int main()
{
unsigned long long n;
int zero_raz=0;
cout << "Jak chcesz zakonczyc, wpisz dwa razy pod rzad 0 :P\n" << endl;
do
{
cin >> n;
if(n==0) zero_raz++;
else zero_raz=0;
cout << n << "! = " << silnia(n) << endl;
}
while(zero_raz!=2);
return 0;
} |
7:
Kod: | #include <stdlib.h>
#include <math.h>
double pot(double x, unsigned int p)
{
unsigned int i;
double new_x=1;
for(i=0; i<p; i++)
new_x *= x;
return new_x;
}
double silnia(double x)
{
return x<1.5 ? 1 : x*silnia(x-1);
}
double glupia_suma(unsigned int Nmax, double x)
{
double suma=0;
for(unsigned int i=0; i<=Nmax; i++)
suma += pot(x, i)/silnia(i);
return suma;
}
int main()
{
unsigned int Nmax;
double x;
cout << "x rozne od 0: ";
cin >> x;
cout << "Nmax: ";
cin >> Nmax;
cout << "e^x = " << exp(x) << endl;
cout << "suma = " << glupia_suma(Nmax, x) << endl;
cout << endl;
system("pause");
return 0;
} |
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
|
|
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|