• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Выборка из элементов массива.

Evil_evg

Ученик
Регистрация
23 Дек 2009
Сообщения
8
Реакции
0
Баллы
0
Выборка из элементов массива.

нужно написать программу:
Дан одномерный массив целых чисел из 20 ячеек с диапазоном [10..99]. Составтье массив C, который состоит из элементов исходного массива, в котором обе цифры четные.
дело очень-очень срочное! завтра работу сдавать надо, сам справиться не могу((
 
Приведу алгоритм работы программы.
массив A - входной,
массив B - выходной,
i - счетчик цикла,
cb - число элементов выходного массива, первоначально равно 0.
Код:
1) Ввести входной массив.
2) Выполнить перебор его элементов в цикле.
     2.1) Если a[i] mod 2 = 0 и (a[i] div 10) mod 2 = 0 (если обе цифры - четные)
            2.1.1) cb:=cb+1; Счетчик элементов массива B увеличиваем на 1 
            2.1.2) b[cb]=a[i]; Переносим найденное число в выходной массив.
    2.2)Конец если
3)Конец цикла
4)Вывод полученного массива.
 
Код:
uses crt;
const n=20;
var a,c:array [1..20]of byte;i,j:byte;
begin
randomize;
clrscr;
for i:=1 to n do
begin
a[i]:=random(90)+10;
writeln(a[i]);
readkey;
end;
j:=0;
for i:=1 to n do
if (a[i]mod 2=0)and((a[i]div 10) mod 2=0)then
begin
j:=j+1;
c[j]:=a[i];
end;
writeln;
for i:=1 to j do
writeln(c[i]);
end.
 
DDS, ваш код невозможно читать, исправьте пожалуйста, не подавайте дурной пример!
 
DDS, про останов в конце программы забыли.
 
большое спасибо всем
 
A readkey будет устраивать интересные фокусы при нажатии клавиш с расширенными кодами, стрелок, например.
 
а можно получить код рабочей программы? буду очень благодарен
 
а как мне всё это без библиотеки crt записать?
 
За readkey в цикое сильно извиняюсь(мне он был необходим).
DDS, ваш код невозможно читать, исправьте пожалуйста, не подавайте дурной пример!
В чём именно заключается не читаемость кода? Подскажите, исправлюсь с удовольствием.:)
 
n это константа, то есть её значение всегда равно 20.
В принципе везде можно заменить n на число 20.
 
почему то не получеться(
в ответ же должен выводить числа четные, для каждой ячейки число
а он выводит и четные и не четные(
 
Этим нужно пользоваться обязательно!
Вот правильное оформление текста программы:
Код:
const 
   n=20;
var 
  a:array [1..n] of byte;          {входной массив}
  c:array [1..n] of byte;          {выходной массив}
  i:byte;                                {счетчик цикла}
  j:byte;                                {количество элементов в выходном массиве}
begin
  randomize;                         {инициализация ГСЧ}
  for i:=1 to n do                    {заполнение входного массива случайными числами}
  begin                                  {блок цикла заполнения входного массива}
     a[i]:=random(90)+10;        {генерация очередного числа}
     writeln(a[i]);                     {вывод на экран}
  end;                                   {конец блока цикла}
  j:=0;                                   {инициализация счетчика выходного массива}
  for i:=1 to n do                    {перебор элементов входного массива}
  begin
     if  (a[i]mod 2=0)            {если разряд единиц - четное число}
     and ((a[i]div 10) mod 2=0) {и разряд десятков - четное число}
     then
     begin                              {блок помещения найденного значения в выходной массив}
        j:=j+1;                         {увеличение счетчика выходного массива}
        c[j]:=a[i];                      {помещение найденного значения в выходной массив}
     end;                                {конец блока помещения найденного элемента}
  end;                                   {конец блока перебора элементов входного массива} 
  writeln;                               {разделение строк вывода}
  for i:=1 to j do                     {цикл вывода выходного массива}
  begin                                  {блок цикла вывода выходного массива}
    writeln(c[i]);                       {вывод элемента выходного массива на экран} 
  end;                                    {конец блока вывода элементов массива} 
  readln;                                 {Ожидание нажатия Enter}
end.

Сначала программа выводит 10 значений - это входной массив, а только потом выводит то, что нашла.
 
Назад
Сверху