Skip to content

Koroplyasova Task1 #24

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions src/main/java/ru/tn/courses/vkoroplyasova/v5/task1/Subtask_1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package ru.tn.courses.vkoroplyasova.v5.task1;
/*
Дана последовательность натуральных чисел a1, a2, ..., an. Создать массив из четных чисел этой последовательности.
Если таких чисел нет, то вывести сообщение об этом факте.
*/

import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;

public class Subtask_1 {
public static void main(String[] args){
ArrayList<Integer> result = new ArrayList<>();
result = generate_even_list(generate_list());
if (result.size() == 0)
System.out.println("Import list does not contain even numbers");
else
System.out.println("Generated even numbers list: " + result);
}

public static ArrayList<Integer> generate_list(){
int count = 0;
int import_size = ThreadLocalRandom.current().nextInt(1, 31);
ArrayList<Integer> import_list = new ArrayList<>();
for(count = 0; count < import_size; count++)
import_list.add(ThreadLocalRandom.current().nextInt(0, 999));
System.out.println("Generated numbers list: " + import_list);
return import_list;
}

public static ArrayList<Integer> generate_even_list(ArrayList<Integer> import_list){
int count = 0;
ArrayList<Integer> even_list = new ArrayList<>();
for(count = 0; count < import_list.size(); count++)
if (import_list.get(count) % 2 == 0)
even_list.add(import_list.get(count));
return even_list;
}
}
48 changes: 48 additions & 0 deletions src/main/java/ru/tn/courses/vkoroplyasova/v5/task1/Subtask_2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package ru.tn.courses.vkoroplyasova.v5.task1;

/*
Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2 см, а каждый пасмурный день опускается вниз на
1 см, В начале наблюдения улитка находится в A см от земли на B-метровом дереве. Имеется 30-элементный массив,
содержащий сведения о том, был ли соответствующий день наблюдения пасмурным или солнечным. Написать программу,
определяющую местоположение улитки к концу 30-го дня наблюдения.
*/

import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;

// Для определенности примем: 1 - солнечный день, 0 - пасмурный
public class Subtask_2 {
public static void main(String[] args) {
System.out.println("Final position: " + define_position(generate_initial_conditions()));
}

public static ArrayList<Integer> generate_initial_conditions(){
ArrayList<Integer> conditions_list = new ArrayList<>();
int B = ThreadLocalRandom.current().nextInt(0, 100);
int A = ThreadLocalRandom.current().nextInt(0, B);
conditions_list.add(A);
conditions_list.add(B);
for(int count = 2; count < 32; count++)
conditions_list.add(ThreadLocalRandom.current().nextInt(0, 2));
System.out.println("Conditions_list: " + conditions_list);
return conditions_list;
}

public static int define_position(ArrayList<Integer> conditions_list){
int position = conditions_list.get(0);
int A = conditions_list.get(0);
int B = conditions_list.get(1);
for(int count = 2;count < conditions_list.size(); count++)
if (conditions_list.get(count) == 0)
if (position - 1 < 0)
position = 0;
else
position -= 1;
else if (conditions_list.get(count) == 1)
if (position + 2 > B)
position = B;
else
position += 2;
return position;
}
}
42 changes: 42 additions & 0 deletions src/main/java/ru/tn/courses/vkoroplyasova/v5/task1/Subtask_3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package ru.tn.courses.vkoroplyasova.v5.task1;

//Сортировка Шелла. Дан массив n действительных чисел. Требуется упорядочить его по возрастанию. Делается это следующим
// образом: сравниваются два соседних элемента ai и аi+1. Если ai ≤ ai+1, то продвигаются на один элемент вперед.
// Если ai > ai+1, то производится перестановка и сдвигаются на один элемент назад. Составить алгоритм этой сортировки.

import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;

public class Subtask_3 {
public static void main(String[] args){
shell_sort(generate_list());
}

public static ArrayList<Double> generate_list(){
int n = ThreadLocalRandom.current().nextInt(2, 10);
ArrayList<Double> import_list = new ArrayList<>();
for(int count = 0; count < n; count++)
import_list.add(ThreadLocalRandom.current().nextDouble(-999, 999));
System.out.println("Generated list: " + import_list);
return import_list;
}

public static ArrayList<Double> shell_sort(ArrayList<Double> import_list){
ArrayList<Double> sorted_list = import_list;
int i = 0;
double temp = 0;
while(i < sorted_list.size() - 1){
if(sorted_list.get(i) <= sorted_list.get(i + 1))
i++;
else{
temp = sorted_list.get(i);
sorted_list.set(i, sorted_list.get(i + 1));
sorted_list.set(i + 1, temp);
if(i != 0)
i--;
}
}
System.out.println("Sorted list: " + sorted_list);
return sorted_list;
}
}