• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Две задачки, массивы

Aizen_Stas

Новые
Регистрация
26 Окт 2011
Сообщения
20
Реакции
0
Баллы
0
Две задачки, массивы

Последний рывок по информатике и больше беспокоить не буду
1) Дан двумерный массив, содержащий 4 строки и З столбца. Элементами массива являются целые числа. Найти минимальный элемент второго столбца указанного массива. Увеличить каждый элемент исходного массива на полученное значение. Результат получить в другом массиве. Поиск минимального оформить в виде подпрограммы – функции.
2) Напишите подпрограмму – процедуру, которая позволяет, в целочисленной матрице D (4,3) найти максимальный и минимальные элементы и, если они положительны, то поменять их местами. Напечатать полученную матрицу.
 
Последний рывок по информатике и больше беспокоить не буду
А ничего, мы не беспокоимся. Тем более, что всё равно ничего сделать не сможем. К сожалению, нам, несмотря на неоднократно предпринимаемые усилия, так и не удалось довести до сознания господ лоботрясов, что БЕЗ УКАЗАНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ любые подобные запросы абсолютно бессмысленны.
Так что всё в порядке.
P.S. Сразу отмечу, что если даже речь о Паскале, то лично я заниматься написанием решений этих задачек уровня младшей группы детского сада для умственно-отсталых не буду. Как писал А.С.Пушкин: "Но всему же есть границы!".
 
ОК! Но цепляться к словам все-же по-ребячески как-то...
 
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-я задача)
 
Здравствуйте, Стас!
Прежде всего - отлично, что Вы сами пишете программы, тогда к Вам совсем иное отношение, чем к участнику типа "вы тут давайте, а я пошел".
ОК! Но цепляться к словам все-же по-ребячески как-то...
Может быть. Но вот ей-Богу, знали бы Вы, как надоедает буквально каждого второго студента тыкать носом и вопрошать "Какой язык?", "Какой язык?", "Какой язык?" и т.д. В конце концов, подобная неряшливость свидетельствует о неуважении к нам, что, извините, порождает ответную реакцию.
Похоже на правду?(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.
 
Буду иметь ввиду! Спасибо)
 
Назад
Сверху