Написать программу которая из заданного одномерного массива размерности n выводит только те элементы

Содержание
Читайте также:
Программу для обновления встроенного по мфу

Значительное количество задач вынес в подраздел Задачи 2, в котором кроме условий появляются и их решения.
Здесь предлагаю для самопроверки решить несколько простых задач для студентов-первокурсников, которые начинают изучать программирование.
Задачи повышенного уровня сложности решайте после проработки примеров решения задач по теме «Массивы».
Вам будет полезен раздел Примеры решения задач начинающими программистами — соавторами сайта с комментариями .

Простые задачи

Решены задачи 1-3, 6, 10, 13-15. Не решены 4-5, 7-9, 11,12, 16-33.
Задача 1. Введите с клавиатуры строку произвольной длины и подсчитайте процент вхождения заданного символа в строку.

Задача 2. Задан массив действительных чисел размерности 10х10. Найти суммы элементов каждой строки, произведения элементов каждого столбца, и максимальный элемент главной диагонали (подсказка: все элементы, для которых номер строки совпадает с номером столбца).

Задача 3. В заданной строке текста определите количество слов. Каждое слово отделено друг от друга пробелом.

Ввод и вывод матриц в c++

Задача 4. Задан одномерный массив целых чисел. Образуйте из него два отсортированных по возрастанию массива, содержащих четные и нечетные числа. Подсказка: четное число делится на 2 без остатка. Есть пример развернутого решения задачи.

Задача 5. В заданном массиве действительных чисел найдите разность между максимальным и минимальным числом.

Задача 6. В одномерном массиве из 100 чисел M[] подсчитайте количество элементов, удовлетворяющих условию 0 < M[i]

Задача 7. Определите, является ли исходная строка символов палиндромом (читается одинаково с начала и с конца). Регистры символов и пробелы игнорируйте.

Задача 8. Задана квадратная матрица целых чисел. Подсчитайте количество отрицательных и положительных элементов, а также выведите на печать координаты нулевых элементов (номер строки и номер столбца).

Задача 9. Введите с клавиатуры строку произвольной длины и подсчитайте процент вхождения гласных букв латинского алфавита в строку (не различая регистры).

Задача 10. Задан массив действительных чисел из N элементов (используйте генератор случайных чисел). Определить количество элементов, значения которых находятся в диапазоне от -100 до +100.

Задача 11. Задано пять произвольных целых чисел (элементы массива). Определить, является ли их расположение в массиве упорядоченным (т.е. по возрастанию или по убыванию) или неупорядоченным.

Задача 12. Задан массив действительных чисел из N элементов (используйте генератор случайных чисел). Определить количество элементов, значения которых находятся вне диапазона от -10 до +10.

Задача 13. В двухмерном массиве переставьте попарно соседние строки, т.е. 1-ю со 2-ой, 3-ю с 4-й и т.д. Результат выведите на экран.

Задача 14. Определите, присутствует ли в тексте, заданном в виде строки, некоторое слово (различие регистра игнорируйте).

Задача 15. Задан генератором случайных чисел одномерный массив из действительных чисел. Найдите максимальное и минимальное число этого массива.

Как решать задачи по программированию. Пример: задача «Спираль»

Задача 16. Напишите методы для ввода одномерного массива с клавиатуры и для вывода его содержимого на экран.

Задача 17. В массиве строк (список фамилий) определите самую длинную фамилию.

Задача 18. Найдите сумму и произведение элементов квадратной матрицы размерности 10х10.

Задача 19. Задано три треугольника со своими сторонами (a, b, c). Найти треугольник с наибольшим периметром или наибольшей площадью. Всегда ли это будет один и тот же треугольник?

Задача 20. Сформируйте массив целых чисел по алгоритму Фибоначчи: 1-й и 2-й элемент равны 1, а каждый последующий равен сумме двух предыдущих, т.е.: 1, 1, 2, 3, 5, 8, … . Найдите сумму и произведение его N членов.

Задача 21. Задан двумерный массив чисел (используйте генератор случайных чисел). Отсортируйте каждую нечетную строку по возрастанию, а каждую четную – по убыванию, после чего выведите значение k-го столбца.

Задача 22. Сформируйте одномерный массив действительных чисел как геометрическую последовательность со знаменателем ½, начиная с 1, т.е.: 1,0 0,5 0,25 0,125 и т.д. Чему будет равна сумма 100 его членов с точностью до 10 -10 ?

Задача 23. Дано: информация о студенте вуза содержит следующие элементы:
а) фамилия, имя;
б) шифр группы;
в) массив оценок по каждой дисциплине за семестр (от 2 до 5).
Информация о студенте является элементом массива М[ ].
Требуется определить фамилии студентов, которые будут включены в приказ на отчисление по результатам сессии (условие – по трем или более дисциплинам каждая оценка — двойка).

Задача 24. Известны (вводятся с клавиатуры) размеры 10 треугольников (задаются три стороны). Напишите функцию, вычисляющую площадь треугольника по формуле Герона и с ее помощью определите номер треугольника с наибольшей площадью.

Задача 25. Вычислите сумму членов последовательности, начинающейся с единицы, в которой каждый следующий член в три раза больше предыдущего, т.е. , причем последний член последовательности не должен превышать 1000.

Задача 26. Задан массив целых чисел A[20]. Создать другой массив целых чисел B[ ], в который войдут все числа исходного массива, удовлетворяющие условию: А[i]

Читайте также:
Мастер совместимости программ определение

Задача 27. Введите с клавиатуры строку произвольной длины, расположите символы в строке в порядке возрастания их кода и образуйте новую строку, в которой символы будут расположены в обратном порядке относительно отсортированной строки.

Задача 28. Дано: информация о каждом жителе города содержит следующие элементы:
а) фамилия, имя, отчество;
б) домашний адрес (улица, дом);
в) дата рождения.
Информация о жителе является элементом одного большого массива М[ ].
Требуется составить списки избирателей, живущих по заданному адресу в алфавитном порядке.
Примечание: Правом участия в выборах обладают люди не моложе 18 лет.

Задача 29. Составьте процедуры, которые бы вычисляли сумму и произведение двух матриц (не обязательно квадратных) с проверкой размерностей.

Задача 30. Дано: информация о студенте вуза содержит следующие элементы:
а) фамилия, имя;
б) шифр группы;
в) массив оценок по каждой дисциплине за семестр (от 2 до 5).
Информация о студенте является элементом массива М[ ].
Требуется определить фамилии студентов, которые будут включены в приказ на стипендию по результатам сессии (условие – оценки по всем дисциплинам не ниже четверки).

Задача 31. Вычислите сумму членов последовательности, в которой каждый следующий член в три раза меньше предыдущего, начиная с единицы, т.е.:
S=1+1/3+1/9+1/27+…
с погрешностью 10 -3 .

Задача 32. Отсортируйте введенный список фамилий по алфавиту и выведите его на экран.

Задача 33. Напишите функцию, вычисляющую экспоненту через ряд с заданной точностью 10 -15 , сравните результат с константой System.Math.E.

Задачи повышенного уровня сложности

Восемь ферзей 2

Постановка задачи. Можно ли поставить на пустой шахматной доске восемь ферзей так, чтобы ни один из них не «атаковал» другого, т.е. никакие два ферзя не стояли бы на одном и том же столбце или на одной и той же строке или на одной и той же диагонали? Определите максимально возможное число расстановок 8 ферзей в соответствии с указанными правилами. Дополните задачу некоторыми условиями, например, чтобы ферзей нельзя было ставить на главные диагонали, или чтобы первый ферзь был поставлен на строго определенную клетку шахматной доски (например, а2). Придумайте алгоритм, не использующий полный перебор, как в примере решения задачи «Восемь ферзей».

Решето Эратосфена

Простое число – это любое целое число, которое точно делится без остатка только само на себя и 1. Решето Эратосфена работает следующим образом:
1) Создайте массив, все элементы которого имеют начальное значение 1 (истина). Элементы массива с простыми индексами останутся равными 1. Все другие элементы массива, в конечном счете, установятся равными нулю.
2) Начиная с индекса массива 2 (индекс 1 должен быть простым) каждый раз отыскивается элемент массива с единичным значением, циклически обрабатывается оставшаяся часть массива и устанавливается в нуль каждый элемент массива, чей индекс кратен индексу элемента с единичным значением. Для индекса 2 все элементы в массиве с большим чем 2 индексом и кратные 2 установятся равными нулю (индексы 4, 6, 8, …); для индекса 3 все элементы с индексом свыше 3 и кратные 3, установятся равными нулю (индексы 6, 9, 12, …) и т.д.
3) Когда процесс закончится, элементы массива с единичным значением указывают, что их индексы – простые числа. Эти индексы могут быть напечатаны.

Напишите программу, которая использует массив из 100 млн элементов для определения и печати простых чисел между N_min и N_max. Элемент 0 массива во внимание не принимайте.

Сравните эффективность алгоритма с алгоритмом решения задачи «Простые числа». Критерий эффективности – время решения задачи.

Путешествие коня

Математик Л. Эйлер предложил головоломку:

Может ли шахматная фигура «конь» обойти все 64 клетки шахматной доски, побывав на каждой из них только один раз? Конь ходит L-образно (на две клетки в каком-либо направлении и затем на одну клетку в перпендикулярном направлении).

Таким образом, из клетки в середине пустой доски конь может сделать восемь различных ходов (пронумеруем их от 0 до 7). На листе бумаги 8х8 попытайтесь выполнить путешествие коня вручную. Пометьте цифрой 1 первую клетку, куда вы поставите коня, цифрой 2 — вторую, цифрой 3 – третью и т.д.

Разработайте программу путешествия коня на шахматной доске. Введите счетчик, который изменяется от 1 до 64. Записывайте в массив номер последней клетки, на которую передвинулся конь. Помните, что для контроля каждого возможного хода нужно видеть, был ли уже конь на этой клетке и, конечно же, проверять, не выйдет ли конь за пределы шахматной доски.

Запустите программу. Сколько ходов сделал ваш конь?

Измените программу, используя опыт игры «в ручную», либо генератор случайных чисел (при выборе хода).

NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.

Источник: c-sharp.pro

PASCAL
v,vmb:real;
begin
writeln(‘введите количество каналов k’);
readln(k);
writeln(‘введите частоту в Гц (1КГц=1000гц)’);
readln(ch);
writeln(‘введите время в секундах’);
readln(t);
writeln(‘введите глубину кодирования i в битах’);
readln(i);
v:=k*ch*t*i;
vmb:=v/(1024*1024*8);
writeln(‘объем зв.файла в Мб ‘,vmb);
end.

Задача ( урок )

Составить программу, которая вычисляет количество цветов в палитре, если дан объем графического файла в Кбайтах — V, количество точек по горизонтали и вертикали — x, y.

Формула объема графического файла:
V=x*y*I, где I — глубина кодирования точки в битах
Количество цветов

В данной задаче используем функцию trunc, которая отбрасывает дробную часть т.к. объем файла не должен превышать вводимое число.
Пример trunc(6,578)=6
Для подсчета степени двойки используем цикл for с рекурсией

N:=1;
for j:=1 to k do N:=N*2;

текст программы
var v,x,y:integer;
N,k,j:integer;
i:real;
begin
writeln(‘введите объем файла в Кб’);
readln(v);
writeln(‘введите количество точек по гор. x’);
readln(x);
writeln(‘введите количество точек по вер. y’);
readln(y);
i:=v*1024*8/(x*y);
k:=trunc(i);
N:=1;
for j:=1 to k do N:=N*2;
writeln(‘глубина кодирования i=’,k);
writeln(‘количество цветов в палитре=’,N);
end.

________________________________________________________

Повторение

Условный оператор if . then . else (если . тогда/да . иначе/нет)

Задача ( урок )
Вычислите значение выражения y = (5x + 7)/(x+3), х целое число, вводимое с клавиатуры (обратите внимание, что у в данной задаче принадлежит множеству действительных чисел, т.е. тип переменных real).
В данной программе используется условный оператор if для того, чтобы исключить деление на 0. Пример алгоритма с ветвлением (или разветвляющийся алгоритм).


Пример
Вычислите значение выражения

, x целое число, вводимое с клавиатуры.

Обратите внимание, что в данной программе у нас идет ограничение на переменную x: под корнем выражение (3x-20) должно быть больше или равно 0

Пример
Вычислите значение выражения

, x целое число, вводимое с клавиатуры.

Обратите внимание, что в данной программе у нас идет ограничение на переменную x: под корнем выражение (5x-20) должно быть больше или равно 0 и (x-4) не равно 0. Задачу решаем с использование сложного условия.
Вариант 1 с «и»: (5*x-20>=0) and (x-4<>0)
Вариант 2 с «или»: (5*x-20<0) or (x-4=0)

Задача (самостоятельная работа)
Вычислите значение выражения

, x действительное число, вводимое с клавиатуры.

________________________________________________________

Оператор цикла с известным количеством повторений for i:=начальное значение to конечное значение do оператор (повторение)

Задача
Составьте программу, которая выводить на экран в строчку 10 случайных чисел из промежутка от 21 до 75.
Пояснение
Обратите внимание, что случайные числа задаются функцией random(x). Для того чтобы задать случайные числа из промежутка от a до b есть формула x:=random(b-a+1)+a, в нашем примере
x:=random(55)+21

Задача
Составьте программу, которая выводит на экран в строчку 8 случайных чисел из промежутка от 15 до 100 и находит максимальное из них.
Пояснение
Обратите внимание, что если требуется найти максимальное число, начальное значение переменной, в которой будем его хранить, делаем наименьшим из возможных (в данном примере не более 14).

Условие для нахождения максимального элемента if max, т.е. если максимальны будет меньше следующего элемента, то меняется значение max на этот элемент.

Задача
Составьте программу, которая выводит на экран в строчку 8 случайных чисел из промежутка от 15 до 100 и находит минимальное из них.
Пояснение Обратите внимание, то если требуется найти минимальное число, начальное значение делаем наибольшим из возможных (в данном примере не менее 101). Условие для нахождения минимального элемента if min>m[i] then min:= m[i].

________________________________________________________

Одномерный массив.

Упорядоченное множество однотипных элементов, расположенное в строке (или столбце).
В общем виде:
а1, а2, а3, . аn
Описание одномерного массива
var mas: array[1..5] of integer;
Задается массив с именем mas, количество элементов 5, элементы целые числа
имена элементов — mas[1], mas[2] .

Формирование массива. Ввод элементов массива с клавиатуры.

Задача

Составьте программу, задающую одномерный массив целых чисел из 6 элементов, вводимых с клавиатуры, и оформите вывод элементов на экран в строчку.
текст программы
var m: array [1..6] of integer;
i: integer;
begin
for i:=1 to 6 do
begin
writeln(‘Введите ‘,i,’ элемент’);
readln(m[i]);
end;
for i:=1 to 6 do write(m[i],’ ‘);
end.

Формирование массива с помощью функции случайных чисел random.

Задача
Составьте программу, задающую одномерный массив размерность 10, состоящий из случайных чисел из промежутка от 5 до 22. Оформите вывод элементов на экран в строчку.
Пояснение
Обратите внимание, что случайные числа задаются функцией random(x).Если требуются числа из промежутка от a до b, то формула имеет следующий вид random(b-a+1)+a

текст программы
var m: array [1..10] of integer;
for i:=1 to 10 do
m[i]:=random(17)+5;
Задача ( урок )

Составьте программу, которая в одномерном массиве размерностью 8 (элементы массива случайные числа из промежутка от 15 до 100) находит максимальный элемент. Оформите вывод элементов на экран в строчку, максимальный на следующей строке .

Пояснение
Обратите внимание, что это задание аналогично задаче 7. Но в данном случае при составление программы используется массив.

текст программы
var m:array[1..8] of integer;
i,max:integer;
begin
max:=14;
for i:=1 to 8 do
begin
m[i]:=random(86)+15;
write(m[i],’ ‘);
if max end;
writeln;
writeln(‘Максимальный — ‘,max);
end.


Задача ( урок )

Составьте программу, которая в одномерном массиве размерностью 12 (элементы массива случайные числа из промежутка от 0 до 6) находит количество элементов равных 3. Оформите вывод элементов на экран в строчку, количество искомых элементов на следующей строке .

Пояснение
Обратите внимание, что переменная k — счетчик, поэтому начальное значение переменной обнуляем. Условие для подсчета 3: if w[i]=3 then k:=k+1, т.е. если элемент равен 3, то k увеличивается на 1.

текст программы
var w:array[1..12] of integer;
i,k:integer;
begin
k:=0;
for i:=1 to 12 do
begin
w[i]:=random(7);
write(w[i],’ ‘);
if w[i]=3 then k:=k+1;
end;
writeln;
writeln(‘Количество троек ‘,k);
end.

Задача ( урок )

Составьте программу, которая в одномерном массиве размерностью 7 (элементы массива случайные числа из промежутка от 1 до 8) сумму элементов меньше или равных 3. Оформите вывод элементов на экран в строчку, количество искомых элементов на следующей строке .

Пояснение
Обратите внимание, что переменная s — накопитель суммы, поэтому начальное значение переменной обнуляем. Условие для подсчета суммы элементов меньших или равных 3:

if w[i], т.е. если элемент меньше или равен 3, то s увеличивается на значение элемента.

текст программы
var w:array[1..7] of integer;
i,s:integer;
begin
s:=0;
for i:=1 to 7 do
begin
w[i]:=random(8)+1;
write(w[i],’ ‘);
if w[i] end;
writeln;
writeln(‘Сумма элементов end.

Задача ( урок )
Составьте программу, в которой подсчитывается количество четных элементов, одномерного массива размерность 7, состоящего из случайных чисел из промежутка от 1 до 20. Оформите вывод элементов на экран в строчку. Количество четных элементов на следующей строке.
Пояснение
Обратите внимание, что условием чётности элемента будем выводить через функцию mod (целочисленный остаток от деления). Четные числа делятся на 2 с нулевым остатком:

if w[i] mod 2=0 then k:=k+1

текст программы
var m: array [1..7] of integer;
i,k: integer;
begin
k:=0;
for i:=1 to 7 do
begin
m[i]:=random(20)+1;
if m[i] mod 2=0 then k:=k+1;
write(m[i],’ ‘);
end;
writeln;
writeln(‘Количество четных элементов ‘,k);
end.

Задача ( урок )
Составьте программу, которая в одномерном массива размерность 20, состоящим из случайных чисел из промежутка от 1 до 100, находится наибольший элемент оканчивающийся на цифру 2. Оформите вывод элементов на экран в строчку.
Пояснение
Обратите внимание, что в данной задаче используем сложное условие. Проверка, что число оканчивается на цифру 2: m[i] mod 10 =2 и сравнение с максимальным max .
max может не поменяется, т.е. в данной последовательности не будет чисел, оканчивающихся на 2, и после цикла нужно поставить проверку на значение max.
текст программы
var m:array[1..20] of integer;
i,max:integer;
begin
max:=0;
for i:=1 to 20 do
begin
m[i]:=random(100)+1;
write(m[i],’ ‘);
if (m[i]mod 10=2)and(max
end;
writeln;
if max=0 then writeln(‘Среди данных чисел, нет оканчивающегося на 2’)
else writeln(‘Максимальный, оканчивающийся на 2 ‘,max);
end.

Задача ( урок )
Составьте программу, которая в одномерном массива размерность 11, состоящим из случайных чисел из промежутка от 1 до 20, находится наименьший элемент оканчивающийся на цифру 3. Оформите вывод элементов на экран в строчку.
Пояснение
Обратите внимание, что в данной задаче используем сложное условие. Проверка, что число оканчивается на цифру 3: m[i] mod 3 =0 и сравнение с минимальным min>m[i].
Начальное значение min:=21, так как наибольшее число 20.
min может не поменяется, т.е. в данной последовательности не будет чисел, оканчивающихся на 3, и после цикла нужно поставить проверку на значение min.
текст программы
var m:array[1..11] of integer;
i,min:integer;
begin
min:=21;
for i:=1 to 11 do
begin
m[i]:=random(20)+1;
write(m[i],’ ‘);
if (m[i]mod 10=3)and(min>m[i]) then min:=m[i];
end;
writeln;
if min=21 then writeln(‘Среди данных чисел, нет оканчивающегося на 3’)
else writeln(‘Минимальный, оканчивающийся на 3 ‘,min);
end.

Задача ( урок )
Составьте программу, которая в одномерном массива размерность 15, состоящим из случайных чисел из промежутка от 20 до 80, находится наибольший элемент оканчивающийся на цифру 2 или на цифру 8. Оформите вывод элементов на экран в строчку.
Пояснение
Обратите внимание, что в данной задаче используем сложное условие. Проверка, что число оканчивается на цифру 2 или на 8: ((m[i] mod 2 =0) or (m[i] mod 10=8)) и сравнение с максимальным max.
текст программы
var m:array[1..15] of integer;
i,max:integer;
begin
max:=19;
for i:=1 to 15 do
begin
m[i]:=random(61)+20;
write(m[i],’ ‘);
if ((m[i]mod 10=2)or(m[i]mod 10=8))and(max
end;
writeln;
if max=19 then writeln(‘Среди данных чисел, нет оканчивающегося на 2 или 8’)
else writeln(‘Максимальный, оканчивающийся на 2 или 8 ‘,max);
end.

Сортировка одномерного массива

Задача ( урок )

Составить программу, которая сортирует элементы одномерного массива размерностью 7 по возрастанию (элементы массивы случайные числа от 10 до 60).
текст программы
var mas:array[1..7] of integer;
i,j,a:integer;
begin
for i:=1 to 7 do
begin
mas[i]:=random(60)+1;
write(mas[i],’ ‘);
end;
for j:=1 to 6 do
for i:=1 to 6 do
if mas[i]>mas[i+1] then
begin
a:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=a;
end;
writeln;
write (‘Отсортированный массив ‘);
for i:=1 to 7 do write(mas[i],’ ‘);
end.

Двумерный массив

Описание двумерного массива
var mas: array[1..3,1..4] of integer;
Задается двумерный массив (матрица) с именем mas, количество строк — 3, количество столбцов — 4
имена элементов — mas[1,1], mas[1,2] .
Расположение:
mas[1,1] mas[1,2] mas[1,3] mas[1,4]
mas[2,1] mas[2,2] mas[2,3] mas[2,4]
mas[3,1] mas[3,2] mas[3,3] mas[3,4]

Задача (урок )

Составьте программу по формированию и выводу на экран двумерного массива размерность 5х4, элементами являются случайные числа от 20 до 99

Источник: pascal304.blogspot.com

Написать программу которая из заданного одномерного массива размерности n выводит только те элементы

Руководство по массивам — ч.1
Руководство по массивам в Java (ч. 1)
Введение

Для хранения данных, используемых при работе программы, применяются переменные того или иного типа. Например, если требуется сохранить имя игрока, то создается переменная String name, если целочисленное значение, то int number и т. д. Когда таких значений немного или их количество заранее известно, то для них приемлемо использовать отдельные переменные.

Но что делать, когда в программе задействовано не одно, а 10 чисел, или их количество становится известно только на этапе запуска приложения, когда пользователь вводит его с клавиатуры? Или в какой-то игре может участвовать разное количество игроков, устанавливаемое при ее старте. В таких ситуациях отдельными переменными уже не обойтись, т. к. их точное количество будет невозможно определить. Да и, если все же попытаться это сделать, код станет громоздким и не универсальным, а работа с ним будет крайне ограниченной из-за невозможности использования цикла для автоматизированной обработки данных.

Вот тут-то и приходит на выручку такая структура данных как массив, которая позволяет хранить в себе значения одного типа, что значительно упрощает их обработку.

Источник: topjava.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru