Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12

простые (или не очень).....

20.12.2009, 18:16. Показов 2868. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Помогите пожалуйста решить вот такие вот задачки:
1) Записать положительные элементы массива X подряд в массив Y. Определить k-количество положительных элементов. Вычислить сумму элементов массива X и произведение элементов Y.
2) Календарь. (При решении задач принять во внимание, что в современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех номеров, которые делятся на 100 и не делятся на 400.)
Для создания универсального календаря, охватывающего все годы, можно использовать непосредственный подсчет, основанный на том, что 1 января 1 года нашей эры было понедельником.
Ну вот, собственно, задача: Даны натуральные числа n, m ( m ≤ n ). Определить, сколько из чисел n, n+1, ..., m являются номерами високосных годов.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2009, 18:16
Ответы с готовыми решениями:

Как научиться создавать на C++ простые приложения (очень простые игры)?
Помогите, я хочу научится создавать какието для начала очень простые игры, приложения. но я вооще ничего не знаю :wall: не знаю с чего...

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

Вывести простые числа от a до n (while или for)
Подскажите пожалуйста, как реализовать вывод на экран всех простых чисел от a до n при помощи цикла (while или for)?

25
 Аватар для cristaloleg
149 / 50 / 3
Регистрация: 21.12.2008
Сообщений: 960
20.12.2009, 18:26
Первое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main()
{
    int x[100], y[100];
    int i=0, j=0, k;
    double p=1, S=0;
    for(i; i<100; ++i)
    {
        if(x[i]>0)
        {
            y[j] = x[i];
            ++j;
            S += x[i];
            p = p*y[j];
        }
    }
    k = i;
}
2
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
20.12.2009, 19:33
Цитата Сообщение от Bishop89 Посмотреть сообщение
Даны натуральные числа n, m ( m ≤ n ). Определить, сколько из чисел n, n+1, ..., m являются номерами високосных годов.
Цитата Сообщение от Bishop89 Посмотреть сообщение
Для создания универсального календаря, охватывающего все годы, можно использовать непосредственный подсчет, основанный на том, что 1 января 1 года нашей эры было понедельником.
А при чем здесь понедельник? Уточните: натуральное n - что означает это число? Какой-то год? Например: n=1234, m=32. Тогда задача сводится к тому что бы вычислить сколько в промежутке от 1234 года до 1266 года было високосных годов. Так?
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
20.12.2009, 20:57  [ТС]
ну да "n" является нашей "альфой" (1 годом нашей эры),а "m"-"омегой "(2010 годом), и как правильно вы подметили нам нужно вычислить сколько в промежутке от 1 г. до 2010 г. было високосных годов.
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
20.12.2009, 21:15
Тогда еще раз.
Цитата Сообщение от Bishop89 Посмотреть сообщение
"n" является нашей "альфой" (1 годом нашей эры)
всегда n - 1 год нашей эры? Или вводится с клавиатуры?

Цитата Сообщение от Bishop89 Посмотреть сообщение
а "m"-"омегой "(2010 годом)
m - тоже всегда является 2010 годом? Или вводится с клавиатуры?
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
20.12.2009, 21:19  [ТС]
да, n - 1 год нашей эры и m-2010 есть условия
0
 Аватар для cristaloleg
149 / 50 / 3
Регистрация: 21.12.2008
Сообщений: 960
20.12.2009, 21:23
Может не помогу, но мне кажется такие задачки на форуме часто всплывали!
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
20.12.2009, 21:44
Тогда по-моему это не сюда. Это простое математическое выражение:
2010/4-2010/100+2010/400
Естественно при делении учитывается только целая часть.
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
20.12.2009, 22:25  [ТС]
valeriikozlov вы не понимаете суть задачи....Годы смены столетий, оканчивающиеся на два нуля, в трёх случаях из четырёх не являются високосными. Так, годы 1700, 1800 и 1900 не были високосными, так как они кратны 100 и не кратны 400. Год 2000 — високосный, так как он кратен 400. 2100, 2200 и 2300 — не високосные.Иными словами, год является високосным, если он кратен 4 и при этом не кратен 100, либо кратен 400. Год не является високосным, если он не кратен 4, либо кратен 100 и не кратен 400.
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
20.12.2009, 22:44
valeriikozlov вы не понимаете суть задачи....
Конечно я не понимаю.
2010/4 - это все года которые могли бы быть високосными, если бы не правило:
Цитата Сообщение от Bishop89 Посмотреть сообщение
за исключением тех номеров, которые делятся на 100
Вот мы и уменьшаем 2010/4 на 2010/100 (т.е. вычитаем 20).
Но так как не все которые кратны 100 не являются високосными (кратные 400 являются високосными), а мы их уже вычли. То мы просто добавляем это кол-во: +2010/400.
Если неверите, просчитайте вручную.
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
20.12.2009, 23:01  [ТС]
фуххх....valeriikozlov год 2010 является висакосным?)
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
20.12.2009, 23:04
для меня нет. Как и для большинства жителей этой планеты. А что?
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
20.12.2009, 23:36  [ТС]
тогда причем тут
Цитата Сообщение от valeriikozlov Посмотреть сообщение
2010/4 - это все года которые могли бы быть високосными, если бы не правило
!
2008 год висакосный т.к делится на 4...(на 100 и на 400 он не делится) год 1800 делится на 4 вместе с тем и на 100 (но не делится на 400)значит он не висакосный! год 2000 дел. на 4 и на 100 и вместе с тем на 400 значет он висакосный!!! это правило определения висакосных годов!!

Добавлено через 2 минуты
сори*) недопонимание начинаем значит с 2008

Добавлено через 1 минуту
голова уже не работает )
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
21.12.2009, 07:49
Bishop89, Последняя попытка:
Итак:
да, n - 1 год нашей эры и m-2010 есть условия
- нужно посчитать кол-во високосных лет в промежутке от 1 года до 2010 года.
Високосные года, начинаем с начала: 4 год, 8 год, 12 год и т.д. Например берем 61 год: считаем по мной приведенной формуле: 61/4-61/100+61/400=15-0+0=15. Т.е. в период с 1 года до 61 года было 15 високосных лет.
Идем дальше: 96 високосный год, 100 - не високосный год, 104 високосный год. Считаем по формуле 102 год: 102/4-102/100+102/400=25-1+0=24. Т.е. За одну полную сотню лет получается 24 високосных года (при условии что эта сотня не заканчивается датой кратной 400).
Идем дальше: 202 год считаем: 202/4-202/100+202/400=50-2+0=48
301 год считаем: 301/4-301/100+301/400=75-3+0=72
401 год считаем:401/4-401/100+401/400=100-4+1=97 - вот здесь приведенная формула учитывает, что хоть 400 год и делится на 100, но т.к. он еще делится на 400 то является високосным годом.
И т.д...
Для заданного задания: 2010/4-2010/100+2010/400=502-20+5=487 лет были високосными с 1 года по 2010 год.
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
21.12.2009, 15:26  [ТС]
Вы поймите меня, не я составлял эту задачу, в университете выдали и сказали делай, а что и как там, как говорится, твои проблемы. Ну я, как видите, нечего не смог придумать.((
На мой взгляд, результат работы программы должно быть перечисление всех високосных дат в диапазоне от 1 до 2010 ,
естественно начинается так 4
8
12
.
.
.
последний получается 2008
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
21.12.2009, 15:34
Так Вам просто вывести на экран? Тогда вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio.h>
#include <iostream.h>
int main()
{
    for(int i=4; i<2010; i+=4)
        if(i%100==0 && i%400!=0);
        else
        {
            cout<<i<<endl;
            getch();
        }
     
return 0;
 
}
1
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
21.12.2009, 15:49  [ТС]
как все оказалось просто)),огромное спасибо valeriikozlov
но только начинает он считатать с 780
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
21.12.2009, 16:19
Цитата Сообщение от Bishop89 Посмотреть сообщение
но только начинает он считатать с 780
я специально для этого включил getch();
Должно работать так: при запуске появляется только один год, затем нажимаете любую клавишу, появляется второй, третий и т.д.
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
24.12.2009, 17:55  [ТС]
Приветствую всех.
Решил не создавать новую тему, ибо вопрос опять же, по календарю.
Вот задачка Даны натуральные числа a1,b1,c1,a2,b2,c2, которые указывают две даты (число, месяц, год). Вычислить количество дней, прошедших между двумя этими датами.

Добавлено через 4 минуты
буду признателен за помощь
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
25.12.2009, 05:27
Bishop89, Тогда уточняйте. Нужно ли учитывать високосные года (по тому же принципу) в этом промежутке дат или нет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2009, 05:27
Помогаю со студенческими работами здесь

Простые числа, или как это работает?
Доброго времени суток всем участникам этого форума =) У меня как у начинающего программиста возникла затрудняющая ситуация, есть готовый...

проверка простые числа или не простые
Составить программу для проверки утверждения: «результатами вычислений по формуле x2+x+17 при 0≤х≤15 являются простые числа»....

Простые числа и не очень
Меня интересует Алгоритм, который мог бы выдавать, не обязательно в порядке возрастания, простые числа в пределах от 1 до 1 миллиона. ...

3 очень простые задачи
помогите 3 задачи для начинающих: 1. просто два поля, Логин и пароль. 2. массивы + дата. создать 2 массива: 1 массив -...

Очень простые часы на PIC-контроллере
Напряжение питания: 5 V Конфигурационное слово для контроллера находится внутри файла прошивки ledclock.hex. Индикаторы можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru