Zadanie 1
Napisz program przepisujący tablice dwuwymiarową (macierz) do wektora (tablicy jednowymiarowej). Minimalny rozmiar tablicy dwuwymiarowej 3x3. Program ma wypisać tablicę dwuwymiarową przed przepisaniem i jednowymiarową po przepisaniu.
Zadanie 2
Napisz program zamieniający dwie dowolne kolumny, albo dwa dowolne wiersze w tablicy dwuwymiarowej, po wybraniu przez użytkownika z menu jaką operację chce wykonać.
Zadanie 3
Napisz program, który wprowadzi do tablicy dwuwymiarowej oceny końcowe uczniów z kilku przedmiotów, wypisze najlepszego ucznia (czyli tego, który uzyskał największą średnią) i jego średnią, a także przedmiot z którego uczniowie uzyskali najwyższą średnią, wraz z podaniem tej wartości. UWAGA: użyj funkcji i stwórz menu wyboru.
UWAGA do wszystkich programów: programy mają zawierać opisy /komentarze/ - brak komentarzy obniża ilość punktów o jedną trzecią. Jezyk programowania C++
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
1.
#include <iostream>
using namespace std;
const int R2=3; // rozmiar tablicy dwuwymiarowej (R2 x R2)
const int R1=R2*R2; // rozmiar tablicy jednowymiarowej
int main()
{
int tab2w[R2][R2];
int tab1w[R1];
cout << "Prosze o podanie " << R1 << " elementow: ";
// Wczytywanie danych do tablicy dwuwymiarowej
for (int i=0; i<R2; i++)
for (int j=0; j<R2; j++)
cin >> tab2w[i][j];
// Wypisanie tablicy dwuwymiarowej
cout << "\nElementy tablicy dwuwymiarowej:\n";
for (int i=0; i<R2; i++)
{
for (int j=0; j<R2; j++)
cout << tab2w[i][j] << " ";
cout << "\n";
}
// Przepisanie danych z tablicy dwuwymiarowej do tablicy jednowymiarowej
int z=0; // Zmienna odpowiedzialna za przesuwanie sie po tablicy jednowymiarowej
for (int i=0; i<R2; i++)
for (int j=0; j<R2; j++)
tab1w[z++]=tab2w[i][j];
// Wypisywanie tablicy jednowymiarowej
cout << "\nTablica jednowymiarowa: ";
for (int i=0; i<R1; i++) cout << tab1w[i] << " ";
cout << "\n";
return 0;
}
2.
#include <iostream>
using namespace std;
const int R2=3; // rozmiar tablicy dwuwymiarowej (R2 x R2)
int main()
{
int tab[R2][R2];
cout << "Prosze o wprowadzenie " << R2*R2 << " elementow: ";
for (int i=0; i<R2; i++)
for (int j=0; j<R2; j++)
cin >> tab[i][j];
int menu;
do
{
menu=0;
// WYPISWANIE ZAWARTOSCI TABLICY DWUWYMIAROWEJ
cout << "\n\nO to tablica dwuwymiarowa:\n";
for (int i=0; i<R2; i++)
{
for (int j=0; j<R2; j++)
cout << tab[i][j];
cout << "\n";
}
// MENU
cout << "\n1. Zamiana wierszy\n2. Zamiana kolumn\n3. Opusc\n\nWybieram.. ";
while (menu!=1 && menu!=2 && menu!=3) cin >> menu;
switch (menu)
{
case 1:{
// zamiana kolumn
int x1=0,x2=0;
cout << "\nPodaj pierwsza kolumne do zamiany: ";
while (x1<1 || x1>R2) cin >> x1;
cout << "Podaj druga kolumne do zamiany: ";
while (x2<1 || x2>R2 || x1==x2) cin >> x2;
// ZAMIANA ELEMENTOW
for (int i=0; i<R2; i++) swap(tab[x1-1][i],tab[x2-1][i]);
};
break;
case 2:{
// zamiana wierszy
int y1=0,y2=0;
cout << "\nPodaj pierwszy wiersz do zamiany: ";
while (y1<1 || y1>R2) cin >> y1;
cout << "Podaj drugi wiersz do zamiany: ";
while (y2<1 || y2>R2 || y1==y2) cin >> y2;
// ZAMIANA ELEMENTOW
for (int i=0; i<R2; i++) swap(tab[i][y1-1],tab[i][y2-1]);
};
break;
}
} while (menu!=3);
return 0;
}
3.
#include <iostream>
using namespace std;
const int R2=3; // rozmiar tablicy dwuwymiarowej (R2 x R2) (ilosc uczniow oraz przedmiotow)
inline double srednia(int suma,int ile)
{
return double(suma/ile);
}
int main()
{
int tab[R2][R2]={0};
for (int i=0; i<R2; i++)
{
cout << "Podawaj oceny ucznia numer " << i+1 << " z kolejnych przedmiotow (3ech): ";
for (int j=0; j<R2; j++) cin >> tab[i][j];
}
int menu;
while (menu!=3)
{
menu=0;
cout << "\n\n";
cout << "1. Znajdz najlepszego ucznia\n2. Znajdz najlepszy przedmiot\n3. Opusc program!\nWybieram.. ";
while (menu!=1 && menu!=2 && menu!=3) cin >> menu;
switch (menu)
{
case 1:{
int best=0,maks,maks2=0;
for (int i=0; i<R2; i++)
{
maks=0;
for (int j=0; j<R2; j++)
maks+=tab[i][j];
if (maks>maks2)
{
best=i;
maks2=maks;
}
}
cout << "Najlepszym uczniem jest uczen numer " << best+1 << "\n";
};
break;
case 2:{
int best=0,maks,maks2=0;
for (int i=0; i<R2; i++)
{
maks=0;
for (int j=0; j<R2; j++)
maks+=tab[j][i];
if (maks>maks2)
{
best=i;
maks2=maks;
}
}
cout << "Najlepszym przedmiotem jest przedmiot numer " << best+1 << "\n";
};
break;
}
}
return 0;
}
Programy mozna oczywiscie zrobic lepiej - tak samo mozna je lepiej opisac, jednak ew. poprawki zostawiam tobie ;) Programy dzialaja, bo testowalem ;D