С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 15
1

Обработка двумерных массивов со вспомагательными алгоритмами

25.01.2014, 12:13. Показов 509. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Изменив текст основной программы, и вычислить количество строк, где есть элементы разных знаков.

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{---------- Двумерные массивы ---------------}
program primer1;
uses crt;
type stroka=array[1..20] of real;
     matr=array[1..20] of stroka;
 
var m,n,i,j,k,l,r:integer;
    s,s1,s2,ext:real; x,y:stroka;
    a:matr;
{---------- Вспомогательные функции---------------}
 
{----------- Сумма строки ------------------}
function summa(m:integer;x:stroka):real;
    var i:integer;  s:real;
begin
    s:=0;
    for i:=1 to m do 
        s:=s+x[i];
    summa:=s
end;
{-------------------Сумма модулей строки----------------------}
function summamod(m:integer;x:stroka):real;
    var i:integer;   s:real;
begin
    s:=0;
    for i:=1 to m do 
        s:=s+abs(x[i]);
    summamod:=s
end;
{------------ Процедуры ------------------}
 
{------------- Ввод массива с клавиатуры* ------------------------}
procedure wwod(var a:matr);
    var i,j:integer;
begin 
    clrscr;
    write('Введите к-во строк ');readln(n);
    write('Введите к-во столбцов ');readln(m);
    for i:=1 to n do
    begin
        for j:=1 to m do 
    begin
        write(' A[',i,',',j,']=');
        read(a[i][j])
    end;
    writeln;
    end;
end;
 
{------------- Присваивание значенй элементам массива---------------}
procedure priswaiwanie;
begin 
    n:=3;m:=4;
    a[1][1]:=3; a[1][2]:=0; a[1][3]:=-5;a[1][4]:=3;
    a[2][1]:=-4;a[2][2]:=-1;a[2][3]:=-2;a[2][4]:=-3;
    a[3][1]:=1; a[3][2]:=3; a[3][3]:=0; a[3][4]:=8;
end;
{------------- Вывод массива в виде матрицы ----------------------}
procedure wywod;
var i,j:integer;
begin  
    for i:=1 to n do begin
    for j:=1 to m do write('  ',a[i][j]:6:2);
             writeln end
end;
{------------- Смена знаков элементов строки* ----------------}
procedure znak(m:integer;var x:stroka);
var i:integer;
begin
    for i:=1 to m do x[i]:=-x[i];
end;
{------------- Максимум в строке, стоящИй на k-том месте--------------}
procedure maximum(m:integer;x:stroka;var k:integer;var ma:real);
var i:integer;
begin 
    k:=1;ma:=x[1];
    for i:=2 to m do 
    if x[i]>ma then begin
                    k:=i;ma:=x[i]
                    end
end;
{------Максимум по модулю в строке, стоящИй на k-том месте--------------}
procedure maximummod(m:integer;x:stroka;var k:integer;var ma:real);
var i:integer;
begin
    k:=1;ma:=abs(x[1]);
    for i:=2 to m do 
    if abs(x[i])>ma then begin
                         k:=i;ma:=abs(x[i])
                         end
end;
{--------------- Основная программа* -----------------}
begin
    clrscr;
    writeln('Введите массив:');
    wwod(a);
    writeln;
 
{-------  Вывод массива на экран --------}
{  clrscr; writeln('Введенный массив'); wywod; }
 
    for i:=1 to n do 
    begin
        s:=summa(m,a[i]);
    writeln('   Сумма ',i,'*строки =  ',s:5:2)
    end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2014, 12:13
Ответы с готовыми решениями:

Обработка двумерных массивов
Напишите программу, которая будет обрабатывать двумерный массив из N строк и М столбцов, с учетом...

Обработка двумерных массивов
Создать одномерный массив, содержащий произведение положительных элементов каждого

Обработка двумерных массивов (матриц)
Ребят! Помогите пожалуйста! Задали в вузе ,нужно сделать обязательно для зачета. Заранее...

Обработка элементов строк или столбцов двумерных массивов
Задан двумерный массив (n × m) целых чисел. В каждом его строке найти количество четных элементов.

8
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
25.01.2014, 13:09 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{---------Количество строк где элементы с разными знаками-------}
function kolstrok(a:matr;n,m:integer):integer;
var i,j,k,b:integer;
begin
k:=0;
for i:=1 to n do
 begin
  b:=0;
  j:=2;
  while(j<=m)and (b=0) do
  if a[i][j]*a[i][1]<0 then b:=1
  else j:=j+1;
  if b=1 then k:=k+1;
 end;
kolstrok:=k
end;
1
0 / 0 / 4
Регистрация: 14.06.2010
Сообщений: 82
27.01.2014, 23:54 3
Цитата Сообщение от Puporev Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{---------Количество строк где элементы с разными знаками-------}
function kolstrok(a:matr;n,m:integer):integer;
var i,j,k,b:integer;
begin
k:=0;
for i:=1 to n do
 begin
  b:=0;
  j:=2;
  while(j<=m)and (b=0) do
  if a[i][j]*a[i][1]<0 then b:=1
  else j:=j+1;
  if b=1 then k:=k+1;
 end;
kolstrok:=k
end;
А в какую часть задачи этот кусок вставить, что б он считал?
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.01.2014, 07:03 4
Саму функцию в раздел
{---------- Вспомогательные функции---------------}
А в основной программе вызвать ее
Pascal
1
writeln('Количество строк, где элементы с разными знаками=',kolstrok(a,n,m));
0
0 / 0 / 4
Регистрация: 14.06.2010
Сообщений: 82
28.01.2014, 10:42 5
Цитата Сообщение от Puporev Посмотреть сообщение
Саму функцию в раздел
{---------- Вспомогательные функции---------------}
А в основной программе вызвать ее
Pascal
1
writeln('Количество строк, где элементы с разными знаками=',kolstrok(a,n,m));
Вот я изменила:
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{---------- Äâóìåðíûå ìàññèâû ---------------}
program primer1;
 
uses crt;
type stroka=array[1..100] of real;
     matr=array[1..100] of stroka;
 
var m,n,i,j,k,l,r:integer;
    s,s1,s2,ext:real; x,y:stroka;
    a:matr;
{---------- Âñïîìîãàòåëüíûå ôóíêöèè---------------}
  {Èçìåíèëà}
  function kolstrok(a:matr;n,m:integer):integer;
var i,j,k,b:integer;
begin
k:=0;
for i:=1 to n do
 begin
  b:=0;
  i:=2;
  while(i<=n)and (b=0) do
  if a[i][j]*a[i][1]<0 then b:=1
  else i:=i+1;
  if b=1 then k:=k+1;
 end;
kolstrok:=k
end;
{----------- Ñóììà ñòðîêè ------------------}
function summa (m:integer; x:stroka):real;
    var i:integer;  s:real;
   begin
    s:=0;
    for i:=1 to m do
    s:=s+x[i];
    Summa:=s;
end;
 
{-------------------Ñóììà ìîäóëåé ñòðîêè----------------------}
function summamod(m:integer;x:stroka):real;
    var i:integer;   s:real;
begin
    s:=0;
    for i:=1 to n do
        s:=s+abs(x[i]);
    summamod:=s
end;
{------------ Ïðîöåäóðû ------------------}
 
{------------- Ââîä ìàññèâà ñ êëàâèàòóðû* ------------------------}
procedure wwod(var a:matr);
    var i,j:integer;
begin
    clrscr;
    write('Ââåäèòå ê-âî ñòðîê ');readln(n);
    write('Ââåäèòå ê-âî ñòîëáöîâ ');readln(m);
    for i:=1 to n do
    begin
        for j:=1 to m do
    begin
        write(' A[',i,',',j,']=');
        read(a[i][j])
    end;
    writeln;
    end;
end;
 
{------------- Ïðèñâàèâàíèå çíà÷åíé ýëåìåíòàì ìàññèâà---------------}
procedure priswaiwanie;
begin
    n:=3;m:=4;
    a[1][1]:=3; a[1][2]:=0; a[1][3]:=-5;a[1][4]:=3;
    a[2][1]:=-4;a[2][2]:=-1;a[2][3]:=-2;a[2][4]:=-3;
    a[3][1]:=1; a[3][2]:=3; a[3][3]:=0; a[3][4]:=8;
end;
{------------- Âûâîä ìàññèâà â âèäå ìàòðèöû ----------------------}
procedure wywod;
var i,j:integer;
begin
    for i:=1 to n do begin
    for j:=1 to m do write('  ',a[i][j]:6:2);
             writeln end
end;
{------------- Ñìåíà çíàêîâ ýëåìåíòîâ ñòðîêè* ----------------}
procedure znak(m:integer;var x:stroka);
var i:integer;
begin
    for i:=1 to m do x[i]:=-x[i];
end;
{------------- Ìàêñèìóì â ñòðîêå, ñòîÿùÈé íà k-òîì ìåñòå--------------}
procedure maximum(m:integer;x:stroka;var k:integer;var ma:real);
var i:integer;
begin
    k:=1;ma:=x[1];
    for i:=2 to m do
    if x[i]>ma then begin
                    k:=i;ma:=x[i]
                    end
end;
{------Ìàêñèìóì ïî ìîäóëþ â ñòðîêå, ñòîÿùÈé íà k-òîì ìåñòå--------------}
procedure maximummod(m:integer;x:stroka;var k:integer;var ma:real);
var i:integer;
begin
    k:=1;ma:=abs(x[1]);
    for i:=2 to m do
    if abs(x[i])>ma then begin
                         k:=i;ma:=abs(x[i])
                         end
end;
{--------------- Îñíîâíàÿ ïðîãðàììà* -----------------}
begin
   clrscr;
    writeln('ìàññèâ:');
  {Èçìåíèëà ââîä íà ïðèñâàèâàíèå}
   priswaiwanie;
     writeln;
 
wywod;
{è çäåñü èçìåíèëà}
writeln('Êîëè÷åñòâî ñòðîê, ãäå ýëåìåíòû ðàçíûõ çíàêîâ =  ',kolstrok(a,n,m));
readln;
end.
Он мне пишет "выход за границы диапозона изменения индекса .."
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.01.2014, 12:46 6
Цитата Сообщение от Китя Посмотреть сообщение
Вот я изменила:
Так смотреть нужно что меняете, нафига индекс j поменяли на i?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  function kolstrok(a:matr;n,m:integer):integer;
var i,j,k,b:integer;
begin
k:=0;
for i:=1 to n do
 begin
  b:=0;
  i:=2;//здесь
  while(i<=n)and (b=0) do//здесь
  if a[i][j]*a[i][1]<0 then b:=1
  else i:=i+1;//здесь
  if b=1 then k:=k+1;
 end;
kolstrok:=k
end;
Добавлено через 1 минуту
Нет чтобы просто скопировать код и вставить в программу, так надо в нем своими шаловливыми ручками полазить...
0
0 / 0 / 4
Регистрация: 14.06.2010
Сообщений: 82
28.01.2014, 12:47 7
Цитата Сообщение от Puporev Посмотреть сообщение
Так смотреть нужно что меняете, нафига индекс j поменяли на i?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  function kolstrok(a:matr;n,m:integer):integer;
var i,j,k,b:integer;
begin
k:=0;
for i:=1 to n do
 begin
  b:=0;
  i:=2;//здесь
  while(i<=n)and (b=0) do//здесь
  if a[i][j]*a[i][1]<0 then b:=1
  else i:=i+1;//здесь
  if b=1 then k:=k+1;
 end;
kolstrok:=k
end;
Добавлено через 1 минуту
Нет чтобы просто скопировать код и вставить в программу, так надо в нем своими шаловливыми ручками полазить...
Я НИЧЕГО НЕ МЕНЯЛА. КАК У ВАС БЫЛО ТАК И СКОПИРОВАЛА
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.01.2014, 12:49 8
Не ври, посмотри свою цитату в посте № 3
0
0 / 0 / 4
Регистрация: 14.06.2010
Сообщений: 82
28.01.2014, 12:53 9
Ладно.
0
28.01.2014, 12:53
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2014, 12:53
Помогаю со студенческими работами здесь

Разработка алгоритмов и программ методом пошаговой детализации. Обработка двумерных массивов.
Найти сумму элементов в каждой строке двумерного массива, состоящего из целых чисел. Размер MXN....

Обработка двумерных массивов
А как Вы видите решение этой задачи? Исходные данные: В таблице приведено время выпечки...

Обработка двумерных массивов
Дана вещественная матрица А(N,M). Составить программу замены всех положительных элементов матрицы...

Обработка двумерных массивов
Количество элементов массива: 3,4 Тип: Целый Цель: Найти сумму минимального и максимального...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Блоги программистов
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­хронны­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru