Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 39

Найти члены ak последовательности a1,…,an, кратные 3 и не кратные 5, и определить их количество.

06.01.2010, 14:02. Показов 4532. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите составить программу: Даны натуральные числа n, a1,…,an, где n≤5000. Найти члены ak последовательности a1,…,an, кратные 3 и не кратные 5, и определить их количество.
Как я понимаю, порядок действия такой:
1)Задать одномерный массив A (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, …,n,)
где n<=5000 (при 255>n<=5000 - Const n:=255, 3=<при n<=255, n:=n)
2)Найти из него массив B - кратный 3- (3,6,9,12,15,18,…,B,), где B=n div 3, где 3>=n<=5000,
3)И вычесть из него массив С, кратный 5- (15,30,45,…,C,), где C=n div 15, где 15>=n<=5000,
Найти члены массива D.
Массив D=(массив B)-(массив C)
4)Найти K- количество членов массива D.
K= (n div 3) - (n div 15)
подпрограмму опр. кол. членов я составил:
Pascal
1
2
3
4
5
6
7
8
Program my51;
var k, n:inteder;
begin
write(‘Введите n’ );readln(n);
If n>5000 then writeln (‘n>5000,Перебор’)
If n<3 then writeln (‘n<3,Недобор’)
else k:=(n div 3)-(n div 15); writeln (‘Кол. Членов множества=,k)
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2010, 14:02
Ответы с готовыми решениями:

Найти члены последовательности a1,…,an, кратные 3 и не кратные 5, и определить их количество
Выручайте Даны* натуральные* числа* n,* a1,…,an,* где* n≤5000.* Найти* члены последовательности* a1,…,an,* кратные* 3* и* не* кратные*...

Найти члены последовательности, кратные 3 и не кратные 5
Помогите написать программу на с++

Найти члены последовательности, кратные 3 и не кратные 5
N1 Даны натуральные числа n, a1,…,an, где n≤5000. Найти члены ak последовательности a1,…,an, кратные 3 и не кратные 5, и определить их...

19
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.01.2010, 14:06
Pascal
1
2
3
4
5
6
7
k:=0;
for i:=1 to n do
if(a[i] mod 3=0) and(a[i] mod 5<>0) then
 begin
  write(a[i],' ');
  k:=k+1;
 end;
1
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 39
06.01.2010, 17:17  [ТС]
Спасибо, но я настолько не могу составить программу от начала до конца, что просто ужас. Турбо паскаль постоянно выдает ошибки.
IF Вас не затруднит, THEN напишите полностью, ELSE я не получу зачет.
Заранее СПАСИБО!
p.s. Это будет пособием другим участникам форума.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.01.2010, 17:31
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Это называется лень-матушка, ибо решенных примеров на массивы на форуме море.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;
var a:array[1..5000] of integer;
    n,i,k:integer;
begin
clrscr;
write('n=') ;
readln(n);
writeln('Ishodnyj massiv:');
for i:=1 to n do
 begin
  a[i]:=random(50)+1;
  write(a[i],' ');
 end;
writeln;
writeln('Rezultat:');
k:=0;
for i:=1 to n do
if(a[i] mod 3=0) and(a[i] mod 5<>0) then
 begin
  write(a[i],' ');
  k:=k+1;
 end;
writeln;
write('Kol.=',k);
readln
end.
1
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 39
07.01.2010, 11:20  [ТС]
Огромное СПАСИБО!!!
Проверил в турбо паскале.Все работает. Теперь пишу для себя комментарии, чтобы лучше понять программу. Изначально я ошибся в структуре программы.
0
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 39
09.01.2010, 10:35  [ТС]
Полностью разобрался с программой.Пришлось внести дополнения-ограничения если n>5000 и выполнение программы если n<=5000. Еше раз СПАСИБО! Программа с комментариями:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
uses crt;                                       {Подключает модуль crt- работа с консолью}
var a:array[1..5000] of integer;    {Перечисляем переменные}
    n,i,k:integer;                            
begin                                      {Начинает операторные блоки (программу)}
clrscr;                                     {Очищает окно и устанавливаем курсор слева вверху}
write('n=')     ;                         {Пишет на консоли «n=» -вводим n} 
readln(n);                               {Читает n}
if n>5000 then writeln (‘n>5000)      {При n>5000 cообщает, что «n>5000»}
if n<=5000 then                     {Условие при n<=5000}
writeln('Ishodnyj massiv:');    {Печатает с новой строки слова «исходный массив»}
for i:=1 to n do                       {Начинается цикл от 1 до n}
begin                            {Начинает читать строки данных из текстового файла}
a[i]:=random(50)+1;              { Генерируется случайное число от 0 до 49 +1}
write(a[i],' ');                          {Пишет на консоли массив }
end;                                      {Промежуточное окончание}
writeln;                                 { Позволяет записать следующие числа с новой строки }
writeln('Rezultat:');                {Пишет на консоли«результат:»}
k:=0;                                      {Присваиваем k=0}
if n<=5000 then                     {Условие что n<=5000}
for i:=1 to n do                       {Начинается цикл от 1 до n}
if(a[i] mod 3=0) and(a[i] mod 5<>0) then      {Проверяет условия кратности}
begin                                     {Читает полную строку данных из текстового файла}               
write(a[i],' ');                           {Пишет на консоли массив кратный 3 и не кратный 5}
k:=k+1;                                  {Находит кол. членов массива- k}
end;                                       {Промежуточное окончание}
writeln;                                  {Позволяет записать следующие числа с новой строки }
write('Kol.=',k);   {Пишет в строку «кол. членов массива» (кратные 3 и не кратные5)}
readln                           {Позволяет прочитать результаты(не надо нажимать Alt+F5)}
end.                              {Окончание программы}
0
1 / 1 / 0
Регистрация: 22.10.2010
Сообщений: 25
01.02.2011, 16:55
Puporev,
Дана целочисленная последовательность а1,а2...а20. изменить порядок следования элементов так, чтобы сначала шли четные, а затем нечетные. Порядок следования четных и нечетных чисел не изменять.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.02.2011, 17:58
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Дарья1991, Это на массивы задача?

Добавлено через 4 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uses crt;
const n=20;
var a:array[1..n] of integer;
    i,j,k:byte;
    x:integer;
begin
clrscr;
randomize;
writeln('Исходная последовательность:');
for i:=1 to n do
 begin
  a[i]:=random(50);
  write(a[i]:4);
 end;
writeln;
k:=0;
for i:=1 to n do
if a[i] mod 2=0 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i],' ');
readln
end.
1
1 / 1 / 0
Регистрация: 22.10.2010
Сообщений: 25
01.02.2011, 18:57
Спасибо Вам большое..только вот тут мне не понятно...почему при проверке программы на экране уже есть матрица и результат. По моему заданию последовательность нужно вводить самостоятельно....у меня есть вариант решения
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program  h;
var
a:array[1..100]of integer;
b:array[1..100] of integer;
n,k,i:integer;
begin
writeln ('skolko elementov posledovaetelnossni');
readln(n);
for i:=1 to n do begin
writeln ('vvedite',i,'-j element posltdovatelnosti');
readln (a[i]);
end;
for i:=1 to n do begin
if i mod 2 =0 then b[i div 2]:=a[i]
else b[n div 2 + 1 + i div 2]:=a[i];
end;
for i:=1 to n do begin
write(b[i]:3);
end;
readln;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.02.2011, 19:03
Ну так выкиньте у меня рандомный ввод и напишите свой ввод с клавиатуры. Сразу нужно писать как задается последовательность, больше делать нефиг как переписывать.
1
1 / 1 / 0
Регистрация: 22.10.2010
Сообщений: 25
01.02.2011, 19:18
Цитата Сообщение от Puporev Посмотреть сообщение
Ну так выкиньте у меня рандомный ввод и напишите свой ввод с клавиатуры. Сразу нужно писать как задается последовательность, больше делать нефиг как переписывать.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
uses crt;
const n=20;
var a:array[1..n] of integer;
    i,j,k:byte;
    x:integer;
begin
clrscr;
writeln ('skolko elementov posledovaetelnossni');
readln(n);
for i:=1 to n do begin
writeln ('vvedite',i,'-j element posltdovatelnosti');
readln (a[i]);
end;
writeln;
k:=0;
for i:=1 to n do
if a[i] mod 2=0 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i],' ');
readln
end.


Вот так!!!!????
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.02.2011, 19:24
Цитата Сообщение от Дарья1991 Посмотреть сообщение
writeln ('skolko elementov posledovaetelnossni');
readln(n);
Это уберите, у Вас же размер последовательности константа=20
0
1 / 1 / 0
Регистрация: 22.10.2010
Сообщений: 25
01.02.2011, 19:28
это все убрала..но почему то в ответе не точно все делает, во - первых повторяет 2 раза числа которые находятся на 1,2,3 месте...и не точно расставляет четные и нечетные числа
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.02.2011, 19:29
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
const n=20;
var a:array[1..n] of integer;
    i,j,k:byte;
    x:integer;
begin
clrscr;
writeln('Vvedite ',n,' elementov posledovatelnosti:');
for i:=1 to n do begin
write ('a[',i,']=');
readln (a[i]);
end;
clrscr;
writeln ('Ishodnaya posledovatelnost:');
for i:=1 to n do
write(a[i],' ');
writeln;
k:=0;
for i:=1 to n do
if a[i] mod 2=0 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i],' ');
readln
end.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.02.2011, 19:31
Что не так расставляет?
Миниатюры
Найти члены ak последовательности a1,…,an, кратные 3 и не кратные 5, и определить их количество.  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.02.2011, 19:32
И вообще, впредь не лезьте в чужие темы, создавайте свои, а то можно и условия задач спутать...
0
1 / 1 / 0
Регистрация: 22.10.2010
Сообщений: 25
03.02.2011, 13:03
Спасибо Вам большое...но у меня есть просьба..не могли вы бы мне объяснить пошагово...что тут делается!?????????????
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.02.2011, 13:16
Ну, ввод и вывод расписывать не будем, это нужно знать.
Сам алгоритм.

Pascal
1
2
3
4
5
6
7
8
9
10
k:=0; //количество перестановок элементов
for i:=1 to n do //смотри по порядку
if a[i] mod 2=0 then//если попалось четное
  begin
    k:=k+1;//считаем
    x:=a[i];//запоминаем
    for j:=i downto k+1 do //от этого элемента до того, который стоит за последним переставленным
    a[j]:=a[j-1];//всем элементам присваиваем значение предыдущего, данный элемент сотрется
    a[k]:=x;//получится пустое место, на него пишем элемент, который запомнили
  end;
Например
Code
1
1 3 4 5 5 6 7
нашли 4
к=1, значит на первое место
Code
1
4 1 3 5 5 6 7
нашли 6
к=2
Code
1
4 6 1 3 5 5 7
0
1 / 1 / 0
Регистрация: 22.10.2010
Сообщений: 25
03.02.2011, 13:24
Ну большое пребольшое Вам спасибо...Еще хотела бы спросить насчет старых задач, которые Вы мне решали..но не могу их найти
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.02.2011, 13:55
Дарья1991, Нажмите кнопку Поиск и выберите мои темы или сообщения...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2011, 13:55
Помогаю со студенческими работами здесь

Найти члены последовательности, кратные 3 и не кратные 5
День добрый, нужна ваша помощь Даны натуральные числа n, a1,…,an, где n≤5000. Найти члены последовательности a1,…,an, кратные 3 и не...

Дан массив из указателей на целые числа, вывести все члены данного массива, кратные 3, кратные 5
Дан массив из указателей на целые числа вывести все члены данного массива кратные 3 , кратные 5 Заранее благодарю.

Вывести на экран элементы массива, кратные 2 и кратные 5, подсчитать их количество
задан массив из 40 элементов принадлежащих отрезку от А до Б(вводятся с клавиатуры) вывести на экран элементы кратные 2 и кратные...

Найти третий массив, в который записать сначала все кратные 4 элементы первого массива, а затем все кратные 3
4.Элементы двух массивов – целые числа в пределах от 4 до 29. Найти третий массив, в который записать сначала все кратные 4 элементы...

Найти в последовательности все пары, кратные 10
Дан массив целых чисел a0,..,an-1.Найти в данной последовательности все пары (ai, ai+1), такие, что ai*ai+1 кратно 10.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru