Итак формулировка задачи такова «найти все четные элементы массива, вывести на экран, и подсчитать их количество».
Для начала определим, что такое четное число вообще? правильно, четными числами называются числа, которые делятся на 2 без остатка (иногда еще говорят кратны 2).
Теперь определимся как это реализовать. В паскале есть такой замечательный оператор mod, который нам как раз и необходим. Сей оператор отвечает за деление с остатком, а если быть точнее, применив данный оператор, вы получаете остаток от деления. Например 11 разделить на 2. Использовав mod мы получим в ответе число 1.
11/2 = 5 (остаток 1)
Теперь как это все записать в паскале. Пусть переменная х — это остаток
x := 11 mod 5
Вернемся к нашей задаче, где нас интересует нахождение четных элементов массива. Для ее решения нужно подойти к составлению кода логически .
Каков остаток при делении четного числа на 2? Верно, остаток всегда равен нулю. (Подробнее о четности вы можете прочесть в статье оператор div и оператор mod) То есть нам просто нужно использовать цикл с условием вида
if s[i] mod 2 = 0 then
Ну а теперь код всей задачи (как в помните нам еще было необходимо подсчитать количество четных чисел и вывести их всех на экран)
var i,x,y:integer;s:array [1..10] of integer;
begin
for i:=1 to 10 do
read(s[i]);
for i:=1 to 10 do
if s[i] mod 2=0 then begin
writeln (s[i]);
y:=y+1;
end;
writeln;
writeln(‘количество четных чисел = ‘,y)
end.
Darkcat112 Кот форума 9 / 9 / 5 Регистрация: 02.03.2020 Сообщений: 183 |
||||
1 |
||||
Вывести четные элементы04.03.2020, 19:15. Показов 17181. Ответов 20 Метки pasc, pascal, pascal abc, pascal abc net, pascalabc, pascalabc.net, паскаль, паскаль abc.net (Все метки)
Дан массив, состоящий из целых чисел. Напишите программу, которая выводит те элементы массива, которые являются чётными числами. Сначала задано число N — количество элементов в массиве (1N100). Далее через пробел записаны N чисел — элементы массива. Массив состоит из целых чисел. Необходимо вывести все четные элементы массива (то есть те элементы, которые являются четными числами).
Данная прога выводит чётные переменные из динамического массива (нужно подредактировать),а нужно числа(чётные)
0 |
Пс 254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
||||||||
04.03.2020, 21:33 |
2 |
|||||||
Сообщение было отмечено Darkcat112 как решение Решение1)Новый вариант:
2)Ваш,дополненный:
1 |
Andrew_97 60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
||||
04.03.2020, 22:08 |
3 |
|||
0 |
254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
|
04.03.2020, 22:11 |
4 |
Сообщение было отмечено Darkcat112 как решение РешениеAndrew_97, Зачем вам статичный массив? Добавлено через 50 секунд
1 |
Кот форума 9 / 9 / 5 Регистрация: 02.03.2020 Сообщений: 183 |
|
05.03.2020, 19:31 [ТС] |
5 |
Пс, Спасибо что ответили(вижу вы зашди на мои темы),благодарю,но можете объяснить такую команду как Odd?
0 |
Пс 254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
||||
05.03.2020, 19:54 |
6 |
|||
Сообщение было отмечено Darkcat112 как решение РешениеDarkcat112, Прочитайте описание Добавлено через 12 минут
1 |
Andrew_97 60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
||||||||
05.03.2020, 19:59 |
7 |
|||||||
Главное отличие процедуры от функции : 1)процедура должна быть использована как отдельный вид оператора;
Если есть желание, то рекомендую вам ознакомиться с процедурами и функциями. Процедуры и функции (подпрограммы) облегчают жизнь программиста во многом и увеличивают ценность вашего кода.
0 |
254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
|
05.03.2020, 20:08 |
8 |
Andrew_97, «Функция обязательно должна быть встроена во что-то»
1 |
Кот форума 9 / 9 / 5 Регистрация: 02.03.2020 Сообщений: 183 |
|
05.03.2020, 20:30 [ТС] |
9 |
Можете примен привести? Наверное тут пример надо привести
0 |
254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
|
05.03.2020, 20:32 |
10 |
Darkcat112, Наверное.
1 |
Andrew_97 60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
||||
05.03.2020, 20:34 |
11 |
|||
Если мы хотим заполнить массив произвольным образом, то нужно воспользоваться функцией random. При каждом витке цикла [1..n] функция будет нам возвращать произвольное число, принадлежащее [25;54]. Например, заполняем массив произвольным образом числами [-25;25]. Всего чисел 51: до нуля 25 отрицательных, 0, 25 положительных. i-ому элементу массива мы должны присвоить одно из таких значений, где i принадлежит [1..n] : 1, 2, 3, … , 25. Каждый раз a[i] элементу массива будет выбрано произвольное число [-25;25]. Здесь функция встраивается в a[i]. Просто так, как отдельные команды — функции не используют, обязательно нужно пристроить их к чему-либо. В данном случае, к i элементу массива a[i].
0 |
Пс 254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
||||
05.03.2020, 20:38 |
12 |
|||
Не используйте статичные массивы
0 |
Кот форума 9 / 9 / 5 Регистрация: 02.03.2020 Сообщений: 183 |
|
05.03.2020, 20:40 [ТС] |
13 |
Если мы хотим заполнить массив произвольным образом, то нужно воспользоваться функцией random. Ключевое слово если…В условие сказано о динамическом массиве который был создан и надо было просто добавить условие)
0 |
Andrew_97 60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
||||
05.03.2020, 20:44 |
14 |
|||
Пс, Darkcat112,
0 |
254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
|
05.03.2020, 20:46 |
15 |
Andrew_97, Нет смысла изучать статичные массивы,тем более в .Net .
0 |
60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
|
05.03.2020, 20:50 |
16 |
Пс, благодарю вас за совет, постараюсь познакомиться с динамическими массивами в ближайшее время.
0 |
254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
|
05.03.2020, 20:51 |
17 |
Andrew_97, Если будут вопросы,обращайтесь
0 |
Andrew_97 60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
||||
05.03.2020, 21:01 |
18 |
|||
Пс, интересный пример использования пользовательской функции (подпрограммы). Здесь узнаем, простое у нас число или нет. Как мы видим, функция встроена в условный оператор (if).
0 |
Пс 254 / 147 / 69 Регистрация: 29.07.2018 Сообщений: 1,176 |
||||
05.03.2020, 21:08 |
19 |
|||
Andrew_97, Я знаю)
Добавлено через 1 минуту
1 |
Andrew_97 60 / 41 / 23 Регистрация: 09.02.2020 Сообщений: 232 |
||||
05.03.2020, 21:14 |
20 |
|||
Пс, или я ошибаюсь?
0 |
В данной статье я написал, что такое массивы в Паскале, и как их использовать благодаря языку программирования. Для примера, в конце статьи, написана простая программа, которая определяет четность числа и выводит из массива на экран четные числа.
Массив в Паскале (как и, почти, во всем программировании) — это набор переменных(или констант) одного типа. Массиву присваивается имя, как и переменной или константе. Набор переменных (констант) в массиве является конечным, то есть Вы должны указать, сколько переменных включает в себя массив, если он состоит из переменных, или указать все константы в него входящие, если он состоит из констант. Для доступа к конкретной переменной (констант) в массиве необходимо написать имя массива и в квадратных скобках указать порядковый номер переменной.
Пример объявления массива целых чисел в разделе констант:
const
int_num = (1,5,8,2,44,7,3,66,4,7,34,7896,23463456,23,1,85456,44354,9);
Пример объявления массива целых чисел в разделе переменных:
var
int_number: array[1..1000] of integer;
Чтобы обратится (записать значение) к массиву, необходимо указать, к какому конкретно элементу массива Вы хотите обратится:
int_number[587]:= 24545;
Но если Вы хотите скопировать все значения массива number_1 в массив number_0, то можно записать так:
number_0:= number_1; {number_0[1]:=number_1[1], number_0[2]:=number_1[2], ...}
Естественно для такой операции элементы массивы в Паскале должны иметь одинаковый тип.
Чтобы обработать большое количество элементов массива, для удобства используют циклы.
Например, цикл «for»:
for i:= 1 to 1000 do
begin
int_number[i]:=random(9); {Записываем случайное число}
end;
Например, цикл «while»:
while i<=1000 do
begin
i:=i+1; {Увеличиваем счетчик на единицу}
int_nember[i]:=random(9); {Записываем случайное число}
end;
Массивы могут быть многомерными.
Пример двумерного массива (матрица):
var
mat_num: array[1..100, 1..100] of real;
Чтобы присвоить значения такому массиву необходимо уже два цикла, один будет вложен в другой:
for i1:=1 to 100 do
begin
for i2:=1 to 100 do
begin
mat_num[i1,i2]:=random(87)+sin(i1)*pi;
end;
end;
Чтобы все стало лучше понятно, напишем программу, которая будет заносить в вывод массива только четные числа и выводить их на экран.
PROGRAM Chetnye_chisla; {Имя программы}
uses Crt; {Подключаем модуль Crt, необходимо для функции clrscr}
var {Раздел объявления переменных}
i,j: integer; {i- наши числа j- индекс массива}
ostatok: real; {Для проверки наличия остатка от деления}
ch_chisla: array[1..50] of integer; {Массив, в котором будут хранится четные числа}
BEGIN {Начало выполнения программы}
clrscr; {Для начала очищаем экран}
for i:=1 to 100 do {Начало цикла}
begin
ostatok:= i mod 2; {Определяем четность, делим число на 2}
if ostatok=0 then {Если нет остатка от деления, значить число четное}
begin
j:=j+1; {Увеличиваем индекс цикла на единицу}
ch_chisla[j]:=i; {Записываем четное число в массив}
write(i,' '); {Выводим на экран четное число и пробел}
end;
end;
readln; {Нужно чтобы увидеть результат - компьютер будет ждать нажатия "Enter"}
END. {Конец программы}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
program _; var c:array[1..100] of integer; a,b,i:integer; begin writeln('введите а и b'); readln(a,b); writeln('введите числа входящие в последовательность (от a до b)') for i:=a to b do begin read(c[i]); end; writeln('Все четные числа:'); for i:=a to b do if not odd(c[i]) then write(c[i],' '); end.
Похожие записи/страницы:
- Из четырех заданных чисел, четные сложить, а нечетные вычесть» дело в том что, четные числа складывает, а нечетные…
- Дан одномерный числовой массив. Все числа, имеющие четные цифры на четных позициях, увеличить в k раз, а все остальные…
- Написать программу, вычисляющую среднее арифметическое последовательности положительных чисел. Числа вводятся с…
- Пусть вводится последовательность из целых чисел, оканчивающаяся нулем. Найти 2 наибольших числа последовательности -…
- Дана последовательность К чисел. определить, сколько чисел этой последовательности содержит в своей записи все цифры…
- Написать программу, в одномерном массиве чётные числа переместились в начало массива, а не чётные в конец-…
- Вывести четные числа среди положительных элементов массива — Pascal(Паскаль)
- Найти среди последовательности n чисел чётные числа после первой единицы — Pascal(Паскаль)
Формулировка задачи:
Всем привет! Помогите пожалуйста.
Нужно вывести все четные цифры из числа
Например дано число 123456 соответственно нужно вывести из него четные числа 2,4,6
Заранее спасибо за помощь!
Код к задаче: «Вывести все четные цифры из числа»
textual
Var n:integer; Begin write('Введите число: ');readln(n); While n>0 do Begin if n mod 10 mod 2 = 0 then writeln(n mod 10); n:=n div 10; End; readln; End.
Полезно ли:
13 голосов , оценка 3.923 из 5