1 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 77
1

Массив: Проверить, кратно ли колличество строк в матрице, где все элементы четные, заданномучислу

09.04.2012, 18:08. Показов 931. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
.помогите пожалуйста. мне нужно в задаче проверить кратно ли колличество строк в матрице где ВСЕ ЭЛЕМЕНТЫ НЕЧЕТНЫЕ числу которое мы введём с клавиатуры. задача на процедуры и функции вот мой код, почему здесь когда ввожу матрицу где все элементы нечётные(какие надо) у меня ввод не прекращается .. ну в общем посмотрите пожалуйста.. эту задачу необходимо сдать срочно....
(простите что не в рамке, не умею)
program Project2;

Delphi
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{$APPTYPE CONSOLE}
 
uses
  windows,
  SysUtils;
 
const
  n=4;
type
  telem=Integer;
  mas=array[1..n] of telem;
  matr=array[1..n] of mas;
procedure Putin (var a:matr);
var i,j:Integer;
begin
  for i:=1 to n do
  begin
    for j:=1 to n do
      read(a[i,j]);
    writeln;
  end;
end;
procedure Prov (var a:matr);
var i,j:Integer;
    c:telem;
begin
  c:=0;
  for i:=1 to n do
  for j:=1 to n do
      if a[i,j]mod 2=0 then Inc(c);
      if c>0 then Writeln('Все элементы должны быть нечётными')
      else
       begin
          for i:=1 to n do
          begin
            for j:=1 to n do
            write(a[i,j],' ');
            writeln;
          end;
          c:=30;
      end;
end;
procedure Print (var a:matr);
var i,j:Integer;
    c:telem;
begin
  if c=0 then
  begin
  for i:=1 to n do
  for j:=1 to n do
      write(a[i,j],' ');
   end;
end;
 
var a:matr;
    c,k:telem;
begin
  setconsoleoutputcp(1251);
  repeat
  Putin(a);
  Prov(a);
  until c=30;
  read(k);
  if n mod k=0 then Writeln('Кратно')
           else Writeln('Не кратно');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2012, 18:08
Ответы с готовыми решениями:

Дан целочисленный двумерный массив размера NxM (N,M<=14). Проверить, все ли его элементы четные
В заданной матрице 5x6 найти номера столбцов, в которых положительных элементов больше, чем...

Двумерный массив. Найти номера строк, все элементы которых четные числа
помогиTе в написании программы пожалуйста!!двумерный массив Помогите пожалуйста добрые люди!!! ...

Проверить условие: количество строк матрицы, в которой все числа нечетные, кратно заданному числу
проверить, верно ли, что количество строк матрицы A(nxn), в которой все числа нечетные, кратно...

Вычислить в каждой матрице количество строк, где все элементы кратны 2 и не кратны 3
Прошу помочь решить задачу: это сделать одной программой)) надеюсь на вашу помощь,коллеги))))...

10
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
10.04.2012, 11:25 2
Все вводится норм! Матрица состоит из 16 отрицательных чисел! Что не так? в ответ говорит вот что!

Массив: Проверить, кратно ли колличество строк в матрице, где все элементы четные, заданномучислу
1
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
10.04.2012, 12:31 3
А как оно вообще может закончиться, если стоит такая конструкция:
Delphi
1
2
3
4
repeat
  Putin(a);
  Prov(a);
until c=30;
И "с" нигде не определяется. Те, что определяются в процедурах здесь недоступны. И вообще, что такое 30? Это что, количество повторений ввода?

А, понял. Совет:

Убирайте
Delphi
1
    c:telem;
из локального объявления процедуры Prov и из строки 56 тоже и переносите в начало. Вставьте var после строки 12.
1
1 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 77
10.04.2012, 14:11  [ТС] 4
спасибо вам большое сделала всё как Вы сказали) получилось!! только единственное, после того как программа выполняет проверку на кратность, результат не задерживается, тобишь выводит текст и мгновенно завершает работу - не успеваешь посмотреть что вывела прога на экран. Как это исправить?
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
10.04.2012, 17:46 5
Перед последним end. вставьте readln;
Программа будет ждать пока не нажмёте Enter.
1
1 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 77
10.04.2012, 18:30  [ТС] 6
я вставила, всё равно вылетает
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
10.04.2012, 18:39 7
Не должно. Выложи код.
0
1 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 77
11.04.2012, 23:11  [ТС] 8
вот и сам код. работает но вылетает после того как выполнит проверку на кратность


Delphi
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
program Project2;
       {Çàäà÷à: Ïðîâåðüòå âåðíî ëè, ÷òî êîëëè÷åñòâî ñòðîê ìàòðèöû À(n*n),
        â êîòîðîé âñå ÷èñëà íå÷¸òíûå, êðàòíî çàäàííîìó ÷èñëó õ}
 
{$APPTYPE CONSOLE}
 
uses
  windows,
  SysUtils;
 
const
  n=4;
type
  telem=Integer;
  mas=array[1..n] of telem;
  matr=array[1..n] of mas;
 
var a:matr;
    c,x:telem;
 
procedure Putin (var a:matr); {ïðîöåäóðà ââîäà ìàòðèöû ñ êëàâèàòóðû}
var i,j:Integer;
begin
  for i:=1 to n do
      begin
        for j:=1 to n do read(a[i,j]);
        writeln;
      end;
end;
 
procedure Prov (var a:matr); {Ïðîöåäóðà ïðîâåðêè íå÷¸òíîñòè ýëåìåíòîâ ìàòðèöû}
var i,j:Integer;
begin
  c:=0;
  for i:=1 to n do
  for j:=1 to n do
      if a[i,j]mod 2=0 then Inc(c);
      if c>0 then Writeln('Âñå ýëåìåíòû äîëæíû áûòü íå÷¸òíûìè')
             else begin
                    for i:=1 to n do
                        begin
                          for j:=1 to n do
                              write(a[i,j],' ');
                              writeln;
                        end;
                    c:=30;
                  end;
end;
 
 
begin
  setconsoleoutputcp(1251);
  repeat
  Putin(a);
  Prov(a);
  until c=30;
 
  Writeln('Ââåäèòå ÷èñëî');
  read(x);                    {Ââîä ÷èñëà}
  if n mod x=0 then Writeln('Êðàòíî') {Ïðîâåðêà êðàòíîñòè êîëëè÷åñòâà ñòðîê ââåä¸ííîìó ÷èñëó}
           else Writeln('Íå êðàòíî');
           Readln;
end.
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
11.04.2012, 23:17 9
Ошибок, вроде, не вижу. Она выдаёт: Кратно или не кратно?
0
1 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 77
11.04.2012, 23:18  [ТС] 10
да, ну запустите у себя если у вас делфи есть... выдаёт, всё верно только результат не задерживает
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
12.04.2012, 00:24 11
Там вместо:
Delphi
1
read(x);                    {Ввод числа}
Нужно вставить:
Delphi
1
readln(x);                    {Ввод числа}
Добавлено через 52 минуты
Обновляйте периодически страницу, а то не увидите, когда кто-нибудь ответит. Сама не обновится.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2012, 00:24
Помогаю со студенческими работами здесь

Вычислить в каждой матрице количество строк, где все элементы кратны 2 и не кратны 3
даны 2 матрицы А и В. Вычислить в каждой матрице количество строк, где все элементы кратны 2 и не...

В матрице заменить все чётные элементы на 0
Нужно составить программу, которая в двумерном массиве размером 5х5, заполненная целыми числами от...

в матрице, строку где все числа четные, расположить в обратном порядке.
дана матрица целых чисел. строки, где все элементы четные, расположить в обратном порядке. помогите...

Переписать в одномерный массив все элементы тех строк, где нет отрицательных элементов
задачка легкая , но немного запуталась, помогите пожалуйста) Дан массив 5 х 10. Переписать в...


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

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

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