03.12.2011, 16:43 | #1 (permalink) |
Member
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Две задачки, массивы
1) Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Найти минимальный элемент второго столбца указанного массива. Увеличить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве. Поиск минимального оформить в виде подпрограммы – функции. 2) Напишите подпрограмму – процедуру, которая позволяет, в целочисленной матрице D (4,3) найти максимальный и минимальные элементы и, если они положительны, то поменять их местами. Напечатать полученную матрицу. |
03.12.2011, 16:43 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Вам скорее всего будет интересно прочитать похожие темы Помогите решить задачки Задачки на Pascal Решить задачки Задачки на массивы. Паскаль Задачки на Pascal Задачки по теме массивы в паскале |
03.12.2011, 18:28 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А ничего, мы не беспокоимся. Тем более, что всё равно ничего сделать не сможем. К сожалению, нам, несмотря на неоднократно предпринимаемые усилия, так и не удалось довести до сознания господ лоботрясов, что БЕЗ УКАЗАНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ любые подобные запросы абсолютно бессмысленны.
Так что всё в порядке. P.S. Сразу отмечу, что если даже речь о Паскале, то лично я заниматься написанием решений этих задачек уровня младшей группы детского сада для умственно-отсталых не буду. Как писал А.С.Пушкин: "Но всему же есть границы!". |
04.12.2011, 12:38 | #4 (permalink) |
Member
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
const n=10;
type matrix=array [1..n,1..n] of integer; var A:matrix; i,j,min:integer; procedure M_read (var A:matrix); var i,j:integer; begin for i:=1 to 4 do for j:=1 to 3 do A[i,j]:=random(101)-50; end; procedure M_write (A:matrix); var i,j:integer; begin for i:=1 to 4 do begin for j:=1 to 3 do write (A[i,j]:4); writeln; end; writeln; end; procedure Stb2Min (A:matrix;var min:integer); var i:integer; begin min:=A[1,2]; for i:=2 to 4 do if A[i,2]<min then min:=A[i,2]; end; begin M_read (A); M_write (A); Stb2Min (A,min); for i:=1 to 4 do for j:=1 to 3 do A[i,j]:=A[i,j]+min; M_write (A); end. Похоже на правду?(1-я задача) |
04.12.2011, 13:58 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Здравствуйте, Стас!
Прежде всего - отлично, что Вы сами пишете программы, тогда к Вам совсем иное отношение, чем к участнику типа "вы тут давайте, а я пошел". Может быть. Но вот ей-Богу, знали бы Вы, как надоедает буквально каждого второго студента тыкать носом и вопрошать "Какой язык?", "Какой язык?", "Какой язык?" и т.д. В конце концов, подобная неряшливость свидетельствует о неуважении к нам, что, извините, порождает ответную реакцию. Да, и весьма похоже. Только несколько мелких замечаний: 1. Раз в условии сказано, что требуется создать второй массив, то и надо это сделать. 2. Если Вы пользуетесь генератором случайных чисел, то не забывайте инициализировать его, поставив в начале программы команду Randomize. В противном случае он работает некорректно. 3. Не ошибка, но просто рекомендация. Параметры процедур и функций лучше обозначать идентификаторами, не совпадающими с именами глобальных переменных. То есть можно, конечно, и как у Вас - но, поверьте, - не стоит. Вносит путаницу. 4. В конце лучше поставить останов - команду Readln. Исходя из всего этого, рекомендую внести исправления, чтобы получилось, например, так: Код:
const n=10; type matrix=array [1..n,1..n] of integer; var A,B:matrix; i,j,min:integer; procedure M_read(var M:matrix); var i,j:integer; begin for i:=1 to 4 do for j:=1 to 3 do M[i,j]:=random(101)-50; end; procedure M_write(M:matrix); var i,j:integer; begin for i:=1 to 4 do begin for j:=1 to 3 do write (M[i,j]:4); writeln; end; writeln; end; procedure Stb2Min(M:matrix;var mn:integer); var i:integer; begin mn:=M[1,2]; for i:=2 to 4 do if M[i,2]<mn then mn:=M[i,2]; end; begin Randomize; M_read(A); M_write(A); Stb2Min(A,min); for i:=1 to 4 do for j:=1 to 3 do B[i,j]:=A[i,j]+min; M_write(B); Readln end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
04.12.2011, 15:14 | #6 (permalink) |
Member
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Буду иметь ввиду! Спасибо)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|