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.

0 Replies to “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!!!!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *