agata 1 Nahlásit příspěvěk Odesláno February 6, 2011 Уважаемые господа... я тут читаю книжку - пробую и кое-где туплю. Плюс кое-какие задания и пояснения перехватываю от народа. Методом тыка и постепенного осознания. Подскажите элементарные вещи, пожалуйста. Например, надо вывести * * * * * * * * * * * * * * * * * * * * то есть звездочки второго ряда выходят как бы в под пустыми местами первого (шахматная доска) не понимаю как это нарисовать у меня пока так только { cout << "*\t*\t*\t*\t*\t*\t*\t*\n"; cout << "\t*\t*\t*\t*\t*\t*\t*\t*\n"; } но это не правильно.... и еще я тут считаю НОД одним вариантом int SWAP (int a, int b ){ int c; c=a; a=b; b=c; return 0; } int NSD (int a, int b ) { int c; if (a< SWAP (a,b ); do { c=a%b; a=b; b=c; } while (c!=0); return a; } и я знаю что это не идеальный вариант - просто такой рассматривался на примере А теперь мне надо посчитать для 12 и 8 наибольший общий делитель, но при этом в программе использовать d=8 d--; // то есть 7 d--; // тут уже 6.... и так далее я вроде логику улавливаю. но это "вроде" и как написать ни фига не понимаю. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 то есть звездочки второго ряда выходят как бы в под пустыми местами первого (шахматная доска) не понимаю как это нарисовать у меня пока так только { cout << "*\t*\t*\t*\t*\t*\t*\t*\n"; cout << "\t*\t*\t*\t*\t*\t*\t*\t*\n"; } но это не правильно.... Может их тоже надо циклами выводить, а не прямым текстом? Два вложеных цикла с проверкой на четность. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
buster 1827 Nahlásit příspěvěk Odesláno February 6, 2011 Может их тоже надо циклами выводить, а не прямым текстом? Два вложеных цикла с проверкой на четность. А разве нельзя в одном? С проверкой на четность? Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 А разве нельзя в одном? С проверкой на четность? Один на строки, другой на звездочки. Циклить, так циклить а вообще хз что там ожидается в качестве правильного ответа. Как показывает практика, составители обучающих книг еще те затейники Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 Вот если по быстрому и не думая, то как то так. Ну и шахматы же вроде квадратные? int size = 8; for(int i = 0; i < size*size; ++i){ if (i % size == 0 && i > 0) std::cout << std::endl; std::cout << (i / size % 2 ? "-*" : "*-"); } std::cout << std::endl; Результат: *-*-*-*-*-*-*-*- -*-*-*-*-*-*-*-* *-*-*-*-*-*-*-*- -*-*-*-*-*-*-*-* *-*-*-*-*-*-*-*- -*-*-*-*-*-*-*-* *-*-*-*-*-*-*-*- -*-*-*-*-*-*-*-* Правильно? Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
agata 1 Nahlásit příspěvěk Odesláno February 6, 2011 jes спасибо-) Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 Лучше не спасибо говорите, а говорите что все поняли. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
agata 1 Nahlásit příspěvěk Odesláno February 6, 2011 Лучше не спасибо говорите, а говорите что все поняли. jes - что бы все понять я сейчас часок посижу и разберу строчку за строчкой. Потому что сразу так поняла процентов 50%. Сейчас вот с книжкой буду каждую строчку расшифровывать и допонимать. Я пока так и делаю - каждое задание что там описано делаю и перевожу для себя на "русский язык". Вот сейчас ищу значение &&. У меня много времени уходит на подобный "перевод". А вот когда смогу "нарисовать" круг из звездочек - тогда скажу "спасибо, поняла"-) Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 jes, в простой задаче на циклы ты сделал 192 операции деления и одну умножения. Хотя там можно вообще этого не делать. Теперь ясно, почему современные программы тормозят и на 1GHz процессоре Ничего личного, просто я в своё время был вынужден обходится процессором, который умел только складывать и вычитать Поэтому мне глаза режет. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
sashka304 3 Nahlásit příspěvěk Odesláno February 6, 2011 http://informatics.mccme.ru/moodle/mod/book/view.php?id=547 Логическое И является бинарным оператором (то есть оператором с двумя операндами: левым и правым) и имеет вид && (два знака амперсанда). Оператор && возвращает true тогда и только тогда, когда оба его операнда имеют значение true. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 jes, в простой задаче на циклы ты сделал 192 операции деления и одну умножения. Хотя там можно вообще этого не делать. Теперь ясно, почему современные программы тормозят и на 1GHz процессоре Ничего личного, просто я в своё время был вынужден обходится процессором, который умел только складывать и вычитать Поэтому мне глаза режет. Вот так и знал, что кто-то подобное напишет. Я и не думал ни об оптимизации, просто написал код, прочитав выше про 1 цикл. Кстати, если об оптимизации, stl тебе глаза не режет? Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 Кстати, если об оптимизации, stl тебе глаза не режет? stl? А где это в коде, и что это? Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 Лирика конечно, я в оптимизации не спец, но что-то мне подсказывает, что если делать с вложенным циклом, я сомневаюсь что будет быстрее, N инициализаций вложенного цикла с условием тоже стоит тактов. В общем, ты меня уязвил. С вложенным циклом, на размер 1000x1000: real 0m0.249s user 0m0.043s sys 0m0.020s С множественным делением, на размер 1000x1000: real 0m0.227s user 0m0.047s sys 0m0.020s Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
Archer 1636 Nahlásit příspěvěk Odesláno February 6, 2011 С вложенным циклом как чётность определял? Кстати, попробуй посчитать без операция вывода, мне кажется основные потери там. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky
jes 0 Nahlásit příspěvěk Odesláno February 6, 2011 i & 1 и i % 2 И в том и том варианте. Ок, без вывода, Циклы и использование i & 1: real 0m0.031s user 0m0.030s sys 0m0.000s Деления и использование i % 2 real 0m0.032s user 0m0.027s sys 0m0.003s То есть разница несущественна... вообще. Quote Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatní stránky