Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Задачки для новичков! 
:(
    Опции темы
CppDevelopeR
  Дата 7.1.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: нет
Всего: 9



Решил выложить задачки для начинающих программистов. Качество задач проверенно, сам по ним учился, поэтому и выкладываю!

1. Некоторый промежуток времени задан в секундах. Представить его в виде количества суток, часов, минут и секунд. Например, если задано число 1769404, то вывести надо 4 числа: 20 11 30 4 (1769404 секунд – это 20 суток, 11 часов, 30 минут и 4 секунды).

2. Дано трехзначное число. Найдите число, которое получится, если цифры исходного числа переписать в обратном порядке.

3. Даны переменные a и b. Напишите программу, которая будет менять значения этих переменных местами.

4. Найдите x4, выполнив наименьшее возможное число умножений. То же самое для 5. x7. 6. x8 7. x9. 8. x22.

9. Даны 2 числа. Вывести наибольшее из них.

10. Даны 3 числа. Вывести наибольшее из них.

11. Даны 4 числа. Если они все различны совпадают, выведите "yes", иначе – "no".

12. Определите количество дней в данном году (от 1600 до 3000 года н.э.) по современному календарю.

13. Выведите на правильном русском языке, сколько прошло лет с указанного года (между 1 и 2006 годом н.э.) до 2007 г. Например, если введено 1986, то надо вывести "21 год", а если 2002, то "5 лет".

14. Даны размеры сторон конверта и открытки. Определите, можно ли положить открытку в конверт не сгибая. (Стороны открытки должны быть параллельны сторонам конверта).

15. В первой строке указаны даты рождения Алисы, а во второй – Боба. Даты указаны в формате "год месяц день ". Определите, кто из них старше (выведите имя: "Alice" или "Bob").
 Пример:
1994 12 21
1994 8 21
Bob
 

16. Положение коня на шахматной доске задано двумя числами – номерами вертикального и горизонтального рядов. (Ряды нумеруются от 1 до 8). Найдите количество клеток, которые находятся под боем этого коня.

17. Вычислите ab, b ≥ 0.

18. Дано число х и основание системы счисления b ∈ [2; 10]. Вывести число x в системе счисления по основанию b "задом наперёд". 19. То же самое, но вывести число в обычном виде.

20. Найти наименьший простой делитель данного числа x > 1.

21. Проверьте, является ли данное число палиндромом. (Палиндромом называется число, которое не изменится, если поменять порядок цифр на противоположный. Пример: 58185).

22*. Игра "Быки и коровы". Правила игры состоят в следующем. Компьютер загадывает n-значное число, все цифры которого различны. Игрок пытается это число угадать. За один ход игрок называет число из n различных цифр, а компьютер выдаёт результат этой попытки в условных единицах – быках и коровах. Один бык соответствует одной цифре, которая входит в загаданное число и стоит на своём месте. Одна корова соответствует одной цифре, которая входит в число, но стоит не на своём месте.
Запрограммируйте эту игру для n=3 или для произвольного n < 9.

23*. Крестики-нолики. Вася и Петя любят играть в крестики-нолики 3x3, но у них неожиданно закончилась бумага. Помогите им – напишите программу, которая позволит им ставить крестики и нолики на экране монитора. В качестве примера, как мог бы выглядеть самый простой вариант подобной программы, приведён исполняемый файл krestiki (krestiki.exe). Но в этой программе есть ошибки, Ваша программа должна быть лучше. (Желательно использовать массив).





--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
Demonspe
Дата 23.11.2008, 00:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2008

Репутация: нет
Всего: нет



Спасибо! smile  а есть ещё?) или мож какой-нить сборник есть таких задачек (разделённых по темам) для новичков?
PM MAIL   Вверх
sikha
Дата 20.12.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 22.5.2008

Репутация: нет
Всего: нет



Могу поделиться вот этими задачками! ИМХО очень нормальные!
http://depositfiles.com/files/pjjz3gypx
PM MAIL   Вверх
cristaloleg
Дата 6.11.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 15.6.2009
Где: Donetsk

Репутация: нет
Всего: нет



Вывести наибольшее из двух чисел, не используя ветвления, циклов и тп...ток арифметика smile 

ЗЫ одно решение точно есть!
PM   Вверх
JackyFox
Дата 28.12.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 21.11.2007

Репутация: нет
Всего: 7



Цитата(cristaloleg @  6.11.2009,  20:57 Найти цитируемый пост)
Вывести наибольшее из двух чисел, не используя ветвления, циклов и тп...ток арифметика


Расскажите, пожалуйста, как это решается.
--------------------
У вас менее 250 сообщений, ссылки отключены
PM   Вверх
586
Дата 28.12.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



Цитата(JackyFox @  28.12.2009,  10:32 Найти цитируемый пост)
Цитата(cristaloleg @  6.11.2009,  20:57 Найти цитируемый пост)
Вывести наибольшее из двух чисел, не используя ветвления, циклов и тп...ток арифметика

Расскажите, пожалуйста, как это решается. 

Код
int a, b, c;
c = (a/b)*b | (b/a)*a;

PM   Вверх
JackyFox
Дата 28.12.2009, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 21.11.2007

Репутация: нет
Всего: 7



Цитата(586 @  28.12.2009,  11:04 Найти цитируемый пост)
c = (a/b)*b | (b/a)*a;

Не будь переменные целоцисленными, получилось бы так:
(a/b)*b = a;
(b/a)*a = b;

В итоге — a|b.
Но т.к. у нас переменные целые, в скобках у нас уже округленный до целого промежуточный результат.
И поразрядное ИЛИ никак не хочет выдавать максимальное из двух чисел :(

Я тоже сейчас сижу, размышляю о том, что надо как-то хитро разделить, умножить, возвести в степень можеть быть. И на выходе этой сложной функции получить максимальное число. Но пока без результатно.
--------------------
У вас менее 250 сообщений, ссылки отключены
PM   Вверх
UniBomb
Дата 28.12.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 0
Всего: 97



Можно поиграться с числовыми значениями true и false

Код

int a, b;
std::cout << (a>b)*a + (b>a)*b << std::endl;



--------------------
PM MAIL ICQ Skype   Вверх
JackyFox
Дата 28.12.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 21.11.2007

Репутация: нет
Всего: 7



UniBomb, вот это работает.
Но, мне кажется, «больше» и «меньше» — это чит smile
--------------------
У вас менее 250 сообщений, ссылки отключены
PM   Вверх
GoldFinch
Дата 28.1.2010, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



деление - это неоптимально. надо сложение\вычитание\модуль

a+b = min(a,b)*2+abs(a-b) = max(a,b)*2 - abs(a-b)

значит

max(a,b) = (a+b + abs(a-b))/2

чистая математика, начальная школа
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.1349 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.