Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 03.12.2011, 16:43   #1 (permalink)
Aizen_Stas
Member
 
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Две задачки, массивы

Последний рывок по информатике и больше беспокоить не буду
1) Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Найти минимальный элемент второго столбца указанного массива. Увеличить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве. Поиск минимального оформить в виде подпрограммы – функции.
2) Напишите подпрограмму – процедуру, которая позволяет, в целочисленной матрице D (4,3) найти максимальный и минимальные элементы и, если они положительны, то поменять их местами. Напечатать полученную матрицу.
Aizen_Stas вне форума   Ответить с цитированием

Старый 03.12.2011, 16:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вам скорее всего будет интересно прочитать похожие темы

Помогите решить задачки
Задачки на Pascal
Решить задачки
Задачки на массивы. Паскаль
Задачки на Pascal
Задачки по теме массивы в паскале

Старый 03.12.2011, 18:28   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Aizen_Stas Посмотреть сообщение
Последний рывок по информатике и больше беспокоить не буду
А ничего, мы не беспокоимся. Тем более, что всё равно ничего сделать не сможем. К сожалению, нам, несмотря на неоднократно предпринимаемые усилия, так и не удалось довести до сознания господ лоботрясов, что БЕЗ УКАЗАНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ любые подобные запросы абсолютно бессмысленны.
Так что всё в порядке.
P.S. Сразу отмечу, что если даже речь о Паскале, то лично я заниматься написанием решений этих задачек уровня младшей группы детского сада для умственно-отсталых не буду. Как писал А.С.Пушкин: "Но всему же есть границы!".
Vladimir_S вне форума   Ответить с цитированием
Старый 04.12.2011, 12:02   #3 (permalink)
Aizen_Stas
Member
 
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ОК! Но цепляться к словам все-же по-ребячески как-то...
Aizen_Stas вне форума   Ответить с цитированием
Старый 04.12.2011, 12:38   #4 (permalink)
Aizen_Stas
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-я задача)
Aizen_Stas вне форума   Ответить с цитированием
Старый 04.12.2011, 13:58   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Здравствуйте, Стас!
Прежде всего - отлично, что Вы сами пишете программы, тогда к Вам совсем иное отношение, чем к участнику типа "вы тут давайте, а я пошел".
Цитата:
Сообщение от Aizen_Stas Посмотреть сообщение
ОК! Но цепляться к словам все-же по-ребячески как-то...
Может быть. Но вот ей-Богу, знали бы Вы, как надоедает буквально каждого второго студента тыкать носом и вопрошать "Какой язык?", "Какой язык?", "Какой язык?" и т.д. В конце концов, подобная неряшливость свидетельствует о неуважении к нам, что, извините, порождает ответную реакцию.
Цитата:
Сообщение от Aizen_Stas Посмотреть сообщение
Похоже на правду?(1-я задача)
Да, и весьма похоже. Только несколько мелких замечаний:
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 04.12.2011, 15:14   #6 (permalink)
Aizen_Stas
Member
 
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Буду иметь ввиду! Спасибо)
Aizen_Stas вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:29.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.