![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ść |
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: Śro 20:23, 06 Gru 2006 Temat postu: Informatyka - zadania z informatyki z listy nr 5 |
|
|
no to sie jutro ponudzilmy na informatyce, bo dalej ta sama lista bu
Oto rozwiazania:
1:
Kod: |
FILE *fp;
float p,k,delta;
float i;
printf("Podaj poczatek przedzialu: \n");
scanf("%f",&p);
printf("Podaj koniec przedzialu: \n");
scanf("%f",&k);
printf("Podaj krok: \n");
scanf("%f",&delta);
if((fp=fopen("mojwynik.txt","w"))==NULL){
perror("Nie mozna otworzyc pliku\n");
exit(1);
}
for(i=p;i<k;i+=delta){
fprintf(fp,"[ %f ]",i);
fprintf(fp,"[ %f ]",i*i);
fprintf(fp,"[ %f ]\n",i*i*i);
}
fclose(fp);
system("PAUSE");
return 0;
|
2: (dodac dodatkowo biblioteke time.h>
Kod: |
FILE *fp;
float n;
float i,z;
int a;
if((fp=fopen("mojedane.txt","w"))==NULL){
perror("Nie mozna otworzyc pliku\n");
exit(1);
}
printf("Podaj liczbe A: \n");
scanf("%d",&a);
printf("Ile liczb wygenerowac: \n");
scanf("%f",&n);
if(a<1){
printf("Liczba mniejsza od 1");
exit(1);
}
srand(time(0));
for(i=0;i<n;i++){
z = rand()%(2*a)-a+1;
fprintf(fp,"%f\n",z);
}
fclose(fp);
system("PAUSE");
return 0;
|
3:
Kod: |
FILE *dane;
FILE *dane1;
FILE *dane2;
float tab[100]={0,};
int i=0;
if((dane=fopen("mojedane.txt","r"))==NULL){
perror("Nie mozna otworzyc pliku");
exit(1);
}
if((dane1=fopen("dane1.txt","w"))==NULL){
perror("Nie mozna otworzyc pliku");
exit(1);
}
if((dane2=fopen("dane2.txt","w"))==NULL){
perror("Nie mozna otworzyc pliku");
exit(1);
}
while(fscanf(dane,"%f",&tab[i]) != EOF){
if(tab[i]>0){
fprintf(dane1,"%f\n",tab[i]);
}
if(tab[i]<0){
fprintf(dane2,"%f\n",tab[i]);
}
i++;
}
fclose(dane);
fclose(dane1);
fclose(dane2);
system("PAUSE");
return 0;
|
4:
Kod: |
FILE *dane;
FILE *rap; float tab[100]={0,};
float suma=0,srednia,odchylenie,x; int p1=0,p2=0,p3=0,i=0,z,c;
if((dane=fopen("mojedane.txt","r"))==NULL){perror("Nie mozna otworzyc pliku");exit(1);}
while(fscanf(dane,"%f",&tab[i]) != EOF){
suma+=tab[i];
i++;
}srednia=suma/i;
for(z=0;z<i;z++) x+=pow(srednia-tab[z],2); odchylenie=sqrt(x/(i-1));
for(c=0;c<i;c++){
if(tab[c]>=(srednia-odchylenie) && tab[c]<=(srednia+odchylenie)) p1++;
if(tab[c]>=(srednia-odchylenie*2) && tab[c]<=(srednia+odchylenie*2)) p2++;
if(tab[c]>=(srednia-odchylenie*3) && tab[c]<=(srednia+odchylenie*3)) p3++;
}
printf("Ilosc liczb w przedziale 1: %d\n",p1);
printf("Ilosc liczb w przedziale 2: %d\n",p2);
printf("Ilosc liczb w przedziale 3: %d\n",p3);
if((rap=fopen("mojraport.txt","a+"))==NULL){perror("Nie mozna otworzyc pliku");exit(1);}
fprintf(rap,"Ilosc liczb w przedziale 1: %d\n",p1);
fprintf(rap,"Ilosc liczb w przedziale 2: %d\n",p2);
fprintf(rap,"Ilosc liczb w przedziale 3: %d\n",p3);
fclose(rap);
fclose(dane);
system("PAUSE");
return 0;
|
5:
Kod: |
FILE *dane; FILE *ndane;
FILE *rap; float tab[100]={0,};
float suma=0,srednia,odchylenie,x; int p1=0,p2=0,p3=0,i=0,z,c;
if((dane=fopen("mojedane.txt","r"))==NULL){perror("Nie mozna otworzyc pliku");exit(1);}
if((ndane=fopen("ndane.txt","w"))==NULL){perror("Nie mozna otworzyc pliku");exit(1);}
while(fscanf(dane,"%f",&tab[i]) != EOF){
suma+=tab[i];
i++;
}srednia=suma/i;
for(z=0;z<i;z++) x+=pow(srednia-tab[z],2); odchylenie=sqrt(x/(i-1));
for(c=0;c<i;c++){
if(tab[c]>=(srednia-odchylenie) && tab[c]<=(srednia+odchylenie)){
p1++;
fprintf(ndane,"%f\n",tab[c]);
}
if(tab[c]>=(srednia-odchylenie*2) && tab[c]<=(srednia+odchylenie*2)) p2++;
if(tab[c]>=(srednia-odchylenie*3) && tab[c]<=(srednia+odchylenie*3)) p3++;
}
printf("Ilosc liczb w przedziale 1: %d\n",p1);
printf("Ilosc liczb w przedziale 2: %d\n",p2);
printf("Ilosc liczb w przedziale 3: %d\n",p3);
if((rap=fopen("mojraport.txt","a+"))==NULL){perror("Nie mozna otworzyc pliku");exit(1);}
fprintf(rap,"Ilosc liczb w przedziale 1: %d\n",p1);
fprintf(rap,"Ilosc liczb w przedziale 2: %d\n",p2);
fprintf(rap,"Ilosc liczb w przedziale 3: %d\n",p3);
fclose(rap);
fclose(dane);
fclose(ndane);
system("PAUSE");
return 0;
|
6:
Kod: |
FILE *dane;
float tab[100]={0,};
float przedzial[10]={0};
float suma=0,ilosc=0,srednia,odchylenie,x,min,max; int p1=0,p2=0,p3=0,i=0,z,c,h;
printf("Podaj liczbe przedzialow histogramu: \n");
scanf("%d",&h);
if(h>10){
printf("za duzo przedzialow!\n");
system("PAUSE");
return 0;
}
if((dane=fopen("mojedane.txt","r"))==NULL){perror("Nie mozna otworzyc pliku");exit(1);}
while(fscanf(dane,"%f",&tab[i]) != EOF){
if(tab[i]<min)min=tab[i];
if(tab[i]>max)max=tab[i];
i++;
}
printf("Max: %f\n",max);
printf("Min: %f\n",min);
suma=max-min;
printf("Suma: %f\n",suma);
ilosc=suma/h;
printf("Wartosc skoku miedzy przedzialami: %f\n\n",ilosc);
for(z=0;z<i;z++){
if(tab[z]<=(min+ilosc)) przedzial[0]++;
if(tab[z]>(min+ilosc) && tab[z]<=(min+2*ilosc)) przedzial[1]++;
if(tab[z]>(min+2*ilosc) && tab[z]<=(min+3*ilosc)) przedzial[2]++;
if(tab[z]>(min+3*ilosc) && tab[z]<=(min+4*ilosc)) przedzial[3]++;
if(tab[z]>(min+4*ilosc) && tab[z]<=(min+5*ilosc)) przedzial[4]++;
if(tab[z]>(min+5*ilosc) && tab[z]<=(min+6*ilosc)) przedzial[5]++;
if(tab[z]>(min+6*ilosc) && tab[z]<=(min+7*ilosc)) przedzial[6]++;
if(tab[z]>(min+7*ilosc) && tab[z]<=(min+8*ilosc)) przedzial[7]++;
if(tab[z]>(min+8*ilosc) && tab[z]<=(min+9*ilosc)) przedzial[8]++;
if(tab[z]>(min+9*ilosc) && tab[z]<=(min+10*ilosc)) przedzial[9]++;
}
for(c=0;c<h;c++){
printf("Przedzial %d = %f\n",c+1,przedzial[c]);
}
fclose(dane);
system("PAUSE");
return 0;
|
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: Śro 20:33, 06 Gru 2006 Temat postu: |
|
|
na temat 6 to zrobiłem w ten sposób: Kod: | for (int k=0;k<2;k++)
{fseek (we,0,SEEK_SET); //komenda przesuwa na początek pliku nasz "kursor",aby czytać od początku
while (!feof(we)) //zliczenie zadania
{fscanf(we,"%f", &read);
if (k==0)
{ if (read>max) max=read;
if (read<min) min=read;
if (N>1) skok=float(max-min)/float(N-1);
else skok=2*(max-min);}
if (k==1)
for (int i=0;i<N;i++)
if ((read>=min+i*skok-skok*0.5)&&(read<min+i*skok+skok*0.5))
{tablica[i]++;
if ((i==0)||(tablica[i]>il_max)) il_max=tablica[i];}
}
} | // tzn. przy id (N>1) zrobiłem w ostatecznej wersji inaczej. Bo problem pojawia się, gdy N>1 i mam jedną liczbę. Niestety źródla są na uczelni, więc może jutro dam cynka tutaj jak to zrobiłem:) Wcześniej jest też kod, ale nie wiem, czy cały wklejać chodzi mi o pomysł na przedziały
BTW. zamiast suma powinna być różnica: roznica=max-min:), ale to nie gra roli, bo to od programisty zalezy jak nazwie zmienną
Post został pochwalony 0 razy
Ostatnio zmieniony przez Michele dnia Czw 20:32, 07 Gru 2006, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Kropka:P
Dołączył: 13 Lis 2005
Posty: 81
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Tarnowskie Góry BioAut
|
Wysłany: Śro 22:01, 06 Gru 2006 Temat postu: |
|
|
takie małe pytanko a do tego trzeba używać tablic??
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: Czw 0:16, 07 Gru 2006 Temat postu: |
|
|
nie musisz, ale jest wygodniej. Wogóle nie trzeba używać, ale to tylko kamikadze nie zrobi tablicy.
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
|