Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
1

В каждой строке матрицы найти количество элементов, кратных трем.

07.12.2009, 12:35. Показов 2038. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Начал делать задачу по примеру преподавателя, не получается,подскажите в чем проблема, а то срочно сделать нужно, а времени нет:
Программа обязательно должна быть написана с использованием подпрограмм и должна включать как минимум две подпрограммы: формирование массива и его вывод на экран.
Максимальная размерность матрицы должна быть такой, чтобы матрица целиком умещалась на экране. При вводе проверять, чтобы размерность не превышала максимальную и была больше нуля.
Дана целая прямоугольная матрица размерности NxM. В каждой строке матрицы найти количество элементов, кратных трем. Затем упорядочить строки матрицы по убыванию найденных для каждой строки величины. (При сортировке использовать метод прямого обмена).
Это пример препода:
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
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Program Lab6;
type
 TMatrix = array[1..50,1..50] of integer;
var
 Matrix:TMatrix;
 a:array[1..50] of integer;
 rows,cols:integer;
 i,j:integer
 Done:boolean
 t:integer;
procedure Input(var mt:TMatrix; var n:integer; var m:integer);
var
 i,j:integer;
  begin
   write('Введите количество строк:');
   readln(n);
   write('Введите количество столбцов:');
   readln(m);
 
   for i:=1 to n do
    for j:=1 to m do
    begin
     write('Введите [',i,',',j,'] элемент:');
     readln(mt[i,j]);
    end;
  end;
procedure Output(mt:TMatrix;n,m,:integer);
var
 i,j:integer;
begin
 for i:=1 to n do
 begin
  for j:=1 to m do
   write(mt[i,j]:5);
  writeln;
 end;
end;
function Calc(mt:TMatrix;i,j:integer):integer;
var
 j:integer;
begin
 Calc:=1;
 for j:=1 to m do
 begin
  Calc:=Calc*mt[i,j];
 end;
end;
begin
 Input(Matrix,rows,cols);
 writeln('Исходная матрица');
 Output(Matrix,rows,cols);
 for i:=1 to rows do
 begin
  a[i]:=Calc(Matrix,i,cols);
 end;
Done:=false;
while not Done do
begin
 Done:=true;
 for i:=1 to rows-1 do
 begin
  if a[i]>a[i+1] then
  begin
   Done:=false;
   t:=a[i];
   a[i]:=a[i+1];
   a[i+1]:=t;
   for j:=1 to cols do
   begin
    t:=Matrix[i,j];
    Matrix[i,j]:=Matrix[i+1,j]:
    Matrix[i+1,j]:=t;
   end;
  end;
 end;
end;
writeln('Полученная матрица');
Output(Matrix,rows,cols);
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2009, 12:35
Ответы с готовыми решениями:

Найти в каждой строке количество элементов массива, кратных пяти и наибольшее из полученных результатов
уважаемые форумчане, помогите написать программу: "Дан массив nxm. Найти в каждойстоке...

В каждой строке матрицы найти количество положительных элементов
1.В каждой строке двумерного массива.Найти количество положительных элементов. 2.В каждом...

Найти количество N положительных элементов в каждой строке матрицы
Дана матрица А. а) найти количество N положительных элементов в каждой строке. б) найти сумму S...

Найти сумму и количество нечетных элементов в каждой строке матрицы
Дан двумерный массив целых чисел размера М строк и N столбцов. Найти сумму и количество нечетных...

5
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.12.2009, 13:07 2
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
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
67
68
69
70
71
72
73
74
75
76
77
78
79
uses crt;
const
p=4;//количество позиций под числа в матрице
nmax=22;//максимальное количество строк матрицы
mmax=18;//то же столбцов
type
mas=array[1..mmax] of integer;//массив - строка матрицы
matr=array[1..nmax] of mas;//матрица - массив строк
 
function Krat_3(v:mas;y:byte):byte;//подсчет кратных в строке
var k,i:byte;
begin
k:=0;
for i:=1 to y do
if v[i] mod 3=0 then k:=k+1;
Krat_3:=k;
end;
 
procedure Vvod(var mt:matr;var x,y:byte);//ввод матрицы
var i,j:byte;
begin
repeat
write('Количество строк до ',nmax,' = ');
readln(x);
until x in [1..nmax];//проверка диапазона
repeat
write('Количество столбцов до ',mmax-1,' = ');
readln(y);
until y in [1..mmax];
for i:=1 to x do
for j:=1 to y do
mt[i,j]:=random(30)+1;
for i:=1 to x do
mt[i,y+1]:=Krat_3(mt[i],y);// считаем кратные в строках и записываем в дополнительный столбец
end;
 
procedure Vyvod(var mt:matr;x,y:byte);//вывод матрицы
var i,j:byte;
begin
writeln('Крат. 3':(y+1)*p+3);
for i:=1 to x do
 begin
  for j:=1 to y+1 do//на  столбец больше
  write(mt[i,j]:p);
  writeln;
 end;
end;
 
Procedure Sort(var mt:matr;x,y:byte);//сортировка строк
var i,j,k:byte;
    b:integer;
begin
for i:=1 to x-1 do
for j:=i+1 to x do
if mt[i,y+1]<mt[j,y+1] then//по убыванию элемента в дополнительном столбце
for k:=1 to y+1 do//переставляем строки
 begin
  b:=mt[i,k];
  mt[i,k]:=mt[j,k];
  mt[j,k]:=b;
 end;
end;
var a:matr;
    n,m:byte;
begin
clrscr;
randomize;
Vvod(a,n,m);
clrscr;
writeln('Исходная матрица:');
Vyvod(a,n,m);
readln;
clrscr;
Sort(a,n,m);
writeln;
writeln('Перестановка строк по убыванию кратных 3:');
Vyvod(a,n,m);
readln
end.
1
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
11.12.2009, 10:01  [ТС] 3
Делаю компиляцию, но Паскаль выдает ошибку,подскажите!
Миниатюры
В каждой строке матрицы найти количество элементов, кратных трем.  
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.12.2009, 10:54 4
Владимир23, Ищи у себя ошибку в коде, что-то ты напакостил Сейчас скопировал свой код и запусимл во Фри Паскале, все работает ни каких ошибок

Добавлено через 1 минуту
Ты не переписывай код. Просто скопируй его в блокнот и сохрани как файлы всех типов с расширением .pas
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
11.12.2009, 11:30  [ТС] 5
Спасибо огромное, все получилось!!!
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
13.05.2010, 18:24  [ТС] 6
Помогите, пожалуйста, еще с этим: https://www.cyberforum.ru/pascal/thread121622.html
0
13.05.2010, 18:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2010, 18:24
Помогаю со студенческими работами здесь

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

В каждой строке матрицы найти количество элементов, меньших среднего арифметического
Помогите, пожалуйста, с задачами!:( Мы не можем на форуме найти их решение. Очень сильно нужна...

Максимум каждого столбца матрицы заменить значением суммы кратных трем элементов всей матрицы. +2 задачи.
Ребят помогите пожалуйста с задачами. Новичок в этом деле... Заранее спасибо! 1. Ввести матрицу...

Посчитать количество элементов массива, кратных трем
Дан файл, который содержит целые числа. Подсчитать количество елементов, значения которых делятся...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru