sobota, 25 lutego 2017

Algorytm obliczający iloczyn kolejnych liczb naturalnych od 1 do n

Silnia (n!) jest to iloczyn kolejnych liczb naturalnych od 1 do n.  Jest to pojęcie czysto matematyczne.  Silnię liczby naturalnej n oznaczamy symbolem n! (czytamy en silnia). Oznaczenie n! dla silni wprowadził w 1808 roku Christian Kramp.
Mamy zatem:

n!=1⋅2⋅3⋅...⋅(n−1)⋅n


Kliknij, aby zobaczyć: Tablica wartości silni
Lista kroków:
Krok 1: silnia = 1
Krok 2:WCZYTAJ n
Krok 3: i = 1
Krok 4: JEŻELI i<=n to WYKONAJ Krok 5..Krok 6 
      W przeciwnym razie WYKONAJ krok 7.
Krok 5: Silnia =Silnia * i
Krok 6: i++
Krok 7: NAPISZ ('silnia =',silnia)

Schemat blokowy 
Program w C++ 

/// program oblicza iloczyn kolejnych liczb naturalnych od 1..n

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
    int n,i;
    long int silnia = 1;
    cout << "Podaj liczbe, dla której obliczyc silnie " << endl;
    cin >> n;
    for (i = 1; i<=n;i++)   silnia *= i;
    cout << "Silnia = "<<silnia << endl;
    return(0);
}


Rozwiązanie w Excel



Aby obliczyć iloczyn n kolejnych liczb naturalnych w arkuszu kalkulacyjnym EXCEL, należy wykonać następujące czynności:


1. Do komórki A1 wpisujemy tytuł algorytmu
2. Zakres komórek od A3:A14 wypełniamy kolejnymi liczbami naturalnymi (1..12)
3. W komórce B3 wpisujemy wartość 1 4. W komórce B4 wpisujemy formułę obliczającą wartość silni dla każdego i, wykorzystującą funkcje logiczną „Jeżeli”, w następujący sposób:
=JEŻELI(A4<=E$4;B3*A4;" ")

5. W komórce E4 formułę wykorzystująca funkcję logiczną „Wyszukaj” w następujący sposób:
WYSZUKAJ.PIONOWO(E4;A3:B100;2)

Jej zadaniem jest wyszukanie wartości największej dla obliczonej silni s.
Formułę należy skopiować do komórek z zakresu (B5:B14)

Opracował: Amadeusz P.




środa, 8 lutego 2017

Algorytm sprawdzający czy punkt P leży na prostej


Idea algorytmu sprawdzającego czy punkt P leży na prostej

Ideą algorytmu jest sprawdzenie czy wprowadzony przez nas punkt leży na danej prostej. 

Na płaszczyźnie współrzędnych prostą definiujemy w postaci ogólnej lub kierunkowej.
Postać ogólna równania prostej jest następująca:
Ax+By+C = 0
natomiast postać kierunkowa to:
y = kx+b 


Aby  sprawdzić czy punkt należy do danej prostej należy sprawdzić jego odległość od prostej, którą oznaczamy literą d.  Jeśli d=0 to oznacza, że podany przez nas punkt znajduje się na prostej.

Wartość d obliczamy wzorem



ZADANIE 

Algorytm sprawdzi czy punkt P = (x0,y0) leży na prostej o równaniu ogólnym 3x+4y-4 = 0.

Lista kroków

Krok 0. Wczytaj wartości danych x0 i y0.
Krok 1. Wykonaj działanie, które obliczy odległość od prostej według powyższego wzoru
             d=abs(3*x0+4*y0-4)/sqrt(pow(3.0,2)+pow(4.0,2)) 
Krok 2.  Jeśli d=0 to wypisz: "punkt należy do prostej".
Krok 3. Jeśli d≠0 to wypisz: "punkt nie należy do prostej".

Krok 4. Zakończ algorytm.

Schemat blokowy



Program w C++

//algorytm sprawdzający, czy punkt P leży na prostej 3x+4y–4 = 0
#include <iostream>
#include <cmath>
using namespace std;

bool szukaj (double x0, double y0)  //funkcja szukaj
{
 double d=abs(3*x0+4*y0-4)/sqrt(pow(3.0,2)+pow(4.0,2)); // oblicza odległość punktu P od prostej
 if (d==0) return true;
 else return false;
}
int main()
{
 double x0, y0;     
 cout<<"podaj wspolrzedne punktu: ";
 cin>>x0>>y0;  
 if (szukaj(x0,y0)) // sprawdzenie warunku, czy odległość punktu P od prostej równa się 0
  cout<<"punkt P=("<<x0<<";"<<y0<<") lezy na prostej 3x+4y-4=0"<<endl;   
  else 
  cout<<"punkt P=("<<x0<<";"<<y0<<") nie lezy na prostej 3x+4y-4=0"<<endl;   
 return 0;    
}



Rozwiązanie w Excel


Aby sprawdzić czy punkt P leży na prostej 3x+4y = 0 należy zaprojektować tabelę:
1. Do komórki B1 wpisujemy tytuł algorytmu
2. W komórkach B4 i B5 wprowadzamy wartość punktu x0 i y0 
3. W komórce B8 formułę wykorzystująca funkcję logiczną JEŻELI” w następujący sposób:


=JEŻELI(MODUŁ.LICZBY(3*B4+4*B5-4)/PIERWIASTEK(25)=0;
                 "punkt leży na prostej";"punkt nie leży na prostej")

Moduł.liczby - zwraca wartość bezwzględną liczby 
Pierwiastek - zawraca pierwiastek kwadratowy  liczby



Opracowała: Sylwia B.

ALGORYTM OBLICZAJĄCY SUMĘ n KOLEJNYCH LICZB NATURALNYCH

ALGORYTM OBLICZAJĄCY SUMĘ n KOLEJNYCH LICZB NATURALNYCH 

Jest to rodzaj algorytmu, w którym wszystkie instrukcje wykonywane są kolejno, bez konieczności rozpatrywania warunków.

Kolejność wykonywanych operacji w algorytmach tego typu jest zawsze taka sama i nie zależy od wczytywanych danych wejściowych. 
Schemat blokowy jest strukturą liniową, bez rozgałęzień. Program zaś zawiera wyłącznie operacje wejścia-wyjścia oraz instrukcje przypisania.



Specyfikacja:
Dane: Liczba naturalna: n>0.
Wynik: Suma n kolejnych liczb naturalnych większych od 0: s.
Lista kroków:
Krok 0. Wczytaj wartość danej n.
Krok 1. Przypisz s=[n(n+1)]/2.
Krok 2. Wypisz wynik s. Zakończ algorytm.

Schemat blokowy:

Program w C++:
//program oblicza sumę kolejnych liczb naturalnych: 1,2,...,n
#include <iostream>
using namespace std;
main ()
{
int n,s;  //n-liczby naturalne; s-suma
cout<<"podaj n: ";
cin>>n; 
s=n*(n+1)/2; //algorytm oblicza sumę kolejnych liczb naturalnych ze wzoru
cout<<"s = "<<s<<endl; 
return 0;
}

Rozwiązanie w Excel:


  1. Do komórki A1 wprowadzamy tytuł algorytmu tj. ALGORYTM OBLICZAJĄCY SUMĘ n KOLEJNYCH LICZB NATURLANYCH: 1, 2, …, n (n>0)
  2. Do komórki B3 wpisujemy  n=
  3. Do komórki B5 wpisujemy  s=; 
  4. Do komórki C3 (odpowiednia wartość dla n, którą wybieramy z klawiatury)
  5. W komórce C5 wpisujemy formułę obliczającą sumę n kolejnych liczb naturalnych  =C3*(C3+1)/2


Opracowała: Beata T.