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

Две задачи на матрицы.

07.05.2009, 00:54. Показов 838. Ответов 3
Метки нет (Все метки)

Если разность максимального и минимального элемента матрицы А
превышает заданную величину Р, заменить в матрице А все
отрицательные элементы нулями, а положительные единицами.

Дана матрица А, состоящая из m строк и n столбцов.
Найти сумму элементов матрицы и подсчитать число её строк,
в пределах каждой из которых элементы упорядочены по возрастанию:
A[i]1<A[i]2<..<A[i]n

Задачки желательно решить через процедуры и функции.
Заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2009, 00:54
Ответы с готовыми решениями:

Две задачи
Здравствуйте! Есть два задания, не могу решить, совсем запутался Начальные условия: Нужно...

две задачи
Помогите составить две программы на две задачки: 1.Дано натуральное число N. Вычислить сумму...

Две задачи
Помогите решить, пожалуйста

Две задачи
Ребят, помогите с задачами, пожалуйста. 1) Гражданин 1 марта открыл счет в банке, вложив 1000р....

3
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
07.05.2009, 01:46 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
80
81
82
83
84
85
86
87
88
Program xa;
uses
  crt;
Type
  matr=array [1..30,1..30] Of integer;
 
Procedure vvod(var a:matr;var m,n:integer);
var
  i,j:integer;
begin
 repeat
    clrscr;
    Writeln('Vvedite ra3mernoCT matPuL/bl (m,n) ');
    Write('m=');
    readln(m);
    Write('n=');
    readln(n);
  until (n>0) and (m>0);
  Writeln('vvedite elementi matriL/bl');
  for i:=1 to m do
    for j:=1 to n do
    begin
      Write('A[' ,i, ',' ,j, ']=');
      readln(a[i,j])
    end;
end;
 
Procedure vivod(a:matr;m,n:integer);
var
  i,j:integer;
begin
 for i:=1 to m do
  begin
    for j:=1 to n do
      Write(a[i,j]:4);
    Writeln
  end;
end;
 
Procedure maxmin(var a:matr;m,n:integer;var max,min:integer);
var
  i,j:integer;
begin
  min:=a[1,1];
  max:=min;
  for i:=1 to m do
    for j:=1 to n do
      if a[i,j]<min then
        min:=a[i,j]
      else
        if a[i,j]>max then
          max:=a[i,j];
end;
 
Procedure izmen(var a:matr;m,n,max,min,p:integer);
var
  i,j:integer;
begin
  if max-min>p then
    for i:=1 to m do
      for j:=1 to n do
        if a[i,j]<0 then
          a[i,j]:=0
        else
          a[i,j]:=1;
end;
 
var
  a:matr;
  min,max,n,m,p:integer;
begin
  vvod(a,m,n);
  clrscr;
  Writeln('Vvedite chislo P');
  Write('P=');
  readln(p);
  clrscr;
  Writeln('MatriL/a do u3menenui');
  vivod(a,m,n);
  readln;
  maxmin(a,m,n,max,min);
  clrscr;
  Writeln('chislo P=' ,p);
  Writeln('max-min=' ,max-min, ' . Zna4it naLLia matriL/a:');
  izmen(a,m,n,max,min,p);
  vivod(a,m,n);
  readln
end.
2
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 16
07.05.2009, 08:37  [ТС] 3
Спасибо большое, lexus_ilia.
Мне бы ещё вторую решить.
0
Почетный модератор
64256 / 47556 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
08.05.2009, 15:21 4
№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
uses crt;
type
matr=array[1..50,1..50] of integer;
function Summ(mt:matr;n,m:integer):integer;
var i,j,sm:integer;
begin
sm:=0;
for i:=1 to n do
for j:=1 to m do
sm:=sm+mt[i,j];
Summ:=sm;
end;
function KolStr(mt:matr;n,m:integer):integer;
var i,j,k,ks:integer;
begin
ks:=0;
for i:=1 to n do
 begin
  k:=0;
  for j:=2 to m do
  if mt[i,j] >=mt[i,j-1] then k:=k+1;{если нужно строго по возрастанию, то if mt[i,j] >mt[i,j-1] }
  if k=m-1 then ks:=ks+1;
 end;
KolStr:=ks;
end;
var a:matr;
    n,m,i,j:integer;
begin
clrscr;
write('Количество строк n=');
readln(n);
write('Количество столбцов m=');
readln(m);
writeln('Введите ',n*m,' элементов матрицы:');
for i:=1 to n do
for j:=1 to m do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
 end;
clrscr;
writeln('Матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
writeln('Сумма элементов матрицы=',Summ(a,n,m));
write('Количество строк, упорядоченных по возрастанию=',KolStr(a,n,m));
readln
end.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2009, 15:21
Помогаю со студенческими работами здесь

две задачи
Не могу решить две задачи из контрольной((помогите разобраться, пожалуйста! Третью я решила....

Две задачи
1. Вычисление частоты появления символов в тексте. Написать программу, читающую с клавиатуры...

Две задачи
Всем привет нужна небольшая помощь по С# Напишите три процедуры поиска (линейного, линейного с...

Две задачи в одной
Доброго времени суток. Начну сразу с вопроса и самих задач с предисловием: Нет, я не вспомнил об...


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

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

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