2 / 2 / 1 Регистрация: 13.10.2009 Сообщений: 74 |
|
1 |
|
Найти все нечетные числа в массиве19.03.2010, 19:02. Показов 13843. Ответов 2
дан массив В состоящий из 5-ти элементов, нужно найти все нечетные числа в этом массиве скопировать эти нечетные цифры в другой массив C, вывести массивы В и С
0 |
koorya 334 / 181 / 68 Регистрация: 18.03.2010 Сообщений: 586 Записей в блоге: 11 |
||||
19.03.2010, 19:31 |
2 |
|||
Сообщение было отмечено eg0r как решение Решение
2 |
Kizer 80 / 82 / 36 Регистрация: 20.11.2009 Сообщений: 326 |
||||
19.03.2010, 23:34 |
3 |
|||
а мне вот так больше нравится, но идея таже:
1 |
Формулировка задачи:
дан массив В состоящий из 5-ти элементов, нужно найти все нечетные числа в этом массиве скопировать эти нечетные цифры в другой массив C, вывести массивы В и С
Код к задаче: «Найти все нечетные числа в массиве»
textual
Листинг программы
uses crt; var i,j:integer; b,c:array [1..5] of integer; begin clrscr; j:=0; for i:=1 to 5 do b[i]:=random(100); for i:=1 to 5 do if odd(b[i]) then begin inc(j); c[j]:=b[i]; end; writeln('Исходный Массив: '); writeln; for i:=1 to 5 do write(b[i],' '); writeln; writeln; writeln('Массив нечетных элементов:'); writeln; for i:=1 to j do write(c[i],' '); readkey; end.
VAR a, b, i: Longint; BEGIN WriteLn(' Нечетные числа с помощью цикла FOR'); WriteLn('Введите разделенные пробелом два числа в диапазоне от -2147483648 до 2147483647:'); ReadLn(a, b); if a > b then {Поменяем местами} begin i := b; b := a; a := i end; WriteLn('Нечетные числа в диапазоне от ',a,' до ',b); for i:=a to b do if Odd(i) then Write(i,' '); WriteLn; WriteLn('Второй способ:'); if NOT ODD(a) then a := a + 1; for i := a to b do begin Write(i,' '); i := i + 1 end; END.
Похожие записи/страницы:
- Из четырех заданных чисел, четные сложить, а нечетные вычесть» дело в том что, четные числа складывает, а нечетные…
- Вывести все нечетные числа в массиве в порядке возрастания их индексов, а также их количество — Pascal(Паскаль)
- Опишите множества Pr (1..20) и поместите в него все простые числа в диапазоне 1..20. В цикле организуйте ввод чисел…
- Дано натуральное число. Верно ли, что в данном числе нет цифры A? Цифра A вводится с клавиатуры — Pascal(Паскаль)
- Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи…
- Генерация случайного числа в диапазоне и вычисление площади окружности с заданным радиусом -…
- Из данного натурального числа удалить все цифры A. A вводится с клавиатуры — Pascal(Паскаль)
- Проверить истинность высказывания: «Числа A и B имеют одинаковую четность» — Pascal(Паскаль)
Условие задачи: Вывести на экран все нечетные числа с помощью цикла for и while, промежуток задаёт пользователь.
Сложность: легкая.
Из условия сразу ясно что нам понадобиться две переменные для промежутка, пусть A и B. Для цикла for нам понадобиться переменная i (счетчик).
Создадим каркас
uses
crt;
var
A, B , i :
integer
;
begin
end
.
Теперь попросим пользователя ввести наш промежуток :
write
(
'Введите первую границу промежутка(A): '
); readln(A);
write
(
'Введите вторую границу промежутка(B): '
); readln(B);
Но пользователи бывают разные, так что можно прописать условие на случай если пользователь введет A больше чем B :
if
(A > B)
then
begin
writeln
(
'А должно быть меньше B'
);
Halt;
// выходим из программы
end
;
Вот теперь можно работать с циклом, как определить четное число или нет вы можете почитать (тут).
Сначала сделаем для for :
В цикле мы будем брать первое число из промежутка затем проверять на четность и если оно нечетное, выводить.
for
i:=A
to
B
do
begin
if
i
mod
2
<>
0
then
writeln
(i);
end
;
Вот и всё довольно простой цикл.
Теперь для while, условие выхода у нас будет равенство промежутков, т.е. A = B
while
(A <> B)
do
begin
if
(A
mod
2
<>
0
)
then
writeln
(A);
A := A +
1
;
end
;
Т.е. пока A не равно мы B мы будем выполнять цикл. В самом цикле мы будем делать следующее.
Просто берем переменную A и работаем уже с ней, т.е. если текущее значение A нечетное то его выводим, и в любом случаи увеличиваем A.
Вот и вся задача :
Весь код для цикла for
uses
crt;
var
A, B , i :
integer
;
begin
clrscr;
// очищаем экран
write
(
'Введите первую границу промежутка(A): '
); readln(A);
write
(
'Введите вторую границу промежутка(B): '
); readln(B);
if
(A > B)
then
begin
writeln
(
'А должно быть меньше B'
);
Halt;
// выходим из программы
end
;
for
i:=A
to
B
do
begin
if
i
mod
2
<>
0
then
writeln
(i);
end
;
readln;
// чтобы программа не закрывалась
end
.
Весь код для цикла while
uses
crt;
var
A, B, i :
integer
;
begin
clrscr;
// очищаем экран
write
(
'Введите первую границу промежутка(A): '
); readln(A);
write
(
'Введите вторую границу промежутка(B): '
); readln(B);
if
(A > B)
then
begin
writeln
(
'А должно быть меньше B'
);
Halt;
// выходим из программы
end
;
while
(A <> B)
do
begin
if
(A
mod
2
<>
0
)
then
writeln
(A);
A := A +
1
;
end
;
readln;
// чтобы программа не закрывалась
end
.
Предыдущая
ПрограммированиеЗадачи по Pascal. Количество трехзначных чисел, сумма цифр дел. на k
Следующая
ПрограммированиеЗадачи по Pascal. Вычислить расстояние между двумя точками с данными координатами X1, Y1, X2, Y2.
var
i, n: integer; / / объявляем переменные целочисленного типа.
arr: array [1 … 10] of integer; / / объявляем массив, размерностью 10.
s : string; / / объявление переменной строкового типа.
begin
for i : = 1 to 10 do / / начало цикла.
begin
arr[i] : = random (0, 20); / / заполняем элемент массива числом из диапазона 0; 20.
s : = s + inttostr (arr[i]) + ‘ ‘; / / записываем массив в одну строку.
if (arr[i] mod 2 0) then n : = n + 1; / / считаем количество нечетных элементов.
end;
writeln (‘Исходный массив: ‘, s); / / вывод исходного массива на экран.
writeln (‘Количество нечетных элементов в массиве равно: ‘, n); / / вывод строки на экран.
end.