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

Фото
- - - - -

Programmeerimise põhikursus keeles C


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

#1 Onyx8

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

Отправлено 12 марта 2010 - 21:48

Кому надо, вот первое задание "Обманщик":

#include <iostream>
using namespace std;

int main()
{
	int min = 1,    max = 100;

	int number, avg;

	int steps = 0;

	for(;<img src='https://forum.ee/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=';)' />
	{
		avg = (min + max) / 2;

	    // cout << min << " " << avg << " " << max << endl;    // debug information

		cout <<  "\n#" << ++steps << " number: ";
		cin >> number;

		// Advanced check to make more steps

		if(number == min+1 && number == max-1)
		{
                  cout << "\nYou are right!\n";
                  cout << "It took you " << steps << " steps...\n\n";
                  //system("PAUSE");
                  return 0;
        }

		if(number <= avg)
		{
			cout << "More!\n";
			if(number < min)  continue;
			min = number;
		}
		else
		{
			cout << "Less!\n";
			if(number > max) continue;
			max = number;
		}

	}
}

Сообщение изменено: Onyx8 (12 марта 2010 - 21:49 )

  • 0

#2 null

null
  • Постоялец
  • 15 928 сообщений

Отправлено 12 марта 2010 - 22:34

Если память мне не изменяет, уже есть тема про ппк :)
  • 0

#3 Onyx8

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

Отправлено 13 марта 2010 - 00:49

Где беспредел?,

ppk keeles C точно нету.
  • 0

#4 еть.

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

Отправлено 13 марта 2010 - 02:36

Есть, есть. И даже исходники мошенника вроде бы кидали. Просто раньше предмет по другому назывался.
  • 0

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


#5 Эдгарулик

Эдгарулик

    Мусечка

  • Постоялец
  • 4 871 сообщений
  • Откуда:Столица

Отправлено 13 марта 2010 - 09:43

Эта чтоль?

это единственная, где вижу про курсусы что-то =)
  • 0

#6 Onyx8

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

Отправлено 13 марта 2010 - 10:38

Кто сделал второе задание (переменожение матриц)?
  • 0

#7 null

null
  • Постоялец
  • 15 928 сообщений

Отправлено 13 марта 2010 - 10:41

Ну так что, это один и тот же предмет? Если да, тогда надо бы в имеющуюся тему идти - там, наверное, всё, что было раньше, пригодится и сейчас.
Сам не знаю, не программер.
  • 0

#8 Эдгарулик

Эдгарулик

    Мусечка

  • Постоялец
  • 4 871 сообщений
  • Откуда:Столица

Отправлено 13 марта 2010 - 10:55

в той теме ваще нечто другое обсуждают... там выргуракендусед1/пыхикурсус, но про него ни слова... предлагаю здесь остаться.. тока Programmeerimise põhikursus keeles C. А то q режет глаз
  • 0

#9 Julique

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

Отправлено 13 марта 2010 - 11:01

Вообще это был предмет Informaatika2 у Аллика. И тема как-то так называлась.
  • 0

#10 null

null
  • Постоялец
  • 15 928 сообщений

Отправлено 13 марта 2010 - 11:04

Во как. Ну пускай остаётся...
  • 0

#11 unnamed6132

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

Отправлено 13 марта 2010 - 13:08

Кто сделал второе задание (переменожение матриц)?


Получилось нечто, совпадающее с ответом на сайте http://www.webmath.ru/web/prog5_1.php. Правда, для матриц 3Х4 и 4Х3. Хочу испытать и для долее крупных матриц, только хотелось бы достать где-нибудь файл, в котором заданы матрицы...не вручную же вбивать 333 Х 444 чисел, как условлено в задаче :D
В общем, сегодня-завтра потестирую свой код ещё, если 100% работает - отошлю преподу и могу выложить. Кстати, UML-схема для этой проги тоже нужна?

Размещенное изображение
  • 0

#12 Vitalts

Vitalts
  • Постоялец
  • 1 852 сообщений

Отправлено 13 марта 2010 - 13:20

Правда, для матриц 3Х4 и 4Х3. Хочу испытать и для долее крупных матриц, только хотелось бы достать где-нибудь файл, в котором заданы матрицы...не вручную же вбивать 333 Х 444 чисел, как условлено в задаче

А что мешает сгенерить рандомную матрицу на том же С, или для большей простоты, в Excel?
  • 0

#13 unnamed6132

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

Отправлено 13 марта 2010 - 18:29

А что мешает сгенерить рандомную матрицу на том же С

А это мысль. Моя ненависть к рандомным числам заставляет забывать про них при решении задач :)
Сейчас попробую сделать 2 такие матрицы...
  • 0

#14 Green Apple

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

Отправлено 15 марта 2010 - 17:03

Домашки надо Аллику защищать?
  • 0

#15 Эдгарулик

Эдгарулик

    Мусечка

  • Постоялец
  • 4 871 сообщений
  • Откуда:Столица

Отправлено 15 марта 2010 - 17:05

Green Apple, просто по мылу послать...
  • 0

#16 Green Apple

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

Отправлено 15 марта 2010 - 17:23

Спасибо.
  • 0

#17 Onyx8

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

Отправлено 20 марта 2010 - 18:03

Кто-нибудь сделал домашнюю работу № 2?
там, где адресная арифметика

Я всю сделал, но не знаю как оптимизировать.
Может кто подскажет?
  • 0

#18 New_air

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

Отправлено 20 марта 2010 - 21:41

Я просто уточнение напишу, для тех, кто думал, что тема такая уже есть. Programmeerimise põhikursus keeles C и Programmeerimise põhikursus - это два совершенно разных предмета первый - программирование на СИ, его изучают первокурсники во втором семестре, раньше просто Информатика 2 называлось, а второй - это программирование на яве - жестокая штучка, которая ждёт всех (бизнес)информатиков на втором курсе, в третем семестре. Соответственно и темы разные...
  • 0

#19 Linx

Linx
  • Новобранец
  • 8 сообщений

Отправлено 21 марта 2010 - 02:18

Onyx8,
епрст, да вынеси ты наконец уже независимые переменные от цикла, что бы лишние арифметические действия не делать :)
  • 0

#20 лун@тик

лун@тик
  • Пользователь
  • 301 сообщений

Отправлено 21 марта 2010 - 06:44

Мне просто на поржать, вы люди откуды такие беретесь? Марс? Юпитер? :rolleyes:
  • 0
- Простите. А как с этим жить? - А жить не надо. Смотреть надо и восхищаться!

#21 Onyx8

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

Отправлено 21 марта 2010 - 11:03

Linx,

Ладно, покажи как это сделать:
void multiplyArray(int** Array_x, int** Array_y, int** Array_res)

{
	int i, j, k;	// counters

	int temp;

	int** pRow_x = Array_x;
	int** pCol_x = pRow_x;

	int** pRow_y = Array_y;
	int** pCol_y = pRow_y;

	int** pRow_res = Array_res;
	int** pCol_res = pRow_res;

	
	for(i=0; i<M; i++)		// i - Array_x row
	{
		for(j=0; j<M; j++)	// j - Array_y col
		{
			temp = 0;
			pCol_y = pRow_y;	// Starting with first row

			for(k=0; k<N; k++)
			{
				temp += *(*pCol_x + k) * *(*pCol_y + j);
				pCol_y++;		// Array_y |k| |j|;
			}

			*(*pCol_res + j) = temp;
		}

		pCol_x++;				// Array_x |i| |...|
		pCol_res++;				// Array_res |i| |...|
	}
}

Сообщение изменено: Onyx8 (21 марта 2010 - 11:04 )

  • 0

#22 Linx

Linx
  • Новобранец
  • 8 сообщений

Отправлено 21 марта 2010 - 13:43

лун@тик,
по подробнее: в честь чего и кому это было адресовано?

Сообщение изменено: Linx (21 марта 2010 - 13:50 )

  • 0

#23 shb

shb

    New life, much more options

  • Постоялец
  • 5 253 сообщений
  • Откуда:Таллинн

Отправлено 22 марта 2010 - 08:15

Быстрее не будет, нормальный вариант для первокурсника - O(n^3). Кури википедию.

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

Joga Bonito!

#24 еть.

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

Отправлено 22 марта 2010 - 15:33

Быстрее не будет, нормальный вариант для первокурсника - O(n^3). Кури википедию.

O(n^2)! O(n^3) - это stupid sort :D

Сообщение изменено: еть. (22 марта 2010 - 15:33 )

  • 0

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


#25 shb

shb

    New life, much more options

  • Постоялец
  • 5 253 сообщений
  • Откуда:Таллинн

Отправлено 22 марта 2010 - 17:46

еть., а при чем тут сортировка?

Сортировка вообще O(nlogn), а в некоторых случаях можно и O(n) сделать
  • 0
Мыслящий человек просто обязан время от времени поднимать себя за волосы © Тот самый Мюнгхаузен

Joga Bonito!

#26 еть.

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

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

shb,
http://ru.wikipedia.....B2.D0.BA.D0.B8
  • 0

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


#27 shb

shb

    New life, much more options

  • Постоялец
  • 5 253 сообщений
  • Откуда:Таллинн

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

Во первых выше перемножение матриц, а не сортировка.

А во вторых - merge sort, randomized quick sort, tree sort и другие сортировки работают за O(nlogn).
  • 0
Мыслящий человек просто обязан время от времени поднимать себя за волосы © Тот самый Мюнгхаузен

Joga Bonito!

#28 еть.

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

Отправлено 22 марта 2010 - 21:45

Во первых выше перемножение матриц, а не сортировка.

Ох, да, перепутал. :)

А во вторых - merge sort, randomized quick sort, tree sort и другие сортировки работают за O(nlogn).

Ну и что? :)
  • 0

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


#29 Эдгарулик

Эдгарулик

    Мусечка

  • Постоялец
  • 4 871 сообщений
  • Откуда:Столица

Отправлено 04 апреля 2010 - 10:30

закиньте вторую домашку, кому не жалко =)
  • 0

#30 unnamed6132

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

Отправлено 04 апреля 2010 - 12:17

LinK
Надеюсь, твой вариант кода будет представлять из себя нечто отличное от наглой копипасты :)
  • 0