Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
196 / 8 / 3
Регистрация: 30.04.2016
Сообщений: 733
1

В матрице обнулить чётные элементы в строках с чётными номерами и нечётные элементы в строках с нечётными номерами

10.06.2018, 11:11. Показов 668. Ответов 3
Метки нет (Все метки)

Заполнить случайным образом двумерный массив n x n.
Обнулить чётные элементы в строках с чётными номерами и нечётные элементы в строках с нечётными номерами.
Вывести оба массива на экран.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses Crt;
const N = 5;  M = 4;
Var a: array [1..N, 1..M] of Integer;
            i, j: Integer;
   for i:= 1 to N do begin
   for j:= 1 to M do begin
     a[i, j]:= 1 Random(50)5;
       Write(a[i, j]:4);
   end;  WriteLn;  end;
{Обнуление чётных и нечётных эл-в}
WriteLn(' Чётные эл-ты в строках: ');
   for i:= 1 to N do begin
     for j:= 1 to M do begin
   if a[i, j] mod 2 <> 0 then
a[i, j]:= 0;  Write('   ' , a[i, j]:3);
  end;  WriteLn;  end;;
  ReadLn
end.
На выходе имеем:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-5   -4   38    8
 8   28   10    3
     13  16    -1  18
 -2   37   -3    9
      40  13   33   11
   Чётные эл-ты в строках:
      -5    0     0     5 
 0    0     0     3
13   0    -1    0
 0   37   -3    9
 0   13   33   11
Нечётные эл-ты в строках:
 0    0     0     0 
Во второй строке нечётных эл-в нет.
0    0    0    0
0    0    0    0
0    0    0    0
Нечётные элементы не сработали. А почему?
Вроде бы всё правильно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2018, 11:11
Ответы с готовыми решениями:

Обнулить чётные элементы в строках с чётными номерами
Обнулить чётные элементы в строках с чётными номерами и нечётные элементы в строках с нечётными ...

Вывести на экран элементы массива в два столбика: в первый - элементы с нечетными номерами, во второй - элементы с четными номерами.
Заполнить массив различными действительными числами, случайно выбираются из указанного промежутка....

В одномерном массиве, состоящем из n целых чисел, заменить элементы с четными номерами нулем, а элементы с нечетными номерами - 1.
В одномерном массиве, состоящем из n целых чисел, заменить элементы с четными номерами нулем, а...

Вывести сначала элементы с нечетными номерами по возрастанию номеров, а потом элементы с четными номерами по убыванию
Даний масcив A розмером N. Вивести сначала его элементы с непарными номерами в порядке...

3
Почетный модератор
64087 / 47496 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
10.06.2018, 11:54 2
Цитата Сообщение от Petro29 Посмотреть сообщение
чётные элементы в строках с чётными номерами и нечётные элементы в строках с нечётными номерами.
Pascal
1
if((a[i,j] mod 2=0)and(i mod 2=0))or((a[i,j] mod 2<>0)and(i mod 2<>0)) then a[imj]:=0;
0
196 / 8 / 3
Регистрация: 30.04.2016
Сообщений: 733
30.06.2018, 21:57  [ТС] 3
Заполнить случайным образом двумерный массив n x n.
Обнулить чётные элементы в строках с чётными номерами и нечётные элементы в строках с нечётными номерами.
Вывести оба массива на экран.

Получил ответ от модератора Puporev в виде длинной строки. Вставил её в блок обнуления нечётных чисел.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses Crt;
const N = 5;  M = 4;
Var a: array [1..N, 1..M] of Integer;
            i, j: Integer;
   for i:= 1 to N do begin
   for j:= 1 to M do begin
     a[i, j]:=  Random(50)5;
       Write(a[i, j]:4);
   end;  WriteLn;  end;
{Обнуление чётных и нечётных эл-в}
WriteLn(' Чётные эл-ты в строках: ');
   for i:= 1 to N do begin
     for j:= 1 to M do begin
   if ((a[i, j] mod 2 = 0) and (i mod 2 = 0)) or ((a[i,j] mod 2 <> 0))
and(i mod 2 <> 0))  then  a[i, j]:= 0;
      Write('   ' , a[i, j]:3);
        end;  WriteLn;  end;;
WriteLn(' Нечётные эл-ты в строках:');
  ReadLn
end.
И на выходе получили что-то непонятное:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
-5   -4   38    5
 8   28   10    3
13   16   -1   18
-2   37   -3    9
40   13   33   11
       Чётные эл-ты в строках:
 -5   -4   38    5
  0    0     0    3
13   16   -1   18
 0    37   -3    9
40   13   33   11
        Нечётные эл-ты в строках:
И второго блока не стало. Короче, не получилось!
0
Модератор
8685 / 4339 / 2979
Регистрация: 17.08.2012
Сообщений: 13,808
01.07.2018, 00:12 4
Petro29, а что не так? Ну, кроме того, что Ваша программа не компилируется? После исправления ошибок в Вашей программе (добавил begin и randomize; после строки 4 и убрал все лишние скобки в строках 14 и 15) получил:
Код
  22  24  30  37
  25  37  22  37
  16  26  27  14
  16   9  39  -3
  43   8  14  18
 Чётные эл-ты в строках:
    22    24    30     0
    25    37     0    37
    16    26     0    14
     0     9    39    -3
     0     8    14    18
 Нечётные эл-ты в строках:
Всё согласно задания: обнулены чётные элементы в строках с чётными номерами и нечётные элементы в строках с нечётными номерами.

На мой вкус, я бы записал условие так:
Pascal
14
   if (a[i, j] mod 2 = 0) = (i mod 2 = 0) then  a[i, j] := 0;
Это то же самое, что и у Puporev, только чуть покороче.

Добавлено через 16 минут
А, нет, можно ещё короче:
Pascal
14
   if odd(a[i, j]) = odd(i) then  a[i, j]:= 0;
или
Pascal
14
   if (a[i, j] xor i) and 1 = 0 then  a[i, j]:= 0;
или
Pascal
14
   if (a[i, j] + i) mod 2 = 0 then  a[i, j]:= 0;
Или ещё как-нибудь.

Добавлено через 3 минуты
Или без if, например, так:
Pascal
14
   a[i, j] := a[i, j] * ord(odd(a[i, j]) <> odd(i));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2018, 00:12

Вывести сначала элементы массива с четными номерами, а затем - элементы с нечетными номерами
Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания...

Вывести вначале его элементы с четными номерами, а затем — элементы с нечетными номерами
Всем добрый вечер!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!! 1....

Вывести вначале элементы с нечетными номерами, а затем - элементы с четными номерами
Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке...

Вывести элементы матрицы, расположенные в строках с четными номерами
Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами 1. Дана...

Вывести элементы матрицы, расположенные в строках с четными номерами
Помогите плиз зделать задачку Дана матрица размера M x N Вывести её элементы расположенные в...

Вывести элементы матрицы, расположенные в строках с четными номерами (2, 4, ...)
С++ Дана матрица размера M х N. Вывести ее элементы, расположенные в строках с четными номерами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru