Перейти к содержимому

Фото
- - - - -

Võrgurakendused I / Programmeerimise põhikursus


  • Вы не можете создать новую тему
  • Please log in to reply
1046 ответов в этой теме

#451 tmp

tmp
  • Пользователь
  • 126 сообщений

Отправлено 14 января 2010 - 18:34

вариант 3

2 - вывести последовательность первых 1000 простых чисел
3 - баббл сорт, только с ревёрсом
4 - нужно нарисовать график синуса и косинуса на промежутке 0 < x < 1 и 0 < y < 1 (вроде)
5 - деревья.. в каждом узле есть строка с данными: нужно модифицировать верхушку каждого узла, чтобы в ней содержались строки её подузлов (concat), так до самой верхушки (начало с листа, т.е. с узла не имеющего подузлов. Если у узла нет подузлов, тогда строка в этом узле не модифицируется. Само задание - сделать класс узла, сделать функцию "sum" для модификации строки данных, которая имеется в каждом узле. Суть - строка в верхушке дерева должна иметь все строчные значения данных её подузлов. Не оговаривается что делать, если у узла есть только один подузел (вместо обычных 2-х).

Сообщение изменено: tmp (14 января 2010 - 18:40 )

  • 0

#452 nagiev

nagiev
  • Новобранец
  • 2 сообщений

Отправлено 14 января 2010 - 20:52

токачто с экзамена, решил сразу сесть на свежую голову и проперить на компе...
вариант 4. был таков:

1. что выводит прога
2. написать прогу которая проверяет являетса ли предложение (его подаем через args) палиндром тоесть если прочитать слева направо или справа на лево то вывести да. если нет, то нет, и ещё пробелы не учитывать например "i prefer pi" являетса таким предложением! без подсказок какие функции использовать.. мне понадобилось charAt i while цикл http://www.leepoint....Palindrome.html
3. тут надо было написать для функции int [] selection (int [] x) selction сортировку http://math.hws.edu/...html#arrays.4.4
4. зделать класс, тоесть не всю прогу,а часть которая нарисует шахматную доску 10х10, причём каждый квадрат размером 10 пикселей и ещё к томуже в каждый чёрный квадрат опять шахматную доску 10х10, где каждый квадратик размером 1 пиксель.
5. тут надобыло создать класс, связан и листом... для меня тёмное место, неуспел посмотреть перед экзасеном эту тему к сожалению.


А может кто-то свое решение выложить?
  • 0

#453 boiler

boiler
  • Постоялец
  • 1 765 сообщений
  • Откуда:EE

Отправлено 14 января 2010 - 21:18

А они в 13 так же жестко смотрели, как в 10??? Просто в 10 у нас, вообще мимо почти было списывать
  • 0

#454 Dark Kyro

Dark Kyro
  • Пользователь
  • 229 сообщений

Отправлено 14 января 2010 - 21:37

А как ты тут спишешь интересно?
У каждого будут свои вариации, если скатано то сразу бросается в глаза идентичность написанного у нескольких человек.
Особенно если у всех те же ошибки.

Сообщение изменено: Dark Kyro (14 января 2010 - 21:38 )

  • 0

#455 boiler

boiler
  • Постоялец
  • 1 765 сообщений
  • Откуда:EE

Отправлено 14 января 2010 - 21:41

Dark Kyro, я про шахматную доску, она была на форуме, сортировку он показывал на лекции, можмно всё это на листок и на экзамене перенести к себе
  • 0

#456 GGr

GGr
  • Пользователь
  • 68 сообщений
  • Откуда:Nar/Tln

Отправлено 15 января 2010 - 00:04

списать в принципе реально было в 13, но возможностей немного было) черновики свои вообще не проверяли)
приколола девушка, которая через 5 минут после начала экзамена, вышла и сказала что в следующий раз придёт)))
  • 0

#457 romgos

romgos
  • Пользователь
  • 60 сообщений
  • Откуда:TTU

Отправлено 15 января 2010 - 02:46

вопрос...если 15.01 не идти сдавать проект, когда можно будет в следуюший раз? на eelnadal можно будет? кто-нибудь в курсе?
а то блин не готов я сегодня идти... знаюшие - help!
  • 0

#458 seigen

seigen
  • Пользователь
  • 208 сообщений

Отправлено 15 января 2010 - 15:49

А может кто-то свое решение выложить?

+1
  • 0

#459 V1cky

V1cky
  • Постоялец
  • 1 027 сообщений

Отправлено 15 января 2010 - 15:51

и интересны другие задания второго варианта, помимо синусов и косинусов ))
  • 0

#460 skyz

skyz
  • Пользователь
  • 151 сообщений

Отправлено 19 января 2010 - 20:41

когда же результаты с 14го января? если на этой неделе не поставят, тогда прошлогодняя декларация згарает (или сгарает - незнаю как по русский правильно:D) ведь :/

Сообщение изменено: skyz (19 января 2010 - 20:51 )

  • 0
Описание предметов, какие домашки сделать надо, что из себя экзамы представляют и главное все готовые домашки - предметы с магистратуры IAPM и IABM ТТУ.
Адрес ttu3k.blogspot.com

#461 boiler

boiler
  • Постоялец
  • 1 765 сообщений
  • Откуда:EE

Отправлено 19 января 2010 - 20:47

сказал в течении недели проверит
  • 0

#462 nikolka

nikolka

    ehh

  • Пользователь
  • 347 сообщений

Отправлено 19 января 2010 - 22:33

згарает (или сгарает - незнаю как по русский правильно:D)

Приставки з не бывает :lol: :lol: :lol:
  • 0
Куда луна с небес ушла...

#463 V1cky

V1cky
  • Постоялец
  • 1 027 сообщений

Отправлено 20 января 2010 - 14:00

как шахматную доску(10 на 10) нарисовать - понимаю, но не пойму как сделать чтоб в каждом черном квадратике была еще доска 10 на 10 )) подскажите
  • 0

#464 Dark Kyro

Dark Kyro
  • Пользователь
  • 229 сообщений

Отправлено 20 января 2010 - 16:31

V1cky

Могу конечно только идею подкинуть, сам еще не написал, но что мешает функции вызвать себя же еще раз при прорисовке черных квадратов (a.k.a. рекурсия)? Параметрами например передавать 2 координаты верхнего левого угла данной ячейки и какой-нибудь идентификатор, чтобы было ясно что рисовать терь квадраты надо в 10 раз меньше, и что уже теперь при прорисовке черных квадратов функции себя повторно вызывать не надо, вместо этого рисуя нормальные черные квадраты.

1. что выводит прога - что это значит? В задании какая-то функция и написать что она выдаст, или что?

И если вдруг кому понадобится:
простые числа
public static void PrimeNumbers(int n) {
        //Sieve of Eratosthenes
        int[] array = new int[n+1];
        int i, j;
        Arrays.fill(array, 1);
        for (i=1; i*i<=n; i++){
                for (j=i*i; j<=n; j+=i){
                    if(array[i] == 1){
                        array[j] = 0;
                    }
                }
        }
        for (i=1; i<n; i++){
            if(array[i] == 1){
                System.out.println(i);
            }
        }
    }

Сообщение изменено: Dark Kyro (20 января 2010 - 19:04 )

  • 0

#465 V1cky

V1cky
  • Постоялец
  • 1 027 сообщений

Отправлено 20 января 2010 - 19:16

спасибо,разобралась =) авось те же задания дадут
  • 0

#466 Dark Kyro

Dark Kyro
  • Пользователь
  • 229 сообщений

Отправлено 20 января 2010 - 20:59

Доска (полный вариант для проверки):
public class UltraChessboard extends JFrame {
    private int l=0;
    @Override
    public void paint (Graphics g) {        
        DrawBoard(g,0,30,50);
    }
    public void DrawBoard(Graphics g, int l, int x, int y) {
        int i,j,q;
        if (l == 0){
             q = 10;
        } else {
             q = 1;
        }
        for (i=0; i<10; i++){
            for (j=0; j<10; j++){
                if ((i+j)%2 == 0){
                    g.setColor(Color.ORANGE);
                    g.fillRect(x+i*q, y+j*q, q, q);
                } else {
                    if (l == 0){
                        DrawBoard(g, 1, 30+i*q, 50+j*q);
                    } else {
                        g.setColor(Color.black); 
                        g.fillRect(x+i*q, y+j*q, q, q);
                    }
                }                    
            }
        }
    }

    //constructor
    public UltraChessboard() {
        setTitle("J-Paint");
        setBackground(Color.WHITE);
        setSize(600,600);
        setVisible(true);
    }
}

UltraChessboard UCB = new UltraChessboard();

В варианте для экзамена нужно убрать extends JFrame, и убрать конструктор public UltraChessboard().

Графики синуса и косинуса:
public class Graphs extends JFrame {
    @Override
    public void paint (Graphics g) {
        DrawSinCos(g, 200);
    }
    public void DrawSinCos(Graphics g, int c) {
        double i;
        int j = 0,k = 0;
        for (i=0;i<Math.PI*2;i+=0.01){
            j = (int) (100 * Math.sin(i));
            k = (int) (100 * Math.cos(i));
            g.setColor(Color.red);
            g.drawOval((int) (i * 100),c-j, 1, 1);
            g.setColor(Color.MAGENTA);
            g.drawOval((int) (i * 100),c-k, 1, 1);
        }
    }

    //constructor
    public Graphs(){
        setTitle("Graphs");
        setBackground(Color.WHITE);
        setSize(600,600);
        setVisible(true);
    }
}
Не совсем понял что значит от нуля до 1 рисовать - в радианах это, или сами значения.
Тут отрисовка периода 2PI.

Сообщение изменено: Dark Kyro (20 января 2010 - 21:59 )

  • 0

#467 xpaMoBHik

xpaMoBHik
  • Пользователь
  • 52 сообщений
  • Откуда:КОПЛИ

Отправлено 21 января 2010 - 14:17

Вариант 1
1) Что делает прога
2) Посчитать количество слов начинающихся с "а".
3) bubblesort
4) Спираль квадратная или обычная. (может кто-нибудь код скинуть обычной и квадратной, а то я фиговый код в экзамене написал, просто интересен нормальный вариант, буду пересдавать).
5) Даже не смотрел, плохо знаю эстонский и деревья.
  • 0

#468 kerf

kerf
  • Пользователь
  • 157 сообщений
  • Откуда:Таллинн

Отправлено 21 января 2010 - 14:45

4) Спираль квадратная... может кто-нибудь код скинуть...


я сделал так, парвда чуть косякнул в письменном варианте, но ниче

		int prex = 100;//previous x//поначалу это центральная точка спирали, потом перезаписываются по мере роста спиральки
		int prey = 100;
		
		int samm = 10;//шаг, насколько спираль растет
		int cursamm=0;//текущий шаг, на сколько отступить
		
		int xdir=0, ydir=0;//по дефолту
		int n=0;//направление линии, тип в какую сторону чертить.. 0 - вниз, 1 - вправо, 2 - вверх, 3 - влево
		
		int i=0;
		while(i<10){//рисуем всего 10 ребер
			switch(n){//задаем направления, увеличивем cursamm на 1 шаг каждые 2 хода
			case 0: 
				xdir=0;
				ydir=1;
				cursamm += samm;
				n++;
				break;
			case 1:
				xdir=1;
				ydir=0;
				n++;
				break;
			case 2:
				xdir=0;
				ydir=-1;
				cursamm+=samm;
				n++;
				break;
			case 3:
				xdir=-1;
				ydir=0;
				n=0;
				break;
			}
			
			g.drawLine(prex, prey, prex+cursamm*xdir, prey+cursamm*ydir);
			prex = prex+cursamm*xdir;
			prey = prey+cursamm*ydir;
			
			i++;
		}

не очень компактный код, зато работает =)
  • 0
0001 , 0010 , 0011 , 0100 , 0101 вышел зайчик погулять!
и где же смысл?
IAPB48

#469 еть.

еть.
  • Постоялец
  • 2 655 сообщений

Отправлено 21 января 2010 - 14:50

3 кажется вариант:
1) что делает прога
2) задаётся прога с аругментом что-то типа 'akrt adjkjkrt', удалить из строки сочетание 'krt' и вывести, что получилось. Использовать тока length() и charAt(i)
3) какая-то сортировка числового массива. от меньшего к большему.
4) нарисовать на поле 100х100 шахматную доску с квадратиками 10х10. никакой дополнительной шахматной доски в чёрных квадратах не надо.
5) деревья - что-то воде создать класс, а потом вывести в обратном порядке используя новый массив. короче, беда, не понял)

кстати, вот некоторые мои коды по подготовке к экзу - может кому потом пригодится.

сортировка массива - от большего к меньшему
int[] A = {3,7,2,7,2,9,3,10,6,3,5,2,4,1,49,39,31,0,1,79,8,5,1};

for (int i = A.length-1; i > 0; i--) {
  int pos = 0;
  for (int j = 1; j <= i; j++)
    if (A[j] > A[pos]) pos = j;

  int temp = A[pos];
  A[pos] = A[i];
  A[i] = temp;
}

for (int i = A.length-1; i >= 0; i--) System.out.print(A[i] + " ");

шахматная доска + ещё одна в черных клеточках
	for (int i=0; i<10; i++)
	  for (int k=0; k<10; k++)
		if ((k % 2 == 0 && i % 2 == 0) || (k % 2 != 0 && i % 2 != 0))
		{
			g.setColor(Color.black); // color of BIG rect
			g.fillRect((10*k),(10*i),10,10);
			g.setColor(Color.white); // color of SMALL rect
			for (int _i=i*10; _i<(i*10)+10; _i++)
			  for (int _k=k*10; _k<(k*10)+10; _k++)
				if ((_k % 2 == 0 && _i % 2 == 0) || (_k % 2 != 0 && _i % 2 != 0))
				  g.fillRect(_k,_i,1,1);
		}else{
			g.setColor(Color.white); // color of BIG rect
			g.fillRect((10*k),(10*i),10,10);
		}

нахождение простых чисeл
public class prost{ 
public static boolean check_number(int number){
  for (int i=2;i<number;i++){
    if (number % i == 0) return false;
  } return true;
}
public static void main(String [] args){
int k=0;
int i=1;
	do
	{
		if (check_number(i)){
			System.out.print(i + " ");
			k++;
		}
	i++;
	} while (k<10);
}
}

палиндром
String text="";
for (String s: args) text+=s;

int left = 0;
int right = text.length()-1;
boolean pali=false;

while (left < right)
{
	if ( text.charAt(left) != text.charAt(right) )
	{
		pali=false;
		break;
	}
	else pali=true;
	
	left++;
	right--;
}

if (pali) System.out.print("Jah"); else System.out.print("Ei");

синус-косинус
	double inc = 0.001;
    for ( double x = 0.0; x <= 2*Math.PI; x+=inc )
    {
	
	  double nextx = x + inc;

      int StartX   = (int)(  x * 600/(2*Math.PI) );
	  int EndX     = (int)(  nextx * 600/(2*Math.PI) );
      
	  int SinStartY   = (int)( -Math.sin( x ) * 200 + 200 );
      int CosStartY   = (int)( -Math.cos( x ) * 200 + 200 );
      int SinEndY     = (int)( -Math.sin( nextx ) *  200 + 200 );
      int CosEndY     = (int)( -Math.cos( nextx ) * 200 + 200 );

	  g.setColor(Color.red);
      g.drawLine( StartX, SinStartY, EndX, SinEndY );
	  
	  g.setColor(Color.blue);
      g.drawLine( StartX, CosStartY, EndX, CosEndY );	  
    }

  • 0

– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.


#470 Dark Kyro

Dark Kyro
  • Пользователь
  • 229 сообщений

Отправлено 21 января 2010 - 16:51

еть.
Так такой вариант нахождения простых чисел самый фиговый - просто тупой перебор.
Когда на С такую тему делали, такой вариант решения просто не принимали.

А с деревьями было так:
5) У нас есть 1 ячейка (node), в ней ссылка на следующую и 1 переменная типа int. Что важно - ссылки на предудущую ячейку нет!
Написать класс этой ячейки.
Написать функцию, которая схавает лист, составленный из произвольного числа таких ячеек, и вернет его в обратном порядке.
Перевод вольный)
Вобщем ппц. И за это 12 баллов, при том что работоспособность хрен проверишь.

3) Сортировка методом selection sort. Для этого находим самое маленькое число, и переставляем его в начало массива, при этом меняя местами с тем числом, которое там было раньше. После этого повторяем процедуру, но уже исключив найденое число при проверке. В таком виде алгоритм достаточно тупой, но оптимизировать его вроде не просили.
Пример:
[3,7,2,9,5] => [2,7,3,9,5] => [2,3,7,9,5] => [2,3,5,9,7] => [2,3,5,7,9]

Сообщение изменено: Dark Kyro (21 января 2010 - 17:03 )

  • 0

#471 еть.

еть.
  • Постоялец
  • 2 655 сообщений

Отправлено 21 января 2010 - 16:52

Ну для тех кто хочет поэкспериментировать на экзамене http://ru.wikipedia....ритм_сортировки ^_^
  • 0

– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.


#472 Dark Kyro

Dark Kyro
  • Пользователь
  • 229 сообщений

Отправлено 21 января 2010 - 17:11

Смысла нет, доп. баллы все равно не добавят, а вот за неправильное решение снимут)
  • 0

#473 еть.

еть.
  • Постоялец
  • 2 655 сообщений

Отправлено 21 января 2010 - 17:13

Верно) Правда в том случае, когда не соблюдены условия задания ^_^ то, что не запрещено - ращрешено.
  • 0

– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.


#474 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 21 января 2010 - 17:16

5) У нас есть 1 ячейка (node), в ней ссылка на следующую и 1 переменная типа int. Что важно - ссылки на предудущую ячейку нет!
Написать класс этой ячейки.
Написать функцию, которая схавает лист, составленный из произвольного числа таких ячеек, и вернет его в обратном порядке.
Перевод вольный)
Вобщем ппц. И за это 12 баллов, при том что работоспособность хрен проверишь.

это сложно сделать разве?
  • 0

#475 еть.

еть.
  • Постоялец
  • 2 655 сообщений

Отправлено 21 января 2010 - 17:18

5) У нас есть 1 ячейка (node), в ней ссылка на следующую и 1 переменная типа int. Что важно - ссылки на предудущую ячейку нет!
Написать класс этой ячейки.
Написать функцию, которая схавает лист, составленный из произвольного числа таких ячеек, и вернет его в обратном порядке.
Перевод вольный)
Вобщем ппц. И за это 12 баллов, при том что работоспособность хрен проверишь.

о, точно! моё задание.
Cryptoboy, за компьютером и с гуглом - совсем нет ^_^
  • 0

– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.


#476 xpaMoBHik

xpaMoBHik
  • Пользователь
  • 52 сообщений
  • Откуда:КОПЛИ

Отправлено 21 января 2010 - 22:59

Может кто-нибудь скинуть код круговой спирали. Спасибо за квадратною, потом разберусь. И может кто знает, где можно про деревья прочитать для чайника, у меня с этим темно.
  • 0

#477 Dark Kyro

Dark Kyro
  • Пользователь
  • 229 сообщений

Отправлено 22 января 2010 - 11:11

Задания с листами и нодами можно сделать, если ты можешь проверить код - а если ты его не можешь проверить, то у тебя будет куча ошибок в большинстве случаев, если ты не гений какой-нибудь способный сотню операций просчитать в уме.

Круговая спираль:
public void DrawSpiral(Graphics g, int mode, double a, double b, int n) {
        double t, r;
        int x,y;
        for (t=0;t<n*2*Math.PI;t+=0.01){
            if (mode == 0){
                r = a * Math.exp(b*t);
            } else {
                r = a * t;
            }
            x = (int) (r * Math.cos(t));
            y = (int) (r * Math.sin(t));
            g.setColor(Color.darkGray);
            g.drawOval(x+300,y+300, 1, 1); // 300/300 это координаты середины спирали
        }
    }


mode = 0 - логарифмич. спираль
mode = 1 - Архимедова
n - определяет число витков
a, b - параметры
На экзамене нужно оставить какой-то 1 вариант спирали, не знаю какой т.к. у меня такого задания не было.
  • 0

#478 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 22 января 2010 - 17:21

ну да сразу не получилось написать без ошибок
но реверс через рекурсию делается очень просто

Сообщение изменено: Cryptoboy (22 января 2010 - 17:25 )

  • 0

#479 V1cky

V1cky
  • Постоялец
  • 1 027 сообщений

Отправлено 22 января 2010 - 20:51

эти товарищи,наверное, числа 27 проверят ночью работы) так. прям перед перепиской. долгие какие-то
  • 0

#480 New_air

New_air
  • Постоялец
  • 801 сообщений
  • Откуда:Tln

Отправлено 24 января 2010 - 14:26

я так понимаю, никому ещё оценку не выставили =(
  • 0