Ой-ой-ой, как долго ничего тут не было)))
Сегодня
мы с группой из Салавата начали разбираться с массивами. Для начала я хочу
предложить список наиболее популярных и распространённых действий над массивами
- в виде простых блоков (строго говоря, в этих случаях вполне можно не писать
полноценные классы, а обойтись блоками команд - хотя, разумеется, для проверки
надо будет написать класс целиком)
Задание №1
Заполнить
массив целыми числами, ячейка за ячейкой, начиная с начальной ячейки и до
последней ячейки в массиве.
Задание №2
Заполнить
массив случайными числами, ячейка за ячейкой, начиная с последней ячейки
массива и до первой ячейки в массиве.
Задание №3
Заполнить
массив следующим образом: сначала заполняются ячейки с четными номерами
(начиная с начала массива) - значениями, вводимыми с клавиатуры. Затем
заполняются остальные ячейки - числами, равными сумме значений в соседних
ячейках.
Задание №4
Вывести
на экран в одну строку все значения ячеек массива, начиная с начала.
Задание №5
Вывести
на экран все значения ячеек массива, начиная с последней ячейки.
Задание №6
Вывести
на экран значения ячеек массива следующим образом: сначала первую половину
массива (начиная с начальной ячейки массива), затем вторую половину массива
(начиная с последней ячейки массива).
Задание №7
Заполнить
массив следующим образом: сначала первую половину массива, начиная с первой
ячейки массива, затем вторую половину массива копией первой половины массива.
Затем
вывести всех значения ячеек массива, начиная с первой ячейки массива.
Задание №8
Найти
максимальное значения в массиве.
Задание №9
Найти
минимальное значение в массиве.
Задание №10
Найти,
сколько раз в массиве встречается максимальное значение. Вывести на экран
номера всех ячеек, в которых
встречается максимальное значение.
Задание №11
Найти,
сколько раз в массиве встречается минимальное значение. Вывести на экран номера всех ячеек, в которых встречается минимальное
значение.
Задание №12
Подсчитать
сумму значений массива и среднее арифметическое массива.
Для начала, пожалуй, хватит? )))
Через пару дней я выложу несколько заданий чуть посложнее.
В блог выкладывайте не полные классы, а блоки команд.

Этот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьimport java.util.*;
ОтветитьУдалитьclass Z1
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [3] ;
for(int i = 0; i<3; i++)
a[i]=reader.nextInt();
System.out.println (Arrays.toString (a));}}
import java.util.*;
class Z2
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [10] ;
for(int i = 9; i>=0; i--)
a[i]=(int)(100*Math.random())+1;
System.out.println (Arrays.toString (a));}}
import java.util.*;
ОтветитьУдалитьclass Z3
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [11] ;
for(int i =0; i<11; i=i+2)
a[i]=reader.nextInt();
for(int j =1; j<11; j=j+2)
a[j]=a[j-1]+a[j+1];
System.out.println (Arrays.toString (a));}}
import java.util.*;
class Z4
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [10] ;
for(int i =0; i<10; i++)
{
a[i]=(int)(100*Math.random())+1;
System.out.print (a[i]+" "); }}}
import java.util.*;
ОтветитьУдалитьclass Z5
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {13,2,5,12,29,26};
for(int i=5; i>=0; i--)
System.out.print (a[i]+" ");}}
import java.util.*;
class Z6
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {13,2,5,12,29,26};
for(int i=0; i<3; i++)
System.out.print (a[i]+" ");
for(int i=5; i>2; i--)
System.out.print (a[i]+" ");}}
import java.util.*;
ОтветитьУдалитьclass Z7
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [10] ;
for(int i =0; i<5; i++)
a[i]=(int)(100*Math.random())+1;
int n=-1;
for(int j =5; j<10; j++)
{ n++;
a [j]= a[n]; }
System.out.println (Arrays.toString (a));}}
import java.util.*;
class Z8
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {13,2,5,12,29,26};
int max=a[0];
for(int i=1; i<6; i++)
if (a[i]>max) max=a[i];
System.out.print ("max="+max);}}
import java.util.*;
ОтветитьУдалитьclass Z9
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {13,2,5,12,29,26};
int min=a[0];
for(int i=1; i<6; i++)
if (a[i]<min) min=a[i];
System.out.print ("min="+min);}}
import java.util.*;
class Z10
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {2,13,5,12,29,26};
int max=a[0], n=0;
for(int i=1; i<6; i++)
if (a[i]>max) max=a[i];
for(int i=0; i<6; i++)
{ if (a[i]==max)
{n++;
System.out.println (i);}}
System.out.println (n+" раз");}}
import java.util.*;
ОтветитьУдалитьclass Z11
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {2,13,5,12,29,26};
int min=a[0], n=0;
for(int i=1; i<6; i++)
if (a[i]<min) min=a[i];
for(int i=0; i<6; i++)
{ if (a[i]==min)
{n++;
System.out.println (i);}}
System.out.println (n+" раз");}}
import java.util.*;
class Z12
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = {13,2,5,12,29,26};
int s=0;
double k=0;
for(int i=0; i<6; i++)
s=s+a[i];
k=(double)s/a.length;
System.out.println ("s="+s);
System.out.println ("k="+k);}}
Annie, я посмотрел пока тольк первые две задачи -- все в порядке.
ОтветитьУдалитьНа будущее: если не оговаривается размер массива, то правильнее инициировать его через ввод размера массива с клавиатуры -- по принципу int [] m=new int[reader.nextInt()], а в циклах использовать свойство массива "сам определи свое количество ячеек", то есть m.length.
Но ты решения свои не убирай (я пока смотрю), и пусть они остаются как есть (если не найду ошибок)))) -- всегда хорошо, когда будет несколько вариантов решения.
Annie, если ты проверишь свое решение задачи №3 на массиве четного размера (например, на 10 ячеек, а не 11), то программа (класс) сорвется на последнем этапе и выдаст ошибку.
ОтветитьУдалитьЭто происходит из-за того, что последнюю ячейку (№9) класс попытается заполнить суммой 8-й и 10-й ячеек -- а 10-й то у него и нет!
Это так называемый "граничный случай" и он требует добавки if в нужном месте)) В каком?
Annie, решение 5-й задачи без проблем, молодец
ОтветитьУдалитьШестая тоже в порядке, отлично
ОтветитьУдалитьAnnie, а если в 7-й задаче масив -- нечетного размера (не 10 ячеек, а, скажем, 11)?
ОтветитьУдалитьИмей в виду, что решение твое правильное -- это я дополнительные трудности подкидываю)))
Annie, задача №8 решена совершенно правильно.
ОтветитьУдалитьА в Java еще есть такой вариант: вместо if (a[i]>max) max=a[i] -- можно написать a[i]=Math.max(max,a[i])
Мне это очень нравится
Задача №9 -- смотри комментарий к решению задачи №8 (только с разницей -- Math.min....)
ОтветитьУдалитьЯ именно с этим и столкнулась при решении третьей задачи, до if не додумалась
ОтветитьУдалитьimport java.util.*;
class Z3_1
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [reader.nextInt()] ;
for(int i =0; i<a.length; i=i+2)
a[i]=reader.nextInt();
for(int j =1; j<a.length; j=j+2)
{if (j!=a.length-1)
a[j]=a[j-1]+a[j+1];
else
a[j]=a[j-1];}
System.out.println (Arrays.toString (a));}}
Annie, с задачей №11 -- все отлично
ОтветитьУдалитьС 12-й задачей тоже все правильно.
ОтветитьУдалитьМолодец!
В седьмой, если число нечетное, на последнем месте программа пишет первое число. Сделала, чтобы в середине был ноль
ОтветитьУдалитьimport java.util.*;
class Z7_1
{
static Scanner reader = new Scanner (System.in);
public static void main (String [] args)
{
int [] a = new int [reader.nextInt()] ;
int m=a.length%2;
{ for(int i =0; i<a.length/2; i++)
a[i]=(int)(100*Math.random())+1;}
int n=-1;
if (m==0)
{for(int j =a.length/2; j<a.length; j++)
{ n++;
a [j]= a[n]; }}
else
{for(int j =a.length/2+1; j<a.length; j++)
{ n++;
a [j]= a[n]; }}
System.out.println (Arrays.toString (a));}}
Или что нужно сделать то?
Спасибо большое за проверку и замечания
ОтветитьУдалитьAnnie, в седьмой задаче имелось в виду, что народ задаст вопрос: мол, если нечетное число ячеек -- как в этом случае поступать?
ОтветитьУдалитьУ нас это называется "научить писать комментарии к задачам с не до конца оговоренными условиями". Очень полезная вещь.