PILNE! Bardzo proszę o rozwiązanie! (Wrzucam ponownie)
Opisz wszystkie komendy i zmienne, co oznaczają, do czego służą i na co to jest algorytm.
#include <iostream>
using namespace std;
void sortowanie_przez_wstawianie(float tab[], int n)
{
int i,k,elem;
for(i=1;i<n;i++)
{
elem=tab[i];
k=i-1;
while(k>=0 && tab[k]>elem)
{
tab[k+1]=tab[k];
k--;
}
tab[k+1]=elem;
}
for(i=0;i<n;i++)
cout<<tab[i]<<endl;
}
int main()
{
int n=5;
float tab[n];
int suma=0;
int i;
float harm=0;
cout << "Podaj 5 liczb " << endl;
for(i=0;i<n;i++)
{
cin>>tab[i];
}
cout << endl;
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
#include <iostream>
using namespace std;
void sortowanie_przez_wstawianie(float tab[], int n) // funkcja która nie zwraca wartości(void) i dwie zmienne, które będą wchodzić do funkcji
{
int i,k,elem; // zmienne typu calkowitego
for(i=1;i<n;i++) // petla ktora bedzie sie robila 4;
{
elem=tab[i]; // elem przyjmuje wartosc tab[i], czyli drugiego elementu tablicy, czyli jeśli podaliśmy liczby 4 , 3 , 5 , 6 ,7 to elem ma wartość 3.
k=i-1; // k przyjmuje wartosc i-1
while(k>=0 && tab[k]>elem) // petla ktora robi sie kiedy k jest wieksze bądź równe 0 i tab[k] jest wieksze od zmiennej elem, czyli petla robi sie kiedy poprzedni element tablicy jest większy od bieżacego. Przy pierwszym wykonaniu tej pętli k będzie miało wartość 0, gdyż i ma wartość 1, a ka ma wartość 1-1, czyli 0, ale warunek pierwszy jest spełniony, a drugi warunek to tab[k]>elem, czyli jeśli podaliśmy liczby 4 3 5 6 7, to będzie sprawdzanie czy 4 jest większe od 3, czyli 2 warunki spełnione i pętla wykona się.
{
tab[k+1]=tab[k]; // wg powyższych założen to tutaj DRUGI ELEMENT tablicy, czyli 3 przybierze wartość PIERWSZEGO, czyli 4. Czyli jednym słowem drugi element tablicy ma wartosc pierwszego, czyli teraz nasze liczby wyglądają 4 4 5 6 7
k--; // zmniejsze wartosci k o 1
} // zakonczenie petli while
tab[k+1]=elem; // pierwszy element tablicy przyjmuje wartosc 3, czyli teraz jest 3 4 5 6 7
} // zakonczenie petli for.
for(i=0;i<n;i++)
cout<<tab[i]<<endl; // wypisanie posortowanej tablicy.
}
int main()
{
int n=5; // nadanie wartosci 5 zmiennej n
float tab[n]; // stworzenie tablicy 5-elementowej
int suma=0; // nadanie wartosci 0 zmiennej suma
int i; // deklaracja zmiennej i
float harm=0; // deklaracja i nadanie wartosci zmiennej harm
cout << "Podaj 5 liczb " << endl; // komunikat
for(i=0;i<n;i++) // petla ktora sie bedzie robic 5 razy
{
cin>>tab[i]; // wczytanie wartosci do elementow tablicy z indeksem 0-4
}
cout << endl; // nowa linia
Autora proszę o zwrócenie uwagi na to, że jak pisałem PIERWSZY, bądź DRUGI element tablicy to miało to znaczenie tylko PRZY pierwszym wykonaniu pętli i pod warunkiem, że pierwsza liczba będzie większa od następnej, czyli w przypadku, gdy pierwszą liczbę jaką podamy będzie np 10 , a drugą 5.
A algorytm ten sortuje 5 liczb.