Forum ::BIOTECHNOLOGIA:: Strona Główna ::BIOTECHNOLOGIA::
Forum studentów kierunku biotechnologia Politechniki Śląskiej
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Informatyka - rozwiązania zadań z zestawu 4
Idź do strony Poprzedni  1, 2
 
To forum jest zablokowane, nie możesz pisać dodawać ani zmieniać na nim czegokolwiek   Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi    Forum ::BIOTECHNOLOGIA:: Strona Główna -> Archiwum
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

PostWysłany: Wto 22:30, 31 Paź 2006    Temat postu:

A co mógł innego doradzić, jak nic innego nie mieliśmy. Zgadzam się. Na tym etapie tylko pętla się liczy i chyba było coś mówione o etykietach, ale za to już nie ręczę. Więc tak czy siak chyba mamy tylko możliwośc pętli. Przynajmniej niestety Ci, którzy nie umieją i nie zrozumieli kodu silni.

Adam różnica pomiędzy jedną a drugą silnią jest taka, że moja o jeden raz dłużej się wykonuje niż Twoja i to wszystko...


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Prout




Dołączył: 21 Paź 2005
Posty: 239
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Tychy BioCh/1

PostWysłany: Śro 9:56, 01 Lis 2006    Temat postu:

NIech Wam Bog w dzieciach wynagrodzi

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
migothka




Dołączył: 20 Paź 2005
Posty: 845
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: BioCh/1

PostWysłany: Śro 10:15, 01 Lis 2006    Temat postu:

offtopic po to jest specjalny temat do podziekowan dobrym ludziom za rozwiazywanie zadan z informatyki, zeby to pisac tam - a jak jestescie tak bardzo wdzieczni to moze lepiej im piwo postawcie Razz

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
katarzyna




Dołączył: 09 Gru 2005
Posty: 16
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Katowice BioIS/1

PostWysłany: Śro 22:36, 01 Lis 2006    Temat postu:

Mógłby ktoś jeszcze wrzucić zadania od 3-5??Z góry dziękuję Very Happy

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysłany: Czw 0:37, 02 Lis 2006    Temat postu:

Proszę:

Zadanie 3:
Kod:

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main()
{

     float suma=0, s=0, srednia=0, iloczyn=1;
     int i, p=0;
     while (scanf("%d", &i))
     {
            if (i>=0) {
                suma+=i;
                ++s;
                if(i<5 || i>10){
                  iloczyn*=i;
                }
                if((i%2)==0) {
                 ++p;
                }

            } else {
                 break;
            }
     }

     srednia = suma/s;
     printf("Srednia = %f\n", srednia);
     printf("Iloczyn (bez [5, 10]) = %f\n", iloczyn);
     printf("Ilosc parzystych = %d\n", p);
     printf("Przerwa");
      system("PAUSE");
      return 0;
}


Zadanie 4:
Kod:

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
      int np, nk, i, suma=0, suma2=0, a, min=0;

      printf("Np = ");
      scanf("%d", &np);
      printf("Nk = ");
      scanf("%d", &nk);

      if(nk>np) {
           min = (np*np)-(15*np)+50;
           for(i = np; i <= nk; i++) {
              a = (i*i)-(15*i)+50;
              suma += a;
              if(a<min) min = a;
           }
           printf("Min = %d\n", min);
           printf("Suma = %d\n", suma);
      } else {
           printf("Nk<Np\n");
      }
      system("PAUSE");
      return 0;
}


Zadanie 5:
Kod:

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int main()
{
      int i, start=0;
      float a,a0=1.0,a1=1.5,a2=2.0;
      printf("Podaj liczbe N poczatkowych elementow ciagu: ");
      scanf("%d", &i);

      for(start=1; start<=i; start++){
         a=a0*sqrt(a1+a2);
         printf("Wartosc %d'go wyrazu ciagu wynosi: %f\n",start,a);
         a2=a1;
         a1=a0;
         a0=a;
      }

      system("PAUSE");
      return 0;
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysłany: Czw 1:04, 02 Lis 2006    Temat postu:

Adam mnie wyprzedził, ale wtrącę swoje 3 grosze (zadania), gdzieniegdzie mam inne sposoby:

3:
Kod:
#include <stdio.h>
#include <stdlib.h>

int main()
{
   long in=0;
   double suma=0;
   long long iloczyn=1;
   int numparz=0, numdod=0, i=0, numrazy=0;

   while(in>=0)
   {   scanf("%ld", &in);
      i++;
      if(in>0) { suma += in; numdod++; }
      if(in<5 || in>10) { iloczyn *= in; numrazy++; }
      if(!(in&1)) numparz++;
   }
   printf("Wczytano %d liczb", i);
   printf(".\n");
   if(numdod) printf("Srednia liczb dodatnich wynosi %.2g\n", suma/numdod);
/* W przeciwnym razie nie ma średniej, więc nie ma co pisać */
   if(numrazy) printf("Iloczyn liczb spoza przedzialu <5,10>"
      " wynosi %lld\n", iloczyn);
   printf("Ilosc wczytanych liczb parzystych wynosi %d\n\n", numparz);

   system("PAUSE");
   return 0;
}


4:
Kod:
#include <iostream.h>
#include <stdlib.h>

int main()
{
   long Np, Nk, x, suma=0;
   cout << "a(n) = n*n - 15n + 50\n";
   cout << "Podaj poczatkowy i koncowy wyraz do sumy ";
   cin >> Np >> Nk;
   if(Np>Nk) { cout << "Zonk!\n" << endl; }
   else {
   for(x=Np; x<=Nk; x++)
      suma += x*x -15*x + 50;
   cout << "Suma wyrazow Np do Nk wynosi " << suma << endl;

/* Obliczam pochodną ciągu (to infa, nie matematyka, można :P )
 * wartość minimalna jest dla i==7 lub i==8 (konkretnie dla i==7.5)
 * bo a'=2x-15; a'=0 <=> x=7.5
 */
   cout << "Wartosc minimalna od 1 do Nk=" << Nk << " wynosi ";
   if(Nk<7) cout << Nk*Nk - 15*Nk + 50;
   else cout << 7*7 - 15*7 + 50;
   cout << endl;
   cout << "Wartosc minimalna od Np=" << Np << " do Nk="
      << Nk << " wynosi ";
   if(Nk<7) cout << Nk*Nk - 15*Nk + 50;
   else if(Np>8) cout << Np*Np - 15*Np + 50;
   else cout << 7*7 - 15*7 + 50;
   cout << endl;
   
   }   // koniec pierwszego "else"
   system("PAUSE");
   return 0;
}


5:
Kod:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>


int main()
{
   cout << "Podaj N poczatkowych wyrazow do wypisania ";
   short N, x;
   cin >> N;
   double ai, ai1, ai2;

   ai=1.0;
   ai1=1.5;
   ai2=2.0;
   if(N>0) cout << ai2 << endl;
   if(N>1) cout << ai1 << endl;
   if(N>2)      
      for(x=1; x<=N-2; x++)
      {   if(x<21) printf("%.3g\n", ai); // 3 miejsca znaczące
         else printf("Za duzo!\n");
/* Dla x>=21 wynik się nie mieści
 * Brzydkie i nie polecane używanie stdio i iostream naraz,
 * nie róbcie tego w domu :P
 * Ale w coutach nie doszukałem się formatowania */
         ai2 = ai1;
         ai1 = ai;
         ai = ai * sqrt(ai1 + ai2);
   
      }
   cout << endl;
   
   system("PAUSE");
   return 0;
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
justka




Dołączył: 09 Sty 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Gliwice BioCh/2

PostWysłany: Czw 14:45, 02 Lis 2006    Temat postu:

Dzieki za zadania, zawsze mozna porownac wyniki Smile i wlasnie zauwazylam ze wszyscy macie blad w zadaniach z sinusami. W C sin jest podawany w radianach, a wiec kazda wartosc nalezy pomnozyc przez PI i podzielic przez 180, czyli np sin 90 stopni to nie sin(90) tylko sin(90 * 3.14 / 180) Smile zreszta sami mozecie to sprawdzic piszac prosty program typu
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main()
{
     
      printf("%f\n",sin(90*3.14/180));
      system("PAUSE");
      return 0;     
     
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
justka




Dołączył: 09 Sty 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Gliwice BioCh/2

PostWysłany: Czw 16:03, 02 Lis 2006    Temat postu:

Zad 9.
Kod:
//cw 4 zad 9
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int silnia(int x)
{
    int i,sil;
    if((x==0)||(x==1)) return 1;
    sil = 1;
    for(i=1;i<=x;i++)
        sil *= i;
    return sil;
}

int main()
{
    float wyr,q,e;
    int p,n;

    printf("Podaj n: ");
    scanf("%d",&n);

    printf("Podaj q: ");
    scanf("%f",&q);

    printf("Podaj e: ");
    scanf("%f",&e);
    p = 0;

    do
    {
        p++;
        wyr =  (1.0/silnia(p)) * pow((n-q),(p-1)) * exp(n*q);
        printf("wyr = %f\n",wyr);
    }while(wyr>=e);

    printf("Wynik: p = %d\n",p);
      system("PAUSE");
      return 0;
}


Ta wersja michele nie bardzo dziala bo jest zly warunek, wypisz sobie dokladna wartosc tego wyrazenia, w 99% wypadkow wyjdzie z while bo bedzie wieksze od epsilona, i wtedy zawsze p=1, co jest nieprawda. Nawet jesli poczatkowe wartosci bylyby mniejsze od epsilona, to wtedy p jest bledne bo bedzie max lub p+1 :] Po prostu jest tam zly warunek.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysłany: Czw 16:16, 02 Lis 2006    Temat postu:

Taka cicha, a tak mnie zagieła. Odnośnie warunków, to nie wiem. Robiłem to na kolanie. Nawet nie wiem, czy to działa-nie pamiętam czy to uruchomiłem. Wcześniej pisałem, że coś nie tak. Sinusiki, to wiem, że w radianach, ale jakoś zawsze o tym przeliczniku zapominam - wszędzie tak jest.\

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysłany: Czw 17:12, 02 Lis 2006    Temat postu:

Justka -> W zadaniach które robiliśmy nie podawaliśmy nigdy kątów w stopniach, np: pow(sin(sqrt(x)), 1.0/3); ewentualnie było cos(exp(2*x));, wtedy arugment jest zawsze w radianach, więc niekoniecznie wszyscy mieliśmy błąd Wink
Ale trafne spostrzeżenie z tymi radianami Wink

Zadanie 9 obwarowałbym pewnymi warunkami których, myślę, panowie się będą czepiać:
Kod:
#include <iostream.h>
#include <stdlib.h>
#include <math.h>

int main()
{
   long long p=0, psilnia=1, n;
   double q, epsilon;

   cout << "Podaj naturalne n :";
   cin >> n;
   if(n<0) {
      cout << "Mialo byc naturalne\n";
       system("PAUSE");
      return 0;
   }
   cout << "Podaj rzeczywiste q: ";
   cin >> q;
   cout << "Podaj rzeczywiste epsilon: ";
   cin >> epsilon;

   if(n-q == 0)
   {   if(0<epsilon) cout << "p=2\n";
      else cout << "Takie p nie istnieje\n";
   }
   else if(n-q>0)
   {   if(epsilon<0)
         cout << "Takie p nie istnieje\n";
      if(epsilon==0)
         cout << "p = nieskonczonosc\n";
   }
   else {
      while(pow(n-q, p-1)*exp(n*q)/psilnia>=epsilon)
         psilnia *= ++p;
      cout << "p=" << p << "\n";
   }
   cout << endl;
   system("PAUSE");
   return 0;
}

No i ilustracja mojego pomysłu silni.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
justka




Dołączył: 09 Sty 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Gliwice BioCh/2

PostWysłany: Czw 21:51, 02 Lis 2006    Temat postu:

no wiadomo, podobnie jak w 8: N>=-5 i x rozne od 0, ale to juz jest tylko kosmetyka Smile

edit:
Kod:
else if(n-q>0)
   {   if(epsilon<0)
         cout << "Takie p nie istnieje\n";
      if(epsilon==0)
         cout << "p = nieskonczonosc\n";
   }
   else {
      while(pow(n-q, p-1)*exp(n*q)/psilnia>=epsilon)
         psilnia *= ++p;
      cout << "p=" << p << "\n";
   }


tutaj masz blad, zauwaz ze nie wchodzi do petli while jesli n-q>0 i epsilon > 0 , a wtedy sa wyniki. Wchodzi tylko dla n-q < 0.

i jeszcze warunek gdy n-q == 0 i e = 0, wtedy tez p nie istnieje. Wiecej uwag nie mam Smile


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
To forum jest zablokowane, nie możesz pisać dodawać ani zmieniać na nim czegokolwiek   Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi    Forum ::BIOTECHNOLOGIA:: Strona Główna -> Archiwum Wszystkie czasy w strefie EET (Europa)
Idź do strony Poprzedni  1, 2
Strona 2 z 2

 
Skocz do:  
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
Regulamin