|
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 |
|||
|
Решение
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.

Сообщение было отмечено eg0r как решение