- Algorytm jest całkowicie poprawny , jeśli dla wszystkich danych wejściowych spełniających warunki początkowe wyprowadzi wyniki spełniające warunki końcowe i obliczenia zostaną zakończone
- Algorytm jest częściowo poprawny , jeśli dla obliczeń, które się skończą , ich wyniki są poprawne względem względem warunków początkowych i końcowych.W tym przypadku nie jest konieczne wykazanie , że obliczenia kończą się dla wszystkich poprawnych danych.
wtorek, 2 stycznia 2018
Poprawność algorytmów
Algorytm jest poprawny, jeżeli rozwiązuje problem zgodnie ze specyfikacją problemu (zadania).
środa, 20 grudnia 2017
Sortowanie pozycyjne w C++
Sortowanie-porządkowanie informacji według określonego kryterium.
Przykład:
Posortować algorytmem sortowania pozycyjnego zbiór liczb:
{ 547 398 247 153 121 792 421 }
Liczby posortujemy wg kolejnych od końca cyfr:
Po posortowaniu ostatniej cyfry liczby tworzą ciąg posortowany.
- SORTOWANIE POZYCYJNE.
W algorytmie sortowania słów według porządku alfabetycznego metodą pozycyjną porównywane
są litery umieszczone na tych samych pozycjach,
począwszy od ostatniej litery w najdłuższym słowie
(słowach).
Przykład:
Posortować algorytmem sortowania pozycyjnego zbiór liczb:
{ 547 398 247 153 121 792 421 }
Liczby posortujemy wg kolejnych od końca cyfr:
| start | ??x | ?x? | x?? | koniec |
|---|---|---|---|---|
| 547 398 247 153 121 792 421 | 121 421 792 153 547 247 398 | 121 421 547 247 153 792 398 | 121 153 247 398 421 547 792 | 121 153 247 398 421 547 792 |
Sortowanie bąbelkowe C++
Sortowanie-porządkowanie informacji według określonego kryterium.
Polega na porównywaniu parami kolejnych liczb i przestawianiu ich jeśli występują w niewłaściwej kolejności.Sortowanie bąbelkowe jest bardzo
Polega na porównywaniu parami kolejnych liczb i przestawianiu ich jeśli występują w niewłaściwej kolejności.Sortowanie bąbelkowe jest bardzo
łatwe - sprawdzamy czy następny element tablicy jest większy od aktualnego, jeżeli tak, to zamieniamy te elementy miejscami. Aby skrócić czas wykonywania całego algorytmu kosztem dłuższego czasu przejścia przez jedną pętlę, można utworzyć flagę przechowującą zmiany. Flaga jest zerowana na wejściu w pętli, w przpadku zmiany jest ona podnoszona. Po wykonaniu pętli sprawdzamy czy zaszła zmiana, jeżeli nie to kończymy sortowanie.
2. PROGRAM REALIZUJĄCY ALGORYTM SORTOWANIA
BĄBELKOWGO.
#include<iostream>
using namespace std;
int main()
{
cout << "*****Bubble sort*****" << endl;
int a[50],n,i,j,temp;
cout<<"Wpisz ilosc liczb ";
cin>>n;
cout<<"Wypisz elementy: " << endl;
for(i=0;i<n;++i)
cin>>a[i];
for(i=1;i<n;++i)
{
for(j=0;j<(n-i);++j)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<"Posortowane liczby:";
for(i=0;i<n;++i)
cout<<" "<<a[i];
return 0;
}
2. PROGRAM REALIZUJĄCY ALGORYTM SORTOWANIA
BĄBELKOWGO.
#include<iostream>
using namespace std;
int main()
{
cout << "*****Bubble sort*****" << endl;
int a[50],n,i,j,temp;
cout<<"Wpisz ilosc liczb ";
cin>>n;
cout<<"Wypisz elementy: " << endl;
for(i=0;i<n;++i)
cin>>a[i];
for(i=1;i<n;++i)
{
for(j=0;j<(n-i);++j)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<"Posortowane liczby:";
for(i=0;i<n;++i)
cout<<" "<<a[i];
return 0;
}
wtorek, 19 grudnia 2017
Sortowanie przez wybór w C++
SORTOWANIE-porządkowanie informacji według określonego kryterium.
Polega na wyszukaniu w ciągu liczby największej (lub najmniejszej- w zależności od przyjętego porządku), ustawieniu jej na początku ciągu, a następnie powtarzaniu tych czynności z pominięciem już uporządkowanych elementów.
2.PROGRAM REALIZUJĄCY ALGORYTM SORTOWANIA PRZEZ WYBÓR:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
cout << "*****Select sort*****\n" ;
int array[100], n, c, d, position, swap;
printf("Wpisz liczbe elementow\n");
scanf("%d", &n);
printf("Wypisz te elementy\n", n);
for ( c = 0 ; c < n ; c++ )
scanf("%d", &array[c]);
for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
position = c;
for ( d = c + 1 ; d < n ; d++ )
{
if ( array[position] > array[d] )
position = d;
}
if ( position != c )
{
swap = array[c];
array[c] = array[position];
array[position] = swap;
}
}
printf("Posegregowane liczby:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
- SORTOWANIE PRZEZ WYBÓR.
2.PROGRAM REALIZUJĄCY ALGORYTM SORTOWANIA PRZEZ WYBÓR:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
cout << "*****Select sort*****\n" ;
int array[100], n, c, d, position, swap;
printf("Wpisz liczbe elementow\n");
scanf("%d", &n);
printf("Wypisz te elementy\n", n);
for ( c = 0 ; c < n ; c++ )
scanf("%d", &array[c]);
for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
position = c;
for ( d = c + 1 ; d < n ; d++ )
{
if ( array[position] > array[d] )
position = d;
}
if ( position != c )
{
swap = array[c];
array[c] = array[position];
array[position] = swap;
}
}
printf("Posegregowane liczby:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
poniedziałek, 30 października 2017
Stosowanie tablic
piątek, 27 października 2017
Zasady programowania i typy danych
KILKA ZASAD PROGRAMOWANIA W DOBRYM STYLU
Program jest zrozumiały dla komputera, gdy może być przez niego wykonany.Należy więc przestrzegać reguł języka programowania- stosować poprawną składnię instrukcji.
Dobry styl programowania to taki, w którym potrafimy zapisać algorytm w sposób zrozumiała dla komputera i człowieka.
ZASADA 1:
Należy stosować zrozumiałe nazwy zmiennych, bądź zrozumiałe skróty.
ZASADA 2:
Warto zarezerwować pewne nazwy na zmienne używane wielokrotnie np. sterując pętlami - j,i.
ZASADA 3:
Dobrze jest sporządzić listy używanych zmiennych.
ZASADA 4:
Należy dzielić program na podprogramy realizujące mniejsze fragmenty zdania, zwłaszcza w złożonych problemach.
ZASADA 5:
Trzeba dbać o przejrzystość tekstu i zachowywać czytelność jego struktury. Warto też dodawać
komentarze na początku procedur i funkcji oraz przy niektórych instrukcjach.
ZASADA 6:
Należy pisać programy odporne na błędy użytkowników. Program powinien instruować swojego użytkownika o działaniach jakie musi on podejmować oraz wyświetlać komunikaty dotyczącego oczekiwanego rodzaju danych i nałożonych na nie ograniczeń.
TYPY DANYCH W JĘZYKU C++
-Typy danych w języku C++

Podział typów w C++:
-typy proste
-typy obiektowe
-Podzbiory typu całkowitego i rzeczywistego w języku C++ i Pascal.
Program jest zrozumiały dla komputera, gdy może być przez niego wykonany.Należy więc przestrzegać reguł języka programowania- stosować poprawną składnię instrukcji.
Dobry styl programowania to taki, w którym potrafimy zapisać algorytm w sposób zrozumiała dla komputera i człowieka.
ZASADA 1:
Należy stosować zrozumiałe nazwy zmiennych, bądź zrozumiałe skróty.
ZASADA 2:
Warto zarezerwować pewne nazwy na zmienne używane wielokrotnie np. sterując pętlami - j,i.
ZASADA 3:
Dobrze jest sporządzić listy używanych zmiennych.
ZASADA 4:
Należy dzielić program na podprogramy realizujące mniejsze fragmenty zdania, zwłaszcza w złożonych problemach.
ZASADA 5:
Trzeba dbać o przejrzystość tekstu i zachowywać czytelność jego struktury. Warto też dodawać
komentarze na początku procedur i funkcji oraz przy niektórych instrukcjach.
ZASADA 6:
Należy pisać programy odporne na błędy użytkowników. Program powinien instruować swojego użytkownika o działaniach jakie musi on podejmować oraz wyświetlać komunikaty dotyczącego oczekiwanego rodzaju danych i nałożonych na nie ograniczeń.
TYPY DANYCH W JĘZYKU C++
-Typy danych w języku C++
Podział typów w C++:
-typy proste
- porządkowe (m. in. całkowity, logiczny, znakowy, wyliczeniowy)
- rzeczywiste
- tablice
- struktury
- unie
-typy obiektowe
-Podzbiory typu całkowitego i rzeczywistego w języku C++ i Pascal.
poniedziałek, 23 października 2017
Sposoby przekazywania parametrów
1.PRZEKAZYWANIE PARAMETRÓW PRZEZ WARTOŚĆ
W treści danej procedury lub funkcji są traktowane jak zmienne lokalne. Ewentualne operacje wykonywane na tych parametrach wewnątrz procedury lub funkcji nie powodują zmian wartości odpowiadających im parametrów aktualnych.
2. PRZEKAZYWANIE PARAMETRÓW PRZEZ ZMIENNĄ (PRZEZ REFERENCJĘ)
W procedurze lub funkcji, w której parametry przekazywane są przez zmienną, operacje wykonywane w treści procedury na parametrach formalnych w momencie wywołania danej procedury powodują wykonanie tych operacji na odpowiednich parametrach aktualnych.
Subskrybuj:
Posty (Atom)