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

Дан двумерный массив размерностью 5*6,заполненный случайными числами

09.06.2012, 20:14. Показов 5930. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста помогите с задачей,скоро сдавать уже

Дан двумерный массив размерностью 5*6,заполненный случайными числами.
-Заменить минимальный элемент каждой строки на противоположный.
-Вставить после столбцов с максимальными элементами столбец из единиц.
-удалить первую строку
-поменять местами предпоследний и последний столбцы
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2012, 20:14
Ответы с готовыми решениями:

Дан двумерный массив размерностью 4 х 6, заполненный целыми числами с клавиатуры
Дан двумерный массив размерностью 4 х 6, заполненный целыми числами с клавиатуры. Сформировать...

Заполнить двумерный массив размерностью 4 на 4 случайными числами вывести на экран
Заполнить двумерный массив размерностью 4 на 4 случайными числами вывести на экран количество...

Дан двумерный массив, заполненный случайными элементами, имеющими код от 100 до 108. Вывести элементы, стоящие ниже главной диагонали.
помогите написать программу)

дан двумерный массив размером n x m,заполненый случайными числами.
дан двумерный массив размером n x m,заполненый случайными числами.определить,есть ли в данном...

11
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
09.06.2012, 22:14 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
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
uses crt;
const nmax=12;
type mas=array [1..nmax,1..nmax] of integer;
var a: mas;  maxx: integer;
    n,m: byte;
 
procedure Gen(var ri,rj: byte; var z: mas);
var i,j: byte;
begin
n:=5; m:=6;
for i:=1 to ri do
    for j:=1 to rj do
        z[i,j]:=random(19)-9;
end;
 
procedure Print(ri,rj: byte; z: mas);
var i,j: byte;
begin
for i:=1 to ri do
    begin
    for j:=1 to rj do
        write(z[i,j]:4);
    writeln;
    end;
end;
 
procedure Zamena(ri,rj: byte; var z: mas);
var i,j,jmin: byte;
begin
for i:=1 to ri do
    begin
    jmin:=1;
    for j:=2 to rj do
        if z[i,j]<z[i,jmin] then jmin:=j;
    z[i,jmin]:=z[i,jmin]*(-1);
    end;
end;
 
function Max (ri,rj: byte; z: mas): integer;
var i,j: byte; m: integer;
begin
m:=z[1,1];
for i:=1 to ri do
    for j:=1 to rj do
        if z[i,j]>m then m:=z[i,j];
Max:=m;
end;
 
function MaxIn (max: integer; ri,ns: byte; z: mas): boolean;
var i: byte; b: boolean;
begin
b:=false;
for i:=1 to ri do
    if z[i,ns]=max then b:=true;
MaxIn:=b;
end;
 
procedure Vsta (ns,ri: byte; var rj: byte; var z: mas);
var i,e: byte;
begin
for e:=rj downto ns+1 do
    for i:=1 to ri do
        z[i,e+1]:=z[i,e];
for i:=1 to ri do
    z[i,ns+1]:=1;
inc(rj);
end;
 
procedure VstaAll(max: integer; ri: byte; var rj: byte; var z: mas);
var j: byte;
begin
for j:=rj downto 1 do
    if MaxIn (max,ri,j,z) then Vsta (j,ri,rj,z);
end;
 
procedure Del (ns,rj: byte; var ri: byte; var z: mas);
var i,j: byte;
begin
for i:=ns to ri do
    for j:=1 to rj do
        z[i,j]:=z[i+1,j];
dec(ri);
end;
 
procedure Change (n1,n2,ri: byte; var z: mas);
var i: byte; buf: integer;
begin
for i:=1 to ri do
    begin
    buf:=z[i,n1];
    z[i,n1]:=z[i,n2];
    z[i,n2]:=buf;
    end;
end;
 
begin
Gen(n,m,a);
writeln('Исходная матрица');
Print(n,m,a);
readln;
writeln('Матрица после замены');
Zamena(n,m,a);
Print(n,m,a);
readln;
maxx:=Max (n,m,a);
writeln('Матрица после вставки');
VstaAll(maxx,n,m,a);
Print(n,m,a);
readln;
writeln('Матрица после удаления');
Del (1,m,n,a);
Print(n,m,a);
readln;
writeln('Матрица после обмена');
Change (m-1,m,n,a);
Print(n,m,a);
readln;
end.
1
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
09.06.2012, 22:54  [ТС] 3
Спасибо!!!
0
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
17.06.2012, 18:06  [ТС] 4
Преобразования происходят с текущей матрицей
как сделать так что бы преобразования производились с исходной
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
17.06.2012, 18:35 5
_Anton_, текущая=равно исходная, в программе одна матрица, просто при вводе фактических парметров в процедуры лучше ввести "внутренние", другие переменные (это делает ваши процедуры как бы "независимыми")
но если есть нужда =) замените везде z на a
1
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
17.06.2012, 22:15  [ТС] 6
КонецСвета,Получилось тоже самое
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
17.06.2012, 22:22 7
_Anton_, я не понимаю: так что надо-то? чтобы в программе использовалась одна матрица? она одна. чтобы на экран вывоилась только итоговая матрица? можно примеры ввода-вывода?
0
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
17.06.2012, 23:49  [ТС] 8
КонецСвета,Необходимо что бы все преобразования производились с исходным массивом(каждое преобразование(их 4) производилось с начальной матрицей,а не с текущей).Премиер на экран вывести название преобразование(например 1)-потом данное преобразование произвести с начальной матрицей ,дальше название второго преобразование-и также произвести преобразования с начальной матрицей и.т.д.,тоесть необходимо что бы он делал каждое преобразование с Начальной(случайно заполненной матрицей)
0
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
17.06.2012, 23:58  [ТС] 9
Исходная матрица:
3 0 -4 -6 -4 -1
6 2 -7 -4 3 -2
1 -4 -8 -8 3 4
-8 3 1 8 -1 -4
8 8 -1 0 -5 8
-заменить минимальный элемент каждой строки на противоположный(этот пункт он выполняет правильно)
3 0 -4 6 -4 -1
6 2 7 -4 3 -2
1 -4 8 -8 3 4
8 3 1 8 -1 -4
8 8 -1 0 5 8
-вставить после столбцов с максимальными элементами столбец из единиц(выполняет с ^ матрицей а не с начальной) И вот как должно быть:
3 1 0 -4 -6 -4 1 -1
6 1 2 -7 -4 3 1 -2
1 1 -4 -8 -8 1 3 4
-8 1 3 1 8 1 -1 -4
8 1 8 -1 01 -5 8
-Удалить первую строку(выполняет с ^ матрицей а не с начальной)вот как должно быть:
6 2 -7 -4 3 -2
1 -4 -8 -8 3 4
-8 3 1 8 -1 -4
8 8 -1 0 -5 8
-Поменять местами предпоследний и последний столбцы(выполняет с ^ матрицей а не с начальной) вот как должно быть:
3 0 -4 -6 -1 -4
6 2 -7 -4 -2 3
1 -4 -8 -8 4 3
-8 3 1 8 -4 -1
8 8 -1 0 8 -5
0
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
18.06.2012, 00:16  [ТС] 10
Вот скрин пример работы вашей программа
Преобразования происходят с предыдущей матрицей,а необходимо С начальной как показано стрелками на скрине
Миниатюры
Дан двумерный массив размерностью 5*6,заполненный случайными числами  
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
18.06.2012, 00:46 11
_Anton_, дошло... (извини =)
здесь вижу один вариант: создание матрицы-копии, на которой каждый раз будут выполнятся действия, вот
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
122
123
124
125
126
127
128
129
130
131
uses crt;
const nmax=12;
type mas=array [1..nmax,1..nmax] of integer;
var a,b: mas;  maxx: integer;
    n,m,nn,mm: byte;
 
procedure Gen(var ri,rj: byte; var z: mas);
var i,j: byte;
begin
n:=5; m:=6;
for i:=1 to ri do
    for j:=1 to rj do
        z[i,j]:=random(19)-9;
end;
 
procedure Print(ri,rj: byte; z: mas);
var i,j: byte;
begin
for i:=1 to ri do
    begin
    for j:=1 to rj do
        write(z[i,j]:4);
    writeln;
    end;
end;
 
procedure CopyMatrix(ri,rj: byte; var rri,rrj: byte; z: mas; var zz: mas);
var i,j: byte;
begin
rri:=ri; rrj:=rj;
for i:=1 to ri do
    for j:=1 to rj do
        zz[i,j]:=z[i,j];
end;
 
procedure Zamena(ri,rj: byte; var z: mas);
var i,j,jmin: byte;
begin
for i:=1 to ri do
    begin
    jmin:=1;
    for j:=2 to rj do
        if z[i,j]<z[i,jmin] then jmin:=j;
    z[i,jmin]:=z[i,jmin]*(-1);
    end;
end;
 
function Max (ri,rj: byte; z: mas): integer;
var i,j: byte; m: integer;
begin
m:=z[1,1];
for i:=1 to ri do
    for j:=1 to rj do
        if z[i,j]>m then m:=z[i,j];
Max:=m;
end;
 
function MaxIn (max: integer; ri,ns: byte; z: mas): boolean;
var i: byte; b: boolean;
begin
b:=false;
for i:=1 to ri do
    if z[i,ns]=max then b:=true;
MaxIn:=b;
end;
 
procedure Vsta (ns,ri: byte; var rj: byte; var z: mas);
var i,e: byte;
begin
for e:=rj downto ns+1 do
    for i:=1 to ri do
        z[i,e+1]:=z[i,e];
for i:=1 to ri do
    z[i,ns+1]:=1;
inc(rj);
end;
 
procedure VstaAll(max: integer; ri: byte; var rj: byte; var z: mas);
var j: byte;
begin
for j:=rj downto 1 do
    if MaxIn (max,ri,j,z) then Vsta (j,ri,rj,z);
end;
 
procedure Del (ns,rj: byte; var ri: byte; var z: mas);
var i,j: byte;
begin
for i:=ns to ri do
    for j:=1 to rj do
        z[i,j]:=z[i+1,j];
dec(ri);
end;
 
procedure Change (n1,n2,ri: byte; var z: mas);
var i: byte; buf: integer;
begin
for i:=1 to ri do
    begin
    buf:=z[i,n1];
    z[i,n1]:=z[i,n2];
    z[i,n2]:=buf;
    end;
end;
 
begin
Gen(n,m,a);
writeln('Исходная матрица');
Print(n,m,a);
CopyMatrix(n,m,nn,mm,a,b);
readln;
writeln('Матрица после замены');
Zamena(nn,mm,b);
Print(nn,mm,b);
readln;
CopyMatrix(n,m,nn,mm,a,b);
maxx:=Max (nn,mm,b);
writeln('Матрица после вставки');
VstaAll(maxx,nn,mm,b);
Print(nn,mm,b);
readln;
CopyMatrix(n,m,nn,mm,a,b);
writeln('Матрица после удаления');
Del (1,mm,nn,b);
Print(nn,mm,b);
readln;
CopyMatrix(n,m,nn,mm,a,b);
writeln('Матрица после обмена');
Change (mm-1,mm,nn,b);
Print(nn,mm,b);
readln;
end.
1
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 17
18.06.2012, 11:03  [ТС] 12
КонецСвета, Спасибо огромное!!!
0
18.06.2012, 11:03
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2012, 11:03
Помогаю со студенческими работами здесь

Двумерный массив, заполненный случайными словами
Ребята, помогите, надо сделать к пятнице, а на работе такой затык, что штудировать мануалы просто...

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

Дан двумерный массив размерностью N*M
Дан двумерный массив размерностью N*M ( N и M вводятся с клавиатуры). Найти кол-во всех...

Дан двумерный массив размером 8*7, заполненный случайным образом :
Самый простой способ - нажать Print Screen на клавиатуре и потом, открыв Paintbrush - скопировать...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru