Как найти все нечетные числа в паскале

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 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 b[i] mod 2=1 then
         begin
              j:=j+1;
              c[j]:=b[i];
         end;
  for i:=1 to 5 do
      write(b[i],' ');
  writeln;
  for i:=1 to j do
      write(c[i],' ');
 
    readln;
end.



2



Kizer

80 / 82 / 36

Регистрация: 20.11.2009

Сообщений: 326

19.03.2010, 23:34

3

а мне вот так больше нравится, но идея таже:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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.



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.

Понравилась статья? Поделить с друзьями:
  • Как найти в одноклассниках личный кабинет
  • Как найти автовладельца по гос номеру бесплатно
  • Как найти слив человека в телеграмме
  • Как исправить букву в пдф формате
  • Как найти забытый мультик