Infanta 6 / 2 / 0 Регистрация: 15.10.2013 Сообщений: 78 |
||||
1 |
||||
Одномерный массив, поиск кратных чисел23.01.2021, 20:49. Показов 2630. Ответов 3 Метки нет (Все метки)
Задаем одномерный массив, нужно выбрать кратные числу и вывести в новый массив в обратном порядке. получается вводится и обратно выводиться в обратном порядке, а как выбрать кратное числу и их выводить ???
0 |
BlackStoneBlack half-horse half-gateway 115 / 81 / 43 Регистрация: 10.05.2016 Сообщений: 541 |
||||
23.01.2021, 21:11 |
2 |
|||
1 |
Yetty 7427 / 5021 / 2891 Регистрация: 18.12.2017 Сообщений: 15,694 |
||||
23.01.2021, 21:22 |
3 |
|||
Решение
1 |
6 / 2 / 0 Регистрация: 15.10.2013 Сообщений: 78 |
|
23.01.2021, 21:57 [ТС] |
4 |
Спасибо, все работает! Добавлено через 30 минут
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
23.01.2021, 21:57 |
Помогаю со студенческими работами здесь Массив, найти количество чисел, кратных 3 и не кратных 2
Дано одномерный массив A с n целых чисел. Составить программу, найдет сумму элементов массива кратных 6 Случайный одномерный массив с вводом кол-ва элементов и поиск простых чисел
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
program mask; uses crt; const n1=23; n2=19; n3=17; n=25; type mas=array[1..n] of integer; var faf,f,k:integer; x1:mas; x2:mas; x3:mas; n4,i:integer; procedure rand(var j:mas; n:integer); var i:integer; begin for i:=1 to n do begin f:=0; j[i]:=random(50)-5; write(j[i],' '); end; writeln; for i:=1 to n do begin if (j[i] mod k)=0 then f:=f+1; end; writeln('Kol-vo kratnix chisly ',k,'=',f); for i:= 1 to n do if (j[i] mod k)=0 then writeln('Число кратне',k,'=',j[i]); end; begin writeln('vvedi k'); readln(k); clrscr; writeln('Mасив T1:'); rand(x1,n1); writeln; writeln('Mасив T2:'); rand(x2,n2); writeln; writeln('Масив T3:'); rand(x3,n3); readkey; end.
Пример 12.8. На складе хранятся пустые ящики для упаковки товара. Известно, что вместимость одного пакета с конфетами x кг. Какова суммарная масса пакетов с конфетами, которые можно упаковать в такие ящики, заполнив ящик целиком?
Этапы выполнения задания
I. Исходные данные: массив а, количество чисел n, число x.
II. Результат: количество ящиков — k, суммарная масса — s.
III. Алгоритм решения задачи.
1. Ввод исходных данных.
2. Инициализация счетчика и значения суммы:
k = 0; s = 0;
3. Просматривая массив, проверим, является ли текущий элемент числом, кратным x (в этом случае ящик будет заполнен целиком). Если кратен, то увеличим счетчик k на 1, а переменную s — на значение найденного элемента массива.
4. Вывод результата.
IV. Описание переменных: n, x, k — int, a – vector <int>.
Пример 12.9. Имеется список мальчиков 10 В класса и результаты их бега на 100 м. Для сдачи норматива необходимо пробежать дистанцию не более чем за 16 с. Вывести фамилии учащихся, которые не выполнили норматив по бегу. Сколько таких учащихся в классе? Исходные данные хранятся в текстовом файле input.txt. Результат вывести в текстовый файл output.txt.
Этапы выполнения задания
Исходные данные: массивы fam (фамилии учащихся) и r (результаты бега в секундах), количество учащихся n.
II. Результат: фамилии тех учащихся, которые не выполнили норматив по бегу.
III. Алгоритм решения задачи.
1. Ввод исходных данных.
2. Инициализация счетчика: k = 0;
3. Будем просматривать массив с результатами и проверять, является ли текущий элемент числом, большим 16 (норматив не сдан). Если такое значение найдено, то выведем элемент массива fam с соответствующим номером и увеличим значение счетчика на 1.
4. Вывод значения счетчика.
IV. Описание переменных:
n, k – int, r – vector <double>,
fam – vector <string>.
Пример 12.10. В двух линейных массивах x и y, заданных случайным образом, хранятся координаты точек плоскости (–200 ≤ x[i], y[i] ≤ 200). Определить, каких точек больше — лежащих внутри или снаружи области, ограниченной окружностью радиуса r, с центром в начале координат (будем считать, что точки, лежащие на окружности, лежат внутри области).
Этапы выполнения задания
I. Исходные данные: x, y — массивы чисел, r — радиус окружности, n — количество точек.
II. Результат — одно из сообщений: «внутри точек больше», «снаружи точек больше» или «точек поровну».
III. Алгоритм решения задачи.
1. Ввод исходных данных.
2. Инициализация счетчиков: k1 = 0; k2 = 0;
3. Будем просматривать все точки и для каждой проверять принадлежность области. Если x2 + y2 ≤ R2, то точка лежит внутри области, тогда увеличим значение счетчика k1 на 1, если нет, то увеличим на 1 значение счетчика k2.
4. Сравним значения k1 и k2 и выведем результат.
IV. Описание переменных: n, k1, k2 — int, x, y – vector <int>.
Пример 12.11. Задан одномерный массив из n целых чисел. Определить количества элементов, которые являются числами Смита. Вывести те элементы, которые являются числами Смита. (Число Смита — такое составное число, сумма цифр которого равна сумме цифр всех его простых сомножителей.) Например, числом Смита является 202 = 2 × 101, поскольку 2 + 0 + 2 = 4 и 2 + 1 + 0 + 1 = 4.
Этапы выполнения задания
I. Исходные данные: а — массив чисел, n — количество чисел в массиве.
II. Результат: числа Смита и их количество в массиве.
III. Алгоритм решения задачи.
1. Ввод исходных данных.
2. Инициализация счетчика: k = 0;
3. Будем просматривать каждый элемент массива и определять, является ли он числом Смита. Для проверки создадим функцию check, которая будет получать в качестве параметра элемент массива, а также возвращать значение true, если число является числом Смита, и false в противном случае.
3.1. Найдем сумму цифр числа.
3.2. Будем разлагать число на простые множители и для каждого множителя находить сумму цифр.
3.3. Для разложения числа на простые множители будем делить его сначала на 2 (пока делится), затем на 3. На 4 число уже делиться не будет, будем делить на 5 и т. д. Закончится разложение тогда, когда после всех делений число станет равным 1.
4. Также нам понадобится функция sum, которая для числа будет возвращать его сумму цифр.
IV. Описание переменных:
n, k – int, a – vector <int>.
Пример 12.12. Задан одномерный массив из n строк. Данные в массиве читаются из текстового файла input.txt. Каждая строка является предложением из слов, разделенных пробелами. Найти и вывести в текстовый файл output.txt те предложения, в которых нечетное количество слов. Сколько предложений вывели?
Этапы выполнения задания
I. Исходные данные: а — массив строк, n — количество строк в массиве.
II. Результат: искомые строки и их количество.
III. Алгоритм решения задачи.
1. Ввод исходных данных.
2. Инициализация счетчика: k = 0;
3. Будем просматривать каждую строку и определять, сколько в ней слов. Для проверки создадим функцию check, которая будет получать в качестве параметра элемент массива и возвращать количество слов в строке. Если количество слов является нечетным числом, то выведем строку и увеличим значение счетчика.
3.1. Перед каждым словом предложения, кроме первого, стоит пробел. Слово начинается с символа, который пробелом не является.
3.2. Добавим пробел перед первым словом, тогда количество слов будет определяться количеством сочетаний пар символов: пробел и не пробел.
IV. Описание переменных:
n, k – int, а – vector <string>.
Пример 12.8.
V. Программа:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
setlocale(0,«»);
int n;
cout << «n = «;
cin >> n;
vector <int> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
int x;
cout << «масса конфет «;
cin >> x;
int s = 0, k = 0;
for (int i = 0; i < n; i++)
if (a[i] % x == 0){
k++;
s += a[i];
}
cout << «упаковали « << k;
cout << » ящиков, масса «;
cout << s << » кг» << endl;
return 0;
}
VI. Тестирование.
VII. Анализ результатов. Ящики, удовлетворяющие условию задачи, имеют массу 15, 25, 10, 20, 45.
Пример 12.9.
V. Программа:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
ifstream fin («input.txt»);
ofstream fout («output.txt»);
int n;
fin >> n;
fin.ignore ();
vector <string> fam(n);
vector <double> r(n);
for (int i = 0; i < n; i++)
fin >> fam[i] >> r[i];
int k = 0;
for (int i = 0; i < n; i++)
if (r[i] > 16){
fout << fam[i] << endl;
k ++;
}
fout << «не сдали норматив «;
fout << k << » учащихся« << endl;
return 0;
}
VI. Тестирование.
VII. Анализ результатов. Результат Сидорова 21, а Королева 16.1, что превышает норматив.
Пример 12.10.
V. Программа:
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdio>
using namespace std;
int main()
{
srand(time(NULL));
int n, r;
cout << «n = «;
cin >> n;
cout << «r = «;
cin >> r;
vector <int> x(n), y(n);
for (int i = 0; i < n; i++){
x[i] = rand() % 401 — 200;
y[i] = rand() % 401 — 200;
}
int k1 = 0, k2 = 0;
for (int i = 0; i < n; i++)
if (x[i] * x[i] + y[i] * y[i]
<= r * r)
k1++;
else
k2++;
if (k1 > k2)
cout << «vnutri»;
else
if (k1 < k2)
cout << «snarugi»;
else
cout << «porovnu»;
cout << endl;
return 0;
}
VI. Тестирование.
VII. Анализ результатов. По сообщениям, которые выдает программа, сложно судить о ее правильности. Для проверки можно вывести значения координат каждой точки в файл и при проверке ставить дополнительные пометки. Например, «+», если точка внутри, и «-», если снаружи.
Пример 12.11.
V. Программа:
#include <iostream>
#include <vector>
using namespace std;
int sum(int x)
{
int s = 0;
while (x >0){
s += x % 10;
x /= 10;
}
return s;
}
bool check(int x)
{
int s1 = sum(x);
int s2 = 0;
int d = 2;
//разложение на простые множители
while (x != 1){
while (x % d == 0){
s2 += sum(d);
x /= d;
}
d++;
}
return (s1 == s2);
}
int main()
{
int n;
cout << «n = «;
cin >> n;
vector <int> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
int k = 0;
for (int i = 0; i < n; i++)
if (check(a[i])){
k++;
cout << a[i] << » «;
}
cout << endl << «vsego « << k;
cout << » chisel Smita» << endl;
return 0;
}
VI. Тестирование.
Пример 12.12.
V. Программа:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <windows.h>
using namespace std;
using namespace std::__cxx11;
int check(string x)
{
int k = 0;
x = » « + x;
int len = x.length();
for (int i = 0; i < len — 1; i++)
if (x[i] == ‘ ‘ && x[i + 1] != ‘ ‘)
k++;
return k;
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
ifstream fin(«input.txt»);
ofstream fout(«output.txt»);
int n;
fin >> n;
fin.ignore();
vector <string> a(n);
for (int i = 0; i < n; i++)
getline(fin, a[i]);
int k = 0;
for (int i = 0; i < n; i++)
if (check(a[i]) % 2){
fout << a[i] << endl;
k++;
}
fout << «Всего — « << k;
fout << » строк(–а, –u)» << endl;
return 0;
}
VI. Тестирование.
Автор julia89, 25 апр 2013, 18:43
0 Пользователей и 1 гость просматривают эту тему.
Подскажите, пожалуйста,что нужно сделать чтобы программа выводила номер этого числа!!!
Перем Кол, ЧислоХ;
НашМассив = Новый Массив;
ВвестиЧисло(Кол, "Введите количество элементов массива");
Для Сч = 1 По Кол Цикл
ВвестиЧисло (ЧислоХ, "Введите элемент массива");
НашМассив.Добавить(ЧислоХ);
КонецЦикла;
Крат10 = НашМассив[0];
Для Сч = 1 По Кол Цикл
Если НашМассив[Сч-1]%10 = 0 Тогда
Крат10 = НашМассив[Сч-1];
КонецЕсли;
КонецЦикла;
МаксКрат10 = Крат10 ;
Для Сч = 1 По Кол Цикл
Если ЧислоХ > Крат10 Тогда
МаксКрат10 = ЧислоХ ;
КонецЕсли;
КонецЦикла;
Предупреждение("Максимальное кратное 10 число - " + МаксКрат10 );
Цитата: julia89 от 25 апр 2013, 18:43
Подскажите, пожалуйста,что нужно сделать чтобы программа выводила номер этого числа!!!
Ваша программа не выполняет и основной задачи, т.е. она не находит того самого числа — неверно написаны условия и определения во втором (основном) цикле.
Позицию искомого числа определяем в основном цикле (последний цикл в Вашем варианте не нужен) и программка выглядит следующим образом.
Перем Кол, ЧислоХ;
НашМассив = Новый Массив;
ВвестиЧисло(Кол, "Введите количество элементов массива");
Для Сч = 1 По Кол Цикл
ВвестиЧисло (ЧислоХ, "Введите элемент массива");
НашМассив.Добавить(ЧислоХ);
КонецЦикла;
Индекс = 0; // позиция кратного 10 числа
МаксКрат10 = 0;
Для Сч = 1 По Кол Цикл
Если НашМассив[Сч-1]%10 = 0 Тогда
Крат10 = НашМассив[Сч-1];
Если НашМассив[Сч-1] > МаксКрат10 Тогда
МаксКрат10 = НашМассив[Сч-1];
Индекс = Сч;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Предупреждение("Максимальное кратное 10 число - " + МаксКрат10 +
", номер: " + Индекс);
Помогите пожалуйста составить код на 1С
Задача: Дан массив натуральных чисел (можно в коде все задать). Найти минимальный из элементов, кратных числу К. K ввести с клавиатуры в поле формы. Результат вывести с помощью окна сообщения Сообщить.
Теги:
- Форум 1С
-
►
Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4 -
►
Конфигурирование, программирование в 1С Предприятие 8 -
►
В одномерном массиве найти максимальное кратное 10 число и его номер
Похожие темы (5)
Поиск
В одномерном массиве подсчитать количество элементов, кратных 3.
На этой странице вы найдете ответ на вопрос В одномерном массиве подсчитать количество элементов, кратных 3?. Вопрос
соответствует категории Информатика и уровню подготовки учащихся студенческий классов. Если ответ полностью не удовлетворяет критериям поиска, ниже можно
ознакомиться с вариантами ответов других посетителей страницы или обсудить с
ними интересующую тему. Здесь также можно воспользоваться «умным поиском»,
который покажет аналогичные вопросы в этой категории. Если ни один из
предложенных ответов не подходит, попробуйте самостоятельно сформулировать
вопрос иначе, нажав кнопку вверху страницы.