Wydział Inżynierii Elektrycznej i Komputerowej
TECHNOLOGIA INFORMACYJNA JĘZYK "C" |
---|
Ćwiczenie: Odsortować elementy wierszy od maksymalnego do minimalnego. |
Grupa : L5 |
Imię i nazwisko |
1. Mateusz Stramka |
2. |
1.Cel ćwiczenia
Celem ćwiczenia jest napisać kod programu sortowania macierzy A={aij} metodą wstawiania.
Dla odsortowanej macierzy obliczyć wartość funkcji F(fi(aij)).
Algorytm sortowania oraz obliczanie funkcji fi(aij) zapisać w postaci funkcji.
Macierz A={aij} odczytać z pliku tekstowego.
Wyniki sortowania oraz wartości funkcji fi(aij), F(fi(aij)) zapisać do pliku tekstowego. */
1. Wykonanie ćwiczenia
34 | Odsortować elementywierszyodmaksymalnegodominimalnego | fi(aij) – minimalnyelementkażdej kolumny pod diagonalą dodatkową; F(fi(aij))=Σfi(aij) |
indeksy oraz wartości elementów z cyfrą 3 na końcu |
---|
a) kod źródłowy programu:
#include <vcl.h>
#include<iostream.h>
#include <fstream.h>
#pragma hdrstop
//-
const int i=10;
const int j=10;
int t[i][j];
int s=0;
void sortuj(void){
for (int a=0; a<i; a++){
for (int b=0; b<j; b++){
for(int c=0; c<j; c++){
if (t[a][b]>t[a][c]){
int tmp=t[a][b];
t[a][b]=t[a][c];
t[a][c]=tmp;
};
};
};
};
fstream f;
f.open("Wyniki.txt", ios::out);
f << "Oto posortowana macierz: " << endl;
for (int a=0; a<i; a++){
for (int b=0; b<j; b++){
f << t[a][b];
f << " ";
};
f << endl;
};
f << endl;
f.close();
};
void wyswietl(void){
for (int a=0; a<i; a++){
for (int b=0; b<j; b++){
cout.width(7);
cout << t[a][b];
};
cout << endl;
};
cout << endl;
};
void fi(void){
fstream f;
f.open("Wyniki.txt", ios::app | ios::out);
f << "Oto minimalny element kazdej kolumny pod diagonala dodatkowa - funkcja fi(aij):" << endl;
cout << "kolumna " << 0 << "= " << 0 << endl;
for (int a=1; a<i; a++){
int min=t[9][a];
for (int b=9; b>9-a; b--){
if (t[b][a]<min) min=t[b][a];
};
cout << "kolumna " << a << "= " << min << endl;
f << min << " ";
s=s+min;
};
cout << endl;
f << endl << endl;
f << "Suma wszystkich minmalnych elementow kazdej kolumny pod diagonala dodatkowa - funkcja F(fi(aij)): " << endl;
f << s;
f.close();
};
void liczby(void){
for (int a=0; a<i; a++){
for (int b=0; b<j; b++){
int tmp=t[a][b];
if ((t[a][b]>9) || (t[a][b]<-9)){
tmp=t[a][b]%10;
};
if (tmp==3 || tmp==-3) {
cout << "t[" << a << "][" << b << "]=" << t[a][b] << endl;
};
};
};
cout << endl;
};
//----
#pragma argsused
int main(int argc, char* argv[])
{
fstream f;
f.open("MacierzPrzed.txt", ios::in);
int x=0;
int y=0;
while (!f.eof()){
f >> t[x][y];
x++;
if ((x%10)==0) {
y++;
x=x/10-1;
};
};
f.close();
cout << "To jest macierz nieposortowana:" << endl;
wyswietl();
sortuj();
cout << "To jest macierz posortowana: " << endl;
wyswietl();
cout << "Minimalny element kazdej kolumny pod diagonala dodatkowa" << endl;
fi();
cout << endl;
cout << "Liczby ktore koncza sie cyfra 3 i ich indexy:" << endl;
liczby();
cout << endl;
cout << "Suma wszystkich minmalnych elementow pod diagonala dodatkowa: " << endl;
cout << s << endl;
cout << endl;
system("pause");
return 0;
}
Macierz przed:
-31 -14 -61 32 -1 -25 31 -30 78 62
-36 52 -80 -37 72 25 -37 67 82 -95
-88 38 78 94 85 38 -1 -66 -76 82
90 -54 58 -37 54 57 88 -15 63 -50
-49 -40 53 -19 5 21 40 -64 6 53
-96 91 -99 21 -43 94 -78 -15 91 -67
-63 -26 16 38 -38 85 -66 -54 11 27
-66 -23 87 97 28 95 63 -85 41 64
12 70 -82 38 -58 -10 27 13 2 68
-98 -84 -73 -69 -34 9 73 19 -74 -55
Wyniki:
Oto posortowana macierz:
90 12 -31 -36 -49 -63 -66 -88 -96 -98
91 70 52 38 -23 -26 -40 -54 -55 -84
87 78 58 53 16 -61 -73 -80 -82 -99
97 94 38 38 32 21 -19 -37 -37 -69
85 72 54 28 5 -1 -34 -38 -43 -58
95 94 85 57 38 25 21 9 -10 -25
88 73 63 40 31 27 -1 -37 -66 -78
67 19 13 -15 -15 -30 -54 -64 -66 -85
91 82 78 63 41 11 6 2 -74 -76
82 68 64 62 53 27 -50 -55 -67 -95
Oto minimalny element kazdej kolumny pod diagonala dodatkowa - funkcja fi(aij):
68 64 -15 -15 -30 -54 -64 -82 -99
Suma wszystkich minmalnych elementow kazdej kolumny pod diagonala dodatkowa - funkcja F(fi(aij)):
-227