You are on page 1of 7

import java.io.

BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Varianta10 {

static void menu() {


System.out.println("I========================Alegeti o
varianta===========================I");
System.out.println("I 1 - Inregistreaza un rand nou
I");
System.out.println("I 2 – Exclude din planul tablei n rand/coloana
I");
System.out.println("I 3 – Minimul absolut al inalțimilor tablei
I");
System.out.println("I 4 – Înalțimea medie
I");
System.out.println("I 5 – Afisarea sortată a coloanelor tablei
I");
System.out.println("I 6 – Fișierul text OrdSir.txt
I");
System.out.println("I 7 – Aria maximală a unui patrat de pe tablă
I");
System.out.println("I 8 – Problemă rezolvată
I");
System.out.println("I 9 - Exit
I");

System.out.println("I==============================================================
=======I");

}
//=================================================================================
======================================
static void fileRead(Scanner filescan, int[][] myArray) throws IOException {

while(filescan.hasNext()) {
for (int i=0; i<myArray.length; i++) {
for (int j=0; j<myArray[i].length; j++) {
if(filescan.hasNextInt()) {
myArray[i][j] = filescan.nextInt();
}
}
}
}
filescan.close();
}
//=================================================================================
======================================
static void seeMatrix(int[][] myArray){
for (int i=0; i<myArray.length; i++) {
for (int j=0; j<myArray[i].length; j++) {
System.out.print(myArray[i][j]+" ");
}
System.out.println();
}
}
//=================================================================================
======================================
static void insertRow(int[][] myArray, int n, int m) throws IOException {
Scanner insert = new Scanner(System.in);
FileWriter fw = new FileWriter("Vopsea.txt");
String where=insert.next();
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(where.equalsIgnoreCase("Sud")) {
int[][] myArray2= new int[n+1][m];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
myArray2[i][j]=myArray[i][j];
}
}

for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(i==n-1) {
myArray2[i+1][j]=insert.nextInt();
}
}
}

fw.write((n+1)+" "+m+"\n");
for(int i=0;i<myArray2.length;i++) {
for(int j=0;j<myArray2[i].length;j++) {
fw.write(myArray2[i][j]+" ");
}
fw.write("\n");
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(where.equalsIgnoreCase("Est")) {
int[][] myArray2= new int[n][m+1];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
myArray2[i][j]=myArray[i][j];
}
}

for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(j==m-1) {
myArray2[i][j+1]=insert.nextInt();
}
}
}

fw.write(n+" "+(m+1)+"\n");
for(int i=0;i<myArray2.length;i++) {
for(int j=0;j<myArray2[i].length;j++) {
fw.write(myArray2[i][j]+" ");
}
fw.write("\n");
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(where.equalsIgnoreCase("Nord")) {
int[][] myArray2= new int[n+1][m];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
myArray2[i+1][j]=myArray[i][j];
}
}

for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(i==0) {
myArray2[i][j]=insert.nextInt();
}
}
}

fw.write((n+1)+" "+m+"\n");
for(int i=0;i<myArray2.length;i++) {
for(int j=0;j<myArray2[i].length;j++) {
fw.write(myArray2[i][j]+" ");
}
fw.write("\n");
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(where.equalsIgnoreCase("Vest")) {
int[][] myArray2= new int[n][m+1];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
myArray2[i][j+1]=myArray[i][j];
}
}

for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(j==0) {
myArray2[i][j]=insert.nextInt();
}
}
}

fw.write(n+" "+(m+1)+"\n");
for(int i=0;i<myArray2.length;i++) {
for(int j=0;j<myArray2[i].length;j++) {
fw.write(myArray2[i][j]+" ");
}
fw.write("\n");
}
}

fw.close();
insert.close();
}
//=================================================================================
======================================
static void delArr(int[][] myArray, int n, int m) throws IOException {
Scanner cin = new Scanner(System.in);
FileWriter fw = new FileWriter("Vopsea.txt");
System.out.println("Ce doriti sa stergeti?");
String what=cin.next();
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

if(what.equalsIgnoreCase("Rand")) {
int[][] delArr=new int[myArray.length-1][myArray[0].length];
int p=0;
int del=cin.nextInt();
for(int i=0;i<myArray.length;i++) {
if(i!=del) {
for(int j=0;j<myArray[0].length;j++) {
delArr[p][j]=myArray[i][j];
}
p++;
}
}

fw.write((n-1)+" "+m+"\n");
for(int i=0;i<delArr.length;i++) {
for(int j=0;j<delArr[i].length;j++) {
fw.write(delArr[i][j]+" ");
}
fw.write("\n");
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

if(what.equalsIgnoreCase("Coloana")) {
int[][] delArr=new int[myArray.length][myArray[0].length-1];

int del=cin.nextInt();
for(int i=0;i<myArray.length;i++) {
int q=0;
for(int j=0;j<myArray[0].length;j++) {
if(j!=del) {
delArr[i][q]=myArray[i][j];
q++;
}
}
}
fw.write(n+" "+(m-1)+"\n");
for(int i=0;i<delArr.length;i++) {
for(int j=0;j<delArr[i].length;j++) {
fw.write(delArr[i][j]+" ");
}
fw.write("\n");
}
}
cin.close();
fw.close();
}
//=================================================================================
======================================
static void minAbs(int[][] myArray) {
int min=9999999, x=0, y=0;
for (int i=0; i<myArray.length; i++) {
for (int j=0; j<myArray[i].length; j++) {
if(min>=myArray[i][j]) {
min=myArray[i][j];
x=i;
y=j;
}
}
}
System.out.println("Minimul:"+min+" cu coordoata:"+x+" "+y);
}
//=================================================================================
======================================
static void avgPer(int[][] myArray, int n, int m) {
int avg=0, count=0;
for (int i=0; i<myArray.length; i++) {
for (int j=0; j<myArray[i].length; j++) {
if(i==0) {
avg=avg+myArray[i][j];count++;}
if(j==0 && i>0 && i<n-1) {
avg=avg+myArray[i][j];count++;}
if(j+1==m && i>0 && i<n-1) {
avg=avg+myArray[i][j];count++;}
if(i==n-1) {
avg=avg+myArray[i][j];count++;}
}
}
System.out.println("Avg:"+avg/count);
}
//=================================================================================
======================================
static void maxVec(int[][] myArray, int n, int m) {
int[] elMax=new int[m];
for (int i=0; i<m; i++) {
int max=0;
if(n>m) {
int count=(n-m);
for (int j=0; j<myArray[i].length+count; j++) {
if(myArray[j][i]>max) {
max=myArray[j][i];
}
}
}
if(n==m) {
for (int j=0; j<myArray[i].length; j++) {
if(myArray[j][i]>max) {
max=myArray[j][i];
}
}
}
if(n<m) {
int count=(m-n);
for (int j=0; j<m-count; j++) {
if(myArray[j][i]>max) {
max=myArray[j][i];
}
}
}
elMax[i]=max;
}
mergeSort(elMax, elMax.length);
for(int i=0;i<elMax.length;i++) {
System.out.print(elMax[i]+" ");
}
System.out.println("\n===================================");
for(int k=0;k<elMax.length;k++) {
for (int i=0; i<myArray.length; i++) {
for (int j=0; j<myArray[i].length; j++) {
if(elMax[k]==myArray[i][j]) {
for (int w=0; w<myArray[w].length; w++) {
System.out.print(myArray[i][w]+" ");
}
System.out.println();

}
}
}
}
}

public static void swap(int c1, int c2)


{
int temp = c1;
c1 = c2;
c2 = temp;
}

public static void merge(


int[] a, int[] l, int[] r, int left, int right) {

int i=0, j=0, k=0;


while(i<left && j<right) {
if(l[i]>=r[j]) {
a[k++]=l[i++];
}
else {
a[k++]=r[j++];
}
}
while(i<left) {
a[k++]=l[i++];

}
while(j<right) {
a[k++]=r[j++];
}
}

public static void mergeSort(int[] a, int n) {


if(n<2) {
return;
}
int mid =n/2;
int[] l = new int[mid];
int[] r = new int[n-mid];

for(int i=0;i<mid;i++) {
l[i]=a[i];
}
for(int i=mid;i<n;i++) {
r[i-mid]=a[i];
}
mergeSort(l, mid);
mergeSort(r, n-mid);

merge(a, l, r, mid, n-mid);


}

/*static void writeOrdSir(int[][] myArray) throws IOException {


FileWriter fw = new FileWriter("OrdSir.txt");
for (int i=0; i<myArray.length; i++) {
for (int j=0; j<myArray[i].length; j++) {
if()
}
System.out.println();
}
fw.close();
}*/
//=================================================================================
======================================
public static void main(String [] args) throws IOException {
Scanner input=new Scanner(System.in);
Scanner filescan = new Scanner (new BufferedReader(new
FileReader("Vopsea.txt")));
int n = filescan.nextInt();
int m = filescan.nextInt();
int [][] A = new int[n][m];
fileRead(filescan, A);
seeMatrix(A);
menu();
int in=input.nextInt();
switch(in) {
case 1:{insertRow(A, n, m);break;}
case 2:{delArr(A, n, m);break;}
case 3:{minAbs(A);break;}
case 4:{avgPer(A, n, m);break;}
case 5:{maxVec(A, n, m);break;}
case 6:{writeOrdSir(A);break;}
}

System.out.println("\n==========================================");

filescan.close();
input.close();
}

You might also like