Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"

#1
Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
Kod:
<code>#include <iostream.h>
#include <iomanip>
#include <cstdlib>
#include <time.h>
#include <algorithm>

int main(void)
{
    int i, j, k, m, x, r, w;
    int *tab=new int [r];
    cout<<"Wprowadz rozmiar tablicy:"<<" "<<endl; // Zmienna r deklaruje rozmiar kopca => rozmiar tablicy
    cin>>r;
    for(i=1;i<=r;i++) // Wypełniamy tablicę liczbami wybranymi przez użytkownika, całkowitymi!!
    {
                     cout<<"Wprowadz liczbe do kolumny numer"<<" "<<i<<endl;
                     cin>>w;
                     tab[i]=w;
    }
    // ZACZYNAM BUDOWAĆ KOPIEC!!
    for(i=2;i<=r;i++)
    {
                     j=i;k=j/2; //j=i To jest tablica pomocnicza, natomiast k=j/2 jest to tablica pomocniczna podzielona na pół.
                     x=tab[i]; // Zmienna "x" określa bieżącą, zdeklarowaną na samym początku tablicę.
                     while((k>0) && (tab[k]<x)) // Dopóki k>0 i połowa tablicy tab[k] mniejsza od rozmiaru tablicy pierwotnej wykonuj:
                     {
                                 tab[j]=tab[k];
                                 j=k;k=j/2;
                     }
                     tab[j]=x;
    }
    
    // ROZBIERAMY KOPIEC!!
    for(i=r;i>1;i--)
    {
                    swap(tab[1], tab[i]);
                    j=1;k=2;
                    while(k<i)
                    {
                              if((k+1<i) && (tab[k+1]>tab[k]))
                              m=k+1;
                              else
                              m=k;
                              if(tab[m]<=tab[j]) break;
                              swap(tab[j], tab[m]);
                              j=m; k=j+j;
                    }
    }
    
    cout<<"Po sortowaniu:"<<endl;
    for(i=1;i<=r;i++)
    {
                     cout<<" "<<tab[i]<<endl;
                     //cout<<endl;
    }
                    
    system("PAUSE");
    return 0;
}

Błąd tyczy się swapa'a i brzmi on:

`swap' undeclared (first use this function)

Nie wiem co jest nie tak...

Pozdrawiam!

Dodam tylko, że gotowy algorytm działa - ale w nim jest z góry ustalona liczebność zbioru. Moja modyfikacja polega na tym, że to użytkownik ustala ile i co ma być w tablicy.

Pozdrawiam!
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
Cytat:`swap' undeclared (first use this function)
Przecież ci pisze, że nie ma takiej funkcji...
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#3
RE: Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
Zrobiłem literówke w using namespace std; jakby komuś było potrzebne.

Bajo.!
 System operacyjny: windows_seven Przeglądarka: firefox
#4
RE: Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
Tak teraz, patrzę nad ten kod i on miał prawo poprawnie działać jeżeli był tak skonstruowany:

Cytat:int i, j, k, m, x, r, w;
int *tab=new int [r];
cout<<"Wprowadz rozmiar tablicy:"<<" "<<endl; // Zmienna r deklaruje rozmiar kopca => rozmiar tablicy
cin>>r;

Dynamicznie alokuje tablicę o nieznanym rozmiarze?
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
(23.05.2011, 22:14)Darekg11 napisał(a): Tak teraz, patrzę nad ten kod i on miał prawo poprawnie działać jeżeli był tak skonstruowany:

Cytat:int i, j, k, m, x, r, w;
int *tab=new int [r];
cout<<"Wprowadz rozmiar tablicy:"<<" "<<endl; // Zmienna r deklaruje rozmiar kopca => rozmiar tablicy
cin>>r;

Dynamicznie alokuje tablicę o nieznanym rozmiarze?

Dziwne bo działa.
 System operacyjny: windows_seven Przeglądarka: firefox
#6
RE: Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
Nie wiem w czym to kompilowałeś ale u mnie od razu rzuca ostrzeżenie i run time error'a.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#7
RE: Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap"
damianplflow: "działa" to bardzo szerokie pojęcie. Jak myślisz, jaką wartość ma zmienna r w drugiej linijce? No właśnie, nawet sam Wielki Programista nie wie jaką.
Najpierw ustal wartość zmiennej r, a dopiero później alokuj tablicę.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap")
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Wykres Funkcji w Javie wanhelsing 4 11036 17.02.2018, 22:27
Ostatni post: wanhelsing
  VisualBasic - tablicowanie wartości funkcji . samanta19 2 7624 20.01.2017, 01:01
Ostatni post: samanta19
  [C++] Sortowanie bąbelkowe - problem z rozwiązaniem zadania bartek164 8 7433 01.12.2016, 11:26
Ostatni post: Szachista

Skocz do:


Wybrane wątki (Sortowanie przez kopcowanie - błąd dotycząćy funkcji "swap")
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  VBA excel dmjs 6 8379 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 8163 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 7820 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 6955 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 10193 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 7413 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 7879 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 9284 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 8141 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 8872 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 8178 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 8879 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 11548 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 9336 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 10387 06.10.2018 12:22
Ostatni post: NissmoOne