Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 26.01.2022
Сообщений: 94

На языке Джава. Выручите пожалуйста! Группа студентов Кембридж приняла участие в Российском марафоне. В результате ор

20.02.2022, 08:29. Показов 1228. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На языке Джава. Выручите пожалуйста!!!

Группа студентов Кембридж приняла участие в Российском марафоне. В результате
организаторы предоставили им следующий список:
Имена: Время:
Alibek 347
Almaz 361
Nursultan 423
Madiyar 351
Madiyar2 383
Dauren 354
Dauren2 356
Batyr 350
Nailya 419
Dayana 451
Yersultan 349
Saltanat 424
Aizhan 439
Aizhan2 444
Arai 440
Dana 430
Итак, ваша задача - найти самого быстрого ученика и отобразить его / ее имя на консоли.
Следовательно, вы должны написать метод, который будет принимать некоторые входные данные (массив? Какого
типа?) и возвращает что-то (индекс?). Это похоже на пузырьковый вид? Есть ли какие-нибудь другие
способы ее решения? Кроме того, вы должны разобраться в них.
А затем вы должны попытаться найти второго самого быстрого ученика и так далее.
Следующая информация может быть полезной:
Как объявить массив для строк и целых чисел:
String[] names = {values goes here};
int[] times = {values goes here};
Некоторый псевдокод для алгоритма сортировки:
for (i между 0 и n-1) {
for (j между i+1 и n-1) {
if (time[i] > time[j]) {
switch time[i] and time[j]
switch names[i] and names[j]
}
}
}
Существуют разные способы решения этой задачи.
И в вашем методе вы должны получить массив и вернуть некоторое значение int.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2022, 08:29
Ответы с готовыми решениями:

Группа студентов Кембридж приняла участие в Российском марафоне. В результате организаторы предоставили им
На языке Джава. Выручите пожалуйста!!! Группа студентов Кембридж приняла участие в Российском марафоне. В результате организаторы...

пожалуйста выручите написать очень нужно завтра защита а я не могу понять! выручите кто может !
Получите целочисленную матрицу A размеров nxm, для которой aij=i+2j

1.1. Дан класс студентов (имя, группа, возраст, сколько лет). В main создать массив n студентов, ввести данные
Дан класс студентов (имя, группа, возраст, сколько лет). В main создать массив n студентов, ввести данные (имя, группа, возраст) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
20 / 13 / 9
Регистрация: 05.12.2014
Сообщений: 124
20.02.2022, 09:31
Я бы предложил вам поступить следующим образом:
1. Использовать два одномерных массива - string и инт. Где элементы одного индекса соответствуют имени и результату одного участника.
2. Отсортировать массивы по результатам участников
3. Доставать результаты по нужному индексу. Например, если отсортировать по возрастанию то лучший показатели будут у String names[0] и равны, соответственно, int results[0]
0
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
20.02.2022, 13:03
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.util.*;
 
class Student implements Comparable <Student> {
    private String name;
    private int time;
 
    private void setName(String s) {
        name = s;
    }
 
    private void setTime(int n) {
        time = n;
    }
 
    public String getName() {
        return name;
    }
 
    public int getTime() {
        return time;
    }
 
    public Student(String s, int n) {
        setName(s);
        setTime(n);
    }
 
    public int compareTo(Student other) {
        return this.getTime() - other.getTime();
    }
}
 
class MyProg {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        ArrayList <Student> school = new ArrayList<>();
 
        // получаем данные
        while (scan.hasNext()) {
            Student man = new Student(scan.next(), scan.nextInt());
            school.add(man);
        }
        scan.close();
 
        Collections.sort(school);       // сортируем
        Student first = school.get(0);  // получаем данные первого
        Student second = school.get(1); // получаем данные второго
 
        // выводим на экран
        System.out.printf("Первый ученик: %s\n", first.getName());
        System.out.printf("Второй ученик: %s\n", second.getName());
    }
}
1. Закидываем наши данные в текстовый файл, скажем, в data.txt
2. Собираем байткод: javac -encofing utf-8 SourceFile.java
3. Запускаем: java MyProg < data.txt
4. получаем:
Первый ученик: Alibek
Второй ученик: Yersultan

Все, что вам осталось сделать, так это изобразить подходящий способ получения данных (чтение консоли/файла). Успехов.

Добавлено через 2 минуты
P.S. если число студентов заранее известно, т.е. мы изначально знаем сколько данных студентов нам поступит, то быстрее будет через обычный массив.

Добавлено через 26 минут
если число студентов известно заранее:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.util.*;
 
class Student implements Comparable <Student> {
    private String name;
    private int time;
 
    private void setName(String s) {
        name = s;
    }
 
    private void setTime(int n) {
        time = n;
    }
 
    public String getName() {
        return name;
    }
 
    public int getTime() {
        return time;
    }
 
    public Student(String s, int n) {
        setName(s);
        setTime(n);
    }
 
    public int compareTo(Student other) {
        return this.getTime() - other.getTime();
    }
}
 
class MyProg {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
 
        // узнаем размер массива
        System.out.print("Число студентов: ");
        int n = scan.nextInt();
 
        if (n < 1)
            return;
        Student[] school = new Student[n];
 
        // получаем данные студентов
        for (int i = 0; i < n; i++)
            school[i] = new Student(scan.next(), scan.nextInt());
        scan.close();
 
        Arrays.sort(school);        // сортируем
        Student first = school[0];  // получаем данные первого
        Student second = school[1]; // получаем данные второго
 
        // выводим на экран
        System.out.printf("Первый ученик: %s\n", first.getName());
        System.out.printf("Второй ученик: %s\n", second.getName());
    }
}
Как не сложно заметить, класс студента не меняется вообще, меняется только контейнер.

Добавлено через 3 минуты
Хотя, по сути и контейнер не меняется, поскольку ArrayList - это обертка над массивом.

ну или идти по пути, предложенному вашим преподавателем:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.util.Scanner;
 
class MyProg {
    private static final int max_students = 100;    // максимальное число студентов
 
    public static void main (String[] args) {
        int[] n = new int[max_students];
        String[] s = new String[max_students];
 
        // получаем данные студентов
        int size;       // реальное число студентов
        Scanner scan = new Scanner(System.in);
        for (size = 0; scan.hasNext() && size < max_students; size++) {
            s[size] = scan.next();
            n[size] = scan.nextInt();
        }
        scan.close();
 
        // сортируем и определяем первые 2 места
        sort(s, n, size);
        String first = s[0];
        String second = s[1];
 
        // выводим на экран
        System.out.printf("Первый ученик: %s\n", first);
        System.out.printf("Второй ученик: %s\n", second);
    }
 
    private static int swap (int a, int b) {    // usage: a = swap(b, b = a);
        return a;
    }
 
    private static String swap (String a, String b) {
        return a;
    }
 
    private static void sort (String[] s, int n[], int size) {
        if (s.length < size || n.length < size)
            return;
        for (int i = size-1; i > 0; i--)
            for (int k = 0; k < i; k++)
                if (n[k] > n[k+1]) {
                    s[k] = swap(s[k+1], s[k+1] = s[k]);
                    n[k] = swap(n[k+1], n[k+1] = n[k]);
                }
    }
}
Хотя как по мне, у этого способа слишком много минусов, начиная от сомнительного расхода памяти и заканчивая посредственной скоростью сортировки.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.02.2022, 15:27
Лучший ответ Сообщение было отмечено Arsegg как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        String s = "Alibek 347\n" +
                "Almaz 361\n" +
                "Nursultan 423\n" +
                "Madiyar 351\n" +
                "Madiyar2 383\n" +
                "Dauren 354\n" +
                "Dauren2 356\n" +
                "Batyr 350\n" +
                "Nailya 419\n" +
                "Dayana 451\n" +
                "Yersultan 349\n" +
                "Saltanat 424\n" +
                "Aizhan 439\n" +
                "Aizhan2 444\n" +
                "Arai 440\n" +
                "Dana 430";
        System.out.println(Arrays.stream(s.split("\n"))
                .min(Comparator.comparingInt(x -> Integer.parseInt(x.split(" ")[1])))
                .get());
// Alibek 347
0
0 / 0 / 0
Регистрация: 26.01.2022
Сообщений: 94
21.02.2022, 06:27  [ТС]
Ухххх ты. Спасибо!!!
0
0 / 0 / 0
Регистрация: 26.01.2022
Сообщений: 94
21.02.2022, 16:04  [ТС]
Ваша задача - рассчитать заработную плату для сотрудников с учетом следующих
условий:
Сотрудникам платят почасово. Минимальная заработная плата равна 8,00
Еженедельно они работают до 40 часов. Если кто-то работает больше, он получает 1,5 х за каждый
час после стандартной рабочей нагрузки.
Но работать более 60 часов не разрешается.
Напишите небольшую программу (создайте класс Employee с необходимыми переменными экземпляра),
которая будет выполнять все вычисления с помощью метода.
Примите следующее в качестве входных данных:

Отработанные Часы С Базовой Оплатой Труда
Сотрудник 1 $7,50 35
Сотрудник 2 $8,20 47
Сотрудник 3 $10,00 73

Можешь помочь с этой задачей?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.02.2022, 16:12
Цитата Сообщение от Ramberdy Посмотреть сообщение
Можешь помочь с этой задачей?
начинай
0
21.02.2022, 16:48

Не по теме:

Папа у Васи силен в математике.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru