Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прошу помочь! Очень легкое задание!! Составить не сложную программку! 
:(
    Опции темы
sismaxon
  Дата 15.3.2015, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 15.3.2015

Репутация: нет
Всего: нет



Написать программку:

Дан двумерный целый массив. Упорядочить столбцы матрицы за убыванием средних арифметических значений элементов в столбцах. Сортировка методом выбора. Найти произведение положительных элементов в каждой строке матрицы.

Это задание первого курса. Для вас очень лёгкое, прошу помочь!
PM MAIL   Вверх
Pawl
Дата 15.3.2015, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Код

import static java.util.Comparator.comparing;
import static java.util.stream.IntStream.of;
import static java.util.Arrays.sort;
import static java.util.Arrays.deepToString;
import static java.util.Arrays.stream;

public class Main {
    public static final int[][] M = {{1, 2, 3}, {7, -8, 9}, {4, 5, 6}};

    public static void main(String[] args) {
        // sorting by averages, reverse order
        sort(M, comparing((int[] a) -> new Double(of(a).average().getAsDouble())).reversed());
        System.out.println(deepToString(M));
        // multiplication of positive values in rows
        stream(M).forEach(a -> System.out.println(stream(a).filter(v -> v > 0).sum()));
    }
}


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
sismaxon
Дата 15.3.2015, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 15.3.2015

Репутация: нет
Всего: нет



Цитата(Pawl @ 15.3.2015,  22:42)
Код

import static java.util.Comparator.comparing;
import static java.util.stream.IntStream.of;
import static java.util.Arrays.sort;
import static java.util.Arrays.deepToString;
import static java.util.Arrays.stream;

public class Main {
    public static final int[][] M = {{1, 2, 3}, {7, -8, 9}, {4, 5, 6}};

    public static void main(String[] args) {
        // sorting by averages, reverse order
        sort(M, comparing((int[] a) -> new Double(of(a).average().getAsDouble())).reversed());
        System.out.println(deepToString(M));
        // multiplication of positive values in rows
        stream(M).forEach(a -> System.out.println(stream(a).filter(v -> v > 0).sum()));
    }
}


Этот ответ добавлен с нового Винграда - http://vingrad.com

А можно код по проще? вот я скину пример кода
Код

import java.util.*;
class Lab1{
public static void main(String[] args){
Scanner scan = new Scanner (System.in);
System.out.println("Кількість рядків:");
int n=scan.nextInt();
System.out.println("Кількість стовпців:");
int m=scan.nextInt();
int a[][]=new int[n][m];

int count[]=new int[a.length];
int sum[]=new int[m];
int c[]=new int[m];

// Заповнення елементів матриці за допомогою генератору //випадкових чисел
for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++)
a[i][j]=(int)(Math.random()*20-10);
System.out.println("Вихідний двовимірний масив ");
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++)
System.out.printf("%8d",a[i][j]);
System.out.println();}

// Знаходження кількості додатних елементів за рядками
for(int i=0;i<a.length;i++){
count[i]=0;
for(int j=0;j<a[i].length;j++)
if (a[i][j]>0) count[i]++;}

// Сортування масиву методом вибору
int nom, min;
  for( int i=0; i < a.length-1; i++) {    
    nom=i; min= count[i];
    for(int j=i+1; j < a.length; j++)    
      if (  count[j] > min ) {
        nom=j; min= count[j];            
      }
    count[nom] = count[i]; count[i] = min;
    c=a[nom]; a[nom]=a[i]; a[i]=c;
}
  // Знаходження суми парних елементів у кожному стовпці
 for(int i=0;i<m;i++){
     sum[i]=0;
for(int j=0;j<n;j++) 
if(a[j][i]%2==0) sum[i]+=a[j][i];
}
// Виведення упорядкованого масиву
System.out.printf("%s%40s%n","Відсортований двовимірний масив","Кількість дод. елементів"); 
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.printf("%8d",a[i][j]);}
System.out.printf("%16d%n",count[i]);}
System.out.println("Сума парних елементів за стовпцями ");
for(int j=0;j<m;j++)
System.out.printf("%8d",sum[j]);
}}



Мне что бы показать учителю, потому что то мы еще не изучали
PM MAIL   Вверх
Pawl
Дата 16.3.2015, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Да, я невнимательно прочитал ТЗ - спешил поспать:) Я написал сортировку по строкам. Вот вариант сортировки вставкой по столбцам с использованием библиотек от google:
Код

import org.apache.commons.lang3.mutable.MutableInt;
import org.apache.commons.math3.linear.RealMatrix;
import javax.xml.ws.Holder;

import java.util.Arrays;

import static org.apache.commons.math3.linear.MatrixUtils.createRealMatrix;
import static java.util.stream.DoubleStream.of;
import static java.util.stream.IntStream.range;

public class Main {
    public static final Integer[][] M = {{1, 2, 3, 4}, {9, -10, 11, 12}, {5, 6, 7, 8}};

    public static <T extends Number> RealMatrix toRealMatr(T [][]matr) {
        double[][] m = new double[matr.length][matr[0].length];
        range(0, matr.length).forEach(i -> range(0, matr[0].length).forEach(j ->
        m[i][j] = matr[i][j].doubleValue()));
        return createRealMatrix(m);
    }

    public static void main(String[] args) {
        MutableInt min = new MutableInt();
        Holder<double[]> temp = new Holder<>();
        RealMatrix rm = toRealMatr(M);
        range(0, rm.getColumnDimension() - 1).forEach(i -> {
            min.setValue(i);
            range(i + 1, rm.getColumnDimension()).forEach(j -> {
                if (of(rm.getColumn(j)).average().getAsDouble()
                        > of(rm.getColumn(min.getValue())).average().getAsDouble()) {
                    temp.value = rm.getColumn(min.getValue());
                    rm.setColumn(min.getValue(), rm.getColumn(j));
                    rm.setColumn(j, temp.value);
                }
            });
        });
        range(0, rm.getRowDimension())
                .forEach(i -> System.out.println(Arrays.toString(rm.getRow(i))));
    }
}

Цитата

   А можно код по проще? вот я скину пример кода
   

Что значит по проще? Мне, например, ваш пример в 60 строк даже читать лень:)
Цитата

   Мне что бы показать учителю, потому что то мы еще не изучали
   

Неважно! Разберитесь, изучите, препод офигеет от счастья, что вы учитесь самостоятельно!

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Pawl
Дата 16.3.2015, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Цитата

   Вот вариант сортировки вставкой
   

то есть, блин, не вставкой, выбором! Не проснулся ещё!:)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0700 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.