Zamiana kolumn i wierszy miejscami w c++

Aby cokolwiek ze sobą zamienić w języku c++ mamy do pomocy funkcję swap dostępną w głównej bibliotece języka.
Zilustruję to na poniższych przykładach:

Zamiana kolumn miejscami:

#include<iostream> //tyle nam wystarczy, czyli podstawa

using namespace std; //przestrzenie nazw by sie nie bawić niepotrzebnie

int main(){

 cout<<„PROGRAM ZAMIENIA KOLUMNY W TABLICY MIEJSCAMI „<<endl;

// Definicja tablicy – 4 kolumny, 5 wierszy
int tab[5][4] =
{
    {2,3,4,5},//wiersz numer 1 a w nim w kolumnie pierwszej liczba 2
    {5,6,7,8},//wiersz numer 2 a w nim w kolumnie drugiej jest liczba 6
    {9,0,1,2},//itd…….   pamiętajmy że pierwszy element wiersza lub 
    {3,4,5,6},// kolumny jest oznaczany jako 0 – język c tak ma i już
    {7,8,9,0}
};
//powiedzmy co posiadamy
cout<<endl<<„===========================”<<endl;
cout<<„W tablicy mamy 4 kolumny oraz 5 wierszy, liczone sa one od zera”;
cout<<endl<<„===========================”<<endl;

 

//wyświetlam tablicę
cout<<endl<<„———————-„<<endl;
cout<<„Wyglad tablicy na wstepie”<<endl;
int i=0, n=5, m=4;
  //wypisanie tablicy poprzez pętle, nie będę się rozpisywał :p
  for (int i=0 ; i<n ; i++)
  {
      cout<<„Wiersz numer: „<<i<<”     |”; 
      for (int j=0 ; j<m ; j++)
      {
          cout<<tab[i][j]<<”  „;
      }
      cout<<endl;
  }
  cout<<„———————-„<<endl<<endl;

//zamiana – formularz – pytamy co chcemy zamienić

int z1,z2;
cout<<„Podaj numery kolumny pierwszej ktora podlega zamianie”<<endl;
cout<<„Numeracje kolumn przyjmij od zera: „<<endl;

//wprowadzenie kolumny pierwszej do zamiany

cin>>z1;
//no i druga kolumna
cout<<endl<<„Podaj numery kolumny drugiej ktora podlega zamianie: „<<endl;
cin>>z2;
cout<<endl<<„———————-„<<endl;

//sprawdzenie poprawności wielkości podanych ponieważ może ktoś dać do zamiany kolumne której nie ma😀

if(z1>4||z2>4)
{
    cout<<„ERRRRROR!!!! ZLE PODALES NUMER KOLUMNY – TAKOWY NIE ISTNIEJE!!!”;
    return 0;
}
/*do dzieła:
-używamy do obsługi pętli, zmiennej  i, dlatego bo zaczynamy od przyrównania jej do zera – możemy znów ją wykorzystać
-posiadamy 5 wierszy więc w kolejnych obiegach pętli zamieniamy kolejne elementy z wiersza –
-używamy funkcji swap(element1, element2) która zamienia miejscami wartości elementu1 i elementu2 – takie czary mary
-dla pierwszego obiegu pętli mamy tak :    
    zamiana elementu tablicy z wiersza numer 0 i kolumny podanej jako pierwsza – z1
    z elementem z wiersza numer 0 i kolumny podanej jako druga – z2
-analogicznie aż do spełnienia warunku pętla sobie śmiga
*/
for(i=0;i<5;i++){
    swap( tab[i][z1],tab[i][z2]); 
}

 

//wyświetlam tablicę po zamianie żeby ujrzeć rezultaty

cout<<endl<<„———————-„<<endl;
cout<<endl<<„Wyglad tablicy po zmianie”<<endl;

  //wypisanie tablicy
  for (int i=0 ; i<n ; i++)
  {
      cout<<„Wiersz numer: „<<i<<”     |”;  
      for (int j=0 ; j<m ; j++)
      {
          cout<<tab[i][j]<<”  „;
      }
      cout<<endl;
  }
  cout<<endl;
cout<<endl<<„===========================”<<endl;
cout<<„Nacisnij dowolny klawisz enter by zakonczyc”;

return 0;
}

 

 

Zamiana wierszy miejscami:

#include<iostream>
using namespace std;

int main(){

cout<<„PROGRAM ZAMIENIA WIERSZY W TABLICY MIEJSCAMI „<<endl;

// Definicja tablicy – 4 kolumny, 5 wierszy
int tab[5][4] =
{
{2,3,4,5},//wiersz numer 1 a w nim w kolumnie pierwszej liczba 2
{5,6,7,8},
{9,0,1,2},
{3,4,5,6},
{7,8,9,0}
};
//powiedzmy co posiadamy
cout<<endl<<„===========================”<<endl;
cout<<„W tablicy mamy 4 kolumny oraz 5 wierszy, liczone sa one od zera”;
cout<<endl<<„===========================”<<endl;
//wyświetlam tablicę
cout<<endl<<„———————-„<<endl;
cout<<„Wyglad tablicy na wstepie”<<endl;
int i=0, n=5, m=4;
//wypisanie tablicy
for (int i=0 ; i<n ; i++)
{
cout<<„Wiersz numer: „<<i<<”     |”;
for (int j=0 ; j<m ; j++)
{
cout<<tab[i][j]<<”  „;
}
cout<<endl;
}
cout<<„———————-„<<endl<<endl;
//zamiana formularz – pytamy co chcemy zamienić
int z1,z2;
cout<<„Podaj numer wiersza pierwszego ktory podlegnie zamianie”<<endl;
cout<<„Numeracje wierszy przyjmij od zera: „<<endl;
//wprowadzenie wiersza pierwszego do zamiany
cin>>z1;
cout<<endl<<„Podaj numery wiersza drugiego ktora podlega zamianie: „<<endl;
cin>>z2;
cout<<endl<<„———————-„<<endl;
//sprawdzenie poprawności wielkości podanych ponieważ może dać do zamiany wiersza którego nie ma😀
if(z1>5||z2>5)
{
cout<<„ERRRRROR!!!! ZLE PODALES NUMER WIERSZA – TAKOWY NIE ISTNIEJE!!!”;
return 0;
}

/*do dzieła
wszystko jak poprzednio lecz zamieniamy miejscami zmienne „z1” i „i” oraz „z2” i „i”
ponieważ teraz zamieniamy wiersze
*/

for(i=0;i<4;i++){
swap( tab[z1][i],tab[z2][i]);
}

 

//wyświetlam tablicę po zamianie
cout<<endl<<„———————-„<<endl;
cout<<endl<<„Wyglad tablicy po zmianie”<<endl;

  //wypisanie tablicy
for (int i=0 ; i<n ; i++)
{
cout<<„Wiersz numer: „<<i<<”     |”;
for (int j=0 ; j<m ; j++)
{
cout<<tab[i][j]<<”  „;
}
cout<<endl;
}
cout<<endl;
cout<<endl<<„===========================”<<endl;
cout<<„Nacisnij dowolny klawisz enter by zakonczyc”;


return 0;
}

 

Programy do pobrania KLIK

Dostępne są tam programy .cpp oraz skompilowane pod debiana Skrypty można stosować także do tablic podawanych przez użytkownika trzeba by wtedy sprawdzać wielkość tablicy i przypisać ją do zmiennej lecz to drobnostka przy w/w programie.

Autor

Tomasz

Pasjonat Elektroniki Linuxa i open source

2 myśli na temat “Zamiana kolumn i wierszy miejscami w c++”

  1. zamiana w c czy c++?!

    W C++!!!!!
    w c wyglada to zupelnie inaczej!
    Jak juz chcesz pomagac innym w nauce programowania to przynajmniej nazywaj jezyk jak trzeba!!!!

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s