Mportalik - forum dyskusyjne Strona Główna Mportalik - forum dyskusyjne
Super forum młodzieżowe.

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum

Poprzedni temat «» Następny temat
Zamknięty przez: Charming
01-07-2006, 11:07
Algorytmy i algorytmika
Autor Wiadomość
vanion 
Zasłużeni



Wiek: 22
Dołączył: 01 Sty 2004
Posty: 3562
Skąd: uć
Wysłany: 24-12-2005, 20:56   Algorytmy i algorytmika

Poniewaz jestem na bierzaca z algorytmami na studiach, to bede tu zapodował ciekawsze (czesciej ich implementacje). IMO bardzo wielu osobom bedzie przydatne, szczegolnie tym, ktorzy chca zdawac mature z informatyki.
Algorytmy sa zimplementowane w jezyku php (bo ten najlepiej znam).

A wiec na początek:

Sortowanie bąbelkowe:

Kod:
<?
$tab=array(4,12,54,1,43,122,23,2);
$n=count($tab);
for($i=0;$i<$n;$i++)
 {
    for($j=0;$j<$n;$j++)
 {
        if ($tab[$j]>$tab[$j+1])
 {
            $pierwsze=$tab[$j];
            $tab[$j]=$tab[$j+1];
            $tab[$j+1]=$pierwsze;
}
}
if ($i==$n-1)
{
for ($j=1;$j<$n+1;$j++)
{
echo $j." - ".$tab[$j]."<br>";
}
}
}
?>

w array'u (tablicy) są podane przykładowe liczby, mozna je zmieniac wedle woli.

Zliczanie elementów pod glowna przekątna macierzy:

Kod:
<?
  $M=array(array(1,2,3,4),
           array(2,3,4,5),
           array(3,4,5,6),
           array(4,5,6,7));
  $n=4; 
  $s=0;
 
  for($i=0;$i<$n;$i=$i+1)
  {
    for($j=0;$j<$i;$j=$j+1)
    {
      $s=$s+$M[$i][$j];
      echo $M[$i][$j];
      echo ",";
    }
  }
 
  echo "Suma:";
  echo $s;
?>


Prosił bym o komentarze.
_________________


 
 
 
Gruvby 
+++


Imię: Paweł
Dołączył: 18 Lut 2004
Posty: 3515
Skąd: Lublin
Wysłany: 24-12-2005, 22:44   

vanion napisał/a:
Prosił bym o komentarze.

http://forum.webhelp.pl
 
 
vanion 
Zasłużeni



Wiek: 22
Dołączył: 01 Sty 2004
Posty: 3562
Skąd: uć
Wysłany: 25-12-2005, 11:57   

Gruvby napisał/a:
vanion napisał/a:
Prosił bym o komentarze.

http://forum.webhelp.pl


ale mi chodzilo o wasze komentarze -_-
_________________


 
 
 
Gruvby 
+++


Imię: Paweł
Dołączył: 18 Lut 2004
Posty: 3515
Skąd: Lublin
Wysłany: 25-12-2005, 19:01   

Ale tu się to nikomu nie przyda. Na webhelpie na pewno docenią Twoją pracę. Zresztą ja też to doceniam, lubię jak ktoś coś zrobi samemu, szczególnie teraz, Internet jest zaśmiecony plagiatami, darmowymi designami, skryptami itp.
 
 
vanion 
Zasłużeni



Wiek: 22
Dołączył: 01 Sty 2004
Posty: 3562
Skąd: uć
Wysłany: 25-12-2005, 20:03   

Gruvby napisał/a:
Ale tu się to nikomu nie przyda.

Moze komus sie zachce zdawac informatyke na maturze ;)
Gruvby napisał/a:
Na webhelpie na pewno docenią Twoją pracę.

no.. fajnie by bylo ;P ale zobaczymy ...
Gruvby napisał/a:
Zresztą ja też to doceniam, lubię jak ktoś coś zrobi samemu

hehe, dzieki ;)
Gruvby napisał/a:
Internet jest zaśmiecony plagiatami, darmowymi designami, skryptami itp.

racja ;]
_________________


 
 
 
Shaezaar 
*****
Pacyfikator



Dołączył: 19 Lip 2005
Posty: 1559
Skąd: Brzeg
Wysłany: 25-12-2005, 20:12   

Ja tam to doceniam... może dlatego, ze ni w ząb nie jarze o co w tym biega (O_o)

PS. Jeśli dojde to ja bede zdawał mature z informatyki :D
_________________
\m/ _/....\_ \m/
_ \ _(O_o)_ / _
------------------
Najpierw był chaos... potem poszedłem do sklepu, kupiłem dwie nalewki, stworzyłem świat i było ok.
------------------
 
 
 
vanion 
Zasłużeni



Wiek: 22
Dołączył: 01 Sty 2004
Posty: 3562
Skąd: uć
Wysłany: 26-12-2005, 22:08   

Cos latwego na rozluznienie - wyszukiwanie najwiekszej liczby w ciągu:

Kod:
<?
$tab=array(12,31,10,32,11,21,24,25);
$n=count($tab);
$max=$tab[1];
for($j=1;$j<$n+1;$j++)
{
    if($max<$tab[$j])
    {
    $max=$tab[$j];
    }
}
echo "Najwieksza liczba ciągu: ".$max;
?>


[ Dodano: 27 Gru 2005 11:26 am ]
I cos lepszego - wypisywanie liczb pierwszych z zadanego przedzialu:

Kod:
<?
  function DajTablice($var,$ile)
  {
    for($i=1;$i<=$ile;$i=$i+1)
    {
      $t[$i]=$var;
    }

    return $t;
  }





  $n=100;
  $s=DajTablice(0,$n);

  echo "<pre>";
  print_r($s);
  echo "</pre>";
       
 
  if($n>=3)
  {
    for($w=2;$w<=$n;$w=$w+1)
    {
      if(!($s[$w]==1))
      {
        for($i=$w+1;$i<=$n;$i=$i+1)
        {
          if(($i % $w)==0)
          {
            $s[$i]=1;
          }
        }
      }
    }
  }
 
  echo "<pre>";
  print_r($s);
  echo "</pre>";

  for($i=1;$i<=$n;$i=$i+1)
  {
    if($s[$i]==0)
    {
      echo $i;
      echo ",";
    }
  }
?>


[ Dodano: 29 Gru 2005 07:34 pm ]
Sortowanie przez wstawianie:
Kod:
<?
$tab=array(12,23,25,13,41,6,3,21);
$n=count($tab);

for($j=0;$j<$n;$j=$j+1)
{
  $min=$j;
  for($i=$j;$i<$n+1;$i=$i+1)
  {
  if($tab[$min]>$tab[$i])
    {
    $min=$i;
    }
  $x=$tab[$min];
  $tab[$min]=$tab[$j];
  $tab[$j]=$x;
  }


if ($j==$n-1)
{
for ($a=1;$a<$n+1;$a++)
{
echo $a." - ".$tab[$a]."<br>";
}
}
}
?>
_________________


 
 
 
Cyr4x 
**



Dołączył: 12 Sty 2006
Posty: 334
Wysłany: 18-01-2006, 02:08   

O widzisz, mi się to bardzo przyda. Jakbyś czasem miał quicksort, to zapodaj. W sumie to ja to muszę mieć w Pascalu, ale to już sobie przerobię.

Tu macie sortowanie przez wybieranie (Pascal):
Kod:
program Sortowanie_przez_wybieranie;

uses crt;

var tablica: array [0..20] of integer;
    min, i, j, k, pozycja: integer;

begin
  clrscr;
  randomize;
  writeln('Ciag losowy:');
  writeln;
{podstawianie losowych liczb to tablicy}
  for k:=0 to 20 do
    begin
      tablica[k]:=random(99);
      write(tablica[k]:0,' ');
    end;
    writeln;
    writeln;
    writeln('Ciag posortowany:');
    writeln;
{przesuwanie poczĄtku przedzialu, w ktorym wyznaczamy minimum}
  for j:=0 to 20 do
    begin
      min:=tablica[j];
      pozycja:=j;
{wyznaczanie minimum z danego przedzialu}
        for i:=j to 20 do
          begin
            if tablica[i]<min then
              begin
                min:=tablica[i];
                pozycja:=i;
              end;
          end;
{podstawianie minimum na odpowiednia pozycje}
        tablica[pozycja]:=tablica[j];
        tablica[j]:=min;
    end;
{wypisywanie tabeli wynikowej}
  for k:=0 to 20 do
    write(tablica[k]:0,' ');
  repeat until keypressed;
end.
 
 
Shaezaar 
*****
Pacyfikator



Dołączył: 19 Lip 2005
Posty: 1559
Skąd: Brzeg
Wysłany: 19-01-2006, 13:00   

No i dorwało się dwóch... Ile wy się tego uczycie? Może też bym zaczął , w końcu kiedyś mi się to bardzo przyda. Już mi baba mówiła, że będzie pascal, php, delphi i c++, a ja jestem całkowicie zielony jeśli o to chodzi. Jedyne co to grafika, a i nawet tego tak dobrze nie potrafię. Jesli mam tą maturę zdać to chyba już powinie nem zacząć, co? :/
_________________
\m/ _/....\_ \m/
_ \ _(O_o)_ / _
------------------
Najpierw był chaos... potem poszedłem do sklepu, kupiłem dwie nalewki, stworzyłem świat i było ok.
------------------
 
 
 
Cyr4x 
**



Dołączył: 12 Sty 2006
Posty: 334
Wysłany: 19-01-2006, 17:43   

Zapewne będą jakieś podstawy. Jeżeli ma być tyle języków na raz, to na pewno. Algorytmy to już konkretne rozwiązania, które można zaimplementować praktycznie w każdym języku.
 
 
Shaezaar 
*****
Pacyfikator



Dołączył: 19 Lip 2005
Posty: 1559
Skąd: Brzeg
Wysłany: 19-01-2006, 18:13   

Cytat:
Zapewne będą jakieś podstawy. Jeżeli ma być tyle języków na raz, to na pewno. Algorytmy to już konkretne rozwiązania, które można zaimplementować praktycznie w każdym języku.

Zdążylem się zorientować... :P
_________________
\m/ _/....\_ \m/
_ \ _(O_o)_ / _
------------------
Najpierw był chaos... potem poszedłem do sklepu, kupiłem dwie nalewki, stworzyłem świat i było ok.
------------------
 
 
 
vanion 
Zasłużeni



Wiek: 22
Dołączył: 01 Sty 2004
Posty: 3562
Skąd: uć
Wysłany: 19-01-2006, 20:18   

Sortowanie przez wybieranie (PHP):
Kod:
<?
$tab=array(12,23,25,13,41,6,3,21);
$n=count($tab);

for($j=0;$j<$n;$j=$j+1)
{
  $min=$j;
  for($i=$j;$i<$n+1;$i=$i+1)
  {
  if($tab[$min]>$tab[$i])
    {
    $min=$i;
    }
  $x=$tab[$min];
  $tab[$min]=$tab[$j];
  $tab[$j]=$x;
  }


if ($j==$n-1)
{
for ($a=1;$a<$n+1;$a++)
{
echo $a." - ".$tab[$a]."<br>";
}
}
}
?>


[ Dodano: 19 Sty 2006 08:21 pm ]
w pon. mam kolokwium z algorytmów, jak zobaczyłem jakie miala inna grupa to sie odrobine wystraszyłem. Jsli jest ktos ciekaw to moge zapodac polecenia.

[ Dodano: 20 Sty 2006 10:06 pm ]
Srednia arytmetyczna trzech najwiekszych liczb(dodatnich) z tablicy:
Kod:
<?
$tab=array(3,2,6,2,7,1);
$n=count($tab);
$max1=0;
$max2=0;
$max3=0;
for($j=0;$j<$n+1;$j++)
{
  if($tab[$j]>$max1)
  {
  $max1=$tab[$j];
  }

if($j==$n)
  {
    for($j=0;$j<$n+1;$j++)
    {
     if($tab[$j]>$max2 && $tab[$j]<$max1)
     {
     $max2=$tab[$j];
     }

     if($j==$n)
       {
          for($j=0;$j<$n+1;$j++)
          {
             if($tab[$j]<$max2 && $tab[$j]>$max3)
              {
              $max3=$tab[$j];
              }
          }
        }
}
}
}

echo "Tablica posortowana:<br>
Pierwszy: ". $max1."<br>Drugi: ".$max2."<br>Trzeci: ".$max3;
$srarytm=($max1+$max2+$max3)/3;
echo "<br>Srednia arytmetyczna:".$srarytm;

?>


Cyr4x, masz cos jeszcze ciekawego?
_________________


 
 
 
kanekane 

Dołączył: 11 Lut 2006
Posty: 2
Wysłany: 16-02-2006, 17:20   

obliczanie liczb pierwszych ( w c++) to chyba z jakiegos kursu jest:

Cytat:

#include <iostream.h>

void main()
{
double x;
cout<<"Obliczanie liczb pierwszych"<<endl;
cout<<"Zakres liczb od 0 do ... (podaj liczbe)";
cin>>x;
for (int i=2;i<=x;i++)
{
for (int a=2;a<=i;a++)
{
if (i%a==0)
{
if (i==a)
{
cout << i<<";";
}
else
{
break;
}
}
}
}
}


i sortowanie bąbelkowe, takze w c++ (mojego autorstwa wiec raczej kiepskie ale dziala, wymaga zaimplementowania wstawiania zmiennych, w tym przypadku sa jakies przykladowe)

Cytat:

#include <stdio.h>
#include <iostream>
#include <conio.c>

int main(int argc, char *argv[])
{

int i_tab[9];
i_tab[0]=33; //33
i_tab[1]=57; //57
i_tab[2]=93; //93
i_tab[3]=73; //73
i_tab[4]=19;
i_tab[5]=82;
i_tab[6]=99;
i_tab[7]=12;
i_tab[8]=41;

int a;
a=0;
while (a<9)
{
if (i_tab[0]>i_tab[1])
{
int tab0=i_tab[0];
i_tab[0]=i_tab[1];
i_tab[1]=tab0;
}
if (i_tab[1]>i_tab[2])
{
int tab0=i_tab[1];
i_tab[1]=i_tab[2];
i_tab[2]=tab0;
}
if (i_tab[2]>i_tab[3])
{
int tab0=i_tab[2];
i_tab[2]=i_tab[3];
i_tab[3]=tab0;
}
if (i_tab[3]>i_tab[4])
{
int tab0=i_tab[3];
i_tab[3]=i_tab[4];
i_tab[4]=tab0;
}
if (i_tab[4]>i_tab[5])
{
int tab0=i_tab[4];
i_tab[4]=i_tab[5];
i_tab[5]=tab0;
}
if (i_tab[5]>i_tab[6])
{
int tab0=i_tab[5];
i_tab[5]=i_tab[6];
i_tab[6]=tab0;
}
if (i_tab[6]>i_tab[7])
{
int tab0=i_tab[6];
i_tab[6]=i_tab[7];
i_tab[7]=tab0;
}
if (i_tab[7]>i_tab[8])
{
int tab0=i_tab[7];
i_tab[7]=i_tab[8];
i_tab[8]=tab0;
}
a++;
}
cout<<i_tab[0];
cout<<"\n";
cout<<i_tab[1];
cout<<"\n";
cout<<i_tab[2];
cout<<"\n";
cout<<i_tab[3];
cout<<"\n";
cout<<i_tab[4];
cout<<"\n";
cout<<i_tab[5];
cout<<"\n";
cout<<i_tab[6];
cout<<"\n";
cout<<i_tab[7];
cout<<"\n";
cout<<i_tab[8];


getchar();
return 0;
}

pozdrawiam
 
 
vanion 
Zasłużeni



Wiek: 22
Dołączył: 01 Sty 2004
Posty: 3562
Skąd: uć
Wysłany: 16-02-2006, 18:52   

kanekane napisał/a:
sortowanie bąbelkowe, takze w c++ (mojego autorstwa wiec raczej kiepskie ale dziala, wymaga zaimplementowania wstawiania zmiennych, w tym przypadku sa jakies przykladowe)

no tzreba przyznac ze bardzo dlugie, i nie jestem pewien, czy spelnia cala idee sortowania babelkowego, tutaj cos krotszego w c++:

Kod:
int main()
{
  int d[N],i,j;
 

// Najpierw wypełniamy tablicę d[] liczbami pseudolosowymi
// a następnie wyświetlamy jej zawartość

  srand((unsigned)time(NULL));
  for(i = 0; i < N; i++) d[i] = rand() % 100;
  for(i = 0; i < N; i++) cout << setw(4) << d[i];
  cout << endl;

// Sortujemy

  for(j = 0; j < N - 1; j++)
    for(i = 0; i < N - 1; i++)
      if(d[i] > d[i + 1]) swap(d[i], d[i + 1]);

// Wyświetlamy wynik sortowania

  cout << "Po sortowaniu:\n\n";
  for(i = 0; i < N; i++) cout << setw(4) << d[i];
  cout << endl;
  system("PAUSE"); return 0;
}


[ Dodano: 16 Lut 2006 06:53 pm ]
cale sortowanie jest tutaj w 3 linijkach :) )
_________________


 
 
 
Piotrek

Dołaczył: Dawno
Posty:
Skad: Z internetu





Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie 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
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
REGULAMIN

:::REKLAMA:::

Mapa forum
Fotografie ślubne Wiadomości, newsy
statystyki www stat.pl