Авторские Материалы о событиях в Израиле на Ближнем Востоке и в мире

IsraMir.com - Израильская журналистика

Default color brown color green color red color blue color
Вы сейчас тут: Новости arrow Техотдел arrow Свет ученья arrow Экзамен-2006: сегодня и на будущее (часть 2-я)
Skip to content
Экзамен-2006: сегодня и на будущее (часть 2-я) Версия для печати Отправить на e-mail
Sunday, 21 May 2006 | Зэев Фрайман, д-р Евгений Канель для раздела Ученье – свет
Экзамен-2006:сегодняинабудущее(часть2-я)isramir.comВ этом материале – вторая часть базисного варианта, который у нас определяют как «две учебных единицы (вторая и третья) из пяти возможных». Часть задач требует умения разобраться с блоками программ; в этом году, естественно, они по-прежнему были на PASCALе, но мы, с перспективой на будущее, приводим их в Java-варианте.
 
 
Задача №6
Школа организовала распродажу в пользу стариков. На распродаже продавались билеты трех видов:
  • Обычный билет участника распродажи
  • Билет с правом посещения концерта
  • Билет с правом посещения бесплатного буфета
 
 
 
 
 
Тот, кто приобрел более 10 обычных билетов участника, получал дополнительно еще один такой же – бесплатно.
Напиши класс, которые для каждого участника распродажи будет принимать в качестве ввода количество билетов каждого вида, приобретенных данным участником.
Программа подсчитает и напечатает в качестве вывода число участников распродажи, число билетов каждого вида, число обычных билетов, выданных бесплатно.
Ввод данных прекратится при вводе -1 (минус один) для числа обычных билетов, приобретенных очередным участником.
Нет необходимости проверять правильность ввода (соответствие вводимых значений условию задачи).
 
class bagr899222_2006_1{
            public static void main (String args[]){
                        int t,i;
                        int count[]={0,0,0,0,0};
                        t=IO.readInt();
                        while (t != -1){
                                   count[0]=count[0]+t;
                                   if (t>10) count[1]++;
                                   t=IO.readInt();
                                   count[2]=count[2]+t;
                                   t=IO.readInt();
                                   count[3]=count[3]+t;
                                   count[4]++;
                                    t=IO.readInt();
                        }
                        for (i=0;i<4;i++) IO.writeln(count[i]+" ");
            }
}
 
 
Задача №7
1.      Напиши метод, который будет принимает двузначное положительное целое число Х, составленное из разных цифр и возвращает сумму однозначных чисел, заключенных между цифрами этого числа Х (включая сами цифры, из которых составлено число Х).
Например, для числа 52 и для числа 25 будет возвращено значение 14          (2+3+4+5=14).
 
static int sum (int x){
                        int t=0;
                        int a=x/10;
                        int b=x%10;
                        if (a>b){
                                   for (int i=b;i<=a;i++) {t=t+i;};
                        }
                        else {
                                   for (int i=a;i<=b;i++) {t=t+i;};
                        }
                        return t;
            }
 
2.      Дан массив М размером 23 ячейки, каждая из которых содержит двузначное положительное число.
Напиши программный блок, который сосчитает, сколько в М содержится значений, для которых выполняется следующее условие: сумма однозначных чисел, заключенных между цифрами числа (включая сами цифры, из которых составлено число), больше 15.
Используй метод, написанный в предыдущем разделе задачи.
Например, для массива, содержащего 81, 24, 12, 58, 32 будет напечатано в качесвте конечного результата число 2.
 
int m[]=new int[23];
                        int i, count=0;
                        for (i=0;i<23;i++){
                                   m[i]=(int)(90*Math.random()+10);
                                   int x=m[i];
                                   if (sum(x)>15) count++;
                        }
 
Задача №8
Дан блок программы:
 
int count = 0;
for (int i=0; i
if ((a[i] != (b[i*2-1]+b[i*2])) a[i]=-1;
else count++;
}
IO.writeln( n-count );
 
В блоке использованы два массива – а и b.
 
  1. Построй таблицу ручной прокрутки для n=5 и следующих значений, хранящихся в массивах: 2, 17, 3, 6, 20 – в массиве а; 0, 2, 4, 4, 5, 2, 8, 8, 10, 10 – в массиве b.
  2. Приведи пример заполнения числами массива а размером 5 ячеек (значения для массива b остаются такими же, как в предыдущем пункте задачи), для которого указанным в задаче блоком будет напечатано значение 0 (ноль).
 
Задача №9
Дан двумерный массив, содержащий только значения 1 и 0.
Назовем «цепочкой» группу смежных ячеек в строке или столбце, содержащую значения 1.
Длиной «цепочки» считается число ячеек в ней.
Если в строке или столбце массива есть только одна ячейка, содержащая значение 1, длина «цепочки» считает равной 1; если в строке или столбце нет ни одной ячейки, содержащей 1, длина «цепочки» считается равной 0.
В каждой строке и столбце может быть только одна единственная «цепочка».
Назовем ячейку массива «окруженной», если и в строке, и в столбце, к которым она относится, имеются «цепочки» одинаковой длины.
  1. Напиши метод, который принимает массив А размером 10х10, соответствующий только что перечисленным условиям, два индекса, указывающих на ячейку массива (номер строки и номер столбца). Метод возвращает 1, если указанная ячейка массива А является «окруженной», иначе – возвращает 0.
 
Решение
 
static int surround(int[][] m, int row, int col){
                        int countrow=0, countcol=0;
                        for (int j=0;j
                        for (int i=0;i
                        if (countrow==countcol) return 1;
                        else return 0;
            }
 
  1. Напиши программный код, который подсчитает и напечатает количество «окруженных» ячеек в массиве А размером 10х10, соответствующем условиям задачи. Используй метод из предыдущего пункта.
 
Решение
                        int i,j;
                        int a[][]=new int[n][n];
                        for (i=0;i
                                   for (j=0;j
                                               a[i][j]=(int)(2*Math.random());
                                   }
                        int count=0;
                        for (i=0;i
                                   for (j=0;j
                                               if (surround(a,i,j)==1) count++;
                                   }
                        IO.writeln("count="+count);    
 
Нет необходимости проверять правильность ввода (соответствие вводимых значений условию задачи).
 
 
 
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:


Автотранслитерация: выключена

Защитный код

Powered by jComments
Vaillant- настенные газовые котлы