![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ść |
helix
Dołączył: 30 Gru 2005
Posty: 19
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Ruda Śląska BioCh/2
|
Wysłany: Nie 20:10, 29 Paź 2006 Temat postu: Informatyka - rozwiązania zadań z zestawu 4 |
|
|
Moglby ktos mily wrzucic tu rozwiazania do zadan z listy z instrukcjami iteracyjnymi ( zwlaszcza chodzi mi o 6, 7 i 9. Pleaseeee
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Pon 8:35, 30 Paź 2006 Temat postu: |
|
|
Jak będę miał czas to coś naskrobię , ale nie wiem, czy Kreskówka się na mnie nie obrazi, bo wkońcu jestem zawężony... no i ...
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Pon 15:05, 30 Paź 2006 Temat postu: |
|
|
zadanko 6 Kod: | #include <stdio.h>
#include <stdlib.h>
#include <math.h>
float a,b,d, mx, mn;
float temp;
int main()
{ do{
printf("Podaj a oraz b, ktore spelniaja warunek: a<b: ");
scanf("%f %f", &a, &b);}
while (a>=b);
do{
printf("Podaj skok d>0: ");
scanf("%f",&d);}
while (d<=0);
for (temp=a; temp<b+d;temp+=d)
{ if (temp==a)
{ if (temp<0) mx=pow(temp,3)+1.0/temp;
if (temp==0) mx=3*sqrt(2);
if (temp>0) mx=pow(sin(sqrt(2)),1.0/3.0);
mn=mx;}
else
{ if ((temp<0)&&(pow(temp,3)+1.0/temp>mx)) mx=pow(temp,3)+1.0/temp;
if ((temp==0)&&(3*sqrt(2)>mx)) mx=3*sqrt(2);
if ((temp>0)&&(exp(1.0/3.0*sin(sqrt(2)))>mx)) mx=exp(1.0/3.0*sin(sqrt(2)));
if ((temp<0) && (pow(temp,3)+1.0/temp<mn)) mn=pow(temp,3)+1.0/temp;
if ((temp==0)&&(3*sqrt(2)<mn)) mn=3*sqrt(2);
if ((temp>0)&&(exp(1.0/3.0*sin(sqrt(2)))<mn)) mn=exp(1.0/3.0*sin(sqrt(2)));}
printf("\n %f, %f, %f",temp, mx, mn);
}
printf("\n Maksymalna wartosc wynosi: %f \n Minimalna wartosc wynosi %f\n",mx,mn);
system("PAUSE");
return 0;
} |
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Pon 15:24, 30 Paź 2006 Temat postu: |
|
|
zadanie 7. Coś ta rekurencja nie taka:/ Kod: | #include <math.h>
float es, y,y_1,l;
int main()
{ do
{printf("Podaj L>=0: ");
scanf("%f", &l);}
while (l<0);
do
{printf("Podaj e>0: ");
scanf("%f", &es);}
while (es<=0);
y=l/2.0;
y_1=0.5*(y+l/y);
while ((y_1-y<es) && (y_1-y>-es))
{y=y_1;
y_1=0.5*(y+l/y);
}
printf("\n Obliczona wartosc wynosi %f\n",y);
system("PAUSE");
return 0;
} |
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ść |
adalgrim
Starosta grupy AU (2rok)
Dołączył: 05 Lis 2005
Posty: 380
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: RAu
|
Wysłany: Pon 19:30, 30 Paź 2006 Temat postu: |
|
|
Ja robiłem dzisiaj...
Zadanie 6:
Kod: | #include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,delta,y,i,z=0,suma=0,max=0,srednia;
printf("Wprowadz wartosc poczatku przedzialu:\n");
scanf("%f",&a);
printf("Wprowadz wartosc konca przedzialu:\n");
scanf("%f",&b);
printf("Zmiana poprzez krok:\n");
scanf("%f",&delta);
for(i=a;i<=b;i+=delta){
++z;
if(i<0){
y=i*i*i+1.0/i;
}
else if(i==0){
y=3*sqrt(2);
}
else if(i>0){
y=pow((sin(sqrt(i))),1.0/3.0);
}
suma+=y; // suma = suma + y;
if(z==1) max=y;
if(y>max) max=y;
printf("[ %f ]\n", y);
}
srednia = suma/z;
printf("\nWartosc maksymalna wynosi: [ %f ]\n",max);
printf("Wartosc srednia wynosi: [ %f ]\n",srednia);
system("PAUSE");
return 0;
} |
Zadanie 7:
Kod: | #include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float L=0,eps=0,y2=0,y1=0,y0=0,i=1,y,a;
printf("Wprowadz wartosc liczby ktorej pierwiastek chcesz obliczyc:\n");
scanf("%f",&L);
printf("Wprowadz wartosc dokladnosci:\n");
scanf("%f",&eps);
y0=L/2;
y1=y0;
do{
if(i>1){
y0=y;
}
y=1.0/2*(y0+(L/y0));
i++;
printf("[ poprzednio: %f teraz: %f ]\n",y0, y);
}while(fabs((y-y0))>eps);
printf("Pierwiastek wynosi: %f z dokladnoscia: %f\n", y, eps);
system("PAUSE");
return 0;
} |
Zadanie 8:
Kod: |
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float i=-5,x,N,y,suma;
printf("Wprowadz wartosc x:\n");
scanf("%f",&x);
printf("Wprowadz N do jakiej obliczyc sume:\n");
scanf("%f",&N);
for(i;i<=N;i++){
y=pow(x,i)*sin(i*x);
suma+=y;
printf("[ %f ]\n",y);
}
printf("\nWartosc y = %f\n",suma);
system("PAUSE");
return 0;
}
|
Komentarzy nie ma, bo mi sie nie chce ich pisać Oczywiście printów wewnątrz pętli zazwyczaj nie trzeba. Ja sobie je pisałem tylko w celach poglądowych na wyniki (widziałem czy robi pętla określone zadanie, jak robi i ewentualne błędy poprawiałem). Oczywiście piszę to idąc zupełnie na łatwizne Czyli nie piszę pierwiastka 3 stopnia poprzez logarytm tylko pow(x,1.0/3). Szybciej, łatwiej i nie musze zapamiętywać wzorów.
Have a nice work
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Pon 19:38, 30 Paź 2006 Temat postu: |
|
|
Zadanko 9 mi działa, ale czy takie mają wyjść wyniki: Kod: | #include <stdio.h>
#include <stdlib.h>
#include <math.h>
float epsilon, q, i;
int p, n;
int silnia(int x) {
if (x == 0) {
return 1;
} else {
return x * silnia(x-1);
}
}
int main()
{ printf("Podaj liczby n, q oraz e: ");
scanf("%d %f %f", &n, &q, &epsilon);
p=0;
do
{ i=float(1.0/silnia(q))*pow(n-q,p-1)*exp(n*q);
p++;}
while (i<epsilon);
printf("\n Obliczona wartosc wynosi %d \n",p);
system("PAUSE");
return 0;
} | Komentarzy też nie zamieszczam, bo chyba każdy sobie z tym poradzi. No może ze silnią nie, ale nie wiem czy jest w C ta funkcja. To jest funkcja rekurencyjna, tzn. Zanim się zakończy wywoła znów siebie, czyli wejdzie do siebie, a będąc w środku wejdzie znów do siebie itd... aż napotka 0 jako x (bo za każdym razem wchodzenia do siebie x-1). Gdy spotka 0 to zwraca 1 nie wchodząc w siebie i tak każde wywołanie funckcji może się zamnąć i w taki prosty sposób mamy funkcje silnia.
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ść |
adalgrim
Starosta grupy AU (2rok)
Dołączył: 05 Lis 2005
Posty: 380
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: RAu
|
Wysłany: Wto 2:12, 31 Paź 2006 Temat postu: |
|
|
Silni w C chyba nie ma, ale w funkcji masz "błąd". Dla x=0 i dla x=1 wartosc silni = 1 Ty obrałeś tylko jedną możliwość..
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Wto 9:30, 31 Paź 2006 Temat postu: |
|
|
A co wychodzi jeśli dasz 1?? Bo mi wychodzi, że jeden. I dla mnie jak najbardziej to działa. Nie wiem. Sprawdzałem i działa...
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ść |
adalgrim
Starosta grupy AU (2rok)
Dołączył: 05 Lis 2005
Posty: 380
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: RAu
|
Wysłany: Wto 11:03, 31 Paź 2006 Temat postu: |
|
|
zobacz na wikibooks, nie bede sie z Tobą kłócił, bo mi się nie chce tego pisać, żeby sprawdzić nie mam czasu..
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Wto 13:09, 31 Paź 2006 Temat postu: |
|
|
[link widoczny dla zalogowanych] Kod: | int silnia (int liczba)
{
int sil=liczba;
if (liczba==0) return 1;
if (liczba==1) return 1;
sil = liczba*silnia(liczba-1);
return sil;
} | No dobra, a teraz inaczej: [link widoczny dla zalogowanych] Kod: | int silnia(int x) {
if (x == 0) {
return 1;
} else {
return x * silnia(x-1);
}
} |
Kod: |
silnia w Pythonie:
def silnia(x):
if x == 0:
return 1
else:
return x * silnia(x-1)
| Mimo, iż Python, to jest tutaj deklaracja silni w C oraz niżej w Pythonie. Tak czy inaczej działa tak samo. Jeśli nie to na wiki jest bład, więc może go poprawisz??
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: Wto 14:07, 31 Paź 2006 Temat postu: |
|
|
A czy w ogóle tak trzeba kombinować?
long p=0, psilnia=1;
A potem w pętli:
{...
p++;
psilnia *= p;
...}
Krótko, czytelnie, oszczędnie pamięciowo a przede wszystkim szybko.
Tu nie potrzeba całej potężnej funkcji - jak sprawdzamy po kolei każde p od 0, to to jest najprostszy sposób. Tym bardziej że pojęcie funkcji na tym etapie umiejętności miesza innym w głowach.
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ść |
Michele
Dołączył: 15 Sty 2006
Posty: 1041
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: BioAut, Gleiwitz-Petersdorf
|
Wysłany: Wto 14:59, 31 Paź 2006 Temat postu: |
|
|
jak, ale nie wiem czy to tak aż oszczędza pamięć - zalezy jaką. Jeśli załużmy, że mamy tych silni pisać sto, to chyba troche chorym pomysłem byłoby ciągle to powtarzać, no nie?
Ale z drugiej strony mam nadzieję, że każdy zrozumiał na jakiej to zasadzie działa ta funkcja oraz jak to wygląda ogólnie.
W programowaniu zetniemy się w większosci z funkcjami. Na dzień dzisiejszy chyba nie da się pisać nie używając funkcji, procedur i innych dziwactw...
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: Wto 17:28, 31 Paź 2006 Temat postu: |
|
|
Postaw się w sytuacji takiego studenta biotechnologii, który o C wie tyle co z laborek i wykładów - on sobie musi radzić :>
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ść |
adalgrim
Starosta grupy AU (2rok)
Dołączył: 05 Lis 2005
Posty: 380
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: RAu
|
Wysłany: Wto 21:14, 31 Paź 2006 Temat postu: |
|
|
Kocie rzadko się z Michałem zgadzam, ale silnia przez pętle? Jezu samobójca.. a teraz weź oblicz np 10000 działań, gdzie zmienia się np x i liczy
y = x! - x^i
gdzie i = 1,2,3... 10000; Nie ucz ludzi wszystkiego wrzucać w pętle, bo jak się niedługo okaże pętle wykonujemy tylko, gdy już na prawdę musimy
Natomiast linki do wikibooks są na stronie kursu dostępne, więc dokopać się do silni można (ja się właśnie dokopywałem ). Na tym etapie wcale nie wymagana jest znajomość o co tam dokładnie chodzi, wystarczy, żeby działało
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ść |
helix
Dołączył: 30 Gru 2005
Posty: 19
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Ruda Śląska BioCh/2
|
Wysłany: Wto 21:37, 31 Paź 2006 Temat postu: |
|
|
w sprawie silni bylam na konsultacjach u dr Czeczota i on mi tez poradzil zapisac silnie w petli :]
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
|